package com.l7tech.server.log;

import com.l7tech.gateway.common.log.SinkConfiguration;
import com.l7tech.server.ServerConfig;
import com.l7tech.server.log.syslog.Syslog;
import com.l7tech.server.log.syslog.SyslogManager;
import com.l7tech.server.log.syslog.SyslogProtocol;
import com.l7tech.server.log.syslog.SyslogSeverity;
import com.l7tech.util.ConfigurableLogFormatter;
import com.l7tech.util.InetAddressUtil;
import com.l7tech.util.Pair;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;

class e extends MessageSinkSupport {
   public static final String LOG_PATTERN_STANDARD;
   public static final String LOG_PATTERN_NO_HOST;
   static final String e;
   static final String f;
   static final String g;
   private final Syslog h;
   private final String i;
   private final boolean j;
   private static final String[] k;

   @Override
   public void close() throws IOException {
      this.h.close();
   }

   @Override
   public List<Handler> getHandlers() {
      return Collections.emptyList();
   }

   e(ServerConfig var1, SinkConfiguration var2, SyslogManager var3) throws MessageSinkSupport.ConfigurationException {
      this(var1, var2, var3, false);
   }

   e(ServerConfig var1, SinkConfiguration var2, SyslogManager var3, boolean var4) throws MessageSinkSupport.ConfigurationException {
      super(var2);
      this.h = this.a(var2, var3, var1.getHostname());
      this.i = k[17];
      this.j = var4;
   }

   @Override
   void processMessage(MessageCategory var1, LogRecord var2) {
      String var3 = this.a().getName();
      String var4 = this.a().getProperty(SinkConfiguration.PROP_SYSLOG_FORMAT);
      LogManager var10000 = LogManager.getLogManager();
      String[] var6 = k;
      String var5 = var10000.getProperty(var6[2] + var3 + "." + var4);
      if (var5 == null) {
         var5 = LogManager.getLogManager().getProperty(var6[12] + var4);
      }

      label26: {
         label25: {
            try {
               if (var5 != null) {
                  break label26;
               }

               if (SinkConfiguration.SYSLOG_FORMAT_STANDARD.equals(var4)) {
                  break label25;
               }
            } catch (MissingResourceException var7) {
               throw a(var7);
            }

            if (SinkConfiguration.SYSLOG_FORMAT_VERBOSE.equals(var4)) {
               var6 = k;
               var5 = var6[3];
            } else {
               var5 = k[10];
            }
            break label26;
         }

         var6 = k;
         var5 = var6[18];
      }

      this.h
         .log(
            this.a(var2.getLevel()),
            this.i,
            var2.getThreadID(),
            var2.getMillis(),
            new ConfigurableLogFormatter(var5).format(var2, new Object[]{this.a().getName()})
         );
   }

   private SyslogSeverity a(Level var1) {
      int var3 = var1.intValue();
      SyslogSeverity var2;
      if (var3 >= Level.SEVERE.intValue()) {
         var2 = SyslogSeverity.ERROR;
      } else if (var3 >= Level.WARNING.intValue()) {
         var2 = SyslogSeverity.WARNING;
      } else if (var3 >= Level.INFO.intValue()) {
         var2 = SyslogSeverity.INFORMATIONAL;
      } else {
         var2 = SyslogSeverity.DEBUG;
      }

      return var2;
   }

   private String a(String param1, ResourceBundle param2, Object[] 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: aload 1
      // 01: astore 4
      // 03: aload 2
      // 04: ifnull 13
      // 07: aload 2
      // 08: aload 1
      // 09: invokevirtual java/util/ResourceBundle.getString (Ljava/lang/String;)Ljava/lang/String;
      // 0c: astore 4
      // 0e: goto 13
      // 11: astore 5
      // 13: aload 3
      // 14: ifnull 7e
      // 17: aload 3
      // 18: arraylength
      // 19: ifle 7e
      // 1c: goto 23
      // 1f: invokestatic com/l7tech/server/log/e.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 22: athrow
      // 23: aload 4
      // 25: getstatic com/l7tech/server/log/e.k [Ljava/lang/String;
      // 28: bipush 14
      // 2a: aaload
      // 2b: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 2e: ifge 76
      // 31: goto 38
      // 34: invokestatic com/l7tech/server/log/e.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37: athrow
      // 38: aload 4
      // 3a: getstatic com/l7tech/server/log/e.k [Ljava/lang/String;
      // 3d: bipush 5
      // 3e: aaload
      // 3f: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 42: ifge 76
      // 45: goto 4c
      // 48: invokestatic com/l7tech/server/log/e.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4b: athrow
      // 4c: aload 4
      // 4e: getstatic com/l7tech/server/log/e.k [Ljava/lang/String;
      // 51: bipush 8
      // 53: aaload
      // 54: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 57: ifge 76
      // 5a: goto 61
      // 5d: invokestatic com/l7tech/server/log/e.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 60: athrow
      // 61: aload 4
      // 63: getstatic com/l7tech/server/log/e.k [Ljava/lang/String;
      // 66: bipush 16
      // 68: aaload
      // 69: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 6c: iflt 7e
      // 6f: goto 76
      // 72: invokestatic com/l7tech/server/log/e.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 75: athrow
      // 76: aload 4
      // 78: aload 3
      // 79: invokestatic java/text/MessageFormat.format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
      // 7c: astore 4
      // 7e: aload 4
      // 80: areturn
      // try (4 -> 8): 9 java/util/MissingResourceException
      // try (10 -> 15): 16 java/util/MissingResourceException
      // try (12 -> 24): 25 java/util/MissingResourceException
      // try (18 -> 33): 34 java/util/MissingResourceException
      // try (27 -> 42): 43 java/util/MissingResourceException
      // try (36 -> 51): 52 java/util/MissingResourceException
   }

   private Syslog a(SinkConfiguration var1, SyslogManager var2, String var3) throws MessageSinkSupport.ConfigurationException {
      return this.b(var1, var2, var3);
   }

   private Syslog b(SinkConfiguration var1, SyslogManager var2, String var3) throws MessageSinkSupport.ConfigurationException {
      String var5 = var1.getProperty(SinkConfiguration.PROP_SYSLOG_PROTOCOL);
      SyslogProtocol var4;
      if (SinkConfiguration.SYSLOG_PROTOCOL_TCP.equals(var5)) {
         var4 = SyslogProtocol.TCP;
      } else if (SinkConfiguration.SYSLOG_PROTOCOL_SSL.equals(var5)) {
         var4 = SyslogProtocol.SSL;
      } else {
         var4 = SyslogProtocol.UDP;
      }

      String[][] var6 = this.b(var1);
      String[] var14 = k;
      String var7 = var14[4];
      if (!Boolean.valueOf(var1.getProperty(SinkConfiguration.PROP_SYSLOG_LOG_HOSTNAME))) {
         var7 = var14[13];
      }

      String var8 = var1.getProperty(SinkConfiguration.PROP_SYSLOG_TIMEZONE);
      int var9 = Integer.parseInt(var1.getProperty(SinkConfiguration.PROP_SYSLOG_FACILITY));
      String var10 = var1.getProperty(SinkConfiguration.PROP_SYSLOG_CHAR_SET);
      String var11 = null;
      String var12 = null;

      label31: {
         try {
            if (!SyslogProtocol.SSL.equals(var4) || !k[19].equals(var1.getProperty(SinkConfiguration.PROP_SYSLOG_SSL_CLIENTAUTH))) {
               break label31;
            }
         } catch (IllegalArgumentException var16) {
            throw a(var16);
         }

         var11 = var1.getProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEY_ALIAS);
         var12 = var1.getProperty(SinkConfiguration.PROP_SYSLOG_SSL_KEYSTORE_ID);
      }

      try {
         return var2.getSyslog(var4, var6, var7, var8, var9, var3, var10, null, var11, var12);
      } catch (IllegalArgumentException var15) {
         throw new MessageSinkSupport.ConfigurationException(k[0], var15);
      }
   }

   private String[][] b(SinkConfiguration var1) throws MessageSinkSupport.ConfigurationException {
      String[][] var2 = new String[var1.syslogHostList().size()][];
      int var3 = 0;

      for (String var5 : var1.syslogHostList()) {
         Pair var6 = InetAddressUtil.getHostAndPort(var5, null);

         try {
            if (var6.right == null) {
               throw new MessageSinkSupport.ConfigurationException(k[15] + var5);
            }
         } catch (MessageSinkSupport.ConfigurationException var7) {
            throw a(var7);
         }

         var2[var3++] = new String[]{(String)var6.left, (String)var6.right};
      }

      return var2;
   }

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

   static {
      String[] var5 = new String[20];
      int var3 = 0;
      String var2 = "\fc\"qN1`;t1jU\u007fdib)mP~dir<wY\u007fw\u0004l%tm\f:x>u\u0012wl;|1j\u0012 \u00124i:OL#l)tm\u001c41mbp;\u000f5pi4f:O+#l%tm\u001aujbc\u0002j041++A1x~l\u000be\u0004l^s1+'A\u00022 \u0014l)tm\u001c41mbp;\u000f5ps1u*\u0018b \u00124i:OL#l)tm\u001c41mbp;\u000f5pi4f:O+#l%tm\u00022#\u0016ujbc\u0002j041+)AJxql\r$\u001cj:4\u0004l%tm\u001aujbc\u0002j041++A1x~l\u000be\u0004l^s1+'A\f:x>u\u0012wl;|1j\u0012\u0016ujbc\u0002j041+)AJxql\r$\u001cj:4\u00022!'\u0000\u007f&\u007fPxgiB)mP~diy?mH1e&c=\u007fH1f'r?kRef;t4#\u00022\"\u0003\u001aB\u0017";
      int var4 = "\fc\"qN1`;t1jU\u007fdib)mP~dir<wY\u007fw\u0004l%tm\f:x>u\u0012wl;|1j\u0012 \u00124i:OL#l)tm\u001c41mbp;\u000f5pi4f:O+#l%tm\u001aujbc\u0002j041++A1x~l\u000be\u0004l^s1+'A\u00022 \u0014l)tm\u001c41mbp;\u000f5ps1u*\u0018b \u00124i:OL#l)tm\u001c41mbp;\u000f5pi4f:O+#l%tm\u00022#\u0016ujbc\u0002j041+)AJxql\r$\u001cj:4\u0004l%tm\u001aujbc\u0002j041++A1x~l\u000be\u0004l^s1+'A\f:x>u\u0012wl;|1j\u0012\u0016ujbc\u0002j041+)AJxql\r$\u001cj:4\u00022!'\u0000\u007f&\u007fPxgiB)mP~diy?mH1e&c=\u007fH1f'r?kRef;t4#\u00022\"\u0003\u001aB\u0017"
         .length();
      char var1 = 28;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 53;
         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) {
                     k = var5;
                     String[] var9 = k;
                     LOG_PATTERN_NO_HOST = k[9];
                     LOG_PATTERN_STANDARD = var9[11];
                     e = var9[1];
                     f = var9[6];
                     g = var9[7];
                     return;
                  }

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

                  var2 = "m(ul\u001d50lcq:\u000e4qr0t+\u0019c\u0004<b$z";
                  var4 = "m(ul\u001d50lcq:\u000e4qr0t+\u0019c\u0004<b$z".length();
                  var1 = 20;
                  var7 = -1;
            }

            var10000 = 52;
            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] ^ 54);
      }

      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 -> 124;
            case 1 -> 36;
            case 2 -> 101;
            case 3 -> 43;
            case 4 -> 9;
            case 5 -> 36;
            default -> 54;
         });
      }

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