package com.l7tech.server;

import com.l7tech.util.Config;
import com.l7tech.util.ResourceUtils;
import com.l7tech.util.SyspropUtil;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.beans.factory.InitializingBean;

public class SystemProperties implements InitializingBean {
   private static final Logger a;
   private static final String b;
   private static final String c;
   protected static final String DISKLESS_CONFIG_SYSTEM_PROP;
   protected final Config config;
   private static final String[] d;

   public SystemProperties(Config var1) {
      this.config = var1;
   }

   public void afterPropertiesSet() throws Exception {
      this.a(this.config);
   }

   private void a(Config var1) throws IOException {
      Properties var2 = this.getDefaultProperties();
      Properties var3 = this.b(var1);

      for (Object var5 : var3.keySet()) {
         var2.remove(var5);
      }

      this.setSystemProperties(var2, null, false);
      this.setSystemProperties(var3, null, true);
   }

   public Properties getDefaultProperties() throws IOException {
      Properties var1 = new Properties();
      InputStream var2 = null;

      try {
         var2 = SystemProperties.class.getResourceAsStream(d[8]);

         try {
            if (var2 != null) {
               var1.load(var2);
            }
         } catch (IOException var6) {
            throw a(var6);
         }
      } finally {
         ResourceUtils.closeQuietly(var2);
      }

      return var1;
   }

   public Properties getUserDefinedProperties() throws IOException {
      return this.b(this.config);
   }

   private Properties b(Config var1) throws IOException {
      String[] var7 = d;
      String var2 = var1.getProperty(var7[5]);
      File var3 = new File(var2);
      Properties var4 = new Properties();
      InputStream var5 = null;

      try {
         if (var3.exists()) {
            var5 = new FileInputStream(var3);
         } else {
            var5 = SystemProperties.class.getResourceAsStream(d[3]);
         }

         try {
            if (var5 != null) {
               var4.load(var5);
            }
         } catch (IOException var10) {
            throw a(var10);
         }
      } finally {
         ResourceUtils.closeQuietly(var5);
      }

      return var4;
   }

   public void setSystemProperties(Properties var1, String var2, boolean var3) {
      String var4 = var2 == null ? "" : (var2.endsWith(".") ? var2 : var2 + ".");
      String[] var11 = d;
      String var5 = var11[0].replace(var4, "");
      boolean var6 = SyspropUtil.getBoolean(var11[1]) || Boolean.parseBoolean(var1.getProperty(var5));

      for (String var8 : var1.stringPropertyNames()) {
         String var9 = var1.getProperty(var8);
         String var10 = var4 + var8;
         if (!var6 && SyspropUtil.getProperty(var10) != null) {
            if (var3) {
               a.log(Level.FINE, d[7], var10);
            }
         } else {
            if (var3) {
               var11 = d;
               a.log(Level.CONFIG, var11[4], new Object[]{var10, var9});
            }

            SyspropUtil.setProperty(var10, var9);
         }
      }
   }

   static {
      String[] var5 = new String[9];
      int var3 = 0;
      String var2 = "VlP\u0011\bSTP`U\u0011\u0017\u0001RCfO\u0011\u0014\u0016OVfNL'\u000bNAqRS\b\u0001ReqXL\u0001\nT*VlP\u0011\bSTP`U\u0011\u0017\u0001RCfO\u0011\u0014\u0016OVfNL'\u000bNAqRS\b\u0001ReqXL\u0001\nT\u0019VlP\u0011\bSTP`U\u0011\u0000\rS^oXL\u0017'O[eTX\u0011FzNK\u0001\t\u000eEqRO\u0001\u0016T\\fN\u001fffIK\r\nG\u0015pDL\u0010\u0001M\u0015sOP\u0014\u0001RAz\u001dDT\u0019\u001dN2@\u0014FzNK\u0001\tpGlMZ\u0016\u0010IPpm^\u0010\f\u001bGfNP\u0011\u0016CPp\u0012L\u001d\u0017TPn\u0013O\u0016\u000bPPqIV\u0001\u0017";
      int var4 = "VlP\u0011\bSTP`U\u0011\u0017\u0001RCfO\u0011\u0014\u0016OVfNL'\u000bNAqRS\b\u0001ReqXL\u0001\nT*VlP\u0011\bSTP`U\u0011\u0017\u0001RCfO\u0011\u0014\u0016OVfNL'\u000bNAqRS\b\u0001ReqXL\u0001\nT\u0019VlP\u0011\bSTP`U\u0011\u0000\rS^oXL\u0017'O[eTX\u0011FzNK\u0001\t\u000eEqRO\u0001\u0016T\\fN\u001fffIK\r\nG\u0015pDL\u0010\u0001M\u0015sOP\u0014\u0001RAz\u001dDT\u0019\u001dN2@\u0014FzNK\u0001\tpGlMZ\u0016\u0010IPpm^\u0010\f\u001bGfNP\u0011\u0016CPp\u0012L\u001d\u0017TPn\u0013O\u0016\u000bPPqIV\u0001\u0017"
         .length();
      char var1 = '*';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 35;
         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) {
                     d = var5;
                     String[] var9 = d;
                     b = d[6];
                     c = var9[1];
                     DISKLESS_CONFIG_SYSTEM_PROP = var9[2];
                     a = Logger.getLogger(SystemProperties.class.getName());
                     return;
                  }

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

                  var2 = "\u0005\u00127ai\u007f*?\u0014-&:i'8\t&,:j,$\r&3nc~0M>ax\u007f=*\b0$:s*k\u0015\"2:{29\u0018\"%c:<.\u0018-ai\u007f*\u001b9\u00180.oh=.\u000el2ci*.\u0010m1hu..\u000f7(\u007fi";
                  var4 = "\u0005\u00127ai\u007f*?\u0014-&:i'8\t&,:j,$\r&3nc~0M>ax\u007f=*\b0$:s*k\u0015\"2:{29\u0018\"%c:<.\u0018-ai\u007f*\u001b9\u00180.oh=.\u000el2ci*.\u0010m1hu..\u000f7(\u007fi"
                     .length();
                  var1 = '?';
                  var7 = -1;
            }

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

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

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

      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 -> 22;
            case 1 -> 32;
            case 2 -> 30;
            case 3 -> 28;
            case 4 -> 71;
            case 5 -> 71;
            default -> 3;
         });
      }

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