package com.l7tech.server.policy.assertion.credential.wss;

import com.l7tech.gateway.common.audit.AssertionMessages;
import com.l7tech.gateway.common.audit.AuditFactory;
import com.l7tech.message.Message;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.policy.assertion.credential.wss.WssDigest;
import com.l7tech.policy.assertion.xmlsec.SecurityHeaderAddressableSupport;
import com.l7tech.security.token.UsernameToken;
import com.l7tech.security.token.XmlSecurityToken;
import com.l7tech.security.xml.SecurityTokenResolver;
import com.l7tech.security.xml.processor.ProcessorResult;
import com.l7tech.server.message.AuthenticationContext;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.assertion.AbstractMessageTargetableServerAssertion;
import com.l7tech.util.Config;
import jakarta.inject.Inject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class ServerWssDigest extends AbstractMessageTargetableServerAssertion<WssDigest> {
   @Inject
   Config config;
   @Inject
   SecurityTokenResolver securityTokenResolver;
   private final String[] d;
   private static final String[] e;

   public ServerWssDigest(@NotNull WssDigest var1) {
      if (var1 == null) {
         c(0);
      }

      this(var1, null);
   }

   public ServerWssDigest(@NotNull WssDigest var1, @Nullable AuditFactory var2) {
      if (var1 == null) {
         c(1);
      }

      super(var1, var2);
      this.d = var1.getVariablesUsed();
   }

   @Override
   public AssertionStatus checkRequest(PolicyEnforcementContext var1) throws IOException, PolicyAssertionException {
      try {
         if (!SecurityHeaderAddressableSupport.isLocalRecipient(this.assertion)) {
            this.logAndAudit(AssertionMessages.REQUESTWSS_NOT_FOR_US);
            return AssertionStatus.NONE;
         }
      } catch (IOException var2) {
         throw a(var2);
      }

      return super.checkRequest(var1);
   }

   @Override
   protected AssertionStatus doCheckRequest(PolicyEnforcementContext param1, Message param2, String param3, AuthenticationContext param4) throws IOException, PolicyAssertionException {
      // $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: invokevirtual com/l7tech/message/Message.isSoap ()Z
      // 004: ifne 016
      // 007: aload 0
      // 008: getstatic com/l7tech/gateway/common/audit/AssertionMessages.REQUEST_NOT_SOAP Lcom/l7tech/gateway/common/audit/Messages$M;
      // 00b: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 00e: getstatic com/l7tech/policy/assertion/AssertionStatus.NOT_APPLICABLE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 011: areturn
      // 012: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 015: athrow
      // 016: aload 0
      // 017: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.isRequest ()Z
      // 01a: ifeq 044
      // 01d: aload 0
      // 01e: getfield com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.config Lcom/l7tech/util/Config;
      // 021: getstatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.e [Ljava/lang/String;
      // 024: bipush 5
      // 025: aaload
      // 026: bipush 1
      // 027: invokeinterface com/l7tech/util/Config.getBooleanProperty (Ljava/lang/String;Z)Z 3
      // 02c: ifne 044
      // 02f: goto 036
      // 032: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 035: athrow
      // 036: aload 2
      // 037: invokevirtual com/l7tech/message/Message.getSecurityKnob ()Lcom/l7tech/message/SecurityKnob;
      // 03a: invokeinterface com/l7tech/message/SecurityKnob.getProcessorResult ()Lcom/l7tech/security/xml/processor/ProcessorResult; 1
      // 03f: astore 5
      // 041: goto 053
      // 044: aload 2
      // 045: aload 3
      // 046: aload 0
      // 047: getfield com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.securityTokenResolver Lcom/l7tech/security/xml/SecurityTokenResolver;
      // 04a: aload 0
      // 04b: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.getAudit ()Lcom/l7tech/gateway/common/audit/Audit;
      // 04e: invokestatic com/l7tech/server/util/WSSecurityProcessorUtils.getWssResults (Lcom/l7tech/message/Message;Ljava/lang/String;Lcom/l7tech/security/xml/SecurityTokenResolver;Lcom/l7tech/gateway/common/audit/Audit;)Lcom/l7tech/security/xml/processor/ProcessorResult;
      // 051: astore 5
      // 053: aload 5
      // 055: ifnonnull 084
      // 058: aload 0
      // 059: getstatic com/l7tech/gateway/common/audit/AssertionMessages.REQUESTWSS_NO_SECURITY Lcom/l7tech/gateway/common/audit/Messages$M;
      // 05c: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 05f: aload 0
      // 060: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.isRequest ()Z
      // 063: ifeq 080
      // 066: goto 06d
      // 069: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 06c: athrow
      // 06d: aload 1
      // 06e: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setAuthenticationMissing ()V 1
      // 073: aload 1
      // 074: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setRequestPolicyViolated ()V 1
      // 079: goto 080
      // 07c: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 07f: athrow
      // 080: getstatic com/l7tech/policy/assertion/AssertionStatus.AUTH_REQUIRED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 083: areturn
      // 084: aload 1
      // 085: aload 0
      // 086: getfield com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.d [Ljava/lang/String;
      // 089: aload 0
      // 08a: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.getAudit ()Lcom/l7tech/gateway/common/audit/Audit;
      // 08d: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getVariableMap ([Ljava/lang/String;Lcom/l7tech/gateway/common/audit/Audit;)Ljava/util/Map; 3
      // 092: astore 6
      // 094: aload 0
      // 095: aload 5
      // 097: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Lcom/l7tech/security/xml/processor/ProcessorResult;)Ljava/util/Collection;
      // 09a: astore 7
      // 09c: aload 7
      // 09e: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 0a3: astore 8
      // 0a5: aload 8
      // 0a7: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 0ac: ifeq 0eb
      // 0af: aload 8
      // 0b1: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 0b6: checkcast com/l7tech/security/token/UsernameToken
      // 0b9: astore 9
      // 0bb: aload 0
      // 0bc: aload 9
      // 0be: aload 6
      // 0c0: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Lcom/l7tech/security/token/UsernameToken;Ljava/util/Map;)Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0c3: astore 10
      // 0c5: aload 10
      // 0c7: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0ca: if_acmpne 0e8
      // 0cd: aload 0
      // 0ce: getstatic com/l7tech/gateway/common/audit/AssertionMessages.USERDETAIL_INFO Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0d1: bipush 1
      // 0d2: anewarray 289
      // 0d5: dup
      // 0d6: bipush 0
      // 0d7: getstatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.e [Ljava/lang/String;
      // 0da: astore 11
      // 0dc: aload 11
      // 0de: bipush 7
      // 0e0: aaload
      // 0e1: aastore
      // 0e2: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 0e5: aload 10
      // 0e7: areturn
      // 0e8: goto 0a5
      // 0eb: aload 0
      // 0ec: getstatic com/l7tech/gateway/common/audit/AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0ef: bipush 1
      // 0f0: anewarray 289
      // 0f3: dup
      // 0f4: bipush 0
      // 0f5: getstatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.e [Ljava/lang/String;
      // 0f8: bipush 6
      // 0fa: aaload
      // 0fb: aastore
      // 0fc: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 0ff: aload 0
      // 100: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.isRequest ()Z
      // 103: ifeq 113
      // 106: aload 1
      // 107: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setRequestPolicyViolated ()V 1
      // 10c: goto 113
      // 10f: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 112: athrow
      // 113: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 116: areturn
      // 117: astore 5
      // 119: aload 0
      // 11a: getstatic com/l7tech/gateway/common/audit/AssertionMessages.REQUEST_BAD_XML Lcom/l7tech/gateway/common/audit/Messages$M;
      // 11d: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 120: getstatic com/l7tech/policy/assertion/AssertionStatus.BAD_REQUEST Lcom/l7tech/policy/assertion/AssertionStatus;
      // 123: areturn
      // try (0 -> 7): 123 org/xml/sax/SAXException
      // try (39 -> 52): 53 org/xml/sax/SAXException
      // try (37 -> 45): 46 org/xml/sax/SAXException
      // try (10 -> 21): 22 org/xml/sax/SAXException
      // try (0 -> 8): 8 java/io/IOException
      // try (10 -> 56): 123 org/xml/sax/SAXException
      // try (57 -> 100): 123 org/xml/sax/SAXException
      // try (102 -> 118): 119 org/xml/sax/SAXException
      // try (101 -> 122): 123 org/xml/sax/SAXException
   }

   private AssertionStatus a(UsernameToken param1, Map<String, ?> param2) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 1
      // 001: invokeinterface com/l7tech/security/token/UsernameToken.isDigest ()Z 1
      // 006: ifne 018
      // 009: aload 0
      // 00a: getstatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.e [Ljava/lang/String;
      // 00d: bipush 8
      // 00f: aaload
      // 010: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/String;)Lcom/l7tech/policy/assertion/AssertionStatus;
      // 013: areturn
      // 014: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 017: athrow
      // 018: aload 1
      // 019: invokeinterface com/l7tech/security/token/UsernameToken.getUsername ()Ljava/lang/String; 1
      // 01e: astore 3
      // 01f: aload 1
      // 020: invokeinterface com/l7tech/security/token/UsernameToken.getPasswordDigest ()Ljava/lang/String; 1
      // 025: astore 4
      // 027: aload 1
      // 028: invokeinterface com/l7tech/security/token/UsernameToken.getNonce ()Ljava/lang/String; 1
      // 02d: astore 5
      // 02f: aload 1
      // 030: invokeinterface com/l7tech/security/token/UsernameToken.getCreated ()Ljava/lang/String; 1
      // 035: astore 6
      // 037: aload 0
      // 038: getfield com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 03b: checkcast com/l7tech/policy/assertion/credential/wss/WssDigest
      // 03e: invokevirtual com/l7tech/policy/assertion/credential/wss/WssDigest.isRequireTimestamp ()Z
      // 041: ifeq 05e
      // 044: aload 6
      // 046: ifnonnull 05e
      // 049: goto 050
      // 04c: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 04f: athrow
      // 050: aload 0
      // 051: getstatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.e [Ljava/lang/String;
      // 054: bipush 4
      // 055: aaload
      // 056: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.b (Ljava/lang/String;)Lcom/l7tech/policy/assertion/AssertionStatus;
      // 059: areturn
      // 05a: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 05d: athrow
      // 05e: aload 0
      // 05f: getfield com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 062: checkcast com/l7tech/policy/assertion/credential/wss/WssDigest
      // 065: invokevirtual com/l7tech/policy/assertion/credential/wss/WssDigest.isRequireNonce ()Z
      // 068: ifeq 086
      // 06b: aload 5
      // 06d: ifnonnull 086
      // 070: goto 077
      // 073: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 076: athrow
      // 077: aload 0
      // 078: getstatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.e [Ljava/lang/String;
      // 07b: bipush 11
      // 07d: aaload
      // 07e: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.b (Ljava/lang/String;)Lcom/l7tech/policy/assertion/AssertionStatus;
      // 081: areturn
      // 082: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 085: athrow
      // 086: aload 0
      // 087: getfield com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 08a: checkcast com/l7tech/policy/assertion/credential/wss/WssDigest
      // 08d: invokevirtual com/l7tech/policy/assertion/credential/wss/WssDigest.getRequiredUsername ()Ljava/lang/String;
      // 090: astore 7
      // 092: aload 7
      // 094: ifnull 0ba
      // 097: aload 7
      // 099: aload 2
      // 09a: aload 0
      // 09b: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.getAudit ()Lcom/l7tech/gateway/common/audit/Audit;
      // 09e: invokestatic com/l7tech/server/policy/variable/ExpandVariables.process (Ljava/lang/String;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;)Ljava/lang/String;
      // 0a1: astore 8
      // 0a3: aload 8
      // 0a5: aload 3
      // 0a6: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0a9: ifne 0ba
      // 0ac: aload 0
      // 0ad: getstatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.e [Ljava/lang/String;
      // 0b0: bipush 2
      // 0b1: aaload
      // 0b2: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.b (Ljava/lang/String;)Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0b5: areturn
      // 0b6: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0b9: athrow
      // 0ba: aload 0
      // 0bb: getfield com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0be: checkcast com/l7tech/policy/assertion/credential/wss/WssDigest
      // 0c1: invokevirtual com/l7tech/policy/assertion/credential/wss/WssDigest.getRequiredPassword ()Ljava/lang/String;
      // 0c4: astore 8
      // 0c6: aload 8
      // 0c8: ifnonnull 0df
      // 0cb: new com/l7tech/server/policy/assertion/AssertionStatusException
      // 0ce: dup
      // 0cf: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0d2: getstatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.e [Ljava/lang/String;
      // 0d5: bipush 1
      // 0d6: aaload
      // 0d7: invokespecial com/l7tech/server/policy/assertion/AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;Ljava/lang/String;)V
      // 0da: athrow
      // 0db: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0de: athrow
      // 0df: aload 8
      // 0e1: aload 2
      // 0e2: aload 0
      // 0e3: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.getAudit ()Lcom/l7tech/gateway/common/audit/Audit;
      // 0e6: invokestatic com/l7tech/server/policy/variable/ExpandVariables.process (Ljava/lang/String;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;)Ljava/lang/String;
      // 0e9: invokevirtual java/lang/String.toCharArray ()[C
      // 0ec: aload 6
      // 0ee: aload 5
      // 0f0: invokestatic com/l7tech/security/token/UsernameTokenImpl.createPasswordDigest ([CLjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
      // 0f3: astore 9
      // 0f5: aload 9
      // 0f7: aload 4
      // 0f9: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0fc: ifne 10d
      // 0ff: aload 0
      // 100: getstatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.e [Ljava/lang/String;
      // 103: bipush 3
      // 104: aaload
      // 105: invokevirtual com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.b (Ljava/lang/String;)Lcom/l7tech/policy/assertion/AssertionStatus;
      // 108: areturn
      // 109: invokestatic com/l7tech/server/policy/assertion/credential/wss/ServerWssDigest.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 10c: athrow
      // 10d: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 110: areturn
      // try (0 -> 9): 9 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (23 -> 30): 31 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (28 -> 39): 39 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (41 -> 48): 49 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (46 -> 57): 57 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (72 -> 82): 82 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (89 -> 99): 99 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (111 -> 121): 121 com/l7tech/server/policy/assertion/AssertionStatusException
   }

   private AssertionStatus a(String var1) {
      this.logAndAudit(AssertionMessages.USERDETAIL_FINE, var1);
      return AssertionStatus.FALSIFIED;
   }

   private AssertionStatus b(String var1) {
      this.logAndAudit(AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO, var1);
      return AssertionStatus.FALSIFIED;
   }

   private Collection<UsernameToken> a(ProcessorResult var1) {
      ArrayList var2 = new ArrayList();

      for (XmlSecurityToken var6 : var1.getXmlSecurityTokens()) {
         if (var6 instanceof UsernameToken var7) {
            var2.add(var7);
         }
      }

      return var2;
   }

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

   static {
      String[] var5 = new String[13];
      int var3 = 0;
      String var2 = "\"y2}PH.Ic/PM\u0011pmd|uW\u0005pld5{JV}\u007fc|zKVe\u007fc/cK\u0004q>s3zB\u001frkb9p@Ww2{V\u001f{y0\tgA\u0004{\u007f}9@K\u001dpp0(|E\u00025z\u007f9g\u0004\u0018zj0?{J\u0002tw~|u\u0004\u001btjs4}J\u00115kc9fJ\u0017x{<Kc9fJ\u0017x{D3\u007fA\u00185zy;qW\u00025hq0aAVqqu/4J\u0019a>}=`G\u001e5jx94A\u000ee{s(q@Vc\u007f|)q8Ww2{V\u001f{y0\tgA\u0004{\u007f}9@K\u001dpp0(|E\u00025z\u007f9g\u0004\u0018zj0?{J\u0002tw~|u\u0004\u0002|su/`E\u001be-ic/:T\u0004z}u/gK\u0004;{~=vH\u0013Q{v9fV\u0013qLu-aA\u0005aNb3wA\u0005fw~;3P\u007f|wK\u0018sqb1}J\u00115IC\u000f4`\u001fr{c(4P\u0019~{~|cE\u00055x\u007f)z@V|p0.qU\u0003pmd'IC\u000f4`\u001fr{c(4P\u0019~{~|bE\u001a|zq(q@Vfks?qW\u0005sk|0m>Ww2{V\u001f{y0\tgA\u0004{\u007f}9@K\u001dpp0(|E\u00025z\u007f9g\u0004\u0018zj0?{J\u0002tw~|u\u0004\u0012|yu/`\u0004\u0006tmc+{V\u0012\t\u007fc/qV\u0002|q~A}\u007f1;HAa{s4;W\u0013ghu.;T\u0019yws%;E\u0005f{b(}K\u0018:}b9pA\u0018awq0;S\u0005f1C9fR\u0013gIc/PM\u0011pmd";
      int var4 = "\"y2}PH.Ic/PM\u0011pmd|uW\u0005pld5{JV}\u007fc|zKVe\u007fc/cK\u0004q>s3zB\u001frkb9p@Ww2{V\u001f{y0\tgA\u0004{\u007f}9@K\u001dpp0(|E\u00025z\u007f9g\u0004\u0018zj0?{J\u0002tw~|u\u0004\u001btjs4}J\u00115kc9fJ\u0017x{<Kc9fJ\u0017x{D3\u007fA\u00185zy;qW\u00025hq0aAVqqu/4J\u0019a>}=`G\u001e5jx94A\u000ee{s(q@Vc\u007f|)q8Ww2{V\u001f{y0\tgA\u0004{\u007f}9@K\u001dpp0(|E\u00025z\u007f9g\u0004\u0018zj0?{J\u0002tw~|u\u0004\u0002|su/`E\u001be-ic/:T\u0004z}u/gK\u0004;{~=vH\u0013Q{v9fV\u0013qLu-aA\u0005aNb3wA\u0005fw~;3P\u007f|wK\u0018sqb1}J\u00115IC\u000f4`\u001fr{c(4P\u0019~{~|cE\u00055x\u007f)z@V|p0.qU\u0003pmd'IC\u000f4`\u001fr{c(4P\u0019~{~|bE\u001a|zq(q@Vfks?qW\u0005sk|0m>Ww2{V\u001f{y0\tgA\u0004{\u007f}9@K\u001dpp0(|E\u00025z\u007f9g\u0004\u0018zj0?{J\u0002tw~|u\u0004\u0012|yu/`\u0004\u0006tmc+{V\u0012\t\u007fc/qV\u0002|q~A}\u007f1;HAa{s4;W\u0013ghu.;T\u0019yws%;E\u0005f{b(}K\u0018:}b9pA\u0018awq0;S\u0005f1C9fR\u0013gIc/PM\u0011pmd"
         .length();
      char var1 = 6;
      int var7 = -1;

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

         while (true) {
            String var8 = c(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     e = var5;
                     return;
                  }

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

                  var2 = "gG\u0002Kf/KI\u00009Wq4KOM\tp{-@@\u0000\u0018Lu2\u0005JO\tW4(JZ\u0000\u000fKz2DGNLE4(J@C\t>oR\u000bQy#KZ\u0000\nKffe`O\u0018ja*I\u000eP\rVu+@ZE\u001e\u00043cV\t\u0000\u0003B4cV\u0000\u0005\u001f\u0004y3VZ\u0000\u0002K`fGK\u0000\u0002Qx*";
                  var4 = "gG\u0002Kf/KI\u00009Wq4KOM\tp{-@@\u0000\u0018Lu2\u0005JO\tW4(JZ\u0000\u000fKz2DGNLE4(J@C\t>oR\u000bQy#KZ\u0000\nKffe`O\u0018ja*I\u000eP\rVu+@ZE\u001e\u00043cV\t\u0000\u0003B4cV\u0000\u0005\u001f\u0004y3VZ\u0000\u0002K`fGK\u0000\u0002Qx*"
                     .length();
                  var1 = '4';
                  var7 = -1;
            }

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

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

      return var10000;
   }

   private static String c(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 -> 45;
            case 1 -> 35;
            case 2 -> 111;
            case 3 -> 39;
            case 4 -> 23;
            case 5 -> 69;
            default -> 38;
         });
      }

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