@Override
 public int hashCode() {
   int result = environment != null ? environment.hashCode() : 0;
   result = 31 * result + (honeybadgerUrl != null ? honeybadgerUrl.hashCode() : 0);
   result = 31 * result + (apiKey != null ? apiKey.hashCode() : 0);
   result = 31 * result + (excludedSysProps != null ? excludedSysProps.hashCode() : 0);
   result = 31 * result + (excludedParams != null ? excludedParams.hashCode() : 0);
   result = 31 * result + (excludedClasses != null ? excludedClasses.hashCode() : 0);
   result = 31 * result + (applicationPackage != null ? applicationPackage.hashCode() : 0);
   result = 31 * result + (honeybadgerReadApiKey != null ? honeybadgerReadApiKey.hashCode() : 0);
   result = 31 * result + (feedbackFormDisplayed != null ? feedbackFormDisplayed.hashCode() : 0);
   result = 31 * result + (feedbackFormPath != null ? feedbackFormPath.hashCode() : 0);
   result = 31 * result + (httpProxyHost != null ? httpProxyHost.hashCode() : 0);
   result = 31 * result + (httpProxyPort != null ? httpProxyPort.hashCode() : 0);
   return result;
 }
  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    BaseChainedConfigContext that = (BaseChainedConfigContext) o;

    if (environment != null ? !environment.equals(that.environment) : that.environment != null)
      return false;
    if (honeybadgerUrl != null
        ? !honeybadgerUrl.equals(that.honeybadgerUrl)
        : that.honeybadgerUrl != null) return false;
    if (apiKey != null ? !apiKey.equals(that.apiKey) : that.apiKey != null) return false;
    if (excludedSysProps != null
        ? !excludedSysProps.equals(that.excludedSysProps)
        : that.excludedSysProps != null) return false;
    if (excludedParams != null
        ? !excludedParams.equals(that.excludedParams)
        : that.excludedParams != null) return false;
    if (excludedClasses != null
        ? !excludedClasses.equals(that.excludedClasses)
        : that.excludedClasses != null) return false;
    if (applicationPackage != null
        ? !applicationPackage.equals(that.applicationPackage)
        : that.applicationPackage != null) return false;
    if (honeybadgerReadApiKey != null
        ? !honeybadgerReadApiKey.equals(that.honeybadgerReadApiKey)
        : that.honeybadgerReadApiKey != null) return false;
    if (feedbackFormDisplayed != null
        ? !feedbackFormDisplayed.equals(that.feedbackFormDisplayed)
        : that.feedbackFormDisplayed != null) return false;
    if (feedbackFormPath != null
        ? !feedbackFormPath.equals(that.feedbackFormPath)
        : that.feedbackFormPath != null) return false;
    if (httpProxyHost != null
        ? !httpProxyHost.equals(that.httpProxyHost)
        : that.httpProxyHost != null) return false;
    return !(httpProxyPort != null
        ? !httpProxyPort.equals(that.httpProxyPort)
        : that.httpProxyPort != null);
  }