package com.l7tech.server.solutionkit;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.gateway.api.Bundle;
import com.l7tech.gateway.api.impl.MarshallingUtils;
import com.l7tech.gateway.common.LicenseException;
import com.l7tech.gateway.common.solutionkit.BadRequestException;
import com.l7tech.gateway.common.solutionkit.InstanceModifier;
import com.l7tech.gateway.common.solutionkit.SolutionKit;
import com.l7tech.gateway.common.solutionkit.SolutionKitException;
import com.l7tech.gateway.common.solutionkit.SolutionKitHeader;
import com.l7tech.gateway.common.solutionkit.SolutionKitImportInfo;
import com.l7tech.gateway.common.solutionkit.SolutionKitUtils;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.Entity;
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.policy.assertion.Assertion;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.wsp.WspReader;
import com.l7tech.policy.wsp.WspReader.Visibility;
import com.l7tech.server.HibernateEntityManager;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.ServerPolicyException;
import com.l7tech.server.policy.ServerPolicyFactory;
import com.l7tech.server.policy.assertion.ServerAssertion;
import com.l7tech.server.policy.bundle.GatewayManagementDocumentUtilities;
import com.l7tech.server.policy.bundle.ssgman.restman.RestmanInvoker;
import com.l7tech.server.policy.bundle.ssgman.restman.RestmanMessage;
import com.l7tech.server.security.rbac.ProtectedEntityTracker;
import com.l7tech.server.util.PostStartupTransactionalApplicationListener;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.MissingRequiredElementException;
import com.l7tech.util.Pair;
import com.l7tech.util.TooManyChildElementsException;
import jakarta.inject.Inject;
import java.io.IOException;
import java.io.StringReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.Callable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.transform.stream.StreamSource;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.context.ApplicationListener;
import org.springframework.dao.IncorrectResultSizeDataAccessException;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

public class SolutionKitManagerImpl
   extends HibernateEntityManager<SolutionKit, SolutionKitHeader>
   implements SolutionKitManager,
   PostStartupTransactionalApplicationListener {
   private static final Logger m;
   private static final String n;
   private final String o;
   private final String p;
   private final String q;
   private final String r;
   private final String s;
   private ServerAssertion t;
   private RestmanInvoker u;
   @Inject
   private ProtectedEntityTracker protectedEntityTracker;
   private Callable<Pair<AssertionStatus, RestmanMessage>> v;
   private static final String w;
   private static final String[] x;

   public SolutionKitManagerImpl() {
      String[] var10 = x;
      this.o = var10[27];
      this.p = var10[39];
      String var10001 = this.getTableName();
      String var10002 = this.getImpClass().getName();
      String var1 = this.getTableName();
      String var2 = var10002;
      String var3 = var10001;
      this.q = var10[75] + var3 + var10[32] + var2 + var10[69] + var1 + var10[65];
      var10001 = this.getTableName();
      var10002 = this.getImpClass().getName();
      String var4 = this.getTableName();
      String var5 = var10002;
      String var6 = var10001;
      this.r = var10[5] + var6 + var10[50] + var5 + var10[25] + var4 + var10[40];
      var10001 = this.getTableName();
      var10002 = this.getImpClass().getName();
      String var7 = this.getTableName();
      String var8 = var10002;
      String var9 = var10001;
      this.s = var10[5] + var9 + var10[50] + var8 + var10[25] + var7 + var10[2];
      this.t = null;
   }

   public void initDao() throws Exception {
      try {
         super.initDao();
         if (null == this.protectedEntityTracker) {
            throw new IllegalStateException(x[7]);
         }
      } catch (Exception var1) {
         throw a(var1);
      }

      this.a();
   }

   public Class<? extends Entity> getImpClass() {
      return SolutionKit.class;
   }

   public Goid save(SolutionKit var1) throws SaveException {
      try {
         var1.setLastUpdateTime(System.currentTimeMillis());
         if (null != var1.getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY)) {
            m.log(Level.INFO, x[57] + var1.getName() + x[52] + var1.getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY));
         }
      } catch (SaveException var2) {
         throw a(var2);
      }

      return super.save(var1);
   }

   public void update(SolutionKit var1) throws UpdateException {
      try {
         var1.setLastUpdateTime(System.currentTimeMillis());
         super.update(var1);
         if (null != var1.getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY)) {
            m.log(Level.INFO, x[42] + var1.getName() + x[29] + var1.getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY));
         }
      } catch (UpdateException var2) {
         throw a(var2);
      }
   }

   public void delete(SolutionKit var1) throws DeleteException {
      try {
         var1.setLastUpdateTime(System.currentTimeMillis());
         super.delete(var1);
         if (null != var1.getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY)) {
            m.log(Level.INFO, x[57] + var1.getName() + x[35] + var1.getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY));
         }
      } catch (DeleteException var2) {
         throw a(var2);
      }
   }

   private void a() 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:
      // 00: new java/util/ArrayList
      // 03: dup
      // 04: invokespecial java/util/ArrayList.<init> ()V
      // 07: astore 1
      // 08: new java/util/HashMap
      // 0b: dup
      // 0c: invokespecial java/util/HashMap.<init> ()V
      // 0f: astore 2
      // 10: aload 0
      // 11: invokevirtual com/l7tech/server/solutionkit/SolutionKitManagerImpl.findAll ()Ljava/util/Collection;
      // 14: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 19: astore 3
      // 1a: aload 3
      // 1b: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 20: ifeq a3
      // 23: aload 3
      // 24: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 29: checkcast com/l7tech/gateway/common/solutionkit/SolutionKit
      // 2c: astore 4
      // 2e: aload 4
      // 30: invokevirtual com/l7tech/gateway/common/solutionkit/SolutionKit.getEntityOwnershipDescriptors ()Ljava/util/List;
      // 33: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 38: astore 5
      // 3a: aload 5
      // 3c: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 41: ifeq a0
      // 44: aload 5
      // 46: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 4b: checkcast com/l7tech/gateway/common/solutionkit/EntityOwnershipDescriptor
      // 4e: astore 6
      // 50: aload 2
      // 51: aload 6
      // 53: invokevirtual com/l7tech/gateway/common/solutionkit/EntityOwnershipDescriptor.getEntityId ()Ljava/lang/String;
      // 56: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 5b: checkcast com/l7tech/gateway/common/solutionkit/EntityOwnershipDescriptor
      // 5e: astore 7
      // 60: aload 7
      // 62: ifnull 8f
      // 65: aload 6
      // 67: invokevirtual com/l7tech/gateway/common/solutionkit/EntityOwnershipDescriptor.getVersionStamp ()J
      // 6a: aload 7
      // 6c: invokevirtual com/l7tech/gateway/common/solutionkit/EntityOwnershipDescriptor.getVersionStamp ()J
      // 6f: lcmp
      // 70: iflt 9d
      // 73: goto 7a
      // 76: invokestatic com/l7tech/server/solutionkit/SolutionKitManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 79: athrow
      // 7a: aload 2
      // 7b: aload 6
      // 7d: invokevirtual com/l7tech/gateway/common/solutionkit/EntityOwnershipDescriptor.getEntityId ()Ljava/lang/String;
      // 80: aload 6
      // 82: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 87: pop
      // 88: goto 9d
      // 8b: invokestatic com/l7tech/server/solutionkit/SolutionKitManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8e: athrow
      // 8f: aload 2
      // 90: aload 6
      // 92: invokevirtual com/l7tech/gateway/common/solutionkit/EntityOwnershipDescriptor.getEntityId ()Ljava/lang/String;
      // 95: aload 6
      // 97: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 9c: pop
      // 9d: goto 3a
      // a0: goto 1a
      // a3: aload 2
      // a4: invokeinterface java/util/Map.values ()Ljava/util/Collection; 1
      // a9: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // ae: astore 3
      // af: aload 3
      // b0: invokeinterface java/util/Iterator.hasNext ()Z 1
      // b5: ifeq e9
      // b8: aload 3
      // b9: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // be: checkcast com/l7tech/gateway/common/solutionkit/EntityOwnershipDescriptor
      // c1: astore 4
      // c3: aload 4
      // c5: invokevirtual com/l7tech/gateway/common/solutionkit/EntityOwnershipDescriptor.isReadOnly ()Z
      // c8: ifeq e6
      // cb: aload 1
      // cc: aload 4
      // ce: invokevirtual com/l7tech/gateway/common/solutionkit/EntityOwnershipDescriptor.getEntityType ()Lcom/l7tech/objectmodel/EntityType;
      // d1: aload 4
      // d3: invokevirtual com/l7tech/gateway/common/solutionkit/EntityOwnershipDescriptor.getEntityId ()Ljava/lang/String;
      // d6: invokestatic com/l7tech/util/Pair.pair (Ljava/lang/Object;Ljava/lang/Object;)Lcom/l7tech/util/Pair;
      // d9: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // de: pop
      // df: goto e6
      // e2: invokestatic com/l7tech/server/solutionkit/SolutionKitManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // e5: athrow
      // e6: goto af
      // e9: aload 0
      // ea: getfield com/l7tech/server/solutionkit/SolutionKitManagerImpl.protectedEntityTracker Lcom/l7tech/server/security/rbac/ProtectedEntityTracker;
      // ed: aload 1
      // ee: invokevirtual com/l7tech/server/security/rbac/ProtectedEntityTracker.bulkUpdateReadOnlyEntitiesList (Ljava/util/Collection;)V
      // f1: return
      // try (36 -> 44): 45 com/l7tech/objectmodel/FindException
      // try (38 -> 54): 54 com/l7tech/objectmodel/FindException
      // try (75 -> 86): 87 com/l7tech/objectmodel/FindException
   }

   @Transactional(propagation = Propagation.NOT_SUPPORTED)
   @NotNull
   @Override
   public String importBundles(@NotNull SolutionKitImportInfo var1, boolean var2) throws Exception {
      try {
         if (var1 == null) {
            b(0);
         }
      } catch (GatewayManagementDocumentUtilities.AccessDeniedManagementResponse var21) {
         throw a(var21);
      }

      RestmanInvoker var3 = this.getRestmanInvoker();
      List var4 = var1.getSolutionKitsToDelete();
      Map var5 = var1.getSolutionKitsToInstall();
      SolutionKit var6 = SolutionKitUtils.solutionKitToDisplayForUpgrade(var5.keySet(), var1.getParentSolutionKit());

      String var35;
      try {
         ArrayList var7 = new ArrayList();

         for (SolutionKit var9 : var4) {
            Bundle var10 = (Bundle)MarshallingUtils.unmarshal(Bundle.class, new StreamSource(new StringReader(var9.getUninstallBundle())), true);
            String var10001 = var9.getName();
            String[] var14 = x;
            var10.setName(var10001 + var14[11]);
            var7.add(var10);
         }

         ArrayList var22 = new ArrayList();

         for (Entry var25 : var5.entrySet()) {
            String var11 = ((SolutionKit)var25.getKey()).getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY);
            String var12 = (String)var25.getValue();
            if (InstanceModifier.isValidVersionModifier(var11)) {
               Logger var10000 = m;
               String var10002 = ((SolutionKit)var25.getKey()).getName();
               String[] var31 = x;
               var10000.fine(var31[45] + var11 + var31[46] + var10002);
               RestmanMessage var13 = new RestmanMessage(var12);
               new InstanceModifier(var13.getBundleReferenceItems(), var13.getMappings(), var11).apply();
               var12 = var13.getAsString();
            }

            Bundle var30 = (Bundle)MarshallingUtils.unmarshal(Bundle.class, new StreamSource(new StringReader(var12)), true);
            String var37 = ((SolutionKit)var25.getKey()).getName();
            String[] var32 = x;
            var30.setName(var37 + var32[68]);
            var22.add(var30);
         }

         String var24 = SolutionKitUtils.generateBundleListPayload(var7, var22);
         PolicyEnforcementContext var26 = var3.getContext(var24);
         String[] var33 = x;
         var26.setVariable(var33[41], var33[21] + this.a(var6, var2));

         Pair var27;
         try {
            var27 = this.protectedEntityTracker.doWithEntityProtectionDisabled(this.a(var3, var26, var24));
         } catch (GatewayManagementDocumentUtilities.AccessDeniedManagementResponse | GatewayManagementDocumentUtilities.UnexpectedManagementResponse | InterruptedException var15) {
            throw var15;
         } catch (Exception var16) {
            throw new RuntimeException(var16);
         }

         if (AssertionStatus.NONE != var27.left) {
            var35 = ((AssertionStatus)var27.left).getMessage();
            var33 = x;
            String var29 = var33[34] + var35;
            m.log(Level.WARNING, var29);
            throw new SolutionKitException(((AssertionStatus)var27.left).getMessage());
         }

         label70: {
            try {
               if (var2 || !((RestmanMessage)var27.right).hasMappingErrorFromBundles()) {
                  break label70;
               }
            } catch (GatewayManagementDocumentUtilities.AccessDeniedManagementResponse var17) {
               throw a(var17);
            }

            String var28 = x[17] + ((RestmanMessage)var27.right).getAsString();
            m.log(Level.WARNING, var28);
            throw new BadRequestException(((RestmanMessage)var27.right).getAsString());
         }

         var35 = ((RestmanMessage)var27.right).getAsString();
      } catch (GatewayManagementDocumentUtilities.AccessDeniedManagementResponse | IOException | SAXException var18) {
         m.log(Level.WARNING, ExceptionUtils.getMessage(var18), ExceptionUtils.getDebugException(var18));
         throw new SolutionKitException(ExceptionUtils.getMessage(var18), var18);
      } catch (GatewayManagementDocumentUtilities.UnexpectedManagementResponse var19) {
         m.log(Level.WARNING, ExceptionUtils.getMessage(var19), ExceptionUtils.getDebugException(var19));
         throw this.a(var19);
      } catch (InterruptedException var20) {
         return "";
      }

      if (var35 == null) {
         b(1);
      }

      return var35;
   }

   @Transactional(propagation = Propagation.NOT_SUPPORTED)
   @NotNull
   @Override
   public String importBundle(@NotNull String var1, @NotNull SolutionKit var2, boolean var3) throws Exception {
      try {
         if (var1 == null) {
            b(2);
         }
      } catch (GatewayManagementDocumentUtilities.AccessDeniedManagementResponse var13) {
         throw a(var13);
      }

      try {
         if (var2 == null) {
            b(3);
         }
      } catch (GatewayManagementDocumentUtilities.AccessDeniedManagementResponse var18) {
         throw a(var18);
      }

      RestmanInvoker var4 = this.getRestmanInvoker();

      String var10000;
      try {
         String var6 = var2.getProperty(SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY);
         String var5;
         if (InstanceModifier.isValidVersionModifier(var6)) {
            RestmanMessage var7 = new RestmanMessage(var1);
            new InstanceModifier(var7.getBundleReferenceItems(), var7.getMappings(), var6).apply();
            var5 = var7.getAsString();
         } else {
            var5 = var1;
         }

         PolicyEnforcementContext var19 = var4.getContext(var5);
         String[] var10 = x;
         var19.setVariable(var10[44], var10[54] + this.a(var2, var3));

         Pair var8;
         try {
            var8 = this.protectedEntityTracker.doWithEntityProtectionDisabled(this.a(var4, var19, var5));
         } catch (GatewayManagementDocumentUtilities.AccessDeniedManagementResponse | GatewayManagementDocumentUtilities.UnexpectedManagementResponse | InterruptedException var11) {
            throw var11;
         } catch (Exception var12) {
            throw new RuntimeException(var12);
         }

         if (AssertionStatus.NONE != var8.left) {
            var10000 = ((AssertionStatus)var8.left).getMessage();
            var10 = x;
            String var20 = var10[66] + var10000;
            m.log(Level.WARNING, var20);
            throw new SolutionKitException(((AssertionStatus)var8.left).getMessage());
         }

         label60: {
            try {
               if (var3 || !((RestmanMessage)var8.right).hasMappingError()) {
                  break label60;
               }
            } catch (GatewayManagementDocumentUtilities.AccessDeniedManagementResponse var14) {
               throw a(var14);
            }

            String var9 = x[10] + ((RestmanMessage)var8.right).getAsString();
            m.log(Level.WARNING, var9);
            throw new BadRequestException(((RestmanMessage)var8.right).getAsString());
         }

         var10000 = ((RestmanMessage)var8.right).getAsString();
      } catch (GatewayManagementDocumentUtilities.AccessDeniedManagementResponse | IOException | SAXException var15) {
         m.log(Level.WARNING, ExceptionUtils.getMessage(var15), ExceptionUtils.getDebugException(var15));
         throw new SolutionKitException(ExceptionUtils.getMessage(var15), var15);
      } catch (GatewayManagementDocumentUtilities.UnexpectedManagementResponse var16) {
         m.log(Level.WARNING, ExceptionUtils.getMessage(var16), ExceptionUtils.getDebugException(var16));
         throw this.a(var16);
      } catch (InterruptedException var17) {
         return "";
      }

      if (var10000 == null) {
         b(4);
      }

      return var10000;
   }

   private SolutionKitException a(@NotNull GatewayManagementDocumentUtilities.UnexpectedManagementResponse var1) throws Exception {
      try {
         if (var1 == null) {
            b(5);
         }
      } catch (SAXException var10) {
         throw a(var10);
      }

      try {
         Document var2 = XmlUtil.parse(ExceptionUtils.getMessage(var1));
         Element var10000 = var2.getDocumentElement();
         String var10001 = var2.getNamespaceURI();
         String[] var7 = x;
         Element var3 = XmlUtil.findExactlyOneChildElementByName(var10000, var10001, var7[24]);
         String var4 = XmlUtil.getTextValue(var3, true);
         Element var5 = XmlUtil.findExactlyOneChildElementByName(var2.getDocumentElement(), var2.getNamespaceURI(), var7[63]);
         String var6 = XmlUtil.getTextValue(var5, true);
         if (var7[36].equalsIgnoreCase(var4)) {
            return new BadRequestException(var6);
         }

         try {
            if (var6.contains(x[8])) {
               throw new Exception(var6);
            }
         } catch (SAXException var8) {
            throw a(var8);
         }

         return new SolutionKitException(var6);
      } catch (SAXException | MissingRequiredElementException | TooManyChildElementsException var9) {
         throw var1;
      }
   }

   @Transactional(readOnly = true)
   @NotNull
   @Override
   public List<SolutionKit> findBySolutionKitGuid(@NotNull String var1) throws FindException {
      try {
         if (var1 == null) {
            b(6);
         }
      } catch (Exception var4) {
         throw a(var4);
      }

      List var10000;
      try {
         var10000 = this.a(this.q, x[74], var1);
      } catch (Exception var3) {
         throw new FindException(var3.toString(), var3);
      }

      if (var10000 == null) {
         b(7);
      }

      return var10000;
   }

   private List<SolutionKit> a(@NotNull String var1, @NotNull String var2, @NotNull String var3) throws FindException {
      try {
         if (var1 == null) {
            b(8);
         }
      } catch (Exception var8) {
         throw a(var8);
      }

      try {
         if (var2 == null) {
            b(9);
         }
      } catch (Exception var6) {
         throw a(var6);
      }

      try {
         if (var3 == null) {
            b(10);
         }
      } catch (Exception var7) {
         throw a(var7);
      }

      try {
         return (List<SolutionKit>)this.getHibernateTemplate().execute(new k(this, var1, var2, var3));
      } catch (Exception var5) {
         throw new FindException(var5.toString(), var5);
      }
   }

   @Transactional(readOnly = true)
   @Override
   public SolutionKit findBySolutionKitNameAndIM(@NotNull String var1, @Nullable String var2) throws FindException {
      try {
         if (var1 == null) {
            b(11);
         }
      } catch (Exception var5) {
         throw a(var5);
      }

      try {
         return this.a(this.a(this.r, x[16], var1), var2);
      } catch (Exception var4) {
         throw new FindException(var4.getMessage(), var4);
      }
   }

   @Override
   public SolutionKit findBySolutionKitGuidAndIM(@NotNull String var1, @Nullable String var2) throws FindException {
      try {
         if (var1 == null) {
            b(12);
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      return this.a(this.findBySolutionKitGuid(var1), var2);
   }

   @Nullable
   private SolutionKit a(@NotNull List<SolutionKit> param1, @Nullable String param2) throws IncorrectResultSizeDataAccessException {
      // $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: ifnonnull 10
      // 04: bipush 13
      // 06: invokestatic com/l7tech/server/solutionkit/SolutionKitManagerImpl.b (I)V
      // 09: goto 10
      // 0c: invokestatic com/l7tech/server/solutionkit/SolutionKitManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f: athrow
      // 10: aconst_null
      // 11: astore 3
      // 12: aload 1
      // 13: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 18: astore 4
      // 1a: aload 4
      // 1c: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 21: ifeq 8e
      // 24: aload 4
      // 26: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 2b: checkcast com/l7tech/gateway/common/solutionkit/SolutionKit
      // 2e: astore 5
      // 30: aload 5
      // 32: getstatic com/l7tech/gateway/common/solutionkit/SolutionKit.SK_PROP_INSTANCE_MODIFIER_KEY Ljava/lang/String;
      // 35: invokevirtual com/l7tech/gateway/common/solutionkit/SolutionKit.getProperty (Ljava/lang/String;)Ljava/lang/String;
      // 38: astore 6
      // 3a: aload 2
      // 3b: invokestatic org/apache/commons/lang3/StringUtils.isBlank (Ljava/lang/CharSequence;)Z
      // 3e: ifeq 50
      // 41: aload 6
      // 43: invokestatic org/apache/commons/lang3/StringUtils.isBlank (Ljava/lang/CharSequence;)Z
      // 46: ifne 6b
      // 49: goto 50
      // 4c: invokestatic com/l7tech/server/solutionkit/SolutionKitManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4f: athrow
      // 50: aload 2
      // 51: ifnull 8b
      // 54: goto 5b
      // 57: invokestatic com/l7tech/server/solutionkit/SolutionKitManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5a: athrow
      // 5b: aload 2
      // 5c: aload 6
      // 5e: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 61: ifeq 8b
      // 64: goto 6b
      // 67: invokestatic com/l7tech/server/solutionkit/SolutionKitManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6a: athrow
      // 6b: aload 3
      // 6c: ifnonnull 7c
      // 6f: goto 76
      // 72: invokestatic com/l7tech/server/solutionkit/SolutionKitManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 75: athrow
      // 76: aload 5
      // 78: astore 3
      // 79: goto 8b
      // 7c: new org/springframework/dao/IncorrectResultSizeDataAccessException
      // 7f: dup
      // 80: getstatic com/l7tech/server/solutionkit/SolutionKitManagerImpl.x [Ljava/lang/String;
      // 83: bipush 38
      // 85: aaload
      // 86: bipush 1
      // 87: invokespecial org/springframework/dao/IncorrectResultSizeDataAccessException.<init> (Ljava/lang/String;I)V
      // 8a: athrow
      // 8b: goto 1a
      // 8e: aload 3
      // 8f: areturn
      // try (0 -> 4): 5 org/springframework/dao/IncorrectResultSizeDataAccessException
      // try (23 -> 29): 30 org/springframework/dao/IncorrectResultSizeDataAccessException
      // try (26 -> 34): 35 org/springframework/dao/IncorrectResultSizeDataAccessException
      // try (32 -> 41): 42 org/springframework/dao/IncorrectResultSizeDataAccessException
      // try (37 -> 46): 47 org/springframework/dao/IncorrectResultSizeDataAccessException
   }

   @Override
   public List<SolutionKitHeader> findAllChildrenHeadersByParentGoid(@NotNull Goid var1) throws FindException {
      try {
         if (var1 == null) {
            b(14);
         }
      } catch (Exception var4) {
         throw a(var4);
      }

      try {
         return (List<SolutionKitHeader>)this.getHibernateTemplate().execute(new l(this, var1));
      } catch (Exception var3) {
         throw new FindException(var3.toString(), var3);
      }
   }

   @NotNull
   @Override
   public Collection<SolutionKit> findAllChildrenByParentGoid(@NotNull Goid var1) throws FindException {
      try {
         if (var1 == null) {
            b(15);
         }
      } catch (Exception var4) {
         throw a(var4);
      }

      Collection var10000;
      try {
         var10000 = (Collection)this.getHibernateTemplate().execute(new m(this, var1));
      } catch (Exception var3) {
         throw new FindException(var3.toString(), var3);
      }

      if (var10000 == null) {
         b(16);
      }

      return var10000;
   }

   @Transactional(readOnly = false)
   @Override
   public void decrementEntitiesVersionStamp(@NotNull Collection<String> var1, @NotNull Goid var2) throws UpdateException {
      try {
         if (var1 == null) {
            b(17);
         }
      } catch (Exception var5) {
         throw a(var5);
      }

      try {
         if (var2 == null) {
            b(18);
         }
      } catch (Exception var6) {
         throw a(var6);
      }

      if (!var1.isEmpty()) {
         try {
            this.getHibernateTemplate().execute(new f(this, var1, var2));
         } catch (Exception var4) {
            throw new UpdateException(var4.toString(), var4);
         }
      }
   }

   @NotNull
   @Override
   public ApplicationListener getListener() {
      return new g(this);
   }

   protected SolutionKitHeader newHeader(SolutionKit var1) {
      return new SolutionKitHeader(var1);
   }

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

   protected void setRestmanInvoker(RestmanInvoker var1) {
      this.u = var1;
   }

   protected void setProtectedEntityTracker(ProtectedEntityTracker var1) {
      this.protectedEntityTracker = var1;
   }

   protected void setProtectedEntityTrackerCallable(Callable<Pair<AssertionStatus, RestmanMessage>> var1) {
      this.v = var1;
   }

   private Callable<Pair<AssertionStatus, RestmanMessage>> a(RestmanInvoker var1, PolicyEnforcementContext var2, String var3) {
      try {
         if (this.v != null) {
            return this.v;
         }
      } catch (IllegalStateException var4) {
         throw a(var4);
      }

      return new h(this, var1, var2, var3);
   }

   protected RestmanInvoker getRestmanInvoker() throws SolutionKitException {
      try {
         if (this.u != null) {
            return this.u;
         }
      } catch (IOException var6) {
         throw a(var6);
      }

      if (this.t == null) {
         String[] var4 = x;
         WspReader var1 = (WspReader)this.applicationContext.getBean(var4[6], WspReader.class);
         ServerPolicyFactory var2 = (ServerPolicyFactory)this.applicationContext.getBean(var4[43], ServerPolicyFactory.class);

         try {
            Assertion var3 = var1.parseStrictly(var4[55], Visibility.omitDisabled);
            this.t = var2.compilePolicy(var3, false);
         } catch (IOException | ServerPolicyException | LicenseException var5) {
            m.log(Level.WARNING, ExceptionUtils.getMessage(var5), ExceptionUtils.getDebugException(var5));
            throw new SolutionKitException(x[70], var5);
         }
      }

      i var7 = new i(this);
      return new RestmanInvoker(new j(this), var7);
   }

   protected List<SolutionKitHeader> convertToHTList(@NotNull List<SolutionKit> var1) {
      try {
         if (var1 == null) {
            b(19);
         }
      } catch (IllegalStateException var5) {
         throw a(var5);
      }

      ArrayList var2 = new ArrayList(var1.size());

      for (SolutionKit var4 : var1) {
         var2.add(new SolutionKitHeader(var4));
      }

      return var2;
   }

   private String a(SolutionKit var1, boolean var2) throws UnsupportedEncodingException {
      String[] var6 = x;
      String var3 = MessageFormat.format(var6[64], var1.getName(), var1.getSolutionKitVersion());
      StringBuilder var4 = new StringBuilder().append("?");

      try {
         var4.append(var6[33]).append(URLEncoder.encode(var3, var6[56]));
      } catch (UnsupportedEncodingException var7) {
         var6 = x;
         m.warning(var6[23] + var3 + var6[22]);
         throw var7;
      }

      try {
         if (var2) {
            var4.append(x[37]);
         }
      } catch (UnsupportedEncodingException var8) {
         throw a(var8);
      }

      return var4.toString();
   }

   static {
      String[] var5 = new String[82];
      int var3 = 0;
      String var2 = "P\u001aQ}\u0006IRL\u0019E~\u0011\u0015^\u0012U@\u0011NdT\u0016OW\u0006O\u007fK3Df\u0015T|\u0019\u0017\u0007@`\u0011Sd~\u0018HvT\u00000\u0003\u0007@`\u0011Sd~\u0018Hv\fP\u001aQ}\u0006IRL\u0019E~\u0011\fJ\u0018Mg\u0000T\u007fW<Hf\u0007\u0005\u007f%n_T\tN\u0004Q@\u0011\\t\\\u0005/i\u0005Nf\u0011^d\\\u0013\u0001W\u001aIyM\u000e\u0001F\u0006\\sR\u0012S2\u0017R}I\u0018Ow\u001aI0P\u0004\u0001`\u0011LeP\u0005DvZ\t|\u000fBw\u0004IyV\u0019\u0017\\\u000fDq\u0001Iuh\u0002D`\rnyW\u0010Mw$\\bX\u001a0l\u0019@p\u0018X0M\u0018\u0001{\u001aNdX\u001bM2\u0016H~]\u001bD2\u0010Hu\u0019\u0003N2\u0019\\`I\u001eOuTXbK\u0018SaN7\u000e\u00193D~\u0011Iu\u00195T|\u0010Qu>x\u0005Fg\u0019X~MWG}\u0006\u001dPw\u0018U\\\u0001Q|\u0019\u0007@`\u0015PuM\u0012S2S\u0018c\u001eWNtT\u0018c\u0017RR2\u0019HcMWO}\u0000\u001dr\\WOg\u0018Q\bT\u0012Us\u0010\\dX\u001a_\u001eOv6DCV\u001bTf\u001dR~r\u001eUU\u0001Ttx\u0019E[9\u000fJ\u0018Mg\u0000T\u007fW<Hf:\\}\\\u000fJ\u0018Mg\u0000T\u007fW<Hf:\\}\\1l\u0019@p\u0018X0M\u0018\u0001{\u001aNdX\u001bM2\u0016H~]\u001bDaTYe\\WU}TPqI\u0007H|\u0013\u001duK\u0005N`\u0007\u0007\u001a\u001d]\u0012B`\u0011PuW\u0003d|\u0000TdP\u0012RD\u0011OcP\u0018OA\u0000\\}I4Z\u0018L=\u0018\nd\\\u0014I=\u0007XbO\u0012S=\u0007R|L\u0003H}\u001aVyMXr}\u0018HdP\u0018OY\u001dI]X\u0019@u\u0011OYT\u0007M\rP\u001aQ}\u0006IRL\u0019E~\u0011N\u0010\bY\u0011=\u0016H~]\u001bD=\u0016\\dZ\u001f\r\u001eWTa\u001dSw\u0019\"uTY\u00057l\u0019Dj\u0004XsM\u0012E2\u0011Es\\\u0007U{\u001bS0\\\u0019B}\u0010T~^WQ}\u0018Ts@WSw\u0002TcP\u0018O2\u0017R}T\u0012OfT\u001a\u0004m\u000eQw\u0007\u0019 iW&x0\u0006[\u0002Ov\u0018X\r}\u0012Mw\u0000X0{\u0002Ov\u0018X\u001b_\u001eOv5Q|z\u001fH~\u0010OuW5XB\u0015OuW\u0003f}\u001dY+\u0010WIs\u0007\u001dr\\\u0012O2\u0001MwK\u0016Ew\u0010\u001d\u007fWWh|\u0007IqW\u0014D29RtP\u0011Hw\u0006\u001d*\u0019\u0015_\u001eOv6DCV\u001bTf\u001dR~r\u001eUU\u0001Tt\u000fZ\u0018Od\u0011Odm\u0018iF8TcM\n\u0019>o27qQj$\u0001\u000fO\u0012Sa\u001dR~z\u0018L\u007f\u0011Sd\u0004Ol\u0019@p\u0018X0M\u0018\u0001{\u001aNdX\u001bM2\u0016H~]\u001bDaZ\u001dVX\u001eMw\u0010\u001ddVWH|\u0002R{\\WsW'i0~\u0016Uw\u0003\\i\u0019:@|\u0015ZuT\u0012OfT\\cJ\u0012Sf\u001dR~\u0003W*\u0010WIs\u0007\u001dr\\\u0012O2\u0010X|\\\u0003DvTR~\u0019>Oa\u0000\\~Z\u0012\u0001_\u001bYy_\u001eD`T\u00070\u000fp\u0019Ws\u0018Ttk\u0012R}\u0001Os\\\n\u001f\u0003Da\u0000\u0000dK\u0002D%h\u0002D`\r\u001dtP\u0013\u0001|\u001bI0K\u0012Ug\u0006S0XWT|\u001dLe\\WSw\u0007H|MY\u000ep\u0019Rf\u0015Q|\u00195T|\u0010Qu\u0018\u0017\u0019@\u007f\u0011\u001d-\u0019MR}\u0018HdP\u0018OY\u001dI^X\u001aD\u0012k\u0012Rf3\\d\\\u0000@k9\\~\u0017\u0002S{\u000ej\u0018Mg\u0000T\u007fWWj{\u0000\u001d8\rI\u0018M{\u0017DVX\u0014U}\u0006D\u0012k\u0012Rf3\\d\\\u0000@k9\\~\u0017\u0002S{\u001bx\u0007Q~\u001dXt\u0019\u001eOa\u0000\\~Z\u0012\u0001\u007f\u001bYy_\u001eD`T\u0015\u0014\u0010WL}\u0010TvP\u0014@f\u001dR~JWG}\u0006\u001d\u000bJ\u0018Mg\u0000T\u007fW<Hf\rP\u001aQ}\u0006IRL\u0019E~\u0011N\"_\u001eOv5Q|z\u001fH~\u0010OuW?Ds\u0010XbJ5XB\u0015OuW\u0003f}\u001dY\n\u0019>o27qQj$\u0001\u0015_\u001eOv6DCV\u001bTf\u001dR~r\u001eUU\u0001Tt2\u0010WHaT\\rV\u0002U2\u0000R0[\u0012\u0001{\u001aNdX\u001bMw\u0010\u001d\u007fWWh|\u0007IqW\u0014D29RtP\u0011Hw\u0006\u001d*\u0019\u001b^\u0012UP\rh~P\u0006Tw=ScM\u0016Oq\u0011p\u007f]\u001eG{\u0011O\n\bY\u0011=\u0016H~]\u001bDĴ\u0005\u0000RbNm\u007fU\u001eBkTE}U\u0019R(8\n`\u0004UIf\u0000M*\u0016XVe\u0003\u0013|X\u000eD`CIuZ\u001f\u000fq\u001bP?N\u0004\u000eb\u001bQyZ\u000e\u00032\fP|W\u0004\u001be\u0007M-\u001b\u001fUf\u0004\u0007?\u0016\u0004Bz\u0011PqJYY\u007f\u0018N\u007fX\u0007\u000f}\u0006Z?N\u0004\u000e D\r\"\u0016F\u0013=\u0004R|P\u0014X0J\u0001gJ\u0007\u001bS\u0018Q0N\u0004Q(!Nq^\u0012\u001c0&XaL\u001eSw\u0010\u001f.\u0005;\u0016bNoUj#fs\u0000XgX\u000els\u001a\\w\\\u001aD|\u0000\u0003,u@Q(;Ix\\\u0005us\u0006ZuM:Da\u0007\\w\\!@`\u001d\\rU\u0012\u0001a\u0000OyW\u0010ws\u0018Hu\u0004USw\u0005HuJ\u0003\u0003=J\u0001\\\u000e\u0007\u001bF\u0015Ow\\\u0003\u0001f\u0015Ow\\\u0003\u001c0;iX|%\u0003=J\u0001?u@Q(&xCm0@f\u0011Jq@:@|\u0015ZuT\u0012OfJ\u0001?N\u0004Q(5Q|\u0007K\u000ee\u0007M*i\u0018M{\u0017D.\u0005l#g?L\u000ej\u0018Mg\u0000T\u007fWWj{\u0000\u001d8\nI\u0016Sw\u001aIWV\u001eE\u0015J\u0018Mg\u0000T\u007fW<Hf=P`V\u0005U[\u001a[\u007f\u0006J\u001cm{\u0007Isl'eS x0J\u0018Mg\u0000T\u007fW(J{\u0000b}\\\u0003@2\u0007Xd\u0019\u0001D`\u0007T\u007fW(Rf\u0015P`\u0004\u0001D`\u0007T\u007fW(Rf\u0015P`\u0014F\u0001E<xB|WD|\u0000Td@(HvTT~\u0019_\u001b{\u0010N9\u0019\u0016OvTN\u007fU\u0002U{\u001bSOR\u001eUM\u0013Ry]K\u001f(\u0007VWV\u001eE\t\\\u0019U{\u0000DY]\u0004\u0006}\u0012Us\u001dQ\nBG\\2\\Kk\b\n\b#\u0017\u0004N~\u0001IyV\u0019j{\u0000zeP\u0013\u0001/T\u0007cV\u001bTf\u001dR~r\u001eUU\u0001TtNl\u0019@p\u0018X0M\u0018\u0001{\u001aNdX\u001bM2\u0016H~]\u001bD<T{qP\u001bDvTI\u007f\u0019\u001eOd\u001bVu\u0019%dA \u001dWX\u0003De\u0015D0t\u0016Os\u0013X}\\\u0019U2\u0015Nc\\\u0005U{\u001bS*\u0019Ĵ\u0005\u0000RbNm\u007fU\u001eBkTE}U\u0019R(8\n`\u0004UIf\u0000M*\u0016XVe\u0003\u0013|X\u000eD`CIuZ\u001f\u000fq\u001bP?N\u0004\u000eb\u001bQyZ\u000e\u00032\fP|W\u0004\u001be\u0007M-\u001b\u001fUf\u0004\u0007?\u0016\u0004Bz\u0011PqJYY\u007f\u0018N\u007fX\u0007\u000f}\u0006Z?N\u0004\u000e D\r\"\u0016F\u0013=\u0004R|P\u0014X0J\u0001gJ\u0007\u001bS\u0018Q0N\u0004Q(!Nq^\u0012\u001c0&XaL\u001eSw\u0010\u001f.\u0005;\u0016bNoUj#fs\u0000XgX\u000els\u001a\\w\\\u001aD|\u0000\u0003,u@Q(;Ix\\\u0005us\u0006ZuM:Da\u0007\\w\\!@`\u001d\\rU\u0012\u0001a\u0000OyW\u0010ws\u0018Hu\u0004USw\u0005HuJ\u0003\u0003=J\u0001\\\u000e\u0007\u001bF\u0015Ow\\\u0003\u0001f\u0015Ow\\\u0003\u001c0;iX|%\u0003=J\u0001?u@Q(&xCm0@f\u0011Jq@:@|\u0015ZuT\u0012OfJ\u0001?N\u0004Q(5Q|\u0007K\u000ee\u0007M*i\u0018M{\u0017D.\u000f\u0019>Oa\u0000\\|UWcg\u001aY|\\\u0007\u0019 iW&x0:l\u0019@p\u0018X0M\u0018\u0001{\u001aTdP\u0016M{\u000eX0j\u0012Sd\u0011OB|$uU\u0015IuN\u0016X_\u0015Sq^\u0012Lw\u001aIQJ\u0004D`\u0000T\u007fWY4Z\u0018L=\u0018\nd\\\u0014I=\u0007XbO\u0012S=\u0007R|L\u0003H}\u001aVyMXr}\u0018HdP\u0018OY\u001dI]X\u0019@u\u0011OYT\u0007M\u0002\\\u000f\nI\u0016Ss\u0019kqU\u0002D\u000fJ\u0018Mg\u0000T\u007fW<Hf3Hy]\u0005\u007f%n_T\u000fJ\u0018Mg\u0000T\u007fW<Hf3Hy]\u001b_\u001eOv5Q|z\u001fH~\u0010OuW5XB\u0015OuW\u0003f}\u001dY\tI\u0016Ss\u0019sqT\u0012\u0003Q\u0006M";
      int var4 = "P\u001aQ}\u0006IRL\u0019E~\u0011\u0015^\u0012U@\u0011NdT\u0016OW\u0006O\u007fK3Df\u0015T|\u0019\u0017\u0007@`\u0011Sd~\u0018HvT\u00000\u0003\u0007@`\u0011Sd~\u0018Hv\fP\u001aQ}\u0006IRL\u0019E~\u0011\fJ\u0018Mg\u0000T\u007fW<Hf\u0007\u0005\u007f%n_T\tN\u0004Q@\u0011\\t\\\u0005/i\u0005Nf\u0011^d\\\u0013\u0001W\u001aIyM\u000e\u0001F\u0006\\sR\u0012S2\u0017R}I\u0018Ow\u001aI0P\u0004\u0001`\u0011LeP\u0005DvZ\t|\u000fBw\u0004IyV\u0019\u0017\\\u000fDq\u0001Iuh\u0002D`\rnyW\u0010Mw$\\bX\u001a0l\u0019@p\u0018X0M\u0018\u0001{\u001aNdX\u001bM2\u0016H~]\u001bD2\u0010Hu\u0019\u0003N2\u0019\\`I\u001eOuTXbK\u0018SaN7\u000e\u00193D~\u0011Iu\u00195T|\u0010Qu>x\u0005Fg\u0019X~MWG}\u0006\u001dPw\u0018U\\\u0001Q|\u0019\u0007@`\u0015PuM\u0012S2S\u0018c\u001eWNtT\u0018c\u0017RR2\u0019HcMWO}\u0000\u001dr\\WOg\u0018Q\bT\u0012Us\u0010\\dX\u001a_\u001eOv6DCV\u001bTf\u001dR~r\u001eUU\u0001Ttx\u0019E[9\u000fJ\u0018Mg\u0000T\u007fW<Hf:\\}\\\u000fJ\u0018Mg\u0000T\u007fW<Hf:\\}\\1l\u0019@p\u0018X0M\u0018\u0001{\u001aNdX\u001bM2\u0016H~]\u001bDaTYe\\WU}TPqI\u0007H|\u0013\u001duK\u0005N`\u0007\u0007\u001a\u001d]\u0012B`\u0011PuW\u0003d|\u0000TdP\u0012RD\u0011OcP\u0018OA\u0000\\}I4Z\u0018L=\u0018\nd\\\u0014I=\u0007XbO\u0012S=\u0007R|L\u0003H}\u001aVyMXr}\u0018HdP\u0018OY\u001dI]X\u0019@u\u0011OYT\u0007M\rP\u001aQ}\u0006IRL\u0019E~\u0011N\u0010\bY\u0011=\u0016H~]\u001bD=\u0016\\dZ\u001f\r\u001eWTa\u001dSw\u0019\"uTY\u00057l\u0019Dj\u0004XsM\u0012E2\u0011Es\\\u0007U{\u001bS0\\\u0019B}\u0010T~^WQ}\u0018Ts@WSw\u0002TcP\u0018O2\u0017R}T\u0012OfT\u001a\u0004m\u000eQw\u0007\u0019 iW&x0\u0006[\u0002Ov\u0018X\r}\u0012Mw\u0000X0{\u0002Ov\u0018X\u001b_\u001eOv5Q|z\u001fH~\u0010OuW5XB\u0015OuW\u0003f}\u001dY+\u0010WIs\u0007\u001dr\\\u0012O2\u0001MwK\u0016Ew\u0010\u001d\u007fWWh|\u0007IqW\u0014D29RtP\u0011Hw\u0006\u001d*\u0019\u0015_\u001eOv6DCV\u001bTf\u001dR~r\u001eUU\u0001Tt\u000fZ\u0018Od\u0011Odm\u0018iF8TcM\n\u0019>o27qQj$\u0001\u000fO\u0012Sa\u001dR~z\u0018L\u007f\u0011Sd\u0004Ol\u0019@p\u0018X0M\u0018\u0001{\u001aNdX\u001bM2\u0016H~]\u001bDaZ\u001dVX\u001eMw\u0010\u001ddVWH|\u0002R{\\WsW'i0~\u0016Uw\u0003\\i\u0019:@|\u0015ZuT\u0012OfT\\cJ\u0012Sf\u001dR~\u0003W*\u0010WIs\u0007\u001dr\\\u0012O2\u0010X|\\\u0003DvTR~\u0019>Oa\u0000\\~Z\u0012\u0001_\u001bYy_\u001eD`T\u00070\u000fp\u0019Ws\u0018Ttk\u0012R}\u0001Os\\\n\u001f\u0003Da\u0000\u0000dK\u0002D%h\u0002D`\r\u001dtP\u0013\u0001|\u001bI0K\u0012Ug\u0006S0XWT|\u001dLe\\WSw\u0007H|MY\u000ep\u0019Rf\u0015Q|\u00195T|\u0010Qu\u0018\u0017\u0019@\u007f\u0011\u001d-\u0019MR}\u0018HdP\u0018OY\u001dI^X\u001aD\u0012k\u0012Rf3\\d\\\u0000@k9\\~\u0017\u0002S{\u000ej\u0018Mg\u0000T\u007fWWj{\u0000\u001d8\rI\u0018M{\u0017DVX\u0014U}\u0006D\u0012k\u0012Rf3\\d\\\u0000@k9\\~\u0017\u0002S{\u001bx\u0007Q~\u001dXt\u0019\u001eOa\u0000\\~Z\u0012\u0001\u007f\u001bYy_\u001eD`T\u0015\u0014\u0010WL}\u0010TvP\u0014@f\u001dR~JWG}\u0006\u001d\u000bJ\u0018Mg\u0000T\u007fW<Hf\rP\u001aQ}\u0006IRL\u0019E~\u0011N\"_\u001eOv5Q|z\u001fH~\u0010OuW?Ds\u0010XbJ5XB\u0015OuW\u0003f}\u001dY\n\u0019>o27qQj$\u0001\u0015_\u001eOv6DCV\u001bTf\u001dR~r\u001eUU\u0001Tt2\u0010WHaT\\rV\u0002U2\u0000R0[\u0012\u0001{\u001aNdX\u001bMw\u0010\u001d\u007fWWh|\u0007IqW\u0014D29RtP\u0011Hw\u0006\u001d*\u0019\u001b^\u0012UP\rh~P\u0006Tw=ScM\u0016Oq\u0011p\u007f]\u001eG{\u0011O\n\bY\u0011=\u0016H~]\u001bDĴ\u0005\u0000RbNm\u007fU\u001eBkTE}U\u0019R(8\n`\u0004UIf\u0000M*\u0016XVe\u0003\u0013|X\u000eD`CIuZ\u001f\u000fq\u001bP?N\u0004\u000eb\u001bQyZ\u000e\u00032\fP|W\u0004\u001be\u0007M-\u001b\u001fUf\u0004\u0007?\u0016\u0004Bz\u0011PqJYY\u007f\u0018N\u007fX\u0007\u000f}\u0006Z?N\u0004\u000e D\r\"\u0016F\u0013=\u0004R|P\u0014X0J\u0001gJ\u0007\u001bS\u0018Q0N\u0004Q(!Nq^\u0012\u001c0&XaL\u001eSw\u0010\u001f.\u0005;\u0016bNoUj#fs\u0000XgX\u000els\u001a\\w\\\u001aD|\u0000\u0003,u@Q(;Ix\\\u0005us\u0006ZuM:Da\u0007\\w\\!@`\u001d\\rU\u0012\u0001a\u0000OyW\u0010ws\u0018Hu\u0004USw\u0005HuJ\u0003\u0003=J\u0001\\\u000e\u0007\u001bF\u0015Ow\\\u0003\u0001f\u0015Ow\\\u0003\u001c0;iX|%\u0003=J\u0001?u@Q(&xCm0@f\u0011Jq@:@|\u0015ZuT\u0012OfJ\u0001?N\u0004Q(5Q|\u0007K\u000ee\u0007M*i\u0018M{\u0017D.\u0005l#g?L\u000ej\u0018Mg\u0000T\u007fWWj{\u0000\u001d8\nI\u0016Sw\u001aIWV\u001eE\u0015J\u0018Mg\u0000T\u007fW<Hf=P`V\u0005U[\u001a[\u007f\u0006J\u001cm{\u0007Isl'eS x0J\u0018Mg\u0000T\u007fW(J{\u0000b}\\\u0003@2\u0007Xd\u0019\u0001D`\u0007T\u007fW(Rf\u0015P`\u0004\u0001D`\u0007T\u007fW(Rf\u0015P`\u0014F\u0001E<xB|WD|\u0000Td@(HvTT~\u0019_\u001b{\u0010N9\u0019\u0016OvTN\u007fU\u0002U{\u001bSOR\u001eUM\u0013Ry]K\u001f(\u0007VWV\u001eE\t\\\u0019U{\u0000DY]\u0004\u0006}\u0012Us\u001dQ\nBG\\2\\Kk\b\n\b#\u0017\u0004N~\u0001IyV\u0019j{\u0000zeP\u0013\u0001/T\u0007cV\u001bTf\u001dR~r\u001eUU\u0001TtNl\u0019@p\u0018X0M\u0018\u0001{\u001aNdX\u001bM2\u0016H~]\u001bD<T{qP\u001bDvTI\u007f\u0019\u001eOd\u001bVu\u0019%dA \u001dWX\u0003De\u0015D0t\u0016Os\u0013X}\\\u0019U2\u0015Nc\\\u0005U{\u001bS*\u0019Ĵ\u0005\u0000RbNm\u007fU\u001eBkTE}U\u0019R(8\n`\u0004UIf\u0000M*\u0016XVe\u0003\u0013|X\u000eD`CIuZ\u001f\u000fq\u001bP?N\u0004\u000eb\u001bQyZ\u000e\u00032\fP|W\u0004\u001be\u0007M-\u001b\u001fUf\u0004\u0007?\u0016\u0004Bz\u0011PqJYY\u007f\u0018N\u007fX\u0007\u000f}\u0006Z?N\u0004\u000e D\r\"\u0016F\u0013=\u0004R|P\u0014X0J\u0001gJ\u0007\u001bS\u0018Q0N\u0004Q(!Nq^\u0012\u001c0&XaL\u001eSw\u0010\u001f.\u0005;\u0016bNoUj#fs\u0000XgX\u000els\u001a\\w\\\u001aD|\u0000\u0003,u@Q(;Ix\\\u0005us\u0006ZuM:Da\u0007\\w\\!@`\u001d\\rU\u0012\u0001a\u0000OyW\u0010ws\u0018Hu\u0004USw\u0005HuJ\u0003\u0003=J\u0001\\\u000e\u0007\u001bF\u0015Ow\\\u0003\u0001f\u0015Ow\\\u0003\u001c0;iX|%\u0003=J\u0001?u@Q(&xCm0@f\u0011Jq@:@|\u0015ZuT\u0012OfJ\u0001?N\u0004Q(5Q|\u0007K\u000ee\u0007M*i\u0018M{\u0017D.\u000f\u0019>Oa\u0000\\|UWcg\u001aY|\\\u0007\u0019 iW&x0:l\u0019@p\u0018X0M\u0018\u0001{\u001aTdP\u0016M{\u000eX0j\u0012Sd\u0011OB|$uU\u0015IuN\u0016X_\u0015Sq^\u0012Lw\u001aIQJ\u0004D`\u0000T\u007fWY4Z\u0018L=\u0018\nd\\\u0014I=\u0007XbO\u0012S=\u0007R|L\u0003H}\u001aVyMXr}\u0018HdP\u0018OY\u001dI]X\u0019@u\u0011OYT\u0007M\u0002\\\u000f\nI\u0016Ss\u0019kqU\u0002D\u000fJ\u0018Mg\u0000T\u007fW<Hf3Hy]\u0005\u007f%n_T\u000fJ\u0018Mg\u0000T\u007fW<Hf3Hy]\u001b_\u001eOv5Q|z\u001fH~\u0010OuW5XB\u0015OuW\u0003f}\u001dY\tI\u0016Ss\u0019sqT\u0012\u0003Q\u0006M"
         .length();
      char var1 = '\f';
      int var7 = -1;

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

         while (true) {
            String var8 = b(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     x = var5;
                     String[] var9 = x;
                     w = x[61];
                     n = var9[67];
                     m = Logger.getLogger(SolutionKitManagerImpl.class.getName());
                     return;
                  }

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

                  var2 = "\fM\u001c%e\u0017\u0010\u0005H\u00075N\u0001-!M\u0006\u000fF\u0003&+J\u0016\bj**j\u001d5i\u001b/\u0006\u0004\u001f$S\u0006,\u000e\u0004W2\tK0JI\u00072SN-\u0005PR3B\u001a6\u0018JR/R\u0002/";
                  var4 = "\fM\u001c%e\u0017\u0010\u0005H\u00075N\u0001-!M\u0006\u000fF\u0003&+J\u0016\bj**j\u001d5i\u001b/\u0006\u0004\u001f$S\u0006,\u000e\u0004W2\tK0JI\u00072SN-\u0005PR3B\u001a6\u0018JR/R\u0002/"
                     .length();
                  var1 = 26;
                  var7 = -1;
            }

            var10000 = 58;
            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] ^ 121);
      }

      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 -> 80;
            case 1 -> 30;
            case 2 -> 72;
            case 3 -> 123;
            case 4 -> 29;
            case 5 -> 84;
            default -> 121;
         });
      }

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