package com.l7tech.policy.code.config.schema;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.l7tech.objectmodel.encass.EncapsulatedAssertionArgumentDescriptor;
import com.l7tech.policy.code.config.AssertionSubTypeConfig;
import com.l7tech.policy.code.config.AssertionTypeConfig;
import com.l7tech.policy.code.config.BeanTypeConfig;
import com.l7tech.policy.code.config.BeanTypeConfigFinder;
import com.l7tech.policy.code.config.FieldTypeConfig;
import com.l7tech.policy.code.config.PolicyCodeConfig;
import com.l7tech.policy.code.transformer.FieldTransformerFactory;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.logging.Logger;

public final class JsonSchemaGenerator {
   private static final Logger a;
   private static final String b;
   public static final String ASSERTION_SCHEMA_NAMESPACE;
   public static final String ASSERTION_SUBTYPE_SCHEMA_NAMESPACE;
   public static final String MAIN_SCHEMA_SUFFIX;
   private final ObjectMapper c;
   private final PolicyCodeConfig d;
   private final FieldTypeConfigJsonSchemaDefiner e;
   private final FieldTypeConfigJsonSchemaDefiner f;
   private final EncapsulatedJsonSchemaDefiner g;
   private final Set<String> h = Set.of(
      Boolean.class.getName(), Integer.class.getName(), Long.class.getName(), Float.class.getName(), Double.class.getName(), String.class.getName()
   );
   private static final String[] i;

   public JsonSchemaGenerator(PolicyCodeConfig var1, FieldTransformerFactory var2) {
      this.d = var1;
      this.e = new PrimitiveFieldJsonSchemaDefiner();
      this.f = new EnumFieldJsonSchemaDefiner(var2);
      this.g = new EncapsulatedJsonSchemaDefiner();
      this.c = new ObjectMapper().configure(SerializationFeature.INDENT_OUTPUT, false);
   }

   public String getAssertionSchemaId(AssertionTypeConfig var1) {
      return i[39] + var1.getExternalName();
   }

   public JsonNode generateSchema(String var1, List<EncapsulatedAssertionArgumentDescriptor> var2) {
      try {
         ObjectNode var3 = this.c.createObjectNode();
         this.b(var3);
         String[] var4 = i;
         var3.put(var4[17], var1);
         var3.put(var4[7], var4[41]);
         this.g.generate(var2, var3);
         return var3;
      } catch (Exception var5) {
         throw new RuntimeException(i[19] + var1, var5);
      }
   }

   public List<JsonNode> generateSchemas(Class<?> var1, BeanTypeConfigFinder var2) {
      try {
         BeanTypeConfig var3 = var2.getBeanTypeConfig(var1);
         ArrayNode var4 = this.c.createArrayNode();
         ObjectNode var5 = var4.addObject();
         ObjectNode var6 = this.a(var3, var5);
         this.b(var3, var5, var6);
         this.a(var5, var4);
         ArrayList var7 = new ArrayList();
         var4.forEach(var7::add);
         return var7;
      } catch (Exception var9) {
         String var10002 = var1.getName();
         String[] var8 = i;
         throw new RuntimeException(var8[6] + var10002 + var8[33], var9);
      }
   }

   public List<JsonNode> generateAssertionSchemas(AssertionTypeConfig var1) {
      try {
         ArrayNode var2 = this.c.createArrayNode();
         this.a(var1, var2.addObject(), var2);
         this.a(var1, var2.addObject());
         ArrayList var3 = new ArrayList();
         var2.forEach(var3::add);
         return var3;
      } catch (Exception var5) {
         String var10002 = var1.getName();
         String var10003 = var1.getExternalName();
         String[] var4 = i;
         throw new RuntimeException(var4[46] + var10002 + "[" + var10003 + var4[24], var5);
      }
   }

   private ObjectNode a(BeanTypeConfig var1, ObjectNode var2) {
      String[] var4 = i;
      ObjectNode var3 = var2.withObject(var4[20]);
      var3.put(var4[4], var1.getExternalName());
      var3.withObject(var4[31]);
      var3.withObject(var4[0]);
      return var3;
   }

   private void a(ObjectNode var1) {
      String[] var2 = i;
      var1.put(var2[21], var2[50]).putObject(var2[30]).put(var2[7], var2[22]);
   }

   private void a(ObjectNode var1, ArrayNode var2) {
      String[] var4 = i;
      ObjectNode var3 = var1.withObject(var4[3]);
      var3.get(var4[9]).forEach(var2::add);
      var3.get(var4[2]).forEach(var2::add);
      var1.remove(var4[3]);
   }

   private void a(AssertionTypeConfig var1, ObjectNode var2) {
      String[] var3 = i;
      var2.put(var3[7], var3[41]);
      this.b(var2);
      var2.put(var3[17], this.getAssertionSchemaId(var1) + var3[8]);
      var2.put(var3[36], var1.getShortName());
      var2.withObject(var3[29]).putObject(var1.getExternalName()).put(var3[12], this.getAssertionSchemaId(var1));
   }

   private void a(AssertionTypeConfig var1, ObjectNode var2, ArrayNode var3) {
      ObjectNode var4 = this.a((BeanTypeConfig)var1, var2);
      this.b(var2);
      String[] var7 = i;
      var2.put(var7[17], this.getAssertionSchemaId(var1));
      var2.put(var7[40], var1.getShortName());
      ObjectNode var5 = var2;

      label35: {
         label34: {
            label39: {
               try {
                  if (var1.isComposite()) {
                     if (var1.isConfigPrimitive()) {
                        break label34;
                     }
                     break label39;
                  }
               } catch (RuntimeException var9) {
                  throw a(var9);
               }

               try {
                  if (var1.isDefaultFieldTypeConfigPrimitive()) {
                     var2.putArray(i[7]).add(PrimitiveFieldJsonSchemaDefiner.toSchemaType(var1.getDefaultFieldTypeConfig().getRawType())).add(i[41]);
                     break label35;
                  }
               } catch (RuntimeException var8) {
                  throw a(var8);
               }

               var7 = i;
               var2.put(var7[7], var7[41]);
               break label35;
            }

            var7 = i;
            var2.put(var7[7], var7[41]);
            break label35;
         }

         var7 = i;
         ArrayNode var6 = var2.putArray(var7[52]);
         this.a(var6.addObject());
         var5 = var6.addObject();
         var5.put(var7[7], var7[41]);
      }

      this.c(var1, var5, var4);
      this.b(var1, var5);
      this.a(var2, var3);
   }

   private void b(AssertionTypeConfig var1, ObjectNode var2) {
      String[] var4 = i;
      ObjectNode var3 = var2.withObject(var4[29]);

      try {
         var3.putObject(var4[43]).put(var4[7], var4[42]).put(var4[14], true);
         var3.putObject(var4[26]).put(var4[7], var4[44]);
         var3.putObject(var4[23]).put(var4[7], var4[51]);
         if (var1.isComposite()) {
            this.a(var3.putObject(var4[35]));
         }
      } catch (RuntimeException var5) {
         throw a(var5);
      }
   }

   private void a(BeanTypeConfig var1, ObjectNode var2, ObjectNode var3) {
      String[] var6 = i;
      var2.put(var6[7], var6[41]);
      this.b(var2);
      String var10001 = var6[38];
      String var10002 = var3.get(var6[48]).asText();
      String var4 = var1.getExternalName();
      String var5 = var10002;
      var2.put(var10001, var6[15] + var5 + var4);
      this.c(var1, var2, var3);
   }

   private void b(BeanTypeConfig param1, ObjectNode param2, ObjectNode param3) {
      // $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: getstatic com/l7tech/policy/code/transformer/BeanTypeCategory.WSP_ENUM Lcom/l7tech/policy/code/transformer/BeanTypeCategory;
      // 03: aload 1
      // 04: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getCategory ()Lcom/l7tech/policy/code/transformer/BeanTypeCategory;
      // 07: invokevirtual com/l7tech/policy/code/transformer/BeanTypeCategory.equals (Ljava/lang/Object;)Z
      // 0a: ifne 35
      // 0d: getstatic com/l7tech/policy/code/transformer/BeanTypeCategory.JAVA_ENUM Lcom/l7tech/policy/code/transformer/BeanTypeCategory;
      // 10: aload 1
      // 11: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getCategory ()Lcom/l7tech/policy/code/transformer/BeanTypeCategory;
      // 14: invokevirtual com/l7tech/policy/code/transformer/BeanTypeCategory.equals (Ljava/lang/Object;)Z
      // 17: ifne 35
      // 1a: goto 21
      // 1d: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 20: athrow
      // 21: getstatic com/l7tech/policy/code/transformer/BeanTypeCategory.BASIC_OBJECT_STRING Lcom/l7tech/policy/code/transformer/BeanTypeCategory;
      // 24: aload 1
      // 25: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getCategory ()Lcom/l7tech/policy/code/transformer/BeanTypeCategory;
      // 28: invokevirtual com/l7tech/policy/code/transformer/BeanTypeCategory.equals (Ljava/lang/Object;)Z
      // 2b: ifeq 78
      // 2e: goto 35
      // 31: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 34: athrow
      // 35: aload 2
      // 36: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 39: bipush 7
      // 3b: aaload
      // 3c: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 3f: bipush 51
      // 41: aaload
      // 42: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.put (Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 45: pop
      // 46: aload 0
      // 47: aload 2
      // 48: invokevirtual com/l7tech/policy/code/config/schema/JsonSchemaGenerator.b (Lcom/fasterxml/jackson/databind/node/ObjectNode;)V
      // 4b: aload 2
      // 4c: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 4f: bipush 17
      // 51: aaload
      // 52: aload 1
      // 53: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getExternalName ()Ljava/lang/String;
      // 56: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 59: bipush 11
      // 5b: aaload
      // 5c: swap
      // 5d: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 62: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.put (Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 65: pop
      // 66: aload 0
      // 67: getfield com/l7tech/policy/code/config/schema/JsonSchemaGenerator.f Lcom/l7tech/policy/code/config/schema/FieldTypeConfigJsonSchemaDefiner;
      // 6a: aload 1
      // 6b: aload 2
      // 6c: invokeinterface com/l7tech/policy/code/config/schema/FieldTypeConfigJsonSchemaDefiner.definePermittedValues (Lcom/l7tech/policy/code/config/BeanTypeConfig;Lcom/fasterxml/jackson/databind/node/ObjectNode;)V 3
      // 71: goto dc
      // 74: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 77: athrow
      // 78: aload 2
      // 79: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 7c: bipush 7
      // 7e: aaload
      // 7f: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 82: bipush 41
      // 84: aaload
      // 85: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.put (Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 88: pop
      // 89: aload 0
      // 8a: aload 2
      // 8b: invokevirtual com/l7tech/policy/code/config/schema/JsonSchemaGenerator.b (Lcom/fasterxml/jackson/databind/node/ObjectNode;)V
      // 8e: aload 2
      // 8f: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 92: bipush 17
      // 94: aaload
      // 95: aload 1
      // 96: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getExternalName ()Ljava/lang/String;
      // 99: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 9c: bipush 11
      // 9e: aaload
      // 9f: swap
      // a0: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // a5: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.put (Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // a8: pop
      // a9: aload 0
      // aa: aload 1
      // ab: aload 2
      // ac: aload 3
      // ad: invokevirtual com/l7tech/policy/code/config/schema/JsonSchemaGenerator.c (Lcom/l7tech/policy/code/config/BeanTypeConfig;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;)V
      // b0: getstatic com/l7tech/policy/code/transformer/BeanTypeCategory.ABSTRACT Lcom/l7tech/policy/code/transformer/BeanTypeCategory;
      // b3: aload 1
      // b4: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getCategory ()Lcom/l7tech/policy/code/transformer/BeanTypeCategory;
      // b7: invokevirtual com/l7tech/policy/code/transformer/BeanTypeCategory.equals (Ljava/lang/Object;)Z
      // ba: ifeq dc
      // bd: aload 1
      // be: instanceof com/l7tech/policy/code/config/AssertionSubTypeConfig
      // c1: ifeq dc
      // c4: goto cb
      // c7: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // ca: athrow
      // cb: aload 0
      // cc: aload 1
      // cd: checkcast com/l7tech/policy/code/config/AssertionSubTypeConfig
      // d0: aload 2
      // d1: aload 3
      // d2: invokevirtual com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Lcom/l7tech/policy/code/config/AssertionSubTypeConfig;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;)V
      // d5: goto dc
      // d8: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // db: athrow
      // dc: return
      // try (0 -> 10): 11 java/lang/RuntimeException
      // try (5 -> 18): 19 java/lang/RuntimeException
      // try (13 -> 52): 52 java/lang/RuntimeException
      // try (54 -> 92): 93 java/lang/RuntimeException
      // try (89 -> 101): 102 java/lang/RuntimeException
   }

   private void a(AssertionSubTypeConfig var1, ObjectNode var2, ObjectNode var3) {
      String var4 = var1.getCategoryHint();
      if (var4 != null) {
         String[] var12 = i;
         ArrayNode var5 = var2.withArray(var12[10]);

         for (String var9 : var4.split(",")) {
            BeanTypeConfig var10 = this.d.getBeanTypeConfigByExtNameSilently(var9);
            if (var10 != null) {
               ObjectNode var11 = var5.addObject();
               var12 = i;
               var11.put(var12[7], var12[41]);
               this.c(var10, var11, var3);
            }
         }
      }
   }

   private void c(BeanTypeConfig var1, ObjectNode var2, ObjectNode var3) {
      if (var1.hasFields()) {
         ObjectNode var4 = var2.withObject(i[18]);
         var1.getOrderedFields().forEach(var5 -> {
            try {
               if (!var5.isIgnored()) {
                  this.a(var1, var5, var5.getRawType(), var5.getGenericType(), var4.withObject(var5.getExternalName()), var2, var3);
               }
            } catch (RuntimeException var6) {
               throw a(var6);
            }
         });
      }
   }

   private void a(BeanTypeConfig param1, FieldTypeConfig param2, Class<?> param3, Type param4, ObjectNode param5, ObjectNode param6, ObjectNode param7) {
      // $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 3
      // 001: invokevirtual java/lang/Class.isPrimitive ()Z
      // 004: ifne 034
      // 007: aload 3
      // 008: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 00b: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 00e: bipush 1
      // 00f: aaload
      // 010: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 013: ifeq 04b
      // 016: goto 01d
      // 019: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 01c: athrow
      // 01d: aload 0
      // 01e: getfield com/l7tech/policy/code/config/schema/JsonSchemaGenerator.h Ljava/util/Set;
      // 021: aload 3
      // 022: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 025: invokeinterface java/util/Set.contains (Ljava/lang/Object;)Z 2
      // 02a: ifeq 04b
      // 02d: goto 034
      // 030: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 033: athrow
      // 034: aload 0
      // 035: getfield com/l7tech/policy/code/config/schema/JsonSchemaGenerator.e Lcom/l7tech/policy/code/config/schema/FieldTypeConfigJsonSchemaDefiner;
      // 038: aload 1
      // 039: aload 2
      // 03a: aload 3
      // 03b: aload 5
      // 03d: aload 6
      // 03f: invokeinterface com/l7tech/policy/code/config/schema/FieldTypeConfigJsonSchemaDefiner.define (Lcom/l7tech/policy/code/config/BeanTypeConfig;Lcom/l7tech/policy/code/config/FieldTypeConfig;Ljava/lang/Class;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;)V 6
      // 044: goto 2ab
      // 047: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 04a: athrow
      // 04b: aload 3
      // 04c: invokevirtual java/lang/Class.isEnum ()Z
      // 04f: ifeq 069
      // 052: aload 0
      // 053: getfield com/l7tech/policy/code/config/schema/JsonSchemaGenerator.f Lcom/l7tech/policy/code/config/schema/FieldTypeConfigJsonSchemaDefiner;
      // 056: aload 1
      // 057: aload 2
      // 058: aload 3
      // 059: aload 5
      // 05b: aload 6
      // 05d: invokeinterface com/l7tech/policy/code/config/schema/FieldTypeConfigJsonSchemaDefiner.define (Lcom/l7tech/policy/code/config/BeanTypeConfig;Lcom/l7tech/policy/code/config/FieldTypeConfig;Ljava/lang/Class;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;)V 6
      // 062: goto 2ab
      // 065: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 068: athrow
      // 069: aload 3
      // 06a: invokevirtual java/lang/Class.isArray ()Z
      // 06d: ifeq 0a3
      // 070: aload 5
      // 072: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 075: bipush 7
      // 077: aaload
      // 078: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 07b: bipush 47
      // 07d: aaload
      // 07e: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.put (Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 081: pop
      // 082: aload 0
      // 083: aload 1
      // 084: aload 2
      // 085: aload 3
      // 086: invokevirtual java/lang/Class.getComponentType ()Ljava/lang/Class;
      // 089: aconst_null
      // 08a: aload 5
      // 08c: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 08f: bipush 45
      // 091: aaload
      // 092: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.withObject (Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 095: aload 5
      // 097: aload 7
      // 099: invokevirtual com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Lcom/l7tech/policy/code/config/BeanTypeConfig;Lcom/l7tech/policy/code/config/FieldTypeConfig;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;)V
      // 09c: goto 2ab
      // 09f: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 0a2: athrow
      // 0a3: ldc java/util/Set
      // 0a5: aload 3
      // 0a6: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 0a9: ifne 0bc
      // 0ac: ldc java/util/Collection
      // 0ae: aload 3
      // 0af: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 0b2: ifeq 0f0
      // 0b5: goto 0bc
      // 0b8: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 0bb: athrow
      // 0bc: aload 5
      // 0be: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 0c1: bipush 7
      // 0c3: aaload
      // 0c4: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 0c7: bipush 47
      // 0c9: aaload
      // 0ca: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.put (Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 0cd: pop
      // 0ce: aload 0
      // 0cf: aload 1
      // 0d0: aload 2
      // 0d1: aload 4
      // 0d3: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/reflect/Type;)Ljava/lang/Class;
      // 0d6: aconst_null
      // 0d7: aload 5
      // 0d9: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 0dc: bipush 45
      // 0de: aaload
      // 0df: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.withObject (Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 0e2: aload 5
      // 0e4: aload 7
      // 0e6: invokevirtual com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Lcom/l7tech/policy/code/config/BeanTypeConfig;Lcom/l7tech/policy/code/config/FieldTypeConfig;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;)V
      // 0e9: goto 2ab
      // 0ec: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 0ef: athrow
      // 0f0: ldc java/util/Map
      // 0f2: aload 3
      // 0f3: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 0f6: ifeq 149
      // 0f9: aload 5
      // 0fb: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 0fe: astore 12
      // 100: aload 12
      // 102: bipush 7
      // 104: aaload
      // 105: aload 12
      // 107: bipush 41
      // 109: aaload
      // 10a: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.put (Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 10d: pop
      // 10e: aload 4
      // 110: bipush 1
      // 111: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/reflect/Type;I)Ljava/lang/Class;
      // 114: astore 8
      // 116: ldc java/lang/Object
      // 118: aload 8
      // 11a: invokevirtual java/lang/Object.equals (Ljava/lang/Object;)Z
      // 11d: ifne 146
      // 120: aload 0
      // 121: aload 1
      // 122: aload 2
      // 123: aload 8
      // 125: aconst_null
      // 126: aload 5
      // 128: aload 12
      // 12a: bipush 49
      // 12c: aaload
      // 12d: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.withObject (Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 130: aload 12
      // 132: bipush 27
      // 134: aaload
      // 135: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.withObject (Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 138: aload 5
      // 13a: aload 7
      // 13c: invokevirtual com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Lcom/l7tech/policy/code/config/BeanTypeConfig;Lcom/l7tech/policy/code/config/FieldTypeConfig;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;)V
      // 13f: goto 146
      // 142: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 145: athrow
      // 146: goto 2ab
      // 149: aload 1
      // 14a: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getFinder ()Lcom/l7tech/policy/code/config/BeanTypeConfigFinder;
      // 14d: aload 3
      // 14e: invokeinterface com/l7tech/policy/code/config/BeanTypeConfigFinder.getBeanTypeConfigSilently (Ljava/lang/Class;)Lcom/l7tech/policy/code/config/BeanTypeConfig; 2
      // 153: astore 8
      // 155: aload 8
      // 157: ifnull 27e
      // 15a: aload 8
      // 15c: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getExternalName ()Ljava/lang/String;
      // 15f: ldc ":"
      // 161: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 164: ifeq 1d9
      // 167: goto 16e
      // 16a: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 16d: athrow
      // 16e: aload 7
      // 170: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 173: astore 12
      // 175: aload 12
      // 177: bipush 48
      // 179: aaload
      // 17a: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.get (Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
      // 17d: invokevirtual com/fasterxml/jackson/databind/JsonNode.asText ()Ljava/lang/String;
      // 180: aload 8
      // 182: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getExternalName ()Ljava/lang/String;
      // 185: astore 10
      // 187: astore 11
      // 189: aload 12
      // 18b: bipush 39
      // 18d: aaload
      // 18e: aload 11
      // 190: aload 10
      // 192: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 197: astore 9
      // 199: aload 5
      // 19b: aload 12
      // 19d: bipush 28
      // 19f: aaload
      // 1a0: aload 9
      // 1a2: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.put (Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 1a5: pop
      // 1a6: aload 7
      // 1a8: aload 12
      // 1aa: bipush 9
      // 1ac: aaload
      // 1ad: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.get (Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
      // 1b0: aload 9
      // 1b2: invokevirtual com/fasterxml/jackson/databind/JsonNode.has (Ljava/lang/String;)Z
      // 1b5: ifne 1d6
      // 1b8: aload 0
      // 1b9: aload 8
      // 1bb: aload 7
      // 1bd: aload 12
      // 1bf: bipush 9
      // 1c1: aaload
      // 1c2: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.get (Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
      // 1c5: aload 9
      // 1c7: invokevirtual com/fasterxml/jackson/databind/JsonNode.withObject (Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 1ca: aload 7
      // 1cc: invokevirtual com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Lcom/l7tech/policy/code/config/BeanTypeConfig;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;)V
      // 1cf: goto 1d6
      // 1d2: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 1d5: athrow
      // 1d6: goto 22b
      // 1d9: aload 8
      // 1db: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getExternalName ()Ljava/lang/String;
      // 1de: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 1e1: astore 12
      // 1e3: aload 12
      // 1e5: bipush 34
      // 1e7: aaload
      // 1e8: swap
      // 1e9: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 1ee: astore 9
      // 1f0: aload 5
      // 1f2: aload 12
      // 1f4: bipush 28
      // 1f6: aaload
      // 1f7: aload 9
      // 1f9: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.put (Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 1fc: pop
      // 1fd: aload 7
      // 1ff: aload 12
      // 201: bipush 2
      // 202: aaload
      // 203: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.get (Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
      // 206: aload 9
      // 208: invokevirtual com/fasterxml/jackson/databind/JsonNode.has (Ljava/lang/String;)Z
      // 20b: ifne 22b
      // 20e: aload 0
      // 20f: aload 8
      // 211: aload 7
      // 213: aload 12
      // 215: bipush 2
      // 216: aaload
      // 217: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.get (Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
      // 21a: aload 9
      // 21c: invokevirtual com/fasterxml/jackson/databind/JsonNode.withObject (Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 21f: aload 7
      // 221: invokevirtual com/l7tech/policy/code/config/schema/JsonSchemaGenerator.b (Lcom/l7tech/policy/code/config/BeanTypeConfig;Lcom/fasterxml/jackson/databind/node/ObjectNode;Lcom/fasterxml/jackson/databind/node/ObjectNode;)V
      // 224: goto 22b
      // 227: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 22a: athrow
      // 22b: aload 2
      // 22c: aload 1
      // 22d: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getNormalizedPrototype ()Ljava/lang/Object;
      // 230: invokevirtual com/l7tech/policy/code/config/FieldTypeConfig.getDefaultValue (Ljava/lang/Object;)Ljava/lang/Object;
      // 233: astore 9
      // 235: aload 9
      // 237: ifnull 27b
      // 23a: aload 9
      // 23c: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 23f: invokevirtual java/lang/Class.isArray ()Z
      // 242: ifne 27b
      // 245: goto 24c
      // 248: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 24b: athrow
      // 24c: aload 8
      // 24e: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getTransformer ()Lcom/l7tech/policy/code/transformer/FieldTransformer;
      // 251: ifnull 27b
      // 254: goto 25b
      // 257: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 25a: athrow
      // 25b: aload 5
      // 25d: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 260: bipush 16
      // 262: aaload
      // 263: aload 8
      // 265: invokevirtual com/l7tech/policy/code/config/BeanTypeConfig.getTransformer ()Lcom/l7tech/policy/code/transformer/FieldTransformer;
      // 268: aload 9
      // 26a: invokevirtual com/l7tech/policy/code/transformer/FieldTransformer.transformToSerialize (Ljava/lang/Object;)Ljava/lang/Object;
      // 26d: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 270: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.put (Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 273: pop
      // 274: goto 27b
      // 277: invokestatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 27a: athrow
      // 27b: goto 2ab
      // 27e: aload 5
      // 280: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.i [Ljava/lang/String;
      // 283: astore 12
      // 285: aload 12
      // 287: bipush 7
      // 289: aaload
      // 28a: aload 12
      // 28c: bipush 41
      // 28e: aaload
      // 28f: invokevirtual com/fasterxml/jackson/databind/node/ObjectNode.put (Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      // 292: pop
      // 293: getstatic com/l7tech/policy/code/config/schema/JsonSchemaGenerator.a Ljava/util/logging/Logger;
      // 296: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 299: aload 3
      // 29a: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 29d: aload 12
      // 29f: bipush 32
      // 2a1: aaload
      // 2a2: swap
      // 2a3: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 2a8: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 2ab: return
      // try (0 -> 10): 11 java/lang/RuntimeException
      // try (3 -> 19): 20 java/lang/RuntimeException
      // try (13 -> 31): 31 java/lang/RuntimeException
      // try (33 -> 45): 45 java/lang/RuntimeException
      // try (47 -> 74): 74 java/lang/RuntimeException
      // try (76 -> 84): 85 java/lang/RuntimeException
      // try (80 -> 111): 111 java/lang/RuntimeException
      // try (132 -> 153): 154 java/lang/RuntimeException
      // try (162 -> 169): 170 java/lang/RuntimeException
      // try (191 -> 217): 218 java/lang/RuntimeException
      // try (231 -> 257): 258 java/lang/RuntimeException
      // try (265 -> 271): 272 java/lang/RuntimeException
      // try (267 -> 277): 278 java/lang/RuntimeException
      // try (274 -> 291): 292 java/lang/RuntimeException
   }

   private static Class<?> a(Type var0) {
      return a(var0, 0);
   }

   private static Class<?> a(Type var0, int var1) {
      try {
         if (var0 instanceof ParameterizedType) {
            return (Class<?>)((ParameterizedType)var0).getActualTypeArguments()[var1];
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      return Object.class;
   }

   private void b(ObjectNode var1) {
   }

   static {
      String[] var5 = new String[53];
      int var3 = 0;
      String var2 = "5\n\u0013WJVOb\n{\f\tY\u0006[B\u007f\nQ\b5\n\u0013WJVOb\u00055\t\u001a^[\u00045\b\u0007L\u0005> \u001eQF$T\u001f\rWZ\u0017F\u007f\u000e\u0010MFCFc\b\u001b\u0018__J}\b__MYFc\f\u000bQFP\u0003J\u0004e\u0014\u000f]\u0005> \u001eQF\u00075\u0001\u0010[I[P\u0005p\u0003\u0006wN9y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007DVs@\u000bAXRP>\u00045\u001f\u001a^.y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007u\b\u0019Y][W/y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007\u0007u\b\u0019Y][W\u00035\u0004\u001b\na\u001f\u0010HMEWx\b\f2T\u001f\rWZ\u0017F\u007f\u000e\u0010MFCFc\b\u001b\u0018__J}\b__MYFc\f\u000bQFP\u0003b\u000e\u0017]EV\u0003f\u0004\u000bP\b^G,\u00055\t\u001a^[\u0004e\u0014\u000f]\u0006~\u000f\u0015]KC\rN\u001f\u0016_@C`~\u0000\u0012]FC\u001aLM\u001eK[RQe\u0004\u0010V\bTL\u007f\u000b\u0016_\bD@y\b\u0012Y[,y\u0019\u000bH[\r\f>\u0007\fWF\u001aPr\u0005\u001aUI\u0019Lc\nP\\ZVEeBM\b\u0019\u000e\u000e!TPKK_F|\f\fN\u0001\u001a^\\tL|\u0000\u001aV\\\u0002?G\u00045\u001f\u001a^\na\u001f\u0010HMEWx\b\f\u0005x\u0019\u001aU[\u00075\u0001\u0010[I[P0D\u0003\u0014VG@M1\u0019\u0006HM\u0017F\u007f\u000e\u0010MFCFc\b\u001b\u0018NXQ1\u001e\u001cPMZB1\n\u001aVMEBe\u0004\u0010V\u0012\u0017\u0015LM\u001d]IY\u0003r\u0002\u0011^AP\u0003b\u000e\u0017]EVP9y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007DVs@\u000bAXRP>\tN\u000e\u0017QDSQt\u0003\u0005e\u0004\u000bTM8y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007DVs@\u000bAXRP\u00035\u0004\u001b/y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007\u0005e\u0004\u000bTM\u0006~\u000f\u0015]KC\u0007s\u0002\u0010TMVM\bN\b\u0011YJ[Fu\u0006b\u0019\rQFP\u0005x\u0019\u001aU[#T\u001f\rWZ\u0017F\u007f\u000e\u0010MFCFc\b\u001b\u0018__J}\b__MYFc\f\u000bQFP\u0003\u0005p\u001f\rYQ\u00045\b\u0007L\u0011a\f\u000bLMEMA\u001f\u0010HMEWx\b\f\u0005p\u001f\rYQ";
      int var4 = "5\n\u0013WJVOb\n{\f\tY\u0006[B\u007f\nQ\b5\n\u0013WJVOb\u00055\t\u001a^[\u00045\b\u0007L\u0005> \u001eQF$T\u001f\rWZ\u0017F\u007f\u000e\u0010MFCFc\b\u001b\u0018__J}\b__MYFc\f\u000bQFP\u0003J\u0004e\u0014\u000f]\u0005> \u001eQF\u00075\u0001\u0010[I[P\u0005p\u0003\u0006wN9y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007DVs@\u000bAXRP>\u00045\u001f\u001a^.y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007u\b\u0019Y][W/y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007\u0007u\b\u0019Y][W\u00035\u0004\u001b\na\u001f\u0010HMEWx\b\f2T\u001f\rWZ\u0017F\u007f\u000e\u0010MFCFc\b\u001b\u0018__J}\b__MYFc\f\u000bQFP\u0003b\u000e\u0017]EV\u0003f\u0004\u000bP\b^G,\u00055\t\u001a^[\u0004e\u0014\u000f]\u0006~\u000f\u0015]KC\rN\u001f\u0016_@C`~\u0000\u0012]FC\u001aLM\u001eK[RQe\u0004\u0010V\bTL\u007f\u000b\u0016_\bD@y\b\u0012Y[,y\u0019\u000bH[\r\f>\u0007\fWF\u001aPr\u0005\u001aUI\u0019Lc\nP\\ZVEeBM\b\u0019\u000e\u000e!TPKK_F|\f\fN\u0001\u001a^\\tL|\u0000\u001aV\\\u0002?G\u00045\u001f\u001a^\na\u001f\u0010HMEWx\b\f\u0005x\u0019\u001aU[\u00075\u0001\u0010[I[P0D\u0003\u0014VG@M1\u0019\u0006HM\u0017F\u007f\u000e\u0010MFCFc\b\u001b\u0018NXQ1\u001e\u001cPMZB1\n\u001aVMEBe\u0004\u0010V\u0012\u0017\u0015LM\u001d]IY\u0003r\u0002\u0011^AP\u0003b\u000e\u0017]EVP9y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007DVs@\u000bAXRP>\tN\u000e\u0017QDSQt\u0003\u0005e\u0004\u000bTM8y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007DVs@\u000bAXRP\u00035\u0004\u001b/y\u0019\u000bH[\r\f>\u0001HLMTK?\u000e\u0010U\u0007\u0005\u0013#XPR[XM<\u001e\u001cPMZB>\f\fKMEWx\u0002\u0011K\u0007\u0005e\u0004\u000bTM\u0006~\u000f\u0015]KC\u0007s\u0002\u0010TMVM\bN\b\u0011YJ[Fu\u0006b\u0019\rQFP\u0005x\u0019\u001aU[#T\u001f\rWZ\u0017F\u007f\u000e\u0010MFCFc\b\u001b\u0018__J}\b__MYFc\f\u000bQFP\u0003\u0005p\u001f\rYQ\u00045\b\u0007L\u0011a\f\u000bLMEMA\u001f\u0010HMEWx\b\f\u0005p\u001f\rYQ"
         .length();
      char var1 = '\b';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 110;
         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;
                     ASSERTION_SCHEMA_NAMESPACE = i[13];
                     MAIN_SCHEMA_SUFFIX = var9[5];
                     ASSERTION_SUBTYPE_SCHEMA_NAMESPACE = var9[37];
                     b = var9[25];
                     a = Logger.getLogger(JsonSchemaGenerator.class.getName());
                     return;
                  }

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

                  var2 = "!ZN\u0012\u0005\u0013\u00053@E4\r";
                  var4 = "!ZN\u0012\u0005\u0013\u00053@E4\r".length();
                  var1 = 6;
                  var7 = -1;
            }

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

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

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

      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 -> 127;
            case 1 -> 3;
            case 2 -> 17;
            case 3 -> 86;
            case 4 -> 70;
            case 5 -> 89;
            default -> 77;
         });
      }

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