package com.l7tech.server.transport.jms2;

import com.l7tech.server.transport.jms.JmsBag;
import com.l7tech.server.transport.jms.JmsRuntimeException;
import com.l7tech.server.util.ManagedTimer;
import com.l7tech.util.Config;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.TimeUnit;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jms.JMSException;
import javax.naming.Context;
import javax.naming.NamingException;
import org.springframework.beans.factory.DisposableBean;

public class JmsResourceManager implements DisposableBean, PropertyChangeListener {
   public static final long DEFAULT_MAXIMUM_AGE = 0L;
   public static final long DEFAULT_MAXIMUM_IDLE_TIME = 0L;
   public static final long DEFAULT_IDLE_TIME = 0L;
   public static final int DEFAULT_MAXIMUM_SIZE = 1;
   public static final int DEFAULT_CONNECTION_POOL_SIZE = 1;
   public static final int DEFAULT_CONNECTION_MIN_IDLE = 1;
   public static final long DEFAULT_CONNECTION_MAX_WAIT = 5000L;
   public static final long DEFAULT_TIME_BETWEEN_EVICTION = 300000L;
   public static final int DEFAULT_EVICTION_BATCH_SIZE = 1;
   public static final int DEFAULT_SESSION_POOL_SIZE = 0;
   public static final int DEFAULT_SESSION_MAX_IDLE = 0;
   public static final long DEFAULT_SESSION_MAX_WAIT = 0L;
   public static final long CONNECTION_MAX_IDLE_RANGE_MIN = 0L;
   public static final long CONNECTION_MAX_IDLE_RANGE_MAX = Long.MAX_VALUE;
   public static final long CONNECTION_IDLE_TIME_RANGE_MIN = 0L;
   public static final long CONNECTION_IDLE_TIME_RANGE_MAX = Long.MAX_VALUE;
   public static final int CONNECTION_POOL_SIZE_RANGE_MIN = 1;
   public static final int CONNECTION_POOL_SIZE_RANGE_MAX = 10000;
   public static final int CONNECTION_MIN_IDLE_RANGE_MIN = 0;
   public static final int CONNECTION_MIN_IDLE_RANGE_MAX = 10000;
   public static final long CONNECTION_POOL_MAX_WAIT_RANGE_MIN = -1L;
   public static final long CONNECTION_POOL_MAX_WAIT_RANGE_MAX = Long.MAX_VALUE;
   public static final long CONNECTION_POOL_EVICT_INTERVAL_RANGE_MIN = 0L;
   public static final long CONNECTION_POOL_EVICT_INTERVAL_RANGE_MAX = Long.MAX_VALUE;
   public static final int EVICTION_BATCH_SIZE_RANGE_MIN = 1;
   public static final int EVICTION_BATCH_SIZE_RANGE_MAX = 10000;
   public static final int SESSION_POOL_SIZE_RANGE_MIN = -1;
   public static final int SESSION_POOL_SIZE_RANGE_MAX = Integer.MAX_VALUE;
   public static final int SESSION_MAX_IDLE_RANGE_MIN = -1;
   public static final int SESSION_MAX_IDLE_RANGE_MAX = Integer.MAX_VALUE;
   public static final long SESSION_MAX_WAIT_RANGE_MIN = -1L;
   public static final long SESSION_MAX_WAIT_RANGE_MAX = Long.MAX_VALUE;
   public static final long CONNECTION_MAX_AGE_RANGE_MIN = 0L;
   public static final long CONNECTION_MAX_AGE_RANGE_MAX = Long.MAX_VALUE;
   public static final int CONNECTION_CACHE_SIZE_RANGE_MIN = 0;
   public static final int CONNECTION_CACHE_SIZE_RANGE_MAX = Integer.MAX_VALUE;
   public static final long DEFAULT_CONNECTION_MAX_AGE;
   public static final long DEFAULT_CONNECTION_MAX_IDLE;
   public static final long DEFAULT_CONNECTION_IDLE_TIME;
   public static final int DEFAULT_CONNECTION_CACHE_SIZE = 100;
   private static final Logger a;
   private static final String b;
   private static final long c;
   private final Config d;
   protected final ConcurrentHashMap<JmsEndpointConfig.JmsEndpointKey, CachedConnection> connectionHolder;
   private final Timer e;
   private final TimerTask f;
   private final AtomicReference<JmsResourceManagerConfig> g = new AtomicReference<>(
      new JmsResourceManagerConfig(0L, 0L, 0L, 1, 1, 1, 5000L, 300000L, 1, 0, 0, 0L)
   );
   private final AtomicBoolean h = new AtomicBoolean(true);
   private static final String[] i;

   public JmsResourceManager(String var1, Config var2) {
      this.d = var2;
      this.connectionHolder = new ConcurrentHashMap<>();
      this.e = new ManagedTimer(i[34] + var1);
      this.f = new l(this.connectionHolder, this.g);
      this.e.schedule(this.f, 17371L, c);
      this.b();
   }

   // $VF: Could not verify finally blocks. A semaphore variable has been added to preserve control flow.
   // 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!)
   public void doWithJmsResources(JmsEndpointConfig var1, JmsResourceManager.JmsResourceCallback var2) throws NamingException, JMSException, JmsRuntimeException, JmsConnectionMaxWaitException {
      try {
         if (!this.h.get()) {
            throw new JmsRuntimeException(i[19]);
         }
      } catch (JmsRuntimeException var16) {
         throw a(var16);
      }

      SessionHolder var3 = null;
      boolean var12 = false /* VF: Semaphore variable */;

      try {
         var12 = true;
         var3 = this.getSessionHolder(var1);
         var3.doWithJmsResources(var2);
         var12 = false;
      } finally {
         if (var12) {
            try {
               this.returnSessionHolder(var1, var3);
            } catch (JmsRuntimeException var13) {
               a.log(Level.WARNING, i[15] + var3, ExceptionUtils.getDebugException(var13));
            }
         }
      }

      try {
         this.returnSessionHolder(var1, var3);
      } catch (JmsRuntimeException var14) {
         Logger var10000 = a;
         Level var10001 = Level.WARNING;
         String var10002 = String.valueOf(var3);
         String[] var7 = i;
         var10000.log(var10001, var7[32] + var10002, ExceptionUtils.getDebugException(var14));
      }
   }

   protected SessionHolder getSessionHolder(JmsEndpointConfig param1) throws JmsRuntimeException, JmsConnectionMaxWaitException {
      // $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 com/l7tech/server/transport/jms2/JmsEndpointConfig.getJmsEndpointKey ()Lcom/l7tech/server/transport/jms2/JmsEndpointConfig$JmsEndpointKey;
      // 04: astore 2
      // 05: aload 0
      // 06: getfield com/l7tech/server/transport/jms2/JmsResourceManager.connectionHolder Ljava/util/concurrent/ConcurrentHashMap;
      // 09: aload 2
      // 0a: invokevirtual java/util/concurrent/ConcurrentHashMap.get (Ljava/lang/Object;)Ljava/lang/Object;
      // 0d: checkcast com/l7tech/server/transport/jms2/CachedConnection
      // 10: astore 3
      // 11: aload 3
      // 12: ifnonnull c6
      // 15: aload 2
      // 16: invokevirtual com/l7tech/server/transport/jms2/JmsEndpointConfig$JmsEndpointKey.toString ()Ljava/lang/String;
      // 19: invokevirtual java/lang/String.intern ()Ljava/lang/String;
      // 1c: dup
      // 1d: astore 4
      // 1f: monitorenter
      // 20: aload 0
      // 21: getfield com/l7tech/server/transport/jms2/JmsResourceManager.connectionHolder Ljava/util/concurrent/ConcurrentHashMap;
      // 24: aload 2
      // 25: invokevirtual java/util/concurrent/ConcurrentHashMap.get (Ljava/lang/Object;)Ljava/lang/Object;
      // 28: checkcast com/l7tech/server/transport/jms2/CachedConnection
      // 2b: astore 3
      // 2c: aload 3
      // 2d: ifnonnull b8
      // 30: aload 1
      // 31: invokevirtual com/l7tech/server/transport/jms2/JmsEndpointConfig.getEndpoint ()Lcom/l7tech/gateway/common/transport/jms/JmsEndpoint;
      // 34: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.isMessageSource ()Z
      // 37: ifne 65
      // 3a: aload 1
      // 3b: invokevirtual com/l7tech/server/transport/jms2/JmsEndpointConfig.getConnection ()Lcom/l7tech/gateway/common/transport/jms/JmsConnection;
      // 3e: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.properties ()Ljava/util/Properties;
      // 41: getstatic com/l7tech/gateway/common/transport/jms/JmsConnection.PROP_CONNECTION_POOL_ENABLE Ljava/lang/String;
      // 44: getstatic java/lang/Boolean.FALSE Ljava/lang/Boolean;
      // 47: invokevirtual java/lang/Boolean.toString ()Ljava/lang/String;
      // 4a: invokevirtual java/util/Properties.getProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
      // 4d: invokestatic java/lang/Boolean.valueOf (Ljava/lang/String;)Ljava/lang/Boolean;
      // 50: invokevirtual java/lang/Boolean.booleanValue ()Z
      // 53: ifeq 65
      // 56: goto 5d
      // 59: invokestatic com/l7tech/server/transport/jms2/JmsResourceManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5c: athrow
      // 5d: bipush 1
      // 5e: goto 66
      // 61: invokestatic com/l7tech/server/transport/jms2/JmsResourceManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 64: athrow
      // 65: bipush 0
      // 66: istore 5
      // 68: aload 0
      // 69: aload 1
      // 6a: iload 5
      // 6c: ifeq 7a
      // 6f: aload 0
      // 70: invokevirtual com/l7tech/server/transport/jms2/JmsResourceManager.getAndValidateConnectionPoolClusterProperties ()Lcom/l7tech/server/transport/jms2/JmsResourceManagerConfig;
      // 73: goto 7e
      // 76: invokestatic com/l7tech/server/transport/jms2/JmsResourceManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 79: athrow
      // 7a: aload 0
      // 7b: invokevirtual com/l7tech/server/transport/jms2/JmsResourceManager.getAndValidateSessionPoolClusterProperties ()Lcom/l7tech/server/transport/jms2/JmsResourceManagerConfig;
      // 7e: iload 5
      // 80: invokevirtual com/l7tech/server/transport/jms2/JmsResourceManager.getCachedConnection (Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;Lcom/l7tech/server/transport/jms2/JmsResourceManagerConfig;Z)Lcom/l7tech/server/transport/jms2/CachedConnection;
      // 83: astore 3
      // 84: goto 93
      // 87: astore 5
      // 89: new com/l7tech/server/transport/jms/JmsRuntimeException
      // 8c: dup
      // 8d: aload 5
      // 8f: invokespecial com/l7tech/server/transport/jms/JmsRuntimeException.<init> (Ljava/lang/Throwable;)V
      // 92: athrow
      // 93: aload 0
      // 94: getfield com/l7tech/server/transport/jms2/JmsResourceManager.connectionHolder Ljava/util/concurrent/ConcurrentHashMap;
      // 97: aload 2
      // 98: aload 3
      // 99: invokevirtual java/util/concurrent/ConcurrentHashMap.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 9c: pop
      // 9d: getstatic com/l7tech/server/transport/jms2/JmsResourceManager.a Ljava/util/logging/Logger;
      // a0: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // a3: aload 3
      // a4: invokeinterface com/l7tech/server/transport/jms2/CachedConnection.toString ()Ljava/lang/String; 1
      // a9: getstatic com/l7tech/server/transport/jms2/JmsResourceManager.i [Ljava/lang/String;
      // ac: bipush 20
      // ae: aaload
      // af: swap
      // b0: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)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" ]
      // b5: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // b8: aload 4
      // ba: monitorexit
      // bb: goto c6
      // be: astore 6
      // c0: aload 4
      // c2: monitorexit
      // c3: aload 6
      // c5: athrow
      // c6: aload 3
      // c7: invokeinterface com/l7tech/server/transport/jms2/CachedConnection.borrowConnection ()Lcom/l7tech/server/transport/jms2/SessionHolder; 1
      // cc: areturn
      // try (48 -> 55): 55 java/lang/Exception
      // try (29 -> 44): 44 java/lang/Exception
      // try (25 -> 39): 40 java/lang/Exception
      // try (25 -> 62): 63 java/lang/Exception
      // try (17 -> 87): 88 null
      // try (88 -> 91): 88 null
   }

   protected CachedConnection getCachedConnection(JmsEndpointConfig var1, JmsResourceManagerConfig var2, boolean var3) throws Exception {
      try {
         if (var3) {
            return new PooledConnection(var1, var2);
         }
      } catch (Exception var4) {
         throw a(var4);
      }

      return new SingleConnection(var1, var2);
   }

   protected void returnSessionHolder(JmsEndpointConfig var1, SessionHolder var2) throws JmsRuntimeException {
      try {
         JmsEndpointConfig.JmsEndpointKey var3 = var1.getJmsEndpointKey();
         CachedConnection var4 = this.connectionHolder.get(var3);

         try {
            if (var4 != null) {
               var4.returnConnection(var2);
               return;
            }
         } catch (Exception var6) {
            throw a(var6);
         }

         Logger var10000 = a;
         Level var10001 = Level.FINE;
         String var10002 = var3.toString();
         String[] var5 = i;
         var10000.log(var10001, var5[36] + var10002 + var5[38]);
      } catch (Exception var7) {
         throw new JmsRuntimeException(var7);
      }
   }

   public JmsBag borrowJmsBag(JmsEndpointConfig var1) throws NamingException, JmsRuntimeException, JmsConnectionMaxWaitException {
      SessionHolder var2 = this.getSessionHolder(var1);
      return var2.borrowJmsBag();
   }

   public void returnJmsBag(JmsBag var1) throws JmsRuntimeException {
      SessionHolder var2 = (SessionHolder)var1.getBagOwner();

      try {
         if (var2 != null) {
            var2.returnJmsBag(var1);
            var2.unRef();
         }
      } catch (JmsRuntimeException var3) {
         throw a(var3);
      }
   }

   public void touch(JmsBag var1) throws JmsRuntimeException {
      SessionHolder var2 = (SessionHolder)var1.getBagOwner();

      try {
         if (var2 != null) {
            var2.touch();
         }
      } catch (JmsRuntimeException var3) {
         throw a(var3);
      }
   }

   public synchronized void invalidate(JmsEndpointConfig var1) {
      if (this.h.get()) {
         JmsEndpointConfig.JmsEndpointKey var2 = var1.getJmsEndpointKey();
         CachedConnection var3 = this.connectionHolder.get(var2);
         if (var3 != null && !var3.isActive()) {
            a.log(Level.FINE, i[27] + var2);
            var3.close();
            this.connectionHolder.remove(var2);
         }
      }
   }

   public void destroy() throws Exception {
      try {
         if (this.h.compareAndSet(true, false)) {
            this.a();
         }
      } catch (Exception var1) {
         throw a(var1);
      }
   }

   @Override
   public void propertyChange(PropertyChangeEvent var1) {
      this.b();
   }

   private void a() {
      a.info(i[26]);
      this.e.cancel();

      for (CachedConnection var3 : this.connectionHolder.values()) {
         var3.close();
      }

      this.connectionHolder.clear();
   }

   public JmsResourceManagerConfig getAndValidateConnectionPoolClusterProperties() {
      String[] var12 = i;
      long var1 = this.d.getTimeUnitProperty(var12[14], DEFAULT_CONNECTION_MAX_IDLE);
      long var3 = this.d.getTimeUnitProperty(var12[1], DEFAULT_CONNECTION_IDLE_TIME);
      int var5 = this.d.getIntProperty(var12[8], 1);
      int var6 = this.d.getIntProperty(var12[31], 0);
      long var7 = this.d.getTimeUnitProperty(var12[16], 5000L);
      long var9 = this.d.getTimeUnitProperty(var12[12], 10000L);
      int var11 = this.d.getIntProperty(var12[0], 1);
      return new JmsResourceManagerConfig(
         0L,
         this.a(var1, DEFAULT_CONNECTION_MAX_IDLE, 0L, Long.MAX_VALUE, var12[3]),
         this.a(var3, DEFAULT_CONNECTION_IDLE_TIME, 0L, Long.MAX_VALUE, var12[25]),
         0,
         this.a(var5, 1, 1, 10000, var12[30]),
         this.a(var6, 1, 0, 10000, var12[9]),
         this.a(var7, 5000L, -1L, Long.MAX_VALUE, var12[11]),
         this.a(var9, 10000L, 0L, Long.MAX_VALUE, var12[2]),
         this.a(var11, 1, 1, 10000, var12[35]),
         0,
         0,
         0L
      );
   }

   public JmsResourceManagerConfig getAndValidateSessionPoolClusterProperties() {
      String[] var7 = i;
      long var1 = this.d.getTimeUnitProperty(var7[28], DEFAULT_CONNECTION_MAX_IDLE);
      int var3 = this.d.getIntProperty(var7[17], 8);
      int var4 = this.d.getIntProperty(var7[4], 8);
      long var5 = this.d.getTimeUnitProperty(var7[13], 5000L);
      return new JmsResourceManagerConfig(
         0L,
         this.a(var1, DEFAULT_CONNECTION_MAX_IDLE, 0L, Long.MAX_VALUE, var7[39]),
         0L,
         0,
         0,
         0,
         0L,
         0L,
         0,
         this.a(var3, 8, -1, Integer.MAX_VALUE, var7[10]),
         this.a(var4, 8, -1, Integer.MAX_VALUE, var7[22]),
         this.a(var5, 5000L, -1L, Long.MAX_VALUE, var7[37])
      );
   }

   private void b() {
      String[] var6 = i;
      a.config(var6[7]);
      long var1 = this.d.getTimeUnitProperty(var6[6], DEFAULT_CONNECTION_MAX_AGE);
      long var3 = this.d.getTimeUnitProperty(var6[28], DEFAULT_CONNECTION_MAX_IDLE);
      int var5 = this.d.getIntProperty(var6[24], 100);
      this.g
         .set(
            new JmsResourceManagerConfig(
               this.a(var1, DEFAULT_CONNECTION_MAX_AGE, 0L, Long.MAX_VALUE, var6[23]),
               this.a(var3, DEFAULT_CONNECTION_MAX_IDLE, 0L, Long.MAX_VALUE, var6[39]),
               this.a(var5, 100, 0, Integer.MAX_VALUE, var6[21])
            )
         );
   }

   private <T extends Number> T a(T var1, T var2, T var3, T var4, String var5) {
      Number var6;
      if (var1.longValue() < var3.longValue()) {
         String[] var7 = i;
         a.log(Level.WARNING, var7[18], new Object[]{var5, var1, var3, var2});
         var6 = var2;
      } else if (var1.longValue() > var4.longValue()) {
         a.log(Level.WARNING, i[29], new Object[]{var5, var1, var4, var2});
         var6 = var2;
      } else {
         var6 = var1;
      }

      return (T)var6;
   }

   static {
      String[] var5 = new String[40];
      int var3 = 0;
      String var2 = "DD'x{}rCE\bv|WrCn\u001b|kJtBE/t|]u~B\u0017p\u0017DD'x{}rCE\bv|WrCb\tymjt@N)gf>5KQsCN\u000eaaQs\r{\u0002zd\u001eIDF\b5J[iZN\b{({kDH\u0019|gP\u001bgf>5KQsCN\u000eaaQs\rf\fmaSh@\u000b$qd[\u0013DD'x{mx^X\u0004zfs|Ub\tym2ND\u0000;d\tiHH\u0005;{[o[N\u001f;|L|CX\u001dzzJ3GF\u001e;k_~EN.ym_sdE\u0019pzH|A\u001aDD'x{}rCE\bv|WrCh\fv`[PLS,rm \u0005y\b<dQ|IB\u0003r(]|NC\b5kQsKB\n`z_iDD\u0003;\u0017DD'x{}rCE\bv|WrC{\u0002zdmtWN\u0017gf>5KQsCN\u000eaaQs\rf\u0004{(wyAN\u0015gf>5[[n^B\u0002{(nrBGMFaDx\u001bgf>5KQsCN\u000eaaQs\rf\fmaSh@\u000b:taJ\"DD'x{}rCE\bv|WrC\u007f\u0004xm|xY\\\bpf{kDH\u0019|gP\u0013DD'x{mx^X\u0004zfs|U|\f||\u001fDD'x{}rCE\bv|WrCh\fv`[PLS$qd[IDF\b#xE\fwd[=YDMgmJh_EMvi]uHOMvgPsHH\u0019|gP=\u0016DD'x{}rCE\bv|WrCf\fm__tY\u0014DD'x{mx^X\u0004zfnrBG>|r[WnD\u0003saYh_J\u0019|gP=[J\u0001`m\u001e{BYMn8C=DXM|fH|AB\t5 E,P\u000b\u0000|fWpXFM|{\u001ef\u001fVD9(KnDE\n5l[{L^\u0001a(H|A^\b5 E.P\u0002C gf>5z[nB^\u001fvm\u001epLE\frmL=DXMf|Qm]N\t;\u001dnY\bt|[y\rE\bb(}|NC\bqKQsCN\u000eaaQs\r\u0019gf>5KQsCN\u000eaaQs\rh\fv`[=~B\u0017p\u0014gf>5[[n^B\u0002{(s|U\u000b$qd[\u001agf>5KQsCN\u000eaaQs\rf\fmaSh@\u000b,rm\u0018DD'x{}rCE\bv|WrCh\fv`[NDQ\b\u001agf>5XQrA\u000b>znJ=dO\u0001p(jt@N\u0002`|#~C\u0018a|WsJ\u000b\tz\u007fP=gf>5KQsCN\u000eaaQs\rH\fv`[3#\u007fN\u0000z~WsJ\u000b.tkVxIh\u0002{f[~YB\u0002{(ItYCM~mG=\u001fDD'x{}rCE\bv|WrCh\fv`[PLS$qd[IDF\bWnD\u0003saYh_J\u0019|gP=[J\u0001`m\u001e{BYMn8C=DXM|fH|AB\t5 E,P\u000b\u0000tpWpXFM|{\u001ef\u001fVD9(KnDE\n5l[{L^\u0001a(H|A^\b5 E.P\u0002C\u0018gf>5KQsCN\u000eaaQs\r{\u0002zd\u001eNDQ\b\u0016DD'x{}rCE\bv|WrCf\u0004{AZqH#xE\fwd[=YDMgmJh_EMvi]uHOMvgPsHH\u0019|gP=2ND\u0000;d\tiHH\u0005;{[o[N\u001f;|L|CX\u001dzzJ3GF\u001e;k_~EN.ym_sdE\u0019pzH|A gF\u001eGmMrXY\u000epE_sLL\bg%}|NC\bVd[|C^\u001d8\"gf>5KQsCN\u000eaaQs\rn\u001b|kJtBEMWiJ~E\u000b>|r[\u001cgf>5KQsCN\u000eaaQs\r\\\u0004a`\u001eiENM~mG=\u0014gf>5[[n^B\u0002{(s|U\u000b:taJ";
      int var4 = "DD'x{}rCE\bv|WrCn\u001b|kJtBE/t|]u~B\u0017p\u0017DD'x{}rCE\bv|WrCb\tymjt@N)gf>5KQsCN\u000eaaQs\r{\u0002zd\u001eIDF\b5J[iZN\b{({kDH\u0019|gP\u001bgf>5KQsCN\u000eaaQs\rf\fmaSh@\u000b$qd[\u0013DD'x{mx^X\u0004zfs|Ub\tym2ND\u0000;d\tiHH\u0005;{[o[N\u001f;|L|CX\u001dzzJ3GF\u001e;k_~EN.ym_sdE\u0019pzH|A\u001aDD'x{}rCE\bv|WrCh\fv`[PLS,rm \u0005y\b<dQ|IB\u0003r(]|NC\b5kQsKB\n`z_iDD\u0003;\u0017DD'x{}rCE\bv|WrC{\u0002zdmtWN\u0017gf>5KQsCN\u000eaaQs\rf\u0004{(wyAN\u0015gf>5[[n^B\u0002{(nrBGMFaDx\u001bgf>5KQsCN\u000eaaQs\rf\fmaSh@\u000b:taJ\"DD'x{}rCE\bv|WrC\u007f\u0004xm|xY\\\bpf{kDH\u0019|gP\u0013DD'x{mx^X\u0004zfs|U|\f||\u001fDD'x{}rCE\bv|WrCh\fv`[PLS$qd[IDF\b#xE\fwd[=YDMgmJh_EMvi]uHOMvgPsHH\u0019|gP=\u0016DD'x{}rCE\bv|WrCf\fm__tY\u0014DD'x{mx^X\u0004zfnrBG>|r[WnD\u0003saYh_J\u0019|gP=[J\u0001`m\u001e{BYMn8C=DXM|fH|AB\t5 E,P\u000b\u0000|fWpXFM|{\u001ef\u001fVD9(KnDE\n5l[{L^\u0001a(H|A^\b5 E.P\u0002C gf>5z[nB^\u001fvm\u001epLE\frmL=DXMf|Qm]N\t;\u001dnY\bt|[y\rE\bb(}|NC\bqKQsCN\u000eaaQs\r\u0019gf>5KQsCN\u000eaaQs\rh\fv`[=~B\u0017p\u0014gf>5[[n^B\u0002{(s|U\u000b$qd[\u001agf>5KQsCN\u000eaaQs\rf\fmaSh@\u000b,rm\u0018DD'x{}rCE\bv|WrCh\fv`[NDQ\b\u001agf>5XQrA\u000b>znJ=dO\u0001p(jt@N\u0002`|#~C\u0018a|WsJ\u000b\tz\u007fP=gf>5KQsCN\u000eaaQs\rH\fv`[3#\u007fN\u0000z~WsJ\u000b.tkVxIh\u0002{f[~YB\u0002{(ItYCM~mG=\u001fDD'x{}rCE\bv|WrCh\fv`[PLS$qd[IDF\bWnD\u0003saYh_J\u0019|gP=[J\u0001`m\u001e{BYMn8C=DXM|fH|AB\t5 E,P\u000b\u0000tpWpXFM|{\u001ef\u001fVD9(KnDE\n5l[{L^\u0001a(H|A^\b5 E.P\u0002C\u0018gf>5KQsCN\u000eaaQs\r{\u0002zd\u001eNDQ\b\u0016DD'x{}rCE\bv|WrCf\u0004{AZqH#xE\fwd[=YDMgmJh_EMvi]uHOMvgPsHH\u0019|gP=2ND\u0000;d\tiHH\u0005;{[o[N\u001f;|L|CX\u001dzzJ3GF\u001e;k_~EN.ym_sdE\u0019pzH|A gF\u001eGmMrXY\u000epE_sLL\bg%}|NC\bVd[|C^\u001d8\"gf>5KQsCN\u000eaaQs\rn\u001b|kJtBEMWiJ~E\u000b>|r[\u001cgf>5KQsCN\u000eaaQs\r\\\u0004a`\u001eiENM~mG=\u0014gf>5[[n^B\u0002{(s|U\u000b:taJ"
         .length();
      char var1 = ' ';
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     i = var5;
                     b = i[33];
                     DEFAULT_CONNECTION_MAX_AGE = TimeUnit.MINUTES.toMillis(30L);
                     DEFAULT_CONNECTION_MAX_IDLE = TimeUnit.MINUTES.toMillis(5L);
                     DEFAULT_CONNECTION_IDLE_TIME = TimeUnit.MINUTES.toMillis(2L);
                     a = Logger.getLogger(JmsResourceManager.class.getName());
                     c = ConfigFactory.getLongProperty(i[5], 27937L);
                     return;
                  }

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

                  var2 = "s1|\u000e\u0005`\r<!3\u000e\u000e)\u0010'{\u001b\u0019\u0018@K5/\r=0p\u001f\u001f/\rs\u0018r\u0013\u001f-\u0016>uZ\u000f\u001a%";
                  var4 = "s1|\u000e\u0005`\r<!3\u000e\u000e)\u0010'{\u001b\u0019\u0018@K5/\r=0p\u001f\u001f/\rs\u0018r\u0013\u001f-\u0016>uZ\u000f\u001a%"
                     .length();
                  var1 = 16;
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String a(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 -> 88;
            case 1 -> 94;
            case 2 -> 24;
            case 3 -> 96;
            case 4 -> 125;
            case 5 -> 75;
            default -> 104;
         });
      }

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

   public interface JmsResourceCallback {
      void doWork(JmsBag var1, JmsResourceManager.JndiContextProvider var2) throws JMSException;
   }

   public interface JndiContextCallback {
      void doWork(Context var1) throws NamingException;
   }

   public interface JndiContextProvider {
      void doWithJndiContext(JmsResourceManager.JndiContextCallback var1) throws NamingException;

      Object lookup(String var1) throws NamingException;
   }
}
