/**
  * Construct a new <tt>AccountDetails</tt> and populate its fields with the values extracted from
  * <tt>values</tt>.
  *
  * @param values The values as extracted from the response to the minFraud API call.
  * @return A newly constructed and initialised <tt>AccountDetails</tt>.
  */
 public static AccountDetails extract(Map<String, String> values) {
   AccountDetails a = new AccountDetails();
   a.queriesRemaining = ValueUtils.extractInt(values.get("queriesRemaining"));
   a.maxmindId = values.get("maxmindID");
   a.minFraudVersion = values.get("minfraud_version");
   a.serviceLevel = ServiceLevel.extract(values.get("service_level"));
   return a;
 }
 /**
  * Construct a new <tt>EmailDetails</tt> and populate its fields with values extracted from
  * <tt>values</tt>.
  *
  * @param values The values as extracted from the response to the minFraud API call.
  * @return A newly constructed and initialised <tt>EmailDetails</tt>.
  */
 public static EmailDetails extract(Map<String, String> values) {
   EmailDetails e = new EmailDetails();
   e.freeMail = ValueUtils.extractBoolean(values.get("freeMail"));
   e.carderEmail = ValueUtils.extractBooleanOrNull(values.get("carderEmail"));
   return e;
 }