package com.l7tech.server.policy.assertion.xmlsec;

import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.policy.assertion.credential.LoginCredentials;
import com.l7tech.policy.assertion.xmlsec.RequireSaml;
import com.l7tech.policy.assertion.xmlsec.RequireWssSaml;
import com.l7tech.security.saml.SamlConstants;
import com.l7tech.security.token.SignedElement;
import com.l7tech.security.token.SigningSecurityToken;
import com.l7tech.security.token.X509SecurityToken;
import com.l7tech.security.token.X509SigningSecurityToken;
import com.l7tech.security.xml.processor.ProcessorResult;
import com.l7tech.security.xml.processor.WssTimestamp;
import com.l7tech.server.policy.variable.ExpandVariables;
import com.l7tech.server.util.WSSecurityProcessorUtils;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.InvalidDocumentFormatException;
import com.l7tech.util.Pair;
import com.l7tech.xml.soap.SoapUtil;
import java.io.IOException;
import java.security.cert.X509Certificate;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;
import java.util.logging.Logger;
import org.w3c.dom.Element;
import x0Assertion.oasisNamesTcSAML1.AssertionType;
import x0Assertion.oasisNamesTcSAML1.AttributeStatementType;
import x0Assertion.oasisNamesTcSAML1.AuthenticationStatementType;
import x0Assertion.oasisNamesTcSAML1.AuthorizationDecisionStatementType;
import x0Assertion.oasisNamesTcSAML1.NameIdentifierType;
import x0Assertion.oasisNamesTcSAML1.SubjectConfirmationType;
import x0Assertion.oasisNamesTcSAML1.SubjectStatementAbstractType;
import x0Assertion.oasisNamesTcSAML1.SubjectType;
import x0Assertion.oasisNamesTcSAML2.AuthnStatementType;
import x0Assertion.oasisNamesTcSAML2.AuthzDecisionStatementType;
import x0Assertion.oasisNamesTcSAML2.ConditionsType;

public class SamlAssertionValidate {
   protected static final TimeZone UTC_TIME_ZONE;
   protected final Logger logger = Logger.getLogger(this.getClass().getName());
   protected Collection errorCollector = new ArrayList();
   protected final RequireSaml requestSaml;
   private Map<Class, SamlStatementValidate> a = new HashMap<>();
   private final boolean b;
   private static final String[] c;

   public SamlAssertionValidate(RequireSaml var1) {
      this.requestSaml = var1;
      if (var1.getAuthenticationStatement() != null) {
         this.a.put(AuthenticationStatementType.class, new l(var1));
         this.a.put(AuthnStatementType.class, new i(var1));
      }

      if (var1.getAuthorizationStatement() != null) {
         this.a.put(AuthorizationDecisionStatementType.class, new m(var1));
         this.a.put(AuthzDecisionStatementType.class, new j(var1));
      }

      if (var1.getAttributeStatement() != null) {
         this.a.put(AttributeStatementType.class, new k(var1));
         this.a.put(x0Assertion.oasisNamesTcSAML2.AttributeStatementType.class, new h(var1));
      }

      this.b = var1 instanceof RequireWssSaml;
   }

   public void validate(
      LoginCredentials var1,
      ProcessorResult var2,
      Collection<SamlAssertionValidate.Error> var3,
      Collection<Pair<String, String[]>> var4,
      Collection<String> var5,
      Map<String, Object> var6,
      Audit var7
   ) {
      this.validate(var1, var2, var3, var4, var5, var6, var7, true);
   }

   public void validate(
      LoginCredentials param1,
      ProcessorResult param2,
      Collection<SamlAssertionValidate.Error> param3,
      Collection<Pair<String, String[]>> param4,
      Collection<String> param5,
      Map<String, Object> param6,
      Audit param7,
      boolean param8
   ) {
      // $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 2
      // 001: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getSecurityNS ()Ljava/lang/String; 1
      // 006: astore 9
      // 008: aconst_null
      // 009: aload 9
      // 00b: if_acmpne 03c
      // 00e: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 011: dup
      // 012: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 015: astore 33
      // 017: aload 33
      // 019: bipush 22
      // 01b: aaload
      // 01c: aconst_null
      // 01d: bipush 0
      // 01e: anewarray 180
      // 021: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 024: astore 10
      // 026: aload 3
      // 027: aload 10
      // 029: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 02e: pop
      // 02f: aload 0
      // 030: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 033: aload 10
      // 035: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 038: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 03b: return
      // 03c: aload 0
      // 03d: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.requestSaml Lcom/l7tech/policy/assertion/xmlsec/RequireSaml;
      // 040: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getVersion ()Ljava/lang/Integer;
      // 043: ifnull 05b
      // 046: aload 0
      // 047: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.requestSaml Lcom/l7tech/policy/assertion/xmlsec/RequireSaml;
      // 04a: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getVersion ()Ljava/lang/Integer;
      // 04d: invokevirtual java/lang/Integer.intValue ()I
      // 050: bipush 2
      // 051: if_icmpeq 063
      // 054: goto 05b
      // 057: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 05a: athrow
      // 05b: bipush 1
      // 05c: goto 064
      // 05f: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 062: athrow
      // 063: bipush 0
      // 064: istore 10
      // 066: aload 0
      // 067: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.requestSaml Lcom/l7tech/policy/assertion/xmlsec/RequireSaml;
      // 06a: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getVersion ()Ljava/lang/Integer;
      // 06d: ifnull 08d
      // 070: aload 0
      // 071: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.requestSaml Lcom/l7tech/policy/assertion/xmlsec/RequireSaml;
      // 074: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getVersion ()Ljava/lang/Integer;
      // 077: invokevirtual java/lang/Integer.intValue ()I
      // 07a: bipush 1
      // 07b: if_icmpeq 08d
      // 07e: goto 085
      // 081: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 084: athrow
      // 085: bipush 1
      // 086: goto 08e
      // 089: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 08c: athrow
      // 08d: bipush 0
      // 08e: istore 11
      // 090: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.UTC_TIME_ZONE Ljava/util/TimeZone;
      // 093: invokestatic java/util/Calendar.getInstance (Ljava/util/TimeZone;)Ljava/util/Calendar;
      // 096: astore 12
      // 098: aconst_null
      // 099: astore 13
      // 09b: aload 2
      // 09c: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getXmlSecurityTokens ()[Lcom/l7tech/security/token/XmlSecurityToken; 1
      // 0a1: astore 14
      // 0a3: aload 14
      // 0a5: astore 15
      // 0a7: aload 15
      // 0a9: arraylength
      // 0aa: istore 16
      // 0ac: bipush 0
      // 0ad: istore 17
      // 0af: iload 17
      // 0b1: iload 16
      // 0b3: if_icmpge 367
      // 0b6: aload 15
      // 0b8: iload 17
      // 0ba: aaload
      // 0bb: astore 18
      // 0bd: aload 18
      // 0bf: invokeinterface com/l7tech/security/token/XmlSecurityToken.getType ()Lcom/l7tech/security/token/SecurityTokenType; 1
      // 0c4: getstatic com/l7tech/security/token/SecurityTokenType.SAML_ASSERTION Lcom/l7tech/security/token/SecurityTokenType;
      // 0c7: if_acmpne 0d6
      // 0ca: iload 10
      // 0cc: ifne 0f6
      // 0cf: goto 0d6
      // 0d2: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0d5: athrow
      // 0d6: aload 18
      // 0d8: invokeinterface com/l7tech/security/token/XmlSecurityToken.getType ()Lcom/l7tech/security/token/SecurityTokenType; 1
      // 0dd: getstatic com/l7tech/security/token/SecurityTokenType.SAML2_ASSERTION Lcom/l7tech/security/token/SecurityTokenType;
      // 0e0: if_acmpne 361
      // 0e3: goto 0ea
      // 0e6: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e9: athrow
      // 0ea: iload 11
      // 0ec: ifeq 361
      // 0ef: goto 0f6
      // 0f2: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f5: athrow
      // 0f6: aload 18
      // 0f8: checkcast com/l7tech/xml/saml/SamlAssertion
      // 0fb: astore 13
      // 0fd: aload 13
      // 0ff: invokevirtual com/l7tech/xml/saml/SamlAssertion.getXmlBeansAssertionType ()Lorg/apache/xmlbeans/XmlObject;
      // 102: astore 19
      // 104: bipush 0
      // 105: istore 20
      // 107: aload 19
      // 109: instanceof x0Assertion/oasisNamesTcSAML1/AssertionType
      // 10c: ifeq 208
      // 10f: aload 19
      // 111: checkcast x0Assertion/oasisNamesTcSAML1/AssertionType
      // 114: astore 21
      // 116: new java/util/ArrayList
      // 119: dup
      // 11a: invokespecial java/util/ArrayList.<init> ()V
      // 11d: astore 22
      // 11f: aload 22
      // 121: aload 21
      // 123: invokeinterface x0Assertion/oasisNamesTcSAML1/AssertionType.getAuthenticationStatementArray ()[Lx0Assertion/oasisNamesTcSAML1/AuthenticationStatementType; 1
      // 128: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 12b: invokeinterface java/util/Collection.addAll (Ljava/util/Collection;)Z 2
      // 130: pop
      // 131: aload 22
      // 133: aload 21
      // 135: invokeinterface x0Assertion/oasisNamesTcSAML1/AssertionType.getAuthorizationDecisionStatementArray ()[Lx0Assertion/oasisNamesTcSAML1/AuthorizationDecisionStatementType; 1
      // 13a: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 13d: invokeinterface java/util/Collection.addAll (Ljava/util/Collection;)Z 2
      // 142: pop
      // 143: aload 22
      // 145: aload 21
      // 147: invokeinterface x0Assertion/oasisNamesTcSAML1/AssertionType.getAttributeStatementArray ()[Lx0Assertion/oasisNamesTcSAML1/AttributeStatementType; 1
      // 14c: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 14f: invokeinterface java/util/Collection.addAll (Ljava/util/Collection;)Z 2
      // 154: pop
      // 155: aload 22
      // 157: aload 22
      // 159: invokeinterface java/util/Collection.size ()I 1
      // 15e: anewarray 136
      // 161: invokeinterface java/util/Collection.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // 166: checkcast [Lx0Assertion/oasisNamesTcSAML1/StatementAbstractType;
      // 169: astore 23
      // 16b: aload 23
      // 16d: astore 24
      // 16f: aload 24
      // 171: arraylength
      // 172: istore 25
      // 174: bipush 0
      // 175: istore 26
      // 177: iload 26
      // 179: iload 25
      // 17b: if_icmpge 205
      // 17e: aload 24
      // 180: iload 26
      // 182: aaload
      // 183: astore 27
      // 185: aload 0
      // 186: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a Ljava/util/Map;
      // 189: invokeinterface java/util/Map.keySet ()Ljava/util/Set; 1
      // 18e: astore 28
      // 190: aload 28
      // 192: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 197: astore 29
      // 199: aload 29
      // 19b: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 1a0: ifeq 1ff
      // 1a3: aload 29
      // 1a5: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 1aa: astore 30
      // 1ac: aload 30
      // 1ae: checkcast java/lang/Class
      // 1b1: astore 31
      // 1b3: aload 31
      // 1b5: aload 27
      // 1b7: invokeinterface x0Assertion/oasisNamesTcSAML1/StatementAbstractType.getClass ()Ljava/lang/Class; 1
      // 1bc: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 1bf: ifeq 1fc
      // 1c2: bipush 1
      // 1c3: istore 20
      // 1c5: aload 0
      // 1c6: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a Ljava/util/Map;
      // 1c9: aload 31
      // 1cb: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 1d0: checkcast com/l7tech/server/policy/assertion/xmlsec/SamlStatementValidate
      // 1d3: astore 32
      // 1d5: aload 0
      // 1d6: aload 27
      // 1d8: checkcast x0Assertion/oasisNamesTcSAML1/SubjectStatementAbstractType
      // 1db: aload 3
      // 1dc: aload 6
      // 1de: aload 7
      // 1e0: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Lx0Assertion/oasisNamesTcSAML1/SubjectStatementAbstractType;Ljava/util/Collection;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;)V
      // 1e3: aload 0
      // 1e4: aload 21
      // 1e6: aload 3
      // 1e7: aload 6
      // 1e9: aload 7
      // 1eb: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Lx0Assertion/oasisNamesTcSAML1/AssertionType;Ljava/util/Collection;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;)V
      // 1ee: aload 32
      // 1f0: aload 27
      // 1f2: aload 3
      // 1f3: aload 4
      // 1f5: aload 6
      // 1f7: aload 7
      // 1f9: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlStatementValidate.validate (Lorg/apache/xmlbeans/XmlObject;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;)V
      // 1fc: goto 199
      // 1ff: iinc 26 1
      // 202: goto 177
      // 205: goto 32e
      // 208: aload 19
      // 20a: instanceof x0Assertion/oasisNamesTcSAML2/AssertionType
      // 20d: ifeq 32e
      // 210: aload 19
      // 212: checkcast x0Assertion/oasisNamesTcSAML2/AssertionType
      // 215: astore 21
      // 217: aload 0
      // 218: aload 21
      // 21a: invokeinterface x0Assertion/oasisNamesTcSAML2/AssertionType.getConditions ()Lx0Assertion/oasisNamesTcSAML2/ConditionsType; 1
      // 21f: aload 12
      // 221: aload 3
      // 222: aload 6
      // 224: aload 7
      // 226: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Lx0Assertion/oasisNamesTcSAML2/ConditionsType;Ljava/util/Calendar;Ljava/util/Collection;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;)V
      // 229: aload 0
      // 22a: aload 21
      // 22c: invokeinterface x0Assertion/oasisNamesTcSAML2/AssertionType.getSubject ()Lx0Assertion/oasisNamesTcSAML2/SubjectType; 1
      // 231: aload 12
      // 233: aload 5
      // 235: aload 3
      // 236: aload 6
      // 238: aload 7
      // 23a: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Lx0Assertion/oasisNamesTcSAML2/SubjectType;Ljava/util/Calendar;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;)V
      // 23d: new java/util/ArrayList
      // 240: dup
      // 241: invokespecial java/util/ArrayList.<init> ()V
      // 244: astore 22
      // 246: aload 22
      // 248: aload 21
      // 24a: invokeinterface x0Assertion/oasisNamesTcSAML2/AssertionType.getAuthnStatementArray ()[Lx0Assertion/oasisNamesTcSAML2/AuthnStatementType; 1
      // 24f: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 252: invokeinterface java/util/Collection.addAll (Ljava/util/Collection;)Z 2
      // 257: pop
      // 258: aload 22
      // 25a: aload 21
      // 25c: invokeinterface x0Assertion/oasisNamesTcSAML2/AssertionType.getAuthzDecisionStatementArray ()[Lx0Assertion/oasisNamesTcSAML2/AuthzDecisionStatementType; 1
      // 261: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 264: invokeinterface java/util/Collection.addAll (Ljava/util/Collection;)Z 2
      // 269: pop
      // 26a: aload 22
      // 26c: aload 21
      // 26e: invokeinterface x0Assertion/oasisNamesTcSAML2/AssertionType.getAttributeStatementArray ()[Lx0Assertion/oasisNamesTcSAML2/AttributeStatementType; 1
      // 273: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 276: invokeinterface java/util/Collection.addAll (Ljava/util/Collection;)Z 2
      // 27b: pop
      // 27c: aload 22
      // 27e: aload 22
      // 280: invokeinterface java/util/Collection.size ()I 1
      // 285: anewarray 49
      // 288: invokeinterface java/util/Collection.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // 28d: checkcast [Lorg/apache/xmlbeans/XmlObject;
      // 290: astore 23
      // 292: aload 23
      // 294: astore 24
      // 296: aload 24
      // 298: arraylength
      // 299: istore 25
      // 29b: bipush 0
      // 29c: istore 26
      // 29e: iload 26
      // 2a0: iload 25
      // 2a2: if_icmpge 313
      // 2a5: aload 24
      // 2a7: iload 26
      // 2a9: aaload
      // 2aa: astore 27
      // 2ac: aload 0
      // 2ad: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a Ljava/util/Map;
      // 2b0: invokeinterface java/util/Map.keySet ()Ljava/util/Set; 1
      // 2b5: astore 28
      // 2b7: aload 28
      // 2b9: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 2be: astore 29
      // 2c0: aload 29
      // 2c2: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 2c7: ifeq 30d
      // 2ca: aload 29
      // 2cc: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 2d1: astore 30
      // 2d3: aload 30
      // 2d5: checkcast java/lang/Class
      // 2d8: astore 31
      // 2da: aload 31
      // 2dc: aload 27
      // 2de: invokeinterface org/apache/xmlbeans/XmlObject.getClass ()Ljava/lang/Class; 1
      // 2e3: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 2e6: ifeq 30a
      // 2e9: bipush 1
      // 2ea: istore 20
      // 2ec: aload 0
      // 2ed: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a Ljava/util/Map;
      // 2f0: aload 31
      // 2f2: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 2f7: checkcast com/l7tech/server/policy/assertion/xmlsec/SamlStatementValidate
      // 2fa: astore 32
      // 2fc: aload 32
      // 2fe: aload 27
      // 300: aload 3
      // 301: aload 4
      // 303: aload 6
      // 305: aload 7
      // 307: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlStatementValidate.validate (Lorg/apache/xmlbeans/XmlObject;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;)V
      // 30a: goto 2c0
      // 30d: iinc 26 1
      // 310: goto 29e
      // 313: iload 20
      // 315: ifne 32e
      // 318: aload 0
      // 319: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a Ljava/util/Map;
      // 31c: invokeinterface java/util/Map.isEmpty ()Z 1
      // 321: ifeq 32e
      // 324: goto 32b
      // 327: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 32a: athrow
      // 32b: bipush 1
      // 32c: istore 20
      // 32e: iload 20
      // 330: ifne 361
      // 333: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 336: dup
      // 337: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 33a: astore 33
      // 33c: aload 33
      // 33e: bipush 21
      // 340: aaload
      // 341: aconst_null
      // 342: bipush 0
      // 343: anewarray 180
      // 346: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 349: astore 21
      // 34b: aload 3
      // 34c: aload 21
      // 34e: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 353: pop
      // 354: aload 0
      // 355: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 358: aload 21
      // 35a: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 35d: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 360: return
      // 361: iinc 17 1
      // 364: goto 0af
      // 367: aload 13
      // 369: ifnonnull 3bd
      // 36c: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 36f: dup
      // 370: aload 0
      // 371: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.b Z
      // 374: ifeq 38b
      // 377: goto 37e
      // 37a: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37d: athrow
      // 37e: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 381: bipush 31
      // 383: aaload
      // 384: goto 38d
      // 387: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 38a: athrow
      // 38b: ldc ""
      // 38d: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 390: astore 33
      // 392: aload 33
      // 394: bipush 24
      // 396: aaload
      // 397: swap
      // 398: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 39d: aconst_null
      // 39e: bipush 0
      // 39f: anewarray 180
      // 3a2: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 3a5: astore 15
      // 3a7: aload 3
      // 3a8: aload 15
      // 3aa: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 3af: pop
      // 3b0: aload 0
      // 3b1: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 3b4: aload 15
      // 3b6: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 3b9: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 3bc: return
      // 3bd: aload 13
      // 3bf: invokevirtual com/l7tech/xml/saml/SamlAssertion.asElement ()Lorg/w3c/dom/Element;
      // 3c2: astore 15
      // 3c4: aload 0
      // 3c5: aload 2
      // 3c6: aload 15
      // 3c8: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getSigningTokens (Lorg/w3c/dom/Element;)[Lcom/l7tech/security/token/SigningSecurityToken; 2
      // 3cd: aload 15
      // 3cf: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a ([Lcom/l7tech/security/token/SigningSecurityToken;Lorg/w3c/dom/Element;)Lcom/l7tech/util/Pair;
      // 3d2: astore 16
      // 3d4: aload 16
      // 3d6: getfield com/l7tech/util/Pair.left Ljava/lang/Object;
      // 3d9: checkcast com/l7tech/security/token/SigningSecurityToken
      // 3dc: astore 17
      // 3de: aload 16
      // 3e0: getfield com/l7tech/util/Pair.right Ljava/lang/Object;
      // 3e3: checkcast [Lcom/l7tech/security/token/SigningSecurityToken;
      // 3e6: astore 18
      // 3e8: aload 0
      // 3e9: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.b Z
      // 3ec: ifne 409
      // 3ef: aload 0
      // 3f0: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.b Z
      // 3f3: ifne 4a8
      // 3f6: goto 3fd
      // 3f9: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3fc: athrow
      // 3fd: iload 8
      // 3ff: ifeq 4a8
      // 402: goto 409
      // 405: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 408: athrow
      // 409: aload 17
      // 40b: ifnonnull 473
      // 40e: goto 415
      // 411: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 414: athrow
      // 415: aload 18
      // 417: arraylength
      // 418: ifne 473
      // 41b: goto 422
      // 41e: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 421: athrow
      // 422: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 425: dup
      // 426: aload 0
      // 427: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.b Z
      // 42a: ifeq 441
      // 42d: goto 434
      // 430: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 433: athrow
      // 434: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 437: bipush 33
      // 439: aaload
      // 43a: goto 443
      // 43d: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 440: athrow
      // 441: ldc ""
      // 443: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 446: astore 33
      // 448: aload 33
      // 44a: bipush 28
      // 44c: aaload
      // 44d: swap
      // 44e: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 453: aconst_null
      // 454: bipush 0
      // 455: anewarray 180
      // 458: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 45b: astore 19
      // 45d: aload 3
      // 45e: aload 19
      // 460: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 465: pop
      // 466: aload 0
      // 467: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 46a: aload 19
      // 46c: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 46f: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 472: return
      // 473: aload 18
      // 475: arraylength
      // 476: bipush 1
      // 477: if_icmple 4a8
      // 47a: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 47d: dup
      // 47e: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 481: astore 33
      // 483: aload 33
      // 485: bipush 11
      // 487: aaload
      // 488: aconst_null
      // 489: bipush 0
      // 48a: anewarray 180
      // 48d: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 490: astore 19
      // 492: aload 3
      // 493: aload 19
      // 495: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 49a: pop
      // 49b: aload 0
      // 49c: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 49f: aload 19
      // 4a1: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 4a4: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 4a7: return
      // 4a8: aload 13
      // 4aa: invokevirtual com/l7tech/xml/saml/SamlAssertion.isSenderVouches ()Z
      // 4ad: ifeq 58a
      // 4b0: aload 13
      // 4b2: invokevirtual com/l7tech/xml/saml/SamlAssertion.getIssuerCertificate ()Ljava/security/cert/X509Certificate;
      // 4b5: ifnonnull 58a
      // 4b8: goto 4bf
      // 4bb: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4be: athrow
      // 4bf: aload 18
      // 4c1: arraylength
      // 4c2: ifle 4f5
      // 4c5: goto 4cc
      // 4c8: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4cb: athrow
      // 4cc: aload 18
      // 4ce: bipush 0
      // 4cf: aaload
      // 4d0: instanceof com/l7tech/security/token/X509SigningSecurityToken
      // 4d3: ifeq 4f5
      // 4d6: goto 4dd
      // 4d9: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4dc: athrow
      // 4dd: aload 18
      // 4df: bipush 0
      // 4e0: aaload
      // 4e1: checkcast com/l7tech/security/token/X509SigningSecurityToken
      // 4e4: astore 19
      // 4e6: aload 13
      // 4e8: aload 19
      // 4ea: invokeinterface com/l7tech/security/token/X509SigningSecurityToken.getMessageSigningCertificate ()Ljava/security/cert/X509Certificate; 1
      // 4ef: invokevirtual com/l7tech/xml/saml/SamlAssertion.setIssuerCertificate (Ljava/security/cert/X509Certificate;)V
      // 4f2: goto 58a
      // 4f5: aload 18
      // 4f7: arraylength
      // 4f8: ifle 53b
      // 4fb: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 4fe: dup
      // 4ff: aload 18
      // 501: bipush 0
      // 502: aaload
      // 503: invokeinterface com/l7tech/security/token/SigningSecurityToken.getClass ()Ljava/lang/Class; 1
      // 508: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 50b: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 50e: astore 33
      // 510: aload 33
      // 512: bipush 13
      // 514: aaload
      // 515: swap
      // 516: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 51b: aconst_null
      // 51c: bipush 0
      // 51d: anewarray 180
      // 520: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 523: astore 19
      // 525: aload 3
      // 526: aload 19
      // 528: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 52d: pop
      // 52e: aload 0
      // 52f: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 532: aload 19
      // 534: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 537: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 53a: return
      // 53b: aload 0
      // 53c: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.b Z
      // 53f: ifne 55c
      // 542: aload 0
      // 543: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.b Z
      // 546: ifne 58a
      // 549: goto 550
      // 54c: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 54f: athrow
      // 550: iload 8
      // 552: ifeq 58a
      // 555: goto 55c
      // 558: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 55b: athrow
      // 55c: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 55f: dup
      // 560: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 563: astore 33
      // 565: aload 33
      // 567: bipush 46
      // 569: aaload
      // 56a: aconst_null
      // 56b: bipush 0
      // 56c: anewarray 180
      // 56f: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 572: astore 19
      // 574: aload 3
      // 575: aload 19
      // 577: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 57c: pop
      // 57d: aload 0
      // 57e: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 581: aload 19
      // 583: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 586: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 589: return
      // 58a: aload 13
      // 58c: invokevirtual com/l7tech/xml/saml/SamlAssertion.isHolderOfKey ()Z
      // 58f: ifeq 62b
      // 592: aload 0
      // 593: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.b Z
      // 596: ifeq 62b
      // 599: goto 5a0
      // 59c: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 59f: athrow
      // 5a0: aload 0
      // 5a1: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.requestSaml Lcom/l7tech/policy/assertion/xmlsec/RequireSaml;
      // 5a4: checkcast com/l7tech/policy/assertion/xmlsec/RequireWssSaml
      // 5a7: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireWssSaml.isRequireHolderOfKeyWithMessageSignature ()Z
      // 5aa: ifeq 62b
      // 5ad: goto 5b4
      // 5b0: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5b3: athrow
      // 5b4: aload 13
      // 5b6: invokevirtual com/l7tech/xml/saml/SamlAssertion.getSubjectCertificate ()Ljava/security/cert/X509Certificate;
      // 5b9: astore 19
      // 5bb: aload 19
      // 5bd: ifnonnull 5ee
      // 5c0: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 5c3: dup
      // 5c4: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 5c7: astore 33
      // 5c9: aload 33
      // 5cb: bipush 9
      // 5cd: aaload
      // 5ce: aconst_null
      // 5cf: bipush 0
      // 5d0: anewarray 180
      // 5d3: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 5d6: astore 20
      // 5d8: aload 3
      // 5d9: aload 20
      // 5db: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 5e0: pop
      // 5e1: aload 0
      // 5e2: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 5e5: aload 20
      // 5e7: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 5ea: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 5ed: return
      // 5ee: aload 0
      // 5ef: aload 13
      // 5f1: invokevirtual com/l7tech/xml/saml/SamlAssertion.getSignedElements ()[Lcom/l7tech/security/token/SignedElement;
      // 5f4: aload 2
      // 5f5: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a ([Lcom/l7tech/security/token/SignedElement;Lcom/l7tech/security/xml/processor/ProcessorResult;)Z
      // 5f8: ifne 628
      // 5fb: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 5fe: dup
      // 5ff: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 602: astore 33
      // 604: aload 33
      // 606: bipush 38
      // 608: aaload
      // 609: aconst_null
      // 60a: bipush 0
      // 60b: anewarray 180
      // 60e: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 611: astore 20
      // 613: aload 3
      // 614: aload 20
      // 616: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 61b: pop
      // 61c: aload 0
      // 61d: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 620: aload 20
      // 622: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 625: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 628: goto 779
      // 62b: aload 13
      // 62d: invokevirtual com/l7tech/xml/saml/SamlAssertion.isSenderVouches ()Z
      // 630: ifeq 69b
      // 633: aload 0
      // 634: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.b Z
      // 637: ifeq 69b
      // 63a: goto 641
      // 63d: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 640: athrow
      // 641: aload 0
      // 642: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.requestSaml Lcom/l7tech/policy/assertion/xmlsec/RequireSaml;
      // 645: checkcast com/l7tech/policy/assertion/xmlsec/RequireWssSaml
      // 648: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireWssSaml.isRequireSenderVouchesWithMessageSignature ()Z
      // 64b: ifeq 69b
      // 64e: goto 655
      // 651: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 654: athrow
      // 655: aload 0
      // 656: aload 2
      // 657: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Lcom/l7tech/security/xml/processor/ProcessorResult;)Ljava/security/cert/X509Certificate;
      // 65a: astore 19
      // 65c: aload 19
      // 65e: ifnonnull 691
      // 661: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 664: dup
      // 665: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 668: astore 33
      // 66a: aload 33
      // 66c: bipush 26
      // 66e: aaload
      // 66f: aconst_null
      // 670: bipush 0
      // 671: anewarray 180
      // 674: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 677: astore 20
      // 679: aload 3
      // 67a: aload 20
      // 67c: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 681: pop
      // 682: aload 0
      // 683: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 686: aload 20
      // 688: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 68b: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 68e: goto 698
      // 691: aload 13
      // 693: aload 19
      // 695: invokevirtual com/l7tech/xml/saml/SamlAssertion.setAttestingEntity (Ljava/security/cert/X509Certificate;)V
      // 698: goto 779
      // 69b: aload 1
      // 69c: ifnonnull 6a7
      // 69f: aconst_null
      // 6a0: goto 6ab
      // 6a3: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6a6: athrow
      // 6a7: aload 1
      // 6a8: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getClientCert ()Ljava/security/cert/X509Certificate;
      // 6ab: astore 19
      // 6ad: aload 13
      // 6af: invokevirtual com/l7tech/xml/saml/SamlAssertion.isHolderOfKey ()Z
      // 6b2: ifeq 730
      // 6b5: aload 13
      // 6b7: invokevirtual com/l7tech/xml/saml/SamlAssertion.getSubjectCertificate ()Ljava/security/cert/X509Certificate;
      // 6ba: astore 20
      // 6bc: aload 20
      // 6be: ifnonnull 6ee
      // 6c1: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 6c4: dup
      // 6c5: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 6c8: astore 33
      // 6ca: aload 33
      // 6cc: bipush 4
      // 6cd: aaload
      // 6ce: aconst_null
      // 6cf: bipush 0
      // 6d0: anewarray 180
      // 6d3: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 6d6: astore 21
      // 6d8: aload 3
      // 6d9: aload 21
      // 6db: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 6e0: pop
      // 6e1: aload 0
      // 6e2: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 6e5: aload 21
      // 6e7: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 6ea: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 6ed: return
      // 6ee: aload 20
      // 6f0: aload 19
      // 6f2: invokevirtual java/security/cert/X509Certificate.equals (Ljava/lang/Object;)Z
      // 6f5: ifne 726
      // 6f8: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 6fb: dup
      // 6fc: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 6ff: astore 33
      // 701: aload 33
      // 703: bipush 17
      // 705: aaload
      // 706: aconst_null
      // 707: bipush 0
      // 708: anewarray 180
      // 70b: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 70e: astore 21
      // 710: aload 3
      // 711: aload 21
      // 713: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 718: pop
      // 719: aload 0
      // 71a: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 71d: aload 21
      // 71f: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 722: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 725: return
      // 726: aload 13
      // 728: aload 20
      // 72a: invokevirtual com/l7tech/xml/saml/SamlAssertion.setAttestingEntity (Ljava/security/cert/X509Certificate;)V
      // 72d: goto 779
      // 730: aload 13
      // 732: invokevirtual com/l7tech/xml/saml/SamlAssertion.isSenderVouches ()Z
      // 735: ifeq 779
      // 738: aload 19
      // 73a: ifnonnull 772
      // 73d: goto 744
      // 740: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 743: athrow
      // 744: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 747: dup
      // 748: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 74b: astore 33
      // 74d: aload 33
      // 74f: bipush 39
      // 751: aaload
      // 752: aconst_null
      // 753: bipush 0
      // 754: anewarray 180
      // 757: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 75a: astore 20
      // 75c: aload 3
      // 75d: aload 20
      // 75f: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 764: pop
      // 765: aload 0
      // 766: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 769: aload 20
      // 76b: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 76e: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 771: return
      // 772: aload 13
      // 774: aload 19
      // 776: invokevirtual com/l7tech/xml/saml/SamlAssertion.setAttestingEntity (Ljava/security/cert/X509Certificate;)V
      // 779: goto 7bb
      // 77c: astore 13
      // 77e: aload 3
      // 77f: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 782: dup
      // 783: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 786: astore 33
      // 788: aload 33
      // 78a: bipush 25
      // 78c: aaload
      // 78d: aload 13
      // 78f: bipush 0
      // 790: anewarray 180
      // 793: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 796: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 79b: pop
      // 79c: goto 7bb
      // 79f: astore 13
      // 7a1: aload 3
      // 7a2: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 7a5: dup
      // 7a6: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 7a9: bipush 6
      // 7ab: aaload
      // 7ac: aload 13
      // 7ae: bipush 0
      // 7af: anewarray 180
      // 7b2: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 7b5: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 7ba: pop
      // 7bb: return
      // try (324 -> 330): 331 com/l7tech/util/InvalidDocumentFormatException
      // try (97 -> 106): 107 com/l7tech/util/InvalidDocumentFormatException
      // try (92 -> 101): 102 com/l7tech/util/InvalidDocumentFormatException
      // try (88 -> 94): 95 com/l7tech/util/InvalidDocumentFormatException
      // try (51 -> 62): 62 com/l7tech/util/InvalidDocumentFormatException
      // try (47 -> 57): 58 com/l7tech/util/InvalidDocumentFormatException
      // try (32 -> 43): 43 com/l7tech/util/InvalidDocumentFormatException
      // try (28 -> 38): 39 com/l7tech/util/InvalidDocumentFormatException
      // try (69 -> 358): 831 com/l7tech/util/InvalidDocumentFormatException
      // try (363 -> 375): 375 com/l7tech/util/InvalidDocumentFormatException
      // try (361 -> 368): 369 com/l7tech/util/InvalidDocumentFormatException
      // try (359 -> 399): 831 com/l7tech/util/InvalidDocumentFormatException
      // try (443 -> 455): 455 com/l7tech/util/InvalidDocumentFormatException
      // try (437 -> 448): 449 com/l7tech/util/InvalidDocumentFormatException
      // try (432 -> 440): 441 com/l7tech/util/InvalidDocumentFormatException
      // try (427 -> 434): 435 com/l7tech/util/InvalidDocumentFormatException
      // try (421 -> 429): 430 com/l7tech/util/InvalidDocumentFormatException
      // try (418 -> 424): 425 com/l7tech/util/InvalidDocumentFormatException
      // try (400 -> 479): 831 com/l7tech/util/InvalidDocumentFormatException
      // try (480 -> 505): 831 com/l7tech/util/InvalidDocumentFormatException
      // try (515 -> 526): 527 com/l7tech/util/InvalidDocumentFormatException
      // try (509 -> 518): 519 com/l7tech/util/InvalidDocumentFormatException
      // try (506 -> 512): 513 com/l7tech/util/InvalidDocumentFormatException
      // try (506 -> 570): 831 com/l7tech/util/InvalidDocumentFormatException
      // try (574 -> 582): 583 com/l7tech/util/InvalidDocumentFormatException
      // try (571 -> 577): 578 com/l7tech/util/InvalidDocumentFormatException
      // try (571 -> 606): 831 com/l7tech/util/InvalidDocumentFormatException
      // try (610 -> 621): 622 com/l7tech/util/InvalidDocumentFormatException
      // try (607 -> 613): 614 com/l7tech/util/InvalidDocumentFormatException
      // try (607 -> 650): 831 com/l7tech/util/InvalidDocumentFormatException
      // try (728 -> 732): 732 com/l7tech/util/InvalidDocumentFormatException
      // try (682 -> 693): 694 com/l7tech/util/InvalidDocumentFormatException
      // try (679 -> 685): 686 com/l7tech/util/InvalidDocumentFormatException
      // try (651 -> 766): 831 com/l7tech/util/InvalidDocumentFormatException
      // try (767 -> 792): 831 com/l7tech/util/InvalidDocumentFormatException
      // try (797 -> 802): 803 com/l7tech/util/InvalidDocumentFormatException
      // try (793 -> 826): 831 com/l7tech/util/InvalidDocumentFormatException
      // try (827 -> 830): 831 com/l7tech/util/InvalidDocumentFormatException
      // try (69 -> 358): 847 java/io/IOException
      // try (359 -> 399): 847 java/io/IOException
      // try (400 -> 479): 847 java/io/IOException
      // try (480 -> 505): 847 java/io/IOException
      // try (506 -> 570): 847 java/io/IOException
      // try (571 -> 606): 847 java/io/IOException
      // try (607 -> 650): 847 java/io/IOException
      // try (651 -> 766): 847 java/io/IOException
      // try (767 -> 792): 847 java/io/IOException
      // try (793 -> 826): 847 java/io/IOException
      // try (827 -> 830): 847 java/io/IOException
   }

   private Pair<SigningSecurityToken, SigningSecurityToken[]> a(SigningSecurityToken[] var1, Element var2) {
      SigningSecurityToken var3 = null;
      ArrayList var4 = new ArrayList();

      for (SigningSecurityToken var8 : var1) {
         SignedElement[] var9 = var8.getSignedElements();
         if (var3 == null && var8.asElement() == var2 && var9.length == 1 && var9[0].asElement() == var2) {
            var3 = var8;
         } else {
            var4.add(var8);
         }
      }

      return new Pair(var3, var4.toArray(new SigningSecurityToken[var4.size()]));
   }

   private boolean a(SignedElement[] param1, ProcessorResult param2) throws InvalidDocumentFormatException {
      // $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 3
      // 02: bipush 0
      // 03: istore 4
      // 05: bipush 0
      // 06: istore 5
      // 08: aload 2
      // 09: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getTimestamp ()Lcom/l7tech/security/xml/processor/WssTimestamp; 1
      // 0e: astore 6
      // 10: aload 6
      // 12: ifnull 23
      // 15: aload 6
      // 17: invokeinterface com/l7tech/security/xml/processor/WssTimestamp.asElement ()Lorg/w3c/dom/Element; 1
      // 1c: goto 24
      // 1f: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 22: athrow
      // 23: aconst_null
      // 24: astore 7
      // 26: aload 1
      // 27: astore 8
      // 29: aload 8
      // 2b: arraylength
      // 2c: istore 9
      // 2e: bipush 0
      // 2f: istore 10
      // 31: iload 10
      // 33: iload 9
      // 35: if_icmpge a0
      // 38: aload 8
      // 3a: iload 10
      // 3c: aaload
      // 3d: astore 11
      // 3f: aload 11
      // 41: invokeinterface com/l7tech/security/token/SignedElement.asElement ()Lorg/w3c/dom/Element; 1
      // 46: astore 12
      // 48: aload 12
      // 4a: invokestatic com/l7tech/xml/soap/SoapUtil.isBody (Lorg/w3c/dom/Element;)Z
      // 4d: ifeq 55
      // 50: bipush 1
      // 51: istore 3
      // 52: goto a0
      // 55: aload 7
      // 57: ifnull 6e
      // 5a: aload 7
      // 5c: aload 12
      // 5e: if_acmpne 6e
      // 61: goto 68
      // 64: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 67: athrow
      // 68: bipush 1
      // 69: istore 4
      // 6b: goto 9a
      // 6e: getstatic com/l7tech/xml/soap/SoapUtil.BODY_EL_NAME Ljava/lang/String;
      // 71: aload 12
      // 73: invokeinterface org/w3c/dom/Element.getLocalName ()Ljava/lang/String; 1
      // 78: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 7b: ifeq 9a
      // 7e: getstatic com/l7tech/xml/soap/SoapUtil.ENVELOPE_URIS Ljava/util/List;
      // 81: aload 12
      // 83: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 88: invokeinterface java/util/List.contains (Ljava/lang/Object;)Z 2
      // 8d: ifeq 9a
      // 90: goto 97
      // 93: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 96: athrow
      // 97: bipush 1
      // 98: istore 5
      // 9a: iinc 10 1
      // 9d: goto 31
      // a0: iload 3
      // a1: ifne bc
      // a4: iload 4
      // a6: ifeq c4
      // a9: goto b0
      // ac: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // af: athrow
      // b0: iload 5
      // b2: ifne c4
      // b5: goto bc
      // b8: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // bb: athrow
      // bc: bipush 1
      // bd: goto c5
      // c0: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // c3: athrow
      // c4: bipush 0
      // c5: ireturn
      // try (9 -> 14): 14 com/l7tech/util/InvalidDocumentFormatException
      // try (41 -> 46): 47 com/l7tech/util/InvalidDocumentFormatException
      // try (52 -> 62): 63 com/l7tech/util/InvalidDocumentFormatException
      // try (69 -> 73): 74 com/l7tech/util/InvalidDocumentFormatException
      // try (71 -> 78): 79 com/l7tech/util/InvalidDocumentFormatException
      // try (76 -> 83): 83 com/l7tech/util/InvalidDocumentFormatException
   }

   private X509Certificate a(ProcessorResult var1) throws InvalidDocumentFormatException {
      WssTimestamp var2 = var1.getTimestamp();
      SignedElement[] var3 = WSSecurityProcessorUtils.filterSignedElementsByIdentity(null, var1, null, false, null, null, null);

      for (SignedElement var7 : var3) {
         if (SoapUtil.isBody(var7.asElement())) {
            SigningSecurityToken var8 = var7.getSigningSecurityToken();

            try {
               if (!(var8 instanceof X509SigningSecurityToken)) {
                  throw new InvalidDocumentFormatException(c[16]);
               }
            } catch (InvalidDocumentFormatException var13) {
               throw a(var13);
            }

            return ((X509SecurityToken)var8).getCertificate();
         }
      }

      if (var2 != null) {
         X509SecurityToken var16 = null;
         Element var17 = var2.asElement();
         SignedElement[] var18 = var3;
         int var19 = var18.length;
         int var20 = 0;

         while (true) {
            label69: {
               if (var20 < var19) {
                  SignedElement var9 = var18[var20];
                  Element var10 = var9.asElement();
                  if (var17 == var10) {
                     SigningSecurityToken var11 = var9.getSigningSecurityToken();

                     try {
                        if (!(var11 instanceof X509SigningSecurityToken)) {
                           throw new InvalidDocumentFormatException(c[42]);
                        }
                     } catch (InvalidDocumentFormatException var15) {
                        throw a(var15);
                     }

                     var16 = (X509SecurityToken)var11;
                     break label69;
                  }

                  try {
                     if (!SoapUtil.BODY_EL_NAME.equals(var10.getLocalName()) || !SoapUtil.ENVELOPE_URIS.contains(var10.getNamespaceURI())) {
                        break label69;
                     }
                  } catch (InvalidDocumentFormatException var14) {
                     throw a(var14);
                  }

                  var16 = null;
               }

               try {
                  if (var16 != null) {
                     return var16.getCertificate();
                  }
                  break;
               } catch (InvalidDocumentFormatException var12) {
                  throw a(var12);
               }
            }

            var20++;
         }
      }

      return null;
   }

   private void a(AssertionType param1, Collection<SamlAssertionValidate.Error> param2, Map<String, Object> param3, Audit param4) throws IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 1
      // 001: invokeinterface x0Assertion/oasisNamesTcSAML1/AssertionType.getConditions ()Lx0Assertion/oasisNamesTcSAML1/ConditionsType; 1
      // 006: astore 5
      // 008: aload 0
      // 009: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.requestSaml Lcom/l7tech/policy/assertion/xmlsec/RequireSaml;
      // 00c: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.isCheckAssertionValidity ()Z
      // 00f: ifne 026
      // 012: aload 0
      // 013: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 016: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 019: bipush 40
      // 01b: aaload
      // 01c: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 01f: goto 1a9
      // 022: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 025: athrow
      // 026: aload 5
      // 028: ifnonnull 066
      // 02b: aload 0
      // 02c: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 02f: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 032: astore 16
      // 034: aload 16
      // 036: bipush 47
      // 038: aaload
      // 039: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 03c: new java/io/StringWriter
      // 03f: dup
      // 040: invokespecial java/io/StringWriter.<init> ()V
      // 043: astore 6
      // 045: aload 1
      // 046: aload 6
      // 048: invokeinterface x0Assertion/oasisNamesTcSAML1/AssertionType.save (Ljava/io/Writer;)V 2
      // 04d: aload 2
      // 04e: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 051: dup
      // 052: aload 16
      // 054: bipush 20
      // 056: aaload
      // 057: aconst_null
      // 058: bipush 0
      // 059: anewarray 180
      // 05c: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 05f: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 064: pop
      // 065: return
      // 066: aload 5
      // 068: invokeinterface x0Assertion/oasisNamesTcSAML1/ConditionsType.getNotBefore ()Ljava/util/Calendar; 1
      // 06d: astore 6
      // 06f: aload 5
      // 071: invokeinterface x0Assertion/oasisNamesTcSAML1/ConditionsType.getNotOnOrAfter ()Ljava/util/Calendar; 1
      // 076: astore 7
      // 078: aload 6
      // 07a: ifnull 089
      // 07d: aload 7
      // 07f: ifnonnull 0c3
      // 082: goto 089
      // 085: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 088: athrow
      // 089: aload 0
      // 08a: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 08d: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 090: astore 16
      // 092: aload 16
      // 094: bipush 3
      // 095: aaload
      // 096: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 099: new java/io/StringWriter
      // 09c: dup
      // 09d: invokespecial java/io/StringWriter.<init> ()V
      // 0a0: astore 8
      // 0a2: aload 1
      // 0a3: aload 8
      // 0a5: invokeinterface x0Assertion/oasisNamesTcSAML1/AssertionType.save (Ljava/io/Writer;)V 2
      // 0aa: aload 2
      // 0ab: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 0ae: dup
      // 0af: aload 16
      // 0b1: bipush 12
      // 0b3: aaload
      // 0b4: aconst_null
      // 0b5: bipush 0
      // 0b6: anewarray 180
      // 0b9: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 0bc: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 0c1: pop
      // 0c2: return
      // 0c3: aload 6
      // 0c5: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.b (Ljava/util/Calendar;)Ljava/util/Calendar;
      // 0c8: astore 6
      // 0ca: aload 7
      // 0cc: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/util/Calendar;)Ljava/util/Calendar;
      // 0cf: astore 7
      // 0d1: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.UTC_TIME_ZONE Ljava/util/TimeZone;
      // 0d4: invokestatic java/util/Calendar.getInstance (Ljava/util/TimeZone;)Ljava/util/Calendar;
      // 0d7: astore 8
      // 0d9: aload 8
      // 0db: aload 6
      // 0dd: invokevirtual java/util/Calendar.before (Ljava/lang/Object;)Z
      // 0e0: ifeq 139
      // 0e3: aload 0
      // 0e4: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 0e7: aload 8
      // 0e9: invokevirtual java/util/Calendar.getTime ()Ljava/util/Date;
      // 0ec: invokevirtual java/util/Date.toString ()Ljava/lang/String;
      // 0ef: aload 6
      // 0f1: invokevirtual java/util/Calendar.getTime ()Ljava/util/Date;
      // 0f4: invokevirtual java/util/Date.toString ()Ljava/lang/String;
      // 0f7: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 0fa: bipush 14
      // 0fc: aaload
      // 0fd: dup_x2
      // 0fe: pop
      // 0ff: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 102: bipush 8
      // 104: aaload
      // 105: swap
      // 106: invokedynamic makeConcatWithConstants (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" ]
      // 10b: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 10e: aload 2
      // 10f: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 112: dup
      // 113: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 116: bipush 48
      // 118: aaload
      // 119: aconst_null
      // 11a: bipush 1
      // 11b: anewarray 180
      // 11e: dup
      // 11f: bipush 0
      // 120: aload 6
      // 122: invokevirtual java/util/Calendar.getTime ()Ljava/util/Date;
      // 125: invokevirtual java/util/Date.toString ()Ljava/lang/String;
      // 128: aastore
      // 129: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 12c: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 131: pop
      // 132: goto 139
      // 135: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 138: athrow
      // 139: aload 8
      // 13b: aload 7
      // 13d: invokevirtual java/util/Calendar.equals (Ljava/lang/Object;)Z
      // 140: ifne 154
      // 143: aload 8
      // 145: aload 7
      // 147: invokevirtual java/util/Calendar.after (Ljava/lang/Object;)Z
      // 14a: ifeq 1a9
      // 14d: goto 154
      // 150: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 153: athrow
      // 154: aload 0
      // 155: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 158: aload 8
      // 15a: invokevirtual java/util/Calendar.getTime ()Ljava/util/Date;
      // 15d: invokevirtual java/util/Date.toString ()Ljava/lang/String;
      // 160: aload 7
      // 162: invokevirtual java/util/Calendar.getTime ()Ljava/util/Date;
      // 165: invokevirtual java/util/Date.toString ()Ljava/lang/String;
      // 168: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 16b: bipush 0
      // 16c: aaload
      // 16d: dup_x2
      // 16e: pop
      // 16f: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 172: bipush 49
      // 174: aaload
      // 175: swap
      // 176: invokedynamic makeConcatWithConstants (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" ]
      // 17b: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 17e: aload 2
      // 17f: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 182: dup
      // 183: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 186: bipush 23
      // 188: aaload
      // 189: aconst_null
      // 18a: bipush 1
      // 18b: anewarray 180
      // 18e: dup
      // 18f: bipush 0
      // 190: aload 7
      // 192: invokevirtual java/util/Calendar.getTime ()Ljava/util/Date;
      // 195: invokevirtual java/util/Date.toString ()Ljava/lang/String;
      // 198: aastore
      // 199: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 19c: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 1a1: pop
      // 1a2: goto 1a9
      // 1a5: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a8: athrow
      // 1a9: aload 0
      // 1aa: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.requestSaml Lcom/l7tech/policy/assertion/xmlsec/RequireSaml;
      // 1ad: invokevirtual com/l7tech/policy/assertion/xmlsec/RequireSaml.getAudienceRestriction ()Ljava/lang/String;
      // 1b0: invokestatic com/l7tech/util/Option.optional (Ljava/lang/Object;)Lcom/l7tech/util/Option;
      // 1b3: astore 6
      // 1b5: aload 6
      // 1b7: invokevirtual com/l7tech/util/Option.isSome ()Z
      // 1ba: ifne 1c7
      // 1bd: invokestatic java/util/Collections.emptyList ()Ljava/util/List;
      // 1c0: goto 1e0
      // 1c3: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1c6: athrow
      // 1c7: aload 6
      // 1c9: invokevirtual com/l7tech/util/Option.some ()Ljava/lang/Object;
      // 1cc: checkcast java/lang/String
      // 1cf: aload 3
      // 1d0: aload 4
      // 1d2: getstatic com/l7tech/util/TextUtils.URI_STRING_SPLIT_PATTERN Ljava/util/regex/Pattern;
      // 1d5: new com/l7tech/server/policy/assertion/xmlsec/g
      // 1d8: dup
      // 1d9: aload 0
      // 1da: invokespecial com/l7tech/server/policy/assertion/xmlsec/g.<init> (Lcom/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate;)V
      // 1dd: invokestatic com/l7tech/server/util/ContextVariableUtils.getAllResolvedStrings (Ljava/lang/String;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;Ljava/util/regex/Pattern;Lcom/l7tech/util/Functions$UnaryVoid;)Ljava/util/List;
      // 1e0: astore 7
      // 1e2: aload 7
      // 1e4: invokeinterface java/util/List.isEmpty ()Z 1
      // 1e9: ifeq 1fd
      // 1ec: aload 0
      // 1ed: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 1f0: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 1f3: bipush 5
      // 1f4: aaload
      // 1f5: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 1f8: return
      // 1f9: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1fc: athrow
      // 1fd: aload 5
      // 1ff: ifnonnull 241
      // 202: new java/io/StringWriter
      // 205: dup
      // 206: invokespecial java/io/StringWriter.<init> ()V
      // 209: astore 8
      // 20b: aload 1
      // 20c: aload 8
      // 20e: invokeinterface x0Assertion/oasisNamesTcSAML1/AssertionType.save (Ljava/io/Writer;)V 2
      // 213: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 216: dup
      // 217: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 21a: astore 16
      // 21c: aload 16
      // 21e: bipush 19
      // 220: aaload
      // 221: aconst_null
      // 222: bipush 0
      // 223: anewarray 180
      // 226: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 229: astore 9
      // 22b: aload 2
      // 22c: aload 9
      // 22e: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 233: pop
      // 234: aload 0
      // 235: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 238: aload 9
      // 23a: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 23d: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 240: return
      // 241: aload 5
      // 243: invokeinterface x0Assertion/oasisNamesTcSAML1/ConditionsType.getAudienceRestrictionConditionArray ()[Lx0Assertion/oasisNamesTcSAML1/AudienceRestrictionConditionType; 1
      // 248: astore 8
      // 24a: aload 8
      // 24c: arraylength
      // 24d: ifgt 283
      // 250: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 253: dup
      // 254: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 257: astore 16
      // 259: aload 16
      // 25b: bipush 36
      // 25d: aaload
      // 25e: aconst_null
      // 25f: bipush 1
      // 260: anewarray 180
      // 263: dup
      // 264: bipush 0
      // 265: aload 7
      // 267: aastore
      // 268: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 26b: astore 9
      // 26d: aload 0
      // 26e: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 271: aload 9
      // 273: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 276: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 279: aload 2
      // 27a: aload 9
      // 27c: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 281: pop
      // 282: return
      // 283: bipush 0
      // 284: istore 9
      // 286: new java/lang/StringBuilder
      // 289: dup
      // 28a: invokespecial java/lang/StringBuilder.<init> ()V
      // 28d: astore 10
      // 28f: aload 8
      // 291: astore 11
      // 293: aload 11
      // 295: arraylength
      // 296: istore 12
      // 298: bipush 0
      // 299: istore 13
      // 29b: iload 13
      // 29d: iload 12
      // 29f: if_icmpge 30e
      // 2a2: aload 11
      // 2a4: iload 13
      // 2a6: aaload
      // 2a7: astore 14
      // 2a9: aload 0
      // 2aa: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 2ad: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 2b0: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 2b3: ifeq 2d5
      // 2b6: aload 0
      // 2b7: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 2ba: aload 7
      // 2bc: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 2bf: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 2c2: bipush 37
      // 2c4: aaload
      // 2c5: swap
      // 2c6: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 2cb: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 2ce: goto 2d5
      // 2d1: invokestatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d4: athrow
      // 2d5: aload 14
      // 2d7: invokeinterface x0Assertion/oasisNamesTcSAML1/AudienceRestrictionConditionType.getAudienceArray ()[Ljava/lang/String; 1
      // 2dc: astore 15
      // 2de: aload 15
      // 2e0: aload 7
      // 2e2: aload 7
      // 2e4: invokeinterface java/util/List.size ()I 1
      // 2e9: anewarray 484
      // 2ec: invokeinterface java/util/List.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // 2f1: invokestatic com/l7tech/util/ArrayUtils.containsAny ([Ljava/lang/Object;[Ljava/lang/Object;)Z
      // 2f4: ifeq 2fd
      // 2f7: bipush 1
      // 2f8: istore 9
      // 2fa: goto 30e
      // 2fd: aload 10
      // 2ff: aload 15
      // 301: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 304: invokevirtual java/lang/StringBuilder.append (Ljava/lang/Object;)Ljava/lang/StringBuilder;
      // 307: pop
      // 308: iinc 13 1
      // 30b: goto 29b
      // 30e: iload 9
      // 310: ifne 346
      // 313: new com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error
      // 316: dup
      // 317: getstatic com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.c [Ljava/lang/String;
      // 31a: bipush 35
      // 31c: aaload
      // 31d: aconst_null
      // 31e: bipush 2
      // 31f: anewarray 180
      // 322: dup
      // 323: bipush 0
      // 324: aload 10
      // 326: aastore
      // 327: dup
      // 328: bipush 1
      // 329: aload 7
      // 32b: aastore
      // 32c: invokespecial com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.<init> (Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
      // 32f: astore 11
      // 331: aload 0
      // 332: getfield com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate.logger Ljava/util/logging/Logger;
      // 335: aload 11
      // 337: invokevirtual com/l7tech/server/policy/assertion/xmlsec/SamlAssertionValidate$Error.toString ()Ljava/lang/String;
      // 33a: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 33d: aload 2
      // 33e: aload 11
      // 340: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 345: pop
      // 346: return
      // try (3 -> 14): 14 java/io/IOException
      // try (52 -> 56): 57 java/io/IOException
      // try (96 -> 137): 138 java/io/IOException
      // try (140 -> 148): 149 java/io/IOException
      // try (144 -> 188): 189 java/io/IOException
      // try (196 -> 201): 201 java/io/IOException
      // try (215 -> 225): 225 java/io/IOException
      // try (310 -> 325): 326 java/io/IOException
   }

   static Calendar a(Calendar var0) {
      String[] var4 = c;
      long var1 = ConfigFactory.getTimeUnitProperty(var4[2], 0L);
      if (var1 != 0L) {
         var0 = (Calendar)var0.clone();
         var0.setTimeInMillis(var0.getTimeInMillis() + var1);
      } else {
         int var3 = ConfigFactory.getIntProperty(c[10], 0);
         if (var3 != 0) {
            var0 = (Calendar)var0.clone();
            var0.add(12, var3);
         }
      }

      return var0;
   }

   static Calendar b(Calendar var0) {
      String[] var4 = c;
      long var1 = ConfigFactory.getTimeUnitProperty(var4[32], 0L);
      if (var1 != 0L) {
         var0 = (Calendar)var0.clone();
         var0.setTimeInMillis(var0.getTimeInMillis() - var1);
      } else {
         int var3 = ConfigFactory.getIntProperty(c[43], 0);
         if (var3 != 0) {
            var0 = (Calendar)var0.clone();
            var0.add(12, -var3);
         }
      }

      return var0;
   }

   private void a(SubjectStatementAbstractType var1, Collection<SamlAssertionValidate.Error> var2, Map<String, Object> var3, Audit var4) {
      SubjectType var5 = var1.getSubject();
      if (var5 == null) {
         String[] var38 = c;
         var2.add(new SamlAssertionValidate.Error(var38[27], null));
      } else {
         String var6 = this.requestSaml.getNameQualifier();
         String var7 = var6 == null ? var6 : ExpandVariables.process(var6, var3, var4);
         NameIdentifierType var8 = var5.getNameIdentifier();
         if (var7 != null && !"".equals(var7) && var8 != null) {
            String var9 = var8.getNameQualifier();
            if (!var7.equals(var9)) {
               String[] var37 = c;
               SamlAssertionValidate.Error var22 = new SamlAssertionValidate.Error(var37[1], null, var9, var7);
               var2.add(var22);
               this.logger.finer(var22.toString());
               return;
            }

            String[] var20 = c;
            this.logger.fine(var20[7] + var7);
         }

         String[] var21 = this.a(this.requestSaml.getNameFormats());
         boolean var10 = false;
         String var11 = var8 != null && var8.getFormat() != null ? var8.getFormat() : SamlConstants.NAMEIDENTIFIER_UNSPECIFIED;
         if (var8 != null) {
            for (String var15 : var21) {
               if (var15.equals(var11)) {
                  var10 = true;
                  String[] var32 = c;
                  this.logger.fine(var32[18] + var15);
                  break;
               }

               if (var15.equals(SamlConstants.NAMEIDENTIFIER_UNSPECIFIED)) {
                  var10 = true;
                  String[] var31 = c;
                  this.logger.fine(var31[41] + var15);
                  break;
               }
            }
         }

         if (!var10) {
            String[] var36 = c;
            SamlAssertionValidate.Error var24 = new SamlAssertionValidate.Error(var36[45], null, var11, Arrays.asList(var21));
            var2.add(var24);
            this.logger.finer(var24.toString());
         } else {
            String[] var23 = this.requestSaml.getSubjectConfirmations();
            SubjectConfirmationType var25 = var5.getSubjectConfirmation();
            List var26 = null;
            if (var25 != null) {
               String[] var27 = var25.getConfirmationMethodArray();
               if (var27 != null) {
                  var26 = Arrays.asList(var27);
               }
            }

            if (var26 == null) {
               var26 = Collections.EMPTY_LIST;
            }

            if (var26.isEmpty() && this.requestSaml.isNoSubjectConfirmation()) {
               String[] var35 = c;
               this.logger.fine(var35[44]);
            } else {
               boolean var28 = false;

               for (String var19 : var23) {
                  if (var26.contains(var19)) {
                     var28 = true;
                     String[] var33 = c;
                     this.logger.fine(var33[29] + var19);
                     break;
                  }
               }

               if (!var28) {
                  ArrayList var29 = new ArrayList<>(Arrays.asList(var23));
                  if (this.requestSaml.isNoSubjectConfirmation()) {
                     String[] var34 = c;
                     var29.add(var34[15]);
                  }

                  SamlAssertionValidate.Error var30 = new SamlAssertionValidate.Error(c[30], null, var26, var29);
                  var2.add(var30);
                  this.logger.finer(var30.toString());
               }
            }
         }
      }
   }

   private void a(ConditionsType var1, Calendar var2, Collection<SamlAssertionValidate.Error> var3, Map<String, Object> var4, Audit var5) {
      e.a(this.requestSaml, var1, var2, var3, var4, var5);
   }

   private void a(
      x0Assertion.oasisNamesTcSAML2.SubjectType var1,
      Calendar var2,
      Collection<String> var3,
      Collection<SamlAssertionValidate.Error> var4,
      Map<String, Object> var5,
      Audit var6
   ) {
      e.a(this.requestSaml, var1, var2, var3, var4, var5, var6);
   }

   private String[] a(String[] var1) {
      return a(var1, SamlConstants.ALL_NAMEIDENTIFIERS);
   }

   static String[] a(String[] var0, String[] var1) {
      LinkedHashSet var2 = new LinkedHashSet<>(Arrays.asList(var0));
      var2.retainAll(Arrays.asList(var1));
      return var2.toArray(new String[var2.size()]);
   }

   static {
      String[] var5 = new String[50];
      int var3 = 0;
      String var2 = "`*\u001f\u001ahq\u000fL+QYOj\u0012\u0003\n\u001f^NwFb#\u0005\u001bs\"F@-\u0014\u001dj%\u0000B,\u001d\u001be)FM*\u0006^;9m$\u001c\u001b!T\u0013B)\u0018\u0018h`\u0014Pe\u0015\u0011dvFM*\u0005^ld\u0012@-Q\u000es`\u0015F+\u0005\u001be*\u0014F4\u0004\u0017s`\u0002\u0003>A\u0003.~W^\u001fP$\u001c\u0012Wd\nJ!\u0010\ndD\u0000W \u00031gc\u0015F15\u000bsd\u0012J*\u001fMm*Q(`i\u000fG,\u0005\u0007!U\u0003Q,\u001e\u001a!f\tM!\u0018\nhj\bPe\u0019\u001fw`FA \u0014\u0010!u\u0014F6\u0014\u0010u`\u0002\u000fe\u0012\u001fok\tWe\u0007\u001fml\u0002B1\u0014^Bj\bG,\u0005\u0017nk\u0015;p0\u0013\u0014df\u0012\u0003\u0006\u0014\ful\u0000J&\u0010\nd%\u000fPe\u0003\u001bpp\u000fQ \u0015^gj\u0014\u0003\r\u001e\u0012e`\u0014\u000e\n\u0017SJ`\u001f\u0003\u0004\u0002\rdw\u0012J*\u001f!m*Q\u001fta\u000fF+\u0012\u001b!w\u0003P1\u0003\u0017bq\u000fL+Q\fdt\u0013F6\u0005\u001be\u001f`$\u001fYu%\u0016Q*\u0012\u001brvFM*\u001f^RJ'se\u001c\u001brv\u0007D \u0002\u0017n$\u0005\u001di`\u0002\u0003\u000b\u0010\u0013d%7V$\u001d\u0017gl\u0003Qe\f\u0003\u000b\u001e\n!G\u0003E*\u0003\u001b;;p0\u0013\u0014df\u0012\u0003\u0006\u0014\ful\u0000J&\u0010\nd%\u000fPe\u0003\u001bpp\u000fQ \u0015^gj\u0014\u0003\r\u001e\u0012e`\u0014\u000e\n\u0017SJ`\u001f\u0003\u0004\u0002\rdw\u0012J*\u001f\u001eP$\u001c\u0012Wd\nJ!\u0010\ndD\u0000W \u00031gc\u0015F1<\u0017op\u0012F69p\u0004<2!d\u0015P \u0003\nhj\b\u00032\u0010\r!v\u000fD+\u0014\u001a!g\u001f\u0003(\u001e\fd%\u0012K$\u001f^nk\u0003\u00036\u0014\u001dtw\u000fW<Q\nnn\u0003MMm*Q(`i\u000fG,\u0005\u0007!U\u0003Q,\u001e\u001a!f\tM!\u0018\nhj\bPe\u0019\u001fw`FA \u0014\u0010!u\u0014F6\u0014\u0010u`\u0002\u000fe\u0012\u001fok\tWe\u0007\u001fml\u0002B1\u0014^Bj\bG,\u0005\u0017nk\u0015/b6\u0002\u001bsq\u000fL+Q\t`vFP,\u0016\u0010daFA<Q\u0010nkK{pAG!V\u0003@0\u0003\u0017u|2L.\u0014\u0010!*`*\u001f\u001ahq\u000fL+QYOj\u0012\u0003\u0007\u0014\u0018nw\u0003\u0004e\u0012\u0016df\r\u0003#\u0010\u0017m`\u0002\u000fe\u001f\u0011v%\\\u0004m*\u001f\u001b=n \u0002\r`b\u0003\u0003'\u001e\u001ax%\u0011B6Q\rhb\bF!]^cp\u0012\u0003+\u001e\n!r\u000fW-Q\u001fo%>\rpAG!V\u0003@0\u0003\u0017u|Fw*\u001a\u001bo>p\u0016=^B`\u0014W,\u0017\u0017bd\u0012Fe\u0010\u0010e%.L)\u0015\u001bs()Eh:\u001bx%5V'\u001b\u001bbqF` \u0003\nhc\u000f@$\u0005\u001b!h\u000fP(\u0010\nbm\u0014n$\u0005\u001di`\u0002\u0003\u000b\u0010\u0013d% L7\u001c\u001fu%8`$\u001fYu%\u0010B)\u0018\u001a`q\u0003\u0003&\u001e\u0010el\u0012J*\u001f\r-%\bLe2\u0011oa\u000fW,\u001e\u0010r%\u000eB3\u0014^c`\u0003Me\u0017\u0011tk\u0002<`$\u001fYu%\u0010B)\u0018\u001a`q\u0003\u0003&\u001e\u0010el\u0012J*\u001f\r-%\bLe2\u0011oa\u000fW,\u001e\u0010r%\u000eB3\u0014^c`\u0003Me\u0001\fdv\u0003M1\u0014\u001aGm*Q-@H*\u0003$\u0002\rdw\u0012J*\u001f^id\u0015\u0003'\u0014\u001bo%\u0016Q \u0002\u001boq\u0003Ge\u0005\u0016`qFN$\u0005\u001di`\u0015\u00036\u0001\u001bbl\u0000J \u0015^bj\bP1\u0003\u001fhk\u0012P\u0018m*Q-df\u0013Q,\u0005\u0007!M\u0003B!\u0014\f!c\tV+\u0015\"p\u0004<2!q\u000f@.\u0014\n!m\u0007Pe\u0014\u0006ql\u0014F!Q\u001fr%\tE\u007fQ\u00051x\u0017m*Q-@H*\u0003$\u0002\rdw\u0012J*\u001f^gj\u0013M!\u001f`$\u001fYu%\u0016Q*\u0012\u001brvFM*\u001f^RJ'se\u001c\u001brv\u0007D \u0002N`$\u001fYu%\u0010B)\u0018\u001a`q\u0003\u00035\u0003\u0011ncFL#Q\u000env\u0015F6\u0002\u0017nk]\u00031\u0019\u001b!V)b\u0015Q<na\u001f\u0003$\u001f\u001a!Q\u000fN \u0002\n`h\u0016\u0003$\u0003\u001b!k\tWe\u0002\u0017fk\u0003G\u001ap0\u0013\u0014df\u0012\u0003\u0016\u0005\u001fu`\u000bF+\u0005^S`\u0017V,\u0003\u001be\u001dv+\u0002\u0017fk\u0003Ge\"?LIFB6\u0002\u001bsq\u000fL+Q\u0018np\bG\u001dn$\u0005\u001di`\u0002\u0003\u0016\u0004\u001ck`\u0005We2\u0011oc\u000fQ(\u0010\nhj\b\u00039p0\u0013\u0014df\u0012\u0003\u0006\u001e\u0010gl\u0014N$\u0005\u0017nk\u0015\u0003(\u0018\rld\u0012@-Q\u000es`\u0015F+\u0005\u001be*\u0007@&\u0014\u000eu`\u0002\u0003>A\u0003.~W^\u0013\u0003,\u001f^r`\u0005V7\u0018\nx%.F$\u0015\u001bs P$\u001c\u0012Wd\nJ!\u0010\ndG\u0003E*\u0003\u001bNc\u0000P \u0005:tw\u0007W,\u001e\u0010\u0013\u0003,\u001f^r`\u0005V7\u0018\nx%.F$\u0015\u001bs\u0003v\u00112Bb0\u0015\u0017dk\u0005Fe#\u001brq\u0014J&\u0005\u0017nkF`-\u0014\u001dj% B,\u001d\u001be%\u0014F&\u0014\u0017w`\u0002\u0003>A\u0003!`\u001eS \u0012\ndaFL+\u0014^ncFXt\f]b0\u0015\u0017dk\u0005Fe#\u001brq\u0014J&\u0005\u0017nkF`-\u0014\u001dj% B,\u001d\u001be%NB6\u0002\u001bsq\u000fL+Q\u001an`\u0015\u0003+\u001e\n!v\u0016F&\u0018\u0018x%\u0007V!\u0018\u001bof\u0003\u00037\u0014\ruw\u000f@1\u0018\u0011o%\u0005L+\u0015\u0017ul\tMl8u$\u001d\u0017ed\u0012J+\u0016^`p\u0002J \u001f\u001dd%\u0014F6\u0005\fhf\u0012J*\u001f\r!d\u0001B,\u001f\ru%\u0014F6\u001e\u0012w`\u0002\u0003)\u0018\ru?Fx`$\u001fYu%\u0010B)\u0018\u001a`q\u0003\u00035\u0003\u0011ncFL#Q\u000env\u0015F6\u0002\u0017nk]\u00031\u0019\u001b!V)b\u0015Q<na\u001f\u0003$\u001f\u001a!Q\u000fN \u0002\n`h\u0016\u0003$\u0003\u001b!k\tWe\u0002\u0017fk\u0003Ge\u0006\u0017umFW-\u0014^Rp\u0004I \u0012\n!F\tM#\u0018\fld\u0012J*\u001f^B`\u0014W,\u0017\u0017bd\u0012FTp\u0016=^Bi\u000fF+\u0005^B`\u0014W,\u0017\u0017bd\u0012Fe\u0018\r!w\u0003R0\u0018\fdaFE*\u0003^R`\bG \u0003SWj\u0013@-\u0014\r!D\u0015P \u0003\nhj\b\u0003$\u001f\u001a!p\bP,\u0016\u0010daFN \u0002\r`b\u0003\u001fm*Q?rv\u0003Q1\u0018\u0011o%0B)\u0018\u001ahq\u001f\u00037\u0014\u000ft`\u0015W \u0015\u0014n$\u0005\u001di`\u0002\u0003\u000b\u0010\u0013d% L7\u001c\u001fu%Bn \u0002\r`b\u0003\u00031\u0018\u0013dv\u0012B(\u0001^vd\u0015\u00036\u0018\u0019o`\u0002\u000fe\u0013\u000bu%\bL1Q\thq\u000e\u0003$\u001f^Y+S\u0013|Q-df\u0013Q,\u0005\u0007!Q\tH \u001f\u001fP$\u001c\u0012Wd\nJ!\u0010\ndG\u0003E*\u0003\u001bNc\u0000P \u00053hk\u0013W \u0002#n$\u0005\u001di`\u0002\u0003\u0016\u0004\u001ck`\u0005We2\u0011oc\u000fQ(\u0010\nhj\b\u0003b?\u0011o`A5m$\u001c\u001b!C\tQ(\u0010\n!a\tF6Q\u0010nqFN$\u0005\u001di%\u0016Q \u0002\u001boq\u0003Gj\u0003\u001bpp\u000fQ \u0015^z5\u001b\f>@\u00032b6\u0002\u001bsq\u000fL+Q\t`vFM*\u0005^rl\u0001M \u0015^c|FB+Q&/0V\u001ae\"\u001bbp\u0014J1\b*nn\u0003M<`$\u001fYu%\u0010B)\u0018\u001a`q\u0003\u0003&\u001e\u0010el\u0012J*\u001f\r-%\bLe2\u0011oa\u000fW,\u001e\u0010r%\u000eB3\u0014^c`\u0003Me\u0001\fdv\u0003M1\u0014\u001a";
      int var4 = "`*\u001f\u001ahq\u000fL+QYOj\u0012\u0003\n\u001f^NwFb#\u0005\u001bs\"F@-\u0014\u001dj%\u0000B,\u001d\u001be)FM*\u0006^;9m$\u001c\u001b!T\u0013B)\u0018\u0018h`\u0014Pe\u0015\u0011dvFM*\u0005^ld\u0012@-Q\u000es`\u0015F+\u0005\u001be*\u0014F4\u0004\u0017s`\u0002\u0003>A\u0003.~W^\u001fP$\u001c\u0012Wd\nJ!\u0010\ndD\u0000W \u00031gc\u0015F15\u000bsd\u0012J*\u001fMm*Q(`i\u000fG,\u0005\u0007!U\u0003Q,\u001e\u001a!f\tM!\u0018\nhj\bPe\u0019\u001fw`FA \u0014\u0010!u\u0014F6\u0014\u0010u`\u0002\u000fe\u0012\u001fok\tWe\u0007\u001fml\u0002B1\u0014^Bj\bG,\u0005\u0017nk\u0015;p0\u0013\u0014df\u0012\u0003\u0006\u0014\ful\u0000J&\u0010\nd%\u000fPe\u0003\u001bpp\u000fQ \u0015^gj\u0014\u0003\r\u001e\u0012e`\u0014\u000e\n\u0017SJ`\u001f\u0003\u0004\u0002\rdw\u0012J*\u001f!m*Q\u001fta\u000fF+\u0012\u001b!w\u0003P1\u0003\u0017bq\u000fL+Q\fdt\u0013F6\u0005\u001be\u001f`$\u001fYu%\u0016Q*\u0012\u001brvFM*\u001f^RJ'se\u001c\u001brv\u0007D \u0002\u0017n$\u0005\u001di`\u0002\u0003\u000b\u0010\u0013d%7V$\u001d\u0017gl\u0003Qe\f\u0003\u000b\u001e\n!G\u0003E*\u0003\u001b;;p0\u0013\u0014df\u0012\u0003\u0006\u0014\ful\u0000J&\u0010\nd%\u000fPe\u0003\u001bpp\u000fQ \u0015^gj\u0014\u0003\r\u001e\u0012e`\u0014\u000e\n\u0017SJ`\u001f\u0003\u0004\u0002\rdw\u0012J*\u001f\u001eP$\u001c\u0012Wd\nJ!\u0010\ndD\u0000W \u00031gc\u0015F1<\u0017op\u0012F69p\u0004<2!d\u0015P \u0003\nhj\b\u00032\u0010\r!v\u000fD+\u0014\u001a!g\u001f\u0003(\u001e\fd%\u0012K$\u001f^nk\u0003\u00036\u0014\u001dtw\u000fW<Q\nnn\u0003MMm*Q(`i\u000fG,\u0005\u0007!U\u0003Q,\u001e\u001a!f\tM!\u0018\nhj\bPe\u0019\u001fw`FA \u0014\u0010!u\u0014F6\u0014\u0010u`\u0002\u000fe\u0012\u001fok\tWe\u0007\u001fml\u0002B1\u0014^Bj\bG,\u0005\u0017nk\u0015/b6\u0002\u001bsq\u000fL+Q\t`vFP,\u0016\u0010daFA<Q\u0010nkK{pAG!V\u0003@0\u0003\u0017u|2L.\u0014\u0010!*`*\u001f\u001ahq\u000fL+QYOj\u0012\u0003\u0007\u0014\u0018nw\u0003\u0004e\u0012\u0016df\r\u0003#\u0010\u0017m`\u0002\u000fe\u001f\u0011v%\\\u0004m*\u001f\u001b=n \u0002\r`b\u0003\u0003'\u001e\u001ax%\u0011B6Q\rhb\bF!]^cp\u0012\u0003+\u001e\n!r\u000fW-Q\u001fo%>\rpAG!V\u0003@0\u0003\u0017u|Fw*\u001a\u001bo>p\u0016=^B`\u0014W,\u0017\u0017bd\u0012Fe\u0010\u0010e%.L)\u0015\u001bs()Eh:\u001bx%5V'\u001b\u001bbqF` \u0003\nhc\u000f@$\u0005\u001b!h\u000fP(\u0010\nbm\u0014n$\u0005\u001di`\u0002\u0003\u000b\u0010\u0013d% L7\u001c\u001fu%8`$\u001fYu%\u0010B)\u0018\u001a`q\u0003\u0003&\u001e\u0010el\u0012J*\u001f\r-%\bLe2\u0011oa\u000fW,\u001e\u0010r%\u000eB3\u0014^c`\u0003Me\u0017\u0011tk\u0002<`$\u001fYu%\u0010B)\u0018\u001a`q\u0003\u0003&\u001e\u0010el\u0012J*\u001f\r-%\bLe2\u0011oa\u000fW,\u001e\u0010r%\u000eB3\u0014^c`\u0003Me\u0001\fdv\u0003M1\u0014\u001aGm*Q-@H*\u0003$\u0002\rdw\u0012J*\u001f^id\u0015\u0003'\u0014\u001bo%\u0016Q \u0002\u001boq\u0003Ge\u0005\u0016`qFN$\u0005\u001di`\u0015\u00036\u0001\u001bbl\u0000J \u0015^bj\bP1\u0003\u001fhk\u0012P\u0018m*Q-df\u0013Q,\u0005\u0007!M\u0003B!\u0014\f!c\tV+\u0015\"p\u0004<2!q\u000f@.\u0014\n!m\u0007Pe\u0014\u0006ql\u0014F!Q\u001fr%\tE\u007fQ\u00051x\u0017m*Q-@H*\u0003$\u0002\rdw\u0012J*\u001f^gj\u0013M!\u001f`$\u001fYu%\u0016Q*\u0012\u001brvFM*\u001f^RJ'se\u001c\u001brv\u0007D \u0002N`$\u001fYu%\u0010B)\u0018\u001a`q\u0003\u00035\u0003\u0011ncFL#Q\u000env\u0015F6\u0002\u0017nk]\u00031\u0019\u001b!V)b\u0015Q<na\u001f\u0003$\u001f\u001a!Q\u000fN \u0002\n`h\u0016\u0003$\u0003\u001b!k\tWe\u0002\u0017fk\u0003G\u001ap0\u0013\u0014df\u0012\u0003\u0016\u0005\u001fu`\u000bF+\u0005^S`\u0017V,\u0003\u001be\u001dv+\u0002\u0017fk\u0003Ge\"?LIFB6\u0002\u001bsq\u000fL+Q\u0018np\bG\u001dn$\u0005\u001di`\u0002\u0003\u0016\u0004\u001ck`\u0005We2\u0011oc\u000fQ(\u0010\nhj\b\u00039p0\u0013\u0014df\u0012\u0003\u0006\u001e\u0010gl\u0014N$\u0005\u0017nk\u0015\u0003(\u0018\rld\u0012@-Q\u000es`\u0015F+\u0005\u001be*\u0007@&\u0014\u000eu`\u0002\u0003>A\u0003.~W^\u0013\u0003,\u001f^r`\u0005V7\u0018\nx%.F$\u0015\u001bs P$\u001c\u0012Wd\nJ!\u0010\ndG\u0003E*\u0003\u001bNc\u0000P \u0005:tw\u0007W,\u001e\u0010\u0013\u0003,\u001f^r`\u0005V7\u0018\nx%.F$\u0015\u001bs\u0003v\u00112Bb0\u0015\u0017dk\u0005Fe#\u001brq\u0014J&\u0005\u0017nkF`-\u0014\u001dj% B,\u001d\u001be%\u0014F&\u0014\u0017w`\u0002\u0003>A\u0003!`\u001eS \u0012\ndaFL+\u0014^ncFXt\f]b0\u0015\u0017dk\u0005Fe#\u001brq\u0014J&\u0005\u0017nkF`-\u0014\u001dj% B,\u001d\u001be%NB6\u0002\u001bsq\u000fL+Q\u001an`\u0015\u0003+\u001e\n!v\u0016F&\u0018\u0018x%\u0007V!\u0018\u001bof\u0003\u00037\u0014\ruw\u000f@1\u0018\u0011o%\u0005L+\u0015\u0017ul\tMl8u$\u001d\u0017ed\u0012J+\u0016^`p\u0002J \u001f\u001dd%\u0014F6\u0005\fhf\u0012J*\u001f\r!d\u0001B,\u001f\ru%\u0014F6\u001e\u0012w`\u0002\u0003)\u0018\ru?Fx`$\u001fYu%\u0010B)\u0018\u001a`q\u0003\u00035\u0003\u0011ncFL#Q\u000env\u0015F6\u0002\u0017nk]\u00031\u0019\u001b!V)b\u0015Q<na\u001f\u0003$\u001f\u001a!Q\u000fN \u0002\n`h\u0016\u0003$\u0003\u001b!k\tWe\u0002\u0017fk\u0003Ge\u0006\u0017umFW-\u0014^Rp\u0004I \u0012\n!F\tM#\u0018\fld\u0012J*\u001f^B`\u0014W,\u0017\u0017bd\u0012FTp\u0016=^Bi\u000fF+\u0005^B`\u0014W,\u0017\u0017bd\u0012Fe\u0018\r!w\u0003R0\u0018\fdaFE*\u0003^R`\bG \u0003SWj\u0013@-\u0014\r!D\u0015P \u0003\nhj\b\u0003$\u001f\u001a!p\bP,\u0016\u0010daFN \u0002\r`b\u0003\u001fm*Q?rv\u0003Q1\u0018\u0011o%0B)\u0018\u001ahq\u001f\u00037\u0014\u000ft`\u0015W \u0015\u0014n$\u0005\u001di`\u0002\u0003\u000b\u0010\u0013d% L7\u001c\u001fu%Bn \u0002\r`b\u0003\u00031\u0018\u0013dv\u0012B(\u0001^vd\u0015\u00036\u0018\u0019o`\u0002\u000fe\u0013\u000bu%\bL1Q\thq\u000e\u0003$\u001f^Y+S\u0013|Q-df\u0013Q,\u0005\u0007!Q\tH \u001f\u001fP$\u001c\u0012Wd\nJ!\u0010\ndG\u0003E*\u0003\u001bNc\u0000P \u00053hk\u0013W \u0002#n$\u0005\u001di`\u0002\u0003\u0016\u0004\u001ck`\u0005We2\u0011oc\u000fQ(\u0010\nhj\b\u0003b?\u0011o`A5m$\u001c\u001b!C\tQ(\u0010\n!a\tF6Q\u0010nqFN$\u0005\u001di%\u0016Q \u0002\u001boq\u0003Gj\u0003\u001bpp\u000fQ \u0015^z5\u001b\f>@\u00032b6\u0002\u001bsq\u000fL+Q\t`vFM*\u0005^rl\u0001M \u0015^c|FB+Q&/0V\u001ae\"\u001bbp\u0014J1\b*nn\u0003M<`$\u001fYu%\u0010B)\u0018\u001a`q\u0003\u0003&\u001e\u0010el\u0012J*\u001f\r-%\bLe2\u0011oa\u000fW,\u001e\u0010r%\u000eB3\u0014^c`\u0003Me\u0001\fdv\u0003M1\u0014\u001a"
         .length();
      char var1 = '/';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 120;
         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) {
                     c = var5;
                     UTC_TIME_ZONE = TimeZone.getTimeZone(c[34]);
                     return;
                  }

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

                  var2 = "\u0019mU[H\u0018f)G}cH\b`/_8y\u0007\u0018/(I{x\u0005\t/<Mt~\fLz$Xq{RLtzQ\fjbwcH.j,CjrR";
                  var4 = "\u0019mU[H\u0018f)G}cH\b`/_8y\u0007\u0018/(I{x\u0005\t/<Mt~\fLz$Xq{RLtzQ\fjbwcH.j,CjrR".length();
                  var1 = ',';
                  var7 = -1;
            }

            var10000 = 17;
            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] ^ 30);
      }

      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 -> 91;
            case 1 -> 61;
            case 2 -> 9;
            case 3 -> 6;
            case 4 -> 121;
            case 5 -> 125;
            default -> 30;
         });
      }

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

   public static class Error {
      private final Object[] a;
      private final Exception b;
      private final String c;
      private static final String[] d;

      protected Error(String var1, Exception var2, Object... var3) {
         if (var1 == null) {
            throw new IllegalArgumentException(d[1]);
         }

         this.a = this.a(var3);
         this.c = MessageFormat.format(var1, this.a);
         this.b = var2;
      }

      private Object[] a(Object var1) {
         try {
            if (var1 == null) {
               return new Object[0];
            }
         } catch (IllegalArgumentException var2) {
            throw a(var2);
         }

         try {
            if (var1 instanceof Object[]) {
               return (Object[])var1;
            }
         } catch (IllegalArgumentException var3) {
            throw a(var3);
         }

         return new Object[]{var1};
      }

      @Override
      public String toString() {
         String var6;
         label16: {
            try {
               if (this.b == null) {
                  var6 = "";
                  break label16;
               }
            } catch (IllegalArgumentException var5) {
               throw a(var5);
            }

            var6 = this.b.getMessage();
            String[] var4 = d;
            var6 = var4[2] + var6;
         }

         String var1 = var6;
         String var2 = var1;
         String var3 = this.c;
         return d[0] + var3 + var2;
      }

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

      static {
         String[] var5 = new String[3];
         int var3 = 0;
         String var2 = "h0$aSgtU\u0002\u001d_\u0012MuOQ,_\u0001Ki\u0001Q\u0012i\u0014\b^\u001cJ;R\u0002I_\u0016UnR\u0003\fI\u000b~\t\nH\u0003PrT\u001fI\u0017";
         int var4 = "h0$aSgtU\u0002\u001d_\u0012MuOQ,_\u0001Ki\u0001Q\u0012i\u0014\b^\u001cJ;R\u0002I_\u0016UnR\u0003\fI\u000b~\t\nH\u0003PrT\u001fI\u0017"
            .length();
         char var1 = 23;
         int var0 = -1;

         while (true) {
            String var10002 = a(42, a(var2.substring(++var0, var0 + var1)));
            byte var10001 = -1;
            var5[var3++] = var10002;
            if ((var0 += var1) >= var4) {
               d = var5;
               return;
            }

            var1 = var2.charAt(var0);
         }
      }

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

         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 -> 17;
               case 1 -> 91;
               case 2 -> 67;
               case 3 -> 7;
               case 4 -> 89;
               case 5 -> 14;
               default -> 49;
            });
         }

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