package com.l7tech.common.io;

import com.l7tech.util.Charsets;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.DomUtils;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.PoolByteArrayOutputStream;
import com.l7tech.util.ResourceUtils;
import com.l7tech.util.Triple;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Map;
import java.util.function.Consumer;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLReporter;
import javax.xml.stream.XMLResolver;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.URIResolver;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import org.apache.xerces.util.SoftReferenceSymbolTable;
import org.apache.xml.security.Init;
import org.apache.xml.security.c14n.CanonicalizationException;
import org.apache.xml.security.c14n.Canonicalizer;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.ls.LSResourceResolver;
import org.xml.sax.EntityResolver;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.ext.EntityResolver2;

public class XmlUtil extends DomUtils {
   private static final Logger a;
   private static final boolean b;
   public static final String XML_VERSION;
   public static final String TEXT_XML;
   public static final String JAXP_SCHEMA_LANGUAGE;
   public static final String JAXP_SCHEMA_SOURCE;
   public static final String W3C_XML_SCHEMA;
   public static final String XERCES_DISALLOW_DOCTYPE;
   public static final String XERCES_DEFER_NODE_EXPANSION;
   public static final String XERCES_ATTR_SYMBOL_TABLE;
   private static final EntityResolver c;
   private static final EntityResolver d;
   private static final LSResourceResolver e;
   private static final URIResolver f;
   private static final ErrorHandler g;
   private static final ErrorHandler h;
   private static final XMLReporter i;
   private static final XMLResolver j;
   private static final ak k;
   private static final ak l;
   private static final ThreadLocal<Canonicalizer> m;
   private static final ThreadLocal<Canonicalizer> n;
   private static Schema o;
   private static boolean p;
   private static final String[] q;

   public static EntityResolver getSafeEntityResolver() {
      return c;
   }

   public static EntityResolver getDocumentEntityResolver() {
      return d;
   }

   public static LSResourceResolver getSafeLSResourceResolver() {
      return e;
   }

   public static URIResolver getSafeURIResolver() {
      return f;
   }

   public static ErrorHandler getStrictErrorHandler() {
      return h;
   }

   private static Document a(InputSource var0) throws IOException, SAXException {
      return a(k, var0x -> {}, var0);
   }

   private static Document b(InputSource var0) throws IOException, SAXException {
      return a(d, var0);
   }

   private static Document a(EntityResolver var0, InputSource var1) throws IOException, SAXException {
      return a(l, var1x -> var1x.setEntityResolver(var0), var1);
   }

   private static Document a(ak var0, Consumer<DocumentBuilder> var1, InputSource var2) throws IOException, SAXException {
      String[] var6 = q;
      a.log(Level.FINE, var6[40]);

      try {
         DocumentBuilderPooledObject var3 = (DocumentBuilderPooledObject)var0.borrowObject();

         Document var4;
         try {
            var1.accept(var3);
            var4 = var3.parse(var2);
         } catch (Throwable var9) {
            if (var3 != null) {
               try {
                  var3.close();
               } catch (Throwable var7) {
                  var9.addSuppressed(var7);
               }
            }

            throw var9;
         }

         try {
            if (var3 != null) {
               var3.close();
            }

            return var4;
         } catch (Throwable var8) {
            throw a(var8);
         }
      } catch (IOException | SAXException var10) {
         throw var10;
      } catch (Exception var11) {
         a.warning(q[44] + var11.getMessage());
         throw new DocumentBuilderAvailabilityException(var11);
      }
   }

   private static DocumentBuilderFactory a(DocumentBuilderFactory var0, boolean var1) {
      var0.setNamespaceAware(true);

      try {
         String[] var13 = q;
         var0.setFeature(var13[53], var1);
      } catch (ParserConfigurationException var4) {
         String[] var3 = q;
         a.log(Level.CONFIG, var3[42], ExceptionUtils.getDebugException(var4));
      }

      label61: {
         ParserConfigurationException var2;
         try {
            if (ConfigFactory.getBooleanProperty(q[54], true)) {
               break label61;
            }

            try {
               var0.setFeature(q[12], false);
               break label61;
            } catch (ParserConfigurationException var9) {
               var2 = var9;
            }
         } catch (IllegalArgumentException var10) {
            throw a(var10);
         }

         String[] var14 = q;
         a.log(Level.CONFIG, var14[8], ExceptionUtils.getDebugException(var2));
      }

      IllegalArgumentException var12;
      label74: {
         try {
            if (q[13].equals(ConfigFactory.getProperty(q[0], null))) {
               try {
                  var0.setAttribute(q[22], new InternSymbolTable());
                  return var0;
               } catch (IllegalArgumentException var7) {
                  var12 = var7;
                  break label74;
               }
            }
         } catch (ParserConfigurationException var8) {
            throw a(var8);
         }

         try {
            if (!ConfigFactory.getBooleanProperty(q[34], false)) {
               return var0;
            }

            try {
               var0.setAttribute(q[64], new SoftReferenceSymbolTable());
               return var0;
            } catch (IllegalArgumentException var5) {
               var12 = var5;
            }
         } catch (ParserConfigurationException var6) {
            throw a(var6);
         }

         a.log(Level.CONFIG, q[25], ExceptionUtils.getDebugException(var12));
         return var0;
      }

      String[] var15 = q;
      a.log(Level.CONFIG, var15[5], ExceptionUtils.getDebugException(var12));
      return var0;
   }

   protected static DocumentBuilder configureDocumentBuilder(DocumentBuilder var0) {
      var0.setEntityResolver(d);
      var0.setErrorHandler(g);
      return var0;
   }

   public static Document createEmptyDocument() {
      String[] var3 = q;
      a.log(Level.FINE, var3[46]);

      try {
         DocumentBuilderPooledObject var0 = (DocumentBuilderPooledObject)k.borrowObject();

         Document var1;
         try {
            var1 = var0.newDocument();
         } catch (Throwable var6) {
            if (var0 != null) {
               try {
                  var0.close();
               } catch (Throwable var4) {
                  var6.addSuppressed(var4);
               }
            }

            throw var6;
         }

         try {
            if (var0 != null) {
               var0.close();
            }

            return var1;
         } catch (Throwable var5) {
            throw a(var5);
         }
      } catch (Exception var7) {
         a.warning(q[21] + var7.getMessage());
         throw new DocumentBuilderAvailabilityException(var7);
      }
   }

   public static Document createEmptyDocument(@NotNull String var0, @Nullable String var1, @Nullable String var2) {
      try {
         if (var0 == null) {
            a(0);
         }
      } catch (DocumentBuilderAvailabilityException var6) {
         throw a(var6);
      }

      Document var3 = createEmptyDocument();
      Element var4;
      if (var2 == null) {
         var4 = var3.createElement(var0);
      } else if (var1 == null) {
         var4 = var3.createElementNS(var2, var0);
         String[] var5 = q;
         var4.setAttributeNS(XMLNS_NS, var5[59], var2);
      } else {
         var4 = var3.createElementNS(var2, var1 + ":" + var0);
         var4.setAttributeNS(XMLNS_NS, q[38] + var1, var2);
      }

      var3.appendChild(var4);
      return var3;
   }

   public static Document stringToDocument(String var0) throws SAXException {
      StringReader var1 = new StringReader(var0);

      try {
         return parse(var1, false);
      } catch (IOException var4) {
         String var10002 = var4.getClass().getName();
         String var10003 = var4.getMessage();
         String[] var3 = q;
         throw new SAXException(var3[61] + var10002 + var3[14] + var10003, var4);
      }
   }

   public static Document stringAsDocument(String var0) {
      try {
         return stringToDocument(var0);
      } catch (SAXException var3) {
         String[] var2 = q;
         throw new IllegalArgumentException(var2[1] + var0 + var2[31], var3);
      }
   }

   public static Document parse(String var0) throws SAXException {
      return stringToDocument(var0);
   }

   public static Document parse(InputStream var0) throws IOException, SAXException {
      return parse(new InputSource(var0), false);
   }

   public static Document parse(InputStream var0, String var1) throws IOException, SAXException {
      InputSource var2 = new InputSource(var0);
      var2.setEncoding(var1);
      return parse(var2, false);
   }

   public static Document parse(InputStream var0, boolean var1) throws IOException, SAXException {
      return parse(new InputSource(var0), var1);
   }

   public static Document parse(Reader var0, boolean var1) throws IOException, SAXException {
      return parse(new InputSource(var0), var1);
   }

   public static Document parse(InputSource var0, boolean var1) throws IOException, SAXException {
      try {
         if (var1) {
            return b(var0);
         }
      } catch (IOException var2) {
         throw a(var2);
      }

      return a(var0);
   }

   public static Document parse(InputSource var0, EntityResolver var1) throws IOException, SAXException {
      return a(a(var1), var0);
   }

   private static XMLSerializer a() {
      XMLSerializer var0 = new XMLSerializer();
      OutputFormat var1 = new OutputFormat();
      var1.setIndent(4);
      var0.setOutputFormat(var1);
      return var0;
   }

   private static XMLSerializer b() {
      return new XMLSerializer();
   }

   private static Canonicalizer c() {
      return m.get();
   }

   private static XMLSerializer a(boolean var0) {
      OutputFormat var1 = new OutputFormat();
      var1.setLineWidth(0);
      var1.setIndenting(false);
      var1.setPreserveSpace(true);
      var1.setOmitXMLDeclaration(true);
      var1.setOmitComments(false);
      var1.setOmitDocumentType(var0);
      var1.setPreserveEmptyAttributes(true);
      return new XMLSerializer(var1);
   }

   private static Canonicalizer d() {
      return n.get();
   }

   public static void nodeToOutputStream(Node var0, OutputStream var1) throws IOException {
      try {
         if (p) {
            nodeToOutputStreamWithApacheXmlSec(var0, var1);
            return;
         }
      } catch (IOException var2) {
         throw a(var2);
      }

      a(var0, var1, null);
   }

   public static void nodeToOutputStreamWithApacheXmlSec(Node var0, OutputStream var1) throws IOException {
      Canonicalizer var2 = c();

      try {
         if (var2 == null) {
            throw new IOException(q[32]);
         }
      } catch (CanonicalizationException var5) {
         throw a(var5);
      }

      try {
         var2.canonicalizeSubtree(var0, var1);
      } catch (CanonicalizationException var4) {
         throw new IOException(var4);
      }
   }

   static void a(Node var0, OutputStream var1, XMLSerializer var2) throws IOException {
      XMLSerializer var10000;
      label23: {
         try {
            if (var2 == null) {
               var10000 = a(true);
               break label23;
            }
         } catch (IOException var7) {
            throw a(var7);
         }

         var10000 = var2;
      }

      XMLSerializer var3 = var10000;
      var3.setOutputByteStream(var1);
      switch (var0.getNodeType()) {
         case 1:
            Element var4 = (Element)var0;
            var3.serialize(var4);
            break;
         case 9:
            Document var5 = (Document)var0;
            var3.serialize(var5);
            break;
         case 11:
            DocumentFragment var6 = (DocumentFragment)var0;
            var3.serialize(var6);
            break;
         default:
            throw new IOException(q[23] + var0.getNodeType());
      }
   }

   public static void canonicalize(Node var0, OutputStream var1) throws IOException {
      Canonicalizer var2 = d();

      try {
         if (var2 == null) {
            throw new IOException(q[7]);
         }
      } catch (CanonicalizationException var5) {
         throw a(var5);
      }

      try {
         var2.canonicalizeSubtree(var0, var1);
      } catch (CanonicalizationException var4) {
         throw new IOException(var4);
      }
   }

   public static void format(Document var0, boolean var1) {
      Element var10000;
      byte var10001;
      byte var10002;
      label16: {
         try {
            var10000 = var0.getDocumentElement();
            var10001 = 0;
            if (var1) {
               var10002 = 2;
               break label16;
            }
         } catch (DocumentBuilderAvailabilityException var2) {
            throw a(var2);
         }

         var10002 = 0;
      }

      format(var10000, var10001, var10002);
   }

   public static void format(Element param0, int param1, int param2) {
      // $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: aload 0
      // 001: invokeinterface org/w3c/dom/Element.getOwnerDocument ()Lorg/w3c/dom/Document; 1
      // 006: astore 3
      // 007: new com/l7tech/util/PaddingCharSequence
      // 00a: dup
      // 00b: bipush 32
      // 00d: iload 1
      // 00e: invokespecial com/l7tech/util/PaddingCharSequence.<init> (CI)V
      // 011: astore 4
      // 013: aload 0
      // 014: invokeinterface org/w3c/dom/Element.hasChildNodes ()Z 1
      // 019: ifeq 03a
      // 01c: aload 0
      // 01d: aload 3
      // 01e: aload 4
      // 020: invokevirtual com/l7tech/util/PaddingCharSequence.toString ()Ljava/lang/String;
      // 023: invokedynamic makeConcatWithConstants (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=[ "\n\u0001" ]
      // 028: invokeinterface org/w3c/dom/Document.createTextNode (Ljava/lang/String;)Lorg/w3c/dom/Text; 2
      // 02d: invokeinterface org/w3c/dom/Element.appendChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // 032: pop
      // 033: goto 03a
      // 036: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 039: athrow
      // 03a: aload 4
      // 03c: iload 2
      // 03d: invokevirtual com/l7tech/util/PaddingCharSequence.addLength (I)V
      // 040: aload 0
      // 041: invokeinterface org/w3c/dom/Element.getFirstChild ()Lorg/w3c/dom/Node; 1
      // 046: astore 5
      // 048: new java/util/Stack
      // 04b: dup
      // 04c: invokespecial java/util/Stack.<init> ()V
      // 04f: astore 6
      // 051: aload 5
      // 053: ifnull 11c
      // 056: aload 5
      // 058: invokeinterface org/w3c/dom/Node.getNodeType ()S 1
      // 05d: bipush 1
      // 05e: if_icmpne 0b6
      // 061: goto 068
      // 064: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 067: athrow
      // 068: aload 5
      // 06a: invokeinterface org/w3c/dom/Node.getParentNode ()Lorg/w3c/dom/Node; 1
      // 06f: aload 3
      // 070: aload 4
      // 072: invokevirtual com/l7tech/util/PaddingCharSequence.toString ()Ljava/lang/String;
      // 075: invokedynamic makeConcatWithConstants (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=[ "\n\u0001" ]
      // 07a: invokeinterface org/w3c/dom/Document.createTextNode (Ljava/lang/String;)Lorg/w3c/dom/Text; 2
      // 07f: aload 5
      // 081: invokeinterface org/w3c/dom/Node.insertBefore (Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 3
      // 086: pop
      // 087: aload 5
      // 089: bipush 1
      // 08a: invokestatic com/l7tech/common/io/XmlUtil.hasChildNodesOfType (Lorg/w3c/dom/Node;S)Z
      // 08d: ifeq 0b6
      // 090: goto 097
      // 093: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 096: athrow
      // 097: aload 5
      // 099: aload 3
      // 09a: aload 4
      // 09c: invokevirtual com/l7tech/util/PaddingCharSequence.toString ()Ljava/lang/String;
      // 09f: invokedynamic makeConcatWithConstants (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=[ "\n\u0001" ]
      // 0a4: invokeinterface org/w3c/dom/Document.createTextNode (Ljava/lang/String;)Lorg/w3c/dom/Text; 2
      // 0a9: invokeinterface org/w3c/dom/Node.appendChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // 0ae: pop
      // 0af: goto 0b6
      // 0b2: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0b5: athrow
      // 0b6: aload 5
      // 0b8: invokeinterface org/w3c/dom/Node.hasChildNodes ()Z 1
      // 0bd: ifeq 0da
      // 0c0: aload 6
      // 0c2: aload 5
      // 0c4: invokevirtual java/util/Stack.push (Ljava/lang/Object;)Ljava/lang/Object;
      // 0c7: pop
      // 0c8: aload 4
      // 0ca: iload 2
      // 0cb: invokevirtual com/l7tech/util/PaddingCharSequence.addLength (I)V
      // 0ce: aload 5
      // 0d0: invokeinterface org/w3c/dom/Node.getFirstChild ()Lorg/w3c/dom/Node; 1
      // 0d5: astore 5
      // 0d7: goto 051
      // 0da: aload 5
      // 0dc: invokeinterface org/w3c/dom/Node.getNextSibling ()Lorg/w3c/dom/Node; 1
      // 0e1: astore 7
      // 0e3: aload 7
      // 0e5: ifnonnull 115
      // 0e8: aload 6
      // 0ea: invokevirtual java/util/Stack.isEmpty ()Z
      // 0ed: ifne 115
      // 0f0: goto 0f7
      // 0f3: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0f6: athrow
      // 0f7: aload 6
      // 0f9: invokevirtual java/util/Stack.pop ()Ljava/lang/Object;
      // 0fc: checkcast org/w3c/dom/Node
      // 0ff: astore 7
      // 101: aload 4
      // 103: bipush -1
      // 104: iload 2
      // 105: imul
      // 106: invokevirtual com/l7tech/util/PaddingCharSequence.addLength (I)V
      // 109: aload 7
      // 10b: invokeinterface org/w3c/dom/Node.getNextSibling ()Lorg/w3c/dom/Node; 1
      // 110: astore 5
      // 112: goto 119
      // 115: aload 7
      // 117: astore 5
      // 119: goto 051
      // 11c: return
      // try (9 -> 20): 21 com/l7tech/common/io/DocumentBuilderAvailabilityException
      // try (33 -> 39): 40 com/l7tech/common/io/DocumentBuilderAvailabilityException
      // try (35 -> 56): 57 com/l7tech/common/io/DocumentBuilderAvailabilityException
      // try (42 -> 67): 68 com/l7tech/common/io/DocumentBuilderAvailabilityException
      // try (87 -> 92): 93 com/l7tech/common/io/DocumentBuilderAvailabilityException
   }

   public static void nodeToOutputStream(Node var0, OutputStream var1, String var2) throws IOException {
      OutputFormat var3 = new OutputFormat();
      var3.setEncoding(var2);
      XMLSerializer var4 = b();

      try {
         var4.setOutputFormat(var3);
         var4.setOutputByteStream(var1);
         if (var0 instanceof Document) {
            var4.serialize((Document)var0);
            return;
         }
      } catch (IOException var6) {
         throw a(var6);
      }

      try {
         if (!(var0 instanceof Element)) {
            throw new IllegalArgumentException(q[55]);
         }

         var4.serialize((Element)var0);
      } catch (IOException var5) {
         throw a(var5);
      }
   }

   public static void nodeToFormattedOutputStream(Node var0, OutputStream var1) throws IOException {
      XMLSerializer var2 = a();

      try {
         var2.setOutputByteStream(var1);
         if (var0 instanceof Document) {
            var2.serialize((Document)var0);
            return;
         }
      } catch (IOException var4) {
         throw a(var4);
      }

      try {
         if (!(var0 instanceof Element)) {
            throw new IllegalArgumentException(q[39]);
         }

         var2.serialize((Element)var0);
      } catch (IOException var3) {
         throw a(var3);
      }
   }

   public static String nodeToString(Node var0) throws IOException {
      return nodeToString(var0, false);
   }

   public static String nodeToStringQuiet(Node var0) {
      try {
         return nodeToString(var0);
      } catch (IOException var2) {
         throw new RuntimeException(q[52] + var2.getMessage(), var2);
      }
   }

   public static String nodeToString(Node var0, boolean var1) throws IOException {
      PoolByteArrayOutputStream var2 = new PoolByteArrayOutputStream(1024);

      try {
         try {
            if (var1) {
               a(var0, var2, a(false));
               return var2.toString(Charsets.UTF8);
            }
         } catch (IOException var7) {
            throw a(var7);
         }

         nodeToOutputStream(var0, var2);
         return var2.toString(Charsets.UTF8);
      } finally {
         var2.close();
      }
   }

   public static byte[] toByteArray(Node var0) throws IOException {
      PoolByteArrayOutputStream var1 = new PoolByteArrayOutputStream(1024);

      try {
         nodeToOutputStream(var0, var1);
         return var1.toByteArray();
      } finally {
         var1.close();
      }
   }

   public static Triple<byte[], Integer, Integer> toRawByteArray(Node var0) throws IOException {
      PoolByteArrayOutputStream var1 = new PoolByteArrayOutputStream(1024);

      try {
         nodeToOutputStream(var0, var1);
         int var2 = var1.size();
         byte[] var3 = var1.detachPooledByteArray();
         return Triple.triple(var3, 0, var2);
      } finally {
         var1.close();
      }
   }

   public static String nodeToFormattedString(Node var0) throws IOException {
      PoolByteArrayOutputStream var1 = new PoolByteArrayOutputStream(1024);

      try {
         nodeToFormattedOutputStream(var0, var1);
         return var1.toString(Charsets.UTF8);
      } finally {
         var1.close();
      }
   }

   public static String elementToXml(Element var0) throws IOException {
      Document var1 = createEmptyDocument();
      Element var2 = (Element)var1.importNode(var0, true);
      var1.appendChild(var2);
      Node var3 = var0.getParentNode();

      while (true) {
         label61: {
            try {
               if (var3 == null) {
                  break;
               }

               if (!(var3 instanceof Element)) {
                  break label61;
               }
            } catch (Throwable var11) {
               throw a(var11);
            }

            Element var4 = (Element)var3;
            NamedNodeMap var5 = var4.getAttributes();

            for (int var6 = 0; var6 < var5.getLength(); var6++) {
               Attr var7 = (Attr)var5.item(var6);

               try {
                  if (var7.getName().startsWith(q[50])) {
                     var2.setAttributeNS(DomUtils.XMLNS_NS, var7.getName(), var7.getValue());
                  }
               } catch (Throwable var10) {
                  throw a(var10);
               }
            }
         }

         var3 = var3.getParentNode();
      }

      try (StringWriter var12 = new StringWriter(512)) {
         XMLSerializer var13 = new XMLSerializer();
         var13.setOutputCharStream(var12);
         OutputFormat var14 = new OutputFormat();
         var14.setIndent(4);
         var13.setOutputFormat(var14);
         var13.serialize(var1);
         return var12.toString();
      }
   }

   public static String getEncoding(byte[] var0) {
      String var1;
      try {
         ByteOrderMarkInputStream var2 = new ByteOrderMarkInputStream(new ByteArrayInputStream(var0));
         var1 = getEncoding(new StreamSource(var2));

         try {
            if (var2.getEncoding() == null || !q[60].equalsIgnoreCase(var1)) {
               return var1;
            }
         } catch (IOException var3) {
            throw a(var3);
         }

         var1 = var2.getEncoding().name();
      } catch (IOException var4) {
         var1 = getEncoding(new StreamSource(new ByteArrayInputStream(var0)));
      }

      return var1;
   }

   public static String getEncoding(Source var0) {
      String var1 = null;
      XMLInputFactory var2 = XMLInputFactory.newInstance();
      var2.setXMLReporter(i);
      var2.setXMLResolver(j);
      XMLStreamReader var3 = null;

      try {
         label82: {
            var3 = var2.createXMLStreamReader(var0);

            while (true) {
               if (!var3.hasNext()) {
                  break label82;
               }

               int var4 = var3.next();

               try {
                  if (var4 == 7 || var4 == 1) {
                     break;
                  }
               } catch (XMLStreamException var9) {
                  throw a(var9);
               }
            }

            var1 = var3.getCharacterEncodingScheme();
         }
      } catch (XMLStreamException var10) {
         if (var3 != null) {
            var1 = var3.getCharacterEncodingScheme();
         }
      } finally {
         ResourceUtils.closeQuietly(var3);
      }

      if (var1 == null) {
         var1 = q[28];
      }

      return var1;
   }

   public static boolean hasDoctype(String var0) {
      return hasDoctype(new StreamSource(new StringReader(var0)));
   }

   public static boolean hasDoctype(Source 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: bipush 0
      // 01: istore 1
      // 02: invokestatic javax/xml/stream/XMLInputFactory.newInstance ()Ljavax/xml/stream/XMLInputFactory;
      // 05: astore 2
      // 06: aload 2
      // 07: getstatic com/l7tech/common/io/XmlUtil.i Ljavax/xml/stream/XMLReporter;
      // 0a: invokevirtual javax/xml/stream/XMLInputFactory.setXMLReporter (Ljavax/xml/stream/XMLReporter;)V
      // 0d: aload 2
      // 0e: getstatic com/l7tech/common/io/XmlUtil.j Ljavax/xml/stream/XMLResolver;
      // 11: invokevirtual javax/xml/stream/XMLInputFactory.setXMLResolver (Ljavax/xml/stream/XMLResolver;)V
      // 14: aconst_null
      // 15: astore 3
      // 16: aload 2
      // 17: aload 0
      // 18: invokevirtual javax/xml/stream/XMLInputFactory.createXMLStreamReader (Ljavax/xml/transform/Source;)Ljavax/xml/stream/XMLStreamReader;
      // 1b: astore 3
      // 1c: aload 3
      // 1d: invokeinterface javax/xml/stream/XMLStreamReader.hasNext ()Z 1
      // 22: ifeq 57
      // 25: aload 3
      // 26: invokeinterface javax/xml/stream/XMLStreamReader.next ()I 1
      // 2b: istore 4
      // 2d: iload 4
      // 2f: bipush 11
      // 31: if_icmpne 39
      // 34: bipush 1
      // 35: istore 1
      // 36: goto 57
      // 39: iload 4
      // 3b: bipush 7
      // 3d: if_icmpeq 57
      // 40: iload 4
      // 42: bipush 1
      // 43: if_icmpne 54
      // 46: goto 4d
      // 49: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 4c: athrow
      // 4d: goto 57
      // 50: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 53: athrow
      // 54: goto 1c
      // 57: aload 3
      // 58: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljavax/xml/stream/XMLStreamReader;)V
      // 5b: goto 83
      // 5e: astore 4
      // 60: aload 4
      // 62: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 65: getstatic com/l7tech/common/io/XmlUtil.q [Ljava/lang/String;
      // 68: bipush 19
      // 6a: aaload
      // 6b: invokevirtual java/lang/String.contains (Ljava/lang/CharSequence;)Z
      // 6e: ifeq 73
      // 71: bipush 1
      // 72: istore 1
      // 73: aload 3
      // 74: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljavax/xml/stream/XMLStreamReader;)V
      // 77: goto 83
      // 7a: astore 5
      // 7c: aload 3
      // 7d: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljavax/xml/stream/XMLStreamReader;)V
      // 80: aload 5
      // 82: athrow
      // 83: iload 1
      // 84: ireturn
      // try (31 -> 38): 38 javax/xml/stream/XMLStreamException
      // try (28 -> 34): 35 javax/xml/stream/XMLStreamException
      // try (12 -> 41): 44 javax/xml/stream/XMLStreamException
      // try (12 -> 41): 57 null
      // try (44 -> 54): 57 null
      // try (57 -> 58): 57 null
   }

   public static QName getDocumentQName(String var0, String var1, XMLResolver var2) throws SAXException {
      StreamSource var3 = new StreamSource(new StringReader(var1));
      var3.setSystemId(var0);
      return getDocumentQName(var3, var2);
   }

   public static QName getDocumentQName(Source var0, XMLResolver var1) throws SAXException {
      QName var2 = null;
      XMLInputFactory var3 = XMLInputFactory.newInstance();

      XMLInputFactory var10000;
      XMLResolver var10001;
      label62: {
         try {
            var3.setXMLReporter(i);
            var10000 = var3;
            if (var1 == null) {
               var10001 = j;
               break label62;
            }
         } catch (XMLStreamException var12) {
            throw a(var12);
         }

         var10001 = var1;
      }

      var10000.setXMLResolver(var10001);
      XMLStreamReader var4 = null;

      try {
         var4 = var3.createXMLStreamReader(var0);

         while (var4.hasNext()) {
            int var5 = var4.next();
            if (var5 == 1) {
               var2 = var4.getName();
               break;
            }
         }
      } catch (XMLStreamException var10) {
         throw new SAXException(var10);
      } finally {
         ResourceUtils.closeQuietly(var4);
      }

      return var2;
   }

   public static String getSchemaTNS(String var0) throws XmlUtil.BadSchemaException {
      StreamSource var1 = new StreamSource(new StringReader(var0));
      XMLInputFactory var2 = XMLInputFactory.newInstance();
      var2.setXMLReporter(i);
      var2.setXMLResolver(new t());
      String[] var9 = q;
      QName var3 = new QName(var9[47], var9[27]);
      boolean var4 = false;
      String var5 = null;
      XMLStreamReader var6 = null;

      try {
         var6 = var2.createXMLStreamReader(var1);

         while (var6.hasNext()) {
            int var7 = var6.next();

            try {
               if (var7 != 1) {
                  continue;
               }

               if (!var3.equals(var6.getName())) {
                  break;
               }
            } catch (XMLStreamException var15) {
               throw a(var15);
            }

            var4 = true;
            var9 = q;
            var5 = var6.getAttributeValue(null, var9[56]);
         }
      } catch (XMLStreamException var16) {
         throw new XmlUtil.BadSchemaException(var16);
      } finally {
         ResourceUtils.closeQuietly(var6);
      }

      try {
         if (!var4) {
            throw new XmlUtil.BadSchemaException(q[63]);
         } else {
            return var5;
         }
      } catch (XMLStreamException var14) {
         throw a(var14);
      }
   }

   public static String getSchemaTNS(String param0, String param1, EntityResolver param2) throws XmlUtil.BadSchemaException {
      // $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: aload 1
      // 001: ifnonnull 016
      // 004: new com/l7tech/common/io/XmlUtil$BadSchemaException
      // 007: dup
      // 008: getstatic com/l7tech/common/io/XmlUtil.q [Ljava/lang/String;
      // 00b: bipush 20
      // 00d: aaload
      // 00e: invokespecial com/l7tech/common/io/XmlUtil$BadSchemaException.<init> (Ljava/lang/String;)V
      // 011: athrow
      // 012: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 015: athrow
      // 016: invokestatic javax/xml/parsers/DocumentBuilderFactory.newInstance ()Ljavax/xml/parsers/DocumentBuilderFactory;
      // 019: bipush 0
      // 01a: invokestatic com/l7tech/common/io/XmlUtil.a (Ljavax/xml/parsers/DocumentBuilderFactory;Z)Ljavax/xml/parsers/DocumentBuilderFactory;
      // 01d: astore 3
      // 01e: aload 3
      // 01f: invokestatic com/l7tech/common/io/XmlUtil.e ()Ljavax/xml/validation/Schema;
      // 022: invokevirtual javax/xml/parsers/DocumentBuilderFactory.setSchema (Ljavax/xml/validation/Schema;)V
      // 025: aload 3
      // 026: invokevirtual javax/xml/parsers/DocumentBuilderFactory.newDocumentBuilder ()Ljavax/xml/parsers/DocumentBuilder;
      // 029: invokestatic com/l7tech/common/io/XmlUtil.configureDocumentBuilder (Ljavax/xml/parsers/DocumentBuilder;)Ljavax/xml/parsers/DocumentBuilder;
      // 02c: astore 4
      // 02e: aload 4
      // 030: getstatic com/l7tech/common/io/XmlUtil.h Lorg/xml/sax/ErrorHandler;
      // 033: invokevirtual javax/xml/parsers/DocumentBuilder.setErrorHandler (Lorg/xml/sax/ErrorHandler;)V
      // 036: aload 4
      // 038: aload 2
      // 039: invokestatic com/l7tech/common/io/XmlUtil.a (Lorg/xml/sax/EntityResolver;)Lorg/xml/sax/EntityResolver;
      // 03c: invokevirtual javax/xml/parsers/DocumentBuilder.setEntityResolver (Lorg/xml/sax/EntityResolver;)V
      // 03f: new org/xml/sax/InputSource
      // 042: dup
      // 043: invokespecial org/xml/sax/InputSource.<init> ()V
      // 046: astore 5
      // 048: aload 5
      // 04a: aload 0
      // 04b: invokevirtual org/xml/sax/InputSource.setSystemId (Ljava/lang/String;)V
      // 04e: aload 5
      // 050: new java/io/StringReader
      // 053: dup
      // 054: aload 1
      // 055: invokespecial java/io/StringReader.<init> (Ljava/lang/String;)V
      // 058: invokevirtual org/xml/sax/InputSource.setCharacterStream (Ljava/io/Reader;)V
      // 05b: aload 4
      // 05d: aload 5
      // 05f: invokevirtual javax/xml/parsers/DocumentBuilder.parse (Lorg/xml/sax/InputSource;)Lorg/w3c/dom/Document;
      // 062: astore 6
      // 064: aload 6
      // 066: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 06b: getstatic com/l7tech/common/io/XmlUtil.q [Ljava/lang/String;
      // 06e: astore 21
      // 070: aload 21
      // 072: bipush 37
      // 074: aaload
      // 075: invokeinterface org/w3c/dom/Element.getAttribute (Ljava/lang/String;)Ljava/lang/String; 2
      // 07a: astore 7
      // 07c: aload 7
      // 07e: invokevirtual java/lang/String.length ()I
      // 081: ifne 08a
      // 084: aconst_null
      // 085: astore 7
      // 087: goto 2ea
      // 08a: new java/util/HashSet
      // 08d: dup
      // 08e: invokespecial java/util/HashSet.<init> ()V
      // 091: astore 8
      // 093: aload 6
      // 095: getstatic com/l7tech/common/io/XmlUtil.q [Ljava/lang/String;
      // 098: astore 21
      // 09a: aload 21
      // 09c: bipush 35
      // 09e: aaload
      // 09f: aload 21
      // 0a1: bipush 6
      // 0a3: aaload
      // 0a4: invokeinterface org/w3c/dom/Document.getElementsByTagNameNS (Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList; 3
      // 0a9: astore 9
      // 0ab: bipush 0
      // 0ac: istore 10
      // 0ae: iload 10
      // 0b0: aload 9
      // 0b2: invokeinterface org/w3c/dom/NodeList.getLength ()I 1
      // 0b7: if_icmpge 103
      // 0ba: aload 9
      // 0bc: iload 10
      // 0be: invokeinterface org/w3c/dom/NodeList.item (I)Lorg/w3c/dom/Node; 2
      // 0c3: checkcast org/w3c/dom/Element
      // 0c6: astore 11
      // 0c8: aload 11
      // 0ca: getstatic com/l7tech/common/io/XmlUtil.q [Ljava/lang/String;
      // 0cd: bipush 36
      // 0cf: aaload
      // 0d0: invokeinterface org/w3c/dom/Element.hasAttribute (Ljava/lang/String;)Z 2
      // 0d5: ifeq 0f4
      // 0d8: aload 8
      // 0da: aload 11
      // 0dc: getstatic com/l7tech/common/io/XmlUtil.q [Ljava/lang/String;
      // 0df: bipush 11
      // 0e1: aaload
      // 0e2: invokeinterface org/w3c/dom/Element.getAttribute (Ljava/lang/String;)Ljava/lang/String; 2
      // 0e7: invokeinterface java/util/Set.add (Ljava/lang/Object;)Z 2
      // 0ec: pop
      // 0ed: goto 0fd
      // 0f0: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0f3: athrow
      // 0f4: aload 8
      // 0f6: aconst_null
      // 0f7: invokeinterface java/util/Set.add (Ljava/lang/Object;)Z 2
      // 0fc: pop
      // 0fd: iinc 10 1
      // 100: goto 0ae
      // 103: aload 8
      // 105: invokeinterface java/util/Set.size ()I 1
      // 10a: aload 9
      // 10c: invokeinterface org/w3c/dom/NodeList.getLength ()I 1
      // 111: if_icmpeq 12a
      // 114: getstatic com/l7tech/common/io/XmlUtil.a Ljava/util/logging/Logger;
      // 117: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 11a: getstatic com/l7tech/common/io/XmlUtil.q [Ljava/lang/String;
      // 11d: bipush 15
      // 11f: aaload
      // 120: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 123: goto 12a
      // 126: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 129: athrow
      // 12a: aload 8
      // 12c: aconst_null
      // 12d: invokeinterface java/util/Set.contains (Ljava/lang/Object;)Z 2
      // 132: ifeq 145
      // 135: aload 8
      // 137: aconst_null
      // 138: invokeinterface java/util/Set.remove (Ljava/lang/Object;)Z 2
      // 13d: pop
      // 13e: goto 145
      // 141: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 144: athrow
      // 145: aload 8
      // 147: getstatic com/l7tech/common/io/XmlUtil.q [Ljava/lang/String;
      // 14a: astore 21
      // 14c: aload 21
      // 14e: bipush 35
      // 150: aaload
      // 151: invokeinterface java/util/Set.add (Ljava/lang/Object;)Z 2
      // 156: pop
      // 157: aload 8
      // 159: aload 7
      // 15b: invokeinterface java/util/Set.add (Ljava/lang/Object;)Z 2
      // 160: pop
      // 161: aload 6
      // 163: aload 21
      // 165: bipush 35
      // 167: aaload
      // 168: aload 21
      // 16a: bipush 30
      // 16c: aaload
      // 16d: invokeinterface org/w3c/dom/Document.getElementsByTagNameNS (Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList; 3
      // 172: astore 10
      // 174: bipush 0
      // 175: istore 11
      // 177: iload 11
      // 179: aload 10
      // 17b: invokeinterface org/w3c/dom/NodeList.getLength ()I 1
      // 180: if_icmpge 2ea
      // 183: aload 10
      // 185: iload 11
      // 187: invokeinterface org/w3c/dom/NodeList.item (I)Lorg/w3c/dom/Node; 2
      // 18c: checkcast org/w3c/dom/Element
      // 18f: astore 12
      // 191: bipush 3
      // 192: anewarray 263
      // 195: dup
      // 196: bipush 0
      // 197: bipush 3
      // 198: anewarray 456
      // 19b: dup
      // 19c: bipush 0
      // 19d: getstatic com/l7tech/common/io/XmlUtil.q [Ljava/lang/String;
      // 1a0: astore 21
      // 1a2: aload 21
      // 1a4: bipush 16
      // 1a6: aaload
      // 1a7: aastore
      // 1a8: dup
      // 1a9: bipush 1
      // 1aa: aconst_null
      // 1ab: aastore
      // 1ac: dup
      // 1ad: bipush 2
      // 1ae: aconst_null
      // 1af: aastore
      // 1b0: aastore
      // 1b1: dup
      // 1b2: bipush 1
      // 1b3: bipush 3
      // 1b4: anewarray 456
      // 1b7: dup
      // 1b8: bipush 0
      // 1b9: aload 21
      // 1bb: bipush 45
      // 1bd: aaload
      // 1be: aastore
      // 1bf: dup
      // 1c0: bipush 1
      // 1c1: aconst_null
      // 1c2: aastore
      // 1c3: dup
      // 1c4: bipush 2
      // 1c5: aconst_null
      // 1c6: aastore
      // 1c7: aastore
      // 1c8: dup
      // 1c9: bipush 2
      // 1ca: bipush 3
      // 1cb: anewarray 456
      // 1ce: dup
      // 1cf: bipush 0
      // 1d0: aload 21
      // 1d2: bipush 29
      // 1d4: aaload
      // 1d5: aastore
      // 1d6: dup
      // 1d7: bipush 1
      // 1d8: aconst_null
      // 1d9: aastore
      // 1da: dup
      // 1db: bipush 2
      // 1dc: aconst_null
      // 1dd: aastore
      // 1de: aastore
      // 1df: astore 13
      // 1e1: bipush 0
      // 1e2: istore 14
      // 1e4: bipush 0
      // 1e5: istore 15
      // 1e7: iload 15
      // 1e9: aload 13
      // 1eb: arraylength
      // 1ec: if_icmpge 236
      // 1ef: aload 12
      // 1f1: aload 13
      // 1f3: iload 15
      // 1f5: aaload
      // 1f6: bipush 0
      // 1f7: aaload
      // 1f8: invokeinterface org/w3c/dom/Element.hasAttribute (Ljava/lang/String;)Z 2
      // 1fd: ifeq 230
      // 200: goto 207
      // 203: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 206: athrow
      // 207: bipush 1
      // 208: istore 14
      // 20a: aload 13
      // 20c: iload 15
      // 20e: aaload
      // 20f: bipush 1
      // 210: aload 12
      // 212: aload 13
      // 214: iload 15
      // 216: aaload
      // 217: bipush 0
      // 218: aaload
      // 219: invokeinterface org/w3c/dom/Element.getAttribute (Ljava/lang/String;)Ljava/lang/String; 2
      // 21e: aastore
      // 21f: aload 13
      // 221: iload 15
      // 223: aaload
      // 224: bipush 2
      // 225: aload 13
      // 227: iload 15
      // 229: aaload
      // 22a: bipush 1
      // 22b: aaload
      // 22c: invokestatic com/l7tech/common/io/XmlUtil.getNamespacePrefix (Ljava/lang/String;)Ljava/lang/String;
      // 22f: aastore
      // 230: iinc 15 1
      // 233: goto 1e7
      // 236: iload 14
      // 238: ifne 242
      // 23b: goto 2e4
      // 23e: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 241: athrow
      // 242: aload 12
      // 244: invokestatic com/l7tech/util/DomUtils.getNamespaceMap (Lorg/w3c/dom/Element;)Ljava/util/Map;
      // 247: astore 15
      // 249: bipush 0
      // 24a: istore 16
      // 24c: iload 16
      // 24e: aload 13
      // 250: arraylength
      // 251: if_icmpge 2e4
      // 254: aload 13
      // 256: iload 16
      // 258: aaload
      // 259: bipush 1
      // 25a: aaload
      // 25b: ifnonnull 26c
      // 25e: goto 265
      // 261: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 264: athrow
      // 265: goto 2de
      // 268: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 26b: athrow
      // 26c: aload 15
      // 26e: aload 13
      // 270: iload 16
      // 272: aaload
      // 273: bipush 2
      // 274: aaload
      // 275: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 27a: checkcast java/lang/String
      // 27d: astore 17
      // 27f: aload 17
      // 281: ifnull 2de
      // 284: aload 8
      // 286: aload 17
      // 288: invokeinterface java/util/Set.contains (Ljava/lang/Object;)Z 2
      // 28d: ifne 2de
      // 290: goto 297
      // 293: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 296: athrow
      // 297: new com/l7tech/common/io/XmlUtil$BadSchemaException
      // 29a: dup
      // 29b: aload 13
      // 29d: iload 16
      // 29f: aaload
      // 2a0: bipush 2
      // 2a1: aaload
      // 2a2: aload 13
      // 2a4: iload 16
      // 2a6: aaload
      // 2a7: bipush 0
      // 2a8: aaload
      // 2a9: aload 13
      // 2ab: iload 16
      // 2ad: aaload
      // 2ae: bipush 1
      // 2af: aaload
      // 2b0: astore 18
      // 2b2: astore 19
      // 2b4: astore 20
      // 2b6: getstatic com/l7tech/common/io/XmlUtil.q [Ljava/lang/String;
      // 2b9: astore 21
      // 2bb: aload 21
      // 2bd: bipush 62
      // 2bf: aaload
      // 2c0: aload 20
      // 2c2: aload 21
      // 2c4: bipush 24
      // 2c6: aaload
      // 2c7: aload 19
      // 2c9: aload 21
      // 2cb: bipush 33
      // 2cd: aaload
      // 2ce: aload 18
      // 2d0: aload 21
      // 2d2: bipush 41
      // 2d4: aaload
      // 2d5: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;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\u0001\u0001\u0001\u0001" ]
      // 2da: invokespecial com/l7tech/common/io/XmlUtil$BadSchemaException.<init> (Ljava/lang/String;)V
      // 2dd: athrow
      // 2de: iinc 16 1
      // 2e1: goto 24c
      // 2e4: iinc 11 1
      // 2e7: goto 177
      // 2ea: aload 7
      // 2ec: areturn
      // 2ed: astore 3
      // 2ee: new com/l7tech/common/io/XmlUtil$BadSchemaException
      // 2f1: dup
      // 2f2: aload 3
      // 2f3: invokespecial com/l7tech/common/io/XmlUtil$BadSchemaException.<init> (Ljava/lang/Throwable;)V
      // 2f6: athrow
      // 2f7: astore 3
      // 2f8: new com/l7tech/common/io/XmlUtil$BadSchemaException
      // 2fb: dup
      // 2fc: aload 3
      // 2fd: invokespecial com/l7tech/common/io/XmlUtil$BadSchemaException.<init> (Ljava/lang/Throwable;)V
      // 300: athrow
      // 301: astore 3
      // 302: new com/l7tech/common/io/XmlUtil$BadSchemaException
      // 305: dup
      // 306: aload 3
      // 307: invokespecial com/l7tech/common/io/XmlUtil$BadSchemaException.<init> (Ljava/lang/Throwable;)V
      // 30a: athrow
      // try (310 -> 316): 317 org/xml/sax/SAXException
      // try (289 -> 299): 299 org/xml/sax/SAXException
      // try (285 -> 295): 296 org/xml/sax/SAXException
      // try (275 -> 278): 278 org/xml/sax/SAXException
      // try (233 -> 245): 246 org/xml/sax/SAXException
      // try (124 -> 132): 133 org/xml/sax/SAXException
      // try (110 -> 121): 122 org/xml/sax/SAXException
      // try (87 -> 102): 102 org/xml/sax/SAXException
      // try (0 -> 9): 9 org/xml/sax/SAXException
      // try (11 -> 364): 365 org/xml/sax/SAXException
      // try (11 -> 364): 371 java/io/IOException
      // try (11 -> 364): 377 javax/xml/parsers/ParserConfigurationException
   }

   public static String[] getSchemaGlobalElements(Element var0) throws XmlUtil.BadSchemaException {
      ArrayList var1 = new ArrayList();
      String[] var6 = q;

      for (Element var4 : findChildElementsByName(var0, var6[35], var6[57])) {
         var6 = q;
         String var5 = var4.getAttribute(var6[65]);

         try {
            if (var5.isEmpty()) {
               throw new XmlUtil.BadSchemaException(var6[2]);
            }
         } catch (XmlUtil.BadSchemaException var7) {
            throw a(var7);
         }

         var1.add(var5);
      }

      return var1.toArray(new String[var1.size()]);
   }

   public static void softXSLTransform(Document var0, Result var1, Transformer var2, Map var3) throws TransformerException {
      label46: {
         try {
            if (var3 == null || var3.isEmpty()) {
               break label46;
            }
         } catch (TransformerException var9) {
            throw a(var9);
         }

         for (String var5 : var3.keySet()) {
            try {
               if (var5 == null) {
                  continue;
               }
            } catch (TransformerException var8) {
               throw a(var8);
            }

            Object var6 = var3.get(var5);

            try {
               if (var6 == null) {
                  continue;
               }
            } catch (TransformerException var7) {
               throw a(var7);
            }

            var2.setParameter(var5, var6);
         }
      }

      var2.transform(new DOMSource(var0), var1);
   }

   @Deprecated
   public static void setSerializeWithApacheXmlSec(Boolean var0) {
      boolean var10000;
      label16: {
         try {
            if (var0 == null) {
               var10000 = b;
               break label16;
            }
         } catch (DocumentBuilderAvailabilityException var1) {
            throw a(var1);
         }

         var10000 = var0;
      }

      p = var10000;
   }

   private static EntityResolver a(EntityResolver var0) {
      try {
         if (var0 == null) {
            return d;
         }
      } catch (DocumentBuilderAvailabilityException var1) {
         throw a(var1);
      }

      try {
         if (var0 instanceof EntityResolver2) {
            return new ad((EntityResolver2)var0);
         }
      } catch (DocumentBuilderAvailabilityException var2) {
         throw a(var2);
      }

      return new ac(var0);
   }

   private static Schema e() throws SAXException {
      Schema var0 = o;
      if (var0 == null) {
         String[] var2 = q;
         SchemaFactory var1 = SchemaFactory.newInstance(var2[35]);
         var1.setResourceResolver(new u());
         var0 = var1.newSchema(new StreamSource(DomUtils.class.getResourceAsStream(var2[3])));
         o = var0;
      }

      return var0;
   }

   public static String reformatXml(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: ifnull 25
      // 04: aload 0
      // 05: invokevirtual java/lang/String.length ()I
      // 08: bipush 1
      // 09: if_icmplt 25
      // 0c: goto 13
      // 0f: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 12: athrow
      // 13: aload 0
      // 14: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 17: invokevirtual java/lang/String.length ()I
      // 1a: bipush 1
      // 1b: if_icmpge 2b
      // 1e: goto 25
      // 21: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 24: athrow
      // 25: aload 0
      // 26: areturn
      // 27: invokestatic com/l7tech/common/io/XmlUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 2a: athrow
      // 2b: aload 0
      // 2c: invokestatic com/l7tech/common/io/XmlUtil.stringToDocument (Ljava/lang/String;)Lorg/w3c/dom/Document;
      // 2f: invokestatic com/l7tech/common/io/XmlUtil.nodeToFormattedString (Lorg/w3c/dom/Node;)Ljava/lang/String;
      // 32: areturn
      // 33: astore 1
      // 34: aload 0
      // 35: areturn
      // 36: astore 1
      // 37: aload 0
      // 38: areturn
      // try (9 -> 19): 19 org/xml/sax/SAXException
      // try (2 -> 14): 15 org/xml/sax/SAXException
      // try (0 -> 6): 7 org/xml/sax/SAXException
      // try (21 -> 24): 25 org/xml/sax/SAXException
      // try (21 -> 24): 28 java/io/IOException
   }

   static {
      String[] var5 = new String[66];
      int var3 = 0;
      String var2 = "\u001bRo\u0001\u000e\u000e~\u001d^j\u0001\u0001Vg\u0015Rl\u0001\u001aTf+Rd[1@g\u001aRn{\u0003[f\u001d\u0011-ScM\u000e\\*\fR\"_\u0003Ky\u001d\u001d%E?QmM\u0003U*\u001dQgB\u0007W~XYgL\u000eXx\u0019Ik@\f\u0019g\u0011NqF\f^*PRp\u000f\u0007Tz\fD+\u000f\u0010\\{\rTpJ\u0006\u0019d\u0019Pg\u000f\u0003M~\nT`Z\u0016\\*W^mBMU=\fXaGMZe\u0015PmAMKo\u000bRw]\u0001\\yWeOc1Zb\u001dPc\u0001\u001aJn4\u0010Iv_X\u0016%\u0019McL\n\\$\u0017Oe\u0000\u001aTfW[gN\u0016Lx\u001dN-K\u000bJk\u0014QmXO]e\u001bI{_\u0007\u0014n\u001d^n1=Op@\u0010\u0019i\u0017SdF\u0005Lx\u0011Se\u000f:tFXMc]\u0011\\xXTl[\u0007KdXN{B\u0000VfXIcM\u000e\\$\u0006\u0011Pr@\u0010M\u001d-ScM\u000e\\*\fR\"H\u0007M*\u0019\u001daN\fVd\u0011^cC\u000bCo\n4 pN\u000f\u0012Xx\u000bXp\u000f\u0006Vo\u000b\u001dl@\u0016\u0019y\rMr@\u0010M*\u001cXdJ\u0010Ko\u001c\u001dl@\u0006\\*\u001dErN\fJc\u0017S,(D\u0002zB\u000e\u0019|\u001dOqF\rW7Z\f,\u001f@\u0019o\u0016^mK\u000bWmE\u001fw[\u0004\u00142Z\u001d=\u0011h7\u0010Iv_X\u0016%\u0019McL\n\\$\u0017Oe\u0000\u001aTfW[gN\u0016Lx\u001dN-K\rT%\u001cXdJ\u0010\u0014d\u0017Yg\u0002\u0007Az\u0019SqF\rW\t\u0016\\oJ\u0011Ik\u001bX7\u0010Iv_X\u0016%\u0019McL\n\\$\u0017Oe\u0000\u001aTfW[gN\u0016Lx\u001dN-K\rT%\u001cXdJ\u0010\u0014d\u0017Yg\u0002\u0007Az\u0019SqF\rW\u0006\u0011SvJ\u0010W\u0002B\u001dL+^jJ\u000fX*\u0011Pr@\u0010MyXPm]\u0007\u0019~\u0010\\l\u000f\u0003\u0019y\u0011SeC\u0007\u0019y\u001bUgB\u0003\u0019}\u0011Ij\u000f\u0016QoXNcB\u0007\u0019\"\u0017O\"J\u000fI~\u0001\u0014\"A\u0003To\u000bMcL\u0007\u0017\u0004\fDrJ\u0013\u001bOgN\u0016\\O\u0015MvV&Vi\rPgA\u0016>9OeZ\u000f\\d\f\u001dd@\u0010\u0019J6Rva\u0017UfXMc]\u0003To\fXp\u000fE\u001cy_\u001dmIB\u001cyV\u0018q\u000f\u000fLy\f\u001dl@\u0016\u0019h\u001d\u001dlZ\u000eU\"=EvJ\u0010Wk\u0014\u001dgA\u0016P~\u0001\u001dcL\u0001\\y\u000b\u001dd@\u0010[c\u001cYgAB\u001e\u0006\u0016R\"W\u000fU+>\\kC\u0007]*\fR\"]\u0007M\u007f\nS\"K\rZ\u007f\u0015Xl[B[\u007f\u0011QfJ\u0010\u0019~\u0017\u001dr@\rU0X6\u0010Iv_X\u0016%\u0019McL\n\\$\u0017Oe\u0000\u001aTfWMp@\u0012\\x\fTg\\MPd\fXpA\u0003U%\u000bDoM\rU'\f\\`C\u0007\u001b-SqZ\u0012Ie\nIgKB}E5\u001dL@\u0006\\*\fDrJX\u0019\u0006_\u001dd@\u0010\u0019/=Op@\u0010\u0019i\u0017SdF\u0005Lx\u0011Se\u000f:tFXMc]\u0011\\xXNmI\u0016\u0019y\u0001P`@\u000e\u0019~\u0019_nJL6\u0010Iv_X\u0016%\u0012\\tNLJ\u007f\u0016\u0013a@\u000f\u0016r\u0015Q-E\u0003AzWMp@\u0012\\x\fTg\\MJi\u0010XoN.Xd\u001fHcH\u0007\u0006\u000b^jJ\u000fX\u0005-iD\u0002Z\u0011\u000bH`\\\u0016P~\rIk@\f~x\u0017Hr\u0007\u001dQgB\u0007W~\t_\u001dc\\BaG4\u0013\u001d-ScM\u000e\\*\fR\"H\u0007M*\u0019\u001daN\fVd\u0011^cC\u000bCo\n\u0002X\u001a$\u001bRo\u0001\u000e\u000e~\u001d^j\u0001\u0001Vg\u0015Rl\u0001\u001aTf+Rd[1@g\u001aRn{\u0003[f\u001d \u0010Iv_X\u0016%\u000fJu\u0001\u0015\n$\u0017Oe\u0000P\t:I\u0012Zb.ji\u0010XoN\t\u0016\\oJ\u0011Ik\u001bX\u000f\f\\pH\u0007MD\u0019Pg\\\u0012Xi\u001d\u0006\u0000PnA\u0011\u0003,6RfJBT\u007f\u000bI\"M\u0007\u0019o\u0011IjJ\u0010\u0019kXymL\u0017To\u0016I\"@\u0010\u0019k\u0016\u001dGC\u0007To\u0016I\u0018?Xv[\u000bWmXymL\u0017To\u0016I\"m\u0017Pf\u001cXp\u0002_\u0013- pN\u000f\u0012Xx\u000bXp\u000f\u0006Vo\u000b\u001dl@\u0016\u0019y\rMr@\u0010M*\u001cTqN\u000eUe\u000f\u001df@\u0001Ms\bX,\u001c\u001bRo\u0000\u000e\u000e~\u001d^j\u0000\u0001Vg\u0015Rl\u0000\u000bV% Pnz\u0016Pf+>\\kC\u0007]*\fR\"]\u0007M\u007f\nS\"K\rZ\u007f\u0015Xl[B[\u007f\u0011QfJ\u0010\u0019~\u0017\u001dr@\rU0X\u0003\nXd\u0018?Xv[\u000bWmXymL\u0017To\u0016I\"m\u0017Pf\u001cXp \u0010Iv_X\u0016%\u000fJu\u0001\u0015\n$\u0017Oe\u0000P\t:I\u0012Zb.ji\u0010XoN+\u001bRo\u0001\u000e\u000e~\u001d^j\u0001\u0001Vg\u0015Rl\u0001\u0011\\x\u0011\\nF\u0018\\]\u0011Ijn\u0012Xi\u0010XZB\u000ejo\u001b4\u0010Iv_X\u0016%\u0012\\tNLJ\u007f\u0016\u0013a@\u000f\u0016r\u0015Q-E\u0003AzWMp@\u0012\\x\fTg\\MJi\u0010XoN1V\u007f\n^g\u0006\u0000PnA\u0011\u0003\b\fXz[MAg\u0014\"-SgW\u0012\\i\fXf\u000f\u0007Kx\u0017O\"\\\u0007Kc\u0019QkU\u000bWmXeOcX\u00194\u0010Iv_X\u0016%\u0019McL\n\\$\u0017Oe\u0000\u001aTfW[gN\u0016Lx\u001dN-K\u000bJk\u0014QmXO]e\u001bI{_\u0007\u0014n\u001d^n'\u001bRo\u0001\u000e\u000e~\u001d^j\u0001\u0001Vg\u0015Rl\u0001\u001aTf<XdJ\u0010we\u001cXGW\u0012Xd\u000bTmA,6RfJBT\u007f\u000bI\"M\u0007\u0019o\u0011IjJ\u0010\u0019kXymL\u0017To\u0016I\"@\u0010\u0019k\u0016\u001dGC\u0007To\u0016I\u000f\f\\pH\u0007MD\u0019Pg\\\u0012Xi\u001d\u0007\u001dQgB\u0007W~\u000f\nRm['Uo\u0015Xl[,Xg\u001d\u0005\u0000PnA\u0011\u0005-iD\u0002Z!-ScM\u000e\\*\fR\"_\u0003Ky\u001d\u001dvG\u000bJ* pN\u000f\u0011Mx\u0011Se\u0015B\u001d-SkB\u0012Vx\fXf\u000f\fXg\u001dNrN\u0001\\*\bOgI\u000bA*_\u00126Rv\u000f\u0003W* pN\u000f1Zb\u001dPc\u0001";
      int var4 = "\u001bRo\u0001\u000e\u000e~\u001d^j\u0001\u0001Vg\u0015Rl\u0001\u001aTf+Rd[1@g\u001aRn{\u0003[f\u001d\u0011-ScM\u000e\\*\fR\"_\u0003Ky\u001d\u001d%E?QmM\u0003U*\u001dQgB\u0007W~XYgL\u000eXx\u0019Ik@\f\u0019g\u0011NqF\f^*PRp\u000f\u0007Tz\fD+\u000f\u0010\\{\rTpJ\u0006\u0019d\u0019Pg\u000f\u0003M~\nT`Z\u0016\\*W^mBMU=\fXaGMZe\u0015PmAMKo\u000bRw]\u0001\\yWeOc1Zb\u001dPc\u0001\u001aJn4\u0010Iv_X\u0016%\u0019McL\n\\$\u0017Oe\u0000\u001aTfW[gN\u0016Lx\u001dN-K\u000bJk\u0014QmXO]e\u001bI{_\u0007\u0014n\u001d^n1=Op@\u0010\u0019i\u0017SdF\u0005Lx\u0011Se\u000f:tFXMc]\u0011\\xXTl[\u0007KdXN{B\u0000VfXIcM\u000e\\$\u0006\u0011Pr@\u0010M\u001d-ScM\u000e\\*\fR\"H\u0007M*\u0019\u001daN\fVd\u0011^cC\u000bCo\n4 pN\u000f\u0012Xx\u000bXp\u000f\u0006Vo\u000b\u001dl@\u0016\u0019y\rMr@\u0010M*\u001cXdJ\u0010Ko\u001c\u001dl@\u0006\\*\u001dErN\fJc\u0017S,(D\u0002zB\u000e\u0019|\u001dOqF\rW7Z\f,\u001f@\u0019o\u0016^mK\u000bWmE\u001fw[\u0004\u00142Z\u001d=\u0011h7\u0010Iv_X\u0016%\u0019McL\n\\$\u0017Oe\u0000\u001aTfW[gN\u0016Lx\u001dN-K\rT%\u001cXdJ\u0010\u0014d\u0017Yg\u0002\u0007Az\u0019SqF\rW\t\u0016\\oJ\u0011Ik\u001bX7\u0010Iv_X\u0016%\u0019McL\n\\$\u0017Oe\u0000\u001aTfW[gN\u0016Lx\u001dN-K\rT%\u001cXdJ\u0010\u0014d\u0017Yg\u0002\u0007Az\u0019SqF\rW\u0006\u0011SvJ\u0010W\u0002B\u001dL+^jJ\u000fX*\u0011Pr@\u0010MyXPm]\u0007\u0019~\u0010\\l\u000f\u0003\u0019y\u0011SeC\u0007\u0019y\u001bUgB\u0003\u0019}\u0011Ij\u000f\u0016QoXNcB\u0007\u0019\"\u0017O\"J\u000fI~\u0001\u0014\"A\u0003To\u000bMcL\u0007\u0017\u0004\fDrJ\u0013\u001bOgN\u0016\\O\u0015MvV&Vi\rPgA\u0016>9OeZ\u000f\\d\f\u001dd@\u0010\u0019J6Rva\u0017UfXMc]\u0003To\fXp\u000fE\u001cy_\u001dmIB\u001cyV\u0018q\u000f\u000fLy\f\u001dl@\u0016\u0019h\u001d\u001dlZ\u000eU\"=EvJ\u0010Wk\u0014\u001dgA\u0016P~\u0001\u001dcL\u0001\\y\u000b\u001dd@\u0010[c\u001cYgAB\u001e\u0006\u0016R\"W\u000fU+>\\kC\u0007]*\fR\"]\u0007M\u007f\nS\"K\rZ\u007f\u0015Xl[B[\u007f\u0011QfJ\u0010\u0019~\u0017\u001dr@\rU0X6\u0010Iv_X\u0016%\u0019McL\n\\$\u0017Oe\u0000\u001aTfWMp@\u0012\\x\fTg\\MPd\fXpA\u0003U%\u000bDoM\rU'\f\\`C\u0007\u001b-SqZ\u0012Ie\nIgKB}E5\u001dL@\u0006\\*\fDrJX\u0019\u0006_\u001dd@\u0010\u0019/=Op@\u0010\u0019i\u0017SdF\u0005Lx\u0011Se\u000f:tFXMc]\u0011\\xXNmI\u0016\u0019y\u0001P`@\u000e\u0019~\u0019_nJL6\u0010Iv_X\u0016%\u0012\\tNLJ\u007f\u0016\u0013a@\u000f\u0016r\u0015Q-E\u0003AzWMp@\u0012\\x\fTg\\MJi\u0010XoN.Xd\u001fHcH\u0007\u0006\u000b^jJ\u000fX\u0005-iD\u0002Z\u0011\u000bH`\\\u0016P~\rIk@\f~x\u0017Hr\u0007\u001dQgB\u0007W~\t_\u001dc\\BaG4\u0013\u001d-ScM\u000e\\*\fR\"H\u0007M*\u0019\u001daN\fVd\u0011^cC\u000bCo\n\u0002X\u001a$\u001bRo\u0001\u000e\u000e~\u001d^j\u0001\u0001Vg\u0015Rl\u0001\u001aTf+Rd[1@g\u001aRn{\u0003[f\u001d \u0010Iv_X\u0016%\u000fJu\u0001\u0015\n$\u0017Oe\u0000P\t:I\u0012Zb.ji\u0010XoN\t\u0016\\oJ\u0011Ik\u001bX\u000f\f\\pH\u0007MD\u0019Pg\\\u0012Xi\u001d\u0006\u0000PnA\u0011\u0003,6RfJBT\u007f\u000bI\"M\u0007\u0019o\u0011IjJ\u0010\u0019kXymL\u0017To\u0016I\"@\u0010\u0019k\u0016\u001dGC\u0007To\u0016I\u0018?Xv[\u000bWmXymL\u0017To\u0016I\"m\u0017Pf\u001cXp\u0002_\u0013- pN\u000f\u0012Xx\u000bXp\u000f\u0006Vo\u000b\u001dl@\u0016\u0019y\rMr@\u0010M*\u001cTqN\u000eUe\u000f\u001df@\u0001Ms\bX,\u001c\u001bRo\u0000\u000e\u000e~\u001d^j\u0000\u0001Vg\u0015Rl\u0000\u000bV% Pnz\u0016Pf+>\\kC\u0007]*\fR\"]\u0007M\u007f\nS\"K\rZ\u007f\u0015Xl[B[\u007f\u0011QfJ\u0010\u0019~\u0017\u001dr@\rU0X\u0003\nXd\u0018?Xv[\u000bWmXymL\u0017To\u0016I\"m\u0017Pf\u001cXp \u0010Iv_X\u0016%\u000fJu\u0001\u0015\n$\u0017Oe\u0000P\t:I\u0012Zb.ji\u0010XoN+\u001bRo\u0001\u000e\u000e~\u001d^j\u0001\u0001Vg\u0015Rl\u0001\u0011\\x\u0011\\nF\u0018\\]\u0011Ijn\u0012Xi\u0010XZB\u000ejo\u001b4\u0010Iv_X\u0016%\u0012\\tNLJ\u007f\u0016\u0013a@\u000f\u0016r\u0015Q-E\u0003AzWMp@\u0012\\x\fTg\\MJi\u0010XoN1V\u007f\n^g\u0006\u0000PnA\u0011\u0003\b\fXz[MAg\u0014\"-SgW\u0012\\i\fXf\u000f\u0007Kx\u0017O\"\\\u0007Kc\u0019QkU\u000bWmXeOcX\u00194\u0010Iv_X\u0016%\u0019McL\n\\$\u0017Oe\u0000\u001aTfW[gN\u0016Lx\u001dN-K\u000bJk\u0014QmXO]e\u001bI{_\u0007\u0014n\u001d^n'\u001bRo\u0001\u000e\u000e~\u001d^j\u0001\u0001Vg\u0015Rl\u0001\u001aTf<XdJ\u0010we\u001cXGW\u0012Xd\u000bTmA,6RfJBT\u007f\u000bI\"M\u0007\u0019o\u0011IjJ\u0010\u0019kXymL\u0017To\u0016I\"@\u0010\u0019k\u0016\u001dGC\u0007To\u0016I\u000f\f\\pH\u0007MD\u0019Pg\\\u0012Xi\u001d\u0007\u001dQgB\u0007W~\u000f\nRm['Uo\u0015Xl[,Xg\u001d\u0005\u0000PnA\u0011\u0005-iD\u0002Z!-ScM\u000e\\*\fR\"_\u0003Ky\u001d\u001dvG\u000bJ* pN\u000f\u0011Mx\u0011Se\u0015B\u001d-SkB\u0012Vx\fXf\u000f\fXg\u001dNrN\u0001\\*\bOgI\u000bA*_\u00126Rv\u000f\u0003W* pN\u000f1Zb\u001dPc\u0001"
         .length();
      char var1 = '$';
      int var7 = -1;

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

         while (true) {
            String var8 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     q = var5;
                     String[] var9 = q;
                     W3C_XML_SCHEMA = q[35];
                     XERCES_ATTR_SYMBOL_TABLE = var9[64];
                     TEXT_XML = var9[51];
                     XERCES_DISALLOW_DOCTYPE = var9[4];
                     XML_VERSION = var9[9];
                     XERCES_DEFER_NODE_EXPANSION = var9[10];
                     JAXP_SCHEMA_SOURCE = var9[49];
                     JAXP_SCHEMA_LANGUAGE = var9[26];
                     a = Logger.getLogger(XmlUtil.class.getName());
                     b = ConfigFactory.getBooleanProperty(q[48], false);
                     Init.init();
                     c = new s();
                     d = new v();
                     e = new w();
                     f = new x();
                     g = new y();
                     h = new z();
                     i = new aa();
                     j = new ab();
                     k = new ak(a(DocumentBuilderFactory.newInstance(), true));
                     l = new ak(a(DocumentBuilderFactory.newInstance(), false));
                     m = new af();
                     n = new ae();
                     p = b;
                     return;
                  }

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

                  var2 = "D\u001d\"\u000b\fBqM\u00197\u0018^\bpC\u001b1TN\u00002\u0003\u0019$\u0014F\b,X\u00003\b\u0019\u00040X\f$\u0015W\u0001q_\u0010;\u0019Y\u0001sX\b4\u0017S\u0004B\b;\u001e";
                  var4 = "D\u001d\"\u000b\fBqM\u00197\u0018^\bpC\u001b1TN\u00002\u0003\u0019$\u0014F\b,X\u00003\b\u0019\u00040X\f$\u0015W\u0001q_\u0010;\u0019Y\u0001sX\b4\u0017S\u0004B\b;\u001e"
                     .length();
                  var1 = '6';
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String b(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 -> 14;
            case 2 -> 49;
            case 3 -> 28;
            case 4 -> 81;
            case 5 -> 10;
            default -> 57;
         });
      }

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

   public static class BadSchemaException extends Exception {
      static final long serialVersionUID = -4042285571694509602L;

      public BadSchemaException(String var1) {
         super(var1);
      }

      public BadSchemaException(Throwable var1) {
         super(var1.getMessage(), var1);
      }
   }
}
