package com.l7tech.objectmodel.encass;

import com.l7tech.objectmodel.GuidEntity;
import com.l7tech.objectmodel.JaxbMapType;
import com.l7tech.objectmodel.imp.ZoneableNamedEntityImp;
import com.l7tech.objectmodel.migration.Migration;
import com.l7tech.policy.Policy;
import com.l7tech.security.rbac.RbacAttribute;
import com.l7tech.util.BeanUtils;
import com.l7tech.util.DeserializeSafe;
import com.l7tech.util.Functions;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.Inheritance;
import jakarta.persistence.InheritanceType;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.JoinTable;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.MapKeyColumn;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlElementWrapper;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.validation.Valid;
import javax.validation.constraints.Size;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Proxy;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

@XmlRootElement(name = "EncapsulatedAssertion")
@XmlType(propOrder = {"policy", "argumentDescriptors", "resultDescriptors", "properties"})
@Entity
@Proxy(lazy = false)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "encapsulated_assertion")
@DeserializeSafe
public class EncapsulatedAssertionConfig extends ZoneableNamedEntityImp implements GuidEntity {
   public static final String PROP_PALETTE_FOLDER;
   public static final String PROP_DESCRIPTION;
   public static final String PROP_ICON_BASE64;
   public static final String PROP_ARTIFACT_VERSION;
   public static final String PROP_POLICY_GUID;
   public static final String ICON_RESOURCE_DIRECTORY;
   public static final String PROP_ICON_RESOURCE_FILENAME;
   public static final String DEFAULT_ICON_RESOURCE_FILENAME;
   public static final String PROP_ALLOW_TRACING;
   public static final String PROP_PASS_METRICS_TO_PARENT;
   public static final String PROP_POLICY_NODE_NAME_TEMPLATE;
   public static final String PROP_SERVICE_INTERFACE;
   public static final String PROP_SERVICE_METHOD;
   public static final String PROP_EPHEMERAL;
   private String guid;
   private Policy policy;
   private Set<EncapsulatedAssertionArgumentDescriptor> argumentDescriptors = new HashSet<>();
   private Set<EncapsulatedAssertionResultDescriptor> resultDescriptors = new HashSet<>();
   private Map<String, String> properties = new HashMap<>();
   static final long serialVersionUID = -7488731003144268400L;
   private static final String[] b;

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

   @RbacAttribute
   @Column(name = "guid", nullable = false, length = 255)
   @XmlAttribute(name = "guid")
   @Nullable
   @Override
   public String getGuid() {
      return this.guid;
   }

   @Override
   public void setGuid(String var1) {
      this.checkLocked();
      this.guid = var1;
   }

   @Valid
   @Migration(dependency = true)
   @ManyToOne
   @JoinColumn(name = "policy_goid")
   @XmlElement(name = "Policy")
   @XmlJavaTypeAdapter(PolicyAdapter.class)
   @Nullable
   public Policy getPolicy() {
      return this.policy;
   }

   public void setPolicy(@Nullable Policy 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 0
      // 01: invokevirtual com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.checkLocked ()V
      // 04: aload 0
      // 05: aload 1
      // 06: putfield com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.policy Lcom/l7tech/policy/Policy;
      // 09: aload 1
      // 0a: ifnull 30
      // 0d: aload 1
      // 0e: invokevirtual com/l7tech/policy/Policy.getGuid ()Ljava/lang/String;
      // 11: ifnull 30
      // 14: goto 1b
      // 17: invokestatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: aload 0
      // 1c: getstatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.b [Ljava/lang/String;
      // 1f: bipush 26
      // 21: aaload
      // 22: aload 1
      // 23: invokevirtual com/l7tech/policy/Policy.getGuid ()Ljava/lang/String;
      // 26: invokevirtual com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.putProperty (Ljava/lang/String;Ljava/lang/String;)V
      // 29: goto 3a
      // 2c: invokestatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2f: athrow
      // 30: aload 0
      // 31: getstatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.b [Ljava/lang/String;
      // 34: bipush 15
      // 36: aaload
      // 37: invokevirtual com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.removeProperty (Ljava/lang/String;)V
      // 3a: return
      // try (0 -> 10): 11 java/lang/RuntimeException
      // try (7 -> 21): 21 java/lang/RuntimeException
   }

   public void detachPolicy() {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getfield com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.policy Lcom/l7tech/policy/Policy;
      // 04: ifnull 30
      // 07: aload 0
      // 08: getfield com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.policy Lcom/l7tech/policy/Policy;
      // 0b: invokevirtual com/l7tech/policy/Policy.getGuid ()Ljava/lang/String;
      // 0e: ifnull 30
      // 11: goto 18
      // 14: invokestatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 17: athrow
      // 18: aload 0
      // 19: getstatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.b [Ljava/lang/String;
      // 1c: bipush 15
      // 1e: aaload
      // 1f: aload 0
      // 20: getfield com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.policy Lcom/l7tech/policy/Policy;
      // 23: invokevirtual com/l7tech/policy/Policy.getGuid ()Ljava/lang/String;
      // 26: invokevirtual com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.putProperty (Ljava/lang/String;Ljava/lang/String;)V
      // 29: goto 30
      // 2c: invokestatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2f: athrow
      // 30: aload 0
      // 31: aconst_null
      // 32: putfield com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.policy Lcom/l7tech/policy/Policy;
      // 35: return
      // try (0 -> 7): 8 java/lang/RuntimeException
      // try (3 -> 18): 19 java/lang/RuntimeException
   }

   @Fetch(FetchMode.SUBSELECT)
   @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "encapsulatedAssertionConfig", orphanRemoval = true)
   @XmlElementWrapper(name = "EncapsulatedAssertionArguments")
   @XmlElement(name = "EncapsulatedAssertionArgument")
   @Migration(dependency = false)
   public Set<EncapsulatedAssertionArgumentDescriptor> getArgumentDescriptors() {
      return this.argumentDescriptors;
   }

   public void setArgumentDescriptors(@Nullable Set<EncapsulatedAssertionArgumentDescriptor> var1) {
      this.checkLocked();
      this.argumentDescriptors = var1;
   }

   @Fetch(FetchMode.SUBSELECT)
   @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "encapsulatedAssertionConfig", orphanRemoval = true)
   @XmlElementWrapper(name = "EncapsulatedAssertionResults")
   @XmlElement(name = "EncapsulatedAssertionResult")
   @Migration(dependency = false)
   public Set<EncapsulatedAssertionResultDescriptor> getResultDescriptors() {
      return this.resultDescriptors;
   }

   public void setResultDescriptors(Set<EncapsulatedAssertionResultDescriptor> var1) {
      this.checkLocked();
      this.resultDescriptors = var1;
   }

   @Transient
   @Nullable
   public String getProperty(@NotNull String var1) {
      try {
         if (var1 == null) {
            $$$reportNull$$$0(0);
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      return this.properties.get(var1);
   }

   @Transient
   public boolean getBooleanProperty(@NotNull String var1) {
      try {
         if (var1 == null) {
            $$$reportNull$$$0(1);
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      return Boolean.parseBoolean(this.getProperty(var1));
   }

   public void putProperty(@NotNull String var1, @NotNull String var2) {
      try {
         if (var1 == null) {
            $$$reportNull$$$0(2);
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }

      try {
         if (var2 == null) {
            $$$reportNull$$$0(3);
         }
      } catch (RuntimeException var4) {
         throw a(var4);
      }

      this.checkLocked();
      this.properties.put(var1, var2);
   }

   @Transient
   public void putBooleanProperty(@NotNull String var1, boolean var2) {
      try {
         if (var1 == null) {
            $$$reportNull$$$0(4);
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }

      this.putProperty(var1, Boolean.toString(var2));
   }

   @Transient
   @NotNull
   public Set<String> getPropertyNames() {
      return new HashSet<>(this.properties.keySet());
   }

   public void removeProperty(@NotNull String var1) {
      try {
         if (var1 == null) {
            $$$reportNull$$$0(5);
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      this.checkLocked();
      this.properties.remove(var1);
   }

   @Fetch(FetchMode.SUBSELECT)
   @ElementCollection(fetch = FetchType.EAGER)
   @JoinTable(name = "encapsulated_assertion_property", joinColumns = @JoinColumn(name = "encapsulated_assertion_goid", referencedColumnName = "goid"))
   @MapKeyColumn(name = "name", length = 128)
   @Column(name = "value", nullable = false, length = 32672)
   @XmlElement(name = "Properties")
   @XmlJavaTypeAdapter(JaxbMapType.JaxbMapTypeAdapter.class)
   public Map<String, String> getProperties() {
      return this.properties;
   }

   public void setProperties(Map<String, String> var1) {
      this.checkLocked();
      this.properties = var1;
   }

   public boolean hasAtLeastOneGuiParameter() {
      Set var1 = this.getArgumentDescriptors();

      try {
         if (var1 == null) {
            return false;
         }
      } catch (RuntimeException var5) {
         throw a(var5);
      }

      for (EncapsulatedAssertionArgumentDescriptor var3 : this.argumentDescriptors) {
         try {
            if (var3.isGuiPrompt()) {
               return true;
            }
         } catch (RuntimeException var4) {
            throw a(var4);
         }
      }

      return false;
   }

   @Migration(dependency = false)
   public List<EncapsulatedAssertionArgumentDescriptor> sortedArguments() {
      return Functions.sort(this.getArgumentDescriptors(), new a(this));
   }

   @Transient
   @Migration(dependency = false)
   public EncapsulatedAssertionConfig getCopy() {
      return this.getCopy(false);
   }

   @Transient
   @Migration(dependency = false)
   private EncapsulatedAssertionConfig getCopy(boolean var1) {
      try {
         EncapsulatedAssertionConfig var2 = new EncapsulatedAssertionConfig();
         Set var10002 = BeanUtils.getProperties(this.getClass());
         String[] var10003 = new String[4];
         String[] var9 = b;
         var10003[0] = var9[0];
         var10003[1] = var9[25];
         var10003[2] = var9[17];
         var10003[3] = var9[31];
         BeanUtils.copyProperties(this, var2, BeanUtils.omitProperties(var10002, var10003));
         var2.setProperties(new HashMap<>(this.getProperties()));
         HashSet var3 = new HashSet();
         Set var4 = this.getArgumentDescriptors();
         if (var4 != null) {
            for (EncapsulatedAssertionArgumentDescriptor var6 : var4) {
               var3.add(var6.getCopy(var2, var1));
            }
         }

         var2.setArgumentDescriptors(var3);
         HashSet var14 = new HashSet();
         Set var15 = this.getResultDescriptors();
         if (var15 != null) {
            for (EncapsulatedAssertionResultDescriptor var8 : var15) {
               var14.add(var8.getCopy(var2, var1));
            }
         }

         var2.setResultDescriptors(var14);
         Policy var16 = this.getPolicy();

         EncapsulatedAssertionConfig var10000;
         Policy var10001;
         label40: {
            try {
               var10000 = var2;
               if (var16 == null) {
                  var10001 = null;
                  break label40;
               }
            } catch (InvocationTargetException var11) {
               throw a(var11);
            }

            var10001 = new Policy(var16, null, var1, null);
         }

         try {
            var10000.setPolicy(var10001);
            if (var1) {
               var2.lock();
            }
         } catch (InvocationTargetException var10) {
            throw a(var10);
         }

         return var2;
      } catch (InvocationTargetException var12) {
         throw new RuntimeException(var12);
      } catch (IllegalAccessException var13) {
         throw new RuntimeException(var13);
      }
   }

   @Transient
   @Migration(dependency = false)
   public EncapsulatedAssertionConfig getReadOnlyCopy() {
      EncapsulatedAssertionConfig var1 = this.getCopy(true);
      var1.setReadOnly();
      return var1;
   }

   private void setReadOnly() {
      this.getArgumentDescriptors();
      this.getResultDescriptors();
      this.getPropertyNames();
      this.lock();
   }

   @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:
      // 00: aload 0
      // 01: aload 1
      // 02: if_acmpne 0b
      // 05: bipush 1
      // 06: ireturn
      // 07: invokestatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a: athrow
      // 0b: aload 1
      // 0c: instanceof com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig
      // 0f: ifne 18
      // 12: bipush 0
      // 13: ireturn
      // 14: invokestatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 17: athrow
      // 18: aload 0
      // 19: aload 1
      // 1a: invokespecial com/l7tech/objectmodel/imp/ZoneableNamedEntityImp.equals (Ljava/lang/Object;)Z
      // 1d: ifne 26
      // 20: bipush 0
      // 21: ireturn
      // 22: invokestatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 25: athrow
      // 26: aload 1
      // 27: checkcast com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig
      // 2a: astore 2
      // 2b: aload 0
      // 2c: getfield com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.guid Ljava/lang/String;
      // 2f: ifnull 4e
      // 32: aload 0
      // 33: getfield com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.guid Ljava/lang/String;
      // 36: aload 2
      // 37: getfield com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.guid Ljava/lang/String;
      // 3a: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 3d: ifne 55
      // 40: goto 47
      // 43: invokestatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 46: athrow
      // 47: goto 5d
      // 4a: invokestatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4d: athrow
      // 4e: aload 2
      // 4f: getfield com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.guid Ljava/lang/String;
      // 52: ifnonnull 5d
      // 55: bipush 1
      // 56: goto 5e
      // 59: invokestatic com/l7tech/objectmodel/encass/EncapsulatedAssertionConfig.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5c: athrow
      // 5d: bipush 0
      // 5e: ireturn
      // try (0 -> 5): 5 java/lang/RuntimeException
      // try (7 -> 12): 12 java/lang/RuntimeException
      // try (14 -> 20): 20 java/lang/RuntimeException
      // try (25 -> 34): 35 java/lang/RuntimeException
      // try (28 -> 38): 38 java/lang/RuntimeException
      // try (40 -> 45): 45 java/lang/RuntimeException
   }

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

      int var10000;
      try {
         var10000 = 31 * var1;
         if (this.guid != null) {
            return var10000 + this.guid.hashCode();
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      return var10000 + 0;
   }

   @Override
   public String toString() {
      String var10000 = String.valueOf(this.getGoid());
      String var10001 = this.getGuid();
      String var10002 = this.getName();
      String var10003 = String.valueOf(this.policy);
      String var10004 = String.valueOf(this.argumentDescriptors);
      String var10005 = String.valueOf(this.resultDescriptors);
      String var1 = String.valueOf(this.properties);
      String var2 = var10005;
      String var3 = var10004;
      String var4 = var10003;
      String var5 = var10002;
      String var6 = var10001;
      String var7 = var10000;
      String[] var8 = b;
      return var8[33] + var7 + var8[6] + var6 + var8[14] + var5 + var8[1] + var4 + var8[2] + var3 + var8[10] + var2 + var8[23] + var1 + var8[22];
   }

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

   static {
      String[] var5 = new String[37];
      int var3 = 0;
      String var2 = "5\u0014\u001c\u0003U\u0012N,\u0003\u0000\nbJS\u0003_\fS&\u001fN\u0017OJS\u0012B\u0007O(\u0003\u001d\u0007t\u0005I&\u0014\u001a\u0003D\u000fH6[\u000b\"\u0003\u0007#B\u000fJ \u0014\u0007\n\u00135\u0007\u0000\u0000}\u0005N7\u000f\u0010\u0000d\u000fj$\u0014\u0016\u001dD\u001d&\t\u001e\\\\WN \u0005\u001b\\S\u000fT6\t\u001f\u0016\u001f\u0012_6\t\u0006\u0001S\u0005Ij\biF\u0014\u0006Y\u0004\u0007b\n6\u0012\u0012\u0001\u0001V\u0014\"\u000f\u0015\f5\u0014\u001c\u0003U\u0012N<(\u0012\u001eU\u000f$\u0014\u0007\u001aV\u0001Y10\u0016\u0001C\tU+\u0015OJS\u0001U\u0013O)\u00127\u0016C\u0003H,\u0016\u0007\u001cB\u0013\u0007\u0012\"\u0003\u00071_\u000fV \u0007\u001d#B\u000fJ \u0014\u0007\n\u00115\u0007\u001f\u0016D\u0014_\f\u0005\u001c\u001dr\u0001I PG\u00175\u0007\u001f\u0016D\u0014_\f\u0005\u001c\u001db\u0005I*\u0013\u0001\u0010U.[(\u0003\tbJS\u001dQ\r_xA\n5\t\u001f\u001aS\u0019}0\u000f\u0017\u00106\u0003\u0001\u0005Y\u0003_\f\b\u0007\u0016B\u0006[&\u0003\u00117\u0003\u0000\u0006\\\u0014~ \u0015\u0010\u0001Y\u0010N*\u0014\u0000\u000e7\u0003\u001e\u001cF\u0005j7\t\u0003\u0016B\u0014C\u000b!\u0003\u0000\u0010B\tJ1\u000f\u001c\u001d9&\t\u001e\\\\WN \u0005\u001b\\_\u0002P \u0005\u0007\u001e_\u0004_)I\u0016\u001dS\u0001I6I6\u001dS\u0001J6\u0013\u001f\u0012D\u0005^\u0004\u0015\u0000\u0016B\u0014S*\b0\u001c^\u0006S\"\r6\u0003\u0001\u0005Y\u0003_\b\u0003\u0007\u001b_\u0004\u00028l\u000eOJS\u0003B\u000fJ \u0014\u0007\u001aU\u0013\u0007\f$\n\u001f\u001cG4H$\u0005\u001a\u001dW\u0013$\u0014\u0014\u0006]\u0005T1\"\u0016\u0000S\u0012S5\u0012\u001c\u0001C\n5\t\u001f\u001aS\u0019}0\u000f\u0017\u00165\t\u001f\u001aS\u0019t*\u0002\u0016=Q\r_\u0011\u0003\u001e\u0003\\\u0001N \t \u0016\u001b\u0016]\u0005H$\n\u000b5\u0013\u0007#B\u000fJ \u0014\u0007\n\r5\u0007\u001f\u0016D\u0014_\u0003\t\u001f\u0017U\u0012\u00065\t\u001f\u001aS\u0019\u00053\u0007\u001f\u0006U!\u0000\b\u0010\u0012@\u0013O)\u0007\u0007\u0016T!I6\u0003\u0001\u0007Y\u000fT\u0006\t\u001d\u0015Y\u0007A\"\t\u001a\u0017\r\u0003.\u0003\n";
      int var4 = "5\u0014\u001c\u0003U\u0012N,\u0003\u0000\nbJS\u0003_\fS&\u001fN\u0017OJS\u0012B\u0007O(\u0003\u001d\u0007t\u0005I&\u0014\u001a\u0003D\u000fH6[\u000b\"\u0003\u0007#B\u000fJ \u0014\u0007\n\u00135\u0007\u0000\u0000}\u0005N7\u000f\u0010\u0000d\u000fj$\u0014\u0016\u001dD\u001d&\t\u001e\\\\WN \u0005\u001b\\S\u000fT6\t\u001f\u0016\u001f\u0012_6\t\u0006\u0001S\u0005Ij\biF\u0014\u0006Y\u0004\u0007b\n6\u0012\u0012\u0001\u0001V\u0014\"\u000f\u0015\f5\u0014\u001c\u0003U\u0012N<(\u0012\u001eU\u000f$\u0014\u0007\u001aV\u0001Y10\u0016\u0001C\tU+\u0015OJS\u0001U\u0013O)\u00127\u0016C\u0003H,\u0016\u0007\u001cB\u0013\u0007\u0012\"\u0003\u00071_\u000fV \u0007\u001d#B\u000fJ \u0014\u0007\n\u00115\u0007\u001f\u0016D\u0014_\f\u0005\u001c\u001dr\u0001I PG\u00175\u0007\u001f\u0016D\u0014_\f\u0005\u001c\u001db\u0005I*\u0013\u0001\u0010U.[(\u0003\tbJS\u001dQ\r_xA\n5\t\u001f\u001aS\u0019}0\u000f\u0017\u00106\u0003\u0001\u0005Y\u0003_\f\b\u0007\u0016B\u0006[&\u0003\u00117\u0003\u0000\u0006\\\u0014~ \u0015\u0010\u0001Y\u0010N*\u0014\u0000\u000e7\u0003\u001e\u001cF\u0005j7\t\u0003\u0016B\u0014C\u000b!\u0003\u0000\u0010B\tJ1\u000f\u001c\u001d9&\t\u001e\\\\WN \u0005\u001b\\_\u0002P \u0005\u0007\u001e_\u0004_)I\u0016\u001dS\u0001I6I6\u001dS\u0001J6\u0013\u001f\u0012D\u0005^\u0004\u0015\u0000\u0016B\u0014S*\b0\u001c^\u0006S\"\r6\u0003\u0001\u0005Y\u0003_\b\u0003\u0007\u001b_\u0004\u00028l\u000eOJS\u0003B\u000fJ \u0014\u0007\u001aU\u0013\u0007\f$\n\u001f\u001cG4H$\u0005\u001a\u001dW\u0013$\u0014\u0014\u0006]\u0005T1\"\u0016\u0000S\u0012S5\u0012\u001c\u0001C\n5\t\u001f\u001aS\u0019}0\u000f\u0017\u00165\t\u001f\u001aS\u0019t*\u0002\u0016=Q\r_\u0011\u0003\u001e\u0003\\\u0001N \t \u0016\u001b\u0016]\u0005H$\n\u000b5\u0013\u0007#B\u000fJ \u0014\u0007\n\r5\u0007\u001f\u0016D\u0014_\u0003\t\u001f\u0017U\u0012\u00065\t\u001f\u001aS\u0019\u00053\u0007\u001f\u0006U!\u0000\b\u0010\u0012@\u0013O)\u0007\u0007\u0016T!I6\u0003\u0001\u0007Y\u000fT\u0006\t\u001d\u0015Y\u0007A\"\t\u001a\u0017\r\u0003.\u0003\n"
         .length();
      char var1 = '\n';
      int var7 = -1;

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

         while (true) {
            String var8 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     b = var5;
                     String[] var9 = b;
                     PROP_EPHEMERAL = b[28];
                     PROP_SERVICE_INTERFACE = var9[16];
                     PROP_PALETTE_FOLDER = var9[30];
                     ICON_RESOURCE_DIRECTORY = var9[5];
                     PROP_POLICY_GUID = var9[15];
                     PROP_SERVICE_METHOD = var9[21];
                     PROP_POLICY_NODE_NAME_TEMPLATE = var9[27];
                     PROP_ARTIFACT_VERSION = var9[9];
                     PROP_PASS_METRICS_TO_PARENT = var9[4];
                     PROP_ICON_BASE64 = var9[12];
                     PROP_ALLOW_TRACING = var9[24];
                     PROP_DESCRIPTION = var9[19];
                     DEFAULT_ICON_RESOURCE_FILENAME = var9[7];
                     PROP_ICON_RESOURCE_FILENAME = var9[13];
                     return;
                  }

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

                  var2 = ":\u001c\b>P\u0000Y/\b\u0012,M\u0000E/\u001b\b\u0005>\u000b\u001b\u001b\tR\n[>I\u001a\u0013MOu\u0004\u0006\b2J\u0003Yj\u0019\u001d\u000e^\u0002P>\f\u000e\\\u0018JFmI\u0013\u001a\u001fJFdL\u000f\\R\u001aF>I\u0012\u0013KOW/I\u0012\tS\u0003";
                  var4 = ":\u001c\b>P\u0000Y/\b\u0012,M\u0000E/\u001b\b\u0005>\u000b\u001b\u001b\tR\n[>I\u001a\u0013MOu\u0004\u0006\b2J\u0003Yj\u0019\u001d\u000e^\u0002P>\f\u000e\\\u0018JFmI\u0013\u001a\u001fJFdL\u000f\\R\u001aF>I\u0012\u0013KOW/I\u0012\tS\u0003"
                     .length();
                  var1 = 18;
                  var7 = -1;
            }

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

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

      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 -> 115;
            case 2 -> 102;
            case 3 -> 102;
            case 4 -> 37;
            case 5 -> 117;
            default -> 47;
         });
      }

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