package com.l7tech.external.assertions.gatewaygraphql.server.resolver.helper;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.l7tech.external.assertions.gatewaygraphql.server.data.ClusterNodeInfoDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.data.LicenseInfoDTO;
import com.l7tech.gateway.common.licensing.FeatureLicense;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Properties;
import java.util.Set;

public class RemoteClusterNodeInfoHelper implements ClusterNodeInfoHelper {
   private final ObjectNode a;
   private static final String[] b;

   public RemoteClusterNodeInfoHelper(ObjectNode var1) {
      this.a = var1;
   }

   @Override
   public ClusterNodeInfoHelper.OSInfo getOSInfo() {
      String[] var3 = b;
      JsonNode var1 = this.a.get(var3[15]);
      if (var1 != null) {
         ClusterNodeInfoHelper.OSInfo var2 = new ClusterNodeInfoHelper.OSInfo();
         var2.setName(b(var1, var3[29]));
         var2.setVersion(b(var1, var3[30]));
         var2.setArchitecture(b(var1, var3[42]));
         return var2;
      } else {
         return null;
      }
   }

   @Override
   public ClusterNodeInfoHelper.JVMInfo getJVMInfo() {
      String[] var3 = b;
      JsonNode var1 = this.a.get(var3[23]);
      if (var1 != null) {
         ClusterNodeInfoHelper.JVMInfo var2 = new ClusterNodeInfoHelper.JVMInfo();
         var2.setName(b(var1, var3[16]));
         var2.setVersion(b(var1, var3[24]));
         var2.setVendor(b(var1, var3[9]));
         return var2;
      } else {
         return null;
      }
   }

   @Override
   public ClusterNodeInfoHelper.ProductVersion getProductVersion() {
      String[] var3 = b;
      JsonNode var1 = this.a.get(var3[18]);
      if (var1 != null) {
         ClusterNodeInfoHelper.ProductVersion var2 = new ClusterNodeInfoHelper.ProductVersion();
         var2.setMajor(b(var1, var3[22]));
         var2.setMinor(b(var1, var3[21]));
         var2.setSubMinor(b(var1, var3[33]));
         var2.setBuildNumber(b(var1, var3[40]));
         var2.setBuildDate(b(var1, var3[27]));
         var2.setFormalString(b(var1, var3[20]));
         var2.setLongString(b(var1, var3[7]));
         var2.setShortString(b(var1, var3[39]));
         return var2;
      } else {
         return null;
      }
   }

   @Override
   public Properties getJVMArguments() {
      return e(this.a.withArray(b[25]));
   }

   @Override
   public String getProductName() {
      return b(this.a, b[41]);
   }

   @Override
   public List<FeatureLicense> getLicenses() {
      return List.of();
   }

   @Override
   public List<LicenseInfoDTO> getLicenseDetails() {
      ArrayList var1 = new ArrayList();
      ArrayNode var2 = this.a.withArray(b[13]);
      var2.forEach(var2x -> var1.add(this.a(var2x)));
      return var1;
   }

   @Override
   public List<ClusterNodeInfoHelper.PatchInfo> getPatches() {
      ArrayNode var1 = this.a.withArray(b[8]);
      ArrayList var2 = new ArrayList();
      var1.forEach(var1x -> {
         ClusterNodeInfoHelper.PatchInfo var2x = new ClusterNodeInfoHelper.PatchInfo();
         String[] var4 = b;
         var2x.setPatchId(b(var1x, var4[26]));
         var2x.setDescription(b(var1x, var4[34]));
         var2x.setStatus(b(var1x, var4[43]));
         var2x.setPatchType(b(var1x, var4[4]));
         var2x.setVersion(b(var1x, var4[30]));
         String var3 = b(var1x, var4[6]);
         var2x.setLatest(var4[1].equalsIgnoreCase(var3));
         var2.add(var2x);
      });
      return var2;
   }

   @Override
   public Properties getSystemProperties() {
      return e(this.a.withArray(b[37]));
   }

   @Override
   public Properties getTelemetryProperties() {
      return e(this.a.withArray(b[38]));
   }

   @Override
   public Properties getNodeProperties() {
      return e(this.a.withArray(b[12]));
   }

   @Override
   public ClusterNodeInfoDTO.FormFactor getFormFactor() {
      if (this.a != null) {
         String var1 = b(this.a, b[2]);
         if (var1 != null) {
            return ClusterNodeInfoDTO.FormFactor.valueOf(var1);
         }
      }

      return ClusterNodeInfoDTO.FormFactor.UNKNOWN;
   }

   @Override
   public boolean isSupportsDBUpgrade() {
      return Boolean.parseBoolean(b(this.a, b[5]));
   }

   @Override
   public boolean isFailoverDBConfigured() {
      return Boolean.parseBoolean(b(this.a, b[28]));
   }

   private LicenseInfoDTO a(JsonNode var1) {
      return new a(this, null, var1);
   }

   private static ClusterNodeInfoHelper.LicenseeInfo b(JsonNode var0) {
      if (var0 != null) {
         ClusterNodeInfoHelper.LicenseeInfo var1 = new ClusterNodeInfoHelper.LicenseeInfo();
         String[] var2 = b;
         var1.setName(b(var0, var2[29]));
         var1.setContactEmail(b(var0, var2[19]));
         return var1;
      } else {
         return null;
      }
   }

   private static ClusterNodeInfoHelper.LicenseGrants c(JsonNode var0) {
      if (var0 != null) {
         ClusterNodeInfoHelper.LicenseGrants var1 = new ClusterNodeInfoHelper.LicenseGrants();
         String[] var2 = b;
         var1.setHostname(b(var0, var2[32]));
         var1.setIp(b(var0, var2[35]));
         var1.setFeatureSets(a(var0, var2[0]));
         var1.setProductName(b(var0, var2[31]));
         var1.setProductVersion(d(var0.get(var2[14])));
         return var1;
      } else {
         return null;
      }
   }

   private static ClusterNodeInfoHelper.LicenseProductVersion d(JsonNode var0) {
      if (var0 != null) {
         ClusterNodeInfoHelper.LicenseProductVersion var1 = new ClusterNodeInfoHelper.LicenseProductVersion();
         String[] var2 = b;
         var1.setMajor(b(var0, var2[11]));
         var1.setMinor(b(var0, var2[36]));
         var1.setIssuer(b(var0, var2[3]));
         return var1;
      } else {
         return null;
      }
   }

   private static Properties e(JsonNode var0) {
      Properties var1 = new Properties();
      var0.forEach(var1x -> {
         String[] var2 = b;
         var1.put(b(var1x, var2[29]), b(var1x, var2[10]));
      });
      return var1;
   }

   private static Set<String> a(JsonNode var0, String var1) {
      HashSet var2 = new HashSet();
      var0 = var0.get(var1);
      if (var0 != null) {
         var0.forEach(var1x -> var2.add(var1x.asText()));
      }

      return var2;
   }

   private static String b(JsonNode var0, String var1) {
      var0 = var0.get(var1);
      return var0 != null && !var0.asText().equalsIgnoreCase(b[17]) ? var0.asText() : null;
   }

   static {
      String[] var5 = new String[44];
      int var3 = 0;
      String var2 = "H,\u007f\\\f>]},j[\u0004Z;kM\nH&lE?-[Z&l\u0006G:m]\u001c>\t^(jK\u0011\u0018A^,\u0011]<nX\u0016>L]\r\\}\t+JO-{\u0006B(jM\n8\nB&pO*8JG'y\u0007^(jK\u0011)K\u0006X,pL\u0016>\u0005X(r]\u001c\u0005C(tG\u000b\u000e@&zM)>W^,l\\\u0010)K\bB }M\u0017?]]\u000e^;qL\f/Lx,l[\u0010#V\u000fA9{Z\u00188Q@.MQ\n8]C\u0004@(sM\u0004@<rD\u000e^;qL\f/Lx,l[\u0010#V\fM&p\\\u0018/Lk$\u007fA\u0015\fH&lE\u0018 kZ;wF\u001e\u0005C pG\u000b\u0005C(tG\u000b\u0003D?s\u0007X,l[\u0010#V\fD?si\u000b+MC,p\\\n\u0007^(jK\u0011\u0005\\\tL<wD\u001d\bYZ,\u0014H(wD\u0016:]\\\r\\k\u0016\"^G.kZ\u001c(\u0004@(sM\u0007X,l[\u0010#V\u000b^;qL\f/L`(sM\bF&m\\\u0017-UK\b]<|e\u0010\"W\\\u000bJ,mK\u000b%HZ qF\u0002G9\u0005C pG\u000b\u0010]0m\\\u001c!h\\&nM\u000b8QK:\u0013Z,rM\u0014)L\\0NZ\u0016<]\\=wM\n\u000b]!qZ\r\u001fL\\ pO\u000bL<wD\u001d\u0002MC+{Z\u000b^;qL\f/L`(sM";
      int var4 = "H,\u007f\\\f>]},j[\u0004Z;kM\nH&lE?-[Z&l\u0006G:m]\u001c>\t^(jK\u0011\u0018A^,\u0011]<nX\u0016>L]\r\\}\t+JO-{\u0006B(jM\n8\nB&pO*8JG'y\u0007^(jK\u0011)K\u0006X,pL\u0016>\u0005X(r]\u001c\u0005C(tG\u000b\u000e@&zM)>W^,l\\\u0010)K\bB }M\u0017?]]\u000e^;qL\f/Lx,l[\u0010#V\u000fA9{Z\u00188Q@.MQ\n8]C\u0004@(sM\u0004@<rD\u000e^;qL\f/Lx,l[\u0010#V\fM&p\\\u0018/Lk$\u007fA\u0015\fH&lE\u0018 kZ;wF\u001e\u0005C pG\u000b\u0005C(tG\u000b\u0003D?s\u0007X,l[\u0010#V\fD?si\u000b+MC,p\\\n\u0007^(jK\u0011\u0005\\\tL<wD\u001d\bYZ,\u0014H(wD\u0016:]\\\r\\k\u0016\"^G.kZ\u001c(\u0004@(sM\u0007X,l[\u0010#V\u000b^;qL\f/L`(sM\bF&m\\\u0017-UK\b]<|e\u0010\"W\\\u000bJ,mK\u000b%HZ qF\u0002G9\u0005C pG\u000b\u0010]0m\\\u001c!h\\&nM\u000b8QK:\u0013Z,rM\u0014)L\\0NZ\u0016<]\\=wM\n\u000b]!qZ\r\u001fL\\ pO\u000bL<wD\u001d\u0002MC+{Z\u000b^;qL\f/L`(sM"
         .length();
      char var1 = 11;
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     b = var5;
                     return;
                  }

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

                  var2 = "7C\u00058h@%5E\u0013\"d\u0006%E\u0007$tG";
                  var4 = "7C\u00058h@%5E\u0013\"d\u0006%E\u0007$tG".length();
                  var1 = '\f';
                  var7 = -1;
            }

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

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

      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 -> 59;
            case 1 -> 92;
            case 2 -> 11;
            case 3 -> 61;
            case 4 -> 108;
            case 5 -> 89;
            default -> 45;
         });
      }

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