package com.l7tech.gateway.common.solutionkit;

import com.l7tech.common.io.NonCloseableOutputStream;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.imp.NamedEntityWithPropertiesImp;
import com.l7tech.security.rbac.RbacAttribute;
import com.l7tech.util.Charsets;
import com.l7tech.util.DeserializeSafe;
import com.l7tech.util.PoolByteArrayOutputStream;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.Lob;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import java.beans.XMLEncoder;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.Size;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import org.jetbrains.annotations.NotNull;

@DeserializeSafe
@Entity
@Proxy(lazy = false)
@Table(name = "solution_kit")
public class SolutionKit extends NamedEntityWithPropertiesImp implements Comparable<SolutionKit> {
   public static final int NAME_FIELD_MAX_LENGTH = 255;
   private static final long serialVersionUID = 6091924030211843475L;
   private static final Charset INSTALL_PROPERTIES_ENCODING;
   public static final String SK_PROP_DESC_KEY;
   public static final String SK_PROP_TIMESTAMP_KEY;
   public static final String SK_PROP_IS_COLLECTION_KEY;
   public static final String SK_PROP_FEATURE_SET_KEY;
   public static final String SK_PROP_CUSTOM_CALLBACK_KEY;
   public static final String SK_PROP_CUSTOM_UI_KEY;
   public static final String SK_PROP_INSTANCE_MODIFIER_KEY;
   public static final String SK_PROP_ALLOW_ADDENDUM_KEY;
   private static final String[] ALL_PROPERTY_KEYS;
   private static final String[] ALL_INSTALL_PROPERTY_KEYS;
   private Goid parentGoid;
   private String sk_guid;
   private String sk_version;
   private transient String installXmlProperties;
   private Map<String, String> installProperties;
   private String mappings;
   private String uninstallBundle;
   private long lastUpdateTime;
   private List<EntityOwnershipDescriptor> entityOwnershipDescriptors;
   private static final String[] b;

   @Column(name = "parent_goid")
   @Type(type = "com.l7tech.server.util.GoidType")
   public Goid getParentGoid() {
      return this.parentGoid;
   }

   public void setParentGoid(Goid var1) {
      this.parentGoid = var1;
   }

   @Column(name = "sk_guid", nullable = false)
   public String getSolutionKitGuid() {
      return this.sk_guid;
   }

   public void setSolutionKitGuid(String var1) {
      this.sk_guid = var1;
   }

   @Column(name = "sk_version", nullable = false)
   @Size(min = 1, max = 16)
   public String getSolutionKitVersion() {
      return this.sk_version;
   }

   public void setSolutionKitVersion(String var1) {
      this.sk_version = var1;
   }

   @Column(name = "install_properties", length = Integer.MAX_VALUE)
   @Lob
   public String getInstallationXmlProperties() {
      if (this.installXmlProperties == null) {
         Map var1 = this.installProperties;

         try {
            if (var1 == null) {
               return null;
            }
         } catch (Throwable var7) {
            throw a(var7);
         }

         PoolByteArrayOutputStream var2 = new PoolByteArrayOutputStream();

         try {
            XMLEncoder var3 = new XMLEncoder(new NonCloseableOutputStream(var2));
            var3.writeObject(var1);
            var3.close();
            this.installXmlProperties = var2.toString(INSTALL_PROPERTIES_ENCODING);
         } catch (Throwable var6) {
            try {
               var2.close();
            } catch (Throwable var5) {
               var6.addSuppressed(var5);
            }

            throw var6;
         }

         var2.close();
      }

      return this.installXmlProperties;
   }

   public void setInstallationXmlProperties(String param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: ifnull 1b
      // 04: aload 1
      // 05: aload 0
      // 06: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.installXmlProperties Ljava/lang/String;
      // 09: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0c: ifeq 1b
      // 0f: goto 16
      // 12: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 15: athrow
      // 16: return
      // 17: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1a: athrow
      // 1b: aload 0
      // 1c: aload 1
      // 1d: putfield com/l7tech/gateway/common/solutionkit/SolutionKit.installXmlProperties Ljava/lang/String;
      // 20: aload 1
      // 21: ifnull 56
      // 24: aload 1
      // 25: invokevirtual java/lang/String.length ()I
      // 28: ifle 56
      // 2b: goto 32
      // 2e: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 31: athrow
      // 32: new com/l7tech/util/SafeXMLDecoderBuilder
      // 35: dup
      // 36: new java/io/ByteArrayInputStream
      // 39: dup
      // 3a: aload 1
      // 3b: getstatic com/l7tech/gateway/common/solutionkit/SolutionKit.INSTALL_PROPERTIES_ENCODING Ljava/nio/charset/Charset;
      // 3e: invokevirtual java/lang/String.getBytes (Ljava/nio/charset/Charset;)[B
      // 41: invokespecial java/io/ByteArrayInputStream.<init> ([B)V
      // 44: invokespecial com/l7tech/util/SafeXMLDecoderBuilder.<init> (Ljava/io/InputStream;)V
      // 47: invokevirtual com/l7tech/util/SafeXMLDecoderBuilder.build ()Lcom/l7tech/util/SafeXMLDecoder;
      // 4a: astore 2
      // 4b: aload 0
      // 4c: aload 2
      // 4d: invokevirtual com/l7tech/util/SafeXMLDecoder.readObject ()Ljava/lang/Object;
      // 50: checkcast java/util/Map
      // 53: putfield com/l7tech/gateway/common/solutionkit/SolutionKit.installProperties Ljava/util/Map;
      // 56: return
      // try (0 -> 7): 8 java/lang/IllegalArgumentException
      // try (2 -> 11): 11 java/lang/IllegalArgumentException
      // try (13 -> 21): 22 java/lang/IllegalArgumentException
   }

   public String getInstallationProperty(String var1) {
      String var2 = null;
      Map var3 = this.installProperties;
      if (var3 != null) {
         var2 = (String)var3.get(var1);
      }

      return var2;
   }

   public void setInstallationProperty(String var1, String var2) {
      Map var3 = this.installProperties;
      if (var3 == null) {
         var3 = new HashMap();
         this.installProperties = var3;
      }

      var3.put(var1, var2);
      this.installXmlProperties = null;
   }

   @Column(name = "mappings", nullable = false, length = Integer.MAX_VALUE)
   @Lob
   public String getMappings() {
      return this.mappings;
   }

   public void setMappings(String var1) {
      this.mappings = var1;
   }

   @Column(name = "uninstall_bundle", length = Integer.MAX_VALUE)
   @Lob
   public String getUninstallBundle() {
      return this.uninstallBundle;
   }

   public void setUninstallBundle(String var1) {
      this.uninstallBundle = var1;
   }

   @Column(name = "last_update_time", nullable = false)
   public long getLastUpdateTime() {
      return this.lastUpdateTime;
   }

   public void setLastUpdateTime(long var1) {
      this.lastUpdateTime = var1;
   }

   @Fetch(FetchMode.SUBSELECT)
   @OneToMany(mappedBy = "solutionKit", cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
   public List<EntityOwnershipDescriptor> getEntityOwnershipDescriptors() {
      return this.entityOwnershipDescriptors;
   }

   public void setEntityOwnershipDescriptors(List<EntityOwnershipDescriptor> var1) {
      this.checkLocked();
      this.entityOwnershipDescriptors = var1;
   }

   public void addEntityOwnershipDescriptors(@NotNull Collection<EntityOwnershipDescriptor> var1) {
      try {
         if (var1 == null) {
            $$$reportNull$$$0(0);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      try {
         this.checkLocked();
         if (null == this.entityOwnershipDescriptors) {
            this.entityOwnershipDescriptors = new ArrayList<>();
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      this.entityOwnershipDescriptors.addAll(var1);
   }

   public void removeEntityOwnershipDescriptors(@NotNull Collection<EntityOwnershipDescriptor> var1) {
      try {
         if (var1 == null) {
            $$$reportNull$$$0(1);
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      try {
         if (null != this.entityOwnershipDescriptors) {
            this.checkLocked();
            this.entityOwnershipDescriptors.removeAll(var1);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }
   }

   @Transient
   @RbacAttribute
   @Size(min = 1, max = 255)
   public String getName() {
      return super.getName();
   }

   @Override
   public boolean equals(Object param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 0
      // 001: aload 1
      // 002: if_acmpne 00b
      // 005: bipush 1
      // 006: ireturn
      // 007: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 00a: athrow
      // 00b: aload 1
      // 00c: ifnull 021
      // 00f: aload 0
      // 010: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 013: aload 1
      // 014: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 017: if_acmpeq 027
      // 01a: goto 021
      // 01d: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 020: athrow
      // 021: bipush 0
      // 022: ireturn
      // 023: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 026: athrow
      // 027: aload 0
      // 028: aload 1
      // 029: invokespecial com/l7tech/objectmodel/imp/NamedEntityWithPropertiesImp.equals (Ljava/lang/Object;)Z
      // 02c: ifne 035
      // 02f: bipush 0
      // 030: ireturn
      // 031: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 034: athrow
      // 035: aload 1
      // 036: checkcast com/l7tech/gateway/common/solutionkit/SolutionKit
      // 039: astore 2
      // 03a: aload 0
      // 03b: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.lastUpdateTime J
      // 03e: aload 2
      // 03f: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.lastUpdateTime J
      // 042: lcmp
      // 043: ifeq 04c
      // 046: bipush 0
      // 047: ireturn
      // 048: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 04b: athrow
      // 04c: aload 0
      // 04d: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.installProperties Ljava/util/Map;
      // 050: ifnull 071
      // 053: aload 0
      // 054: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.installProperties Ljava/util/Map;
      // 057: aload 2
      // 058: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.installProperties Ljava/util/Map;
      // 05b: invokeinterface java/util/Map.equals (Ljava/lang/Object;)Z 2
      // 060: ifne 07e
      // 063: goto 06a
      // 066: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 069: athrow
      // 06a: goto 078
      // 06d: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 070: athrow
      // 071: aload 2
      // 072: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.installProperties Ljava/util/Map;
      // 075: ifnull 07e
      // 078: bipush 0
      // 079: ireturn
      // 07a: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 07d: athrow
      // 07e: aload 0
      // 07f: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.installXmlProperties Ljava/lang/String;
      // 082: ifnull 0a1
      // 085: aload 0
      // 086: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.installXmlProperties Ljava/lang/String;
      // 089: aload 2
      // 08a: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.installXmlProperties Ljava/lang/String;
      // 08d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 090: ifne 0ae
      // 093: goto 09a
      // 096: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 099: athrow
      // 09a: goto 0a8
      // 09d: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0a0: athrow
      // 0a1: aload 2
      // 0a2: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.installXmlProperties Ljava/lang/String;
      // 0a5: ifnull 0ae
      // 0a8: bipush 0
      // 0a9: ireturn
      // 0aa: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0ad: athrow
      // 0ae: aload 0
      // 0af: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.mappings Ljava/lang/String;
      // 0b2: ifnull 0d1
      // 0b5: aload 0
      // 0b6: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.mappings Ljava/lang/String;
      // 0b9: aload 2
      // 0ba: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.mappings Ljava/lang/String;
      // 0bd: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0c0: ifne 0de
      // 0c3: goto 0ca
      // 0c6: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0c9: athrow
      // 0ca: goto 0d8
      // 0cd: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0d0: athrow
      // 0d1: aload 2
      // 0d2: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.mappings Ljava/lang/String;
      // 0d5: ifnull 0de
      // 0d8: bipush 0
      // 0d9: ireturn
      // 0da: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0dd: athrow
      // 0de: aload 0
      // 0df: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.sk_guid Ljava/lang/String;
      // 0e2: ifnull 101
      // 0e5: aload 0
      // 0e6: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.sk_guid Ljava/lang/String;
      // 0e9: aload 2
      // 0ea: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.sk_guid Ljava/lang/String;
      // 0ed: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0f0: ifne 10e
      // 0f3: goto 0fa
      // 0f6: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0f9: athrow
      // 0fa: goto 108
      // 0fd: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 100: athrow
      // 101: aload 2
      // 102: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.sk_guid Ljava/lang/String;
      // 105: ifnull 10e
      // 108: bipush 0
      // 109: ireturn
      // 10a: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 10d: athrow
      // 10e: aload 0
      // 10f: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.sk_version Ljava/lang/String;
      // 112: ifnull 131
      // 115: aload 0
      // 116: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.sk_version Ljava/lang/String;
      // 119: aload 2
      // 11a: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.sk_version Ljava/lang/String;
      // 11d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 120: ifne 13e
      // 123: goto 12a
      // 126: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 129: athrow
      // 12a: goto 138
      // 12d: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 130: athrow
      // 131: aload 2
      // 132: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.sk_version Ljava/lang/String;
      // 135: ifnull 13e
      // 138: bipush 0
      // 139: ireturn
      // 13a: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 13d: athrow
      // 13e: aload 0
      // 13f: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.uninstallBundle Ljava/lang/String;
      // 142: ifnull 161
      // 145: aload 0
      // 146: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.uninstallBundle Ljava/lang/String;
      // 149: aload 2
      // 14a: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.uninstallBundle Ljava/lang/String;
      // 14d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 150: ifne 16e
      // 153: goto 15a
      // 156: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 159: athrow
      // 15a: goto 168
      // 15d: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 160: athrow
      // 161: aload 2
      // 162: getfield com/l7tech/gateway/common/solutionkit/SolutionKit.uninstallBundle Ljava/lang/String;
      // 165: ifnull 16e
      // 168: bipush 0
      // 169: ireturn
      // 16a: invokestatic com/l7tech/gateway/common/solutionkit/SolutionKit.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 16d: athrow
      // 16e: bipush 1
      // 16f: ireturn
      // try (0 -> 5): 5 java/lang/IllegalArgumentException
      // try (7 -> 14): 15 java/lang/IllegalArgumentException
      // try (9 -> 19): 19 java/lang/IllegalArgumentException
      // try (21 -> 27): 27 java/lang/IllegalArgumentException
      // try (32 -> 40): 40 java/lang/IllegalArgumentException
      // try (42 -> 51): 52 java/lang/IllegalArgumentException
      // try (45 -> 55): 55 java/lang/IllegalArgumentException
      // try (57 -> 62): 62 java/lang/IllegalArgumentException
      // try (64 -> 73): 74 java/lang/IllegalArgumentException
      // try (67 -> 77): 77 java/lang/IllegalArgumentException
      // try (79 -> 84): 84 java/lang/IllegalArgumentException
      // try (86 -> 95): 96 java/lang/IllegalArgumentException
      // try (89 -> 99): 99 java/lang/IllegalArgumentException
      // try (101 -> 106): 106 java/lang/IllegalArgumentException
      // try (108 -> 117): 118 java/lang/IllegalArgumentException
      // try (111 -> 121): 121 java/lang/IllegalArgumentException
      // try (123 -> 128): 128 java/lang/IllegalArgumentException
      // try (130 -> 139): 140 java/lang/IllegalArgumentException
      // try (133 -> 143): 143 java/lang/IllegalArgumentException
      // try (145 -> 150): 150 java/lang/IllegalArgumentException
      // try (152 -> 161): 162 java/lang/IllegalArgumentException
      // try (155 -> 165): 165 java/lang/IllegalArgumentException
      // try (167 -> 172): 172 java/lang/IllegalArgumentException
   }

   @Override
   public int hashCode() {
      int var1 = super.hashCode();

      int var10000;
      int var10001;
      label87: {
         try {
            var10000 = 31 * var1;
            if (this.sk_guid != null) {
               var10001 = this.sk_guid.hashCode();
               break label87;
            }
         } catch (IllegalArgumentException var7) {
            throw a(var7);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label79: {
         try {
            var10000 = 31 * var1;
            if (this.sk_version != null) {
               var10001 = this.sk_version.hashCode();
               break label79;
            }
         } catch (IllegalArgumentException var6) {
            throw a(var6);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label71: {
         try {
            var10000 = 31 * var1;
            if (this.installXmlProperties != null) {
               var10001 = this.installXmlProperties.hashCode();
               break label71;
            }
         } catch (IllegalArgumentException var5) {
            throw a(var5);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label63: {
         try {
            var10000 = 31 * var1;
            if (this.installProperties != null) {
               var10001 = this.installProperties.hashCode();
               break label63;
            }
         } catch (IllegalArgumentException var4) {
            throw a(var4);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label55: {
         try {
            var10000 = 31 * var1;
            if (this.mappings != null) {
               var10001 = this.mappings.hashCode();
               break label55;
            }
         } catch (IllegalArgumentException var3) {
            throw a(var3);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label47: {
         try {
            var10000 = 31 * var1;
            if (this.uninstallBundle != null) {
               var10001 = this.uninstallBundle.hashCode();
               break label47;
            }
         } catch (IllegalArgumentException var2) {
            throw a(var2);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;
      return 31 * var1 + (int)(this.lastUpdateTime ^ this.lastUpdateTime >>> 32);
   }

   public int compareTo(@NotNull SolutionKit var1) {
      try {
         if (var1 == null) {
            $$$reportNull$$$0(2);
         }
      } catch (IllegalArgumentException var13) {
         throw a(var13);
      }

      int var2 = String.CASE_INSENSITIVE_ORDER.compare(this.getName(), var1.getName());

      try {
         if (var2 != 0) {
            return var2;
         }
      } catch (IllegalArgumentException var12) {
         throw a(var12);
      }

      int var3 = String.CASE_INSENSITIVE_ORDER.compare(this.getSolutionKitVersion(), var1.getSolutionKitVersion());

      try {
         if (var3 != 0) {
            return var3;
         }
      } catch (IllegalArgumentException var11) {
         throw a(var11);
      }

      String[] var8 = b;
      String var4 = this.getProperty(var8[18]);
      if (var4 == null) {
         var4 = "";
      }

      var8 = b;
      String var5 = var1.getProperty(var8[4]);
      if (var5 == null) {
         var5 = "";
      }

      int var6 = String.CASE_INSENSITIVE_ORDER.compare(var4, var5);

      try {
         if (var6 != 0) {
            return var6;
         }
      } catch (IllegalArgumentException var10) {
         throw a(var10);
      }

      var8 = b;
      int var7 = String.CASE_INSENSITIVE_ORDER.compare(this.getProperty(var8[9]), var1.getProperty(var8[0]));

      try {
         if (var7 != 0) {
            return var7;
         }
      } catch (IllegalArgumentException var9) {
         throw a(var9);
      }

      return (int)(this.getLastUpdateTime() - var1.getLastUpdateTime());
   }

   @NotNull
   public static String[] getPropertyKeys() {
      try {
         return ALL_PROPERTY_KEYS;
      } catch (IllegalArgumentException var0) {
         throw a(var0);
      }
   }

   @NotNull
   public static String[] getInstallPropertyKeys() {
      try {
         return ALL_INSTALL_PROPERTY_KEYS;
      } catch (IllegalArgumentException var0) {
         throw a(var0);
      }
   }

   static {
      String[] var5 = new String[26];
      int var3 = 0;
      String var2 = "cS\u001f\u0007wz_S_\u0003\n*gx\u0003\u0010KfCK\u0016\u0001\u0001q{@C\u0016I\u0017+6\\\u0007[\u0019\u0017q3AHBL\u0016`gZUXL\np\u007fC\rfZ\u0000\u000brRKCS\u0002\u0000p~\bdC\u001f\u0010j~zN\u0010nX\u001f\u0010d}LB{\u0003\u0000luFBD1DY\u0001Ki$[BU\u0004Kbr[BA\r\u001d*p@J[\u0003\n*`@KC\u0018\rj}DNBC7j\u007fZS_\u0003\nNz[\u000f@S\u00184w|_BD\u0018\u001dNvVT\ts_\u0001\u0001VgNJF\fnE/\u000bi\u007fJDB\u0005\u000bk\u000bcS\u001f\u0007wz_S_\u0003\n\ts_\u0001\u0001VgNJF\u0016@S\u0018-k`[FZ\u00004w|_BD\u0018\u001dNvVT US\u0001\u000bsvjIB\u0005\u0010|\\XIS\u001e\u0017mz_cS\u001f\u0007wz_SY\u001e\u0017\naS\r\u0010paJtS\u0018\tDY\u0001\u0014daJsY\u000edC\u001f\u0010j~lFZ\u0000\u0006dpD\u001aBX\u0018\rqj`PX\t\u0016v{FWr\t\u0017faFWB\u0003\u0016v>fD\u000b\u0011hvAS\u0016\n\u000bw3oiY\u0018*p\u007fC\u0007F\r\u0016d~JSS\u001eD\"6\\\u0000\u0016\u0003\u0002%6\\\t\u0013\u001fDhf\\S\u0016\u0002\u000bq3MB\u0016\u0002\u0011i\u007f\u0010nX\u001f\u0010d}LB{\u0003\u0000luFBD\bdC\u001f\u0010j~zN1DY\u0001Ki$[BU\u0004Kbr[BA\r\u001d*p@J[\u0003\n*`@KC\u0018\rj}DNBC7j\u007fZS_\u0003\nNz[\naS\r\u0010paJtS\u0018\u001dFR\b!kgFSO#\u0013kv]T^\u0005\u0014Av\\DD\u0005\u0014q|]T\fnE/\u000bi\u007fJDB\u0005\u000bk";
      int var4 = "cS\u001f\u0007wz_S_\u0003\n*gx\u0003\u0010KfCK\u0016\u0001\u0001q{@C\u0016I\u0017+6\\\u0007[\u0019\u0017q3AHBL\u0016`gZUXL\np\u007fC\rfZ\u0000\u000brRKCS\u0002\u0000p~\bdC\u001f\u0010j~zN\u0010nX\u001f\u0010d}LB{\u0003\u0000luFBD1DY\u0001Ki$[BU\u0004Kbr[BA\r\u001d*p@J[\u0003\n*`@KC\u0018\rj}DNBC7j\u007fZS_\u0003\nNz[\u000f@S\u00184w|_BD\u0018\u001dNvVT\ts_\u0001\u0001VgNJF\fnE/\u000bi\u007fJDB\u0005\u000bk\u000bcS\u001f\u0007wz_S_\u0003\n\ts_\u0001\u0001VgNJF\u0016@S\u0018-k`[FZ\u00004w|_BD\u0018\u001dNvVT US\u0001\u000bsvjIB\u0005\u0010|\\XIS\u001e\u0017mz_cS\u001f\u0007wz_SY\u001e\u0017\naS\r\u0010paJtS\u0018\tDY\u0001\u0014daJsY\u000edC\u001f\u0010j~lFZ\u0000\u0006dpD\u001aBX\u0018\rqj`PX\t\u0016v{FWr\t\u0017faFWB\u0003\u0016v>fD\u000b\u0011hvAS\u0016\n\u000bw3oiY\u0018*p\u007fC\u0007F\r\u0016d~JSS\u001eD\"6\\\u0000\u0016\u0003\u0002%6\\\t\u0013\u001fDhf\\S\u0016\u0002\u000bq3MB\u0016\u0002\u0011i\u007f\u0010nX\u001f\u0010d}LB{\u0003\u0000luFBD\bdC\u001f\u0010j~zN1DY\u0001Ki$[BU\u0004Kbr[BA\r\u001d*p@J[\u0003\n*`@KC\u0018\rj}DNBC7j\u007fZS_\u0003\nNz[\naS\r\u0010paJtS\u0018\u001dFR\b!kgFSO#\u0013kv]T^\u0005\u0014Av\\DD\u0005\u0014q|]T\fnE/\u000bi\u007fJDB\u0005\u000bk"
         .length();
      char var1 = 11;
      int var7 = -1;

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

         while (true) {
            String var9 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     b = var5;
                     String[] var10 = b;
                     SK_PROP_DESC_KEY = b[0];
                     SK_PROP_CUSTOM_CALLBACK_KEY = var10[25];
                     SK_PROP_INSTANCE_MODIFIER_KEY = var10[4];
                     SK_PROP_FEATURE_SET_KEY = var10[21];
                     SK_PROP_ALLOW_ADDENDUM_KEY = var10[24];
                     SK_PROP_TIMESTAMP_KEY = var10[7];
                     SK_PROP_CUSTOM_UI_KEY = var10[19];
                     SK_PROP_IS_COLLECTION_KEY = var10[8];
                     INSTALL_PROPERTIES_ENCODING = Charsets.UTF8;
                     String[] var11 = new String[8];
                     String[] var8 = b;
                     var11[0] = var8[0];
                     var11[1] = var8[10];
                     var11[2] = var8[23];
                     var11[3] = var8[13];
                     var11[4] = var8[15];
                     var11[5] = var8[3];
                     var11[6] = var8[4];
                     var11[7] = var8[2];
                     ALL_PROPERTY_KEYS = var11;
                     ALL_INSTALL_PROPERTY_KEYS = new String[0];
                     return;
                  }

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

                  var2 = "sO\u0015\u001egG^VF\u0017\u0015ek\u000eqV\n\u0005\u007fkySO\u0015\u0013qeQ";
                  var4 = "sO\u0015\u001egG^VF\u0017\u0015ek\u000eqV\n\u0005\u007fkySO\u0015\u0013qeQ".length();
                  var1 = '\r';
                  var7 = -1;
            }

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

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

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

      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 -> 93;
            case 1 -> 76;
            case 2 -> 22;
            case 3 -> 30;
            case 4 -> 127;
            case 5 -> 105;
            default -> 85;
         });
      }

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