@Override
 public int hashCode() {
   final int prime = 31;
   int result = 1;
   result = prime * result + ((ResponseHeader == null) ? 0 : ResponseHeader.hashCode());
   result = prime * result + ((Output == null) ? 0 : Output.hashCode());
   return result;
 }
 @Override
 public boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   TestStackExResponse other = (TestStackExResponse) obj;
   if (ResponseHeader == null) {
     if (other.ResponseHeader != null) return false;
   } else if (!ResponseHeader.equals(other.ResponseHeader)) return false;
   if (Output == null) {
     if (other.Output != null) return false;
   } else if (!Output.equals(other.Output)) return false;
   return true;
 }
 @Override
 public int hashCode() {
   final int prime = 31;
   int result = 1;
   result = prime * result + ((ResponseHeader == null) ? 0 : ResponseHeader.hashCode());
   result = prime * result + ((SessionId == null) ? 0 : SessionId.hashCode());
   result = prime * result + ((AuthenticationToken == null) ? 0 : AuthenticationToken.hashCode());
   result =
       prime * result + ((RevisedSessionTimeout == null) ? 0 : RevisedSessionTimeout.hashCode());
   result = prime * result + ((ServerNonce == null) ? 0 : ServerNonce.hashCode());
   result = prime * result + ((ServerCertificate == null) ? 0 : ServerCertificate.hashCode());
   result = prime * result + ((ServerEndpoints == null) ? 0 : Arrays.hashCode(ServerEndpoints));
   result =
       prime * result
           + ((ServerSoftwareCertificates == null)
               ? 0
               : Arrays.hashCode(ServerSoftwareCertificates));
   result = prime * result + ((ServerSignature == null) ? 0 : ServerSignature.hashCode());
   result =
       prime * result + ((MaxRequestMessageSize == null) ? 0 : MaxRequestMessageSize.hashCode());
   return result;
 }
 @Override
 public boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   CreateSessionResponse other = (CreateSessionResponse) obj;
   if (ResponseHeader == null) {
     if (other.ResponseHeader != null) return false;
   } else if (!ResponseHeader.equals(other.ResponseHeader)) return false;
   if (SessionId == null) {
     if (other.SessionId != null) return false;
   } else if (!SessionId.equals(other.SessionId)) return false;
   if (AuthenticationToken == null) {
     if (other.AuthenticationToken != null) return false;
   } else if (!AuthenticationToken.equals(other.AuthenticationToken)) return false;
   if (RevisedSessionTimeout == null) {
     if (other.RevisedSessionTimeout != null) return false;
   } else if (!RevisedSessionTimeout.equals(other.RevisedSessionTimeout)) return false;
   if (ServerNonce == null) {
     if (other.ServerNonce != null) return false;
   } else if (!ServerNonce.equals(other.ServerNonce)) return false;
   if (ServerCertificate == null) {
     if (other.ServerCertificate != null) return false;
   } else if (!ServerCertificate.equals(other.ServerCertificate)) return false;
   if (ServerEndpoints == null) {
     if (other.ServerEndpoints != null) return false;
   } else if (!Arrays.equals(ServerEndpoints, other.ServerEndpoints)) return false;
   if (ServerSoftwareCertificates == null) {
     if (other.ServerSoftwareCertificates != null) return false;
   } else if (!Arrays.equals(ServerSoftwareCertificates, other.ServerSoftwareCertificates))
     return false;
   if (ServerSignature == null) {
     if (other.ServerSignature != null) return false;
   } else if (!ServerSignature.equals(other.ServerSignature)) return false;
   if (MaxRequestMessageSize == null) {
     if (other.MaxRequestMessageSize != null) return false;
   } else if (!MaxRequestMessageSize.equals(other.MaxRequestMessageSize)) return false;
   return true;
 }
 /**
  * Deep clone
  *
  * @return cloned CreateSessionResponse
  */
 public CreateSessionResponse clone() {
   CreateSessionResponse result = (CreateSessionResponse) super.clone();
   result.ResponseHeader = ResponseHeader == null ? null : ResponseHeader.clone();
   result.SessionId = SessionId;
   result.AuthenticationToken = AuthenticationToken;
   result.RevisedSessionTimeout = RevisedSessionTimeout;
   result.ServerNonce = ServerNonce;
   result.ServerCertificate = ServerCertificate;
   if (ServerEndpoints != null) {
     result.ServerEndpoints = new EndpointDescription[ServerEndpoints.length];
     for (int i = 0; i < ServerEndpoints.length; i++)
       result.ServerEndpoints[i] = ServerEndpoints[i].clone();
   }
   if (ServerSoftwareCertificates != null) {
     result.ServerSoftwareCertificates =
         new SignedSoftwareCertificate[ServerSoftwareCertificates.length];
     for (int i = 0; i < ServerSoftwareCertificates.length; i++)
       result.ServerSoftwareCertificates[i] = ServerSoftwareCertificates[i].clone();
   }
   result.ServerSignature = ServerSignature == null ? null : ServerSignature.clone();
   result.MaxRequestMessageSize = MaxRequestMessageSize;
   return result;
 }
 /**
  * Deep clone
  *
  * @return cloned TestStackExResponse
  */
 public TestStackExResponse clone() {
   TestStackExResponse result = (TestStackExResponse) super.clone();
   result.ResponseHeader = ResponseHeader == null ? null : ResponseHeader.clone();
   result.Output = Output == null ? null : Output.clone();
   return result;
 }