package com.l7tech.gateway.common.service;

import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.imp.PersistentEntityImp;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.hibernate.annotations.Parameter;
import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;

@Entity
@Proxy(lazy = false)
@Table(name = "service_metrics")
public class MetricsBin extends PersistentEntityImp implements Comparable {
   public static final String ATTR_SERVICE_GOID;
   public static final int RES_FINE = 0;
   public static final int RES_HOURLY = 1;
   public static final int RES_DAILY = 2;
   private static final Logger _logger;
   private String _clusterNodeId;
   private Goid _serviceGoid;
   protected int _resolution = -1;
   private int _interval;
   private long _periodStart;
   private long _startTime;
   private long _endTime;
   private int _numAttemptedRequest;
   private int _numAuthorizedRequest;
   private int _numCompletedRequest;
   private Integer _minFrontendResponseTime;
   private Integer _maxFrontendResponseTime;
   private long _sumFrontendResponseTime;
   private Integer _minBackendResponseTime;
   private Integer _maxBackendResponseTime;
   private long _sumBackendResponseTime;
   private ServiceState serviceState;
   static final long serialVersionUID = -6850082113693798521L;
   private static final String[] b;

   private static void checkResolutionType(int 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: iload 0
      // 01: ifeq 2d
      // 04: iload 0
      // 05: bipush 1
      // 06: if_icmpeq 2d
      // 09: goto 10
      // 0c: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0f: athrow
      // 10: iload 0
      // 11: bipush 2
      // 12: if_icmpeq 2d
      // 15: goto 1c
      // 18: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 1b: athrow
      // 1c: new java/lang/IllegalArgumentException
      // 1f: dup
      // 20: getstatic com/l7tech/gateway/common/service/MetricsBin.b [Ljava/lang/String;
      // 23: bipush 5
      // 24: aaload
      // 25: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 28: athrow
      // 29: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 2c: athrow
      // 2d: return
      // try (0 -> 5): 6 java/lang/IllegalArgumentException
      // try (2 -> 11): 12 java/lang/IllegalArgumentException
      // try (8 -> 21): 21 java/lang/IllegalArgumentException
   }

   public static long periodStartFor(int param0, int param1, long 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:
      // 00: ldc2_w -1
      // 03: lstore 4
      // 05: iload 0
      // 06: tableswitch 165 0 2 26 67 112
      // 20: iload 1
      // 21: ifgt 3d
      // 24: goto 2b
      // 27: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 2a: athrow
      // 2b: new java/lang/IllegalArgumentException
      // 2e: dup
      // 2f: getstatic com/l7tech/gateway/common/service/MetricsBin.b [Ljava/lang/String;
      // 32: bipush 17
      // 34: aaload
      // 35: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 38: athrow
      // 39: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 3c: athrow
      // 3d: lload 2
      // 3e: iload 1
      // 3f: i2l
      // 40: ldiv
      // 41: iload 1
      // 42: i2l
      // 43: lmul
      // 44: lstore 4
      // 46: goto ab
      // 49: invokestatic java/util/Calendar.getInstance ()Ljava/util/Calendar;
      // 4c: astore 6
      // 4e: aload 6
      // 50: lload 2
      // 51: invokevirtual java/util/Calendar.setTimeInMillis (J)V
      // 54: aload 6
      // 56: bipush 12
      // 58: bipush 0
      // 59: invokevirtual java/util/Calendar.set (II)V
      // 5c: aload 6
      // 5e: bipush 13
      // 60: bipush 0
      // 61: invokevirtual java/util/Calendar.set (II)V
      // 64: aload 6
      // 66: bipush 14
      // 68: bipush 0
      // 69: invokevirtual java/util/Calendar.set (II)V
      // 6c: aload 6
      // 6e: invokevirtual java/util/Calendar.getTimeInMillis ()J
      // 71: lstore 4
      // 73: goto ab
      // 76: invokestatic java/util/Calendar.getInstance ()Ljava/util/Calendar;
      // 79: astore 6
      // 7b: aload 6
      // 7d: lload 2
      // 7e: invokevirtual java/util/Calendar.setTimeInMillis (J)V
      // 81: aload 6
      // 83: bipush 11
      // 85: bipush 0
      // 86: invokevirtual java/util/Calendar.set (II)V
      // 89: aload 6
      // 8b: bipush 12
      // 8d: bipush 0
      // 8e: invokevirtual java/util/Calendar.set (II)V
      // 91: aload 6
      // 93: bipush 13
      // 95: bipush 0
      // 96: invokevirtual java/util/Calendar.set (II)V
      // 99: aload 6
      // 9b: bipush 14
      // 9d: bipush 0
      // 9e: invokevirtual java/util/Calendar.set (II)V
      // a1: aload 6
      // a3: invokevirtual java/util/Calendar.getTimeInMillis ()J
      // a6: lstore 4
      // a8: goto ab
      // ab: lload 4
      // ad: lreturn
      // try (2 -> 6): 7 java/lang/IllegalArgumentException
      // try (4 -> 16): 16 java/lang/IllegalArgumentException
   }

   public static long periodEndFor(int param0, int param1, long 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:
      // 00: ldc2_w -1
      // 03: lstore 4
      // 05: iload 0
      // 06: tableswitch 182 0 2 26 69 122
      // 20: iload 1
      // 21: ifgt 3d
      // 24: goto 2b
      // 27: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 2a: athrow
      // 2b: new java/lang/IllegalArgumentException
      // 2e: dup
      // 2f: getstatic com/l7tech/gateway/common/service/MetricsBin.b [Ljava/lang/String;
      // 32: bipush 10
      // 34: aaload
      // 35: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 38: athrow
      // 39: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 3c: athrow
      // 3d: lload 2
      // 3e: iload 1
      // 3f: i2l
      // 40: ldiv
      // 41: lconst_1
      // 42: ladd
      // 43: iload 1
      // 44: i2l
      // 45: lmul
      // 46: lstore 4
      // 48: goto bc
      // 4b: invokestatic java/util/Calendar.getInstance ()Ljava/util/Calendar;
      // 4e: astore 6
      // 50: aload 6
      // 52: lload 2
      // 53: invokevirtual java/util/Calendar.setTimeInMillis (J)V
      // 56: aload 6
      // 58: bipush 11
      // 5a: bipush 1
      // 5b: invokevirtual java/util/Calendar.add (II)V
      // 5e: aload 6
      // 60: bipush 12
      // 62: bipush 0
      // 63: invokevirtual java/util/Calendar.set (II)V
      // 66: aload 6
      // 68: bipush 13
      // 6a: bipush 0
      // 6b: invokevirtual java/util/Calendar.set (II)V
      // 6e: aload 6
      // 70: bipush 14
      // 72: bipush 0
      // 73: invokevirtual java/util/Calendar.set (II)V
      // 76: aload 6
      // 78: invokevirtual java/util/Calendar.getTimeInMillis ()J
      // 7b: lstore 4
      // 7d: goto bc
      // 80: invokestatic java/util/Calendar.getInstance ()Ljava/util/Calendar;
      // 83: astore 6
      // 85: aload 6
      // 87: lload 2
      // 88: invokevirtual java/util/Calendar.setTimeInMillis (J)V
      // 8b: aload 6
      // 8d: bipush 5
      // 8e: bipush 1
      // 8f: invokevirtual java/util/Calendar.add (II)V
      // 92: aload 6
      // 94: bipush 11
      // 96: bipush 0
      // 97: invokevirtual java/util/Calendar.set (II)V
      // 9a: aload 6
      // 9c: bipush 12
      // 9e: bipush 0
      // 9f: invokevirtual java/util/Calendar.set (II)V
      // a2: aload 6
      // a4: bipush 13
      // a6: bipush 0
      // a7: invokevirtual java/util/Calendar.set (II)V
      // aa: aload 6
      // ac: bipush 14
      // ae: bipush 0
      // af: invokevirtual java/util/Calendar.set (II)V
      // b2: aload 6
      // b4: invokevirtual java/util/Calendar.getTimeInMillis ()J
      // b7: lstore 4
      // b9: goto bc
      // bc: lload 4
      // be: lreturn
      // try (2 -> 6): 7 java/lang/IllegalArgumentException
      // try (4 -> 16): 16 java/lang/IllegalArgumentException
   }

   @Deprecated
   public static void combine(List<MetricsBin> var0, MetricsBin var1) {
      try {
         if (var0.size() == 0) {
            throw new IllegalArgumentException(b[11]);
         }
      } catch (IllegalArgumentException var24) {
         throw b(var24);
      }

      long var2 = -1L;
      long var4 = -1L;
      long var6 = -1L;
      long var8 = -1L;
      int var10 = 0;
      int var11 = 0;
      int var12 = 0;
      int var13 = 0;
      int var14 = 0;
      long var15 = 0L;
      int var17 = 0;
      int var18 = 0;
      long var19 = 0L;
      boolean var21 = true;

      for (MetricsBin var23 : var0) {
         if (var21) {
            var2 = var23.getPeriodStart();
            var4 = var23.getPeriodEnd();
            var6 = var23.getStartTime();
            var8 = var23.getEndTime();
            var13 = var23.getMinFrontendResponseTime();
            var14 = var23.getMaxFrontendResponseTime();
            var15 = var23.getSumFrontendResponseTime();
            var17 = var23.getMinBackendResponseTime();
            var18 = var23.getMaxBackendResponseTime();
            var19 = var23.getSumBackendResponseTime();
            var10 = var23.getNumAttemptedRequest();
            var11 = var23.getNumAuthorizedRequest();
            var12 = var23.getNumCompletedRequest();
            var21 = false;
         } else {
            var2 = Math.min(var2, var23.getPeriodStart());
            var4 = Math.max(var4, var23.getPeriodEnd());
            var6 = Math.min(var6, var23.getStartTime());
            var8 = Math.max(var8, var23.getEndTime());
            if (var10 == 0) {
               var13 = var23.getMinFrontendResponseTime();
               var14 = var23.getMaxFrontendResponseTime();
            } else if (var23.getNumAttemptedRequest() != 0) {
               var13 = min(var13, var23.getMinFrontendResponseTime());
               var14 = max(var14, var23.getMaxFrontendResponseTime());
            }

            var15 += var23.getSumFrontendResponseTime();
            if (var12 == 0) {
               var17 = var23.getMinBackendResponseTime();
               var18 = var23.getMaxBackendResponseTime();
            } else if (var23.getNumCompletedRequest() != 0) {
               var17 = min(var17, var23.getMinBackendResponseTime());
               var18 = max(var18, var23.getMaxBackendResponseTime());
            }

            var19 += var23.getSumBackendResponseTime();
            var10 += var23.getNumAttemptedRequest();
            var11 += var23.getNumAuthorizedRequest();
            var12 += var23.getNumCompletedRequest();
         }
      }

      var1.setPeriodStart(var2);
      var1.setInterval((int)(var4 - var2));
      var1.setStartTime(var6);
      var1.setEndTime(var8);
      var1.setNumAttemptedRequest(var10);
      var1.setNumAuthorizedRequest(var11);
      var1.setNumCompletedRequest(var12);
      var1.setMinFrontendResponseTime(var13);
      var1.setMaxFrontendResponseTime(var14);
      var1.setSumFrontendResponseTime(var15);
      var1.setMinBackendResponseTime(var17);
      var1.setMaxBackendResponseTime(var18);
      var1.setSumBackendResponseTime(var19);
   }

   public MetricsBin(long var1, int var3, int var4, String var5, Goid var6) {
      checkResolutionType(var4);
      this._clusterNodeId = var5;
      this._serviceGoid = var6;
      this._resolution = var4;
      this._periodStart = periodStartFor(var4, var3, var1);
      if (var4 == 0) {
         this._interval = var3;
      } else {
         label33: {
            try {
               if (var4 == 1) {
                  this._interval = 3600000;
                  break label33;
               }
            } catch (IllegalArgumentException var14) {
               throw b(var14);
            }

            label27:
            if (var4 == 2) {
               long var7 = periodEndFor(var4, var3, var1);

               try {
                  this._interval = (int)(var7 - this._periodStart);
                  if (this._interval == 86400000 || !_logger.isLoggable(Level.FINE)) {
                     break label27;
                  }
               } catch (IllegalArgumentException var13) {
                  throw b(var13);
               }

               Logger var10000 = _logger;
               double var10001 = this._interval / 60.0 / 60.0 / 1000.0;
               String var9 = String.valueOf(new Date(var1));
               double var10 = var10001;
               String[] var12 = b;
               var10000.fine(var12[16] + var10 + var12[15] + var9);
            }
         }
      }

      this._startTime = var1;
      this._endTime = this._startTime;
   }

   public MetricsBin() {
   }

   @Column(name = "nodeid")
   public String getClusterNodeId() {
      return this._clusterNodeId;
   }

   @Column(name = "published_service_goid")
   @Type(type = "com.l7tech.server.util.GoidType")
   public Goid getServiceGoid() {
      return this._serviceGoid;
   }

   @Column(name = "resolution")
   public int getResolution() {
      return this._resolution;
   }

   @Transient
   public String getResolutionName() {
      return describeResolution(this._resolution);
   }

   public static String describeResolution(int var0) {
      label21: {
         label20: {
            try {
               switch (var0) {
                  case 0:
                     return b[12];
                  case 1:
                     break label21;
                  case 2:
                     break label20;
               }
            } catch (IllegalArgumentException var2) {
               throw b(var2);
            }

            return b[9] + var0;
         }

         String[] var1 = b;
         return var1[19];
      }

      String[] var3 = b;
      return var3[8];
   }

   @Column(name = "interval_size")
   public int getInterval() {
      return this._interval;
   }

   @Column(name = "period_start")
   public long getPeriodStart() {
      return this._periodStart;
   }

   @Transient
   public long getPeriodEnd() {
      return this._periodStart + this._interval;
   }

   @Column(name = "start_time")
   public long getStartTime() {
      return this._startTime;
   }

   @Column(name = "end_time")
   public long getEndTime() {
      return this._endTime;
   }

   @Column(name = "attempted")
   public int getNumAttemptedRequest() {
      return this._numAttemptedRequest;
   }

   @Column(name = "authorized")
   public int getNumAuthorizedRequest() {
      return this._numAuthorizedRequest;
   }

   @Column(name = "completed")
   public int getNumCompletedRequest() {
      return this._numCompletedRequest;
   }

   @Transient
   public int getNumSuccess() {
      return this._numCompletedRequest;
   }

   @Transient
   public int getNumPolicyViolation() {
      return this._numAttemptedRequest - this._numAuthorizedRequest;
   }

   @Transient
   public int getNumRoutingFailure() {
      return this._numAuthorizedRequest - this._numCompletedRequest;
   }

   @Transient
   public int getNumTotal() {
      return this._numAttemptedRequest;
   }

   @Transient
   public double getActualAttemptedRate() {
      long var1 = this.getStartTime();
      long var3 = this.getEndTime();

      try {
         if (var1 == var3) {
            return 0.0;
         }
      } catch (IllegalArgumentException var5) {
         throw b(var5);
      }

      return 1000.0 * this._numAttemptedRequest / (var3 - var1);
   }

   @Transient
   public double getActualAuthorizedRate() {
      long var1 = this.getStartTime();
      long var3 = this.getEndTime();

      try {
         if (var1 == var3) {
            return 0.0;
         }
      } catch (IllegalArgumentException var5) {
         throw b(var5);
      }

      return 1000.0 * this._numAuthorizedRequest / (var3 - var1);
   }

   @Transient
   public double getActualCompletedRate() {
      long var1 = this.getStartTime();
      long var3 = this.getEndTime();

      try {
         if (var1 == var3) {
            return 0.0;
         }
      } catch (IllegalArgumentException var5) {
         throw b(var5);
      }

      return 1000.0 * this._numCompletedRequest / (var3 - var1);
   }

   @Transient
   public double getNominalAttemptedRate() {
      int var1 = this._interval;
      return 1000.0 * this._numAttemptedRequest / var1;
   }

   @Transient
   public double getNominalAuthorizedRate() {
      int var1 = this._interval;
      return 1000.0 * this._numAuthorizedRequest / var1;
   }

   @Transient
   public double getNominalCompletedRate() {
      int var1 = this._interval;
      return 1000.0 * this._numCompletedRequest / var1;
   }

   @Transient
   public double getNominalSuccessRate() {
      return 1000.0 * this.getNumSuccess() / this._interval;
   }

   @Transient
   public double getNominalPolicyViolationRate() {
      return 1000.0 * this.getNumPolicyViolation() / this._interval;
   }

   @Transient
   public double getNominalRoutingFailureRate() {
      return 1000.0 * this.getNumRoutingFailure() / this._interval;
   }

   @Transient
   public double getNominalTotalRate() {
      return 1000.0 * this.getNumTotal() / this._interval;
   }

   @Column(name = "front_min")
   public Integer getMinFrontendResponseTime() {
      return this._minFrontendResponseTime;
   }

   @Column(name = "front_max")
   public Integer getMaxFrontendResponseTime() {
      return this._maxFrontendResponseTime;
   }

   @Column(name = "front_sum")
   public long getSumFrontendResponseTime() {
      return this._sumFrontendResponseTime;
   }

   public void setServiceState(ServiceState var1) {
      this.serviceState = var1;
   }

   @Column(name = "service_state")
   @Type(
      type = "com.l7tech.server.util.GenericEnumUserType",
      parameters = @Parameter(name = "enumClass", value = "com.l7tech.gateway.common.service.ServiceState")
   )
   public ServiceState getServiceState() {
      return this.serviceState;
   }

   @Transient
   public double getAverageFrontendResponseTime() {
      int var1 = this._numAttemptedRequest;
      long var2 = this._sumFrontendResponseTime;

      try {
         if (var1 == 0) {
            return 0.0;
         }
      } catch (IllegalArgumentException var4) {
         throw b(var4);
      }

      return (double)var2 / var1;
   }

   @Column(name = "back_min")
   public Integer getMinBackendResponseTime() {
      return this._minBackendResponseTime;
   }

   @Column(name = "back_max")
   public Integer getMaxBackendResponseTime() {
      return this._maxBackendResponseTime;
   }

   @Column(name = "back_sum")
   public long getSumBackendResponseTime() {
      return this._sumBackendResponseTime;
   }

   @Transient
   public double getAverageBackendResponseTime() {
      int var1 = this._numCompletedRequest;
      long var2 = this._sumBackendResponseTime;

      try {
         if (var1 == 0) {
            return 0.0;
         }
      } catch (IllegalArgumentException var4) {
         throw b(var4);
      }

      return (double)var2 / var1;
   }

   public void setClusterNodeId(String var1) {
      this._clusterNodeId = var1;
   }

   public void setServiceGoid(Goid var1) {
      this._serviceGoid = var1;
   }

   public void setResolution(int var1) {
      checkResolutionType(var1);
      this._resolution = var1;
   }

   public void setInterval(int var1) {
      this._interval = var1;
   }

   public void setPeriodStart(long var1) {
      this._periodStart = var1;
   }

   public void setStartTime(long var1) {
      this._startTime = var1;
   }

   public void setEndTime(long var1) {
      try {
         if (var1 > this._startTime) {
            this._endTime = var1;
            return;
         }
      } catch (IllegalArgumentException var3) {
         throw b(var3);
      }

      this._endTime = this._startTime + 1L;
   }

   public void setNumAttemptedRequest(int var1) {
      this._numAttemptedRequest = var1;
   }

   public void setNumAuthorizedRequest(int var1) {
      this._numAuthorizedRequest = var1;
   }

   public void setNumCompletedRequest(int var1) {
      this._numCompletedRequest = var1;
   }

   public void setMinFrontendResponseTime(Integer var1) {
      this._minFrontendResponseTime = var1;
   }

   public void setMaxFrontendResponseTime(Integer var1) {
      this._maxFrontendResponseTime = var1;
   }

   public void setSumFrontendResponseTime(long var1) {
      this._sumFrontendResponseTime = var1;
   }

   public void setMinBackendResponseTime(Integer var1) {
      this._minBackendResponseTime = var1;
   }

   public void setMaxBackendResponseTime(Integer var1) {
      this._maxBackendResponseTime = var1;
   }

   public void setSumBackendResponseTime(long var1) {
      this._sumBackendResponseTime = var1;
   }

   public void merge(MetricsBin param1) {
      // $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: ifnull 163
      // 004: aload 0
      // 005: aload 1
      // 006: invokevirtual com/l7tech/gateway/common/service/MetricsBin.equals (Ljava/lang/Object;)Z
      // 009: ifeq 163
      // 00c: goto 013
      // 00f: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 012: athrow
      // 013: aload 0
      // 014: aload 0
      // 015: getfield com/l7tech/gateway/common/service/MetricsBin._startTime J
      // 018: aload 1
      // 019: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getStartTime ()J
      // 01c: invokestatic java/lang/Math.min (JJ)J
      // 01f: putfield com/l7tech/gateway/common/service/MetricsBin._startTime J
      // 022: aload 0
      // 023: aload 0
      // 024: getfield com/l7tech/gateway/common/service/MetricsBin._endTime J
      // 027: aload 1
      // 028: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getEndTime ()J
      // 02b: invokestatic java/lang/Math.max (JJ)J
      // 02e: putfield com/l7tech/gateway/common/service/MetricsBin._endTime J
      // 031: aload 0
      // 032: getfield com/l7tech/gateway/common/service/MetricsBin._numAttemptedRequest I
      // 035: ifne 056
      // 038: goto 03f
      // 03b: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 03e: athrow
      // 03f: aload 0
      // 040: aload 1
      // 041: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getMinFrontendResponseTime ()Ljava/lang/Integer;
      // 044: putfield com/l7tech/gateway/common/service/MetricsBin._minFrontendResponseTime Ljava/lang/Integer;
      // 047: aload 0
      // 048: aload 1
      // 049: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getMaxFrontendResponseTime ()Ljava/lang/Integer;
      // 04c: putfield com/l7tech/gateway/common/service/MetricsBin._maxFrontendResponseTime Ljava/lang/Integer;
      // 04f: goto 0ad
      // 052: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 055: athrow
      // 056: aload 1
      // 057: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getNumAttemptedRequest ()I
      // 05a: ifeq 0ad
      // 05d: aload 0
      // 05e: aload 0
      // 05f: getfield com/l7tech/gateway/common/service/MetricsBin._minFrontendResponseTime Ljava/lang/Integer;
      // 062: ifnonnull 075
      // 065: goto 06c
      // 068: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 06b: athrow
      // 06c: ldc 2147483647
      // 06e: goto 07c
      // 071: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 074: athrow
      // 075: aload 0
      // 076: getfield com/l7tech/gateway/common/service/MetricsBin._minFrontendResponseTime Ljava/lang/Integer;
      // 079: invokevirtual java/lang/Integer.intValue ()I
      // 07c: aload 1
      // 07d: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getMinFrontendResponseTime ()Ljava/lang/Integer;
      // 080: invokestatic com/l7tech/gateway/common/service/MetricsBin.min (ILjava/lang/Integer;)I
      // 083: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // 086: putfield com/l7tech/gateway/common/service/MetricsBin._minFrontendResponseTime Ljava/lang/Integer;
      // 089: aload 0
      // 08a: aload 0
      // 08b: getfield com/l7tech/gateway/common/service/MetricsBin._maxFrontendResponseTime Ljava/lang/Integer;
      // 08e: ifnonnull 099
      // 091: bipush -1
      // 092: goto 0a0
      // 095: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 098: athrow
      // 099: aload 0
      // 09a: getfield com/l7tech/gateway/common/service/MetricsBin._minFrontendResponseTime Ljava/lang/Integer;
      // 09d: invokevirtual java/lang/Integer.intValue ()I
      // 0a0: aload 1
      // 0a1: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getMaxFrontendResponseTime ()Ljava/lang/Integer;
      // 0a4: invokestatic com/l7tech/gateway/common/service/MetricsBin.max (ILjava/lang/Integer;)I
      // 0a7: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // 0aa: putfield com/l7tech/gateway/common/service/MetricsBin._maxFrontendResponseTime Ljava/lang/Integer;
      // 0ad: aload 0
      // 0ae: getfield com/l7tech/gateway/common/service/MetricsBin._numCompletedRequest I
      // 0b1: ifne 0cb
      // 0b4: aload 0
      // 0b5: aload 1
      // 0b6: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getMinBackendResponseTime ()Ljava/lang/Integer;
      // 0b9: putfield com/l7tech/gateway/common/service/MetricsBin._minBackendResponseTime Ljava/lang/Integer;
      // 0bc: aload 0
      // 0bd: aload 1
      // 0be: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getMaxBackendResponseTime ()Ljava/lang/Integer;
      // 0c1: putfield com/l7tech/gateway/common/service/MetricsBin._maxBackendResponseTime Ljava/lang/Integer;
      // 0c4: goto 122
      // 0c7: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0ca: athrow
      // 0cb: aload 1
      // 0cc: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getNumCompletedRequest ()I
      // 0cf: ifeq 122
      // 0d2: aload 0
      // 0d3: aload 0
      // 0d4: getfield com/l7tech/gateway/common/service/MetricsBin._minBackendResponseTime Ljava/lang/Integer;
      // 0d7: ifnonnull 0ea
      // 0da: goto 0e1
      // 0dd: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0e0: athrow
      // 0e1: ldc 2147483647
      // 0e3: goto 0f1
      // 0e6: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0e9: athrow
      // 0ea: aload 0
      // 0eb: getfield com/l7tech/gateway/common/service/MetricsBin._minBackendResponseTime Ljava/lang/Integer;
      // 0ee: invokevirtual java/lang/Integer.intValue ()I
      // 0f1: aload 1
      // 0f2: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getMinBackendResponseTime ()Ljava/lang/Integer;
      // 0f5: invokestatic com/l7tech/gateway/common/service/MetricsBin.min (ILjava/lang/Integer;)I
      // 0f8: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // 0fb: putfield com/l7tech/gateway/common/service/MetricsBin._minBackendResponseTime Ljava/lang/Integer;
      // 0fe: aload 0
      // 0ff: aload 0
      // 100: getfield com/l7tech/gateway/common/service/MetricsBin._maxBackendResponseTime Ljava/lang/Integer;
      // 103: ifnonnull 10e
      // 106: bipush -1
      // 107: goto 115
      // 10a: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 10d: athrow
      // 10e: aload 0
      // 10f: getfield com/l7tech/gateway/common/service/MetricsBin._minBackendResponseTime Ljava/lang/Integer;
      // 112: invokevirtual java/lang/Integer.intValue ()I
      // 115: aload 1
      // 116: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getMaxBackendResponseTime ()Ljava/lang/Integer;
      // 119: invokestatic com/l7tech/gateway/common/service/MetricsBin.max (ILjava/lang/Integer;)I
      // 11c: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // 11f: putfield com/l7tech/gateway/common/service/MetricsBin._maxBackendResponseTime Ljava/lang/Integer;
      // 122: aload 0
      // 123: dup
      // 124: getfield com/l7tech/gateway/common/service/MetricsBin._sumFrontendResponseTime J
      // 127: aload 1
      // 128: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getSumFrontendResponseTime ()J
      // 12b: ladd
      // 12c: putfield com/l7tech/gateway/common/service/MetricsBin._sumFrontendResponseTime J
      // 12f: aload 0
      // 130: dup
      // 131: getfield com/l7tech/gateway/common/service/MetricsBin._sumBackendResponseTime J
      // 134: aload 1
      // 135: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getSumBackendResponseTime ()J
      // 138: ladd
      // 139: putfield com/l7tech/gateway/common/service/MetricsBin._sumBackendResponseTime J
      // 13c: aload 0
      // 13d: dup
      // 13e: getfield com/l7tech/gateway/common/service/MetricsBin._numAttemptedRequest I
      // 141: aload 1
      // 142: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getNumAttemptedRequest ()I
      // 145: iadd
      // 146: putfield com/l7tech/gateway/common/service/MetricsBin._numAttemptedRequest I
      // 149: aload 0
      // 14a: dup
      // 14b: getfield com/l7tech/gateway/common/service/MetricsBin._numAuthorizedRequest I
      // 14e: aload 1
      // 14f: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getNumAuthorizedRequest ()I
      // 152: iadd
      // 153: putfield com/l7tech/gateway/common/service/MetricsBin._numAuthorizedRequest I
      // 156: aload 0
      // 157: dup
      // 158: getfield com/l7tech/gateway/common/service/MetricsBin._numCompletedRequest I
      // 15b: aload 1
      // 15c: invokevirtual com/l7tech/gateway/common/service/MetricsBin.getNumCompletedRequest ()I
      // 15f: iadd
      // 160: putfield com/l7tech/gateway/common/service/MetricsBin._numCompletedRequest I
      // 163: return
      // try (0 -> 6): 7 java/lang/IllegalArgumentException
      // try (2 -> 26): 27 java/lang/IllegalArgumentException
      // try (9 -> 38): 38 java/lang/IllegalArgumentException
      // try (40 -> 47): 48 java/lang/IllegalArgumentException
      // try (43 -> 52): 52 java/lang/IllegalArgumentException
      // try (57 -> 68): 68 java/lang/IllegalArgumentException
      // try (78 -> 90): 90 java/lang/IllegalArgumentException
      // try (92 -> 99): 100 java/lang/IllegalArgumentException
      // try (95 -> 104): 104 java/lang/IllegalArgumentException
      // try (109 -> 120): 120 java/lang/IllegalArgumentException
   }

   @Override
   public String toString() {
      int var1 = this._numAttemptedRequest;
      int var2 = this._numAuthorizedRequest;
      int var3 = this._numCompletedRequest;
      String[] var6 = b;
      StringBuffer var4 = new StringBuffer(var6[18]);
      var4.append(this.getResolutionName());
      SimpleDateFormat var5 = new SimpleDateFormat(var6[0]);

      try {
         var4.append(var6[14]).append(var5.format(new Date(this._periodStart)));
         var4.append(var6[4]).append(var5.format(new Date(this._startTime)));
         var4.append(var6[1]).append(var5.format(new Date(this._endTime)));
         if (this._resolution == 0) {
            var4.append(var6[20]).append(this._interval);
         }
      } catch (IllegalArgumentException var7) {
         throw b(var7);
      }

      var6 = b;
      var4.append(var6[6]).append(var1);
      var4.append(var6[2]).append(var2);
      var4.append(var6[13]).append(var3);
      var4.append(var6[7]);
      return var4.toString();
   }

   @Override
   public boolean equals(Object param1) {
      // $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: aload 1
      // 02: if_acmpne 0b
      // 05: bipush 1
      // 06: ireturn
      // 07: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0a: athrow
      // 0b: aload 1
      // 0c: ifnull 21
      // 0f: aload 0
      // 10: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 13: aload 1
      // 14: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 17: if_acmpeq 27
      // 1a: goto 21
      // 1d: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 20: athrow
      // 21: bipush 0
      // 22: ireturn
      // 23: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 26: athrow
      // 27: aload 1
      // 28: checkcast com/l7tech/gateway/common/service/MetricsBin
      // 2b: astore 2
      // 2c: aload 0
      // 2d: getfield com/l7tech/gateway/common/service/MetricsBin._periodStart J
      // 30: aload 2
      // 31: getfield com/l7tech/gateway/common/service/MetricsBin._periodStart J
      // 34: lcmp
      // 35: ifeq 3e
      // 38: bipush 0
      // 39: ireturn
      // 3a: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 3d: athrow
      // 3e: aload 0
      // 3f: getfield com/l7tech/gateway/common/service/MetricsBin._resolution I
      // 42: aload 2
      // 43: getfield com/l7tech/gateway/common/service/MetricsBin._resolution I
      // 46: if_icmpeq 4f
      // 49: bipush 0
      // 4a: ireturn
      // 4b: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 4e: athrow
      // 4f: aload 0
      // 50: getfield com/l7tech/gateway/common/service/MetricsBin._serviceGoid Lcom/l7tech/objectmodel/Goid;
      // 53: aload 2
      // 54: getfield com/l7tech/gateway/common/service/MetricsBin._serviceGoid Lcom/l7tech/objectmodel/Goid;
      // 57: invokestatic com/l7tech/objectmodel/Goid.equals (Lcom/l7tech/objectmodel/Goid;Lcom/l7tech/objectmodel/Goid;)Z
      // 5a: ifne 63
      // 5d: bipush 0
      // 5e: ireturn
      // 5f: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 62: athrow
      // 63: aload 0
      // 64: getfield com/l7tech/gateway/common/service/MetricsBin._interval I
      // 67: aload 2
      // 68: getfield com/l7tech/gateway/common/service/MetricsBin._interval I
      // 6b: if_icmpeq 74
      // 6e: bipush 0
      // 6f: ireturn
      // 70: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 73: athrow
      // 74: aload 0
      // 75: getfield com/l7tech/gateway/common/service/MetricsBin._clusterNodeId Ljava/lang/String;
      // 78: ifnull 97
      // 7b: aload 0
      // 7c: getfield com/l7tech/gateway/common/service/MetricsBin._clusterNodeId Ljava/lang/String;
      // 7f: aload 2
      // 80: getfield com/l7tech/gateway/common/service/MetricsBin._clusterNodeId Ljava/lang/String;
      // 83: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 86: ifne 9e
      // 89: goto 90
      // 8c: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 8f: athrow
      // 90: goto a6
      // 93: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 96: athrow
      // 97: aload 2
      // 98: getfield com/l7tech/gateway/common/service/MetricsBin._clusterNodeId Ljava/lang/String;
      // 9b: ifnonnull a6
      // 9e: bipush 1
      // 9f: goto a7
      // a2: invokestatic com/l7tech/gateway/common/service/MetricsBin.b (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // a5: athrow
      // a6: bipush 0
      // a7: ireturn
      // try (0 -> 5): 5 java/lang/IllegalArgumentException
      // try (7 -> 14): 15 java/lang/IllegalArgumentException
      // try (9 -> 19): 19 java/lang/IllegalArgumentException
      // try (24 -> 32): 32 java/lang/IllegalArgumentException
      // try (34 -> 41): 41 java/lang/IllegalArgumentException
      // try (43 -> 51): 51 java/lang/IllegalArgumentException
      // try (53 -> 60): 60 java/lang/IllegalArgumentException
      // try (62 -> 71): 72 java/lang/IllegalArgumentException
      // try (65 -> 75): 75 java/lang/IllegalArgumentException
      // try (77 -> 82): 82 java/lang/IllegalArgumentException
   }

   @Override
   public int hashCode() {
      int var1 = this._resolution;
      var1 = 29 * var1 + (int)(this._startTime ^ this._startTime >>> 32);
      var1 = 29 * var1 + (int)(this._periodStart ^ this._periodStart >>> 32);

      int var10000;
      int var10001;
      label31: {
         try {
            var10000 = 29 * var1;
            if (this._serviceGoid != null) {
               var10001 = this._serviceGoid.hashCode();
               break label31;
            }
         } catch (IllegalArgumentException var3) {
            throw b(var3);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label23: {
         try {
            var10000 = 29 * var1;
            if (this._clusterNodeId != null) {
               var10001 = this._clusterNodeId.hashCode();
               break label23;
            }
         } catch (IllegalArgumentException var2) {
            throw b(var2);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;
      return 29 * var1 + this._interval;
   }

   @Override
   public int compareTo(Object var1) {
      MetricsBin var2 = (MetricsBin)var1;

      try {
         if (this._resolution == var2._resolution) {
            return (int)(this._periodStart - var2._periodStart);
         }
      } catch (IllegalArgumentException var3) {
         throw b(var3);
      }

      return this._resolution - var2._resolution;
   }

   static int min(int var0, Integer var1) {
      try {
         if (var1 == null) {
            return var0;
         }
      } catch (IllegalArgumentException var2) {
         throw b(var2);
      }

      return Math.min(var0, var1);
   }

   static int max(int var0, Integer var1) {
      try {
         if (var1 == null) {
            return var0;
         }
      } catch (IllegalArgumentException var2) {
         throw b(var2);
      }

      return Math.max(var0, var1);
   }

   static {
      String[] var5 = new String[21];
      int var3 = 0;
      String var2 = "7:\"s\u001f\f/c'?*z\tX#.ayAo1\u001d\u0010\u000blc>dV\u0015\u000b#&f(\u000elc:\u007fF)\r<*!oV|@\u000b=&)|[\"\u0007\t,2n\rlc(~S3\u0016\u001a*6o\u000fc\u0017\u0007--k^(\u0006n1>y]-\u0017:*4d\u00125\u001b>&\rlc:~F$\u000f>7>n\u000fc\u0003lle\u0006&,.x^8\t\u001b-0d]6\ftc\u001e\b*5o\u0012#\u000b c2dF$\u00108\"7*[2B<&*\u007f[3\u0007*m#\u00036(~\u0012)\u00038&{kFa\u000e+\"(~\u0012.\f+c6oF3\u000b-0{h[/L\u0004(*5o\rlc8e_1\u000e+7>n\u000fc\u000flc+o@(\r*\u0010/k@5_l\u0015n+4\u007f@2Nn0/k@5B:*6o\u0012|B/\r1>kF$\u0006n-4d\u001fsVc+4\u007f@a\u000e!-<*V \u000b\":{h[/Xn*5~W3\u0014//{7\u0012\u001e\b*5o\u0012#\u000b c2dF$\u00108\"7*[2B<&*\u007f[3\u0007*m\u0018r\u000e>~@(\u0001=\u00012d\u00123\u0007=,7\u007fF(\r ~y";
      int var4 = "7:\"s\u001f\f/c'?*z\tX#.ayAo1\u001d\u0010\u000blc>dV\u0015\u000b#&f(\u000elc:\u007fF)\r<*!oV|@\u000b=&)|[\"\u0007\t,2n\rlc(~S3\u0016\u001a*6o\u000fc\u0017\u0007--k^(\u0006n1>y]-\u0017:*4d\u00125\u001b>&\rlc:~F$\u000f>7>n\u000fc\u0003lle\u0006&,.x^8\t\u001b-0d]6\ftc\u001e\b*5o\u0012#\u000b c2dF$\u00108\"7*[2B<&*\u007f[3\u0007*m#\u00036(~\u0012)\u00038&{kFa\u000e+\"(~\u0012.\f+c6oF3\u000b-0{h[/L\u0004(*5o\rlc8e_1\u000e+7>n\u000fc\u000flc+o@(\r*\u0010/k@5_l\u0015n+4\u007f@2Nn0/k@5B:*6o\u0012|B/\r1>kF$\u0006n-4d\u001fsVc+4\u007f@a\u000e!-<*V \u000b\":{h[/Xn*5~W3\u0014//{7\u0012\u001e\b*5o\u0012#\u000b c2dF$\u00108\"7*[2B<&*\u007f[3\u0007*m\u0018r\u000e>~@(\u0001=\u00012d\u00123\u0007=,7\u007fF(\r ~y"
         .length();
      char var1 = 23;
      int var7 = -1;

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

         while (true) {
            String var8 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     b = var5;
                     ATTR_SERVICE_GOID = b[3];
                     _logger = Logger.getLogger(MetricsBin.class.getName());
                     return;
                  }

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

                  var2 = "}ue1\u001c\f;4e3\u0011sGou``G";
                  var4 = "}ue1\u001c\f;4e3\u0011sGou``G".length();
                  var1 = 5;
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 84;
            case 1 -> 89;
            case 2 -> 65;
            case 3 -> 16;
            case 4 -> 40;
            case 5 -> 91;
            default -> 120;
         });
      }

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