package com.l7tech.gateway.common.transport;

import com.l7tech.common.io.PortOwner;
import com.l7tech.common.io.PortRange;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.imp.ZoneableNamedEntityImp;
import com.l7tech.search.Dependency;
import com.l7tech.search.Dependency.DependencyType;
import com.l7tech.search.Dependency.MethodReturnType;
import com.l7tech.security.rbac.RbacAttribute;
import com.l7tech.util.BeanUtils;
import com.l7tech.util.DeserializeSafe;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.GoidUpgradeMapper;
import com.l7tech.util.Pair;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.JoinTable;
import jakarta.persistence.MapKeyColumn;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import jakarta.xml.bind.annotation.XmlEnumValue;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Pattern;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
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.Nullable;

@Entity
@Proxy(lazy = false)
@Table(name = "connector")
@DeserializeSafe
public class SsgConnector extends ZoneableNamedEntityImp implements PortOwner {
   protected static final Logger logger;
   public static final int CLIENT_AUTH_NEVER = 0;
   public static final int CLIENT_AUTH_ALWAYS = 1;
   public static final int CLIENT_AUTH_OPTIONAL = 2;
   public static final String SCHEME_HTTP;
   public static final String SCHEME_HTTPS;
   public static final String SCHEME_FTP;
   public static final String SCHEME_FTPS;
   public static final String PROP_TLS_CIPHERLIST;
   public static final String PROP_TLS_USE_CIPHERLIST_ORDER;
   public static final String PROP_TLS_PROTOCOLS;
   public static final String PROP_TLS_OVERRIDE_PROTOCOLS;
   public static final String PROP_TLS_PROTOCOL;
   public static final String PROP_TLS_PROTOCOL_PROVIDER;
   public static final String PROP_TLS_NO_SSLV2_HELLO;
   public static final String PROP_TLS_SESSION_CACHE_SIZE;
   public static final String PROP_TLS_SESSION_CACHE_TIMEOUT;
   public static final String PROP_TLS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION;
   public static final String PROP_PORT_RANGE_START;
   public static final String PROP_PORT_RANGE_COUNT;
   public static final String PROP_SUPPORT_EXTENDED_FTP_COMMANDS;
   public static final String PROP_BIND_ADDRESS;
   public static final String PROP_THREAD_POOL_SIZE;
   public static final String PROP_CONCURRENCY_WARNING_THRESHOLD;
   public static final String PROP_HARDWIRED_SERVICE_ID;
   public static final String PROP_OVERRIDE_CONTENT_TYPE;
   public static final String PROP_REQUEST_SIZE_LIMIT;
   public static final String PROP_ENABLE_WEBSOCKET;
   private static final long serialVersionUID = 6903916186099155234L;
   private boolean enabled = true;
   private int port = -1;
   private String scheme;
   private boolean secure;
   private String endpoints;
   private int clientAuth;
   private Goid keystoreGoid;
   private String keyAlias;
   private Map<String, String> properties;
   private Set<SsgConnector.Endpoint> endpointSet;
   private static final String[] b;

   public SsgConnector() {
      this.scheme = b[8];
      this.endpoints = "";
      this.properties = new HashMap<>();
   }

   public SsgConnector(Goid var1, String var2, int var3, String var4, boolean var5, String var6, int var7, Goid var8, String var9) {
      this.scheme = b[42];
      this.endpoints = "";
      this.properties = new HashMap<>();
      this.setGoid(var1);
      this.setName(var2);
      this.port = var3;
      this.scheme = var4;
      this.secure = var5;
      this.endpoints = var6;
      this.clientAuth = var7;
      this.keystoreGoid = var8;
      this.keyAlias = var9;
   }

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

   @RbacAttribute
   @Column(name = "enabled")
   public boolean isEnabled() {
      return this.enabled;
   }

   public void setEnabled(boolean var1) {
      this.checkLocked();
      this.enabled = var1;
   }

   @RbacAttribute
   @Min(1025L)
   @Max(65535L)
   @Column(name = "port")
   public int getPort() {
      return this.port;
   }

   public void setPort(int var1) {
      this.checkLocked();
      this.port = var1;
   }

   @RbacAttribute
   @NotNull
   @Size(min = 1, max = 128)
   @Column(name = "scheme", length = 128, nullable = false)
   public String getScheme() {
      return this.scheme;
   }

   public void setScheme(String var1) {
      this.checkLocked();
      this.scheme = var1;
   }

   @Column(name = "secure")
   public boolean isSecure() {
      return this.secure;
   }

   public void setSecure(boolean var1) {
      this.checkLocked();
      this.secure = var1;
   }

   @Column(name = "client_auth")
   @Min(0L)
   @Max(2L)
   public int getClientAuth() {
      return this.clientAuth;
   }

   public void setClientAuth(int var1) {
      this.checkLocked();
      this.clientAuth = var1;
   }

   @Column(name = "keystore_goid")
   @Type(type = "com.l7tech.server.util.GoidType")
   public Goid getKeystoreGoid() {
      return this.keystoreGoid;
   }

   public void setKeystoreGoid(Goid var1) {
      this.checkLocked();
      this.keystoreGoid = var1;
   }

   @Column(name = "key_alias", length = 255)
   @Size(min = 1, max = 255)
   public String getKeyAlias() {
      return this.keyAlias;
   }

   public void setKeyAlias(String var1) {
      this.checkLocked();
      this.keyAlias = var1;
   }

   public String getProperty(String var1) {
      return this.properties.get(var1);
   }

   public boolean getBooleanProperty(String var1) {
      return Boolean.parseBoolean(this.getProperty(var1));
   }

   public int getIntProperty(String var1, int var2) {
      String var3 = this.getProperty(var1);

      try {
         if (var3 == null) {
            return var2;
         }
      } catch (NumberFormatException var10) {
         throw b(var10);
      }

      try {
         return Integer.parseInt(var3);
      } catch (NumberFormatException var9) {
         if (logger.isLoggable(Level.WARNING)) {
            Logger var10000 = logger;
            Level var10001 = Level.WARNING;
            int var10002 = this.getPort();
            String var5 = var3;
            String var6 = var1;
            int var7 = var10002;
            String[] var8 = b;
            var10000.log(var10001, var8[41] + var7 + var8[3] + var6 + var8[1] + var5);
         }

         return var2;
      }
   }

   public long getLongProperty(String var1, long var2) {
      String var4 = this.getProperty(var1);

      try {
         if (var4 == null) {
            return var2;
         }
      } catch (NumberFormatException var11) {
         throw b(var11);
      }

      try {
         return Long.parseLong(var4);
      } catch (NumberFormatException var10) {
         if (logger.isLoggable(Level.WARNING)) {
            Logger var10000 = logger;
            Level var10001 = Level.WARNING;
            int var10002 = this.getPort();
            String var6 = var4;
            String var7 = var1;
            int var8 = var10002;
            String[] var9 = b;
            var10000.log(var10001, var9[26] + var8 + var9[4] + var7 + var9[1] + var6);
         }

         return var2;
      }
   }

   public Goid getGoidProperty(EntityType var1, String var2, Goid var3) {
      String var4 = this.getProperty(var2);

      try {
         if (var4 == null) {
            return var3;
         }
      } catch (IllegalArgumentException var11) {
         throw b(var11);
      }

      try {
         return GoidUpgradeMapper.mapId(var1, var4);
      } catch (IllegalArgumentException var10) {
         if (logger.isLoggable(Level.WARNING)) {
            Logger var10000 = logger;
            Level var10001 = Level.WARNING;
            int var10002 = this.getPort();
            String var6 = var4;
            String var7 = var2;
            int var8 = var10002;
            String[] var9 = b;
            var10000.log(var10001, var9[13] + var8 + var9[4] + var7 + var9[1] + var6);
         }

         return var3;
      }
   }

   @Transient
   public List<String> getPropertyNames() {
      return new ArrayList<>(this.properties.keySet());
   }

   public void putProperty(String var1, String var2) {
      this.checkLocked();
      this.properties.put(var1, var2);
   }

   public void removeProperty(String var1) {
      this.checkLocked();
      this.properties.remove(var1);
   }

   @Column(name = "endpoints", length = 255, nullable = false)
   public String getEndpoints() {
      return this.endpoints;
   }

   public void setEndpoints(String var1) {
      this.checkLocked();
      this.endpoints = var1;
      this.endpointSet = null;
   }

   public boolean offersEndpoint(SsgConnector.Endpoint 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: getstatic com/l7tech/gateway/common/transport/SsgConnector$Endpoint.ADMIN_REMOTE Lcom/l7tech/gateway/common/transport/SsgConnector$Endpoint;
      // 03: invokevirtual com/l7tech/gateway/common/transport/SsgConnector$Endpoint.name ()Ljava/lang/String;
      // 06: aload 1
      // 07: invokevirtual com/l7tech/gateway/common/transport/SsgConnector$Endpoint.name ()Ljava/lang/String;
      // 0a: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0d: ifeq 44
      // 10: aload 0
      // 11: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.endpointSet ()Ljava/util/Set;
      // 14: aload 1
      // 15: invokeinterface java/util/Set.contains (Ljava/lang/Object;)Z 2
      // 1a: ifne 3a
      // 1d: goto 24
      // 20: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 23: athrow
      // 24: aload 0
      // 25: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.endpointSet ()Ljava/util/Set;
      // 28: getstatic com/l7tech/gateway/common/transport/SsgConnector$Endpoint.ADMIN_REMOTE_SSM Lcom/l7tech/gateway/common/transport/SsgConnector$Endpoint;
      // 2b: invokeinterface java/util/Set.contains (Ljava/lang/Object;)Z 2
      // 30: ifeq 42
      // 33: goto 3a
      // 36: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 39: athrow
      // 3a: bipush 1
      // 3b: goto 43
      // 3e: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 41: athrow
      // 42: bipush 0
      // 43: ireturn
      // 44: aload 0
      // 45: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.endpointSet ()Ljava/util/Set;
      // 48: aload 1
      // 49: invokeinterface java/util/Set.contains (Ljava/lang/Object;)Z 2
      // 4e: ireturn
      // try (0 -> 11): 12 java/lang/NumberFormatException
      // try (6 -> 19): 20 java/lang/NumberFormatException
      // try (14 -> 24): 24 java/lang/NumberFormatException
   }

   public Set<SsgConnector.Endpoint> endpointSet() {
      if (this.endpointSet == null) {
         String var1 = this.getEndpoints();

         Set var10000;
         label28: {
            try {
               if (var1 == null) {
                  var10000 = EnumSet.noneOf(SsgConnector.Endpoint.class);
                  break label28;
               }
            } catch (NumberFormatException var6) {
               throw b(var6);
            }

            var10000 = SsgConnector.Endpoint.parseCommaList(var1);
         }

         Set var2 = var10000;
         EnumSet var3 = EnumSet.copyOf(var2);

         for (SsgConnector.Endpoint var5 : var2) {
            var3.addAll(var5.enabledSet());
         }

         this.endpointSet = Collections.unmodifiableSet(var3);
      }

      return this.endpointSet;
   }

   @Fetch(FetchMode.SUBSELECT)
   @ElementCollection(fetch = FetchType.EAGER)
   @JoinTable(name = "connector_property", joinColumns = @JoinColumn(name = "connector_goid", referencedColumnName = "goid"))
   @MapKeyColumn(name = "name", length = 128)
   @Column(name = "value", nullable = false, length = 32672)
   protected Map<String, String> getProperties() {
      return this.properties;
   }

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

   @Transient
   public List<PortRange> getTcpPortsUsed() {
      ArrayList var1 = new ArrayList();
      var1.add(new PortRange(this.port, this.port, false, this.getProperty(b[35])));
      PortRange var2 = this.getPortRange();

      try {
         if (var2 != null) {
            var1.add(var2);
         }

         return var1;
      } catch (NumberFormatException var3) {
         throw b(var3);
      }
   }

   @Transient
   private PortRange getPortRange() {
      try {
         String[] var8 = b;
         String var1 = this.getProperty(var8[0]);
         if (var1 == null) {
            return null;
         }

         int var2 = Integer.parseInt(var1);
         var8 = b;
         String var3 = this.getProperty(var8[7]);
         if (var3 == null) {
            return null;
         }

         int var4 = Integer.parseInt(var3);

         try {
            if (var4 < 1) {
               throw new IllegalArgumentException(b[37] + var4);
            }
         } catch (IllegalArgumentException var6) {
            throw b(var6);
         }

         int var11 = var2 + var4 - 1;
         var8 = b;
         return new PortRange(var2, var11, false, this.getProperty(var8[33]));
      } catch (IllegalArgumentException var7) {
         Logger var10000 = logger;
         Level var10001 = Level.WARNING;
         String var10002 = String.valueOf(this.getGoid());
         String var10003 = ExceptionUtils.getMessage(var7);
         String[] var5 = b;
         var10000.log(var10001, var5[6] + var10002 + var5[9] + var10003, var7);
         return null;
      }
   }

   @Dependency(type = DependencyType.SERVICE, methodReturnType = MethodReturnType.GOID)
   @Transient
   public Goid getHardwiredServiceId() {
      return this.getGoidProperty(EntityType.SERVICE, b[27], null);
   }

   public void setHardwiredServiceId(@Nullable Goid var1) {
      SsgConnector var10000;
      String var10001;
      String var10002;
      label16: {
         try {
            var10000 = this;
            var10001 = b[28];
            if (var1 == null) {
               var10002 = null;
               break label16;
            }
         } catch (NumberFormatException var2) {
            throw b(var2);
         }

         var10002 = var1.toString();
      }

      var10000.putProperty(var10001, var10002);
   }

   public boolean isPortUsed(int param1, boolean param2, String param3) {
      // $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: iload 2
      // 01: ifeq 0a
      // 04: bipush 0
      // 05: ireturn
      // 06: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 09: athrow
      // 0a: aload 3
      // 0b: ifnull 35
      // 0e: aload 0
      // 0f: getstatic com/l7tech/gateway/common/transport/SsgConnector.b [Ljava/lang/String;
      // 12: bipush 35
      // 14: aaload
      // 15: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.getProperty (Ljava/lang/String;)Ljava/lang/String;
      // 18: astore 4
      // 1a: aload 4
      // 1c: ifnull 35
      // 1f: aload 3
      // 20: aload 4
      // 22: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 25: ifne 35
      // 28: goto 2f
      // 2b: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 2e: athrow
      // 2f: bipush 0
      // 30: ireturn
      // 31: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 34: athrow
      // 35: aload 0
      // 36: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.getPort ()I
      // 39: iload 1
      // 3a: if_icmpne 43
      // 3d: bipush 1
      // 3e: ireturn
      // 3f: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 42: athrow
      // 43: aload 0
      // 44: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.getPortRange ()Lcom/l7tech/common/io/PortRange;
      // 47: astore 4
      // 49: aload 4
      // 4b: ifnull 68
      // 4e: aload 4
      // 50: iload 1
      // 51: iload 2
      // 52: aload 3
      // 53: invokevirtual com/l7tech/common/io/PortRange.isPortUsed (IZLjava/lang/String;)Z
      // 56: ifeq 68
      // 59: goto 60
      // 5c: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 5f: athrow
      // 60: bipush 1
      // 61: goto 69
      // 64: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 67: athrow
      // 68: bipush 0
      // 69: ireturn
      // try (0 -> 4): 4 java/lang/NumberFormatException
      // try (14 -> 20): 21 java/lang/NumberFormatException
      // try (16 -> 25): 25 java/lang/NumberFormatException
      // try (27 -> 33): 33 java/lang/NumberFormatException
      // try (38 -> 46): 47 java/lang/NumberFormatException
      // try (40 -> 51): 51 java/lang/NumberFormatException
   }

   public boolean isOverlapping(PortRange 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: aload 0
      // 02: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.getPort ()I
      // 05: bipush 0
      // 06: aload 0
      // 07: getstatic com/l7tech/gateway/common/transport/SsgConnector.b [Ljava/lang/String;
      // 0a: bipush 35
      // 0c: aaload
      // 0d: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.getProperty (Ljava/lang/String;)Ljava/lang/String;
      // 10: invokevirtual com/l7tech/common/io/PortRange.isPortUsed (IZLjava/lang/String;)Z
      // 13: ifeq 1c
      // 16: bipush 1
      // 17: ireturn
      // 18: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 1b: athrow
      // 1c: aload 0
      // 1d: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.getPortRange ()Lcom/l7tech/common/io/PortRange;
      // 20: astore 2
      // 21: aload 2
      // 22: ifnull 3c
      // 25: aload 1
      // 26: aload 2
      // 27: invokevirtual com/l7tech/common/io/PortRange.isOverlapping (Lcom/l7tech/common/io/PortRange;)Z
      // 2a: ifeq 3c
      // 2d: goto 34
      // 30: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 33: athrow
      // 34: bipush 1
      // 35: goto 3d
      // 38: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 3b: athrow
      // 3c: bipush 0
      // 3d: ireturn
      // try (0 -> 13): 13 java/lang/NumberFormatException
      // try (18 -> 24): 25 java/lang/NumberFormatException
      // try (20 -> 29): 29 java/lang/NumberFormatException
   }

   public Pair<PortRange, PortRange> getFirstOverlappingPortRange(PortOwner var1) {
      return PortRange.getFirstOverlappingPortRange(this, var1);
   }

   @Transient
   public List<PortRange> getUsedPorts() {
      return this.getTcpPortsUsed();
   }

   private void setReadOnly() {
      this.endpointSet();
      this.getPortRange();
      this.getClientAuth();
      this.getKeyAlias();
      this.getKeystoreGoid();
      this.getPort();
      this.getPropertyNames();
      this.getScheme();
      this.lock();
   }

   @Transient
   public SsgConnector getCopy() {
      try {
         SsgConnector var1 = new SsgConnector();
         BeanUtils.copyProperties(this, var1, BeanUtils.omitProperties(BeanUtils.getProperties(this.getClass()), new String[]{b[19]}));
         var1.setProperties(new HashMap<>(this.getProperties()));
         return var1;
      } catch (InvocationTargetException var2) {
         throw new RuntimeException(var2);
      } catch (IllegalAccessException var3) {
         throw new RuntimeException(var3);
      }
   }

   @Transient
   public SsgConnector getReadOnlyCopy() {
      SsgConnector var1 = this.getCopy();
      var1.setReadOnly();
      return var1;
   }

   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/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 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/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 020: athrow
      // 021: bipush 0
      // 022: ireturn
      // 023: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 026: athrow
      // 027: aload 0
      // 028: aload 1
      // 029: invokespecial com/l7tech/objectmodel/imp/ZoneableNamedEntityImp.equals (Ljava/lang/Object;)Z
      // 02c: ifne 035
      // 02f: bipush 0
      // 030: ireturn
      // 031: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 034: athrow
      // 035: aload 1
      // 036: checkcast com/l7tech/gateway/common/transport/SsgConnector
      // 039: astore 2
      // 03a: aload 0
      // 03b: getfield com/l7tech/gateway/common/transport/SsgConnector.clientAuth I
      // 03e: aload 2
      // 03f: getfield com/l7tech/gateway/common/transport/SsgConnector.clientAuth I
      // 042: if_icmpeq 04b
      // 045: bipush 0
      // 046: ireturn
      // 047: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 04a: athrow
      // 04b: aload 0
      // 04c: getfield com/l7tech/gateway/common/transport/SsgConnector.enabled Z
      // 04f: aload 2
      // 050: getfield com/l7tech/gateway/common/transport/SsgConnector.enabled Z
      // 053: if_icmpeq 05c
      // 056: bipush 0
      // 057: ireturn
      // 058: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 05b: athrow
      // 05c: aload 0
      // 05d: getfield com/l7tech/gateway/common/transport/SsgConnector.port I
      // 060: aload 2
      // 061: getfield com/l7tech/gateway/common/transport/SsgConnector.port I
      // 064: if_icmpeq 06d
      // 067: bipush 0
      // 068: ireturn
      // 069: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 06c: athrow
      // 06d: aload 0
      // 06e: getfield com/l7tech/gateway/common/transport/SsgConnector.secure Z
      // 071: aload 2
      // 072: getfield com/l7tech/gateway/common/transport/SsgConnector.secure Z
      // 075: if_icmpeq 07e
      // 078: bipush 0
      // 079: ireturn
      // 07a: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 07d: athrow
      // 07e: aload 0
      // 07f: getfield com/l7tech/gateway/common/transport/SsgConnector.endpoints Ljava/lang/String;
      // 082: ifnull 0a1
      // 085: aload 0
      // 086: getfield com/l7tech/gateway/common/transport/SsgConnector.endpoints Ljava/lang/String;
      // 089: aload 2
      // 08a: getfield com/l7tech/gateway/common/transport/SsgConnector.endpoints 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/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 099: athrow
      // 09a: goto 0a8
      // 09d: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0a0: athrow
      // 0a1: aload 2
      // 0a2: getfield com/l7tech/gateway/common/transport/SsgConnector.endpoints Ljava/lang/String;
      // 0a5: ifnull 0ae
      // 0a8: bipush 0
      // 0a9: ireturn
      // 0aa: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0ad: athrow
      // 0ae: aload 0
      // 0af: getfield com/l7tech/gateway/common/transport/SsgConnector.keyAlias Ljava/lang/String;
      // 0b2: ifnull 0d1
      // 0b5: aload 0
      // 0b6: getfield com/l7tech/gateway/common/transport/SsgConnector.keyAlias Ljava/lang/String;
      // 0b9: aload 2
      // 0ba: getfield com/l7tech/gateway/common/transport/SsgConnector.keyAlias 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/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0c9: athrow
      // 0ca: goto 0d8
      // 0cd: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0d0: athrow
      // 0d1: aload 2
      // 0d2: getfield com/l7tech/gateway/common/transport/SsgConnector.keyAlias Ljava/lang/String;
      // 0d5: ifnull 0de
      // 0d8: bipush 0
      // 0d9: ireturn
      // 0da: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0dd: athrow
      // 0de: aload 0
      // 0df: getfield com/l7tech/gateway/common/transport/SsgConnector.keystoreGoid Lcom/l7tech/objectmodel/Goid;
      // 0e2: aload 2
      // 0e3: getfield com/l7tech/gateway/common/transport/SsgConnector.keystoreGoid Lcom/l7tech/objectmodel/Goid;
      // 0e6: invokestatic com/l7tech/objectmodel/Goid.equals (Lcom/l7tech/objectmodel/Goid;Lcom/l7tech/objectmodel/Goid;)Z
      // 0e9: ifne 0f2
      // 0ec: bipush 0
      // 0ed: ireturn
      // 0ee: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0f1: athrow
      // 0f2: aload 0
      // 0f3: getfield com/l7tech/gateway/common/transport/SsgConnector.properties Ljava/util/Map;
      // 0f6: ifnull 117
      // 0f9: aload 0
      // 0fa: getfield com/l7tech/gateway/common/transport/SsgConnector.properties Ljava/util/Map;
      // 0fd: aload 2
      // 0fe: getfield com/l7tech/gateway/common/transport/SsgConnector.properties Ljava/util/Map;
      // 101: invokeinterface java/util/Map.equals (Ljava/lang/Object;)Z 2
      // 106: ifne 124
      // 109: goto 110
      // 10c: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 10f: athrow
      // 110: goto 11e
      // 113: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 116: athrow
      // 117: aload 2
      // 118: getfield com/l7tech/gateway/common/transport/SsgConnector.properties Ljava/util/Map;
      // 11b: ifnull 124
      // 11e: bipush 0
      // 11f: ireturn
      // 120: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 123: athrow
      // 124: aload 0
      // 125: getfield com/l7tech/gateway/common/transport/SsgConnector.scheme Ljava/lang/String;
      // 128: ifnull 147
      // 12b: aload 0
      // 12c: getfield com/l7tech/gateway/common/transport/SsgConnector.scheme Ljava/lang/String;
      // 12f: aload 2
      // 130: getfield com/l7tech/gateway/common/transport/SsgConnector.scheme Ljava/lang/String;
      // 133: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 136: ifne 154
      // 139: goto 140
      // 13c: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 13f: athrow
      // 140: goto 14e
      // 143: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 146: athrow
      // 147: aload 2
      // 148: getfield com/l7tech/gateway/common/transport/SsgConnector.scheme Ljava/lang/String;
      // 14b: ifnull 154
      // 14e: bipush 0
      // 14f: ireturn
      // 150: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 153: athrow
      // 154: aload 0
      // 155: getfield com/l7tech/gateway/common/transport/SsgConnector.securityZone Lcom/l7tech/objectmodel/SecurityZone;
      // 158: ifnull 177
      // 15b: aload 0
      // 15c: getfield com/l7tech/gateway/common/transport/SsgConnector.securityZone Lcom/l7tech/objectmodel/SecurityZone;
      // 15f: aload 2
      // 160: getfield com/l7tech/gateway/common/transport/SsgConnector.securityZone Lcom/l7tech/objectmodel/SecurityZone;
      // 163: invokevirtual com/l7tech/objectmodel/SecurityZone.equals (Ljava/lang/Object;)Z
      // 166: ifne 184
      // 169: goto 170
      // 16c: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 16f: athrow
      // 170: goto 17e
      // 173: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 176: athrow
      // 177: aload 2
      // 178: getfield com/l7tech/gateway/common/transport/SsgConnector.securityZone Lcom/l7tech/objectmodel/SecurityZone;
      // 17b: ifnull 184
      // 17e: bipush 0
      // 17f: ireturn
      // 180: invokestatic com/l7tech/gateway/common/transport/SsgConnector.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 183: athrow
      // 184: bipush 1
      // 185: ireturn
      // try (0 -> 5): 5 java/lang/NumberFormatException
      // try (7 -> 14): 15 java/lang/NumberFormatException
      // try (9 -> 19): 19 java/lang/NumberFormatException
      // try (21 -> 27): 27 java/lang/NumberFormatException
      // try (32 -> 39): 39 java/lang/NumberFormatException
      // try (41 -> 48): 48 java/lang/NumberFormatException
      // try (50 -> 57): 57 java/lang/NumberFormatException
      // try (59 -> 66): 66 java/lang/NumberFormatException
      // try (68 -> 77): 78 java/lang/NumberFormatException
      // try (71 -> 81): 81 java/lang/NumberFormatException
      // try (83 -> 88): 88 java/lang/NumberFormatException
      // try (90 -> 99): 100 java/lang/NumberFormatException
      // try (93 -> 103): 103 java/lang/NumberFormatException
      // try (105 -> 110): 110 java/lang/NumberFormatException
      // try (112 -> 120): 120 java/lang/NumberFormatException
      // try (122 -> 131): 132 java/lang/NumberFormatException
      // try (125 -> 135): 135 java/lang/NumberFormatException
      // try (137 -> 142): 142 java/lang/NumberFormatException
      // try (144 -> 153): 154 java/lang/NumberFormatException
      // try (147 -> 157): 157 java/lang/NumberFormatException
      // try (159 -> 164): 164 java/lang/NumberFormatException
      // try (166 -> 175): 176 java/lang/NumberFormatException
      // try (169 -> 179): 179 java/lang/NumberFormatException
      // try (181 -> 186): 186 java/lang/NumberFormatException
   }

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

      int var10000;
      byte var10001;
      label115: {
         try {
            var10000 = 31 * var1;
            if (this.enabled) {
               var10001 = 1;
               break label115;
            }
         } catch (NumberFormatException var9) {
            throw b(var9);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;
      var1 = 31 * var1 + this.port;

      label107: {
         try {
            var10000 = 31 * var1;
            if (this.scheme != null) {
               var10001 = this.scheme.hashCode();
               break label107;
            }
         } catch (NumberFormatException var8) {
            throw b(var8);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label99: {
         try {
            var10000 = 31 * var1;
            if (this.secure) {
               var27 = 1;
               break label99;
            }
         } catch (NumberFormatException var7) {
            throw b(var7);
         }

         var27 = 0;
      }

      var1 = var10000 + var27;

      label91: {
         try {
            var10000 = 31 * var1;
            if (this.endpoints != null) {
               var10001 = this.endpoints.hashCode();
               break label91;
            }
         } catch (NumberFormatException var6) {
            throw b(var6);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;
      var1 = 31 * var1 + this.clientAuth;

      label83: {
         try {
            var10000 = 31 * var1;
            if (this.keystoreGoid != null) {
               var10001 = this.keystoreGoid.hashCode();
               break label83;
            }
         } catch (NumberFormatException var5) {
            throw b(var5);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label75: {
         try {
            var10000 = 31 * var1;
            if (this.keyAlias != null) {
               var10001 = this.keyAlias.hashCode();
               break label75;
            }
         } catch (NumberFormatException var4) {
            throw b(var4);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label67: {
         try {
            var10000 = 31 * var1;
            if (this.properties != null) {
               var10001 = this.properties.hashCode();
               break label67;
            }
         } catch (NumberFormatException var3) {
            throw b(var3);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      try {
         var10000 = 31 * var1;
         if (this.securityZone != null) {
            return var10000 + this.securityZone.hashCode();
         }
      } catch (NumberFormatException var2) {
         throw b(var2);
      }

      return var10000 + 0;
   }

   public String toString() {
      String[] var5 = b;
      StringBuilder var1 = new StringBuilder(var5[45]);

      StringBuilder var10000;
      String var10001;
      label26: {
         try {
            var1.append(this.port);
            var10000 = var1.append(' ').append(this.scheme);
            if (this.secure) {
               var10001 = var5[40];
               break label26;
            }
         } catch (NumberFormatException var6) {
            throw b(var6);
         }

         var5 = b;
         var10001 = var5[12];
      }

      var10000.append(var10001);
      var10000 = var1.append(' ').append(this.endpoints);
      var5 = b;
      var10000.append(var5[18]).append(this.clientAuth);
      var1.append(var5[29]).append(this.keystoreGoid).append(var5[24]).append(this.keyAlias);

      for (String var4 : this.getPropertyNames()) {
         var1.append(b[17]).append(var4).append('=').append(this.getProperty(var4));
      }

      var1.append(']');
      return var1.toString();
   }

   static {
      String[] var5 = new String[46];
      int var3 = 0;
      String var2 = "pS\tFnf\u0006gY(F]u\u001c\u0002:\u001c\u000epS\tFnf\u0006gY8]Ii\u001c\n L\t]Lb\u001atE[\n L\t]Lb\u001atE[\u000epS\tFnf\u0006gY(F]u\u001c9I[\u0015]Nn\u0006g\u001c\u0012\\Jf\u0004iX[BSu\u001c N\u001a\\[bHsY\u000fFUi\u000fs\u001c\u001d]N'\u000boR\u0015W_s\u0007r\u001c\u001c]UcH#\u000epS\tFnf\u0006gY8]Ii\u001c\u0004Hh/b\u0002:\u001c\u0011oJ\u001e@Nn\fel\t]Hh\u000boP\b\u0003Fh+\t R\u0014aYd\u001drY,IR\rSPn\f [\u0014[X'\u0018rS\u000bWNs\u0011 J\u001a^IbHfS\t\u0012Pn\u001btY\u0015\u0012Lh\u001at\u001c\ncU\u000bZYu$iO\u000f\u0010sY\bAUh\u0006C]\u0018ZYT\u0001zY\u0010pN\u0014FSd\u0007ll\t]Jn\feN\u0003 lA\f _\u0017[Yi\u001cAI\u000fZ\u0001\npN\u0014BYu\u001ciY\b\u001bcS\u0015QIu\u001aeR\u0018Kkf\u001anU\u0015Uho\u001aeO\u0013]Pc\u0013oJ\u001e@Nn\fe\u007f\u0014\\Hb\u0006th\u0002BY\u000feR\u001aPPb?e^(]_l\rt\u0012uO\u001eqUw\u0000eN7[Os'rX\u001e@\n W\u001eK}k\u0001aOF\bpN\u0014FSd\u0007l4IR\rSPn\f P\u0014\\['\u0001nH\u001eUYuHpN\u0014BYu\u001cy\u001c\rSPr\r Z\u0014@\u001ck\u0001sH\u001e\\\u001cw\u0007rH[\u0012h]\tVKn\u001aeX(WNq\u0001cY2V\u0012h]\tVKn\u001aeX(WNq\u0001cY2V\u000e W\u001eKOs\u0007rY<]UcU\u0013sY\bAUh\u0006C]\u0018ZYS\u0001mY\u0014GH\u0018uO\u001ewDs\rnX\u001eVzs\u0018CS\u0016_]i\fSY\u000f\fnS(apqZHY\u0017^S\u000bbU\u0015V}c\frY\bA\u000etT\tW]c8oS\u0017aU}\r\u000bbU\u0015V}c\frY\bA\u0004Fh+a\u0014IR\rSPn\f L\u0014@H'\u000boI\u0015F\u0006'\u0010rY\nGYt\u001cSU\u0001Wpn\u0005iH\u001eaP\u0017]KR\u0006s]\u001dWpb\u000fa_\u0002`Yi\rgS\u000f[]s\u0001oR\u0007 O\u001eQIu\r/IR\rSPn\f U\u0015FY`\rr\u001c\u000b@Sw\rrH\u0002\u0012Jf\u0004uY[TSuHlU\bFYiHpS\tF\u001c\u0004Hh/b\u0005Hh/bo";
      int var4 = "pS\tFnf\u0006gY(F]u\u001c\u0002:\u001c\u000epS\tFnf\u0006gY8]Ii\u001c\n L\t]Lb\u001atE[\n L\t]Lb\u001atE[\u000epS\tFnf\u0006gY(F]u\u001c9I[\u0015]Nn\u0006g\u001c\u0012\\Jf\u0004iX[BSu\u001c N\u001a\\[bHsY\u000fFUi\u000fs\u001c\u001d]N'\u000boR\u0015W_s\u0007r\u001c\u001c]UcH#\u000epS\tFnf\u0006gY8]Ii\u001c\u0004Hh/b\u0002:\u001c\u0011oJ\u001e@Nn\fel\t]Hh\u000boP\b\u0003Fh+\t R\u0014aYd\u001drY,IR\rSPn\f [\u0014[X'\u0018rS\u000bWNs\u0011 J\u001a^IbHfS\t\u0012Pn\u001btY\u0015\u0012Lh\u001at\u001c\ncU\u000bZYu$iO\u000f\u0010sY\bAUh\u0006C]\u0018ZYT\u0001zY\u0010pN\u0014FSd\u0007ll\t]Jn\feN\u0003 lA\f _\u0017[Yi\u001cAI\u000fZ\u0001\npN\u0014BYu\u001ciY\b\u001bcS\u0015QIu\u001aeR\u0018Kkf\u001anU\u0015Uho\u001aeO\u0013]Pc\u0013oJ\u001e@Nn\fe\u007f\u0014\\Hb\u0006th\u0002BY\u000feR\u001aPPb?e^(]_l\rt\u0012uO\u001eqUw\u0000eN7[Os'rX\u001e@\n W\u001eK}k\u0001aOF\bpN\u0014FSd\u0007l4IR\rSPn\f P\u0014\\['\u0001nH\u001eUYuHpN\u0014BYu\u001cy\u001c\rSPr\r Z\u0014@\u001ck\u0001sH\u001e\\\u001cw\u0007rH[\u0012h]\tVKn\u001aeX(WNq\u0001cY2V\u0012h]\tVKn\u001aeX(WNq\u0001cY2V\u000e W\u001eKOs\u0007rY<]UcU\u0013sY\bAUh\u0006C]\u0018ZYS\u0001mY\u0014GH\u0018uO\u001ewDs\rnX\u001eVzs\u0018CS\u0016_]i\fSY\u000f\fnS(apqZHY\u0017^S\u000bbU\u0015V}c\frY\bA\u000etT\tW]c8oS\u0017aU}\r\u000bbU\u0015V}c\frY\bA\u0004Fh+a\u0014IR\rSPn\f L\u0014@H'\u000boI\u0015F\u0006'\u0010rY\nGYt\u001cSU\u0001Wpn\u0005iH\u001eaP\u0017]KR\u0006s]\u001dWpb\u000fa_\u0002`Yi\rgS\u000f[]s\u0001oR\u0007 O\u001eQIu\r/IR\rSPn\f U\u0015FY`\rr\u001c\u000b@Sw\rrH\u0002\u0012Jf\u0004uY[TSuHlU\bFYiHpS\tF\u001c\u0004Hh/b\u0005Hh/bo"
         .length();
      char var1 = 14;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 67;
         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_TLS_SESSION_CACHE_SIZE = b[15];
                     PROP_TLS_NO_SSLV2_HELLO = var9[32];
                     SCHEME_FTPS = var9[36];
                     PROP_HARDWIRED_SERVICE_ID = var9[27];
                     PROP_TLS_OVERRIDE_PROTOCOLS = var9[10];
                     PROP_ENABLE_WEBSOCKET = var9[22];
                     PROP_THREAD_POOL_SIZE = var9[34];
                     PROP_TLS_CIPHERLIST = var9[14];
                     PROP_TLS_PROTOCOL = var9[25];
                     PROP_CONCURRENCY_WARNING_THRESHOLD = var9[20];
                     PROP_PORT_RANGE_START = var9[5];
                     PROP_BIND_ADDRESS = var9[35];
                     SCHEME_HTTPS = var9[43];
                     PROP_PORT_RANGE_COUNT = var9[2];
                     PROP_SUPPORT_EXTENDED_FTP_COMMANDS = var9[31];
                     PROP_TLS_USE_CIPHERLIST_ORDER = var9[23];
                     PROP_REQUEST_SIZE_LIMIT = var9[38];
                     SCHEME_FTP = var9[11];
                     PROP_OVERRIDE_CONTENT_TYPE = var9[21];
                     PROP_TLS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION = var9[39];
                     PROP_TLS_PROTOCOL_PROVIDER = var9[16];
                     PROP_TLS_SESSION_CACHE_TIMEOUT = var9[30];
                     PROP_TLS_PROTOCOLS = var9[44];
                     SCHEME_HTTP = var9[8];
                     logger = Logger.getLogger(SsgConnector.class.getName());
                     return;
                  }

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

                  var2 = "mS\t[Ny\u001aqR\u000eFr\u0015Hbu\u001bsD\u0005[NhU";
                  var4 = "mS\t[Ny\u001aqR\u000eFr\u0015Hbu\u001bsD\u0005[NhU".length();
                  var1 = '\t';
                  var7 = -1;
            }

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

   private static IllegalArgumentException b(IllegalArgumentException var0) {
      return var0;
   }

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

      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 -> 67;
            case 1 -> 127;
            case 2 -> 56;
            case 3 -> 113;
            case 4 -> 127;
            case 5 -> 68;
            default -> 43;
         });
      }

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

   public enum Endpoint {
      @XmlEnumValue("Published service message input")
      MESSAGE_INPUT,
      @XmlEnumValue("Policy Manager access")
      ADMIN_REMOTE_SSM,
      @Deprecated
      @XmlEnumValue("Enterprise Manager access")
      ADMIN_REMOTE_ESM,
      @XmlEnumValue("Administrative access")
      ADMIN_REMOTE,
      @XmlEnumValue("Browser-based administration")
      ADMIN_APPLET,
      @XmlEnumValue("Policy download service")
      POLICYDISCO,
      @XmlEnumValue("Ping service")
      PING,
      @XmlEnumValue("WS-Trust security token service")
      STS,
      @XmlEnumValue("Certificate signing service")
      CSRHANDLER,
      @XmlEnumValue("Password changing service")
      PASSWD,
      @XmlEnumValue("WSDL download service")
      WSDLPROXY,
      @XmlEnumValue("SNMP Query service")
      SNMPQUERY,
      @XmlEnumValue("Built-in services")
      OTHER_SERVLETS,
      @XmlEnumValue("Node Control")
      PC_NODE_API,
      @XmlEnumValue("Inter-Node Communication")
      NODE_COMMUNICATION;

      private SsgConnector.Endpoint[] enabledKids;
      private Set<SsgConnector.Endpoint> enabledSet;
      private static final Pattern PATTERN_WS_COMMA_WS;
      private static final String[] a;

      Endpoint(SsgConnector.Endpoint... var3) {
         this.enabledKids = var3;
      }

      public Set<SsgConnector.Endpoint> enabledSet() {
         try {
            if (this.enabledSet == null) {
               this.enabledSet = Collections.unmodifiableSet(EnumSet.of(this, this.enabledKids));
            }
         } catch (IllegalArgumentException var1) {
            throw a(var1);
         }

         return this.enabledSet;
      }

      public static Set<SsgConnector.Endpoint> parseCommaList(String var0) {
         String[] var1 = PATTERN_WS_COMMA_WS.split(var0);
         EnumSet var2 = EnumSet.noneOf(SsgConnector.Endpoint.class);

         for (String var6 : var1) {
            try {
               if (var6 == null && var6.isEmpty()) {
                  continue;
               }
            } catch (IllegalArgumentException var9) {
               throw a(var9);
            }

            try {
               var2.add(valueOf(var6));
            } catch (IllegalArgumentException var8) {
               SsgConnector.logger.log(Level.WARNING, a[13] + var6);
            }
         }

         return var2;
      }

      public static String asCommaList(Set<SsgConnector.Endpoint> var0) {
         StringBuilder var1 = new StringBuilder(128);
         EnumSet var2 = EnumSet.copyOf(var0);
         boolean var3 = true;

         for (SsgConnector.Endpoint var5 : var2) {
            try {
               if (!var3) {
                  var1.append(',');
               }
            } catch (IllegalArgumentException var6) {
               throw a(var6);
            }

            var1.append(var5.toString());
            var3 = false;
         }

         return var1.toString();
      }

      // $VF: Failed to inline enum fields
      // 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!)
      static {
         String[] var5 = new String[17];
         int var3 = 0;
         String var2 = "\f@C-\u0003Re\u001eL^.\u0017A\u000b\u0011J\\7\u0001Ld\bVS1\u0007\u001dv:R\u001ef\n\u0012\u000fJT;\u001dVo\fHE0\u000bVa\u0015L_0\t\u0012K].\u0013@e\u0013\\\u0010\u0000A]7\fJr\u0004H_*\u0007Je\u0012H\u0003\u0012QC\u000b\u0011FO0\rQe\u001eD@7\t\u0016VT2\u0012Go\u0019\\\f\u0000A]7\fJr\u0004H_*\u0007\n\u0002VB6\u0003[d\r@B\u000e\u000eQX;\u0010Js\u0004WF2\u0007As\u0010\u0000A]7\fJr\u0004H_*\u0007Js\u0012H%\bb~\u00110|N&%e\u00100pC.b~\u00178pDa`~\u001a2zI/q0\u0010#xE{%\f\u0000A]7\fJa\u0011U\\;\u0016";
         int var4 = "\f@C-\u0003Re\u001eL^.\u0017A\u000b\u0011J\\7\u0001Ld\bVS1\u0007\u001dv:R\u001ef\n\u0012\u000fJT;\u001dVo\fHE0\u000bVa\u0015L_0\t\u0012K].\u0013@e\u0013\\\u0010\u0000A]7\fJr\u0004H_*\u0007Je\u0012H\u0003\u0012QC\u000b\u0011FO0\rQe\u001eD@7\t\u0016VT2\u0012Go\u0019\\\f\u0000A]7\fJr\u0004H_*\u0007\n\u0002VB6\u0003[d\r@B\u000e\u000eQX;\u0010Js\u0004WF2\u0007As\u0010\u0000A]7\fJr\u0004H_*\u0007Js\u0012H%\bb~\u00110|N&%e\u00100pC.b~\u00178pDa`~\u001a2zI/q0\u0010#xE{%\f\u0000A]7\fJa\u0011U\\;\u0016"
            .length();
         char var1 = '\r';
         int var7 = -1;

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

            while (true) {
               String var9 = a(var10000, a(var10001));
               switch (var10002) {
                  case 0:
                     var5[var3++] = var9;
                     if ((var7 += var1) >= var4) {
                        a = var5;
                        String[] var8 = a;
                        MESSAGE_INPUT = new SsgConnector.Endpoint();
                        ADMIN_REMOTE_SSM = new SsgConnector.Endpoint();
                        ADMIN_REMOTE_ESM = new SsgConnector.Endpoint();
                        ADMIN_REMOTE = new SsgConnector.Endpoint(ADMIN_REMOTE_SSM, ADMIN_REMOTE_ESM);
                        ADMIN_APPLET = new SsgConnector.Endpoint();
                        POLICYDISCO = new SsgConnector.Endpoint();
                        PING = new SsgConnector.Endpoint();
                        STS = new SsgConnector.Endpoint();
                        CSRHANDLER = new SsgConnector.Endpoint();
                        PASSWD = new SsgConnector.Endpoint();
                        WSDLPROXY = new SsgConnector.Endpoint();
                        SNMPQUERY = new SsgConnector.Endpoint();
                        OTHER_SERVLETS = new SsgConnector.Endpoint(POLICYDISCO, PING, STS, CSRHANDLER, PASSWD, WSDLPROXY, SNMPQUERY);
                        PC_NODE_API = new SsgConnector.Endpoint();
                        NODE_COMMUNICATION = new SsgConnector.Endpoint();
                        PATTERN_WS_COMMA_WS = Pattern.compile(var8[2]);
                        return;
                     }

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

                     var2 = "a43]e!\u0004a<.I";
                     var4 = "a43]e!\u0004a<.I".length();
                     var1 = 6;
                     var7 = -1;
               }

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

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

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

         return var10000;
      }

      private static String a(int var0, char[] var1) {
         int var10003 = var1.length;
         int var10002 = var0;
         char[] var10001 = var1;
         int var10000 = var10003;

         for (int var2 = 0; var10000 > var2; var2++) {
            var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
               case 0 -> 57;
               case 1 -> 125;
               case 2 -> 104;
               case 3 -> 6;
               case 4 -> 58;
               case 5 -> 109;
               default -> 88;
            });
         }

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