package com.l7tech.server;

import com.l7tech.gateway.common.cluster.ServiceUsage;
import com.l7tech.gateway.common.transport.SsgConnector;
import com.l7tech.gateway.common.transport.SsgConnector.Endpoint;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.server.transport.ListenerException;
import com.l7tech.server.transport.http.HttpTransportModule;
import com.l7tech.util.Config;
import com.l7tech.util.ConfigFactory;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

public class SnmpQueryServlet extends HttpServlet {
   private static final Logger logger;
   private static final String BASE;
   private static final String BASE_PUBLISHED_SERVICES;
   private static final String CONTENT_TYPE_SNMP;
   private WebApplicationContext applicationContext;
   private Config serverConfig;
   private ServiceUsage[] serviceTable = null;
   private long serviceTableTime = 0L;
   private final Pattern urlParser;
   private final Pattern match2;
   static final long serialVersionUID = -7670528938527358340L;
   private static final String[] a;

   public SnmpQueryServlet() {
      String[] var1 = a;
      this.urlParser = Pattern.compile(var1[17]);
      this.match2 = Pattern.compile(var1[6]);
   }

   public void init(ServletConfig var1) throws ServletException {
      try {
         super.init(var1);
         this.applicationContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
         if (this.applicationContext == null) {
            throw new ServletException(a[26]);
         }
      } catch (ServletException var2) {
         throw a(var2);
      }

      this.serverConfig = (Config)this.applicationContext.getBean(a[20], Config.class);
   }

   public void doGet(HttpServletRequest var1, HttpServletResponse var2) throws ServletException, IOException {
      SsgConnector var3 = HttpTransportModule.getConnector(var1);
      HttpTransportModule.addHstsResponseHeaderIfRequired(var1, var2, var3, this.serverConfig);
      String[] var11 = a;
      boolean var4 = ConfigFactory.getBooleanProperty(var11[8], false);

      try {
         if (!var4) {
            logger.info(var11[21]);
            var2.sendError(503, var11[18]);
            return;
         }
      } catch (ListenerException var18) {
         throw a(var18);
      }

      try {
         HttpTransportModule.requireEndpoint(var3, Endpoint.SNMPQUERY);
      } catch (ListenerException var14) {
         var11 = a;
         logger.info(var11[10]);
         var2.sendError(503, var11[23]);
         return;
      }

      try {
         try {
            if (!InetAddress.getByName(var1.getRemoteAddr()).isLoopbackAddress()) {
               throw new UnknownHostException();
            }
         } catch (ListenerException var16) {
            throw a(var16);
         }
      } catch (UnknownHostException var17) {
         var2.sendError(403);
         return;
      }

      String var5 = var1.getRequestURI();
      Matcher var6 = this.urlParser.matcher(var5);

      try {
         if (!var6.matches()) {
            this.badRequest(var2);
            return;
         }
      } catch (ListenerException var15) {
         throw a(var15);
      }

      String var7 = var6.group(1);
      String var8 = var6.group(2);
      var11 = a;
      boolean var9;
      if (var11[24].equalsIgnoreCase(var7)) {
         var9 = false;
      } else {
         var11 = a;
         if (!var11[14].equalsIgnoreCase(var7)) {
            this.badRequest(var2);
            return;
         }

         var9 = true;
      }

      try {
         var11 = a;
         if (var8.startsWith(var11[7])) {
            this.respondToPublishedServiceRequest(var2, var8.substring(var11[19].length()), var9);
         } else {
            this.badRequest(var2);
         }
      } catch (IOException var12) {
         throw var12;
      } catch (Exception var13) {
         var2.setStatus(500);
         logger.log(Level.INFO, a[11], var13);
         var2.getWriter().close();
      }
   }

   private void respondToPublishedServiceRequest(HttpServletResponse param1, String param2, boolean param3) throws IOException, FindException {
      // $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: bipush 5
      // 001: istore 4
      // 003: bipush -1
      // 004: istore 5
      // 006: bipush -1
      // 007: istore 6
      // 009: aload 0
      // 00a: getfield com/l7tech/server/SnmpQueryServlet.match2 Ljava/util/regex/Pattern;
      // 00d: aload 2
      // 00e: invokevirtual java/util/regex/Pattern.matcher (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
      // 011: astore 7
      // 013: aload 2
      // 014: ifnull 026
      // 017: aload 2
      // 018: invokevirtual java/lang/String.length ()I
      // 01b: bipush 1
      // 01c: if_icmpge 055
      // 01f: goto 026
      // 022: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 025: athrow
      // 026: iload 3
      // 027: ifeq 03c
      // 02a: goto 031
      // 02d: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 030: athrow
      // 031: bipush 1
      // 032: istore 5
      // 034: bipush 1
      // 035: istore 6
      // 037: bipush 0
      // 038: istore 3
      // 039: goto 073
      // 03c: aload 0
      // 03d: aload 1
      // 03e: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 041: astore 11
      // 043: aload 11
      // 045: bipush 19
      // 047: aaload
      // 048: aload 11
      // 04a: bipush 16
      // 04c: aaload
      // 04d: aload 11
      // 04f: bipush 3
      // 050: aaload
      // 051: invokevirtual com/l7tech/server/SnmpQueryServlet.send (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
      // 054: return
      // 055: aload 7
      // 057: invokevirtual java/util/regex/Matcher.matches ()Z
      // 05a: ifeq 073
      // 05d: aload 7
      // 05f: bipush 1
      // 060: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 063: invokestatic java/lang/Integer.parseInt (Ljava/lang/String;)I
      // 066: istore 6
      // 068: aload 7
      // 06a: bipush 2
      // 06b: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 06e: invokestatic java/lang/Integer.parseInt (Ljava/lang/String;)I
      // 071: istore 5
      // 073: iload 5
      // 075: bipush 1
      // 076: if_icmplt 093
      // 079: iload 6
      // 07b: bipush 1
      // 07c: if_icmplt 093
      // 07f: goto 086
      // 082: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 085: athrow
      // 086: iload 6
      // 088: bipush 5
      // 089: if_icmple 09d
      // 08c: goto 093
      // 08f: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 092: athrow
      // 093: aload 0
      // 094: aload 1
      // 095: invokevirtual com/l7tech/server/SnmpQueryServlet.badRequest (Ljakarta/servlet/http/HttpServletResponse;)V
      // 098: return
      // 099: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 09c: athrow
      // 09d: aload 0
      // 09e: invokevirtual com/l7tech/server/SnmpQueryServlet.getCurrentServiceUsage ()[Lcom/l7tech/gateway/common/cluster/ServiceUsage;
      // 0a1: astore 8
      // 0a3: iload 3
      // 0a4: ifeq 0bf
      // 0a7: iinc 5 1
      // 0aa: iload 5
      // 0ac: aload 8
      // 0ae: arraylength
      // 0af: if_icmple 0bf
      // 0b2: goto 0b9
      // 0b5: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0b8: athrow
      // 0b9: bipush 1
      // 0ba: istore 5
      // 0bc: iinc 6 1
      // 0bf: iload 5
      // 0c1: aload 8
      // 0c3: arraylength
      // 0c4: if_icmple 0d1
      // 0c7: aload 0
      // 0c8: aload 1
      // 0c9: invokevirtual com/l7tech/server/SnmpQueryServlet.badRequest (Ljakarta/servlet/http/HttpServletResponse;)V
      // 0cc: return
      // 0cd: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0d0: athrow
      // 0d1: iload 6
      // 0d3: iload 5
      // 0d5: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 0d8: astore 11
      // 0da: aload 11
      // 0dc: bipush 25
      // 0de: aaload
      // 0df: dup_x2
      // 0e0: pop
      // 0e1: ldc "."
      // 0e3: swap
      // 0e4: invokedynamic makeConcatWithConstants (Ljava/lang/String;ILjava/lang/String;I)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 0e9: astore 9
      // 0eb: aload 8
      // 0ed: iload 5
      // 0ef: bipush 1
      // 0f0: isub
      // 0f1: aaload
      // 0f2: astore 10
      // 0f4: iload 6
      // 0f6: tableswitch 145 1 5 34 57 80 103 126
      // 118: aload 0
      // 119: aload 1
      // 11a: aload 9
      // 11c: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 11f: bipush 9
      // 121: aaload
      // 122: aload 10
      // 124: invokevirtual com/l7tech/gateway/common/cluster/ServiceUsage.getServiceid ()Lcom/l7tech/objectmodel/Goid;
      // 127: invokevirtual com/l7tech/server/SnmpQueryServlet.send (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/String;Lcom/l7tech/objectmodel/Goid;)V
      // 12a: return
      // 12b: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 12e: athrow
      // 12f: aload 0
      // 130: aload 1
      // 131: aload 9
      // 133: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 136: astore 11
      // 138: aload 11
      // 13a: bipush 16
      // 13c: aaload
      // 13d: aload 10
      // 13f: invokevirtual com/l7tech/gateway/common/cluster/ServiceUsage.getName ()Ljava/lang/String;
      // 142: invokevirtual com/l7tech/server/SnmpQueryServlet.send (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
      // 145: return
      // 146: aload 0
      // 147: aload 1
      // 148: aload 9
      // 14a: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 14d: astore 11
      // 14f: aload 11
      // 151: bipush 12
      // 153: aaload
      // 154: aload 10
      // 156: invokevirtual com/l7tech/gateway/common/cluster/ServiceUsage.getRequests ()J
      // 159: invokevirtual com/l7tech/server/SnmpQueryServlet.send (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/String;J)V
      // 15c: return
      // 15d: aload 0
      // 15e: aload 1
      // 15f: aload 9
      // 161: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 164: astore 11
      // 166: aload 11
      // 168: bipush 13
      // 16a: aaload
      // 16b: aload 10
      // 16d: invokevirtual com/l7tech/gateway/common/cluster/ServiceUsage.getAuthorized ()J
      // 170: invokevirtual com/l7tech/server/SnmpQueryServlet.send (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/String;J)V
      // 173: return
      // 174: aload 0
      // 175: aload 1
      // 176: aload 9
      // 178: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 17b: bipush 13
      // 17d: aaload
      // 17e: aload 10
      // 180: invokevirtual com/l7tech/gateway/common/cluster/ServiceUsage.getCompleted ()J
      // 183: invokevirtual com/l7tech/server/SnmpQueryServlet.send (Ljakarta/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/String;J)V
      // 186: return
      // 187: aload 0
      // 188: aload 1
      // 189: invokevirtual com/l7tech/server/SnmpQueryServlet.badRequest (Ljakarta/servlet/http/HttpServletResponse;)V
      // 18c: return
      // try (11 -> 17): 18 java/io/IOException
      // try (13 -> 22): 23 java/io/IOException
      // try (60 -> 66): 67 java/io/IOException
      // try (63 -> 72): 73 java/io/IOException
      // try (69 -> 79): 79 java/io/IOException
      // try (84 -> 91): 92 java/io/IOException
      // try (97 -> 105): 105 java/io/IOException
      // try (126 -> 138): 138 java/io/IOException
   }

   private synchronized ServiceUsage[] getCurrentServiceUsage() throws FindException {
      // $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: invokestatic java/lang/System.currentTimeMillis ()J
      // 003: lstore 1
      // 004: aload 0
      // 005: getfield com/l7tech/server/SnmpQueryServlet.serviceTable [Lcom/l7tech/gateway/common/cluster/ServiceUsage;
      // 008: ifnull 02b
      // 00b: lload 1
      // 00c: aload 0
      // 00d: getfield com/l7tech/server/SnmpQueryServlet.serviceTableTime J
      // 010: lsub
      // 011: ldc2_w 3500
      // 014: lcmp
      // 015: ifle 02b
      // 018: goto 01f
      // 01b: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 01e: athrow
      // 01f: aload 0
      // 020: aconst_null
      // 021: putfield com/l7tech/server/SnmpQueryServlet.serviceTable [Lcom/l7tech/gateway/common/cluster/ServiceUsage;
      // 024: goto 02b
      // 027: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 02a: athrow
      // 02b: aload 0
      // 02c: getfield com/l7tech/server/SnmpQueryServlet.serviceTable [Lcom/l7tech/gateway/common/cluster/ServiceUsage;
      // 02f: ifnull 040
      // 032: aload 0
      // 033: lload 1
      // 034: putfield com/l7tech/server/SnmpQueryServlet.serviceTableTime J
      // 037: aload 0
      // 038: getfield com/l7tech/server/SnmpQueryServlet.serviceTable [Lcom/l7tech/gateway/common/cluster/ServiceUsage;
      // 03b: areturn
      // 03c: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 03f: athrow
      // 040: aload 0
      // 041: getfield com/l7tech/server/SnmpQueryServlet.applicationContext Lorg/springframework/web/context/WebApplicationContext;
      // 044: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 047: astore 12
      // 049: aload 12
      // 04b: bipush 22
      // 04d: aaload
      // 04e: invokeinterface org/springframework/web/context/WebApplicationContext.getBean (Ljava/lang/String;)Ljava/lang/Object; 2
      // 053: checkcast com/l7tech/server/cluster/ServiceUsageManager
      // 056: astore 3
      // 057: new java/util/HashMap
      // 05a: dup
      // 05b: invokespecial java/util/HashMap.<init> ()V
      // 05e: astore 4
      // 060: aload 3
      // 061: invokeinterface com/l7tech/server/cluster/ServiceUsageManager.getAll ()Ljava/util/Collection; 1
      // 066: astore 5
      // 068: aload 5
      // 06a: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 06f: astore 6
      // 071: aload 6
      // 073: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 078: ifeq 099
      // 07b: aload 6
      // 07d: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 082: checkcast com/l7tech/gateway/common/cluster/ServiceUsage
      // 085: astore 7
      // 087: aload 4
      // 089: aload 7
      // 08b: invokevirtual com/l7tech/gateway/common/cluster/ServiceUsage.getServiceid ()Lcom/l7tech/objectmodel/Goid;
      // 08e: aload 7
      // 090: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 095: pop
      // 096: goto 071
      // 099: aload 0
      // 09a: getfield com/l7tech/server/SnmpQueryServlet.applicationContext Lorg/springframework/web/context/WebApplicationContext;
      // 09d: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 0a0: bipush 2
      // 0a1: aaload
      // 0a2: invokeinterface org/springframework/web/context/WebApplicationContext.getBean (Ljava/lang/String;)Ljava/lang/Object; 2
      // 0a7: checkcast com/l7tech/server/service/ServiceManager
      // 0aa: astore 6
      // 0ac: aload 6
      // 0ae: invokeinterface com/l7tech/server/service/ServiceManager.findAllHeaders ()Ljava/util/Collection; 1
      // 0b3: bipush 0
      // 0b4: anewarray 101
      // 0b7: invokeinterface java/util/Collection.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // 0bc: checkcast [Lcom/l7tech/objectmodel/EntityHeader;
      // 0bf: astore 7
      // 0c1: aload 7
      // 0c3: arraylength
      // 0c4: anewarray 337
      // 0c7: astore 8
      // 0c9: bipush 0
      // 0ca: istore 9
      // 0cc: iload 9
      // 0ce: aload 7
      // 0d0: arraylength
      // 0d1: if_icmpge 12b
      // 0d4: aload 7
      // 0d6: iload 9
      // 0d8: aaload
      // 0d9: astore 10
      // 0db: aload 4
      // 0dd: aload 10
      // 0df: invokevirtual com/l7tech/objectmodel/EntityHeader.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 0e2: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 0e7: checkcast com/l7tech/gateway/common/cluster/ServiceUsage
      // 0ea: astore 11
      // 0ec: aload 11
      // 0ee: ifnull 0ff
      // 0f1: aload 8
      // 0f3: iload 9
      // 0f5: aload 11
      // 0f7: aastore
      // 0f8: goto 118
      // 0fb: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0fe: athrow
      // 0ff: aload 8
      // 101: iload 9
      // 103: new com/l7tech/gateway/common/cluster/ServiceUsage
      // 106: dup
      // 107: invokespecial com/l7tech/gateway/common/cluster/ServiceUsage.<init> ()V
      // 10a: aastore
      // 10b: aload 8
      // 10d: iload 9
      // 10f: aaload
      // 110: aload 10
      // 112: invokevirtual com/l7tech/objectmodel/EntityHeader.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 115: invokevirtual com/l7tech/gateway/common/cluster/ServiceUsage.setServiceid (Lcom/l7tech/objectmodel/Goid;)V
      // 118: aload 8
      // 11a: iload 9
      // 11c: aaload
      // 11d: aload 10
      // 11f: invokevirtual com/l7tech/objectmodel/EntityHeader.getName ()Ljava/lang/String;
      // 122: invokevirtual com/l7tech/gateway/common/cluster/ServiceUsage.setName (Ljava/lang/String;)V
      // 125: iinc 9 1
      // 128: goto 0cc
      // 12b: aload 0
      // 12c: aload 8
      // 12e: putfield com/l7tech/server/SnmpQueryServlet.serviceTable [Lcom/l7tech/gateway/common/cluster/ServiceUsage;
      // 131: aload 0
      // 132: invokestatic java/lang/System.currentTimeMillis ()J
      // 135: putfield com/l7tech/server/SnmpQueryServlet.serviceTableTime J
      // 138: aload 0
      // 139: getfield com/l7tech/server/SnmpQueryServlet.serviceTable [Lcom/l7tech/gateway/common/cluster/ServiceUsage;
      // 13c: areturn
      // try (2 -> 12): 13 com/l7tech/objectmodel/FindException
      // try (5 -> 18): 19 com/l7tech/objectmodel/FindException
      // try (21 -> 30): 30 com/l7tech/objectmodel/FindException
      // try (101 -> 108): 108 com/l7tech/objectmodel/FindException
   }

   private void badRequest(HttpServletResponse var1) throws IOException {
      var1.setStatus(400);
      var1.getWriter().close();
   }

   private void send(HttpServletResponse param1, String param2, String param3, String param4) 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: sipush 200
      // 04: invokeinterface jakarta/servlet/http/HttpServletResponse.setStatus (I)V 2
      // 09: aload 1
      // 0a: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 0d: astore 6
      // 0f: aload 6
      // 11: bipush 0
      // 12: aaload
      // 13: invokeinterface jakarta/servlet/http/HttpServletResponse.setContentType (Ljava/lang/String;)V 2
      // 18: aload 1
      // 19: invokeinterface jakarta/servlet/http/HttpServletResponse.getWriter ()Ljava/io/PrintWriter; 1
      // 1e: astore 5
      // 20: aload 5
      // 22: aload 2
      // 23: ifnull 2e
      // 26: aload 2
      // 27: goto 30
      // 2a: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d: athrow
      // 2e: ldc ""
      // 30: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 33: bipush 4
      // 34: aaload
      // 35: swap
      // 36: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 3b: invokevirtual java/io/Writer.write (Ljava/lang/String;)V
      // 3e: aload 5
      // 40: bipush 10
      // 42: invokevirtual java/io/Writer.write (I)V
      // 45: aload 5
      // 47: aload 3
      // 48: ifnull 61
      // 4b: aload 3
      // 4c: invokevirtual java/lang/String.length ()I
      // 4f: ifle 61
      // 52: goto 59
      // 55: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 58: athrow
      // 59: aload 3
      // 5a: goto 67
      // 5d: invokestatic com/l7tech/server/SnmpQueryServlet.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 60: athrow
      // 61: getstatic com/l7tech/server/SnmpQueryServlet.a [Ljava/lang/String;
      // 64: bipush 15
      // 66: aaload
      // 67: invokevirtual java/io/Writer.write (Ljava/lang/String;)V
      // 6a: aload 5
      // 6c: bipush 10
      // 6e: invokevirtual java/io/Writer.write (I)V
      // 71: aload 5
      // 73: aload 4
      // 75: invokevirtual java/io/Writer.write (Ljava/lang/String;)V
      // 78: aload 5
      // 7a: bipush 10
      // 7c: invokevirtual java/io/Writer.write (I)V
      // 7f: aload 5
      // 81: invokevirtual java/io/Writer.flush ()V
      // 84: aload 5
      // 86: invokevirtual java/io/Writer.close ()V
      // 89: return
      // try (13 -> 18): 18 java/io/IOException
      // try (21 -> 36): 37 java/io/IOException
      // try (33 -> 41): 41 java/io/IOException
   }

   private void send(HttpServletResponse var1, String var2, String var3, long var4) throws IOException {
      this.send(var1, var2, var3, String.valueOf(var4));
   }

   private void send(HttpServletResponse var1, String var2, String var3, Goid var4) throws IOException {
      this.send(var1, var2, var3, String.valueOf(var4));
   }

   static {
      String[] var5 = new String[27];
      int var3 = 0;
      String var2 = "\u000bkV!i?)\u001erI#/$e\u0019uK=\u0012D*\b~.jf[5\u0012c1ry](\u0016y\u000e\u0019~T;i?-'zH,g9:\r9~T;i?-JNU,g9\u0012D*\b~.jf[5\u0012c1ry](\u0016y\u0012\u000bkV!i?)\u001erI#/$e\u0019uK=\u00104G\be\\8cCG\be\\8cC?\u0004D,\b| \bnO!t5&9~T;i?-DhH p\r=\u000fi_ce2)\bwC)\u0007\u0003uR(g9:09Uk\u001d -=\u000fi_ms9:\u001crE( 2'\u001e;C#a>$\u000f\u007f\u0006\"n|<\u0002rUmc3&\u0004~E9o.\u0015#uR(r2)\u0006;u(r*-\u0018;c?r3:\u0007\ttS#t9:\u0007\ttS#t9:\u0007\r~R#e$<\u0006\u0019oT$n;\u0006\u0019oT$n;;44U>gs%\u000buG*e1-\u0004o\te[\u0002g71\u000fb.mfY5\u0010c1r|D*\b|7ox^3}}-ef71\u000fe/rbC$\u0002 9Uk\u001d -=\u000fi_ms9:\u001crE( 2'\u001e;G;a5$\u000byJ(\u0004D,\b|\f\u0019~T;e.\u000b\u0005u@$gS9Uk\u001d -=\u000fi_ms9:\u001crE( 8!\u0019zD!e8h\bb\u0006.l);\u001e~Tmp.'\u001a~T9yphMyS$l(!\u0004HC?v5+\u000f5U#m,\u0019\u001f~T4.9&\u000byJ(d{\u0013\u0019~T;i?-?hG*e\u0011)\u0004zA(r-9Uk\u001d -=\u000fi_ms9:\u001crE( 2'\u001e;G;a5$\u000byJ( 3&JoN$s|8\u0005iR\u0003\r~R";
      int var4 = "\u000bkV!i?)\u001erI#/$e\u0019uK=\u0012D*\b~.jf[5\u0012c1ry](\u0016y\u000e\u0019~T;i?-'zH,g9:\r9~T;i?-JNU,g9\u0012D*\b~.jf[5\u0012c1ry](\u0016y\u0012\u000bkV!i?)\u001erI#/$e\u0019uK=\u00104G\be\\8cCG\be\\8cC?\u0004D,\b| \bnO!t5&9~T;i?-DhH p\r=\u000fi_ce2)\bwC)\u0007\u0003uR(g9:09Uk\u001d -=\u000fi_ms9:\u001crE( 2'\u001e;C#a>$\u000f\u007f\u0006\"n|<\u0002rUmc3&\u0004~E9o.\u0015#uR(r2)\u0006;u(r*-\u0018;c?r3:\u0007\ttS#t9:\u0007\ttS#t9:\u0007\r~R#e$<\u0006\u0019oT$n;\u0006\u0019oT$n;;44U>gs%\u000buG*e1-\u0004o\te[\u0002g71\u000fb.mfY5\u0010c1r|D*\b|7ox^3}}-ef71\u000fe/rbC$\u0002 9Uk\u001d -=\u000fi_ms9:\u001crE( 2'\u001e;G;a5$\u000byJ(\u0004D,\b|\f\u0019~T;e.\u000b\u0005u@$gS9Uk\u001d -=\u000fi_ms9:\u001crE( 8!\u0019zD!e8h\bb\u0006.l);\u001e~Tmp.'\u001a~T9yphMyS$l(!\u0004HC?v5+\u000f5U#m,\u0019\u001f~T4.9&\u000byJ(d{\u0013\u0019~T;i?-?hG*e\u0011)\u0004zA(r-9Uk\u001d -=\u000fi_ms9:\u001crE( 2'\u001e;G;a5$\u000byJ( 3&JoN$s|8\u0005iR\u0003\r~R"
         .length();
      char var1 = 18;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 56;
         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) {
                     a = var5;
                     String[] var9 = a;
                     CONTENT_TYPE_SNMP = a[5];
                     BASE_PUBLISHED_SERVICES = var9[19];
                     BASE = var9[1];
                     logger = Logger.getLogger(SnmpQueryServlet.class.getName());
                     return;
                  }

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

                  var2 = "L$\u0000t&6!|@#a35\u0010rZ,g:`\u0007a\\*zo`\u0001|[)lt.\rg\u000e\"m `\u0003c^)a7!\u0016zA+(7/\fgK=|";
                  var4 = "L$\u0000t&6!|@#a35\u0010rZ,g:`\u0007a\\*zo`\u0001|[)lt.\rg\u000e\"m `\u0003c^)a7!\u0016zA+(7/\fgK=|".length();
                  var1 = 5;
                  var7 = -1;
            }

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

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

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

      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 -> 82;
            case 1 -> 35;
            case 2 -> 30;
            case 3 -> 117;
            case 4 -> 56;
            case 5 -> 100;
            default -> 112;
         });
      }

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