code: public Configuration createConfiguration()
      {
          if (crackingHardwareCost == null)
          {
              crackingHardwareCost = getDefaultCrackingHardwareCost();
          }
          if (passwordMatchers == null)
          {
              passwordMatchers = getDefaultPasswordMatchers();
          }
          if (guessTypes == null)
          {
              guessTypes = getDefaultGuessTypes(crackingHardwareCost);
          }
          if (dictionaries == null)
          {
              dictionaries = getDefaultDictionaries();
          }
          if (adjacencyGraphs == null)
          {
              adjacencyGraphs = getDefaultAdjacencyGraphs();
          }
          if (leetTable == null)
          {
              leetTable = getDefaultLeetTable();
          }
          if (yearPattern == null)
          {
              yearPattern = getDefaultYearPattern();
          }
          if (minimumEntropy == null)
          {
              minimumEntropy = getDefaultMinimumEntropy();
          }
          if (locale == null)
          {
              locale = Locale.getDefault();
          }
          if (distanceCalc == null)
          {
              distanceCalc = getDefaultDistanceCalc();
          }
          if (combinationAlgorithmTimeout == null)
          {
              combinationAlgorithmTimeout = getDefaultCombinationAlgorithmTimeout();
          }
          return new Configuration(passwordMatchers, guessTypes, dictionaries, adjacencyGraphs, leetTable, yearPattern, minimumEntropy, locale, distanceCalc, combinationAlgorithmTimeout);
      }
docs: Creates the {@link Configuration} object using all values set in this builder, or default values if unset.
  
  @return Configuration object from builder