public override int GetHashCode()
    {
        int hashcode = 157;

        unchecked {
            if (__isset.squareMid)
            {
                hashcode = (hashcode * 397) + SquareMid.GetHashCode();
            }
            if (__isset.updateSquareProfile)
            {
                hashcode = (hashcode * 397) + UpdateSquareProfile.GetHashCode();
            }
            if (__isset.inviteNewMember)
            {
                hashcode = (hashcode * 397) + InviteNewMember.GetHashCode();
            }
            if (__isset.approveJoinRequest)
            {
                hashcode = (hashcode * 397) + ApproveJoinRequest.GetHashCode();
            }
            if (__isset.createPost)
            {
                hashcode = (hashcode * 397) + CreatePost.GetHashCode();
            }
            if (__isset.createOpenSquareChat)
            {
                hashcode = (hashcode * 397) + CreateOpenSquareChat.GetHashCode();
            }
            if (__isset.deleteSquareChatOrPost)
            {
                hashcode = (hashcode * 397) + DeleteSquareChatOrPost.GetHashCode();
            }
            if (__isset.removeSquareMember)
            {
                hashcode = (hashcode * 397) + RemoveSquareMember.GetHashCode();
            }
            if (__isset.grantRole)
            {
                hashcode = (hashcode * 397) + GrantRole.GetHashCode();
            }
            if (__isset.enableInvitationTicket)
            {
                hashcode = (hashcode * 397) + EnableInvitationTicket.GetHashCode();
            }
            if (__isset.revision)
            {
                hashcode = (hashcode * 397) + Revision.GetHashCode();
            }
        }
        return(hashcode);
    }
    public override string ToString()
    {
        var  sb      = new StringBuilder("SquareAuthority(");
        bool __first = true;

        if (SquareMid != null && __isset.squareMid)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("SquareMid: ");
            SquareMid.ToString(sb);
        }
        if (__isset.updateSquareProfile)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("UpdateSquareProfile: ");
            UpdateSquareProfile.ToString(sb);
        }
        if (__isset.inviteNewMember)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("InviteNewMember: ");
            InviteNewMember.ToString(sb);
        }
        if (__isset.approveJoinRequest)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("ApproveJoinRequest: ");
            ApproveJoinRequest.ToString(sb);
        }
        if (__isset.createPost)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("CreatePost: ");
            CreatePost.ToString(sb);
        }
        if (__isset.createOpenSquareChat)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("CreateOpenSquareChat: ");
            CreateOpenSquareChat.ToString(sb);
        }
        if (__isset.deleteSquareChatOrPost)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("DeleteSquareChatOrPost: ");
            DeleteSquareChatOrPost.ToString(sb);
        }
        if (__isset.removeSquareMember)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("RemoveSquareMember: ");
            RemoveSquareMember.ToString(sb);
        }
        if (__isset.grantRole)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("GrantRole: ");
            GrantRole.ToString(sb);
        }
        if (__isset.enableInvitationTicket)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("EnableInvitationTicket: ");
            EnableInvitationTicket.ToString(sb);
        }
        if (__isset.revision)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("Revision: ");
            Revision.ToString(sb);
        }
        sb.Append(")");
        return(sb.ToString());
    }