/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: ModelProtobuf.proto

package io.protostuff.runtime.model;

import com.google.protobuf.CodedOutputStream;

@SuppressWarnings({"cast"})
public final class ModelProtobuf {
  private ModelProtobuf() {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }

  public interface UserOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.protostuff.runtime.model.User)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string name = 1;</code>
     */
    java.lang.String getName();

    /**
     * <code>string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();
  }

  /**
   * Protobuf type {@code io.protostuff.runtime.model.User}
   */
  public static final class User extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.protostuff.runtime.model.User)
      UserOrBuilder {
    // Use User.newBuilder() to construct.
    private User(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private User() {
      name_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

    @SuppressWarnings("unused")
    private User(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              name_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_User_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
      return io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_User_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.protostuff.runtime.model.ModelProtobuf.User.class,
              io.protostuff.runtime.model.ModelProtobuf.User.Builder.class);
    }

    public static final int NAME_FIELD_NUMBER = 1;

    private volatile java.lang.Object name_;

    /**
     * <code>string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }

    /**
     * <code>string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) {
        return true;
      }
      if (isInitialized == 0) {
        return false;
      }

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (!getNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) {
        return size;
      }

      size = 0;
      if (!getNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.protostuff.runtime.model.ModelProtobuf.User)) {
        return super.equals(obj);
      }
      io.protostuff.runtime.model.ModelProtobuf.User other =
          (io.protostuff.runtime.model.ModelProtobuf.User) obj;

      boolean result = true;
      result = result && getName()
          .equals(other.getName());
      return result;
    }

    @SuppressWarnings("unchecked")
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseFrom(
        com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.protostuff.runtime.model.ModelProtobuf.User prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * Protobuf type {@code io.protostuff.runtime.model.User}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:io.protostuff.runtime.model.User)
        io.protostuff.runtime.model.ModelProtobuf.UserOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_User_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
        return io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_User_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.protostuff.runtime.model.ModelProtobuf.User.class,
                io.protostuff.runtime.model.ModelProtobuf.User.Builder.class);
      }

      // Construct using io.protostuff.runtime.model.ModelProtobuf.User.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
        }
      }

      public Builder clear() {
        super.clear();
        name_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_User_descriptor;
      }

      public io.protostuff.runtime.model.ModelProtobuf.User getDefaultInstanceForType() {
        return io.protostuff.runtime.model.ModelProtobuf.User.getDefaultInstance();
      }

      public io.protostuff.runtime.model.ModelProtobuf.User build() {
        io.protostuff.runtime.model.ModelProtobuf.User result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.protostuff.runtime.model.ModelProtobuf.User buildPartial() {
        io.protostuff.runtime.model.ModelProtobuf.User result =
            new io.protostuff.runtime.model.ModelProtobuf.User(this);
        result.name_ = name_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }

      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }

      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.protostuff.runtime.model.ModelProtobuf.User) {
          return mergeFrom((io.protostuff.runtime.model.ModelProtobuf.User) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.protostuff.runtime.model.ModelProtobuf.User other) {
        if (other == io.protostuff.runtime.model.ModelProtobuf.User.getDefaultInstance()) {
          return this;
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
        io.protostuff.runtime.model.ModelProtobuf.User parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.protostuff.runtime.model.ModelProtobuf.User) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object name_ = "";

      /**
       * <code>string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <code>string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <code>string name = 1;</code>
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        name_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>string name = 1;</code>
       */
      public Builder clearName() {

        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }

      /**
       * <code>string name = 1;</code>
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        name_ = value;
        onChanged();
        return this;
      }

      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      // @@protoc_insertion_point(builder_scope:io.protostuff.runtime.model.User)
    }

    // @@protoc_insertion_point(class_scope:io.protostuff.runtime.model.User)
    private static final io.protostuff.runtime.model.ModelProtobuf.User DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.protostuff.runtime.model.ModelProtobuf.User();
    }

    public static io.protostuff.runtime.model.ModelProtobuf.User getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<User> PARSER =
        new com.google.protobuf.AbstractParser<User>() {
          public User parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new User(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<User> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<User> getParserForType() {
      return PARSER;
    }

    public io.protostuff.runtime.model.ModelProtobuf.User getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface RequestHeaderOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.protostuff.runtime.model.RequestHeader)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string destMicroservice = 1;</code>
     */
    java.lang.String getDestMicroservice();

    /**
     * <code>string destMicroservice = 1;</code>
     */
    com.google.protobuf.ByteString getDestMicroserviceBytes();

    /**
     * <code>int32 msgType = 2;</code>
     */
    int getMsgType();

    /**
     * <code>int32 flags = 3;</code>
     */
    int getFlags();

    /**
     * <code>string schemaId = 5;</code>
     */
    java.lang.String getSchemaId();

    /**
     * <code>string schemaId = 5;</code>
     */
    com.google.protobuf.ByteString getSchemaIdBytes();

    /**
     * <code>string operationName = 6;</code>
     */
    java.lang.String getOperationName();

    /**
     * <code>string operationName = 6;</code>
     */
    com.google.protobuf.ByteString getOperationNameBytes();

    /**
     * <code>map&lt;string, string&gt; cseContext = 7;</code>
     */
    int getCseContextCount();

    /**
     * <code>map&lt;string, string&gt; cseContext = 7;</code>
     */
    boolean containsCseContext(
        java.lang.String key);

    /**
     * Use {@link #getCseContextMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String> getCseContext();

    /**
     * <code>map&lt;string, string&gt; cseContext = 7;</code>
     */
    java.util.Map<java.lang.String, java.lang.String> getCseContextMap();

    /**
     * <code>map&lt;string, string&gt; cseContext = 7;</code>
     */

    java.lang.String getCseContextOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);

    /**
     * <code>map&lt;string, string&gt; cseContext = 7;</code>
     */

    java.lang.String getCseContextOrThrow(
        java.lang.String key);

    /**
     * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
     */
    int getUserMapCount();

    /**
     * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
     */
    boolean containsUserMap(
        java.lang.String key);

    /**
     * Use {@link #getUserMapMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> getUserMap();

    /**
     * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
     */
    java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> getUserMapMap();

    /**
     * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
     */

    io.protostuff.runtime.model.ModelProtobuf.User getUserMapOrDefault(
        java.lang.String key,
        io.protostuff.runtime.model.ModelProtobuf.User defaultValue);

    /**
     * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
     */

    io.protostuff.runtime.model.ModelProtobuf.User getUserMapOrThrow(
        java.lang.String key);

    /**
     * <code>repeated string list = 9;</code>
     */
    java.util.List<java.lang.String> getListList();

    /**
     * <code>repeated string list = 9;</code>
     */
    int getListCount();

    /**
     * <code>repeated string list = 9;</code>
     */
    java.lang.String getList(int index);

    /**
     * <code>repeated string list = 9;</code>
     */
    com.google.protobuf.ByteString getListBytes(int index);

    /**
     * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
     */
    java.util.List<io.protostuff.runtime.model.ModelProtobuf.User> getUserListList();

    /**
     * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
     */
    io.protostuff.runtime.model.ModelProtobuf.User getUserList(int index);

    /**
     * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
     */
    int getUserListCount();

    /**
     * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
     */
    java.util.List<? extends io.protostuff.runtime.model.ModelProtobuf.UserOrBuilder> getUserListOrBuilderList();

    /**
     * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
     */
    io.protostuff.runtime.model.ModelProtobuf.UserOrBuilder getUserListOrBuilder(
        int index);
  }

  /**
   * Protobuf type {@code io.protostuff.runtime.model.RequestHeader}
   */
  public static final class RequestHeader extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.protostuff.runtime.model.RequestHeader)
      RequestHeaderOrBuilder {
    // Use RequestHeader.newBuilder() to construct.
    private RequestHeader(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private RequestHeader() {
      destMicroservice_ = "";
      msgType_ = 0;
      flags_ = 0;
      schemaId_ = "";
      operationName_ = "";
      list_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      userList_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

    private RequestHeader(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              destMicroservice_ = s;
              break;
            }
            case 16: {

              msgType_ = input.readInt32();
              break;
            }
            case 24: {

              flags_ = input.readInt32();
              break;
            }
            case 42: {
              java.lang.String s = input.readStringRequireUtf8();

              schemaId_ = s;
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();

              operationName_ = s;
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                cseContext_ = com.google.protobuf.MapField.newMapField(
                    CseContextDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000020;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String> cseContext__ =
                  input.readMessage(
                      CseContextDefaultEntryHolder.defaultEntry.getParserForType(),
                      extensionRegistry);
              cseContext_.getMutableMap().put(
                  cseContext__.getKey(),
                  cseContext__.getValue());
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                userMap_ = com.google.protobuf.MapField.newMapField(
                    UserMapDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000040;
              }
              com.google.protobuf.MapEntry<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> userMap__ =
                  input.readMessage(
                      UserMapDefaultEntryHolder.defaultEntry.getParserForType(),
                      extensionRegistry);
              userMap_.getMutableMap().put(
                  userMap__.getKey(),
                  userMap__.getValue());
              break;
            }
            case 74: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                list_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000080;
              }
              list_.add(s);
              break;
            }
            case 82: {
              if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                userList_ = new java.util.ArrayList<>();
                mutable_bitField0_ |= 0x00000100;
              }
              userList_.add(
                  input.readMessage(io.protostuff.runtime.model.ModelProtobuf.User.parser(),
                      extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          list_ = list_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
          userList_ = java.util.Collections.unmodifiableList(userList_);
        }
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_RequestHeader_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 7:
          return internalGetCseContext();
        case 8:
          return internalGetUserMap();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
      return io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_RequestHeader_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.protostuff.runtime.model.ModelProtobuf.RequestHeader.class,
              io.protostuff.runtime.model.ModelProtobuf.RequestHeader.Builder.class);
    }

    @SuppressWarnings("unused")
    private int bitField0_;

    public static final int DESTMICROSERVICE_FIELD_NUMBER = 1;

    private volatile java.lang.Object destMicroservice_;

    /**
     * <code>string destMicroservice = 1;</code>
     */
    public java.lang.String getDestMicroservice() {
      java.lang.Object ref = destMicroservice_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        destMicroservice_ = s;
        return s;
      }
    }

    /**
     * <code>string destMicroservice = 1;</code>
     */
    public com.google.protobuf.ByteString getDestMicroserviceBytes() {
      java.lang.Object ref = destMicroservice_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        destMicroservice_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MSGTYPE_FIELD_NUMBER = 2;

    private int msgType_;

    /**
     * <code>int32 msgType = 2;</code>
     */
    public int getMsgType() {
      return msgType_;
    }

    public static final int FLAGS_FIELD_NUMBER = 3;

    private int flags_;

    /**
     * <code>int32 flags = 3;</code>
     */
    public int getFlags() {
      return flags_;
    }

    public static final int SCHEMAID_FIELD_NUMBER = 5;

    private volatile java.lang.Object schemaId_;

    /**
     * <code>string schemaId = 5;</code>
     */
    public java.lang.String getSchemaId() {
      java.lang.Object ref = schemaId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        schemaId_ = s;
        return s;
      }
    }

    /**
     * <code>string schemaId = 5;</code>
     */
    public com.google.protobuf.ByteString getSchemaIdBytes() {
      java.lang.Object ref = schemaId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        schemaId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATIONNAME_FIELD_NUMBER = 6;

    private volatile java.lang.Object operationName_;

    /**
     * <code>string operationName = 6;</code>
     */
    public java.lang.String getOperationName() {
      java.lang.Object ref = operationName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        operationName_ = s;
        return s;
      }
    }

    /**
     * <code>string operationName = 6;</code>
     */
    public com.google.protobuf.ByteString getOperationNameBytes() {
      java.lang.Object ref = operationName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operationName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CSECONTEXT_FIELD_NUMBER = 7;

    private static final class CseContextDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
          com.google.protobuf.MapEntry.<java.lang.String, java.lang.String>newDefaultInstance(
              io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_RequestHeader_CseContextEntry_descriptor,
              com.google.protobuf.WireFormat.FieldType.STRING,
              "",
              com.google.protobuf.WireFormat.FieldType.STRING,
              "");
    }

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> cseContext_;

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> internalGetCseContext() {
      if (cseContext_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            CseContextDefaultEntryHolder.defaultEntry);
      }
      return cseContext_;
    }

    public int getCseContextCount() {
      return internalGetCseContext().getMap().size();
    }

    /**
     * <code>map&lt;string, string&gt; cseContext = 7;</code>
     */

    public boolean containsCseContext(
        java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetCseContext().getMap().containsKey(key);
    }

    /**
     * Use {@link #getCseContextMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getCseContext() {
      return getCseContextMap();
    }

    /**
     * <code>map&lt;string, string&gt; cseContext = 7;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getCseContextMap() {
      return internalGetCseContext().getMap();
    }

    /**
     * <code>map&lt;string, string&gt; cseContext = 7;</code>
     */

    public java.lang.String getCseContextOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetCseContext().getMap();
      return map.getOrDefault(key, defaultValue);
    }

    /**
     * <code>map&lt;string, string&gt; cseContext = 7;</code>
     */

    public java.lang.String getCseContextOrThrow(
        java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetCseContext().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int USERMAP_FIELD_NUMBER = 8;

    private static final class UserMapDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> defaultEntry =
          com.google.protobuf.MapEntry.<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User>newDefaultInstance(
              io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_RequestHeader_UserMapEntry_descriptor,
              com.google.protobuf.WireFormat.FieldType.STRING,
              "",
              com.google.protobuf.WireFormat.FieldType.MESSAGE,
              io.protostuff.runtime.model.ModelProtobuf.User.getDefaultInstance());
    }

    private com.google.protobuf.MapField<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> userMap_;

    private com.google.protobuf.MapField<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> internalGetUserMap() {
      if (userMap_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            UserMapDefaultEntryHolder.defaultEntry);
      }
      return userMap_;
    }

    public int getUserMapCount() {
      return internalGetUserMap().getMap().size();
    }

    /**
     * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
     */

    public boolean containsUserMap(
        java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetUserMap().getMap().containsKey(key);
    }

    /**
     * Use {@link #getUserMapMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> getUserMap() {
      return getUserMapMap();
    }

    /**
     * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
     */

    public java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> getUserMapMap() {
      return internalGetUserMap().getMap();
    }

    /**
     * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
     */

    public io.protostuff.runtime.model.ModelProtobuf.User getUserMapOrDefault(
        java.lang.String key,
        io.protostuff.runtime.model.ModelProtobuf.User defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> map =
          internalGetUserMap().getMap();
      return map.getOrDefault(key, defaultValue);
    }

    /**
     * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
     */

    public io.protostuff.runtime.model.ModelProtobuf.User getUserMapOrThrow(
        java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> map =
          internalGetUserMap().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int LIST_FIELD_NUMBER = 9;

    private com.google.protobuf.LazyStringList list_;

    /**
     * <code>repeated string list = 9;</code>
     */
    public com.google.protobuf.ProtocolStringList getListList() {
      return list_;
    }

    /**
     * <code>repeated string list = 9;</code>
     */
    public int getListCount() {
      return list_.size();
    }

    /**
     * <code>repeated string list = 9;</code>
     */
    public java.lang.String getList(int index) {
      return list_.get(index);
    }

    /**
     * <code>repeated string list = 9;</code>
     */
    public com.google.protobuf.ByteString getListBytes(int index) {
      return list_.getByteString(index);
    }

    public static final int USERLIST_FIELD_NUMBER = 10;

    private java.util.List<io.protostuff.runtime.model.ModelProtobuf.User> userList_;

    /**
     * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
     */
    public java.util.List<io.protostuff.runtime.model.ModelProtobuf.User> getUserListList() {
      return userList_;
    }

    /**
     * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
     */
    public java.util.List<? extends io.protostuff.runtime.model.ModelProtobuf.UserOrBuilder> getUserListOrBuilderList() {
      return userList_;
    }

    /**
     * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
     */
    public int getUserListCount() {
      return userList_.size();
    }

    /**
     * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
     */
    public io.protostuff.runtime.model.ModelProtobuf.User getUserList(int index) {
      return userList_.get(index);
    }

    /**
     * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
     */
    public io.protostuff.runtime.model.ModelProtobuf.UserOrBuilder getUserListOrBuilder(
        int index) {
      return userList_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) {
        return true;
      }
      if (isInitialized == 0) {
        return false;
      }

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (!getDestMicroserviceBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, destMicroservice_);
      }
      if (msgType_ != 0) {
        output.writeInt32(2, msgType_);
      }
      if (flags_ != 0) {
        output.writeInt32(3, flags_);
      }
      if (!getSchemaIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, schemaId_);
      }
      if (!getOperationNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, operationName_);
      }
      com.google.protobuf.GeneratedMessageV3
          .serializeStringMapTo(
              output,
              internalGetCseContext(),
              CseContextDefaultEntryHolder.defaultEntry,
              7);
      com.google.protobuf.GeneratedMessageV3
          .serializeStringMapTo(
              output,
              internalGetUserMap(),
              UserMapDefaultEntryHolder.defaultEntry,
              8);
      for (int i = 0; i < list_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, list_.getRaw(i));
      }
      for (User anUserList_ : userList_) {
        output.writeMessage(10, anUserList_);
      }
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) {
        return size;
      }

      size = 0;
      if (!getDestMicroserviceBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, destMicroservice_);
      }
      if (msgType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, msgType_);
      }
      if (flags_ != 0) {
        size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, flags_);
      }
      if (!getSchemaIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, schemaId_);
      }
      if (!getOperationNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, operationName_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetCseContext().getMap()
          .entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String> cseContext__ =
            CseContextDefaultEntryHolder.defaultEntry.newBuilderForType()
                .setKey(entry.getKey())
                .setValue(entry.getValue())
                .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, cseContext__);
      }
      for (java.util.Map.Entry<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> entry : internalGetUserMap()
          .getMap()
          .entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> userMap__ =
            UserMapDefaultEntryHolder.defaultEntry.newBuilderForType()
                .setKey(entry.getKey())
                .setValue(entry.getValue())
                .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(8, userMap__);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < list_.size(); i++) {
          dataSize += computeStringSizeNoTag(list_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getListList().size();
      }
      size += userList_.stream().mapToInt(anUserList_ -> CodedOutputStream
          .computeMessageSize(10, anUserList_)).sum();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.protostuff.runtime.model.ModelProtobuf.RequestHeader)) {
        return super.equals(obj);
      }
      io.protostuff.runtime.model.ModelProtobuf.RequestHeader other =
          (io.protostuff.runtime.model.ModelProtobuf.RequestHeader) obj;

      boolean result = true;
      result = result && getDestMicroservice()
          .equals(other.getDestMicroservice());
      result = result && (getMsgType() == other.getMsgType());
      result = result && (getFlags() == other.getFlags());
      result = result && getSchemaId()
          .equals(other.getSchemaId());
      result = result && getOperationName()
          .equals(other.getOperationName());
      result = result && internalGetCseContext().equals(
          other.internalGetCseContext());
      result = result && internalGetUserMap().equals(
          other.internalGetUserMap());
      result = result && getListList()
          .equals(other.getListList());
      result = result && getUserListList()
          .equals(other.getUserListList());
      return result;
    }

    @SuppressWarnings("unchecked")
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + DESTMICROSERVICE_FIELD_NUMBER;
      hash = (53 * hash) + getDestMicroservice().hashCode();
      hash = (37 * hash) + MSGTYPE_FIELD_NUMBER;
      hash = (53 * hash) + getMsgType();
      hash = (37 * hash) + FLAGS_FIELD_NUMBER;
      hash = (53 * hash) + getFlags();
      hash = (37 * hash) + SCHEMAID_FIELD_NUMBER;
      hash = (53 * hash) + getSchemaId().hashCode();
      hash = (37 * hash) + OPERATIONNAME_FIELD_NUMBER;
      hash = (53 * hash) + getOperationName().hashCode();
      if (!internalGetCseContext().getMap().isEmpty()) {
        hash = (37 * hash) + CSECONTEXT_FIELD_NUMBER;
        hash = (53 * hash) + internalGetCseContext().hashCode();
      }
      if (!internalGetUserMap().getMap().isEmpty()) {
        hash = (37 * hash) + USERMAP_FIELD_NUMBER;
        hash = (53 * hash) + internalGetUserMap().hashCode();
      }
      if (getListCount() > 0) {
        hash = (37 * hash) + LIST_FIELD_NUMBER;
        hash = (53 * hash) + getListList().hashCode();
      }
      if (getUserListCount() > 0) {
        hash = (37 * hash) + USERLIST_FIELD_NUMBER;
        hash = (53 * hash) + getUserListList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseFrom(
        com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.protostuff.runtime.model.ModelProtobuf.RequestHeader prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * Protobuf type {@code io.protostuff.runtime.model.RequestHeader}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:io.protostuff.runtime.model.RequestHeader)
        io.protostuff.runtime.model.ModelProtobuf.RequestHeaderOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_RequestHeader_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 7:
            return internalGetCseContext();
          case 8:
            return internalGetUserMap();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 7:
            return internalGetMutableCseContext();
          case 8:
            return internalGetMutableUserMap();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
        return io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_RequestHeader_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.protostuff.runtime.model.ModelProtobuf.RequestHeader.class,
                io.protostuff.runtime.model.ModelProtobuf.RequestHeader.Builder.class);
      }

      // Construct using io.protostuff.runtime.model.ModelProtobuf.RequestHeader.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getUserListFieldBuilder();
        }
      }

      public Builder clear() {
        super.clear();
        destMicroservice_ = "";

        msgType_ = 0;

        flags_ = 0;

        schemaId_ = "";

        operationName_ = "";

        internalGetMutableCseContext().clear();
        internalGetMutableUserMap().clear();
        list_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        if (userListBuilder_ == null) {
          userList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
        } else {
          userListBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.protostuff.runtime.model.ModelProtobuf.internal_static_io_protostuff_runtime_model_RequestHeader_descriptor;
      }

      public io.protostuff.runtime.model.ModelProtobuf.RequestHeader getDefaultInstanceForType() {
        return io.protostuff.runtime.model.ModelProtobuf.RequestHeader.getDefaultInstance();
      }

      public io.protostuff.runtime.model.ModelProtobuf.RequestHeader build() {
        io.protostuff.runtime.model.ModelProtobuf.RequestHeader result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @SuppressWarnings("unused")
      public io.protostuff.runtime.model.ModelProtobuf.RequestHeader buildPartial() {
        io.protostuff.runtime.model.ModelProtobuf.RequestHeader result =
            new io.protostuff.runtime.model.ModelProtobuf.RequestHeader(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.destMicroservice_ = destMicroservice_;
        result.msgType_ = msgType_;
        result.flags_ = flags_;
        result.schemaId_ = schemaId_;
        result.operationName_ = operationName_;
        result.cseContext_ = internalGetCseContext();
        result.cseContext_.makeImmutable();
        result.userMap_ = internalGetUserMap();
        result.userMap_.makeImmutable();
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          list_ = list_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000080);
        }
        result.list_ = list_;
        if (userListBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100)) {
            userList_ = java.util.Collections.unmodifiableList(userList_);
            bitField0_ = (bitField0_ & ~0x00000100);
          }
          result.userList_ = userList_;
        } else {
          result.userList_ = userListBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }

      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }

      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.protostuff.runtime.model.ModelProtobuf.RequestHeader) {
          return mergeFrom((io.protostuff.runtime.model.ModelProtobuf.RequestHeader) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.protostuff.runtime.model.ModelProtobuf.RequestHeader other) {
        if (other == io.protostuff.runtime.model.ModelProtobuf.RequestHeader.getDefaultInstance()) {
          return this;
        }
        if (!other.getDestMicroservice().isEmpty()) {
          destMicroservice_ = other.destMicroservice_;
          onChanged();
        }
        if (other.getMsgType() != 0) {
          setMsgType(other.getMsgType());
        }
        if (other.getFlags() != 0) {
          setFlags(other.getFlags());
        }
        if (!other.getSchemaId().isEmpty()) {
          schemaId_ = other.schemaId_;
          onChanged();
        }
        if (!other.getOperationName().isEmpty()) {
          operationName_ = other.operationName_;
          onChanged();
        }
        internalGetMutableCseContext().mergeFrom(
            other.internalGetCseContext());
        internalGetMutableUserMap().mergeFrom(
            other.internalGetUserMap());
        if (!other.list_.isEmpty()) {
          if (list_.isEmpty()) {
            list_ = other.list_;
            bitField0_ = (bitField0_ & ~0x00000080);
          } else {
            ensureListIsMutable();
            list_.addAll(other.list_);
          }
          onChanged();
        }
        if (userListBuilder_ == null) {
          if (!other.userList_.isEmpty()) {
            if (userList_.isEmpty()) {
              userList_ = other.userList_;
              bitField0_ = (bitField0_ & ~0x00000100);
            } else {
              ensureUserListIsMutable();
              userList_.addAll(other.userList_);
            }
            onChanged();
          }
        } else {
          if (!other.userList_.isEmpty()) {
            if (userListBuilder_.isEmpty()) {
              userListBuilder_.dispose();
              userListBuilder_ = null;
              userList_ = other.userList_;
              bitField0_ = (bitField0_ & ~0x00000100);
              userListBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getUserListFieldBuilder()
                      : null;
            } else {
              userListBuilder_.addAllMessages(other.userList_);
            }
          }
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
        io.protostuff.runtime.model.ModelProtobuf.RequestHeader parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.protostuff.runtime.model.ModelProtobuf.RequestHeader) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object destMicroservice_ = "";

      /**
       * <code>string destMicroservice = 1;</code>
       */
      public java.lang.String getDestMicroservice() {
        java.lang.Object ref = destMicroservice_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          destMicroservice_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <code>string destMicroservice = 1;</code>
       */
      public com.google.protobuf.ByteString getDestMicroserviceBytes() {
        java.lang.Object ref = destMicroservice_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          destMicroservice_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <code>string destMicroservice = 1;</code>
       */
      public Builder setDestMicroservice(
          java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        destMicroservice_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>string destMicroservice = 1;</code>
       */
      public Builder clearDestMicroservice() {

        destMicroservice_ = getDefaultInstance().getDestMicroservice();
        onChanged();
        return this;
      }

      /**
       * <code>string destMicroservice = 1;</code>
       */
      public Builder setDestMicroserviceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        destMicroservice_ = value;
        onChanged();
        return this;
      }

      private int msgType_;

      /**
       * <code>int32 msgType = 2;</code>
       */
      public int getMsgType() {
        return msgType_;
      }

      /**
       * <code>int32 msgType = 2;</code>
       */
      public Builder setMsgType(int value) {

        msgType_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>int32 msgType = 2;</code>
       */
      public Builder clearMsgType() {

        msgType_ = 0;
        onChanged();
        return this;
      }

      private int flags_;

      /**
       * <code>int32 flags = 3;</code>
       */
      public int getFlags() {
        return flags_;
      }

      /**
       * <code>int32 flags = 3;</code>
       */
      public Builder setFlags(int value) {

        flags_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>int32 flags = 3;</code>
       */
      public Builder clearFlags() {

        flags_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object schemaId_ = "";

      /**
       * <code>string schemaId = 5;</code>
       */
      public java.lang.String getSchemaId() {
        java.lang.Object ref = schemaId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          schemaId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <code>string schemaId = 5;</code>
       */
      public com.google.protobuf.ByteString getSchemaIdBytes() {
        java.lang.Object ref = schemaId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          schemaId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <code>string schemaId = 5;</code>
       */
      public Builder setSchemaId(
          java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        schemaId_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>string schemaId = 5;</code>
       */
      public Builder clearSchemaId() {

        schemaId_ = getDefaultInstance().getSchemaId();
        onChanged();
        return this;
      }

      /**
       * <code>string schemaId = 5;</code>
       */
      public Builder setSchemaIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        schemaId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object operationName_ = "";

      /**
       * <code>string operationName = 6;</code>
       */
      public java.lang.String getOperationName() {
        java.lang.Object ref = operationName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operationName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <code>string operationName = 6;</code>
       */
      public com.google.protobuf.ByteString getOperationNameBytes() {
        java.lang.Object ref = operationName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operationName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <code>string operationName = 6;</code>
       */
      public Builder setOperationName(
          java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        operationName_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>string operationName = 6;</code>
       */
      public Builder clearOperationName() {

        operationName_ = getDefaultInstance().getOperationName();
        onChanged();
        return this;
      }

      /**
       * <code>string operationName = 6;</code>
       */
      public Builder setOperationNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        operationName_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> cseContext_;

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> internalGetCseContext() {
        if (cseContext_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              CseContextDefaultEntryHolder.defaultEntry);
        }
        return cseContext_;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> internalGetMutableCseContext() {
        onChanged();
        if (cseContext_ == null) {
          cseContext_ = com.google.protobuf.MapField.newMapField(
              CseContextDefaultEntryHolder.defaultEntry);
        }
        if (!cseContext_.isMutable()) {
          cseContext_ = cseContext_.copy();
        }
        return cseContext_;
      }

      public int getCseContextCount() {
        return internalGetCseContext().getMap().size();
      }

      /**
       * <code>map&lt;string, string&gt; cseContext = 7;</code>
       */

      public boolean containsCseContext(
          java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetCseContext().getMap().containsKey(key);
      }

      /**
       * Use {@link #getCseContextMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getCseContext() {
        return getCseContextMap();
      }

      /**
       * <code>map&lt;string, string&gt; cseContext = 7;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getCseContextMap() {
        return internalGetCseContext().getMap();
      }

      /**
       * <code>map&lt;string, string&gt; cseContext = 7;</code>
       */

      public java.lang.String getCseContextOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetCseContext().getMap();
        return map.getOrDefault(key, defaultValue);
      }

      /**
       * <code>map&lt;string, string&gt; cseContext = 7;</code>
       */

      public java.lang.String getCseContextOrThrow(
          java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetCseContext().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearCseContext() {
        internalGetMutableCseContext().getMutableMap()
            .clear();
        return this;
      }

      /**
       * <code>map&lt;string, string&gt; cseContext = 7;</code>
       */

      public Builder removeCseContext(
          java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableCseContext().getMutableMap()
            .remove(key);
        return this;
      }

      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMutableCseContext() {
        return internalGetMutableCseContext().getMutableMap();
      }

      /**
       * <code>map&lt;string, string&gt; cseContext = 7;</code>
       */
      public Builder putCseContext(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableCseContext().getMutableMap()
            .put(key, value);
        return this;
      }

      /**
       * <code>map&lt;string, string&gt; cseContext = 7;</code>
       */

      public Builder putAllCseContext(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableCseContext().getMutableMap()
            .putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> userMap_;

      private com.google.protobuf.MapField<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> internalGetUserMap() {
        if (userMap_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              UserMapDefaultEntryHolder.defaultEntry);
        }
        return userMap_;
      }

      private com.google.protobuf.MapField<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> internalGetMutableUserMap() {
        onChanged();
        if (userMap_ == null) {
          userMap_ = com.google.protobuf.MapField.newMapField(
              UserMapDefaultEntryHolder.defaultEntry);
        }
        if (!userMap_.isMutable()) {
          userMap_ = userMap_.copy();
        }
        return userMap_;
      }

      public int getUserMapCount() {
        return internalGetUserMap().getMap().size();
      }

      /**
       * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
       */

      public boolean containsUserMap(
          java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetUserMap().getMap().containsKey(key);
      }

      /**
       * Use {@link #getUserMapMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> getUserMap() {
        return getUserMapMap();
      }

      /**
       * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
       */

      public java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> getUserMapMap() {
        return internalGetUserMap().getMap();
      }

      /**
       * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
       */

      public io.protostuff.runtime.model.ModelProtobuf.User getUserMapOrDefault(
          java.lang.String key,
          io.protostuff.runtime.model.ModelProtobuf.User defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> map =
            internalGetUserMap().getMap();
        return map.getOrDefault(key, defaultValue);
      }

      /**
       * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
       */

      public io.protostuff.runtime.model.ModelProtobuf.User getUserMapOrThrow(
          java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> map =
            internalGetUserMap().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearUserMap() {
        internalGetMutableUserMap().getMutableMap()
            .clear();
        return this;
      }

      /**
       * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
       */

      public Builder removeUserMap(
          java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableUserMap().getMutableMap()
            .remove(key);
        return this;
      }

      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> getMutableUserMap() {
        return internalGetMutableUserMap().getMutableMap();
      }

      /**
       * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
       */
      public Builder putUserMap(
          java.lang.String key,
          io.protostuff.runtime.model.ModelProtobuf.User value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableUserMap().getMutableMap()
            .put(key, value);
        return this;
      }

      /**
       * <code>map&lt;string, .io.protostuff.runtime.model.User&gt; userMap = 8;</code>
       */

      public Builder putAllUserMap(
          java.util.Map<java.lang.String, io.protostuff.runtime.model.ModelProtobuf.User> values) {
        internalGetMutableUserMap().getMutableMap()
            .putAll(values);
        return this;
      }

      private com.google.protobuf.LazyStringList list_ = com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureListIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          list_ = new com.google.protobuf.LazyStringArrayList(list_);
          bitField0_ |= 0x00000080;
        }
      }

      /**
       * <code>repeated string list = 9;</code>
       */
      public com.google.protobuf.ProtocolStringList getListList() {
        return list_.getUnmodifiableView();
      }

      /**
       * <code>repeated string list = 9;</code>
       */
      public int getListCount() {
        return list_.size();
      }

      /**
       * <code>repeated string list = 9;</code>
       */
      public java.lang.String getList(int index) {
        return list_.get(index);
      }

      /**
       * <code>repeated string list = 9;</code>
       */
      public com.google.protobuf.ByteString getListBytes(int index) {
        return list_.getByteString(index);
      }

      /**
       * <code>repeated string list = 9;</code>
       */
      public Builder setList(
          int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureListIsMutable();
        list_.set(index, value);
        onChanged();
        return this;
      }

      /**
       * <code>repeated string list = 9;</code>
       */
      public Builder addList(
          java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureListIsMutable();
        list_.add(value);
        onChanged();
        return this;
      }

      /**
       * <code>repeated string list = 9;</code>
       */
      public Builder addAllList(
          java.lang.Iterable<java.lang.String> values) {
        ensureListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values,
            list_);
        onChanged();
        return this;
      }

      /**
       * <code>repeated string list = 9;</code>
       */
      public Builder clearList() {
        list_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }

      /**
       * <code>repeated string list = 9;</code>
       */
      public Builder addListBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);
        ensureListIsMutable();
        list_.add(value);
        onChanged();
        return this;
      }

      private java.util.List<io.protostuff.runtime.model.ModelProtobuf.User> userList_ =
          java.util.Collections.emptyList();

      private void ensureUserListIsMutable() {
        if (!((bitField0_ & 0x00000100) == 0x00000100)) {
          userList_ = new java.util.ArrayList<>(userList_);
          bitField0_ |= 0x00000100;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<io.protostuff.runtime.model.ModelProtobuf.User, io.protostuff.runtime.model.ModelProtobuf.User.Builder, io.protostuff.runtime.model.ModelProtobuf.UserOrBuilder> userListBuilder_;

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public java.util.List<io.protostuff.runtime.model.ModelProtobuf.User> getUserListList() {
        if (userListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(userList_);
        } else {
          return userListBuilder_.getMessageList();
        }
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public int getUserListCount() {
        if (userListBuilder_ == null) {
          return userList_.size();
        } else {
          return userListBuilder_.getCount();
        }
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public io.protostuff.runtime.model.ModelProtobuf.User getUserList(int index) {
        if (userListBuilder_ == null) {
          return userList_.get(index);
        } else {
          return userListBuilder_.getMessage(index);
        }
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public Builder setUserList(
          int index, io.protostuff.runtime.model.ModelProtobuf.User value) {
        if (userListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUserListIsMutable();
          userList_.set(index, value);
          onChanged();
        } else {
          userListBuilder_.setMessage(index, value);
        }
        return this;
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public Builder setUserList(
          int index, io.protostuff.runtime.model.ModelProtobuf.User.Builder builderForValue) {
        if (userListBuilder_ == null) {
          ensureUserListIsMutable();
          userList_.set(index, builderForValue.build());
          onChanged();
        } else {
          userListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public Builder addUserList(io.protostuff.runtime.model.ModelProtobuf.User value) {
        if (userListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUserListIsMutable();
          userList_.add(value);
          onChanged();
        } else {
          userListBuilder_.addMessage(value);
        }
        return this;
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public Builder addUserList(
          int index, io.protostuff.runtime.model.ModelProtobuf.User value) {
        if (userListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUserListIsMutable();
          userList_.add(index, value);
          onChanged();
        } else {
          userListBuilder_.addMessage(index, value);
        }
        return this;
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public Builder addUserList(
          io.protostuff.runtime.model.ModelProtobuf.User.Builder builderForValue) {
        if (userListBuilder_ == null) {
          ensureUserListIsMutable();
          userList_.add(builderForValue.build());
          onChanged();
        } else {
          userListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public Builder addUserList(
          int index, io.protostuff.runtime.model.ModelProtobuf.User.Builder builderForValue) {
        if (userListBuilder_ == null) {
          ensureUserListIsMutable();
          userList_.add(index, builderForValue.build());
          onChanged();
        } else {
          userListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public Builder addAllUserList(
          java.lang.Iterable<? extends io.protostuff.runtime.model.ModelProtobuf.User> values) {
        if (userListBuilder_ == null) {
          ensureUserListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values,
              userList_);
          onChanged();
        } else {
          userListBuilder_.addAllMessages(values);
        }
        return this;
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public Builder clearUserList() {
        if (userListBuilder_ == null) {
          userList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
          onChanged();
        } else {
          userListBuilder_.clear();
        }
        return this;
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public Builder removeUserList(int index) {
        if (userListBuilder_ == null) {
          ensureUserListIsMutable();
          userList_.remove(index);
          onChanged();
        } else {
          userListBuilder_.remove(index);
        }
        return this;
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public io.protostuff.runtime.model.ModelProtobuf.User.Builder getUserListBuilder(
          int index) {
        return getUserListFieldBuilder().getBuilder(index);
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public io.protostuff.runtime.model.ModelProtobuf.UserOrBuilder getUserListOrBuilder(
          int index) {
        if (userListBuilder_ == null) {
          return userList_.get(index);
        } else {
          return userListBuilder_.getMessageOrBuilder(index);
        }
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public java.util.List<? extends io.protostuff.runtime.model.ModelProtobuf.UserOrBuilder> getUserListOrBuilderList() {
        if (userListBuilder_ != null) {
          return userListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(userList_);
        }
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public io.protostuff.runtime.model.ModelProtobuf.User.Builder addUserListBuilder() {
        return getUserListFieldBuilder().addBuilder(
            io.protostuff.runtime.model.ModelProtobuf.User.getDefaultInstance());
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public io.protostuff.runtime.model.ModelProtobuf.User.Builder addUserListBuilder(
          int index) {
        return getUserListFieldBuilder().addBuilder(
            index,
            io.protostuff.runtime.model.ModelProtobuf.User.getDefaultInstance());
      }

      /**
       * <code>repeated .io.protostuff.runtime.model.User userList = 10;</code>
       */
      public java.util.List<io.protostuff.runtime.model.ModelProtobuf.User.Builder> getUserListBuilderList() {
        return getUserListFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<io.protostuff.runtime.model.ModelProtobuf.User, io.protostuff.runtime.model.ModelProtobuf.User.Builder, io.protostuff.runtime.model.ModelProtobuf.UserOrBuilder> getUserListFieldBuilder() {
        if (userListBuilder_ == null) {
          userListBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<>(
                  userList_,
                  ((bitField0_ & 0x00000100) == 0x00000100),
                  getParentForChildren(),
                  isClean());
          userList_ = null;
        }
        return userListBuilder_;
      }

      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      // @@protoc_insertion_point(builder_scope:io.protostuff.runtime.model.RequestHeader)
    }

    // @@protoc_insertion_point(class_scope:io.protostuff.runtime.model.RequestHeader)
    private static final io.protostuff.runtime.model.ModelProtobuf.RequestHeader DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.protostuff.runtime.model.ModelProtobuf.RequestHeader();
    }

    public static io.protostuff.runtime.model.ModelProtobuf.RequestHeader getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RequestHeader> PARSER =
        new com.google.protobuf.AbstractParser<RequestHeader>() {
          public RequestHeader parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new RequestHeader(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<RequestHeader> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RequestHeader> getParserForType() {
      return PARSER;
    }

    public io.protostuff.runtime.model.ModelProtobuf.RequestHeader getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  private static final com.google.protobuf.Descriptors.Descriptor internal_static_io_protostuff_runtime_model_User_descriptor;

  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_io_protostuff_runtime_model_User_fieldAccessorTable;

  private static final com.google.protobuf.Descriptors.Descriptor internal_static_io_protostuff_runtime_model_RequestHeader_descriptor;

  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_io_protostuff_runtime_model_RequestHeader_fieldAccessorTable;

  private static final com.google.protobuf.Descriptors.Descriptor internal_static_io_protostuff_runtime_model_RequestHeader_CseContextEntry_descriptor;

  @SuppressWarnings("unused")
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_io_protostuff_runtime_model_RequestHeader_CseContextEntry_fieldAccessorTable;

  private static final com.google.protobuf.Descriptors.Descriptor internal_static_io_protostuff_runtime_model_RequestHeader_UserMapEntry_descriptor;

  @SuppressWarnings("unused")
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_io_protostuff_runtime_model_RequestHeader_UserMapEntry_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
    return descriptor;
  }

  private static com.google.protobuf.Descriptors.FileDescriptor descriptor;

  static {
    java.lang.String[] descriptorData = {
        "\n\023ModelProtobuf.proto\022\033io.protostuff.run" +
            "time.model\"\024\n\004User\022\014\n\004name\030\001 \001(\t\"\325\003\n\rReq" +
            "uestHeader\022\030\n\020destMicroservice\030\001 \001(\t\022\017\n\007" +
            "msgType\030\002 \001(\005\022\r\n\005flags\030\003 \001(\005\022\020\n\010schemaId" +
            "\030\005 \001(\t\022\025\n\roperationName\030\006 \001(\t\022N\n\ncseCont" +
            "ext\030\007 \003(\0132:.io.protostuff.runtime.model." +
            "RequestHeader.CseContextEntry\022H\n\007userMap" +
            "\030\010 \003(\01327.io.protostuff.runtime.model.Req" +
            "uestHeader.UserMapEntry\022\014\n\004list\030\t \003(\t\0223\n" +
            "\010userList\030\n \003(\0132!.io.protostuff.runtime.",
        "model.User\0321\n\017CseContextEntry\022\013\n\003key\030\001 \001" +
            "(\t\022\r\n\005value\030\002 \001(\t:\0028\001\032Q\n\014UserMapEntry\022\013\n" +
            "\003key\030\001 \001(\t\0220\n\005value\030\002 \001(\0132!.io.protostuf" +
            "f.runtime.model.User:\0028\001b\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
            new com.google.protobuf.Descriptors.FileDescriptor[] {
            },
            assigner);
    internal_static_io_protostuff_runtime_model_User_descriptor =
        getDescriptor().getMessageTypes().get(0);
    internal_static_io_protostuff_runtime_model_User_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_io_protostuff_runtime_model_User_descriptor,
            new java.lang.String[] {"Name",});
    internal_static_io_protostuff_runtime_model_RequestHeader_descriptor =
        getDescriptor().getMessageTypes().get(1);
    internal_static_io_protostuff_runtime_model_RequestHeader_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_io_protostuff_runtime_model_RequestHeader_descriptor,
            new java.lang.String[] {"DestMicroservice", "MsgType", "Flags", "SchemaId", "OperationName",
                "CseContext", "UserMap", "List", "UserList",});
    internal_static_io_protostuff_runtime_model_RequestHeader_CseContextEntry_descriptor =
        internal_static_io_protostuff_runtime_model_RequestHeader_descriptor.getNestedTypes().get(0);
    internal_static_io_protostuff_runtime_model_RequestHeader_CseContextEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_io_protostuff_runtime_model_RequestHeader_CseContextEntry_descriptor,
            new java.lang.String[] {"Key", "Value",});
    internal_static_io_protostuff_runtime_model_RequestHeader_UserMapEntry_descriptor =
        internal_static_io_protostuff_runtime_model_RequestHeader_descriptor.getNestedTypes().get(1);
    internal_static_io_protostuff_runtime_model_RequestHeader_UserMapEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_io_protostuff_runtime_model_RequestHeader_UserMapEntry_descriptor,
            new java.lang.String[] {"Key", "Value",});
  }

  // @@protoc_insertion_point(outer_class_scope)
}
