package com.l7tech.policy.variable;

import com.l7tech.objectmodel.Goid;
import com.l7tech.util.ByteGen;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Element;

public abstract class Syntax {
   public static final String DEFAULT_MV_DELIMITER;
   public final String remainingName;
   public static final String SYNTAX_PREFIX;
   public static final String SYNTAX_SUFFIX = "}";
   public static final String REGEX_PREFIX;
   public static final String REGEX_SUFFIX;
   public static final Pattern regexPattern;
   public static final Pattern oneVarPattern;
   private static final Set<Class<?>> a;
   private static final j b;
   private static final j c;
   private static final j d;
   private static final j e;
   private static final String[] h;

   private Syntax(String var1) {
      this.remainingName = var1;
   }

   public static String getMatchingName(String var0, Set<String> var1) {
      return getMatchingName(var0, var1, false, true);
   }

   public static String getMatchingName(String var0, Set<String> var1, boolean var2, boolean var3) {
      String var10000;
      label53: {
         try {
            if (var2) {
               var10000 = var0;
               break label53;
            }
         } catch (IllegalStateException var10) {
            throw a(var10);
         }

         var10000 = var0.toLowerCase();
      }

      String var4 = var10000;

      label45: {
         try {
            if (var3) {
               var10000 = var4.trim();
               break label45;
            }
         } catch (IllegalStateException var9) {
            throw a(var9);
         }

         var10000 = var4;
      }

      var4 = var10000;
      String var5 = var4;

      try {
         if (var1.contains(var5)) {
            return var5;
         }
      } catch (IllegalStateException var8) {
         throw a(var8);
      }

      int var6 = var5.length();

      do {
         String var7 = var5.substring(0, var6);
         if (var1.contains(var7)) {
            return var7;
         }

         var6 = var5.lastIndexOf(".", var6 - 1);
      } while (var6 > 0);

      return null;
   }

   @NotNull
   public static String[] getReferencedNames(String... var0) {
      LinkedHashSet var1 = new LinkedHashSet();

      for (String var5 : var0) {
         try {
            if (var5 != null) {
               var1.addAll(Arrays.asList(getReferencedNames(var5)));
            }
         } catch (IllegalStateException var7) {
            throw a(var7);
         }
      }

      try {
         String[] var10000 = var1.toArray(new String[var1.size()]);
         if (var10000 == null) {
            a(0);
         }

         return var10000;
      } catch (IllegalStateException var6) {
         throw a(var6);
      }
   }

   @NotNull
   public static String[] getReferencedNames(@Nullable String var0) {
      try {
         if (var0 == null) {
            return new String[0];
         }
      } catch (IllegalStateException var1) {
         throw a(var1);
      }

      return getReferencedNames(var0, true);
   }

   @NotNull
   public static String[] getReferencedNames(@Nullable String var0, boolean var1) {
      ArrayList var2 = new ArrayList();
      if (var0 != null) {
         Matcher var3 = regexPattern.matcher(var0);

         while (var3.find()) {
            int var4 = var3.groupCount();

            try {
               if (var4 != 1) {
                  throw new IllegalStateException(h[2] + var4);
               }
            } catch (VariableNameSyntaxException var10) {
               throw a(var10);
            }

            String var5 = var3.group(1);
            if (var5 != null) {
               var5 = var5.trim();

               try {
                  var2.add(parse(var5, h[24]).remainingName);
               } catch (VariableNameSyntaxException var9) {
                  VariableNameSyntaxException var6 = var9;

                  try {
                     if (var1) {
                        throw var6;
                     }
                  } catch (VariableNameSyntaxException var8) {
                     throw a(var8);
                  }
               }
            }
         }
      }

      try {
         String[] var10000 = var2.toArray(new String[var2.size()]);
         if (var10000 == null) {
            a(1);
         }

         return var10000;
      } catch (VariableNameSyntaxException var7) {
         throw a(var7);
      }
   }

   public static String[] getReferencedNamesIndexedVarsOmitted(String var0) throws VariableNameSyntaxException {
      return a(var0, true);
   }

   public static String[] getReferencedNamesIndexedVarsNotOmitted(String var0) throws VariableNameSyntaxException {
      return a(var0, false);
   }

   public static String getVariableExpression(@Nullable String var0) {
      try {
         if (var0 == null) {
            return null;
         }
      } catch (IllegalStateException var1) {
         throw a(var1);
      }

      return h[1] + var0 + "}";
   }

   public static boolean validateStringOnlyReferencesVariables(String var0) {
      try {
         String[] var1 = getReferencedNamesIndexedVarsNotOmitted(var0);
         StringBuilder var2 = new StringBuilder();

         for (String var6 : var1) {
            String var7 = VariableMetadata.validateName(var6, true);
            if (var7 != null) {
               return false;
            }

            var2.append(getVariableExpression(var6));
         }

         StringBuilder var10 = new StringBuilder();
         StringTokenizer var11 = new StringTokenizer(var0, h[10]);

         try {
            while (var11.hasMoreTokens()) {
               var10.append(var11.nextToken());
            }
         } catch (VariableNameSyntaxException var8) {
            throw a(var8);
         }

         return var2.toString().equals(var10.toString());
      } catch (VariableNameSyntaxException var9) {
         return false;
      }
   }

   public static boolean validateAnyVariableReferences(@NotNull String var0) {
      try {
         if (var0 == null) {
            a(2);
         }
      } catch (VariableNameSyntaxException var8) {
         throw a(var8);
      }

      try {
         String[] var1 = getReferencedNamesIndexedVarsNotOmitted(var0);

         for (String var5 : var1) {
            String var6 = VariableMetadata.validateName(var5, true);
            if (var6 != null) {
               return false;
            }
         }

         return true;
      } catch (VariableNameSyntaxException var7) {
         return false;
      }
   }

   public static boolean isOnlyASingleVariableReferenced(@NotNull String param0) {
      // $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 0
      // 01: ifnonnull 0f
      // 04: bipush 3
      // 05: invokestatic com/l7tech/policy/variable/Syntax.a (I)V
      // 08: goto 0f
      // 0b: invokestatic com/l7tech/policy/variable/Syntax.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 0e: athrow
      // 0f: aload 0
      // 10: invokestatic com/l7tech/policy/variable/Syntax.getReferencedNamesIndexedVarsNotOmitted (Ljava/lang/String;)[Ljava/lang/String;
      // 13: astore 1
      // 14: aload 1
      // 15: arraylength
      // 16: bipush 1
      // 17: if_icmpne 36
      // 1a: aload 0
      // 1b: aload 1
      // 1c: bipush 0
      // 1d: aaload
      // 1e: invokestatic com/l7tech/policy/variable/Syntax.getVariableExpression (Ljava/lang/String;)Ljava/lang/String;
      // 21: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 24: ifeq 36
      // 27: goto 2e
      // 2a: invokestatic com/l7tech/policy/variable/Syntax.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 2d: athrow
      // 2e: bipush 1
      // 2f: goto 37
      // 32: invokestatic com/l7tech/policy/variable/Syntax.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 35: athrow
      // 36: bipush 0
      // 37: ireturn
      // 38: astore 2
      // 39: bipush 0
      // 3a: ireturn
      // try (14 -> 26): 26 com/l7tech/policy/variable/VariableNameSyntaxException
      // try (10 -> 21): 22 com/l7tech/policy/variable/VariableNameSyntaxException
      // try (0 -> 4): 5 com/l7tech/policy/variable/VariableNameSyntaxException
      // try (10 -> 29): 30 com/l7tech/policy/variable/VariableNameSyntaxException
   }

   public static String getSingleVariableReferenced(@NotNull String var0) {
      try {
         if (var0 == null) {
            a(4);
         }
      } catch (IllegalStateException var5) {
         throw a(var5);
      }

      Matcher var1 = oneVarPattern.matcher(var0);

      try {
         if (!var1.matches()) {
            return null;
         }
      } catch (IllegalStateException var4) {
         throw a(var4);
      }

      String[] var2 = getReferencedNames(var0, false);

      try {
         if (var2.length != 1) {
            return null;
         }
      } catch (IllegalStateException var3) {
         throw a(var3);
      }

      return var2[0];
   }

   public static boolean isAnyVariableReferenced(@NotNull String var0) {
      try {
         if (var0 == null) {
            a(5);
         }
      } catch (VariableNameSyntaxException var5) {
         throw a(var5);
      }

      boolean var1 = false;

      try {
         String[] var2 = getReferencedNames(var0);

         boolean var10000;
         label27: {
            try {
               if (var2.length > 0) {
                  var10000 = true;
                  break label27;
               }
            } catch (VariableNameSyntaxException var3) {
               throw a(var3);
            }

            var10000 = false;
         }

         var1 = var10000;
      } catch (VariableNameSyntaxException var4) {
      }

      return var1;
   }

   public static boolean isAnyVariableReferenced(@NotNull String... var0) {
      try {
         if (var0 == null) {
            a(6);
         }
      } catch (IllegalStateException var7) {
         throw a(var7);
      }

      for (String var4 : var0) {
         String[] var5 = getReferencedNames(var4, false);

         try {
            if (var5.length > 0) {
               return true;
            }
         } catch (IllegalStateException var6) {
            throw a(var6);
         }
      }

      return false;
   }

   public static String stripSyntax(String var0) {
      String var1 = var0;
      Matcher var2 = oneVarPattern.matcher(var1.trim());
      if (var2.matches()) {
         var1 = var2.group(1);
      }

      return var1;
   }

   private static String[] a(String param0, boolean param1) throws VariableNameSyntaxException {
      // $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 0
      // 01: ifnonnull 0d
      // 04: bipush 0
      // 05: anewarray 277
      // 08: areturn
      // 09: invokestatic com/l7tech/policy/variable/Syntax.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 0c: athrow
      // 0d: new java/util/ArrayList
      // 10: dup
      // 11: invokespecial java/util/ArrayList.<init> ()V
      // 14: astore 2
      // 15: getstatic com/l7tech/policy/variable/Syntax.regexPattern Ljava/util/regex/Pattern;
      // 18: aload 0
      // 19: invokevirtual java/util/regex/Pattern.matcher (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
      // 1c: astore 3
      // 1d: aload 3
      // 1e: invokevirtual java/util/regex/Matcher.find ()Z
      // 21: ifeq 9f
      // 24: aload 3
      // 25: invokevirtual java/util/regex/Matcher.groupCount ()I
      // 28: istore 4
      // 2a: iload 4
      // 2c: bipush 1
      // 2d: if_icmpeq 49
      // 30: new java/lang/IllegalStateException
      // 33: dup
      // 34: iload 4
      // 36: getstatic com/l7tech/policy/variable/Syntax.h [Ljava/lang/String;
      // 39: bipush 5
      // 3a: aaload
      // 3b: swap
      // 3c: invokedynamic makeConcatWithConstants (Ljava/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" ]
      // 41: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 44: athrow
      // 45: invokestatic com/l7tech/policy/variable/Syntax.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 48: athrow
      // 49: aload 3
      // 4a: bipush 1
      // 4b: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 4e: astore 5
      // 50: aload 5
      // 52: ifnull 9c
      // 55: aload 5
      // 57: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 5a: astore 5
      // 5c: aload 5
      // 5e: getstatic com/l7tech/policy/variable/Syntax.h [Ljava/lang/String;
      // 61: bipush 11
      // 63: aaload
      // 64: invokestatic com/l7tech/policy/variable/Syntax.parse (Ljava/lang/String;Ljava/lang/String;)Lcom/l7tech/policy/variable/Syntax;
      // 67: astore 6
      // 69: iload 1
      // 6a: ifeq 83
      // 6d: aload 6
      // 6f: instanceof com/l7tech/policy/variable/d
      // 72: ifeq 83
      // 75: goto 7c
      // 78: invokestatic com/l7tech/policy/variable/Syntax.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 7b: athrow
      // 7c: goto 1d
      // 7f: invokestatic com/l7tech/policy/variable/Syntax.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 82: athrow
      // 83: aload 2
      // 84: iload 1
      // 85: ifeq 94
      // 88: aload 6
      // 8a: getfield com/l7tech/policy/variable/Syntax.remainingName Ljava/lang/String;
      // 8d: goto 96
      // 90: invokestatic com/l7tech/policy/variable/Syntax.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 93: athrow
      // 94: aload 5
      // 96: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 9b: pop
      // 9c: goto 1d
      // 9f: aload 2
      // a0: aload 2
      // a1: invokeinterface java/util/List.size ()I 1
      // a6: anewarray 277
      // a9: invokeinterface java/util/List.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // ae: checkcast [Ljava/lang/String;
      // b1: areturn
      // try (0 -> 5): 5 com/l7tech/policy/variable/VariableNameSyntaxException
      // try (21 -> 34): 34 com/l7tech/policy/variable/VariableNameSyntaxException
      // try (51 -> 56): 57 com/l7tech/policy/variable/VariableNameSyntaxException
      // try (53 -> 60): 60 com/l7tech/policy/variable/VariableNameSyntaxException
      // try (62 -> 68): 68 com/l7tech/policy/variable/VariableNameSyntaxException
   }

   public static Syntax parse(String var0, String var1) {
      int var2 = var0.indexOf("|");

      try {
         if (var2 == 0) {
            throw new VariableNameSyntaxException(h[13]);
         }
      } catch (NumberFormatException var12) {
         throw a(var12);
      }

      try {
         if (var2 > 0) {
            return new e(var0.substring(0, var2), var0.substring(var2 + 1), true);
         }
      } catch (NumberFormatException var14) {
         throw a(var14);
      }

      int var3 = var0.indexOf("[");

      try {
         if (var3 == 0) {
            throw new VariableNameSyntaxException(h[15]);
         }
      } catch (NumberFormatException var11) {
         throw a(var11);
      }

      if (var3 > 0) {
         int var4 = var0.indexOf("]", var3 + 1);

         try {
            if (var4 == 0) {
               throw new VariableNameSyntaxException(h[0]);
            }
         } catch (NumberFormatException var10) {
            throw a(var10);
         }

         if (var4 > 0) {
            String var5 = var0.substring(var3 + 1, var4);

            int var6;
            try {
               var6 = Integer.parseInt(var5);
            } catch (NumberFormatException var9) {
               String[] var8 = h;
               throw new VariableNameSyntaxException(var8[8], var9);
            }

            try {
               if (var6 < 0) {
                  throw new VariableNameSyntaxException(h[14]);
               }
            } catch (NumberFormatException var13) {
               throw a(var13);
            }

            return new d(var0.substring(0, var3), var6);
         } else {
            throw new VariableNameSyntaxException(h[23]);
         }
      } else {
         return new e(var0, var1, false);
      }
   }

   public static j getFormatter(Object var0) {
      try {
         if (var0 instanceof Element) {
            return e;
         }
      } catch (IllegalStateException var3) {
         throw a(var3);
      }

      try {
         if (var0 instanceof Date) {
            return c;
         }
      } catch (IllegalStateException var1) {
         throw a(var1);
      }

      try {
         if (var0 instanceof ByteGen) {
            return b;
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      return d;
   }

   public abstract Object[] filter(Object[] var1, Syntax.SyntaxErrorHandler var2, boolean var3);

   public abstract String format(Object[] var1, j var2, Syntax.SyntaxErrorHandler var3, boolean var4);

   static {
      String[] var5 = new String[29];
      int var3 = 0;
      String var2 = "i$)A9\u0010\u0019]4(C2Y\u001a\\v6U3DJF9/\u0000\"UJM;+T9\u0002\f-&m.+E#D\u0003F1{\u0011`]\u000b\\53I.WJO$4U0\u001cJZ38E)F\u000fLl{\nM.+R%C\u0019A95\u0005^77U%&m.+E#D\u0003F1{\u0011`]\u000b\\53I.WJO$4U0\u001cJZ38E)F\u000fLl{\u0002\f-\u001d^77I$Q\u001eM\u00175Y\u0016Q\u0018A79L%b\u000fN3)E.S\u000f[\u001ei$)A9\u0010\u0019]4(C2Y\u001a\\v5O4\u0010\u000bFv2N4U\rM$\u001fA%\u0014N,I+{?5G,U<I$2A\"\\\u000fz3=E2U\u0004K3?\u0006\b_Q-L\u001c\u0002\u0004v\u0015v~d\u001a\u001c\u00146S\u007fs\u000ek\u000fC\u0000ia|=\u0019N&~7)I!R\u0006Mv5A-U\u0019\b;.S4\u0010\u0004G\"{S4Q\u0018\\v,I4XJ\u000f*| i$)A9\u0010\u0019]4(C2Y\u001a\\v6U3DJJ3{P/C\u0003\\?-E&~7)I!R\u0006Mv5A-U\u0019\b;.S4\u0010\u0004G\"{S4Q\u0018\\v,I4XJ\u000f\r|!K96\u000f,\u0007\u001eM53\u000f0_\u0006A5\"\u000f6Q\u0018A79L%\u001f9Q8/A8\u0006^77U%C\b\u0000ia|dl\u0011\u0001\u0013\u0000ia|dl\u0011\u0001~u\u000b\u007f\u0019B\u0017l\u0007]i\u0012O3/r%V\u000fZ35C%T$I;>S\u0017A%\u001aN9f\u000bZ?:B,U8M0>R%^\tM2*h\u00184T\u000eE\u0006Dv6E4X\u0005Lv~Sn\u0015\u0019\b;.S4\u0010\u0004G\"{R%D\u001fZ8{N5\\\u0006\u001a\u000f\u000b|\u0000%H\u001aM5/E$\u0010\b]\"{N/DJN9.N$\u0002\u0004v!K96\u000f,\u0007\u001eM53\u000f0_\u0006A5\"\u000f6Q\u0018A79L%\u001f9Q8/A8>i$<U-U\u0004\\v=O2\u0010*f9/n5\\\u0006\b&:R!]\u000f\\3)\u0000g\u0015\u0019\u000fv4F`\u0015\u0019\u0006s(\u0000-E\u0019\\v5O4\u0010\bMv5U,\\";
      int var4 = "i$)A9\u0010\u0019]4(C2Y\u001a\\v6U3DJF9/\u0000\"UJM;+T9\u0002\f-&m.+E#D\u0003F1{\u0011`]\u000b\\53I.WJO$4U0\u001cJZ38E)F\u000fLl{\nM.+R%C\u0019A95\u0005^77U%&m.+E#D\u0003F1{\u0011`]\u000b\\53I.WJO$4U0\u001cJZ38E)F\u000fLl{\u0002\f-\u001d^77I$Q\u001eM\u00175Y\u0016Q\u0018A79L%b\u000fN3)E.S\u000f[\u001ei$)A9\u0010\u0019]4(C2Y\u001a\\v5O4\u0010\u000bFv2N4U\rM$\u001fA%\u0014N,I+{?5G,U<I$2A\"\\\u000fz3=E2U\u0004K3?\u0006\b_Q-L\u001c\u0002\u0004v\u0015v~d\u001a\u001c\u00146S\u007fs\u000ek\u000fC\u0000ia|=\u0019N&~7)I!R\u0006Mv5A-U\u0019\b;.S4\u0010\u0004G\"{S4Q\u0018\\v,I4XJ\u000f*| i$)A9\u0010\u0019]4(C2Y\u001a\\v6U3DJJ3{P/C\u0003\\?-E&~7)I!R\u0006Mv5A-U\u0019\b;.S4\u0010\u0004G\"{S4Q\u0018\\v,I4XJ\u000f\r|!K96\u000f,\u0007\u001eM53\u000f0_\u0006A5\"\u000f6Q\u0018A79L%\u001f9Q8/A8\u0006^77U%C\b\u0000ia|dl\u0011\u0001\u0013\u0000ia|dl\u0011\u0001~u\u000b\u007f\u0019B\u0017l\u0007]i\u0012O3/r%V\u000fZ35C%T$I;>S\u0017A%\u001aN9f\u000bZ?:B,U8M0>R%^\tM2*h\u00184T\u000eE\u0006Dv6E4X\u0005Lv~Sn\u0015\u0019\b;.S4\u0010\u0004G\"{R%D\u001fZ8{N5\\\u0006\u001a\u000f\u000b|\u0000%H\u001aM5/E$\u0010\b]\"{N/DJN9.N$\u0002\u0004v!K96\u000f,\u0007\u001eM53\u000f0_\u0006A5\"\u000f6Q\u0018A79L%\u001f9Q8/A8>i$<U-U\u0004\\v=O2\u0010*f9/n5\\\u0006\b&:R!]\u000f\\3)\u0000g\u0015\u0019\u000fv4F`\u0015\u0019\u0006s(\u0000-E\u0019\\v5O4\u0010\bMv5U,\\"
         .length();
      char var1 = '!';
      int var7 = -1;

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

         while (true) {
            String var9 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     h = var5;
                     String[] var10 = h;
                     REGEX_PREFIX = h[18];
                     DEFAULT_MV_DELIMITER = var10[24];
                     REGEX_SUFFIX = var10[28];
                     SYNTAX_PREFIX = var10[6];
                     String[] var8 = h;
                     regexPattern = Pattern.compile(var8[19]);
                     oneVarPattern = Pattern.compile(var8[12]);
                     a = Collections.unmodifiableSet(new HashSet<Class<?>>() {
                        static final long serialVersionUID = -3173572908879970705L;

                        {
                           this.add(String.class);
                           this.add(Number.class);
                           this.add(long.class);
                           this.add(int.class);
                           this.add(Boolean.class);
                           this.add(boolean.class);
                           this.add(Goid.class);
                        }
                     });
                     b = new f();
                     c = new g();
                     d = new h();
                     e = new i();
                     return;
                  }

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

                  var2 = "Q-1m7@\u0013Z-\u0013_,G\u0015T$ l;H\u0011D-+];J\u0006\u001ew\u007fb#\u0007";
                  var4 = "Q-1m7@\u0013Z-\u0013_,G\u0015T$ l;H\u0011D-+];J\u0006\u001ew\u007fb#\u0007".length();
                  var1 = 27;
                  var7 = -1;
            }

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

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

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

      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 -> 74;
            case 1 -> 52;
            case 2 -> 57;
            case 3 -> 66;
            case 4 -> 34;
            case 5 -> 82;
            default -> 8;
         });
      }

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

   public interface SyntaxErrorHandler {
      String handleSuspiciousToString(String var1, String var2);

      String handleSubscriptOutOfRange(int var1, String var2, int var3);

      String handleBadVariable(String var1);

      String handleBadVariable(String var1, Throwable var2);
   }
}
