package com.l7tech.gateway.common.transport.ftp;

import com.jscape.inet.ftp.Ftp;
import com.jscape.inet.ftp.FtpAdapter;
import com.jscape.inet.ftp.FtpException;
import com.jscape.inet.ftp.FtpResponseEvent;
import com.jscape.inet.ftp.FtpUploadEvent;
import com.l7tech.util.HexUtils;
import com.l7tech.util.ResourceUtils;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.PrintStream;
import java.io.ObjectInputFilter.FilterInfo;
import java.io.ObjectInputFilter.Status;
import java.net.UnknownHostException;
import org.jetbrains.annotations.Nullable;

public class FtpUtils {
   private static final int a = 5;
   private static final long b = 100L;
   private static final String[] c;

   public static void ftpConnect(Ftp var0) throws FtpException {
      try {
         var0.connect();
      } catch (FtpException var3) {
         FtpException var1 = var3;
         Throwable var2 = var3.getCause();
         if (var2 instanceof UnknownHostException) {
            var1 = new FtpException(c[11] + var0.getHostname(), var2);
         }

         throw var1;
      }
   }

   public static Ftp newFtpClient(FtpClientConfig param0) throws FtpException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: ifnonnull 15
      // 04: new java/lang/NullPointerException
      // 07: dup
      // 08: getstatic com/l7tech/gateway/common/transport/ftp/FtpUtils.c [Ljava/lang/String;
      // 0b: bipush 0
      // 0c: aaload
      // 0d: invokespecial java/lang/NullPointerException.<init> (Ljava/lang/String;)V
      // 10: athrow
      // 11: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 14: athrow
      // 15: getstatic com/l7tech/gateway/common/transport/ftp/FtpCredentialsSource.SPECIFIED Lcom/l7tech/gateway/common/transport/ftp/FtpCredentialsSource;
      // 18: aload 0
      // 19: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getCredentialsSource ()Lcom/l7tech/gateway/common/transport/ftp/FtpCredentialsSource; 1
      // 1e: if_acmpeq 32
      // 21: new java/lang/IllegalStateException
      // 24: dup
      // 25: getstatic com/l7tech/gateway/common/transport/ftp/FtpUtils.c [Ljava/lang/String;
      // 28: bipush 2
      // 29: aaload
      // 2a: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 2d: athrow
      // 2e: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 31: athrow
      // 32: new com/jscape/inet/ftp/Ftp
      // 35: dup
      // 36: aload 0
      // 37: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getHost ()Ljava/lang/String; 1
      // 3c: aload 0
      // 3d: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getUser ()Ljava/lang/String; 1
      // 42: aload 0
      // 43: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getPass ()Ljava/lang/String; 1
      // 48: aload 0
      // 49: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getPort ()I 1
      // 4e: invokespecial com/jscape/inet/ftp/Ftp.<init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
      // 51: astore 1
      // 52: aload 0
      // 53: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getDebugStream ()Ljava/io/PrintStream; 1
      // 58: ifnull 71
      // 5b: aload 1
      // 5c: aload 0
      // 5d: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getDebugStream ()Ljava/io/PrintStream; 1
      // 62: invokevirtual com/jscape/inet/ftp/Ftp.setDebugStream (Ljava/io/PrintStream;)V
      // 65: aload 1
      // 66: bipush 1
      // 67: invokevirtual com/jscape/inet/ftp/Ftp.setDebug (Z)V
      // 6a: goto 71
      // 6d: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 70: athrow
      // 71: aload 1
      // 72: aload 0
      // 73: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getTimeout ()I 1
      // 78: invokevirtual com/jscape/inet/ftp/Ftp.setTimeout (I)V
      // 7b: aload 1
      // 7c: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.ftpConnect (Lcom/jscape/inet/ftp/Ftp;)V
      // 7f: aload 1
      // 80: aload 0
      // 81: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getHost ()Ljava/lang/String; 1
      // 86: invokestatic java/net/InetAddress.getByName (Ljava/lang/String;)Ljava/net/InetAddress;
      // 89: instanceof java/net/Inet6Address
      // 8c: invokevirtual com/jscape/inet/ftp/Ftp.setUseEPSV (Z)V
      // 8f: goto 93
      // 92: astore 2
      // 93: aload 0
      // 94: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getDirectory ()Ljava/lang/String; 1
      // 99: astore 2
      // 9a: aload 2
      // 9b: ifnull c2
      // 9e: aload 0
      // 9f: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getDirectory ()Ljava/lang/String; 1
      // a4: invokevirtual java/lang/String.length ()I
      // a7: ifeq c2
      // aa: goto b1
      // ad: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // b0: athrow
      // b1: aload 1
      // b2: aload 0
      // b3: invokeinterface com/l7tech/gateway/common/transport/ftp/FtpClientConfig.getDirectory ()Ljava/lang/String; 1
      // b8: invokevirtual com/jscape/inet/ftp/Ftp.setDir (Ljava/lang/String;)V
      // bb: goto c2
      // be: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // c1: athrow
      // c2: aload 1
      // c3: bipush 0
      // c4: invokevirtual com/jscape/inet/ftp/Ftp.setAuto (Z)V
      // c7: aload 1
      // c8: invokevirtual com/jscape/inet/ftp/Ftp.setBinary ()V
      // cb: goto d5
      // ce: astore 3
      // cf: aload 1
      // d0: invokevirtual com/jscape/inet/ftp/Ftp.disconnect ()V
      // d3: aload 3
      // d4: athrow
      // d5: aload 1
      // d6: areturn
      // try (36 -> 46): 47 java/net/UnknownHostException
      // try (11 -> 22): 22 java/net/UnknownHostException
      // try (0 -> 9): 9 java/net/UnknownHostException
      // try (55 -> 61): 62 java/net/UnknownHostException
      // try (68 -> 79): 80 java/net/UnknownHostException
      // try (66 -> 72): 73 java/net/UnknownHostException
      // try (66 -> 87): 88 com/jscape/inet/ftp/FtpException
   }

   public static Ftp newFtpClient(String var0) throws FtpException {
      return newFtpClient(FtpClientConfigImpl.newFtpConfig(var0));
   }

   public static void testFtpConnection(FtpClientConfig var0) throws FtpTestException {
      try {
         if (var0 == null) {
            throw new NullPointerException(c[0]);
         }
      } catch (FtpException var14) {
         throw a(var14);
      }

      ByteArrayOutputStream var1 = null;
      if (var0.getDebugStream() == null) {
         var1 = new ByteArrayOutputStream();
         var0.setDebugStream(new PrintStream(var1));
      }

      Ftp var2 = null;

      try {
         var2 = newFtpClient(var0);
      } catch (FtpException var17) {
         FtpException var3 = var17;

         FtpTestException var10000;
         FtpTestException var10001;
         String var10002;
         String var10003;
         label101: {
            try {
               var10000 = new FtpTestException;
               var10001 = var10000;
               var10002 = var3.getMessage();
               if (var1 != null) {
                  var10003 = var1.toString();
                  break label101;
               }
            } catch (FtpException var16) {
               throw a(var16);
            }

            var10003 = null;
         }

         var10001./* $VF: Unable to resugar constructor */<init>(var10002, var10003);
         throw var10000;
      } finally {
         try {
            if (var2 != null) {
               var2.close();
            }
         } catch (FtpException var13) {
            throw a(var13);
         }

         try {
            if (var1 != null) {
               var0.getDebugStream().close();
               var0.setDebugStream(null);
            }
         } catch (FtpException var15) {
            throw a(var15);
         }
      }
   }

   public static void upload(FtpClientConfig var0, InputStream var1, long var2, String var4) throws FtpException {
      try {
         if (var0 == null) {
            throw new NullPointerException(c[9]);
         }
      } catch (FtpException var17) {
         throw a(var17);
      }

      try {
         if (FtpSecurity.FTP_UNSECURED != var0.getSecurity()) {
            throw new IllegalArgumentException(c[4]);
         }
      } catch (FtpException var19) {
         throw a(var19);
      }

      Ftp var5 = newFtpClient(var0);
      FtpUtils.FtpUploadSizeListener var6 = new FtpUtils.FtpUploadSizeListener();

      try {
         var5.addFtpListener(var6);
         var5.upload(var1, var4);
      } finally {
         var5.close();
      }

      try {
         if (var6.isError()) {
            throw new FtpException(c[10] + var4 + c[14] + var6.getError() + c[5]);
         }
      } catch (FtpException var18) {
         throw a(var18);
      }

      if (var6.getSize() < var2) {
         long var8 = var6.getSize();
         String var10 = var4;
         String[] var11 = c;
         throw new FtpException(var11[3] + var10 + var11[1] + var8 + var11[13]);
      }
   }

   public static void download(FtpClientConfig var0, String var1, String var2) throws FtpException, IOException {
      File var3 = new File(var1);
      File var4 = new File(var3.getParent());

      try {
         if (!var4.exists()) {
            throw new IllegalArgumentException(c[12]);
         }
      } catch (FtpException var15) {
         throw a(var15);
      }

      try {
         if (!var4.isDirectory()) {
            throw new IllegalArgumentException(c[6]);
         }
      } catch (FtpException var13) {
         throw a(var13);
      }

      try {
         if (var3.exists()) {
            var3.delete();
         }
      } catch (FtpException var14) {
         throw a(var14);
      }

      var3.createNewFile();
      FileOutputStream var5 = null;
      Ftp var6 = newFtpClient(var0);

      try {
         var5 = new FileOutputStream(var3);
         var6.connect();
         var6.download(var5, var2);
      } finally {
         var6.close();
         ResourceUtils.closeQuietly(var5);
      }
   }

   public static String serialize(FtpClientConfig var0) throws IOException {
      ByteArrayOutputStream var1 = new ByteArrayOutputStream();
      ObjectOutputStream var2 = new ObjectOutputStream(var1);
      var2.writeObject(var0);
      var2.flush();
      return HexUtils.encodeBase64(var1.toByteArray());
   }

   public static FtpClientConfig deserialize(@Nullable String param0) throws IOException, ClassNotFoundException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: ifnull 12
      // 04: aload 0
      // 05: invokevirtual java/lang/String.isEmpty ()Z
      // 08: ifeq 18
      // 0b: goto 12
      // 0e: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 11: athrow
      // 12: aconst_null
      // 13: areturn
      // 14: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 17: athrow
      // 18: new java/io/ObjectInputStream
      // 1b: dup
      // 1c: new java/io/ByteArrayInputStream
      // 1f: dup
      // 20: aload 0
      // 21: invokestatic com/l7tech/util/HexUtils.decodeBase64 (Ljava/lang/String;)[B
      // 24: invokespecial java/io/ByteArrayInputStream.<init> ([B)V
      // 27: invokespecial java/io/ObjectInputStream.<init> (Ljava/io/InputStream;)V
      // 2a: astore 1
      // 2b: aload 1
      // 2c: invokedynamic checkInput ()Ljava/io/ObjectInputFilter; bsm=java/lang/invoke/LambdaMetafactory.metafactory (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; args=[ (Ljava/io/ObjectInputFilter$FilterInfo;)Ljava/io/ObjectInputFilter$Status;, com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/io/ObjectInputFilter$FilterInfo;)Ljava/io/ObjectInputFilter$Status;, (Ljava/io/ObjectInputFilter$FilterInfo;)Ljava/io/ObjectInputFilter$Status; ]
      // 31: invokevirtual java/io/ObjectInputStream.setObjectInputFilter (Ljava/io/ObjectInputFilter;)V
      // 34: aload 1
      // 35: invokevirtual java/io/ObjectInputStream.readObject ()Ljava/lang/Object;
      // 38: checkcast com/l7tech/gateway/common/transport/ftp/FtpClientConfig
      // 3b: areturn
      // try (0 -> 5): 6 java/io/IOException
      // try (2 -> 10): 10 java/io/IOException
   }

   private static Status a(FilterInfo param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.b (Ljava/io/ObjectInputFilter$FilterInfo;)Ljava/io/ObjectInputFilter$Status;
      // 04: astore 1
      // 05: aload 1
      // 06: ifnull 0f
      // 09: aload 1
      // 0a: areturn
      // 0b: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e: athrow
      // 0f: aload 0
      // 10: invokeinterface java/io/ObjectInputFilter$FilterInfo.serialClass ()Ljava/lang/Class; 1
      // 15: astore 2
      // 16: aload 2
      // 17: ifnonnull 22
      // 1a: getstatic java/io/ObjectInputFilter$Status.UNDECIDED Ljava/io/ObjectInputFilter$Status;
      // 1d: areturn
      // 1e: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 21: athrow
      // 22: aload 2
      // 23: invokevirtual java/lang/Class.isArray ()Z
      // 26: ifeq 48
      // 29: aload 2
      // 2a: invokevirtual java/lang/Class.getComponentType ()Ljava/lang/Class;
      // 2d: invokevirtual java/lang/Class.isPrimitive ()Z
      // 30: ifeq 44
      // 33: goto 3a
      // 36: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 39: athrow
      // 3a: getstatic java/io/ObjectInputFilter$Status.ALLOWED Ljava/io/ObjectInputFilter$Status;
      // 3d: goto 47
      // 40: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 43: athrow
      // 44: getstatic java/io/ObjectInputFilter$Status.REJECTED Ljava/io/ObjectInputFilter$Status;
      // 47: areturn
      // 48: aload 2
      // 49: ldc java/lang/String
      // 4b: if_acmpne 56
      // 4e: getstatic java/io/ObjectInputFilter$Status.ALLOWED Ljava/io/ObjectInputFilter$Status;
      // 51: areturn
      // 52: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 55: athrow
      // 56: ldc java/lang/Enum
      // 58: aload 2
      // 59: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 5c: ifeq 67
      // 5f: getstatic java/io/ObjectInputFilter$Status.ALLOWED Ljava/io/ObjectInputFilter$Status;
      // 62: areturn
      // 63: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 66: athrow
      // 67: aload 2
      // 68: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 6b: astore 3
      // 6c: aload 3
      // 6d: getstatic com/l7tech/gateway/common/transport/ftp/FtpUtils.c [Ljava/lang/String;
      // 70: bipush 7
      // 72: aaload
      // 73: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 76: ifeq 81
      // 79: getstatic java/io/ObjectInputFilter$Status.ALLOWED Ljava/io/ObjectInputFilter$Status;
      // 7c: areturn
      // 7d: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 80: athrow
      // 81: getstatic com/l7tech/gateway/common/transport/ftp/FtpUtils.c [Ljava/lang/String;
      // 84: bipush 8
      // 86: aaload
      // 87: aload 3
      // 88: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 8b: ifeq 96
      // 8e: getstatic java/io/ObjectInputFilter$Status.ALLOWED Ljava/io/ObjectInputFilter$Status;
      // 91: areturn
      // 92: invokestatic com/l7tech/gateway/common/transport/ftp/FtpUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 95: athrow
      // 96: getstatic java/io/ObjectInputFilter$Status.REJECTED Ljava/io/ObjectInputFilter$Status;
      // 99: areturn
      // try (3 -> 7): 7 java/lang/NullPointerException
      // try (12 -> 16): 16 java/lang/NullPointerException
      // try (18 -> 25): 26 java/lang/NullPointerException
      // try (21 -> 30): 30 java/lang/NullPointerException
      // try (34 -> 39): 39 java/lang/NullPointerException
      // try (41 -> 47): 47 java/lang/NullPointerException
      // try (52 -> 60): 60 java/lang/NullPointerException
      // try (62 -> 70): 70 java/lang/NullPointerException
   }

   private static Status b(FilterInfo var0) {
      try {
         if (var0.depth() > 5L) {
            return Status.REJECTED;
         }
      } catch (NullPointerException var2) {
         throw a(var2);
      }

      try {
         return var0.references() > 100L ? Status.REJECTED : null;
      } catch (NullPointerException var1) {
         throw a(var1);
      }
   }

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

   static {
      String[] var5 = new String[15];
      int var3 = 0;
      String var2 = "\u001aZhoPVR\u001aThgVER\u001bP&gL]\u001e\u0016^\u0015syU^\u0013\u001d\u0015r{L_\u0011\u0018Acm\u0019E\u001dY>:ThgVER\u001aGchMTR?aV)Z^\u001c\u0017Pe}P^\u001cY\\`)ZC\u0017\u001dPh}PP\u001e\n\u0015g{\\\u0011\u001c\u0016A&zIT\u0011\u0010Sol]\u001f\u0006?\\jl\u0019\u0016\u001c*Pe|KT\u0016YsRY\u0019X\u0001Y[i}\u0019B\u0007\tEi{MT\u0016\u0002^\u001b#)TtlWER\u001d\\tlZE\u001d\u000bL&`J\u0011\u001c\u0016A&h\u0019U\u001b\u000bPe}VC\u000b(\u001aZk'U\u0006\u0006\u001cVn'^P\u0006\u001cBgp\u0017R\u001d\u0014Xig\u0017E\u0000\u0018[uyVC\u0006WSry\u0017\u001b\u001aZk'U\u0006\u0006\u001cVn'VS\u0018\u001cVrdVU\u0017\u0015\u001bAfPU\u0015\u001aZhoPVR\u001aThgVER\u001bP&gL]\u001e\u0006?\\jl\u0019\u0016\u000e,[mgVF\u001cY]izM\u000bR2)TtlWER\u001d\\tlZE\u001d\u000bL&f_\u0011\u0014\u0010YcGX\\\u00178[bYXE\u001aYQilJ\u0011\u001c\u0016A&lAX\u0001\r";
      int var4 = "\u001aZhoPVR\u001aThgVER\u001bP&gL]\u001e\u0016^\u0015syU^\u0013\u001d\u0015r{L_\u0011\u0018Acm\u0019E\u001dY>:ThgVER\u001aGchMTR?aV)Z^\u001c\u0017Pe}P^\u001cY\\`)ZC\u0017\u001dPh}PP\u001e\n\u0015g{\\\u0011\u001c\u0016A&zIT\u0011\u0010Sol]\u001f\u0006?\\jl\u0019\u0016\u001c*Pe|KT\u0016YsRY\u0019X\u0001Y[i}\u0019B\u0007\tEi{MT\u0016\u0002^\u001b#)TtlWER\u001d\\tlZE\u001d\u000bL&`J\u0011\u001c\u0016A&h\u0019U\u001b\u000bPe}VC\u000b(\u001aZk'U\u0006\u0006\u001cVn'^P\u0006\u001cBgp\u0017R\u001d\u0014Xig\u0017E\u0000\u0018[uyVC\u0006WSry\u0017\u001b\u001aZk'U\u0006\u0006\u001cVn'VS\u0018\u001cVrdVU\u0017\u0015\u001bAfPU\u0015\u001aZhoPVR\u001aThgVER\u001bP&gL]\u001e\u0006?\\jl\u0019\u0016\u000e,[mgVF\u001cY]izM\u000bR2)TtlWER\u001d\\tlZE\u001d\u000bL&f_\u0011\u0014\u0010YcGX\\\u00178[bYXE\u001aYQilJ\u0011\u001c\u0016A&lAX\u0001\r"
         .length();
      char var1 = 21;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 105;
         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;
                     return;
                  }

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

                  var2 = "\u0003\r%'\u0006\u0018\u0006\u0010\u0004O)#\u000f\u0004IGO9!\u0011\u0004Z\u0003H";
                  var4 = "\u0003\r%'\u0006\u0018\u0006\u0010\u0004O)#\u000f\u0004IGO9!\u0011\u0004Z\u0003H".length();
                  var1 = 7;
                  var7 = -1;
            }

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

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

      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 -> 16;
            case 1 -> 92;
            case 2 -> 111;
            case 3 -> 96;
            case 4 -> 80;
            case 5 -> 88;
            default -> 27;
         });
      }

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

   public static final class FtpUploadSizeListener extends FtpAdapter {
      private static final String a;
      private static final String b;
      private static final String c;
      private static final String d;
      private static final String e;
      private boolean f = false;
      private String g;
      private long h;
      private static final String[] i;

      public long getSize() {
         return this.h;
      }

      public boolean isError() {
         return this.g != null;
      }

      public String getError() {
         return this.g;
      }

      public void responseReceived(FtpResponseEvent var1) {
         String var2 = var1.getResponse();
         if (var2 != null) {
            if (!this.f) {
               String[] var3 = i;
               if (var2.startsWith(var3[5]) || var2.startsWith(var3[2])) {
                  this.f = this.g == null;
               }
            } else {
               String[] var4 = i;
               if (var2.startsWith(var4[0]) || var2.startsWith(var4[4]) || var2.startsWith(var4[9])) {
                  this.g = var2;
               }

               this.f = false;
            }
         }
      }

      public void upload(FtpUploadEvent var1) {
         this.h = var1.getSize();
      }

      static {
         String[] var5 = new String[10];
         int var3 = 0;
         String var2 = "ohX\u0003ohY\u0003jhX\u0003ohX\u0003ohY\u0003jo]\u0003jo]\u0003jhX";
         int var4 = "ohX\u0003ohY\u0003jhX\u0003ohX\u0003ohY\u0003jo]\u0003jo]\u0003jhX".length();
         char var1 = 3;
         int var7 = -1;

         label24:
         while (true) {
            byte var10000 = 55;
            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) {
                        i = var5;
                        String[] var9 = i;
                        b = i[7];
                        a = var9[6];
                        e = var9[8];
                        c = var9[3];
                        d = var9[1];
                        return;
                     }

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

                     var2 = "tsA\u0003tsA";
                     var4 = "tsA\u0003tsA".length();
                     var1 = 3;
                     var7 = -1;
               }

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

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

         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 -> 108;
               case 1 -> 106;
               case 2 -> 95;
               case 3 -> 3;
               case 4 -> 58;
               case 5 -> 100;
               default -> 122;
            });
         }

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