package com.l7tech.server.pm2;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.l7tech.common.http.HttpConstants;
import com.l7tech.gateway.common.LicenseException;
import com.l7tech.gateway.pm2.graphql.beans.PM2GraphQLRequest;
import com.l7tech.gateway.pm2.graphql.service.PM2GraphQLService;
import com.l7tech.identity.User;
import com.l7tech.server.boot.GatewayBoot;
import com.l7tech.server.boot.GatewayBootUtil;
import com.l7tech.server.oauth2.OAuth2Exception;
import com.l7tech.server.oauth2.OAuth2VerifierResult;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.SyspropUtil;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.security.auth.Subject;
import org.jetbrains.annotations.Nullable;

public class PM2Servlet extends PM2AbstractServlet {
   private static final Logger logger;
   private static final String TOKEN_TYPE_AT_JWT;
   private static final String ENABLED_PROP;
   private static final String SESSION_EXTENSION_THRESHOLD_SYS_PROP;
   private static final String SESSION_EXPIRY_SYS_PROP;
   private static final int SESSION_EXPIRY_DEFAULT = 1800;
   private static final int SESSION_EXTENSION_THRESHOLD_DEFAULT = 43200;
   @Nullable
   private PM2GraphQLService pm2GraphQLService;
   static final long serialVersionUID = -5968290025755970901L;
   private static final String[] c;

   @Override
   public void init(ServletConfig var1) throws ServletException {
      try {
         super.init(var1);
         this.initPM2State();
         if (!GatewayBoot.Mode.RUNTIME.equals(GatewayBootUtil.getMode())) {
            this.pm2GraphQLService = PM2GraphQLService.getInstance(this.getApplicationContext());
         }
      } catch (ServletException var2) {
         throw b(var2);
      }
   }

   public void doPost(HttpServletRequest var1, HttpServletResponse var2) throws ServletException, IOException {
      try {
         this.licenseManager.requireFeature(this.getFeature());
      } catch (LicenseException var5) {
         String[] var4 = c;
         logger.warning(var4[10]);
         this.respondError(var2, 503, var4[49]);
         return;
      }

      String var3 = var1.getRequestURI();

      try {
         if (var3.endsWith(c[56])) {
            this.doManageSession(var1, var2);
            return;
         }
      } catch (LicenseException var7) {
         throw b(var7);
      }

      try {
         if (var3.endsWith(c[1])) {
            this.doGraphQLRequest(var1, var2);
            return;
         }
      } catch (LicenseException var6) {
         throw b(var6);
      }

      this.respondError(var2, 404, c[14]);
   }

   private void doManageSession(HttpServletRequest param1, HttpServletResponse param2) throws IOException {
      // $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: getstatic com/l7tech/server/pm2/PM2Servlet.c [Ljava/lang/String;
      // 04: astore 7
      // 06: aload 7
      // 08: bipush 50
      // 0a: aaload
      // 0b: invokeinterface jakarta/servlet/http/HttpServletRequest.getParameter (Ljava/lang/String;)Ljava/lang/String; 2
      // 10: astore 3
      // 11: aload 7
      // 13: bipush 3
      // 14: aaload
      // 15: aload 3
      // 16: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 19: istore 4
      // 1b: iload 4
      // 1d: ifeq 2a
      // 20: getstatic com/l7tech/server/pm2/PM2AbstractServlet$PM2AuthType.BASIC Lcom/l7tech/server/pm2/PM2AbstractServlet$PM2AuthType;
      // 23: goto 2d
      // 26: invokestatic com/l7tech/server/pm2/PM2Servlet.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 29: athrow
      // 2a: getstatic com/l7tech/server/pm2/PM2AbstractServlet$PM2AuthType.COOKIE Lcom/l7tech/server/pm2/PM2AbstractServlet$PM2AuthType;
      // 2d: astore 5
      // 2f: aload 0
      // 30: aload 1
      // 31: aload 2
      // 32: aload 5
      // 34: invokevirtual com/l7tech/server/pm2/PM2Servlet.authenticate (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;Lcom/l7tech/server/pm2/PM2AbstractServlet$PM2AuthType;)Lcom/l7tech/server/pm2/PM2AbstractServlet$PM2AuthContext;
      // 37: astore 6
      // 39: aload 6
      // 3b: invokevirtual com/l7tech/server/pm2/PM2AbstractServlet$PM2AuthContext.isAuthenticated ()Z
      // 3e: ifne 46
      // 41: return
      // 42: invokestatic com/l7tech/server/pm2/PM2Servlet.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 45: athrow
      // 46: aload 0
      // 47: aload 6
      // 49: invokevirtual com/l7tech/server/pm2/PM2Servlet.verifyRBAC (Lcom/l7tech/server/pm2/PM2AbstractServlet$PM2AuthContext;)Z
      // 4c: ifne 62
      // 4f: aload 0
      // 50: aload 2
      // 51: sipush 403
      // 54: getstatic com/l7tech/server/pm2/PM2Servlet.c [Ljava/lang/String;
      // 57: bipush 40
      // 59: aaload
      // 5a: invokevirtual com/l7tech/server/pm2/PM2Servlet.respondError (Ljakarta/servlet/http/HttpServletResponse;ILjava/lang/String;)V
      // 5d: return
      // 5e: invokestatic com/l7tech/server/pm2/PM2Servlet.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 61: athrow
      // 62: iload 4
      // 64: ifeq 75
      // 67: aload 0
      // 68: aload 2
      // 69: aload 6
      // 6b: invokevirtual com/l7tech/server/pm2/PM2Servlet.doLogin (Ljakarta/servlet/http/HttpServletResponse;Lcom/l7tech/server/pm2/PM2AbstractServlet$PM2AuthContext;)V
      // 6e: goto df
      // 71: invokestatic com/l7tech/server/pm2/PM2Servlet.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 74: athrow
      // 75: getstatic com/l7tech/server/pm2/PM2Servlet.c [Ljava/lang/String;
      // 78: bipush 48
      // 7a: aaload
      // 7b: aload 3
      // 7c: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 7f: ifeq 90
      // 82: aload 0
      // 83: aload 2
      // 84: aload 6
      // 86: invokevirtual com/l7tech/server/pm2/PM2Servlet.doLogout (Ljakarta/servlet/http/HttpServletResponse;Lcom/l7tech/server/pm2/PM2AbstractServlet$PM2AuthContext;)V
      // 89: goto df
      // 8c: invokestatic com/l7tech/server/pm2/PM2Servlet.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8f: athrow
      // 90: getstatic com/l7tech/server/pm2/PM2Servlet.c [Ljava/lang/String;
      // 93: bipush 13
      // 95: aaload
      // 96: aload 3
      // 97: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 9a: ifeq ab
      // 9d: aload 0
      // 9e: aload 2
      // 9f: aload 6
      // a1: invokevirtual com/l7tech/server/pm2/PM2Servlet.doRenewSession (Ljakarta/servlet/http/HttpServletResponse;Lcom/l7tech/server/pm2/PM2AbstractServlet$PM2AuthContext;)V
      // a4: goto df
      // a7: invokestatic com/l7tech/server/pm2/PM2Servlet.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // aa: athrow
      // ab: getstatic com/l7tech/server/pm2/PM2Servlet.c [Ljava/lang/String;
      // ae: bipush 23
      // b0: aaload
      // b1: aload 3
      // b2: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // b5: ifne c3
      // b8: aload 3
      // b9: ifnonnull d1
      // bc: goto c3
      // bf: invokestatic com/l7tech/server/pm2/PM2Servlet.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // c2: athrow
      // c3: aload 0
      // c4: aload 2
      // c5: aload 6
      // c7: invokevirtual com/l7tech/server/pm2/PM2Servlet.doSessionInfo (Ljakarta/servlet/http/HttpServletResponse;Lcom/l7tech/server/pm2/PM2AbstractServlet$PM2AuthContext;)V
      // ca: goto df
      // cd: invokestatic com/l7tech/server/pm2/PM2Servlet.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // d0: athrow
      // d1: aload 0
      // d2: aload 2
      // d3: sipush 400
      // d6: getstatic com/l7tech/server/pm2/PM2Servlet.c [Ljava/lang/String;
      // d9: bipush 11
      // db: aaload
      // dc: invokevirtual com/l7tech/server/pm2/PM2Servlet.respondError (Ljakarta/servlet/http/HttpServletResponse;ILjava/lang/String;)V
      // df: return
      // try (14 -> 18): 18 java/io/IOException
      // try (28 -> 32): 32 java/io/IOException
      // try (34 -> 46): 46 java/io/IOException
      // try (48 -> 55): 55 java/io/IOException
      // try (57 -> 68): 68 java/io/IOException
      // try (70 -> 81): 81 java/io/IOException
      // try (83 -> 91): 92 java/io/IOException
      // try (89 -> 99): 99 java/io/IOException
   }

   private void doLogin(HttpServletResponse var1, PM2AbstractServlet.PM2AuthContext var2) throws IOException {
      try {
         int var3 = this.getSessionExpiry();
         HashMap var4 = new HashMap();
         String[] var6 = c;
         var4.put(var6[17], UUID.randomUUID().toString());
         var4.put(var6[38], this.getCurrentEpoch());
         String var5 = this.ssgOAuth2Issuer.getSigner().generateJwt(var2.getAuthenticatedUser(), var4, var3, var6[42]);
         var1.setHeader(HttpConstants.HEADER_SET_COOKIE, this.getL7SessionIdCookie(var5));
         this.respondSuccess(var1, this.generateTokenResponse(var3));
         logger.log(Level.INFO, var6[12], var2.getAuthenticatedUser().getLogin());
      } catch (JsonProcessingException | OAuth2Exception var7) {
         this.respondError(var1, 500, c[54]);
      }
   }

   private void doRenewSession(HttpServletResponse var1, PM2AbstractServlet.PM2AuthContext var2) throws IOException {
      OAuth2VerifierResult var3 = var2.getOAuthResult();

      try {
         if (var3 == null) {
            this.respondSuccess(var1, c[45]);
            return;
         }
      } catch (JsonProcessingException var13) {
         throw b(var13);
      }

      int var4 = this.getSessionExpiry();
      int var5 = this.getSessionExtensionThreshold();
      long var6 = this.getAuthTime(var3);

      try {
         if (this.getCurrentEpoch() - var6 > var5) {
            this.respondError(var1, 403, c[26]);
         }
      } catch (JsonProcessingException var12) {
         throw b(var12);
      }

      HashMap var8 = new HashMap();
      String[] var10 = c;
      var8.put(var10[17], var3.getResult().get(var10[17]));
      var8.put(var10[8], var6);
      var8.put(var10[2], var3.getResult().get(var10[2]));
      var8.put(var10[37], var3.getResult().get(var10[37]));
      var8.put(var10[41], var3.getResult().get(var10[41]));

      try {
         String var9 = this.ssgOAuth2Issuer.getSigner().generateJwt(var8, var4, var10[43]);
         this.ssgOAuth2Issuer.getSigner().revokeJwt(var3.getResult());
         var1.setHeader(HttpConstants.HEADER_SET_COOKIE, this.getL7SessionIdCookie(var9));
         this.respondSuccess(var1, this.generateTokenResponse(var4));
         logger.log(Level.INFO, var10[22], var8.get(var10[37]));
      } catch (JsonProcessingException | OAuth2Exception var11) {
         this.respondError(var1, 500, c[24]);
      }
   }

   private void doLogout(HttpServletResponse param1, PM2AbstractServlet.PM2AuthContext param2) throws IOException {
      // $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 2
      // 01: invokevirtual com/l7tech/server/pm2/PM2AbstractServlet$PM2AuthContext.getOAuthResult ()Lcom/l7tech/server/oauth2/OAuth2VerifierResult;
      // 04: astore 3
      // 05: aload 3
      // 06: ifnull 4c
      // 09: aload 0
      // 0a: getfield com/l7tech/server/pm2/PM2Servlet.ssgOAuth2Issuer Lcom/l7tech/server/oauth2/SSGOAuth2Issuer;
      // 0d: invokevirtual com/l7tech/server/oauth2/SSGOAuth2Issuer.getSigner ()Lcom/l7tech/server/oauth2/OAuth2Signer;
      // 10: aload 3
      // 11: invokeinterface com/l7tech/server/oauth2/OAuth2VerifierResult.getResult ()Ljava/util/Map; 1
      // 16: invokeinterface com/l7tech/server/oauth2/OAuth2Signer.revokeJwt (Ljava/util/Map;)Z 2
      // 1b: ifeq 4c
      // 1e: goto 25
      // 21: invokestatic com/l7tech/server/pm2/PM2Servlet.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 24: athrow
      // 25: getstatic com/l7tech/server/pm2/PM2Servlet.logger Ljava/util/logging/Logger;
      // 28: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 2b: getstatic com/l7tech/server/pm2/PM2Servlet.c [Ljava/lang/String;
      // 2e: bipush 51
      // 30: aaload
      // 31: aload 3
      // 32: invokeinterface com/l7tech/server/oauth2/OAuth2VerifierResult.getResult ()Ljava/util/Map; 1
      // 37: getstatic com/l7tech/server/pm2/PM2Servlet.c [Ljava/lang/String;
      // 3a: bipush 37
      // 3c: aaload
      // 3d: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 42: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
      // 45: goto 4c
      // 48: invokestatic com/l7tech/server/pm2/PM2Servlet.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4b: athrow
      // 4c: goto 66
      // 4f: astore 3
      // 50: getstatic com/l7tech/server/pm2/PM2Servlet.logger Ljava/util/logging/Logger;
      // 53: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 56: getstatic com/l7tech/server/pm2/PM2Servlet.c [Ljava/lang/String;
      // 59: astore 4
      // 5b: aload 4
      // 5d: bipush 5
      // 5e: aaload
      // 5f: aload 3
      // 60: invokestatic com/l7tech/util/ExceptionUtils.getMessageWithCause (Ljava/lang/Throwable;)Ljava/lang/String;
      // 63: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
      // 66: aload 0
      // 67: aload 1
      // 68: ldc ""
      // 6a: getstatic com/l7tech/server/pm2/PM2Servlet.c [Ljava/lang/String;
      // 6d: bipush 28
      // 6f: aaload
      // 70: invokevirtual com/l7tech/server/pm2/PM2Servlet.respondSuccess (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/String;)V
      // 73: return
      // try (5 -> 27): 28 com/l7tech/server/oauth2/OAuth2Exception
      // try (3 -> 12): 13 com/l7tech/server/oauth2/OAuth2Exception
      // try (0 -> 30): 31 com/l7tech/server/oauth2/OAuth2Exception
   }

   private void doSessionInfo(HttpServletResponse var1, PM2AbstractServlet.PM2AuthContext var2) throws IOException {
      ObjectNode var3 = this.objectMapper.createObjectNode();
      User var4 = var2.getAuthenticatedUser();
      OAuth2VerifierResult var5 = var2.getOAuthResult();
      if (var5 != null) {
         Map var10000 = var5.getResult();
         String[] var7 = c;
         Object var6 = var10000.get(var7[31]);
         var3.put(var7[18], String.valueOf(var6));
         var3.put(var7[19], this.getExpiryTime(var5) - this.getCurrentEpoch());
      } else {
         String[] var8 = c;
         var3.put(var8[0], UUID.randomUUID().toString());
      }

      String[] var9 = c;
      var3.putObject(var9[27])
         .put(var9[29], var4.getName())
         .put(var9[47], var4.getLogin())
         .put(var9[4], var4.getSubjectDn())
         .put(var9[7], var4.getEmail())
         .put(var9[33], var4.getFirstName())
         .put(var9[55], var4.getLastName())
         .put(var9[30], var4.getProviderId().toString());
      this.respondSuccess(var1, var3.toString());
   }

   private void doGraphQLRequest(HttpServletRequest var1, HttpServletResponse var2) throws IOException {
      PM2AbstractServlet.PM2AuthContext var3 = this.authenticate(var1, var2);

      try {
         if (!var3.isAuthenticated()) {
            return;
         }
      } catch (IOException var9) {
         throw b(var9);
      }

      try {
         if (!this.verifyRBAC(var3)) {
            this.respondError(var2, 403, c[52]);
            return;
         }
      } catch (IOException var6) {
         throw b(var6);
      }

      try {
         if (this.pm2GraphQLService == null) {
            this.respondError(var2, 503, "");
            return;
         }
      } catch (IOException var8) {
         throw b(var8);
      }

      PM2GraphQLRequest var4 = this.getPM2GraphQLRequest(var1);

      try {
         if (var4 == null) {
            this.respondError(var2, 500, c[6]);
            return;
         }
      } catch (IOException var7) {
         throw b(var7);
      }

      Subject var5 = new Subject();
      var5.getPrincipals().add(var3.getAuthenticatedUser());
      Subject.callAs(var5, () -> {
         String[] var4x = c;
         logger.log(Level.FINE, var4x[34], new Object[]{var4.getQuery(), var4.getVariables()});

         try {
            Map var3x = this.pm2GraphQLService.executeGraphQL(var4);
            this.respondSuccess(var2, this.toJSONString(var3x));
         } catch (Exception var5x) {
            logger.warning(String.format(c[15], var4.getQuery(), var4.getVariables(), ExceptionUtils.getMessage(var5x)));
            this.respondError(var2, 500, ExceptionUtils.getMessage(var5x));
         }

         return null;
      });
   }

   private int getCurrentEpoch() {
      return (int)(System.currentTimeMillis() / 1000L);
   }

   private int getSessionExpiry() {
      int var1 = SyspropUtil.getInteger(c[57], 1800);
      return var1 > 0 ? Math.max(300, var1) : 1800;
   }

   private int getSessionExtensionThreshold() {
      int var1 = SyspropUtil.getInteger(c[44], 43200);
      return var1 > 0 ? Math.max(this.getSessionExpiry(), var1) : 43200;
   }

   private long getAuthTime(OAuth2VerifierResult var1) {
      try {
         Long var2 = (Long)var1.getResult().get(c[8]);

         try {
            if (var2 != null) {
               return var2;
            }
         } catch (Exception var3) {
            throw b(var3);
         }

         return 0L;
      } catch (Exception var4) {
         return 0L;
      }
   }

   private long getExpiryTime(OAuth2VerifierResult var1) {
      try {
         Long var2 = (Long)var1.getResult().get(c[9]);

         try {
            if (var2 != null) {
               return var2;
            }
         } catch (Exception var3) {
            throw b(var3);
         }

         return 0L;
      } catch (Exception var4) {
         return 0L;
      }
   }

   private String generateTokenResponse(int var1) {
      ObjectNode var2 = this.objectMapper.createObjectNode();
      return var2.put(c[36], var1).toString();
   }

   private PM2GraphQLRequest getPM2GraphQLRequest(HttpServletRequest var1) {
      try {
         return (PM2GraphQLRequest)this.objectMapper.readValue(var1.getInputStream(), PM2GraphQLRequest.class);
      } catch (IOException var3) {
         logger.warning(c[58] + var3.getMessage());
         return null;
      }
   }

   private String toJSONString(Map<String, Object> var1) {
      try {
         return this.objectMapper.writeValueAsString(var1);
      } catch (JsonProcessingException var4) {
         Logger var10000 = logger;
         String var10001 = var4.getMessage();
         String[] var3 = c;
         var10000.warning(var3[39] + var10001 + var3[32]);
         return var1.toString();
      }
   }

   private String getL7SessionIdCookie(String var1) {
      int var10001 = this.getSessionExpiry();
      String[] var2 = c;
      return var2[21] + var1 + var2[46] + var10001 + var2[53];
   }

   private void initPM2State() {
      PM2State.a(this.serverConfig.getBooleanProperty(c[25], false));
      ConfigFactory.addListener(new a(this), new String[0]);
   }

   static {
      String[] var5 = new String[59];
      int var3 = 0;
      String var2 = "L.\b\n-n>]N\u000fI\nU8s)DB\u001bW\u0003x\u0006F8y>YC\tV?~5HE\na$/`8n0_\u0006\u001bK)s*CR\u001bW/x\u007f_C\bJ!u1J\u0006\nM/<+BM\u001bKf<<LS\r@wgoP\u000fl$j>AO\u001a\u0005\u0018y.XC\rQ\u0005@'}6A\tD?h7rR\u0017H/\u0003@2l\u001au\u0007.\u007f^C\fS#\u007f:\rO\r\u0005?r3DE\u001bK9y;\u0003\u0012l$j>AO\u001a\u0005%l:_G\nL%rq\u0015p9y-\r\u000e\u0005\u001575\u007fAI\u0019B/x\u007fDHP\u0006P:x>YC\u0014p$w1BQ\u0010\u00058y.XC\rQjI\rd\bJ`8n0_\u0006\tM#p:\rC\u0006@)i+DH\u0019\u0005>t:\rV\u0013\u0017j{-LV\u0016T&<.XC\f\\p<z^\n^S+n6LD\u0012@9&\u007f\bUR\u00058y>^I\u0010\u001fj9,/F%qqA\u0011\n@)tq^C\fS/nq]KL\u000b9y,^O\u0011K\u000fd+HH\rL%r\u000bET\u001bV\"s3I\u0003V#x\u0002L.\n@2l6_C\rz#r#F%qqA\u0011\n@)tq^C\fS/nq]KL\u000b9y,^O\u0011K\u000fd/DT\u0007\bi}O\fjo:\u0018$p9y-\r\u000e\u0005\u001575\u007f^C\rV#s1\rN\u001fVj~:HH^W/r:ZC\u001a\u000b\u0004W/};%f%i3I\u0006\u0010J><8HH\u001bW+h:\rR\u0016@jo:^U\u0017J$<+BM\u001bKd\u000bU'.qHH\u001fG&y;6v/o,DI\u0010\u0005)}1CI\n\u0005(y\u007fH^\n@$x:I\u0006\u001c@3s1I\u0006\nM/<+ET\u001bV\"s3I\u0006\u0012L'u+\u0003\u0004P9y-\u0019Q/d+\u0002V\u0012D#rd\rE\u0016D8o:Y\u001b\u000bQ,1g\u0004K+q:\nU8s)DB\u001bW\u0003x\u0003V#x\u001a\tjn:YS\fK#r8\rT\u001bV:s1^C^D9<6^\tC#n,Yh\u001fH//u\u0007.\u007fjT\u001fU\"M\u0013\rt\u001bT?y,Y\u001c^t?y-T\u001c^^zas\rp\u001fW#}=AC\r\u001fjgnP\u000bU'.qHH\u001fG&y;\n@2l6_C\rz#r\u0005I%{6C\tD?h7rR\u0017H/8`8n0_\u0006\tM#p:\rV\u001fW9u1J\u0006\tM#p:\rv3\u0017j[-LV\u0016T&<-HU\u000eJ$o:\u0001\u0006\u001dD?o:\u0017\u0006^\rp$}*YN\u0011W#f:I\b\tV?~5HE\na$\u0006D>7\u0015zr\u0006D>7\u0015zr/F%qqA\u0011\n@)tq^C\fS/nq]KL\u000b9y,^O\u0011K\u000fd+HH\rL%r\u000bET\u001bV\"s3I\u0002^7\u0010\u001e\u001a}+E\u001bQ\u001e\u0007}'\u0000g\u0019@w\u0005I%{6C\u0006A/p:YC\u000bp$p6NC\u0010V/xq\tJ:y-LR\u0017J$\u0016p9y-\r\u000e\u0005\u001575\u007fAI\u0019B/x\u007fBS\n\u000b\rp$}*YN\u0011W#f:I\b \u001e\u0019y<XT\u001b\u001e\u0002h+]i\u0010I3'\fLK\u001bv#h:\u0010u\nW#\u007f+%f%i3I\u0006\u0010J><8HH\u001bW+h:\rR\u0016@jo:^U\u0017J$<+BM\u001bKd\bI+o+cG\u0013@\b\n9y,^O\u0011K";
      int var4 = "L.\b\n-n>]N\u000fI\nU8s)DB\u001bW\u0003x\u0006F8y>YC\tV?~5HE\na$/`8n0_\u0006\u001bK)s*CR\u001bW/x\u007f_C\bJ!u1J\u0006\nM/<+BM\u001bKf<<LS\r@wgoP\u000fl$j>AO\u001a\u0005\u0018y.XC\rQ\u0005@'}6A\tD?h7rR\u0017H/\u0003@2l\u001au\u0007.\u007f^C\fS#\u007f:\rO\r\u0005?r3DE\u001bK9y;\u0003\u0012l$j>AO\u001a\u0005%l:_G\nL%rq\u0015p9y-\r\u000e\u0005\u001575\u007fAI\u0019B/x\u007fDHP\u0006P:x>YC\u0014p$w1BQ\u0010\u00058y.XC\rQjI\rd\bJ`8n0_\u0006\tM#p:\rC\u0006@)i+DH\u0019\u0005>t:\rV\u0013\u0017j{-LV\u0016T&<.XC\f\\p<z^\n^S+n6LD\u0012@9&\u007f\bUR\u00058y>^I\u0010\u001fj9,/F%qqA\u0011\n@)tq^C\fS/nq]KL\u000b9y,^O\u0011K\u000fd+HH\rL%r\u000bET\u001bV\"s3I\u0003V#x\u0002L.\n@2l6_C\rz#r#F%qqA\u0011\n@)tq^C\fS/nq]KL\u000b9y,^O\u0011K\u000fd/DT\u0007\bi}O\fjo:\u0018$p9y-\r\u000e\u0005\u001575\u007f^C\rV#s1\rN\u001fVj~:HH^W/r:ZC\u001a\u000b\u0004W/};%f%i3I\u0006\u0010J><8HH\u001bW+h:\rR\u0016@jo:^U\u0017J$<+BM\u001bKd\u000bU'.qHH\u001fG&y;6v/o,DI\u0010\u0005)}1CI\n\u0005(y\u007fH^\n@$x:I\u0006\u001c@3s1I\u0006\nM/<+ET\u001bV\"s3I\u0006\u0012L'u+\u0003\u0004P9y-\u0019Q/d+\u0002V\u0012D#rd\rE\u0016D8o:Y\u001b\u000bQ,1g\u0004K+q:\nU8s)DB\u001bW\u0003x\u0003V#x\u001a\tjn:YS\fK#r8\rT\u001bV:s1^C^D9<6^\tC#n,Yh\u001fH//u\u0007.\u007fjT\u001fU\"M\u0013\rt\u001bT?y,Y\u001c^t?y-T\u001c^^zas\rp\u001fW#}=AC\r\u001fjgnP\u000bU'.qHH\u001fG&y;\n@2l6_C\rz#r\u0005I%{6C\tD?h7rR\u0017H/8`8n0_\u0006\tM#p:\rV\u001fW9u1J\u0006\tM#p:\rv3\u0017j[-LV\u0016T&<-HU\u000eJ$o:\u0001\u0006\u001dD?o:\u0017\u0006^\rp$}*YN\u0011W#f:I\b\tV?~5HE\na$\u0006D>7\u0015zr\u0006D>7\u0015zr/F%qqA\u0011\n@)tq^C\fS/nq]KL\u000b9y,^O\u0011K\u000fd+HH\rL%r\u000bET\u001bV\"s3I\u0002^7\u0010\u001e\u001a}+E\u001bQ\u001e\u0007}'\u0000g\u0019@w\u0005I%{6C\u0006A/p:YC\u000bp$p6NC\u0010V/xq\tJ:y-LR\u0017J$\u0016p9y-\r\u000e\u0005\u001575\u007fAI\u0019B/x\u007fBS\n\u000b\rp$}*YN\u0011W#f:I\b \u001e\u0019y<XT\u001b\u001e\u0002h+]i\u0010I3'\fLK\u001bv#h:\u0010u\nW#\u007f+%f%i3I\u0006\u0010J><8HH\u001bW+h:\rR\u0016@jo:^U\u0017J$<+BM\u001bKd\bI+o+cG\u0013@\b\n9y,^O\u0011K"
         .length();
      char var1 = 2;
      int var7 = -1;

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

         while (true) {
            String var8 = c(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     c = var5;
                     String[] var9 = c;
                     ENABLED_PROP = c[35];
                     SESSION_EXPIRY_SYS_PROP = var9[20];
                     SESSION_EXTENSION_THRESHOLD_SYS_PROP = var9[16];
                     TOKEN_TYPE_AT_JWT = var9[43];
                     logger = Logger.getLogger(PM2Servlet.class.getName());
                     return;
                  }

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

                  var2 = "E&rrB\u0012\tC*wr]@\u000fP,mr^HO\b:z/]L\u0012H\fg,GW\u00047c;m3\\\u0005\nN s9\u000eU\u001cT:v2I\u0005\nN s9\u000eu0\u0014iX.OU\u0015W%?.KT\bC:kp\u000eF\u001cS:zf\u000e\u0005";
                  var4 = "E&rrB\u0012\tC*wr]@\u000fP,mr^HO\b:z/]L\u0012H\fg,GW\u00047c;m3\\\u0005\nN s9\u000eU\u001cT:v2I\u0005\nN s9\u000eu0\u0014iX.OU\u0015W%?.KT\bC:kp\u000eF\u001cS:zf\u000e\u0005"
                     .length();
                  var1 = '#';
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String c(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 -> 51;
            case 1 -> 92;
            case 2 -> 10;
            case 3 -> 73;
            case 4 -> 59;
            case 5 -> 48;
            default -> 104;
         });
      }

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