public override GetChatroomMemberDetailResponse.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(GetChatroomMemberDetailResponse._getChatroomMemberDetailResponseFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = GetChatroomMemberDetailResponse._getChatroomMemberDetailResponseFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        BaseResponse.Builder builder = BaseResponse.CreateBuilder();
                        if (this.result.hasBaseResponse)
                        {
                            builder.MergeFrom(this.BaseResponse);
                        }
                        input.ReadMessage(builder, extensionRegistry);
                        this.BaseResponse = builder.BuildPartial();
                        continue;
                    }

                    case 0x12:
                    {
                        this.result.hasChatroomUserName = input.ReadString(ref this.result.chatroomUserName_);
                        continue;
                    }

                    case 0x18:
                    {
                        this.result.hasServerVersion = input.ReadUInt32(ref this.result.serverVersion_);
                        continue;
                    }

                    case 0x22:
                    {
                        ChatRoomMemberData.Builder builder2 = ChatRoomMemberData.CreateBuilder();
                        if (this.result.hasNewChatroomData)
                        {
                            builder2.MergeFrom(this.NewChatroomData);
                        }
                        input.ReadMessage(builder2, extensionRegistry);
                        this.NewChatroomData = builder2.BuildPartial();
                        continue;
                    }
                    }
                    if (WireFormat.IsEndGroupTag(num))
                    {
                        return(this);
                    }
                    this.ParseUnknownField(input, extensionRegistry, num, str);
                }
                return(this);
            }