package com.l7tech.xml.xpath;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.xml.DomElementCursor;
import com.l7tech.xml.ElementCursor;
import com.l7tech.xml.InvalidXpathException;
import com.l7tech.xml.SaxonUtils;
import jakarta.xml.soap.SOAPBody;
import jakarta.xml.soap.SOAPElement;
import jakarta.xml.soap.SOAPEnvelope;
import jakarta.xml.soap.SOAPException;
import jakarta.xml.soap.SOAPMessage;
import jakarta.xml.soap.SOAPPart;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.xpath.XPathExpressionException;
import org.jaxen.JaxenException;
import org.jaxen.NamespaceContext;
import org.jaxen.SimpleNamespaceContext;
import org.jaxen.dom.DOMXPath;
import org.jaxen.saxpath.SAXPathException;
import org.jaxen.saxpath.base.XPathReader;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

public class XpathUtil {
   public static final Logger logger;
   private static final String[] a;

   public static boolean usesTargetDocument(@NotNull String var0, @NotNull XpathVersion var1) {
      try {
         if (var0 == null) {
            a(0);
         }
      } catch (SAXPathException var8) {
         throw a(var8);
      }

      try {
         if (var1 == null) {
            a(1);
         }
      } catch (SAXPathException var6) {
         throw a(var6);
      }

      try {
         if (XpathVersion.XPATH_2_0.equals(var1)) {
            return true;
         }
      } catch (SAXPathException var7) {
         throw a(var7);
      }

      boolean[] var2 = new boolean[]{false};

      try {
         s var3 = new s(var2);
         XPathReader var4 = new XPathReader();
         var4.setXPathHandler(var3);
         var4.parse(var0);
      } catch (SAXPathException var5) {
         logger.log(Level.INFO, a[29] + ExceptionUtils.getMessage(var5), ExceptionUtils.getDebugException(var5));
         return true;
      }

      return var2[0];
   }

   public static Set<String> getNamespacePrefixesUsedByXpath(@NotNull String var0, @NotNull XpathVersion var1, boolean var2) throws ParseException {
      try {
         if (var0 == null) {
            a(2);
         }
      } catch (InvalidXpathException var12) {
         throw a(var12);
      }

      try {
         if (var1 == null) {
            a(3);
         }
      } catch (InvalidXpathException var9) {
         throw a(var9);
      }

      InvalidXpathException var13;
      label51: {
         try {
            if (XpathVersion.XPATH_2_0.equals(var1)) {
               try {
                  return SaxonUtils.getNamespacePrefixesUsedByXpath(var0, var1);
               } catch (InvalidXpathException var10) {
                  var13 = var10;
                  break label51;
               }
            }
         } catch (SAXPathException var11) {
            throw a(var11);
         }

         HashSet var3 = new HashSet();
         t var4 = new t(var3, var2);
         XPathReader var5 = new XPathReader();
         var5.setXPathHandler(var4);

         try {
            var5.parse(var0);
         } catch (SAXPathException var8) {
            throw (ParseException)new ParseException(a[25], 0).initCause(var8);
         }

         var3.remove(null);
         var3.remove("");
         return var3;
      }

      String var10002 = ExceptionUtils.getMessage(var13);
      String[] var7 = a;
      throw (ParseException)new ParseException(var7[3] + var10002, 0).initCause(var13);
   }

   public static List<String> getUnprefixedVariablesUsedInXpath(@NotNull String var0, @NotNull XpathVersion var1) {
      try {
         if (var0 == null) {
            a(4);
         }
      } catch (SAXPathException var5) {
         throw a(var5);
      }

      try {
         if (var1 == null) {
            a(5);
         }
      } catch (SAXPathException var8) {
         throw a(var8);
      }

      ArrayList var2 = new ArrayList();

      try {
         try {
            if (XpathVersion.XPATH_2_0.equals(var1)) {
               var2.addAll(SaxonUtils.getUnprefixedVariablesUsedInXpath(var0, var1));
               return var2;
            }
         } catch (SAXPathException var6) {
            throw a(var6);
         }

         u var3 = new u(var2);
         XPathReader var4 = new XPathReader();
         var4.setXPathHandler(var3);
         var4.parse(var0);
      } catch (SAXPathException | InvalidXpathException var7) {
         logger.log(Level.FINE, a[11] + ExceptionUtils.getMessage(var7), ExceptionUtils.getDebugException(var7));
      }

      return var2;
   }

   public static boolean usesXpathVariables(String var0, @NotNull XpathVersion var1) throws XPathExpressionException {
      try {
         if (var1 == null) {
            a(6);
         }
      } catch (SAXPathException var6) {
         throw a(var6);
      }

      try {
         if (XpathVersion.XPATH_2_0.equals(var1)) {
            return true;
         }
      } catch (SAXPathException var7) {
         throw a(var7);
      }

      boolean[] var2 = new boolean[]{false};

      try {
         v var3 = new v(var2);
         XPathReader var4 = new XPathReader();
         var4.setXPathHandler(var3);
         var4.parse(var0);
      } catch (SAXPathException var5) {
         throw new XPathExpressionException(var5);
      }

      return var2[0];
   }

   public static Map<String, String> getNamespaces(SOAPMessage var0) throws SOAPException {
      HashMap var1 = new HashMap();
      SOAPPart var2 = var0.getSOAPPart();
      SOAPEnvelope var3 = var2.getEnvelope();
      SOAPBody var4 = var3.getBody();
      addNamespaces(var1, var3);
      Iterator var5 = var4.getChildElements();

      while (var5.hasNext()) {
         Object var6 = var5.next();

         try {
            if (var6 instanceof SOAPElement) {
               addNamespaces(var1, (SOAPElement)var6);
            }
         } catch (SOAPException var7) {
            throw a(var7);
         }
      }

      return var1;
   }

   public static void addNamespaces(Map<String, String> var0, SOAPElement var1) {
      String var2 = var1.getElementName().getPrefix();
      String var3 = var1.getElementName().getURI();

      try {
         if (var3 != null) {
            a(var0, var2, var3);
         }
      } catch (RuntimeException var9) {
         throw a(var9);
      }

      Iterator var4 = var1.getNamespacePrefixes();

      while (var4.hasNext()) {
         String var5 = (String)var4.next();
         String var6 = var1.getNamespaceURI(var5);

         try {
            if (var6 != null) {
               a(var0, var5, var6);
            }
         } catch (RuntimeException var8) {
            throw a(var8);
         }
      }

      Iterator var10 = var1.getChildElements();

      while (var10.hasNext()) {
         if (var10.next() instanceof SOAPElement var7) {
            addNamespaces(var0, var7);
         }
      }
   }

   public static void removeNamespaces(String var0, Map<String, String> var1, Set<String> var2) {
      if (ConfigFactory.getBooleanProperty(a[8], true)) {
         try {
            HashSet var3 = new HashSet();
            XPathReader var4 = new XPathReader();
            var4.setXPathHandler(new ag(var3));
            var4.parse(var0);
            HashSet var5 = new HashSet(var2);

            try {
               var5.removeAll(var3);
               if (!var5.isEmpty()) {
                  var1.keySet().removeAll(var5);
               }
            } catch (SAXPathException var6) {
               throw a(var6);
            }
         } catch (SAXPathException var7) {
         }
      }
   }

   @NotNull
   public static XpathResult getXpathResultQuietly(@NotNull ElementCursor var0, @Nullable Map<String, String> var1, @NotNull String var2) {
      try {
         if (var0 == null) {
            a(7);
         }
      } catch (XPathExpressionException var7) {
         throw a(var7);
      }

      try {
         if (var2 == null) {
            a(8);
         }
      } catch (XPathExpressionException var8) {
         throw a(var8);
      }

      XpathResult var3;
      try {
         var3 = var0.getXpathResult(new XpathExpression(var2, var1).compile());
      } catch (XPathExpressionException | InvalidXpathException var6) {
         throw new RuntimeException(a[28] + var6.getMessage(), var6);
      }

      try {
         if (var3 == null) {
            a(9);
         }

         return var3;
      } catch (XPathExpressionException var5) {
         throw a(var5);
      }
   }

   private static NamespaceContext a(Map<String, String> var0) {
      try {
         if (var0 == null) {
            throw new NullPointerException();
         }
      } catch (RuntimeException var4) {
         throw a(var4);
      }

      SimpleNamespaceContext var1 = new SimpleNamespaceContext();

      for (String var3 : var0.keySet()) {
         var1.addNamespace(var3, (String)var0.get(var3));
      }

      return var1;
   }

   public static List<Element> ensureAllResultsAreElements(List var0) throws JaxenException {
      try {
         if (var0 == null) {
            return Collections.emptyList();
         }
      } catch (JaxenException var10) {
         throw a(var10);
      }

      ArrayList var1 = new ArrayList();

      for (Object var3 : var0) {
         if (var3 instanceof Node var11) {
            try {
               if (var11.getNodeType() != 1) {
                  throw new JaxenException(a[36] + var11.getNodeType());
               }
            } catch (JaxenException var8) {
               throw a(var8);
            }

            var1.add((Element)var11);
         } else {
            if (!(var3 instanceof Node[])) {
               throw new JaxenException(a[20] + var3.getClass().getName());
            }

            for (Node var7 : (Node[])var3) {
               try {
                  if (var7.getNodeType() != 1) {
                     throw new JaxenException(a[32] + var7.getNodeType());
                  }
               } catch (JaxenException var9) {
                  throw a(var9);
               }

               var1.add((Element)var7);
            }
         }
      }

      return var1;
   }

   public static String literalExpression(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:
      // 000: new java/lang/StringBuilder
      // 003: dup
      // 004: invokespecial java/lang/StringBuilder.<init> ()V
      // 007: astore 1
      // 008: aload 0
      // 009: bipush 39
      // 00b: invokevirtual java/lang/String.indexOf (I)I
      // 00e: ifge 02c
      // 011: aload 1
      // 012: bipush 39
      // 014: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 017: pop
      // 018: aload 1
      // 019: aload 0
      // 01a: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 01d: pop
      // 01e: aload 1
      // 01f: bipush 39
      // 021: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 024: pop
      // 025: goto 10c
      // 028: invokestatic com/l7tech/xml/xpath/XpathUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 02b: athrow
      // 02c: aload 0
      // 02d: bipush 34
      // 02f: invokevirtual java/lang/String.indexOf (I)I
      // 032: ifge 050
      // 035: aload 1
      // 036: bipush 34
      // 038: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 03b: pop
      // 03c: aload 1
      // 03d: aload 0
      // 03e: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 041: pop
      // 042: aload 1
      // 043: bipush 34
      // 045: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 048: pop
      // 049: goto 10c
      // 04c: invokestatic com/l7tech/xml/xpath/XpathUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 04f: athrow
      // 050: aload 1
      // 051: getstatic com/l7tech/xml/xpath/XpathUtil.a [Ljava/lang/String;
      // 054: astore 4
      // 056: aload 4
      // 058: bipush 6
      // 05a: aaload
      // 05b: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 05e: pop
      // 05f: bipush 0
      // 060: istore 2
      // 061: bipush 0
      // 062: istore 3
      // 063: iload 3
      // 064: aload 0
      // 065: invokevirtual java/lang/String.length ()I
      // 068: if_icmpge 0d6
      // 06b: aload 0
      // 06c: bipush 39
      // 06e: iload 3
      // 06f: invokevirtual java/lang/String.indexOf (II)I
      // 072: dup
      // 073: istore 3
      // 074: bipush -1
      // 075: if_icmple 0d6
      // 078: iload 2
      // 079: ifeq 095
      // 07c: goto 083
      // 07f: invokestatic com/l7tech/xml/xpath/XpathUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 082: athrow
      // 083: aload 1
      // 084: getstatic com/l7tech/xml/xpath/XpathUtil.a [Ljava/lang/String;
      // 087: bipush 17
      // 089: aaload
      // 08a: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 08d: pop
      // 08e: goto 095
      // 091: invokestatic com/l7tech/xml/xpath/XpathUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 094: athrow
      // 095: iload 3
      // 096: iload 2
      // 097: if_icmpne 0ac
      // 09a: aload 1
      // 09b: getstatic com/l7tech/xml/xpath/XpathUtil.a [Ljava/lang/String;
      // 09e: bipush 21
      // 0a0: aaload
      // 0a1: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 0a4: pop
      // 0a5: goto 0cc
      // 0a8: invokestatic com/l7tech/xml/xpath/XpathUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ab: athrow
      // 0ac: aload 1
      // 0ad: bipush 39
      // 0af: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 0b2: pop
      // 0b3: aload 1
      // 0b4: aload 0
      // 0b5: iload 2
      // 0b6: iload 3
      // 0b7: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
      // 0ba: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 0bd: pop
      // 0be: aload 1
      // 0bf: getstatic com/l7tech/xml/xpath/XpathUtil.a [Ljava/lang/String;
      // 0c2: astore 4
      // 0c4: aload 4
      // 0c6: bipush 2
      // 0c7: aaload
      // 0c8: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 0cb: pop
      // 0cc: iload 3
      // 0cd: bipush 1
      // 0ce: iadd
      // 0cf: istore 2
      // 0d0: iinc 3 1
      // 0d3: goto 063
      // 0d6: iload 2
      // 0d7: aload 0
      // 0d8: invokevirtual java/lang/String.length ()I
      // 0db: if_icmpeq 105
      // 0de: aload 1
      // 0df: getstatic com/l7tech/xml/xpath/XpathUtil.a [Ljava/lang/String;
      // 0e2: bipush 13
      // 0e4: aaload
      // 0e5: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 0e8: pop
      // 0e9: aload 1
      // 0ea: aload 0
      // 0eb: iload 2
      // 0ec: aload 0
      // 0ed: invokevirtual java/lang/String.length ()I
      // 0f0: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
      // 0f3: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 0f6: pop
      // 0f7: aload 1
      // 0f8: bipush 39
      // 0fa: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 0fd: pop
      // 0fe: goto 105
      // 101: invokestatic com/l7tech/xml/xpath/XpathUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 104: athrow
      // 105: aload 1
      // 106: bipush 41
      // 108: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 10b: pop
      // 10c: aload 1
      // 10d: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 110: areturn
      // try (4 -> 21): 21 java/lang/RuntimeException
      // try (23 -> 40): 40 java/lang/RuntimeException
      // try (64 -> 68): 69 java/lang/RuntimeException
      // try (66 -> 77): 78 java/lang/RuntimeException
      // try (80 -> 90): 90 java/lang/RuntimeException
      // try (117 -> 139): 140 java/lang/RuntimeException
   }

   public static XpathResult testXpathExpression(
      @Nullable Document var0, @NotNull String var1, @NotNull XpathVersion var2, @Nullable Map<String, String> var3, @Nullable XpathVariableFinder var4
   ) throws InvalidXpathException {
      try {
         if (var1 == null) {
            a(10);
         }
      } catch (XPathExpressionException var9) {
         throw a(var9);
      }

      try {
         if (var2 == null) {
            a(11);
         }
      } catch (XPathExpressionException var10) {
         throw a(var10);
      }

      DomCompiledXpath var5 = new DomCompiledXpath(new XpathExpression(var1, var2, var3));
      DomElementCursor var6;
      if (var0 != null) {
         var6 = new DomElementCursor(var0, false);
      } else {
         var6 = new DomElementCursor(XmlUtil.createEmptyDocument(a[9], null, null));
      }

      try {
         return var6.getXpathResult(var5, var4, true);
      } catch (XPathExpressionException var8) {
         throw new InvalidXpathException(var8);
      }
   }

   public static void validate(String param0, XpathVersion param1, @Nullable Map<String, String> param2) throws InvalidXpathException {
      // $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: getstatic com/l7tech/xml/xpath/XpathVersion.XPATH_2_0 Lcom/l7tech/xml/xpath/XpathVersion;
      // 03: aload 1
      // 04: invokevirtual com/l7tech/xml/xpath/XpathVersion.equals (Ljava/lang/Object;)Z
      // 07: ifeq 15
      // 0a: aload 0
      // 0b: aload 1
      // 0c: aload 2
      // 0d: invokestatic com/l7tech/xml/SaxonUtils.validateSyntaxAndNamespacePrefixes (Ljava/lang/String;Lcom/l7tech/xml/xpath/XpathVersion;Ljava/util/Map;)V
      // 10: return
      // 11: invokestatic com/l7tech/xml/xpath/XpathUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 14: athrow
      // 15: new java/util/LinkedHashSet
      // 18: dup
      // 19: invokespecial java/util/LinkedHashSet.<init> ()V
      // 1c: astore 3
      // 1d: new com/l7tech/xml/xpath/w
      // 20: dup
      // 21: aload 2
      // 22: aload 3
      // 23: invokespecial com/l7tech/xml/xpath/w.<init> (Ljava/util/Map;Ljava/util/Set;)V
      // 26: astore 4
      // 28: new org/jaxen/saxpath/base/XPathReader
      // 2b: dup
      // 2c: invokespecial org/jaxen/saxpath/base/XPathReader.<init> ()V
      // 2f: astore 5
      // 31: aload 5
      // 33: aload 4
      // 35: invokevirtual org/jaxen/saxpath/base/XPathReader.setXPathHandler (Lorg/jaxen/saxpath/XPathHandler;)V
      // 38: aload 5
      // 3a: aload 0
      // 3b: invokevirtual org/jaxen/saxpath/base/XPathReader.parse (Ljava/lang/String;)V
      // 3e: goto 4d
      // 41: astore 6
      // 43: new com/l7tech/xml/InvalidXpathException
      // 46: dup
      // 47: aload 6
      // 49: invokespecial com/l7tech/xml/InvalidXpathException.<init> (Ljava/lang/Throwable;)V
      // 4c: athrow
      // 4d: aload 3
      // 4e: invokeinterface java/util/Set.isEmpty ()Z 1
      // 53: ifne 94
      // 56: new com/l7tech/xml/InvalidXpathException
      // 59: dup
      // 5a: aload 3
      // 5b: invokeinterface java/util/Set.size ()I 1
      // 60: bipush 1
      // 61: if_icmple 77
      // 64: goto 6b
      // 67: invokestatic com/l7tech/xml/xpath/XpathUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6a: athrow
      // 6b: getstatic com/l7tech/xml/xpath/XpathUtil.a [Ljava/lang/String;
      // 6e: bipush 0
      // 6f: aaload
      // 70: goto 79
      // 73: invokestatic com/l7tech/xml/xpath/XpathUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 76: athrow
      // 77: ldc " "
      // 79: aload 3
      // 7a: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 7d: astore 7
      // 7f: astore 8
      // 81: getstatic com/l7tech/xml/xpath/XpathUtil.a [Ljava/lang/String;
      // 84: bipush 31
      // 86: aaload
      // 87: aload 8
      // 89: aload 7
      // 8b: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 90: invokespecial com/l7tech/xml/InvalidXpathException.<init> (Ljava/lang/String;)V
      // 93: athrow
      // 94: return
      // try (0 -> 9): 9 org/jaxen/saxpath/SAXPathException
      // try (28 -> 31): 32 org/jaxen/saxpath/SAXPathException
      // try (38 -> 47): 48 org/jaxen/saxpath/SAXPathException
      // try (41 -> 54): 54 org/jaxen/saxpath/SAXPathException
   }

   static DOMXPath a(String var0, Map<String, String> var1, @Nullable XpathVariableFinder var2) throws JaxenException {
      DOMXPath var3 = new DOMXPath(var0);

      try {
         if (var1 != null) {
            var3.setNamespaceContext(a(var1));
         }
      } catch (JaxenException var5) {
         throw a(var5);
      }

      try {
         if (var2 != null) {
            var3.setVariableContext(new XpathVariableFinderVariableContext(var2));
         }

         return var3;
      } catch (JaxenException var4) {
         throw a(var4);
      }
   }

   private static void a(Map<String, String> var0, String var1, String var2) {
      label61: {
         try {
            if (var1 != null && var1.length() != 0) {
               break label61;
            }
         } catch (RuntimeException var8) {
            throw a(var8);
         }

         var1 = a[23];
      }

      try {
         if (!var0.containsKey(var1)) {
            var0.put(var1, var2);
            return;
         }
      } catch (RuntimeException var7) {
         throw a(var7);
      }

      try {
         if (var2.equals(var0.get(var1)) || var0.containsValue(var2)) {
            return;
         }
      } catch (RuntimeException var6) {
         throw a(var6);
      }

      for (int var3 = 1; var3 < 1000; var3++) {
         String var4 = var1 + var3;

         try {
            if (!var0.containsKey(var4)) {
               var0.put(var4, var2);
               break;
            }
         } catch (RuntimeException var5) {
            throw a(var5);
         }
      }
   }

   @NotNull
   public static List<Element> findElements(@NotNull Element var0, @NotNull String var1, @Nullable Map<String, String> var2) {
      try {
         if (var0 == null) {
            a(12);
         }
      } catch (RuntimeException var10) {
         throw a(var10);
      }

      try {
         if (var1 == null) {
            a(13);
         }
      } catch (RuntimeException var8) {
         throw a(var8);
      }

      ArrayList var3 = new ArrayList();
      DomElementCursor var4 = new DomElementCursor(var0, false);
      XpathResult var5 = getXpathResultQuietly(var4, var2, var1);
      if (var5.getType() == 1) {
         XpathResultIterator var6 = var5.getNodeSet().getIterator();

         try {
            while (var6.hasNext()) {
               var3.add(var6.nextElementAsCursor().asDomElement());
            }
         } catch (RuntimeException var9) {
            throw a(var9);
         }
      }

      try {
         if (var3 == null) {
            a(14);
         }

         return var3;
      } catch (RuntimeException var7) {
         throw a(var7);
      }
   }

   static {
      String[] var5 = new String[37];
      int var3 = 0;
      String var2 = "rB\"\u0015pTv-9D\u0012\u007fcg\u0006<I\u0012FDk\u0010=I\u001f\u00060\u001d\"Wn\u0007\"B_c\u0017%@Fc^\"\u0005(W\u0015r\u0011Z%(Q\u000e7Tz\u0005;@\u0015dXm\u001bs\u0005\u001fpTv;(H\u0003dAc\u0016,u\u0014rWk\r,V3dTf70}\u0016vEj>VCe\u0000$@\bc\u0011d\u001a;\u0005&Y^v;<I\n7Ac\u0007(H\u0003cTpUn\u0000\u00150\u0011m\u0013i\u0000\u00159\u0014qU$P\u0015c\u0011l\u001a=\u0005\u0004r\u0011l\u0000%I\u0007t^l\u0016(QN\u0012bBg\u0006\u0011U\u0007cYT\u0014;L\u0007u]g\u0006+t^o[%\u0012\u0012rRj[1H\n9Ir\u0014=MHr_c\u0017%@(v\\g\u00069D\u0005rrn\u0010(K\u0013g\u0005u^e\u0000:\u001et^oZ%\u0012\u0012rRjZ1H\n8Ir\u0014=MIOAc\u0001!p\u0012~]>B_c\u0017%@Fc^\"\u0005(W\u0015r\u0011Z%(Q\u000e7Tz\u0005;@\u0015dXm\u001biQ\t7Ug\u0001,W\u000b~_gU?D\u0014~P`\u0019,VFbBg\u0011s\u0005\u0013cTq\u0001\u0011U\u0007cYG\r9W\u0003dBk\u001a'\u0003;\u0011%\u0012bBg\u0006\u001dD\u0014pTv1&F\u0013zTl\u0001*W\u007fm\u0001\u0007P\n{\u0011o\u0010=M\ts\u0011'\u0006g\u0000\u00157\\w\u0006=\u0005\bxE\"\u0007,Q\u0013e_\"\u001b<I\n\u000fr]g\u0018,K\u0012C^Q\u0010(W\u0005\u007f\u0002;\u0011\fqXl\u0011\fI\u0003zTl\u0001:\u0004rIr\u0007QOAc\u0001!\u0005\u0003aPn\u0000(Q\u000fx_\"\u0005;J\u0002bRg\u0011iDFy^lX,H\u0016cH\"\u0007,V\u0013{E.U+P\u00127XvU>D\u0015y\u0016vU&CFcHr\u0010ik\tsT,Uiq\u001fgT8U\u00035\u0016 \u0015pTv-9D\u0012\u007fcg\u0006<I\u0012FDk\u0010=I\u001f\u0002yB\fqXl\u0011\fI\u0003zTl\u0001: B_c\u0017%@Fc^\"\u0005(W\u0015r\u0011Z%(Q\u000e7Tz\u0005;@\u0015dXm\u001b\u001et^oZ%\u0012\u0012rRjZ1H\n8Ir\u0014=MIOAc\u0001!p\u0012~]\nrIr\u0007,V\u0015~^l(B_g\r9@\u0005cTfU,W\u0014xC\"\u0002 Q\u000e7Ir\u0014=MFrIr\u0007,V\u0015~^lOiXB_c\u0017%@Fc^\"\u0005(W\u0015r\u0011Z%(Q\u000e7Tz\u0005;@\u0015dXm\u001biQ\t7Ug\u0001,W\u000b~_gU>M\u0003cYg\u0007iL\u00127Cg\u0013,W\u00157EmU=M\u00037Ec\u0007.@\u00127Um\u0016<H\u0003yE8U!pTv 'U\u0014rWk\r,A0vCk\u0014+I\u0003ddq\u0010-l\bOAc\u0001!\u001eYPo\u0010:U\u0007tT\"\u001b&QFq^w\u001b-\u0005\u0000xC\"\u0005;@\u0000~I1OAc\u0001!\u0005\u0014rBw\u0019=\u0005\u000fyRn\u0000-@\u00027P\"\u001b&KKR]g\u0018,K\u00127\u007fm\u0011,\u0005\tq\u0011v\f9@F\u0005oAc\u0001!\u0006tDp\u0006&W";
      int var4 = "rB\"\u0015pTv-9D\u0012\u007fcg\u0006<I\u0012FDk\u0010=I\u001f\u00060\u001d\"Wn\u0007\"B_c\u0017%@Fc^\"\u0005(W\u0015r\u0011Z%(Q\u000e7Tz\u0005;@\u0015dXm\u001bs\u0005\u001fpTv;(H\u0003dAc\u0016,u\u0014rWk\r,V3dTf70}\u0016vEj>VCe\u0000$@\bc\u0011d\u001a;\u0005&Y^v;<I\n7Ac\u0007(H\u0003cTpUn\u0000\u00150\u0011m\u0013i\u0000\u00159\u0014qU$P\u0015c\u0011l\u001a=\u0005\u0004r\u0011l\u0000%I\u0007t^l\u0016(QN\u0012bBg\u0006\u0011U\u0007cYT\u0014;L\u0007u]g\u0006+t^o[%\u0012\u0012rRj[1H\n9Ir\u0014=MHr_c\u0017%@(v\\g\u00069D\u0005rrn\u0010(K\u0013g\u0005u^e\u0000:\u001et^oZ%\u0012\u0012rRjZ1H\n8Ir\u0014=MIOAc\u0001!p\u0012~]>B_c\u0017%@Fc^\"\u0005(W\u0015r\u0011Z%(Q\u000e7Tz\u0005;@\u0015dXm\u001biQ\t7Ug\u0001,W\u000b~_gU?D\u0014~P`\u0019,VFbBg\u0011s\u0005\u0013cTq\u0001\u0011U\u0007cYG\r9W\u0003dBk\u001a'\u0003;\u0011%\u0012bBg\u0006\u001dD\u0014pTv1&F\u0013zTl\u0001*W\u007fm\u0001\u0007P\n{\u0011o\u0010=M\ts\u0011'\u0006g\u0000\u00157\\w\u0006=\u0005\bxE\"\u0007,Q\u0013e_\"\u001b<I\n\u000fr]g\u0018,K\u0012C^Q\u0010(W\u0005\u007f\u0002;\u0011\fqXl\u0011\fI\u0003zTl\u0001:\u0004rIr\u0007QOAc\u0001!\u0005\u0003aPn\u0000(Q\u000fx_\"\u0005;J\u0002bRg\u0011iDFy^lX,H\u0016cH\"\u0007,V\u0013{E.U+P\u00127XvU>D\u0015y\u0016vU&CFcHr\u0010ik\tsT,Uiq\u001fgT8U\u00035\u0016 \u0015pTv-9D\u0012\u007fcg\u0006<I\u0012FDk\u0010=I\u001f\u0002yB\fqXl\u0011\fI\u0003zTl\u0001: B_c\u0017%@Fc^\"\u0005(W\u0015r\u0011Z%(Q\u000e7Tz\u0005;@\u0015dXm\u001b\u001et^oZ%\u0012\u0012rRjZ1H\n8Ir\u0014=MIOAc\u0001!p\u0012~]\nrIr\u0007,V\u0015~^l(B_g\r9@\u0005cTfU,W\u0014xC\"\u0002 Q\u000e7Ir\u0014=MFrIr\u0007,V\u0015~^lOiXB_c\u0017%@Fc^\"\u0005(W\u0015r\u0011Z%(Q\u000e7Tz\u0005;@\u0015dXm\u001biQ\t7Ug\u0001,W\u000b~_gU>M\u0003cYg\u0007iL\u00127Cg\u0013,W\u00157EmU=M\u00037Ec\u0007.@\u00127Um\u0016<H\u0003yE8U!pTv 'U\u0014rWk\r,A0vCk\u0014+I\u0003ddq\u0010-l\bOAc\u0001!\u001eYPo\u0010:U\u0007tT\"\u001b&QFq^w\u001b-\u0005\u0000xC\"\u0005;@\u0000~I1OAc\u0001!\u0005\u0014rBw\u0019=\u0005\u000fyRn\u0000-@\u00027P\"\u001b&KKR]g\u0018,K\u00127\u007fm\u0011,\u0005\tq\u0011v\f9@F\u0005oAc\u0001!\u0006tDp\u0006&W"
         .length();
      char var1 = 3;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 92;
         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;
                     logger = Logger.getLogger(XpathUtil.class.getName());
                     return;
                  }

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

                  var2 = "fHj\b(z\nlKb\u0013.1FHj\b(\f\u001d{K~\u00104\f\u0006p[g\t$I\u000b>Y+\u0012/BB[Tn\u0011%B\u001b>vd\u0018%\f\u0000x\u0018\u007f\u00050IO";
                  var4 = "fHj\b(z\nlKb\u0013.1FHj\b(\f\u001d{K~\u00104\f\u0006p[g\t$I\u000b>Y+\u0012/BB[Tn\u0011%B\u001b>vd\u0018%\f\u0000x\u0018\u007f\u00050IO"
                     .length();
                  var1 = '\f';
                  var7 = -1;
            }

            var10000 = 85;
            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] ^ 58);
      }

      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 -> 75;
            case 1 -> 109;
            case 2 -> 94;
            case 3 -> 41;
            case 4 -> 21;
            case 5 -> 121;
            default -> 58;
         });
      }

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