package com.l7tech.server.licensing;

import com.l7tech.gateway.common.InvalidLicenseException;
import com.l7tech.gateway.common.LicenseException;
import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.gateway.common.audit.SystemMessages;
import com.l7tech.gateway.common.custom.CustomAssertionsRegistrar;
import com.l7tech.gateway.common.licensing.CompositeLicense;
import com.l7tech.gateway.common.licensing.FeatureLicense;
import com.l7tech.gateway.common.licensing.FeatureSetExpander;
import com.l7tech.gateway.common.licensing.LicenseDocument;
import com.l7tech.gateway.common.licensing.LicenseInstallationException;
import com.l7tech.gateway.common.licensing.LicenseRemovalException;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.AssertionMetadata;
import com.l7tech.policy.assertion.CustomAssertionHolder;
import com.l7tech.server.event.EntityInvalidationEvent;
import com.l7tech.server.event.system.LicenseChangeEvent;
import com.l7tech.server.event.system.LicenseEvent;
import com.l7tech.util.Background;
import com.l7tech.util.BuildInfo;
import com.l7tech.util.DateUtils;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Functions.Unary;
import java.io.ByteArrayInputStream;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.lang3.ObjectUtils;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.context.ApplicationListener;
import org.springframework.context.Lifecycle;
import org.springframework.context.Phased;
import org.springframework.context.support.ApplicationObjectSupport;
import org.springframework.transaction.annotation.Transactional;

public abstract class AbstractCompositeLicenseManager
   extends ApplicationObjectSupport
   implements UpdatableCompositeLicenseManager,
   Lifecycle,
   Phased,
   ApplicationListener<EntityInvalidationEvent>,
   ApplicationEventPublisherAware {
   private static final X509Certificate[] a;
   public static final int PHASE = -10000;
   private static final long b = 21600000L;
   private static final long c = 300000L;
   private static final long d = 259200000L;
   private static final String e;
   private static final String f;
   private static final String g;
   private static final String h;
   private final Logger i;
   private final Lock j = new ReentrantLock();
   private final AtomicLong k = new AtomicLong(-1L);
   private final AtomicLong l = new AtomicLong(-1L);
   private final a m = new a(this);
   private final AtomicReference<CompositeLicense> n = new AtomicReference<>(null);
   private final List<LicenseEvent> o = new ArrayList<>();
   private ApplicationEventPublisher p;
   private volatile boolean q = false;
   private volatile boolean r = false;
   @Autowired
   private FeatureLicenseFactory s;
   @Autowired
   private LicenseDocumentManager t;
   private CustomAssertionsRegistrar u;
   private static final String[] w;

   protected AbstractCompositeLicenseManager(Logger var1) {
      this.i = var1;
   }

   @Override
   public CompositeLicense getCurrentCompositeLicense() {
      this.j.lock();

      try {
         this.a();
         return this.n.get();
      } finally {
         this.j.unlock();
      }
   }

   @Override
   public FeatureLicense createFeatureLicense(LicenseDocument var1) throws InvalidLicenseException {
      return this.s.newInstance(var1, a);
   }

   @Override
   public void validateLicense(FeatureLicense var1) throws InvalidLicenseException {
      this.a(var1);
      this.b(var1);
      this.c(var1);
      this.d(var1);
   }

   @Transactional
   @Override
   public void installLicense(FeatureLicense var1) throws LicenseInstallationException {
      this.j.lock();

      try {
         this.t.saveWithImmediateFlush(var1.getLicenseDocument());
         this.c();
         this.a(w[4], SystemMessages.LICENSE_INSTALLED, Long.toString(var1.getId()));
      } catch (SaveException var6) {
         throw new LicenseInstallationException(ExceptionUtils.getMessage(var6), var6);
      } finally {
         this.j.unlock();
      }
   }

   @Override
   public void uninstallLicense(LicenseDocument var1) throws LicenseRemovalException {
      this.j.lock();

      try {
         this.t.delete(var1);
         this.c();
         this.a(w[25], SystemMessages.LICENSE_REMOVED);
      } catch (DeleteException var6) {
         throw new LicenseRemovalException(ExceptionUtils.getMessage(var6), var6);
      } finally {
         this.j.unlock();
      }
   }

   private void a(FeatureLicense var1) throws InvalidLicenseException {
      try {
         if (!var1.hasTrustedIssuer()) {
            throw new InvalidLicenseException(w[18] + var1.getId() + w[17]);
         }
      } catch (InvalidLicenseException var2) {
         throw a(var2);
      }
   }

   private void b(FeatureLicense var1) throws InvalidLicenseException {
      if (!var1.isLicensePeriodStartBefore(System.currentTimeMillis())) {
         long var10002 = var1.getId();
         String var10003 = String.valueOf(var1.getStartDate());
         String var2 = DateUtils.makeRelativeDateMessage(var1.getStartDate(), false);
         String var3 = var10003;
         long var4 = var10002;
         String[] var6 = w;
         throw new InvalidLicenseException(var6[8] + var4 + var6[1] + var3 + var6[26] + var2 + var6[11]);
      }
   }

   private void c(FeatureLicense var1) throws InvalidLicenseException {
      if (!var1.isLicensePeriodExpiryAfter(System.currentTimeMillis())) {
         long var10002 = var1.getId();
         String var10003 = String.valueOf(var1.getExpiryDate());
         String var2 = DateUtils.makeRelativeDateMessage(var1.getExpiryDate(), false);
         String var3 = var10003;
         long var4 = var10002;
         String[] var6 = w;
         throw new InvalidLicenseException(var6[18] + var4 + var6[7] + var3 + var6[6] + var2 + var6[3]);
      }
   }

   private void d(FeatureLicense param1) throws InvalidLicenseException {
      // $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: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.e Ljava/lang/String;
      // 04: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.isProductEnabled (Ljava/lang/String;)Z
      // 07: ifne 1b
      // 0a: aload 1
      // 0b: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.f Ljava/lang/String;
      // 0e: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.isProductEnabled (Ljava/lang/String;)Z
      // 11: ifeq 43
      // 14: goto 1b
      // 17: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: aload 1
      // 1c: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.g Ljava/lang/String;
      // 1f: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.h Ljava/lang/String;
      // 22: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.isVersionEnabled (Ljava/lang/String;Ljava/lang/String;)Z
      // 25: ifne 80
      // 28: goto 2f
      // 2b: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2e: athrow
      // 2f: aload 1
      // 30: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.g Ljava/lang/String;
      // 33: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.h Ljava/lang/String;
      // 36: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.isFutureVersionEnabled (Ljava/lang/String;Ljava/lang/String;)Z
      // 39: ifne 80
      // 3c: goto 43
      // 3f: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 42: athrow
      // 43: new com/l7tech/gateway/common/InvalidLicenseException
      // 46: dup
      // 47: aload 1
      // 48: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getId ()J
      // 4b: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.e Ljava/lang/String;
      // 4e: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.g Ljava/lang/String;
      // 51: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.h Ljava/lang/String;
      // 54: astore 2
      // 55: astore 3
      // 56: astore 4
      // 58: lstore 5
      // 5a: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.w [Ljava/lang/String;
      // 5d: astore 7
      // 5f: aload 7
      // 61: bipush 18
      // 63: aaload
      // 64: lload 5
      // 66: aload 7
      // 68: bipush 12
      // 6a: aaload
      // 6b: aload 4
      // 6d: ldc " "
      // 6f: aload 3
      // 70: ldc "."
      // 72: aload 2
      // 73: aload 7
      // 75: bipush 3
      // 76: aaload
      // 77: invokedynamic makeConcatWithConstants (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;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\u0001\u0001\u0001\u0001\u0001\u0001\u0001" ]
      // 7c: invokespecial com/l7tech/gateway/common/InvalidLicenseException.<init> (Ljava/lang/String;)V
      // 7f: athrow
      // 80: return
      // try (0 -> 8): 9 com/l7tech/gateway/common/InvalidLicenseException
      // try (4 -> 16): 17 com/l7tech/gateway/common/InvalidLicenseException
      // try (11 -> 24): 25 com/l7tech/gateway/common/InvalidLicenseException
   }

   public boolean isAssertionEnabled(Assertion var1) {
      AssertionMetadata var10000 = var1.meta();
      String[] var9 = w;
      Unary var2 = (Unary)var10000.get(var9[19]);
      if (var1 instanceof CustomAssertionHolder var3) {
         try {
            CustomAssertionHolder var4 = this.getCustomAssertionsRegistrar().getAssertion(var3.getCustomAssertion().getClass().getName());
            var3.setRegisteredCustomFeatureSetName(var4.getRegisteredCustomFeatureSetName());
         } catch (Exception var10) {
            Logger var16 = this.i;
            Level var10001 = Level.WARNING;
            String var10002 = var10.getMessage();
            var9 = w;
            var16.log(var10001, var9[10] + var10002, ExceptionUtils.getDebugException(var10));
         }
      }

      String var13 = var1.getFeatureSetName();
      boolean var14 = this.isFeatureEnabled(var13);

      try {
         if (!var14 || var2 == null) {
            return var14;
         }
      } catch (Exception var12) {
         throw a(var12);
      }

      Set var5 = (Set)var2.call(var1);
      if (var5 != null) {
         CompositeLicense var6 = this.n.get();
         Iterator var7 = var5.iterator();

         String var8;
         while (true) {
            if (!var7.hasNext()) {
               return var14;
            }

            var8 = (String)var7.next();

            try {
               if (var6 == null || !var6.isFeatureEnabled(var8)) {
                  break;
               }
            } catch (Exception var11) {
               throw a(var11);
            }
         }

         var14 = false;
         this.i.log(Level.INFO, w[9], new String[]{var13, var8});
      }

      return var14;
   }

   public void requireFeature(String var1) throws LicenseException {
      try {
         if (!this.isFeatureEnabled(var1)) {
            throw new LicenseException(w[16] + var1 + ".");
         }
      } catch (LicenseException var2) {
         throw a(var2);
      }
   }

   public boolean isFeatureEnabled(String var1) {
      if (null == var1) {
         return false;
      }

      this.a();
      CompositeLicense var2 = this.n.get();
      return var2 != null && var2.isFeatureEnabled(var1);
   }

   private void a() {
      if (System.currentTimeMillis() - this.k.get() >= 21600000L) {
         boolean var1 = false;

         try {
            if (this.n.get() != null) {
               var1 = this.j.tryLock();
            } else {
               var1 = true;
               this.j.lock();
            }

            if (var1) {
               this.c();
               this.k.set(System.currentTimeMillis());
               return;
            }
         } finally {
            if (var1) {
               this.j.unlock();
            }
         }
      }
   }

   public void onApplicationEvent(EntityInvalidationEvent var1) {
      if (LicenseDocument.class.equals(var1.getEntityClass())) {
         this.b();
      }
   }

   private void b() {
      this.j.lock();

      try {
         this.k.set(-1L);
      } finally {
         this.j.unlock();
      }
   }

   private void c() {
      // $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 0
      // 001: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.j Ljava/util/concurrent/locks/Lock;
      // 004: invokeinterface java/util/concurrent/locks/Lock.lock ()V 1
      // 009: aload 0
      // 00a: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.t Lcom/l7tech/server/licensing/LicenseDocumentManager;
      // 00d: invokeinterface com/l7tech/server/licensing/LicenseDocumentManager.findAll ()Ljava/util/Collection; 1
      // 012: astore 1
      // 013: goto 081
      // 016: astore 2
      // 017: aconst_null
      // 018: aload 0
      // 019: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.n Ljava/util/concurrent/atomic/AtomicReference;
      // 01c: invokevirtual java/util/concurrent/atomic/AtomicReference.get ()Ljava/lang/Object;
      // 01f: if_acmpeq 053
      // 022: invokestatic java/lang/System.currentTimeMillis ()J
      // 025: aload 0
      // 026: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.l Ljava/util/concurrent/atomic/AtomicLong;
      // 029: invokevirtual java/util/concurrent/atomic/AtomicLong.get ()J
      // 02c: lsub
      // 02d: ldc2_w 259200000
      // 030: lcmp
      // 031: ifge 053
      // 034: goto 03b
      // 037: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 03a: athrow
      // 03b: aload 0
      // 03c: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.w [Ljava/lang/String;
      // 03f: bipush 24
      // 041: aaload
      // 042: getstatic com/l7tech/gateway/common/audit/SystemMessages.LICENSE_DB_ERROR_RETRY Lcom/l7tech/gateway/common/audit/Messages$M;
      // 045: bipush 0
      // 046: anewarray 406
      // 049: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/String;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 04c: goto 06d
      // 04f: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 052: athrow
      // 053: aload 0
      // 054: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.w [Ljava/lang/String;
      // 057: astore 11
      // 059: aload 11
      // 05b: bipush 14
      // 05d: aaload
      // 05e: getstatic com/l7tech/gateway/common/audit/SystemMessages.LICENSE_DB_ERROR_GAVEUP Lcom/l7tech/gateway/common/audit/Messages$M;
      // 061: bipush 0
      // 062: anewarray 406
      // 065: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/String;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 068: aload 0
      // 069: aconst_null
      // 06a: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Lcom/l7tech/gateway/common/licensing/CompositeLicense;)V
      // 06d: aload 0
      // 06e: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.m Lcom/l7tech/server/licensing/a;
      // 071: ldc2_w 300000
      // 074: invokevirtual com/l7tech/server/licensing/a.schedule (J)V
      // 077: aload 0
      // 078: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.j Ljava/util/concurrent/locks/Lock;
      // 07b: invokeinterface java/util/concurrent/locks/Lock.unlock ()V 1
      // 080: return
      // 081: aload 1
      // 082: invokeinterface java/util/Collection.isEmpty ()Z 1
      // 087: ifeq 0a6
      // 08a: aload 0
      // 08b: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.w [Ljava/lang/String;
      // 08e: bipush 2
      // 08f: aaload
      // 090: getstatic com/l7tech/gateway/common/audit/SystemMessages.LICENSE_NO_LICENSE Lcom/l7tech/gateway/common/audit/Messages$M;
      // 093: bipush 0
      // 094: anewarray 406
      // 097: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/String;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 09a: aload 0
      // 09b: aconst_null
      // 09c: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Lcom/l7tech/gateway/common/licensing/CompositeLicense;)V
      // 09f: goto 35c
      // 0a2: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a5: athrow
      // 0a6: new java/util/ArrayList
      // 0a9: dup
      // 0aa: invokespecial java/util/ArrayList.<init> ()V
      // 0ad: astore 2
      // 0ae: new java/util/ArrayList
      // 0b1: dup
      // 0b2: invokespecial java/util/ArrayList.<init> ()V
      // 0b5: astore 3
      // 0b6: new java/util/HashMap
      // 0b9: dup
      // 0ba: invokespecial java/util/HashMap.<init> ()V
      // 0bd: astore 4
      // 0bf: new java/util/HashMap
      // 0c2: dup
      // 0c3: invokespecial java/util/HashMap.<init> ()V
      // 0c6: astore 5
      // 0c8: new java/util/HashMap
      // 0cb: dup
      // 0cc: invokespecial java/util/HashMap.<init> ()V
      // 0cf: astore 6
      // 0d1: aload 1
      // 0d2: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 0d7: astore 7
      // 0d9: aload 7
      // 0db: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 0e0: ifeq 14a
      // 0e3: aload 7
      // 0e5: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 0ea: checkcast com/l7tech/gateway/common/licensing/LicenseDocument
      // 0ed: astore 8
      // 0ef: aload 0
      // 0f0: aload 8
      // 0f2: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.createFeatureLicense (Lcom/l7tech/gateway/common/licensing/LicenseDocument;)Lcom/l7tech/gateway/common/licensing/FeatureLicense;
      // 0f5: astore 9
      // 0f7: aload 2
      // 0f8: aload 9
      // 0fa: invokevirtual java/util/ArrayList.add (Ljava/lang/Object;)Z
      // 0fd: pop
      // 0fe: goto 147
      // 101: astore 9
      // 103: aload 0
      // 104: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.i Ljava/util/logging/Logger;
      // 107: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 10a: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 10d: ifeq 12b
      // 110: aload 0
      // 111: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.i Ljava/util/logging/Logger;
      // 114: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 117: aload 9
      // 119: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 11c: aload 9
      // 11e: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 121: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 124: goto 12b
      // 127: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 12a: athrow
      // 12b: aload 0
      // 12c: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.w [Ljava/lang/String;
      // 12f: astore 11
      // 131: aload 11
      // 133: bipush 23
      // 135: aaload
      // 136: getstatic com/l7tech/gateway/common/audit/SystemMessages.LICENSE_INVALID Lcom/l7tech/gateway/common/audit/Messages$M;
      // 139: bipush 0
      // 13a: anewarray 406
      // 13d: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/String;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 140: aload 3
      // 141: aload 8
      // 143: invokevirtual java/util/ArrayList.add (Ljava/lang/Object;)Z
      // 146: pop
      // 147: goto 0d9
      // 14a: aload 2
      // 14b: invokevirtual java/util/ArrayList.iterator ()Ljava/util/Iterator;
      // 14e: astore 7
      // 150: aload 7
      // 152: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 157: ifeq 311
      // 15a: aload 7
      // 15c: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 161: checkcast com/l7tech/gateway/common/licensing/FeatureLicense
      // 164: astore 8
      // 166: aload 0
      // 167: aload 8
      // 169: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.c (Lcom/l7tech/gateway/common/licensing/FeatureLicense;)V
      // 16c: goto 1cc
      // 16f: astore 9
      // 171: aload 0
      // 172: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.i Ljava/util/logging/Logger;
      // 175: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 178: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 17b: ifeq 199
      // 17e: aload 0
      // 17f: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.i Ljava/util/logging/Logger;
      // 182: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 185: aload 9
      // 187: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 18a: aload 9
      // 18c: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 18f: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 192: goto 199
      // 195: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 198: athrow
      // 199: aload 0
      // 19a: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.w [Ljava/lang/String;
      // 19d: astore 11
      // 19f: aload 11
      // 1a1: bipush 27
      // 1a3: aaload
      // 1a4: getstatic com/l7tech/gateway/common/audit/SystemMessages.LICENSE_EXPIRED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 1a7: bipush 1
      // 1a8: anewarray 406
      // 1ab: dup
      // 1ac: bipush 0
      // 1ad: aload 8
      // 1af: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getId ()J
      // 1b2: invokestatic java/lang/Long.toString (J)Ljava/lang/String;
      // 1b5: aastore
      // 1b6: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/String;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 1b9: aload 6
      // 1bb: aload 8
      // 1bd: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getId ()J
      // 1c0: invokestatic java/lang/Long.valueOf (J)Ljava/lang/Long;
      // 1c3: aload 8
      // 1c5: invokevirtual java/util/HashMap.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 1c8: pop
      // 1c9: goto 150
      // 1cc: aload 0
      // 1cd: aload 8
      // 1cf: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.b (Lcom/l7tech/gateway/common/licensing/FeatureLicense;)V
      // 1d2: goto 232
      // 1d5: astore 9
      // 1d7: aload 0
      // 1d8: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.i Ljava/util/logging/Logger;
      // 1db: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 1de: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 1e1: ifeq 1ff
      // 1e4: aload 0
      // 1e5: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.i Ljava/util/logging/Logger;
      // 1e8: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 1eb: aload 9
      // 1ed: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 1f0: aload 9
      // 1f2: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1f5: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 1f8: goto 1ff
      // 1fb: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1fe: athrow
      // 1ff: aload 0
      // 200: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.w [Ljava/lang/String;
      // 203: astore 11
      // 205: aload 11
      // 207: bipush 28
      // 209: aaload
      // 20a: getstatic com/l7tech/gateway/common/audit/SystemMessages.LICENSE_NOT_YET_VALID Lcom/l7tech/gateway/common/audit/Messages$M;
      // 20d: bipush 1
      // 20e: anewarray 406
      // 211: dup
      // 212: bipush 0
      // 213: aload 8
      // 215: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getId ()J
      // 218: invokestatic java/lang/Long.toString (J)Ljava/lang/String;
      // 21b: aastore
      // 21c: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/String;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 21f: aload 5
      // 221: aload 8
      // 223: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getId ()J
      // 226: invokestatic java/lang/Long.valueOf (J)Ljava/lang/Long;
      // 229: aload 8
      // 22b: invokevirtual java/util/HashMap.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 22e: pop
      // 22f: goto 150
      // 232: aload 0
      // 233: aload 8
      // 235: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Lcom/l7tech/gateway/common/licensing/FeatureLicense;)V
      // 238: goto 298
      // 23b: astore 9
      // 23d: aload 0
      // 23e: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.i Ljava/util/logging/Logger;
      // 241: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 244: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 247: ifeq 265
      // 24a: aload 0
      // 24b: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.i Ljava/util/logging/Logger;
      // 24e: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 251: aload 9
      // 253: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 256: aload 9
      // 258: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 25b: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 25e: goto 265
      // 261: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 264: athrow
      // 265: aload 0
      // 266: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.w [Ljava/lang/String;
      // 269: astore 11
      // 26b: aload 11
      // 26d: bipush 28
      // 26f: aaload
      // 270: getstatic com/l7tech/gateway/common/audit/SystemMessages.LICENSE_INVALID_ISSUER Lcom/l7tech/gateway/common/audit/Messages$M;
      // 273: bipush 1
      // 274: anewarray 406
      // 277: dup
      // 278: bipush 0
      // 279: aload 8
      // 27b: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getId ()J
      // 27e: invokestatic java/lang/Long.toString (J)Ljava/lang/String;
      // 281: aastore
      // 282: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/String;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 285: aload 5
      // 287: aload 8
      // 289: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getId ()J
      // 28c: invokestatic java/lang/Long.valueOf (J)Ljava/lang/Long;
      // 28f: aload 8
      // 291: invokevirtual java/util/HashMap.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 294: pop
      // 295: goto 150
      // 298: aload 0
      // 299: aload 8
      // 29b: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.d (Lcom/l7tech/gateway/common/licensing/FeatureLicense;)V
      // 29e: goto 2fe
      // 2a1: astore 9
      // 2a3: aload 0
      // 2a4: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.i Ljava/util/logging/Logger;
      // 2a7: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 2aa: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 2ad: ifeq 2cb
      // 2b0: aload 0
      // 2b1: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.i Ljava/util/logging/Logger;
      // 2b4: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 2b7: aload 9
      // 2b9: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 2bc: aload 9
      // 2be: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 2c1: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 2c4: goto 2cb
      // 2c7: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2ca: athrow
      // 2cb: aload 0
      // 2cc: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.w [Ljava/lang/String;
      // 2cf: astore 11
      // 2d1: aload 11
      // 2d3: bipush 28
      // 2d5: aaload
      // 2d6: getstatic com/l7tech/gateway/common/audit/SystemMessages.LICENSE_INVALID_PRODUCT Lcom/l7tech/gateway/common/audit/Messages$M;
      // 2d9: bipush 1
      // 2da: anewarray 406
      // 2dd: dup
      // 2de: bipush 0
      // 2df: aload 8
      // 2e1: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getId ()J
      // 2e4: invokestatic java/lang/Long.toString (J)Ljava/lang/String;
      // 2e7: aastore
      // 2e8: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/String;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 2eb: aload 5
      // 2ed: aload 8
      // 2ef: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getId ()J
      // 2f2: invokestatic java/lang/Long.valueOf (J)Ljava/lang/Long;
      // 2f5: aload 8
      // 2f7: invokevirtual java/util/HashMap.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 2fa: pop
      // 2fb: goto 150
      // 2fe: aload 4
      // 300: aload 8
      // 302: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getId ()J
      // 305: invokestatic java/lang/Long.valueOf (J)Ljava/lang/Long;
      // 308: aload 8
      // 30a: invokevirtual java/util/HashMap.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 30d: pop
      // 30e: goto 150
      // 311: aload 4
      // 313: invokevirtual java/util/HashMap.isEmpty ()Z
      // 316: ifeq 331
      // 319: aload 0
      // 31a: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.w [Ljava/lang/String;
      // 31d: bipush 15
      // 31f: aaload
      // 320: getstatic com/l7tech/gateway/common/audit/SystemMessages.LICENSE_NO_LICENSE Lcom/l7tech/gateway/common/audit/Messages$M;
      // 323: bipush 0
      // 324: anewarray 406
      // 327: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/String;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 32a: goto 342
      // 32d: invokestatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 330: athrow
      // 331: aload 0
      // 332: getstatic com/l7tech/server/licensing/AbstractCompositeLicenseManager.w [Ljava/lang/String;
      // 335: bipush 22
      // 337: aaload
      // 338: getstatic com/l7tech/gateway/common/audit/SystemMessages.LICENSE_FOUND Lcom/l7tech/gateway/common/audit/Messages$M;
      // 33b: bipush 0
      // 33c: anewarray 406
      // 33f: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Ljava/lang/String;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 342: new com/l7tech/gateway/common/licensing/CompositeLicense
      // 345: dup
      // 346: aload 4
      // 348: aload 5
      // 34a: aload 6
      // 34c: aload 3
      // 34d: aload 0
      // 34e: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.getFeatureSetExpander ()Lcom/l7tech/gateway/common/licensing/FeatureSetExpander;
      // 351: invokespecial com/l7tech/gateway/common/licensing/CompositeLicense.<init> (Ljava/util/HashMap;Ljava/util/HashMap;Ljava/util/HashMap;Ljava/util/List;Lcom/l7tech/gateway/common/licensing/FeatureSetExpander;)V
      // 354: astore 7
      // 356: aload 0
      // 357: aload 7
      // 359: invokevirtual com/l7tech/server/licensing/AbstractCompositeLicenseManager.a (Lcom/l7tech/gateway/common/licensing/CompositeLicense;)V
      // 35c: aload 0
      // 35d: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.j Ljava/util/concurrent/locks/Lock;
      // 360: invokeinterface java/util/concurrent/locks/Lock.unlock ()V 1
      // 365: goto 376
      // 368: astore 10
      // 36a: aload 0
      // 36b: getfield com/l7tech/server/licensing/AbstractCompositeLicenseManager.j Ljava/util/concurrent/locks/Lock;
      // 36e: invokeinterface java/util/concurrent/locks/Lock.unlock ()V 1
      // 373: aload 10
      // 375: athrow
      // 376: return
      // try (3 -> 7): 8 com/l7tech/objectmodel/FindException
      // try (14 -> 34): 34 com/l7tech/objectmodel/FindException
      // try (9 -> 22): 23 com/l7tech/objectmodel/FindException
      // try (104 -> 112): 113 com/l7tech/gateway/common/InvalidLicenseException
      // try (155 -> 158): 159 com/l7tech/gateway/common/InvalidLicenseException
      // try (200 -> 203): 204 com/l7tech/gateway/common/InvalidLicenseException
      // try (245 -> 248): 249 com/l7tech/gateway/common/InvalidLicenseException
      // try (290 -> 293): 294 com/l7tech/gateway/common/InvalidLicenseException
      // try (3 -> 53): 382 null
      // try (343 -> 355): 355 com/l7tech/objectmodel/FindException
      // try (295 -> 308): 309 com/l7tech/objectmodel/FindException
      // try (250 -> 263): 264 com/l7tech/objectmodel/FindException
      // try (205 -> 218): 219 com/l7tech/objectmodel/FindException
      // try (160 -> 173): 174 com/l7tech/objectmodel/FindException
      // try (114 -> 127): 128 com/l7tech/objectmodel/FindException
      // try (57 -> 72): 72 com/l7tech/objectmodel/FindException
      // try (57 -> 378): 382 null
      // try (382 -> 383): 382 null
   }

   private void a(@Nullable CompositeLicense var1) {
      this.j.lock();

      try {
         CompositeLicense var2 = this.n.get();
         if (!this.r || !ObjectUtils.equals(var2, var1)) {
            this.n.set(var1);
            this.l.set(System.currentTimeMillis());
            this.r = true;
            this.b(w[21], SystemMessages.LICENSE_UPDATED);
            return;
         }
      } finally {
         this.j.unlock();
      }
   }

   private void a(String var1, AuditDetailMessage var2, String... var3) {
      String var4 = this.a(var2.getMessage(), var3);
      this.a(new LicenseEvent(this, var2.getLevel(), var1, var4));
   }

   private void b(String var1, AuditDetailMessage var2, String... var3) {
      String var4 = this.a(var2.getMessage(), var3);
      this.a(new LicenseChangeEvent(this, var2.getLevel(), var1, var4));
   }

   private void a(LicenseEvent var1) {
      if (!this.isRunning()) {
         synchronized (this.o) {
            this.o.add(var1);
         }
      } else {
         Background.scheduleOneShot(new d(this, var1), 0L);
      }
   }

   private String a(String var1, String[] var2) {
      return var2.length == 0 ? var1 : MessageFormat.format(var1, var2);
   }

   protected abstract FeatureSetExpander getFeatureSetExpander();

   public void setApplicationEventPublisher(ApplicationEventPublisher var1) {
      this.p = var1;
   }

   public void start() {
      this.q = true;
      synchronized (this.o) {
         for (ApplicationEvent var3 : this.o) {
            this.p.publishEvent(var3);
         }

         this.o.clear();
      }
   }

   public void stop() {
      this.m.close();
      this.q = false;
   }

   public boolean isRunning() {
      return this.q;
   }

   public int getPhase() {
      return -10000;
   }

   private static X509Certificate[] d() {
      try {
         String[] var3 = w;
         CertificateFactory var0 = CertificateFactory.getInstance(var3[13]);
         byte[] var1 = var3[20].getBytes();
         Certificate var2 = var0.generateCertificate(new ByteArrayInputStream(var1));
         return new X509Certificate[]{(X509Certificate)var2};
      } catch (Exception var4) {
         Logger.getLogger(AbstractCompositeLicenseManager.class.getName()).log(Level.SEVERE, w[0], var4);
         return null;
      }
   }

   public CustomAssertionsRegistrar getCustomAssertionsRegistrar() {
      if (this.u == null) {
         this.u = (CustomAssertionsRegistrar)this.getApplicationContext().getBean(w[5], CustomAssertionsRegistrar.class);
      }

      return this.u;
   }

   static {
      String[] var5 = new String[29];
      int var3 = 0;
      String var2 = "egv\u0000m7sDf7\u0001n<5Ynb\u0010dr'B|d\u0016d6sYzd\u0017d sSle\u0016h4:Shc\u0007)!z\u001e$\u0010`dBo='\u0010pr\u0016!$2\\`sX!06Sfz\u0007rr%Qe~\u0006!==\u0010\n~f7\u000eh16^zr\u0002\u0019'\u0011|`t\u0007o!6\u0010`y\u0011u3?\\ls\u0018S|d\u0016n?\u0012Czr\u0010u;<^[r\u0005h!'Bhe\u0002\u0010!\u0019\u0010av\u0011!7+@`e\u0007ehsUqg\u000bs77\u0010fyB\b|`t\u0007o!6\u0010Aqzd\u0007s&:_g7E&)cM.0N!; \u0010m~\u0011`0?Um7\u0006t7sDf7\u0017o>:Sly\u0011d6sVlv\u0016t 6\u0010.0\u00190/t\u0017'6egv\u0000m7sDf7\u0005d&sS|d\u0016n?sVlv\u0016t 6\u0010zr\u0016!<2]l7\u0004s=>\u0010{r\u0005h!'BheX!\u0002\u0019'8\u0010mx\u0007rr=_}7\u0005s3=D)v\u0001b7 C)c\r!&;Yz7\u0014d  YfyBn4sDa~\u0011!\"!_mb\u0001ur{\u0005h'\"R8\tw`a\u000bo5sEy\n~f7\u000eh16^zr8darBr\"6S`q\u000bd6sVlv\u0016t 6\u0010`dBo='\u0010zb\u0012q=!DlsBn<sDa~\u0011!\u00152Dl`\u0003xhs,\u0010~v\u0011!<<D)d\u000bf<6T)u\u001b!3sD{b\u0011u77\u0010e~\u0001d< U)~\u0011r'6B'\b|`t\u0007o!6\u0010\u0011Vlv\u0016t 6clc$`1'_{nЭ\u001d$:O,\u0010\u0016w@YBB\u0017\u0001d@Q+B\u0013\u0007u$:O,\u007fY}@^!7\u0016\u0010sHs#B\u0010\u0016}=&\nv%\u0017aP])n\b\u001aX\u007ft,@\u0003\u0016uKF#v\u001d\u0007umZ r\u0015\u0012\u0001\\R!i\u001f\u0006dNQW[\n\u001aW\u0003Y\u001bC\u0007\tgGx\u0000lk R;s\u0012[\n\u001eHNS#V\u00104~_U#L\u0006\u0017\u0000qg;3\u0004&S;B\u0005U`\t]h@,m19qlQ\u00151%\u001ddH\"hL80GGC'5\u001f9rhQ\u00151+\u001ddH\"/k\u000b$~]RVL8\u0011QDS\ty\u001a\u0007qkU\u0005O\u0004\u0011qfC$D*;U^A\u001bH\u00160W_P4kX2w<a\u0000Fk=Q^A\u0018L\u00004GOp;E\u0004\u0002aMR\u00158\u001f2gG{\u0000o\u001c?yL.\u000f[??ZSO+v54uaZ#1\u0015\u0010cxP1H0`:MF'C\u0013\u0002eHVVH\u0010\u0017WH`\u0005f\u0017\u0019qf^ @\u001aej| !x\u0018=@&B\u0013I>\t\u0003^Y'xf\u001c{Qm\u000fre>_\u007fn\u00065\u0010#Ak\u001dTE\u0000\u0001JFfMp\b5}Dy\rJ\u0011\t\u0005}R\u0012@\u001d\u0017G0S2Q\u0018\u001b_L$\u0000Y\u0004e\u0007mS5U<\u0017~~T77e!\u0001o_ G#\u0007ACv \u000b\u00054e8P\u0018f+xfl ,7\u00102_lV:W\u00184uQEWck\u001efOv\u0000g\u0015bvPd\u0013D0%{~B\u0014N\u0004\"_~&:F\u001e<`^f#J\u0002Y\u0003os E\u0007\u0003\u007fCp%T<!JP&\u0012C$\u0011cE{3n\u0019)w[<\u0004I\u0004!}g&\u0018P\u0000\u0000\tDQ\u0003m%)yne\u0005w\u0017\u0006HlC#6`\u0017v\u0003PQ[\u0018\u0019\u0004>r\t*\u001d>iY \u00134\u001c)J8e!R\u0010:\\\u007f !U\u0005kdJM/J\u001e\u0019cK_\u0004Cb#`Mv+L\u001e7`mM\u0013N7 \u0003gph88\u000bE^g4B\u001a\u001a\u001fe{\by8\u0011r^Y6o7|V\\z,952I]\\6{&\u0012\u0004\\u-.:6zLT#v\u0017\u0012q]V,C58Aa|\u000bFXjG9U#P\u0003\u0015qHX!@\u0003\u0016qLB&S'#\bg{ s\u0019eJ;&S5\u00006\u007f;p\u0016*9xj~c\u0013c\u0001\u001awKZ/79\u0010{\u007fy7We5:Kz\u000b8\n=Fn{/.78]BU,H#\u001eh|T\bc\u001d0bxp747:EBg\u0014b&\u001bbsB)U\u001a\u0007\tJ\\7P4\u0001\u0007f`P*\u00198A1\u001dRw\u0016dzJt\u0011c\u001b\"tp@&6& V&E%O\u001e\u001dj@t-F'\u0011vMe(ycx\\GxZS}\u0015\\Qy\u0007r&\u000bw_^0B\u001e*x\"NP\u000b%kw\u007fa\u000fT6\u0018}pz\u00131\u00137@{&Vwf\u0011\u0006&<\u001ah9+gCx7W\u0006$^K[!O\u0005<qx~\u0018B8?Q0{\u000f5%\u001cDBf\u0011RcY\b]n&w\u0010xBE.%{y\u0018\u0005ZE7y\"\u0004D9V&S\u0005\u0006z[s\u000fG`jx1P\u0001E\u00070QH\\UJ3ercn\u0010N:\u0016\t}!\u0007l\u0010dU\u0003t:.\u000b?\u001b[p\u0015X3gv:&VNb+rNGTc3\"D_nM4\u0010\u001cR}b\u0001@on:$:O,\u007f\u0016~M7!D\u0000\u0007yO^!@\u0006\u0016\u001d$:O,\u0007eys\u0003u77\u0010|`t\u0007o!6\u0018z>Bg=&^m\u000fyga\u0003m;7\u0010e~\u0001d< U\bblc\u0010x;=W\u000f|`t\u0007o!6\u0010{r\u000fn$6T\u0002\u0010!";
      int var4 = "egv\u0000m7sDf7\u0001n<5Ynb\u0010dr'B|d\u0016d6sYzd\u0017d sSle\u0016h4:Shc\u0007)!z\u001e$\u0010`dBo='\u0010pr\u0016!$2\\`sX!06Sfz\u0007rr%Qe~\u0006!==\u0010\n~f7\u000eh16^zr\u0002\u0019'\u0011|`t\u0007o!6\u0010`y\u0011u3?\\ls\u0018S|d\u0016n?\u0012Czr\u0010u;<^[r\u0005h!'Bhe\u0002\u0010!\u0019\u0010av\u0011!7+@`e\u0007ehsUqg\u000bs77\u0010fyB\b|`t\u0007o!6\u0010Aqzd\u0007s&:_g7E&)cM.0N!; \u0010m~\u0011`0?Um7\u0006t7sDf7\u0017o>:Sly\u0011d6sVlv\u0016t 6\u0010.0\u00190/t\u0017'6egv\u0000m7sDf7\u0005d&sS|d\u0016n?sVlv\u0016t 6\u0010zr\u0016!<2]l7\u0004s=>\u0010{r\u0005h!'BheX!\u0002\u0019'8\u0010mx\u0007rr=_}7\u0005s3=D)v\u0001b7 C)c\r!&;Yz7\u0014d  YfyBn4sDa~\u0011!\"!_mb\u0001ur{\u0005h'\"R8\tw`a\u000bo5sEy\n~f7\u000eh16^zr8darBr\"6S`q\u000bd6sVlv\u0016t 6\u0010`dBo='\u0010zb\u0012q=!DlsBn<sDa~\u0011!\u00152Dl`\u0003xhs,\u0010~v\u0011!<<D)d\u000bf<6T)u\u001b!3sD{b\u0011u77\u0010e~\u0001d< U)~\u0011r'6B'\b|`t\u0007o!6\u0010\u0011Vlv\u0016t 6clc$`1'_{nЭ\u001d$:O,\u0010\u0016w@YBB\u0017\u0001d@Q+B\u0013\u0007u$:O,\u007fY}@^!7\u0016\u0010sHs#B\u0010\u0016}=&\nv%\u0017aP])n\b\u001aX\u007ft,@\u0003\u0016uKF#v\u001d\u0007umZ r\u0015\u0012\u0001\\R!i\u001f\u0006dNQW[\n\u001aW\u0003Y\u001bC\u0007\tgGx\u0000lk R;s\u0012[\n\u001eHNS#V\u00104~_U#L\u0006\u0017\u0000qg;3\u0004&S;B\u0005U`\t]h@,m19qlQ\u00151%\u001ddH\"hL80GGC'5\u001f9rhQ\u00151+\u001ddH\"/k\u000b$~]RVL8\u0011QDS\ty\u001a\u0007qkU\u0005O\u0004\u0011qfC$D*;U^A\u001bH\u00160W_P4kX2w<a\u0000Fk=Q^A\u0018L\u00004GOp;E\u0004\u0002aMR\u00158\u001f2gG{\u0000o\u001c?yL.\u000f[??ZSO+v54uaZ#1\u0015\u0010cxP1H0`:MF'C\u0013\u0002eHVVH\u0010\u0017WH`\u0005f\u0017\u0019qf^ @\u001aej| !x\u0018=@&B\u0013I>\t\u0003^Y'xf\u001c{Qm\u000fre>_\u007fn\u00065\u0010#Ak\u001dTE\u0000\u0001JFfMp\b5}Dy\rJ\u0011\t\u0005}R\u0012@\u001d\u0017G0S2Q\u0018\u001b_L$\u0000Y\u0004e\u0007mS5U<\u0017~~T77e!\u0001o_ G#\u0007ACv \u000b\u00054e8P\u0018f+xfl ,7\u00102_lV:W\u00184uQEWck\u001efOv\u0000g\u0015bvPd\u0013D0%{~B\u0014N\u0004\"_~&:F\u001e<`^f#J\u0002Y\u0003os E\u0007\u0003\u007fCp%T<!JP&\u0012C$\u0011cE{3n\u0019)w[<\u0004I\u0004!}g&\u0018P\u0000\u0000\tDQ\u0003m%)yne\u0005w\u0017\u0006HlC#6`\u0017v\u0003PQ[\u0018\u0019\u0004>r\t*\u001d>iY \u00134\u001c)J8e!R\u0010:\\\u007f !U\u0005kdJM/J\u001e\u0019cK_\u0004Cb#`Mv+L\u001e7`mM\u0013N7 \u0003gph88\u000bE^g4B\u001a\u001a\u001fe{\by8\u0011r^Y6o7|V\\z,952I]\\6{&\u0012\u0004\\u-.:6zLT#v\u0017\u0012q]V,C58Aa|\u000bFXjG9U#P\u0003\u0015qHX!@\u0003\u0016qLB&S'#\bg{ s\u0019eJ;&S5\u00006\u007f;p\u0016*9xj~c\u0013c\u0001\u001awKZ/79\u0010{\u007fy7We5:Kz\u000b8\n=Fn{/.78]BU,H#\u001eh|T\bc\u001d0bxp747:EBg\u0014b&\u001bbsB)U\u001a\u0007\tJ\\7P4\u0001\u0007f`P*\u00198A1\u001dRw\u0016dzJt\u0011c\u001b\"tp@&6& V&E%O\u001e\u001dj@t-F'\u0011vMe(ycx\\GxZS}\u0015\\Qy\u0007r&\u000bw_^0B\u001e*x\"NP\u000b%kw\u007fa\u000fT6\u0018}pz\u00131\u00137@{&Vwf\u0011\u0006&<\u001ah9+gCx7W\u0006$^K[!O\u0005<qx~\u0018B8?Q0{\u000f5%\u001cDBf\u0011RcY\b]n&w\u0010xBE.%{y\u0018\u0005ZE7y\"\u0004D9V&S\u0005\u0006z[s\u000fG`jx1P\u0001E\u00070QH\\UJ3ercn\u0010N:\u0016\t}!\u0007l\u0010dU\u0003t:.\u000b?\u001b[p\u0015X3gv:&VNb+rNGTc3\"D_nM4\u0010\u001cR}b\u0001@on:$:O,\u007f\u0016~M7!D\u0000\u0007yO^!@\u0006\u0016\u001d$:O,\u0007eys\u0003u77\u0010|`t\u0007o!6\u0018z>Bg=&^m\u000fyga\u0003m;7\u0010e~\u0001d< U\bblc\u0010x;=W\u000f|`t\u0007o!6\u0010{r\u000fn$6T\u0002\u0010!"
         .length();
      char var1 = '2';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 45;
         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) {
                     w = var5;
                     a = d();
                     e = BuildInfo.getProductName();
                     f = BuildInfo.getLegacyProductName();
                     g = BuildInfo.getProductVersionMajor();
                     h = BuildInfo.getProductVersionMinor();
                     return;
                  }

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

                  var2 = "9=+G?{{\\)2M(pl\u0019\u000f5+-O!w{\\)2M(pl\u0019";
                  var4 = "9=+G?{{\\)2M(pl\u0019\u000f5+-O!w{\\)2M(pl\u0019".length();
                  var1 = 15;
                  var7 = -1;
            }

            var10000 = 97;
            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] ^ 126);
      }

      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 -> 29;
            case 1 -> 36;
            case 2 -> 58;
            case 3 -> 79;
            case 4 -> 44;
            case 5 -> 127;
            default -> 126;
         });
      }

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