Program: 171372
Project: 171372
Buggy source:
public static PlayerCharacter loadCharacterFromXML(File xmlFile,PlayerCharacter importedCharacter){
  characterImportLog=new StringBuilder();
  if (xmlFile.exists()) {
    try {
      DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
      DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
      Document doc=dBuilder.parse(xmlFile);
      doc.getDocumentElement().normalize();
      NodeList nodes=doc.getElementsByTagName("String_Node_Str");
      Element element=(Element)nodes.item(0);
      importedCharacter.setName(new NameTriplet(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + ((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str"));
      if (element.getElementsByTagName("String_Node_Str") != null && element.getElementsByTagName("String_Node_Str").getLength() > 0) {
        importedCharacter.setSurname(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str"));
        characterImportLog.append("String_Node_Str" + ((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str"));
      }
      importedCharacter.setLevel(Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      if (element.getElementsByTagName("String_Node_Str").getLength() != 0) {
        if (!((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").equals("String_Node_Str")) {
          importedCharacter.setSexualOrientation(SexualOrientation.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
          characterImportLog.append("String_Node_Str" + SexualOrientation.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
        }
 else {
          importedCharacter.setSexualOrientation(SexualOrientation.AMBIPHILIC);
          characterImportLog.append("String_Node_Str" + SexualOrientation.AMBIPHILIC);
        }
      }
      importedCharacter.setPerkPoints((Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str"))) - 1);
      characterImportLog.append("String_Node_Str" + (Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")) - 1));
      String importSavefileVersion="String_Node_Str";
      int extraLevelUpPoints=0;
      if (element.getElementsByTagName("String_Node_Str").item(0) != null) {
        importSavefileVersion=((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str");
        nodes=doc.getElementsByTagName("String_Node_Str");
        element=(Element)nodes.item(0);
        for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
          try {
            importedCharacter.setAttribute(Attribute.valueOf(e.getAttribute("String_Node_Str")),Float.valueOf(e.getAttribute("String_Node_Str")));
            characterImportLog.append("String_Node_Str" + Attribute.valueOf(e.getAttribute("String_Node_Str")).getName() + "String_Node_Str"+ Float.valueOf(e.getAttribute("String_Node_Str")));
          }
 catch (          IllegalArgumentException ex) {
          }
        }
      }
 else {
        extraLevelUpPoints=(Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")) * 5);
        characterImportLog.append("String_Node_Str" + (Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")) * 5));
      }
      nodes=doc.getElementsByTagName("String_Node_Str");
      element=(Element)nodes.item(0);
      if (element != null) {
        for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
          try {
            if (Boolean.valueOf(e.getAttribute("String_Node_Str"))) {
              if (Fetish.valueOf(e.getAttribute("String_Node_Str")) != null) {
                importedCharacter.addFetish(Fetish.valueOf(e.getAttribute("String_Node_Str")));
                characterImportLog.append("String_Node_Str" + Fetish.valueOf(e.getAttribute("String_Node_Str")).getName(importedCharacter));
              }
            }
          }
 catch (          IllegalArgumentException ex) {
          }
        }
      }
      nodes=doc.getElementsByTagName("String_Node_Str");
      element=(Element)nodes.item(0);
      for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
        try {
          if (Integer.valueOf(e.getAttribute("String_Node_Str")) != -1) {
            importedCharacter.addStatusEffect(StatusEffect.valueOf(e.getAttribute("String_Node_Str")),Integer.valueOf(e.getAttribute("String_Node_Str")));
            characterImportLog.append("String_Node_Str" + StatusEffect.valueOf(e.getAttribute("String_Node_Str")).getName(importedCharacter) + "String_Node_Str"+ Integer.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str");
          }
        }
 catch (        IllegalArgumentException ex) {
        }
      }
      nodes=doc.getElementsByTagName("String_Node_Str");
      element=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
      importedCharacter.setFemininity(Integer.valueOf(element.getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + Integer.valueOf(element.getAttribute("String_Node_Str")));
      importedCharacter.setHeight(Integer.valueOf(element.getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + Integer.valueOf(element.getAttribute("String_Node_Str")));
      importedCharacter.setPiercedNavel(Boolean.valueOf(element.getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + Boolean.valueOf(element.getAttribute("String_Node_Str")));
      if (element.getAttribute("String_Node_Str") != null && element.getAttribute("String_Node_Str").length() > 0) {
        importedCharacter.setBodySize(Integer.valueOf(element.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + Integer.valueOf(element.getAttribute("String_Node_Str")));
      }
      if (element.getAttribute("String_Node_Str") != null && element.getAttribute("String_Node_Str").length() > 0) {
        importedCharacter.setMuscle(Integer.valueOf(element.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + Integer.valueOf(element.getAttribute("String_Node_Str")));
      }
      try {
        if (element.getAttribute("String_Node_Str") != null && element.getAttribute("String_Node_Str").length() > 0) {
          importedCharacter.setPubicHair(BodyHair.valueOf(element.getAttribute("String_Node_Str")));
          characterImportLog.append("String_Node_Str" + importedCharacter.getPubicHair());
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
        try {
          importedCharacter.setBodyCoveringForXMLImport(BodyCoveringType.valueOf(e.getAttribute("String_Node_Str")),CoveringPattern.valueOf(e.getAttribute("String_Node_Str")),Colour.valueOf(e.getAttribute("String_Node_Str")),Boolean.valueOf(e.getAttribute("String_Node_Str")),Colour.valueOf(e.getAttribute("String_Node_Str")),Boolean.valueOf(e.getAttribute("String_Node_Str")));
          if (Boolean.valueOf(e.getAttribute("String_Node_Str"))) {
            importedCharacter.getBodyCoveringTypesDiscovered().add(BodyCoveringType.valueOf(e.getAttribute("String_Node_Str")));
          }
          characterImportLog.append("String_Node_Str" + e.getAttribute("String_Node_Str") + "String_Node_Str"+ CoveringPattern.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str"+ Colour.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str"+ Boolean.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str"+ Colour.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str"+ Boolean.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str"+ e.getAttribute("String_Node_Str")+ "String_Node_Str");
        }
 catch (        IllegalArgumentException ex) {
        }
      }
      try {
        Element antennae=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        if (antennae != null) {
          importedCharacter.setAntennaType(AntennaType.valueOf(antennae.getAttribute("String_Node_Str")));
          characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getAntennaType());
          importedCharacter.setAntennaRows(Integer.valueOf(antennae.getAttribute("String_Node_Str")));
          characterImportLog.append("String_Node_Str" + importedCharacter.getAntennaRows());
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element arm=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setArmType(ArmType.valueOf(arm.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getArmType());
        importedCharacter.setArmRows(Integer.valueOf(arm.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getArmRows());
        importedCharacter.setUnderarmHair(BodyHair.valueOf(arm.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getUnderarmHair());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element ass=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setAssType(AssType.valueOf(ass.getAttribute("String_Node_Str")));
        importedCharacter.setAssSize(Integer.valueOf(ass.getAttribute("String_Node_Str")));
        importedCharacter.setHipSize(Integer.valueOf(ass.getAttribute("String_Node_Str")));
        Element anus=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        if (anus != null) {
          importedCharacter.setAssWetness(Integer.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssElasticity(Integer.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssPlasticity(Integer.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssCapacity(Float.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssStretchedCapacity(Float.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssVirgin(Boolean.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssBleached(Boolean.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssHair(BodyHair.valueOf(anus.getAttribute("String_Node_Str")));
        }
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getAssType() + "String_Node_Str"+ importedCharacter.getAssSize()+ "String_Node_Str"+ importedCharacter.getHipSize());
        if (anus != null) {
          characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getAssWetness() + "String_Node_Str"+ importedCharacter.getAssElasticity()+ "String_Node_Str"+ importedCharacter.getAssPlasticity()+ "String_Node_Str"+ importedCharacter.getAssCapacity()+ "String_Node_Str"+ importedCharacter.getAssStretchedCapacity()+ "String_Node_Str"+ importedCharacter.isAssVirgin()+ "String_Node_Str"+ importedCharacter.isAssBleached()+ "String_Node_Str"+ importedCharacter.getAssHair()+ "String_Node_Str");
          Element anusModifiers=(Element)anus.getElementsByTagName("String_Node_Str").item(0);
          for (          OrificeModifier om : OrificeModifier.values()) {
            if (Boolean.valueOf(anusModifiers.getAttribute(om.toString()))) {
              importedCharacter.addAssOrificeModifier(om);
              characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
            }
 else {
              characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
            }
          }
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element breasts=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setBreastType(BreastType.valueOf(breasts.getAttribute("String_Node_Str")));
        if (breasts.getAttribute("String_Node_Str").length() != 0) {
          importedCharacter.setBreastShape(BreastShape.valueOf(breasts.getAttribute("String_Node_Str")));
        }
        importedCharacter.setBreastSize(Integer.valueOf(breasts.getAttribute("String_Node_Str")));
        importedCharacter.setBreastRows(Integer.valueOf(breasts.getAttribute("String_Node_Str")));
        importedCharacter.setBreastLactation(Integer.valueOf(breasts.getAttribute("String_Node_Str")));
        importedCharacter.setNippleCountPerBreast(Integer.valueOf(breasts.getAttribute("String_Node_Str")));
        Element nipples=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setNippleElasticity(Integer.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNipplePlasticity(Integer.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNippleCapacity(Float.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNippleStretchedCapacity(Float.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNippleVirgin(Boolean.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedNipples(Boolean.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNippleSize(Integer.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNippleShape(NippleShape.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setAreolaeSize(Integer.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setAreolaeShape(AreolaeShape.valueOf(nipples.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getBreastType() + "String_Node_Str"+ importedCharacter.getBreastSize()+ "String_Node_Str"+ importedCharacter.getBreastRows()+ "String_Node_Str"+ importedCharacter.getBreastRawLactationValue()+ "String_Node_Str"+ importedCharacter.getNippleCountPerBreast()+ "String_Node_Str"+ "String_Node_Str"+ importedCharacter.getNippleElasticity()+ "String_Node_Str"+ importedCharacter.getNipplePlasticity()+ "String_Node_Str"+ importedCharacter.getNippleRawCapacityValue()+ "String_Node_Str"+ importedCharacter.getNippleStretchedCapacity()+ "String_Node_Str"+ importedCharacter.isNippleVirgin()+ "String_Node_Str"+ importedCharacter.isPiercedNipple()+ "String_Node_Str"+ importedCharacter.getNippleSize()+ "String_Node_Str"+ importedCharacter.getNippleShape()+ "String_Node_Str"+ importedCharacter.getAreolaeSize()+ "String_Node_Str"+ importedCharacter.getAreolaeShape()+ "String_Node_Str");
        Element nippleModifiers=(Element)nipples.getElementsByTagName("String_Node_Str").item(0);
        for (        OrificeModifier om : OrificeModifier.values()) {
          if (Boolean.valueOf(nippleModifiers.getAttribute(om.toString()))) {
            importedCharacter.addNippleOrificeModifier(om);
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
        }
        characterImportLog.append("String_Node_Str");
        Element milk=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setMilkFlavour(FluidFlavour.valueOf(milk.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getMilkFlavour() + "String_Node_Str");
        Element milkModifiers=(Element)milk.getElementsByTagName("String_Node_Str").item(0);
        for (        FluidModifier fm : FluidModifier.values()) {
          if (Boolean.valueOf(milkModifiers.getAttribute(fm.toString()))) {
            importedCharacter.addMilkModifier(fm);
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element ear=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setEarType(EarType.valueOf(ear.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedEar(Boolean.valueOf(ear.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getEarType() + "String_Node_Str"+ importedCharacter.isPiercedEar());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element eye=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        String eyeTypeFromSave=eye.getAttribute("String_Node_Str");
        if (importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.isEmpty()) {
          Map<String,String> eyeTypeConverterMap=new HashMap<>();
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeFromSave=eyeTypeConverterMap.get(eyeTypeFromSave);
        }
        importedCharacter.setEyeType(EyeType.valueOf(eyeTypeFromSave));
        importedCharacter.setEyePairs(Integer.valueOf(eye.getAttribute("String_Node_Str")));
        importedCharacter.setIrisShape(EyeShape.valueOf(eye.getAttribute("String_Node_Str")));
        importedCharacter.setPupilShape(EyeShape.valueOf(eye.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getEyeType() + "String_Node_Str"+ importedCharacter.getEyePairs()+ "String_Node_Str"+ importedCharacter.getIrisShape()+ "String_Node_Str"+ importedCharacter.getPupilShape());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element face=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setFaceType(FaceType.valueOf(face.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedNose(Boolean.valueOf(face.getAttribute("String_Node_Str")));
        importedCharacter.setFacialHair(BodyHair.valueOf(face.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getFaceType() + "String_Node_Str"+ importedCharacter.isPiercedNose()+ "String_Node_Str"+ importedCharacter.getFacialHair()+ "String_Node_Str");
        Element mouth=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setFaceElasticity(Integer.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setFacePlasticity(Integer.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setFaceCapacity(Float.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setFaceStretchedCapacity(Float.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setFaceVirgin(Boolean.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedLip(Boolean.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setLipSize(Integer.valueOf(mouth.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getFaceElasticity() + "String_Node_Str"+ importedCharacter.getFacePlasticity()+ "String_Node_Str"+ importedCharacter.getFaceCapacity()+ "String_Node_Str"+ importedCharacter.getFaceStretchedCapacity()+ "String_Node_Str"+ importedCharacter.isFaceVirgin()+ "String_Node_Str"+ importedCharacter.isPiercedLip()+ "String_Node_Str"+ importedCharacter.getLipSize()+ "String_Node_Str");
        Element mouthModifiers=(Element)mouth.getElementsByTagName("String_Node_Str").item(0);
        for (        OrificeModifier om : OrificeModifier.values()) {
          if (Boolean.valueOf(mouthModifiers.getAttribute(om.toString()))) {
            importedCharacter.addFaceOrificeModifier(om);
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
        }
        Element tongue=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setPiercedTongue(Boolean.valueOf(tongue.getAttribute("String_Node_Str")));
        importedCharacter.setTongueLength(Integer.valueOf(tongue.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.isPiercedTongue() + "String_Node_Str"+ importedCharacter.getTongueLength()+ "String_Node_Str");
        Element tongueModifiers=(Element)tongue.getElementsByTagName("String_Node_Str").item(0);
        for (        TongueModifier tm : TongueModifier.values()) {
          if (Boolean.valueOf(tongueModifiers.getAttribute(tm.toString()))) {
            importedCharacter.addTongueModifier(tm);
            characterImportLog.append("String_Node_Str" + tm.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + tm.toString() + "String_Node_Str");
          }
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element hair=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        String hairTypeFromSave=hair.getAttribute("String_Node_Str");
        if (importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.isEmpty()) {
          Map<String,String> hairTypeConverterMap=new HashMap<>();
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeFromSave=hairTypeConverterMap.get(hairTypeFromSave);
        }
        importedCharacter.setHairType(HairType.valueOf(hairTypeFromSave));
        importedCharacter.setHairLength(Integer.valueOf(hair.getAttribute("String_Node_Str")));
        importedCharacter.setHairStyle(HairStyle.valueOf(hair.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getHairType() + "String_Node_Str"+ importedCharacter.getHairLength()+ "String_Node_Str"+ importedCharacter.getHairStyle());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element horn=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setHornType(HornType.valueOf(horn.getAttribute("String_Node_Str")));
        importedCharacter.setHornRows(Integer.valueOf(horn.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getHornType() + "String_Node_Str"+ importedCharacter.getHornRows());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element leg=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setLegType(LegType.valueOf(leg.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getLegType());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element penis=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setPenisType(PenisType.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setPenisSize(Integer.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedPenis(Boolean.valueOf(penis.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getPenisType() + "String_Node_Str"+ importedCharacter.getPenisRawSizeValue()+ "String_Node_Str"+ importedCharacter.isPiercedPenis()+ "String_Node_Str");
        Element penisModifiers=(Element)penis.getElementsByTagName("String_Node_Str").item(0);
        for (        PenisModifier pm : PenisModifier.values()) {
          if (penisModifiers != null && Boolean.valueOf(penisModifiers.getAttribute(pm.toString()))) {
            importedCharacter.addPenisModifier(pm);
            characterImportLog.append("String_Node_Str" + pm.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + pm.toString() + "String_Node_Str");
          }
        }
        importedCharacter.setUrethraElasticity(Integer.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setUrethraPlasticity(Integer.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setPenisCapacity(Float.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setPenisStretchedCapacity(Float.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setUrethraVirgin(Boolean.valueOf(penis.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getUrethraElasticity() + "String_Node_Str"+ importedCharacter.getUrethraPlasticity()+ "String_Node_Str"+ importedCharacter.getPenisCapacity()+ "String_Node_Str"+ importedCharacter.getPenisStretchedCapacity()+ "String_Node_Str"+ importedCharacter.isUrethraVirgin()+ "String_Node_Str");
        Element urethraModifiers=(Element)penis.getElementsByTagName("String_Node_Str").item(0);
        for (        OrificeModifier om : OrificeModifier.values()) {
          if (Boolean.valueOf(urethraModifiers.getAttribute(om.toString()))) {
            importedCharacter.addUrethraOrificeModifier(om);
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
        }
        Element testicles=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setCumProduction(Integer.valueOf(testicles.getAttribute("String_Node_Str")));
        importedCharacter.setPenisNumberOfTesticles(Integer.valueOf(testicles.getAttribute("String_Node_Str")));
        importedCharacter.setTesticleSize(Integer.valueOf(testicles.getAttribute("String_Node_Str")));
        importedCharacter.setInternalTesticles(Boolean.valueOf(testicles.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getPenisRawCumProductionValue() + "String_Node_Str"+ importedCharacter.getPenisNumberOfTesticles()+ "String_Node_Str"+ importedCharacter.getTesticleSize()+ "String_Node_Str"+ importedCharacter.isInternalTesticles());
        characterImportLog.append("String_Node_Str");
        Element cum=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setCumFlavour(FluidFlavour.valueOf(cum.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getCumFlavour() + "String_Node_Str");
        Element cumModifiers=(Element)cum.getElementsByTagName("String_Node_Str").item(0);
        for (        FluidModifier fm : FluidModifier.values()) {
          if (Boolean.valueOf(cumModifiers.getAttribute(fm.toString()))) {
            importedCharacter.addCumModifier(fm);
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element skin=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        String skinTypeFromSave=skin.getAttribute("String_Node_Str");
        if (importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.isEmpty()) {
          Map<String,String> skinTypeConverterMap=new HashMap<>();
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeFromSave=skinTypeConverterMap.get(skinTypeFromSave);
        }
        importedCharacter.setSkinType(SkinType.valueOf(skinTypeFromSave));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getSkinType());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element tail=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setTailType(TailType.valueOf(tail.getAttribute("String_Node_Str")));
        importedCharacter.setTailCount(Integer.valueOf(tail.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getTailType() + "String_Node_Str"+ importedCharacter.getTailCount());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element vagina=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setVaginaType(VaginaType.valueOf(vagina.getAttribute("String_Node_Str")),true);
        if (vagina.getAttribute("String_Node_Str").length() != 0) {
          importedCharacter.setVaginaLabiaSize(Integer.valueOf(vagina.getAttribute("String_Node_Str")));
        }
        importedCharacter.setVaginaClitorisSize(Integer.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedVagina(Boolean.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaWetness(Integer.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaElasticity(Integer.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaPlasticity(Integer.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaCapacity(Float.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaStretchedCapacity(Float.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaVirgin(Boolean.valueOf(vagina.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getVaginaType() + "String_Node_Str"+ importedCharacter.getVaginaClitorisSize()+ "String_Node_Str"+ importedCharacter.isPiercedVagina()+ "String_Node_Str"+ importedCharacter.getVaginaWetness()+ "String_Node_Str"+ importedCharacter.getVaginaElasticity()+ "String_Node_Str"+ importedCharacter.getVaginaPlasticity()+ "String_Node_Str"+ importedCharacter.getVaginaCapacity()+ "String_Node_Str"+ importedCharacter.getVaginaStretchedCapacity()+ "String_Node_Str"+ importedCharacter.isVaginaVirgin());
        Element vaginaModifiers=(Element)vagina.getElementsByTagName("String_Node_Str").item(0);
        for (        OrificeModifier om : OrificeModifier.values()) {
          if (Boolean.valueOf(vaginaModifiers.getAttribute(om.toString()))) {
            importedCharacter.addVaginaOrificeModifier(om);
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
        }
        characterImportLog.append("String_Node_Str");
        Element girlcum=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setGirlcumFlavour(FluidFlavour.valueOf(girlcum.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getGirlcumFlavour() + "String_Node_Str");
        Element girlcumModifiers=(Element)girlcum.getElementsByTagName("String_Node_Str").item(0);
        for (        FluidModifier fm : FluidModifier.values()) {
          if (Boolean.valueOf(girlcumModifiers.getAttribute(fm.toString()))) {
            importedCharacter.addGirlcumModifier(fm);
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element wing=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setWingType(WingType.valueOf(wing.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getWingType() + "String_Node_Str");
      }
 catch (      IllegalArgumentException ex) {
      }
      nodes=doc.getElementsByTagName("String_Node_Str");
      element=(Element)nodes.item(0);
      importedCharacter.incrementExperience(Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      importedCharacter.setLevelUpPoints(Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")) + extraLevelUpPoints);
      characterImportLog.append("String_Node_Str" + (Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")) + extraLevelUpPoints));
      nodes=doc.getElementsByTagName("String_Node_Str");
      element=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
      for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
        try {
          for (int it=0; it < Integer.valueOf(e.getAttribute("String_Node_Str")); it++)           importedCharacter.incrementCumCount(new SexType(PenetrationType.valueOf(e.getAttribute("String_Node_Str")),OrificeType.valueOf(e.getAttribute("String_Node_Str"))));
          characterImportLog.append("String_Node_Str" + e.getAttribute("String_Node_Str") + "String_Node_Str"+ e.getAttribute("String_Node_Str")+ "String_Node_Str"+ Integer.valueOf(e.getAttribute("String_Node_Str")));
        }
 catch (        IllegalArgumentException ex) {
        }
      }
      element=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
      for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
        try {
          for (int it=0; it < Integer.valueOf(e.getAttribute("String_Node_Str")); it++)           importedCharacter.incrementSexCount(new SexType(PenetrationType.valueOf(e.getAttribute("String_Node_Str")),OrificeType.valueOf(e.getAttribute("String_Node_Str"))));
          characterImportLog.append("String_Node_Str" + e.getAttribute("String_Node_Str") + "String_Node_Str"+ e.getAttribute("String_Node_Str")+ "String_Node_Str"+ Integer.valueOf(e.getAttribute("String_Node_Str")));
        }
 catch (        IllegalArgumentException ex) {
        }
      }
      element=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
      for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
        importedCharacter.setVirginityLoss(new SexType(PenetrationType.valueOf(e.getAttribute("String_Node_Str")),OrificeType.valueOf(e.getAttribute("String_Node_Str"))),e.getAttribute("String_Node_Str"));
        characterImportLog.append("String_Node_Str" + e.getAttribute("String_Node_Str") + "String_Node_Str"+ e.getAttribute("String_Node_Str")+ "String_Node_Str"+ e.getAttribute("String_Node_Str")+ "String_Node_Str");
      }
      importedCharacter.setLocation(new Vector2i(0,0));
    }
 catch (    Exception e) {
      e.printStackTrace();
    }
  }
  return importedCharacter;
}

Fixed version (ground truth):
public static PlayerCharacter loadCharacterFromXML(File xmlFile,PlayerCharacter importedCharacter){
  characterImportLog=new StringBuilder();
  if (xmlFile.exists()) {
    try {
      DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
      DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
      Document doc=dBuilder.parse(xmlFile);
      doc.getDocumentElement().normalize();
      NodeList nodes=doc.getElementsByTagName("String_Node_Str");
      Element element=(Element)nodes.item(0);
      importedCharacter.setName(new NameTriplet(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + ((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str"));
      if (element.getElementsByTagName("String_Node_Str") != null && element.getElementsByTagName("String_Node_Str").getLength() > 0) {
        importedCharacter.setSurname(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str"));
        characterImportLog.append("String_Node_Str" + ((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str"));
      }
      importedCharacter.setLevel(Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      if (element.getElementsByTagName("String_Node_Str").getLength() != 0) {
        if (!((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str").equals("String_Node_Str")) {
          importedCharacter.setSexualOrientation(SexualOrientation.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
          characterImportLog.append("String_Node_Str" + SexualOrientation.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
        }
 else {
          importedCharacter.setSexualOrientation(SexualOrientation.AMBIPHILIC);
          characterImportLog.append("String_Node_Str" + SexualOrientation.AMBIPHILIC);
        }
      }
      importedCharacter.setPerkPoints((Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str"))) - 1);
      characterImportLog.append("String_Node_Str" + (Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")) - 1));
      String importSavefileVersion="String_Node_Str";
      int extraLevelUpPoints=0;
      if (element.getElementsByTagName("String_Node_Str").item(0) != null) {
        importSavefileVersion=((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str");
        nodes=doc.getElementsByTagName("String_Node_Str");
        element=(Element)nodes.item(0);
        for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
          try {
            importedCharacter.setAttribute(Attribute.valueOf(e.getAttribute("String_Node_Str")),Float.valueOf(e.getAttribute("String_Node_Str")));
            characterImportLog.append("String_Node_Str" + Attribute.valueOf(e.getAttribute("String_Node_Str")).getName() + "String_Node_Str"+ Float.valueOf(e.getAttribute("String_Node_Str")));
          }
 catch (          IllegalArgumentException ex) {
          }
        }
      }
 else {
        extraLevelUpPoints=(Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")) * 5);
        characterImportLog.append("String_Node_Str" + (Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")) * 5));
      }
      nodes=doc.getElementsByTagName("String_Node_Str");
      element=(Element)nodes.item(0);
      if (element != null) {
        for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
          Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
          try {
            if (Boolean.valueOf(e.getAttribute("String_Node_Str"))) {
              if (Fetish.valueOf(e.getAttribute("String_Node_Str")) != null) {
                importedCharacter.addFetish(Fetish.valueOf(e.getAttribute("String_Node_Str")));
                characterImportLog.append("String_Node_Str" + Fetish.valueOf(e.getAttribute("String_Node_Str")).getName(importedCharacter));
              }
            }
          }
 catch (          IllegalArgumentException ex) {
          }
        }
      }
      nodes=doc.getElementsByTagName("String_Node_Str");
      element=(Element)nodes.item(0);
      for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
        try {
          if (Integer.valueOf(e.getAttribute("String_Node_Str")) != -1) {
            importedCharacter.addStatusEffect(StatusEffect.valueOf(e.getAttribute("String_Node_Str")),Integer.valueOf(e.getAttribute("String_Node_Str")));
            characterImportLog.append("String_Node_Str" + StatusEffect.valueOf(e.getAttribute("String_Node_Str")).getName(importedCharacter) + "String_Node_Str"+ Integer.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str");
          }
        }
 catch (        IllegalArgumentException ex) {
        }
      }
      nodes=doc.getElementsByTagName("String_Node_Str");
      element=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
      importedCharacter.setFemininity(Integer.valueOf(element.getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + Integer.valueOf(element.getAttribute("String_Node_Str")));
      importedCharacter.setHeight(Integer.valueOf(element.getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + Integer.valueOf(element.getAttribute("String_Node_Str")));
      importedCharacter.setPiercedNavel(Boolean.valueOf(element.getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + Boolean.valueOf(element.getAttribute("String_Node_Str")));
      if (element.getAttribute("String_Node_Str") != null && element.getAttribute("String_Node_Str").length() > 0) {
        importedCharacter.setBodySize(Integer.valueOf(element.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + Integer.valueOf(element.getAttribute("String_Node_Str")));
      }
      if (element.getAttribute("String_Node_Str") != null && element.getAttribute("String_Node_Str").length() > 0) {
        importedCharacter.setMuscle(Integer.valueOf(element.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + Integer.valueOf(element.getAttribute("String_Node_Str")));
      }
      try {
        if (element.getAttribute("String_Node_Str") != null && element.getAttribute("String_Node_Str").length() > 0) {
          importedCharacter.setPubicHair(BodyHair.valueOf(element.getAttribute("String_Node_Str")));
          characterImportLog.append("String_Node_Str" + importedCharacter.getPubicHair());
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
        try {
          importedCharacter.setBodyCoveringForXMLImport(BodyCoveringType.valueOf(e.getAttribute("String_Node_Str")),CoveringPattern.valueOf(e.getAttribute("String_Node_Str")),Colour.valueOf(e.getAttribute("String_Node_Str")),Boolean.valueOf(e.getAttribute("String_Node_Str")),Colour.valueOf(e.getAttribute("String_Node_Str")),Boolean.valueOf(e.getAttribute("String_Node_Str")));
          if (Boolean.valueOf(e.getAttribute("String_Node_Str"))) {
            importedCharacter.getBodyCoveringTypesDiscovered().add(BodyCoveringType.valueOf(e.getAttribute("String_Node_Str")));
          }
          characterImportLog.append("String_Node_Str" + e.getAttribute("String_Node_Str") + "String_Node_Str"+ CoveringPattern.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str"+ Colour.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str"+ Boolean.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str"+ Colour.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str"+ Boolean.valueOf(e.getAttribute("String_Node_Str"))+ "String_Node_Str"+ e.getAttribute("String_Node_Str")+ "String_Node_Str");
        }
 catch (        IllegalArgumentException ex) {
        }
      }
      try {
        Element antennae=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        if (antennae != null) {
          importedCharacter.setAntennaType(AntennaType.valueOf(antennae.getAttribute("String_Node_Str")));
          characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getAntennaType());
          importedCharacter.setAntennaRows(Integer.valueOf(antennae.getAttribute("String_Node_Str")));
          characterImportLog.append("String_Node_Str" + importedCharacter.getAntennaRows());
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element arm=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setArmType(ArmType.valueOf(arm.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getArmType());
        importedCharacter.setArmRows(Integer.valueOf(arm.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getArmRows());
        importedCharacter.setUnderarmHair(BodyHair.valueOf(arm.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getUnderarmHair());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element ass=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setAssType(AssType.valueOf(ass.getAttribute("String_Node_Str")));
        importedCharacter.setAssSize(Integer.valueOf(ass.getAttribute("String_Node_Str")));
        importedCharacter.setHipSize(Integer.valueOf(ass.getAttribute("String_Node_Str")));
        Element anus=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        if (anus != null) {
          importedCharacter.setAssWetness(Integer.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssElasticity(Integer.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssPlasticity(Integer.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssCapacity(Float.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssStretchedCapacity(Float.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssVirgin(Boolean.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssBleached(Boolean.valueOf(anus.getAttribute("String_Node_Str")));
          importedCharacter.setAssHair(BodyHair.valueOf(anus.getAttribute("String_Node_Str")));
        }
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getAssType() + "String_Node_Str"+ importedCharacter.getAssSize()+ "String_Node_Str"+ importedCharacter.getHipSize());
        if (anus != null) {
          characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getAssWetness() + "String_Node_Str"+ importedCharacter.getAssElasticity()+ "String_Node_Str"+ importedCharacter.getAssPlasticity()+ "String_Node_Str"+ importedCharacter.getAssCapacity()+ "String_Node_Str"+ importedCharacter.getAssStretchedCapacity()+ "String_Node_Str"+ importedCharacter.isAssVirgin()+ "String_Node_Str"+ importedCharacter.isAssBleached()+ "String_Node_Str"+ importedCharacter.getAssHair()+ "String_Node_Str");
          Element anusModifiers=(Element)anus.getElementsByTagName("String_Node_Str").item(0);
          for (          OrificeModifier om : OrificeModifier.values()) {
            if (Boolean.valueOf(anusModifiers.getAttribute(om.toString()))) {
              importedCharacter.addAssOrificeModifier(om);
              characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
            }
 else {
              characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
            }
          }
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element breasts=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setBreastType(BreastType.valueOf(breasts.getAttribute("String_Node_Str")));
        if (breasts.getAttribute("String_Node_Str").length() != 0) {
          importedCharacter.setBreastShape(BreastShape.valueOf(breasts.getAttribute("String_Node_Str")));
        }
        importedCharacter.setBreastSize(Integer.valueOf(breasts.getAttribute("String_Node_Str")));
        importedCharacter.setBreastRows(Integer.valueOf(breasts.getAttribute("String_Node_Str")));
        importedCharacter.setBreastLactation(Integer.valueOf(breasts.getAttribute("String_Node_Str")));
        importedCharacter.setNippleCountPerBreast(Integer.valueOf(breasts.getAttribute("String_Node_Str")));
        Element nipples=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setNippleElasticity(Integer.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNipplePlasticity(Integer.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNippleCapacity(Float.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNippleStretchedCapacity(Float.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNippleVirgin(Boolean.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedNipples(Boolean.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNippleSize(Integer.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setNippleShape(NippleShape.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setAreolaeSize(Integer.valueOf(nipples.getAttribute("String_Node_Str")));
        importedCharacter.setAreolaeShape(AreolaeShape.valueOf(nipples.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getBreastType() + "String_Node_Str"+ importedCharacter.getBreastSize()+ "String_Node_Str"+ importedCharacter.getBreastRows()+ "String_Node_Str"+ importedCharacter.getBreastRawLactationValue()+ "String_Node_Str"+ importedCharacter.getNippleCountPerBreast()+ "String_Node_Str"+ "String_Node_Str"+ importedCharacter.getNippleElasticity()+ "String_Node_Str"+ importedCharacter.getNipplePlasticity()+ "String_Node_Str"+ importedCharacter.getNippleRawCapacityValue()+ "String_Node_Str"+ importedCharacter.getNippleStretchedCapacity()+ "String_Node_Str"+ importedCharacter.isNippleVirgin()+ "String_Node_Str"+ importedCharacter.isPiercedNipple()+ "String_Node_Str"+ importedCharacter.getNippleSize()+ "String_Node_Str"+ importedCharacter.getNippleShape()+ "String_Node_Str"+ importedCharacter.getAreolaeSize()+ "String_Node_Str"+ importedCharacter.getAreolaeShape()+ "String_Node_Str");
        Element nippleModifiers=(Element)nipples.getElementsByTagName("String_Node_Str").item(0);
        for (        OrificeModifier om : OrificeModifier.values()) {
          if (Boolean.valueOf(nippleModifiers.getAttribute(om.toString()))) {
            importedCharacter.addNippleOrificeModifier(om);
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
        }
        characterImportLog.append("String_Node_Str");
        Element milk=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setMilkFlavour(FluidFlavour.valueOf(milk.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getMilkFlavour() + "String_Node_Str");
        Element milkModifiers=(Element)milk.getElementsByTagName("String_Node_Str").item(0);
        for (        FluidModifier fm : FluidModifier.values()) {
          if (Boolean.valueOf(milkModifiers.getAttribute(fm.toString()))) {
            importedCharacter.addMilkModifier(fm);
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element ear=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setEarType(EarType.valueOf(ear.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedEar(Boolean.valueOf(ear.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getEarType() + "String_Node_Str"+ importedCharacter.isPiercedEar());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element eye=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        String eyeTypeFromSave=eye.getAttribute("String_Node_Str");
        if (importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.isEmpty()) {
          Map<String,String> eyeTypeConverterMap=new HashMap<>();
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeConverterMap.put("String_Node_Str","String_Node_Str");
          eyeTypeFromSave=eyeTypeConverterMap.get(eyeTypeFromSave);
        }
        importedCharacter.setEyeType(EyeType.valueOf(eyeTypeFromSave));
        importedCharacter.setEyePairs(Integer.valueOf(eye.getAttribute("String_Node_Str")));
        importedCharacter.setIrisShape(EyeShape.valueOf(eye.getAttribute("String_Node_Str")));
        importedCharacter.setPupilShape(EyeShape.valueOf(eye.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getEyeType() + "String_Node_Str"+ importedCharacter.getEyePairs()+ "String_Node_Str"+ importedCharacter.getIrisShape()+ "String_Node_Str"+ importedCharacter.getPupilShape());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element face=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setFaceType(FaceType.valueOf(face.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedNose(Boolean.valueOf(face.getAttribute("String_Node_Str")));
        importedCharacter.setFacialHair(BodyHair.valueOf(face.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getFaceType() + "String_Node_Str"+ importedCharacter.isPiercedNose()+ "String_Node_Str"+ importedCharacter.getFacialHair()+ "String_Node_Str");
        Element mouth=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setFaceElasticity(Integer.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setFacePlasticity(Integer.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setFaceCapacity(Float.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setFaceStretchedCapacity(Float.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setFaceVirgin(Boolean.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedLip(Boolean.valueOf(mouth.getAttribute("String_Node_Str")));
        importedCharacter.setLipSize(Integer.valueOf(mouth.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getFaceElasticity() + "String_Node_Str"+ importedCharacter.getFacePlasticity()+ "String_Node_Str"+ importedCharacter.getFaceCapacity()+ "String_Node_Str"+ importedCharacter.getFaceStretchedCapacity()+ "String_Node_Str"+ importedCharacter.isFaceVirgin()+ "String_Node_Str"+ importedCharacter.isPiercedLip()+ "String_Node_Str"+ importedCharacter.getLipSize()+ "String_Node_Str");
        Element mouthModifiers=(Element)mouth.getElementsByTagName("String_Node_Str").item(0);
        for (        OrificeModifier om : OrificeModifier.values()) {
          if (Boolean.valueOf(mouthModifiers.getAttribute(om.toString()))) {
            importedCharacter.addFaceOrificeModifier(om);
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
        }
        Element tongue=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setPiercedTongue(Boolean.valueOf(tongue.getAttribute("String_Node_Str")));
        importedCharacter.setTongueLength(Integer.valueOf(tongue.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.isPiercedTongue() + "String_Node_Str"+ importedCharacter.getTongueLength()+ "String_Node_Str");
        Element tongueModifiers=(Element)tongue.getElementsByTagName("String_Node_Str").item(0);
        for (        TongueModifier tm : TongueModifier.values()) {
          if (Boolean.valueOf(tongueModifiers.getAttribute(tm.toString()))) {
            importedCharacter.addTongueModifier(tm);
            characterImportLog.append("String_Node_Str" + tm.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + tm.toString() + "String_Node_Str");
          }
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element hair=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        String hairTypeFromSave=hair.getAttribute("String_Node_Str");
        if (importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.isEmpty()) {
          Map<String,String> hairTypeConverterMap=new HashMap<>();
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeConverterMap.put("String_Node_Str","String_Node_Str");
          hairTypeFromSave=hairTypeConverterMap.get(hairTypeFromSave);
        }
        importedCharacter.setHairType(HairType.valueOf(hairTypeFromSave));
        importedCharacter.setHairLength(Integer.valueOf(hair.getAttribute("String_Node_Str")));
        importedCharacter.setHairStyle(HairStyle.valueOf(hair.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getHairType() + "String_Node_Str"+ importedCharacter.getHairLength()+ "String_Node_Str"+ importedCharacter.getHairStyle());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element horn=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setHornType(HornType.valueOf(horn.getAttribute("String_Node_Str")));
        importedCharacter.setHornRows(Integer.valueOf(horn.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getHornType() + "String_Node_Str"+ importedCharacter.getHornRows());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element leg=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setLegType(LegType.valueOf(leg.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getLegType());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element penis=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setPenisType(PenisType.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setPenisSize(Integer.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedPenis(Boolean.valueOf(penis.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getPenisType() + "String_Node_Str"+ importedCharacter.getPenisRawSizeValue()+ "String_Node_Str"+ importedCharacter.isPiercedPenis()+ "String_Node_Str");
        Element penisModifiers=(Element)penis.getElementsByTagName("String_Node_Str").item(0);
        for (        PenisModifier pm : PenisModifier.values()) {
          if (penisModifiers != null && Boolean.valueOf(penisModifiers.getAttribute(pm.toString()))) {
            importedCharacter.addPenisModifier(pm);
            characterImportLog.append("String_Node_Str" + pm.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + pm.toString() + "String_Node_Str");
          }
        }
        importedCharacter.setUrethraElasticity(Integer.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setUrethraPlasticity(Integer.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setPenisCapacity(Float.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setPenisStretchedCapacity(Float.valueOf(penis.getAttribute("String_Node_Str")));
        importedCharacter.setUrethraVirgin(Boolean.valueOf(penis.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getUrethraElasticity() + "String_Node_Str"+ importedCharacter.getUrethraPlasticity()+ "String_Node_Str"+ importedCharacter.getPenisCapacity()+ "String_Node_Str"+ importedCharacter.getPenisStretchedCapacity()+ "String_Node_Str"+ importedCharacter.isUrethraVirgin()+ "String_Node_Str");
        Element urethraModifiers=(Element)penis.getElementsByTagName("String_Node_Str").item(0);
        for (        OrificeModifier om : OrificeModifier.values()) {
          if (Boolean.valueOf(urethraModifiers.getAttribute(om.toString()))) {
            importedCharacter.addUrethraOrificeModifier(om);
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
        }
        Element testicles=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setCumProduction(Integer.valueOf(testicles.getAttribute("String_Node_Str")));
        importedCharacter.setPenisNumberOfTesticles(Integer.valueOf(testicles.getAttribute("String_Node_Str")));
        importedCharacter.setTesticleSize(Integer.valueOf(testicles.getAttribute("String_Node_Str")));
        importedCharacter.setInternalTesticles(Boolean.valueOf(testicles.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getPenisRawCumProductionValue() + "String_Node_Str"+ importedCharacter.getPenisNumberOfTesticles()+ "String_Node_Str"+ importedCharacter.getTesticleSize()+ "String_Node_Str"+ importedCharacter.isInternalTesticles());
        characterImportLog.append("String_Node_Str");
        Element cum=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setCumFlavour(FluidFlavour.valueOf(cum.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getCumFlavour() + "String_Node_Str");
        Element cumModifiers=(Element)cum.getElementsByTagName("String_Node_Str").item(0);
        for (        FluidModifier fm : FluidModifier.values()) {
          if (Boolean.valueOf(cumModifiers.getAttribute(fm.toString()))) {
            importedCharacter.addCumModifier(fm);
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element skin=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        String skinTypeFromSave=skin.getAttribute("String_Node_Str");
        if (importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.startsWith("String_Node_Str") || importSavefileVersion.isEmpty()) {
          Map<String,String> skinTypeConverterMap=new HashMap<>();
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeConverterMap.put("String_Node_Str","String_Node_Str");
          skinTypeFromSave=skinTypeConverterMap.get(skinTypeFromSave);
        }
        importedCharacter.setSkinType(SkinType.valueOf(skinTypeFromSave));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getSkinType());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element tail=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setTailType(TailType.valueOf(tail.getAttribute("String_Node_Str")));
        importedCharacter.setTailCount(Integer.valueOf(tail.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getTailType() + "String_Node_Str"+ importedCharacter.getTailCount());
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element vagina=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setVaginaType(VaginaType.valueOf(vagina.getAttribute("String_Node_Str")),true);
        if (vagina.getAttribute("String_Node_Str").length() != 0) {
          importedCharacter.setVaginaLabiaSize(Integer.valueOf(vagina.getAttribute("String_Node_Str")));
        }
        importedCharacter.setVaginaClitorisSize(Integer.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setPiercedVagina(Boolean.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaWetness(Integer.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaElasticity(Integer.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaPlasticity(Integer.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaCapacity(Float.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaStretchedCapacity(Float.valueOf(vagina.getAttribute("String_Node_Str")));
        importedCharacter.setVaginaVirgin(Boolean.valueOf(vagina.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getVaginaType() + "String_Node_Str"+ importedCharacter.getVaginaClitorisSize()+ "String_Node_Str"+ importedCharacter.isPiercedVagina()+ "String_Node_Str"+ importedCharacter.getVaginaWetness()+ "String_Node_Str"+ importedCharacter.getVaginaElasticity()+ "String_Node_Str"+ importedCharacter.getVaginaPlasticity()+ "String_Node_Str"+ importedCharacter.getVaginaCapacity()+ "String_Node_Str"+ importedCharacter.getVaginaStretchedCapacity()+ "String_Node_Str"+ importedCharacter.isVaginaVirgin());
        Element vaginaModifiers=(Element)vagina.getElementsByTagName("String_Node_Str").item(0);
        for (        OrificeModifier om : OrificeModifier.values()) {
          if (Boolean.valueOf(vaginaModifiers.getAttribute(om.toString()))) {
            importedCharacter.addVaginaOrificeModifier(om);
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + om.toString() + "String_Node_Str");
          }
        }
        characterImportLog.append("String_Node_Str");
        Element girlcum=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setGirlcumFlavour(FluidFlavour.valueOf(girlcum.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + importedCharacter.getGirlcumFlavour() + "String_Node_Str");
        Element girlcumModifiers=(Element)girlcum.getElementsByTagName("String_Node_Str").item(0);
        for (        FluidModifier fm : FluidModifier.values()) {
          if (Boolean.valueOf(girlcumModifiers.getAttribute(fm.toString()))) {
            importedCharacter.addGirlcumModifier(fm);
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
 else {
            characterImportLog.append("String_Node_Str" + fm.toString() + "String_Node_Str");
          }
        }
      }
 catch (      IllegalArgumentException ex) {
      }
      try {
        Element wing=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
        importedCharacter.setWingType(WingType.valueOf(wing.getAttribute("String_Node_Str")));
        characterImportLog.append("String_Node_Str" + "String_Node_Str" + importedCharacter.getWingType() + "String_Node_Str");
      }
 catch (      IllegalArgumentException ex) {
      }
      nodes=doc.getElementsByTagName("String_Node_Str");
      element=(Element)nodes.item(0);
      importedCharacter.incrementExperience(Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      characterImportLog.append("String_Node_Str" + Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      importedCharacter.setLevelUpPoints(Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")) + extraLevelUpPoints);
      characterImportLog.append("String_Node_Str" + (Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")) + extraLevelUpPoints));
      nodes=doc.getElementsByTagName("String_Node_Str");
      element=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
      for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
        try {
          for (int it=0; it < Integer.valueOf(e.getAttribute("String_Node_Str")); it++)           importedCharacter.incrementCumCount(new SexType(PenetrationType.valueOf(e.getAttribute("String_Node_Str")),OrificeType.valueOf(e.getAttribute("String_Node_Str"))));
          characterImportLog.append("String_Node_Str" + e.getAttribute("String_Node_Str") + "String_Node_Str"+ e.getAttribute("String_Node_Str")+ "String_Node_Str"+ Integer.valueOf(e.getAttribute("String_Node_Str")));
        }
 catch (        IllegalArgumentException ex) {
        }
      }
      element=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
      for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
        try {
          for (int it=0; it < Integer.valueOf(e.getAttribute("String_Node_Str")); it++)           importedCharacter.incrementSexCount(new SexType(PenetrationType.valueOf(e.getAttribute("String_Node_Str")),OrificeType.valueOf(e.getAttribute("String_Node_Str"))));
          characterImportLog.append("String_Node_Str" + e.getAttribute("String_Node_Str") + "String_Node_Str"+ e.getAttribute("String_Node_Str")+ "String_Node_Str"+ Integer.valueOf(e.getAttribute("String_Node_Str")));
        }
 catch (        IllegalArgumentException ex) {
        }
      }
      element=(Element)((Element)nodes.item(0)).getElementsByTagName("String_Node_Str").item(0);
      for (int i=0; i < element.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)element.getElementsByTagName("String_Node_Str").item(i));
        importedCharacter.setVirginityLoss(new SexType(PenetrationType.valueOf(e.getAttribute("String_Node_Str")),OrificeType.valueOf(e.getAttribute("String_Node_Str"))),e.getAttribute("String_Node_Str"));
        characterImportLog.append("String_Node_Str" + e.getAttribute("String_Node_Str") + "String_Node_Str"+ e.getAttribute("String_Node_Str")+ "String_Node_Str"+ e.getAttribute("String_Node_Str")+ "String_Node_Str");
      }
      importedCharacter.resetInventory();
      nodes=doc.getElementsByTagName("String_Node_Str");
      element=(Element)nodes.item(0);
      importedCharacter.setMoney(Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      importedCharacter.setEssenceCount(TFEssence.ARCANE,Integer.valueOf(((Element)element.getElementsByTagName("String_Node_Str").item(0)).getAttribute("String_Node_Str")));
      if (element.getElementsByTagName("String_Node_Str").item(0) != null) {
        importedCharacter.equipMainWeaponFromNowhere(AbstractWeapon.loadFromXML((Element)((Element)element.getElementsByTagName("String_Node_Str").item(0)).getElementsByTagName("String_Node_Str").item(0),doc));
      }
      if (element.getElementsByTagName("String_Node_Str").item(0) != null) {
        importedCharacter.equipOffhandWeaponFromNowhere(AbstractWeapon.loadFromXML((Element)((Element)element.getElementsByTagName("String_Node_Str").item(0)).getElementsByTagName("String_Node_Str").item(0),doc));
      }
      Element clothingEquipped=(Element)element.getElementsByTagName("String_Node_Str").item(0);
      for (int i=0; i < clothingEquipped.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)clothingEquipped.getElementsByTagName("String_Node_Str").item(i));
        importedCharacter.equipClothingOverride(AbstractClothing.loadFromXML(e,doc));
      }
      Element itemsInInventory=(Element)element.getElementsByTagName("String_Node_Str").item(0);
      for (int i=0; i < itemsInInventory.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)itemsInInventory.getElementsByTagName("String_Node_Str").item(i));
        for (int itemCount=0; itemCount < Integer.valueOf(e.getAttribute("String_Node_Str")); itemCount++) {
          importedCharacter.addItem(AbstractItem.loadFromXML(e,doc),false);
        }
      }
      Element clothingInInventory=(Element)element.getElementsByTagName("String_Node_Str").item(0);
      for (int i=0; i < clothingInInventory.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)clothingInInventory.getElementsByTagName("String_Node_Str").item(i));
        for (int clothingCount=0; clothingCount < Integer.valueOf(e.getAttribute("String_Node_Str")); clothingCount++) {
          importedCharacter.addClothing(AbstractClothing.loadFromXML(e,doc),false);
        }
      }
      Element weaponsInInventory=(Element)element.getElementsByTagName("String_Node_Str").item(0);
      for (int i=0; i < weaponsInInventory.getElementsByTagName("String_Node_Str").getLength(); i++) {
        Element e=((Element)weaponsInInventory.getElementsByTagName("String_Node_Str").item(i));
        for (int weaponCount=0; weaponCount < Integer.valueOf(e.getAttribute("String_Node_Str")); weaponCount++) {
          importedCharacter.addWeapon(AbstractWeapon.loadFromXML(e,doc),false);
        }
      }
      importedCharacter.setLocation(new Vector2i(0,0));
    }
 catch (    Exception e) {
      e.printStackTrace();
    }
  }
  return importedCharacter;
}