public void MergeFrom(pb::CodedInputStream input)
    {
        uint tag;

        while ((tag = input.ReadTag()) != 0)
        {
            switch (tag)
            {
            default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;

            case 10: {
                if (value1_ == null)
                {
                    value1_ = new global::RefByAnother();
                }
                input.ReadMessage(value1_);
                break;
            }

            case 16: {
                Value2 = input.ReadUInt32();
                break;
            }
            }
        }
    }
 public void MergeFrom(WithExternalReference other)
 {
     if (other == null)
     {
         return;
     }
     if (other.value1_ != null)
     {
         if (value1_ == null)
         {
             value1_ = new global::RefByAnother();
         }
         Value1.MergeFrom(other.Value1);
     }
     if (other.Value2 != 0)
     {
         Value2 = other.Value2;
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }