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

package cn.muchinfo.rma.protobuf.protoclasses;

public final class MSIM {
  private MSIM() {}
  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 ChannelOrderReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelOrderReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return Whether the clientSerialNo field is set.
     */
    boolean hasClientSerialNo();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The clientSerialNo.
     */
    java.lang.String getClientSerialNo();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The bytes for clientSerialNo.
     */
    com.google.protobuf.ByteString
        getClientSerialNoBytes();

    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    boolean hasClientOrderTime();
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    java.lang.String getClientOrderTime();
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    com.google.protobuf.ByteString
        getClientOrderTimeBytes();

    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return Whether the clientType field is set.
     */
    boolean hasClientType();
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return The clientType.
     */
    int getClientType();

    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return Whether the loginID field is set.
     */
    boolean hasLoginID();
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return The loginID.
     */
    long getLoginID();

    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * uint32 商品IDOrderReq
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return Whether the goodsID field is set.
     */
    boolean hasGoodsID();
    /**
     * <pre>
     * uint32 商品IDOrderReq
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return The goodsID.
     */
    int getGoodsID();

    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return Whether the marketID field is set.
     */
    boolean hasMarketID();
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return The marketID.
     */
    int getMarketID();

    /**
     * <pre>
     * int32 有效类型 - 1当日有效
     * </pre>
     *
     * <code>optional int32 ValidType = 9;</code>
     * @return Whether the validType field is set.
     */
    boolean hasValidType();
    /**
     * <pre>
     * int32 有效类型 - 1当日有效
     * </pre>
     *
     * <code>optional int32 ValidType = 9;</code>
     * @return The validType.
     */
    int getValidType();

    /**
     * <pre>
     * uint32 操作类型:
     * </pre>
     *
     * <code>optional uint32 ChannelOperateType = 10;</code>
     * @return Whether the channelOperateType field is set.
     */
    boolean hasChannelOperateType();
    /**
     * <pre>
     * uint32 操作类型:
     * </pre>
     *
     * <code>optional uint32 ChannelOperateType = 10;</code>
     * @return The channelOperateType.
     */
    int getChannelOperateType();

    /**
     * <pre>
     * uint32 单据来源委托来源 -  1:客户端 2:管理端 3:风控服务 
     * </pre>
     *
     * <code>optional uint32 ChannelOrderSrc = 11;</code>
     * @return Whether the channelOrderSrc field is set.
     */
    boolean hasChannelOrderSrc();
    /**
     * <pre>
     * uint32 单据来源委托来源 -  1:客户端 2:管理端 3:风控服务 
     * </pre>
     *
     * <code>optional uint32 ChannelOrderSrc = 11;</code>
     * @return The channelOrderSrc.
     */
    int getChannelOrderSrc();

    /**
     * <pre>
     * uint32 投机套保标志 - 0:无 1:投机 2:套保 3:套利
     * </pre>
     *
     * <code>optional uint32 HedgeFlag = 12;</code>
     * @return Whether the hedgeFlag field is set.
     */
    boolean hasHedgeFlag();
    /**
     * <pre>
     * uint32 投机套保标志 - 0:无 1:投机 2:套保 3:套利
     * </pre>
     *
     * <code>optional uint32 HedgeFlag = 12;</code>
     * @return The hedgeFlag.
     */
    int getHedgeFlag();

    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 13;</code>
     * @return Whether the operatorID field is set.
     */
    boolean hasOperatorID();
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 13;</code>
     * @return The operatorID.
     */
    long getOperatorID();

    /**
     * <pre>
     * double 委托价格
     * </pre>
     *
     * <code>optional double OrderPrice = 14;</code>
     * @return Whether the orderPrice field is set.
     */
    boolean hasOrderPrice();
    /**
     * <pre>
     * double 委托价格
     * </pre>
     *
     * <code>optional double OrderPrice = 14;</code>
     * @return The orderPrice.
     */
    double getOrderPrice();

    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 15;</code>
     * @return Whether the orderQty field is set.
     */
    boolean hasOrderQty();
    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 15;</code>
     * @return The orderQty.
     */
    long getOrderQty();

    /**
     * <pre>
     * uint32 买卖方向(买卖 - 0:买 1:卖 )
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 16;</code>
     * @return Whether the buyOrSell field is set.
     */
    boolean hasBuyOrSell();
    /**
     * <pre>
     * uint32 买卖方向(买卖 - 0:买 1:卖 )
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 16;</code>
     * @return The buyOrSell.
     */
    int getBuyOrSell();

    /**
     * <pre>
     * uint32 下单类型(开平标志 - 0:无 1:建仓 2:平仓)
     * </pre>
     *
     * <code>optional uint32 ChannelBuildType = 17;</code>
     * @return Whether the channelBuildType field is set.
     */
    boolean hasChannelBuildType();
    /**
     * <pre>
     * uint32 下单类型(开平标志 - 0:无 1:建仓 2:平仓)
     * </pre>
     *
     * <code>optional uint32 ChannelBuildType = 17;</code>
     * @return The channelBuildType.
     */
    int getChannelBuildType();

    /**
     * <pre>
     * uint32 平仓方式(平仓方式 - 0:无 1:平今 2:平昨)
     * </pre>
     *
     * <code>optional uint32 CloseType = 18;</code>
     * @return Whether the closeType field is set.
     */
    boolean hasCloseType();
    /**
     * <pre>
     * uint32 平仓方式(平仓方式 - 0:无 1:平今 2:平昨)
     * </pre>
     *
     * <code>optional uint32 CloseType = 18;</code>
     * @return The closeType.
     */
    int getCloseType();

    /**
     * <pre>
     * uint32 取价方式 - 1:市价 2: 限价
     * </pre>
     *
     * <code>optional uint32 PriceMode = 19;</code>
     * @return Whether the priceMode field is set.
     */
    boolean hasPriceMode();
    /**
     * <pre>
     * uint32 取价方式 - 1:市价 2: 限价
     * </pre>
     *
     * <code>optional uint32 PriceMode = 19;</code>
     * @return The priceMode.
     */
    int getPriceMode();

    /**
     * <pre>
     * uint32 时间有效类型
     * </pre>
     *
     * <code>optional uint32 TimeValidType = 20;</code>
     * @return Whether the timeValidType field is set.
     */
    boolean hasTimeValidType();
    /**
     * <pre>
     * uint32 时间有效类型
     * </pre>
     *
     * <code>optional uint32 TimeValidType = 20;</code>
     * @return The timeValidType.
     */
    int getTimeValidType();

    /**
     * <pre>
     * uint64 关联单号
     * </pre>
     *
     * <code>optional uint64 RelatedID = 21;</code>
     * @return Whether the relatedID field is set.
     */
    boolean hasRelatedID();
    /**
     * <pre>
     * uint64 关联单号
     * </pre>
     *
     * <code>optional uint64 RelatedID = 21;</code>
     * @return The relatedID.
     */
    long getRelatedID();

    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 22;</code>
     * @return Whether the serviceTime field is set.
     */
    boolean hasServiceTime();
    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 22;</code>
     * @return The serviceTime.
     */
    java.lang.String getServiceTime();
    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 22;</code>
     * @return The bytes for serviceTime.
     */
    com.google.protobuf.ByteString
        getServiceTimeBytes();

    /**
     * <pre>
     * string 有效时间
     * </pre>
     *
     * <code>optional string validtime = 23;</code>
     * @return Whether the validtime field is set.
     */
    boolean hasValidtime();
    /**
     * <pre>
     * string 有效时间
     * </pre>
     *
     * <code>optional string validtime = 23;</code>
     * @return The validtime.
     */
    java.lang.String getValidtime();
    /**
     * <pre>
     * string 有效时间
     * </pre>
     *
     * <code>optional string validtime = 23;</code>
     * @return The bytes for validtime.
     */
    com.google.protobuf.ByteString
        getValidtimeBytes();

    /**
     * <pre>
     * uint64 平今仓数量
     * </pre>
     *
     * <code>optional uint64 CloseTodayQty = 24;</code>
     * @return Whether the closeTodayQty field is set.
     */
    boolean hasCloseTodayQty();
    /**
     * <pre>
     * uint64 平今仓数量
     * </pre>
     *
     * <code>optional uint64 CloseTodayQty = 24;</code>
     * @return The closeTodayQty.
     */
    long getCloseTodayQty();
  }
  /**
   * <pre>
   * 交易委托请求 0 3 31
   * </pre>
   *
   * Protobuf type {@code ChannelOrderReq}
   */
  public static final class ChannelOrderReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelOrderReq)
      ChannelOrderReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelOrderReq.newBuilder() to construct.
    private ChannelOrderReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelOrderReq() {
      clientSerialNo_ = "";
      clientOrderTime_ = "";
      serviceTime_ = "";
      validtime_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelOrderReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelOrderReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              clientSerialNo_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              clientOrderTime_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              clientType_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              loginID_ = input.readUInt64();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              accountID_ = input.readUInt64();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              goodsID_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              marketID_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              validType_ = input.readInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              channelOperateType_ = input.readUInt32();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              channelOrderSrc_ = input.readUInt32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              hedgeFlag_ = input.readUInt32();
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              operatorID_ = input.readUInt64();
              break;
            }
            case 113: {
              bitField0_ |= 0x00002000;
              orderPrice_ = input.readDouble();
              break;
            }
            case 120: {
              bitField0_ |= 0x00004000;
              orderQty_ = input.readUInt64();
              break;
            }
            case 128: {
              bitField0_ |= 0x00008000;
              buyOrSell_ = input.readUInt32();
              break;
            }
            case 136: {
              bitField0_ |= 0x00010000;
              channelBuildType_ = input.readUInt32();
              break;
            }
            case 144: {
              bitField0_ |= 0x00020000;
              closeType_ = input.readUInt32();
              break;
            }
            case 152: {
              bitField0_ |= 0x00040000;
              priceMode_ = input.readUInt32();
              break;
            }
            case 160: {
              bitField0_ |= 0x00080000;
              timeValidType_ = input.readUInt32();
              break;
            }
            case 168: {
              bitField0_ |= 0x00100000;
              relatedID_ = input.readUInt64();
              break;
            }
            case 178: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00200000;
              serviceTime_ = bs;
              break;
            }
            case 186: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00400000;
              validtime_ = bs;
              break;
            }
            case 192: {
              bitField0_ |= 0x00800000;
              closeTodayQty_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelOrderReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelOrderReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelOrderReq.class, MSIM.ChannelOrderReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int CLIENTSERIALNO_FIELD_NUMBER = 2;
    private volatile java.lang.Object clientSerialNo_;
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return Whether the clientSerialNo field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialNo() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The clientSerialNo.
     */
    @java.lang.Override
    public java.lang.String getClientSerialNo() {
      java.lang.Object ref = clientSerialNo_;
      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();
        if (bs.isValidUtf8()) {
          clientSerialNo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The bytes for clientSerialNo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientSerialNoBytes() {
      java.lang.Object ref = clientSerialNo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSerialNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTORDERTIME_FIELD_NUMBER = 3;
    private volatile java.lang.Object clientOrderTime_;
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    @java.lang.Override
    public boolean hasClientOrderTime() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    @java.lang.Override
    public java.lang.String getClientOrderTime() {
      java.lang.Object ref = clientOrderTime_;
      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();
        if (bs.isValidUtf8()) {
          clientOrderTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientOrderTimeBytes() {
      java.lang.Object ref = clientOrderTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientOrderTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTTYPE_FIELD_NUMBER = 4;
    private int clientType_;
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return Whether the clientType field is set.
     */
    @java.lang.Override
    public boolean hasClientType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return The clientType.
     */
    @java.lang.Override
    public int getClientType() {
      return clientType_;
    }

    public static final int LOGINID_FIELD_NUMBER = 5;
    private long loginID_;
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return Whether the loginID field is set.
     */
    @java.lang.Override
    public boolean hasLoginID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return The loginID.
     */
    @java.lang.Override
    public long getLoginID() {
      return loginID_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 6;
    private long accountID_;
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int GOODSID_FIELD_NUMBER = 7;
    private int goodsID_;
    /**
     * <pre>
     * uint32 商品IDOrderReq
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return Whether the goodsID field is set.
     */
    @java.lang.Override
    public boolean hasGoodsID() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * uint32 商品IDOrderReq
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return The goodsID.
     */
    @java.lang.Override
    public int getGoodsID() {
      return goodsID_;
    }

    public static final int MARKETID_FIELD_NUMBER = 8;
    private int marketID_;
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return Whether the marketID field is set.
     */
    @java.lang.Override
    public boolean hasMarketID() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return The marketID.
     */
    @java.lang.Override
    public int getMarketID() {
      return marketID_;
    }

    public static final int VALIDTYPE_FIELD_NUMBER = 9;
    private int validType_;
    /**
     * <pre>
     * int32 有效类型 - 1当日有效
     * </pre>
     *
     * <code>optional int32 ValidType = 9;</code>
     * @return Whether the validType field is set.
     */
    @java.lang.Override
    public boolean hasValidType() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * int32 有效类型 - 1当日有效
     * </pre>
     *
     * <code>optional int32 ValidType = 9;</code>
     * @return The validType.
     */
    @java.lang.Override
    public int getValidType() {
      return validType_;
    }

    public static final int CHANNELOPERATETYPE_FIELD_NUMBER = 10;
    private int channelOperateType_;
    /**
     * <pre>
     * uint32 操作类型:
     * </pre>
     *
     * <code>optional uint32 ChannelOperateType = 10;</code>
     * @return Whether the channelOperateType field is set.
     */
    @java.lang.Override
    public boolean hasChannelOperateType() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * uint32 操作类型:
     * </pre>
     *
     * <code>optional uint32 ChannelOperateType = 10;</code>
     * @return The channelOperateType.
     */
    @java.lang.Override
    public int getChannelOperateType() {
      return channelOperateType_;
    }

    public static final int CHANNELORDERSRC_FIELD_NUMBER = 11;
    private int channelOrderSrc_;
    /**
     * <pre>
     * uint32 单据来源委托来源 -  1:客户端 2:管理端 3:风控服务 
     * </pre>
     *
     * <code>optional uint32 ChannelOrderSrc = 11;</code>
     * @return Whether the channelOrderSrc field is set.
     */
    @java.lang.Override
    public boolean hasChannelOrderSrc() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * uint32 单据来源委托来源 -  1:客户端 2:管理端 3:风控服务 
     * </pre>
     *
     * <code>optional uint32 ChannelOrderSrc = 11;</code>
     * @return The channelOrderSrc.
     */
    @java.lang.Override
    public int getChannelOrderSrc() {
      return channelOrderSrc_;
    }

    public static final int HEDGEFLAG_FIELD_NUMBER = 12;
    private int hedgeFlag_;
    /**
     * <pre>
     * uint32 投机套保标志 - 0:无 1:投机 2:套保 3:套利
     * </pre>
     *
     * <code>optional uint32 HedgeFlag = 12;</code>
     * @return Whether the hedgeFlag field is set.
     */
    @java.lang.Override
    public boolean hasHedgeFlag() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * uint32 投机套保标志 - 0:无 1:投机 2:套保 3:套利
     * </pre>
     *
     * <code>optional uint32 HedgeFlag = 12;</code>
     * @return The hedgeFlag.
     */
    @java.lang.Override
    public int getHedgeFlag() {
      return hedgeFlag_;
    }

    public static final int OPERATORID_FIELD_NUMBER = 13;
    private long operatorID_;
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 13;</code>
     * @return Whether the operatorID field is set.
     */
    @java.lang.Override
    public boolean hasOperatorID() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 13;</code>
     * @return The operatorID.
     */
    @java.lang.Override
    public long getOperatorID() {
      return operatorID_;
    }

    public static final int ORDERPRICE_FIELD_NUMBER = 14;
    private double orderPrice_;
    /**
     * <pre>
     * double 委托价格
     * </pre>
     *
     * <code>optional double OrderPrice = 14;</code>
     * @return Whether the orderPrice field is set.
     */
    @java.lang.Override
    public boolean hasOrderPrice() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * double 委托价格
     * </pre>
     *
     * <code>optional double OrderPrice = 14;</code>
     * @return The orderPrice.
     */
    @java.lang.Override
    public double getOrderPrice() {
      return orderPrice_;
    }

    public static final int ORDERQTY_FIELD_NUMBER = 15;
    private long orderQty_;
    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 15;</code>
     * @return Whether the orderQty field is set.
     */
    @java.lang.Override
    public boolean hasOrderQty() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 15;</code>
     * @return The orderQty.
     */
    @java.lang.Override
    public long getOrderQty() {
      return orderQty_;
    }

    public static final int BUYORSELL_FIELD_NUMBER = 16;
    private int buyOrSell_;
    /**
     * <pre>
     * uint32 买卖方向(买卖 - 0:买 1:卖 )
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 16;</code>
     * @return Whether the buyOrSell field is set.
     */
    @java.lang.Override
    public boolean hasBuyOrSell() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * uint32 买卖方向(买卖 - 0:买 1:卖 )
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 16;</code>
     * @return The buyOrSell.
     */
    @java.lang.Override
    public int getBuyOrSell() {
      return buyOrSell_;
    }

    public static final int CHANNELBUILDTYPE_FIELD_NUMBER = 17;
    private int channelBuildType_;
    /**
     * <pre>
     * uint32 下单类型(开平标志 - 0:无 1:建仓 2:平仓)
     * </pre>
     *
     * <code>optional uint32 ChannelBuildType = 17;</code>
     * @return Whether the channelBuildType field is set.
     */
    @java.lang.Override
    public boolean hasChannelBuildType() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <pre>
     * uint32 下单类型(开平标志 - 0:无 1:建仓 2:平仓)
     * </pre>
     *
     * <code>optional uint32 ChannelBuildType = 17;</code>
     * @return The channelBuildType.
     */
    @java.lang.Override
    public int getChannelBuildType() {
      return channelBuildType_;
    }

    public static final int CLOSETYPE_FIELD_NUMBER = 18;
    private int closeType_;
    /**
     * <pre>
     * uint32 平仓方式(平仓方式 - 0:无 1:平今 2:平昨)
     * </pre>
     *
     * <code>optional uint32 CloseType = 18;</code>
     * @return Whether the closeType field is set.
     */
    @java.lang.Override
    public boolean hasCloseType() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <pre>
     * uint32 平仓方式(平仓方式 - 0:无 1:平今 2:平昨)
     * </pre>
     *
     * <code>optional uint32 CloseType = 18;</code>
     * @return The closeType.
     */
    @java.lang.Override
    public int getCloseType() {
      return closeType_;
    }

    public static final int PRICEMODE_FIELD_NUMBER = 19;
    private int priceMode_;
    /**
     * <pre>
     * uint32 取价方式 - 1:市价 2: 限价
     * </pre>
     *
     * <code>optional uint32 PriceMode = 19;</code>
     * @return Whether the priceMode field is set.
     */
    @java.lang.Override
    public boolean hasPriceMode() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <pre>
     * uint32 取价方式 - 1:市价 2: 限价
     * </pre>
     *
     * <code>optional uint32 PriceMode = 19;</code>
     * @return The priceMode.
     */
    @java.lang.Override
    public int getPriceMode() {
      return priceMode_;
    }

    public static final int TIMEVALIDTYPE_FIELD_NUMBER = 20;
    private int timeValidType_;
    /**
     * <pre>
     * uint32 时间有效类型
     * </pre>
     *
     * <code>optional uint32 TimeValidType = 20;</code>
     * @return Whether the timeValidType field is set.
     */
    @java.lang.Override
    public boolean hasTimeValidType() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <pre>
     * uint32 时间有效类型
     * </pre>
     *
     * <code>optional uint32 TimeValidType = 20;</code>
     * @return The timeValidType.
     */
    @java.lang.Override
    public int getTimeValidType() {
      return timeValidType_;
    }

    public static final int RELATEDID_FIELD_NUMBER = 21;
    private long relatedID_;
    /**
     * <pre>
     * uint64 关联单号
     * </pre>
     *
     * <code>optional uint64 RelatedID = 21;</code>
     * @return Whether the relatedID field is set.
     */
    @java.lang.Override
    public boolean hasRelatedID() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <pre>
     * uint64 关联单号
     * </pre>
     *
     * <code>optional uint64 RelatedID = 21;</code>
     * @return The relatedID.
     */
    @java.lang.Override
    public long getRelatedID() {
      return relatedID_;
    }

    public static final int SERVICETIME_FIELD_NUMBER = 22;
    private volatile java.lang.Object serviceTime_;
    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 22;</code>
     * @return Whether the serviceTime field is set.
     */
    @java.lang.Override
    public boolean hasServiceTime() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 22;</code>
     * @return The serviceTime.
     */
    @java.lang.Override
    public java.lang.String getServiceTime() {
      java.lang.Object ref = serviceTime_;
      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();
        if (bs.isValidUtf8()) {
          serviceTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 22;</code>
     * @return The bytes for serviceTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getServiceTimeBytes() {
      java.lang.Object ref = serviceTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        serviceTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALIDTIME_FIELD_NUMBER = 23;
    private volatile java.lang.Object validtime_;
    /**
     * <pre>
     * string 有效时间
     * </pre>
     *
     * <code>optional string validtime = 23;</code>
     * @return Whether the validtime field is set.
     */
    @java.lang.Override
    public boolean hasValidtime() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <pre>
     * string 有效时间
     * </pre>
     *
     * <code>optional string validtime = 23;</code>
     * @return The validtime.
     */
    @java.lang.Override
    public java.lang.String getValidtime() {
      java.lang.Object ref = validtime_;
      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();
        if (bs.isValidUtf8()) {
          validtime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 有效时间
     * </pre>
     *
     * <code>optional string validtime = 23;</code>
     * @return The bytes for validtime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getValidtimeBytes() {
      java.lang.Object ref = validtime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        validtime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLOSETODAYQTY_FIELD_NUMBER = 24;
    private long closeTodayQty_;
    /**
     * <pre>
     * uint64 平今仓数量
     * </pre>
     *
     * <code>optional uint64 CloseTodayQty = 24;</code>
     * @return Whether the closeTodayQty field is set.
     */
    @java.lang.Override
    public boolean hasCloseTodayQty() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <pre>
     * uint64 平今仓数量
     * </pre>
     *
     * <code>optional uint64 CloseTodayQty = 24;</code>
     * @return The closeTodayQty.
     */
    @java.lang.Override
    public long getCloseTodayQty() {
      return closeTodayQty_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, loginID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt64(6, accountID_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeUInt32(7, goodsID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeUInt32(8, marketID_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt32(9, validType_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeUInt32(10, channelOperateType_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeUInt32(11, channelOrderSrc_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeUInt32(12, hedgeFlag_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeUInt64(13, operatorID_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeDouble(14, orderPrice_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeUInt64(15, orderQty_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeUInt32(16, buyOrSell_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeUInt32(17, channelBuildType_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeUInt32(18, closeType_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeUInt32(19, priceMode_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeUInt32(20, timeValidType_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeUInt64(21, relatedID_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 22, serviceTime_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 23, validtime_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        output.writeUInt64(24, closeTodayQty_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, loginID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(6, accountID_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, goodsID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, marketID_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, validType_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, channelOperateType_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, channelOrderSrc_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, hedgeFlag_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(13, operatorID_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(14, orderPrice_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(15, orderQty_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(16, buyOrSell_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(17, channelBuildType_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(18, closeType_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(19, priceMode_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(20, timeValidType_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(21, relatedID_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(22, serviceTime_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(23, validtime_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(24, closeTodayQty_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelOrderReq)) {
        return super.equals(obj);
      }
      MSIM.ChannelOrderReq other = (MSIM.ChannelOrderReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasClientSerialNo() != other.hasClientSerialNo()) return false;
      if (hasClientSerialNo()) {
        if (!getClientSerialNo()
            .equals(other.getClientSerialNo())) return false;
      }
      if (hasClientOrderTime() != other.hasClientOrderTime()) return false;
      if (hasClientOrderTime()) {
        if (!getClientOrderTime()
            .equals(other.getClientOrderTime())) return false;
      }
      if (hasClientType() != other.hasClientType()) return false;
      if (hasClientType()) {
        if (getClientType()
            != other.getClientType()) return false;
      }
      if (hasLoginID() != other.hasLoginID()) return false;
      if (hasLoginID()) {
        if (getLoginID()
            != other.getLoginID()) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasGoodsID() != other.hasGoodsID()) return false;
      if (hasGoodsID()) {
        if (getGoodsID()
            != other.getGoodsID()) return false;
      }
      if (hasMarketID() != other.hasMarketID()) return false;
      if (hasMarketID()) {
        if (getMarketID()
            != other.getMarketID()) return false;
      }
      if (hasValidType() != other.hasValidType()) return false;
      if (hasValidType()) {
        if (getValidType()
            != other.getValidType()) return false;
      }
      if (hasChannelOperateType() != other.hasChannelOperateType()) return false;
      if (hasChannelOperateType()) {
        if (getChannelOperateType()
            != other.getChannelOperateType()) return false;
      }
      if (hasChannelOrderSrc() != other.hasChannelOrderSrc()) return false;
      if (hasChannelOrderSrc()) {
        if (getChannelOrderSrc()
            != other.getChannelOrderSrc()) return false;
      }
      if (hasHedgeFlag() != other.hasHedgeFlag()) return false;
      if (hasHedgeFlag()) {
        if (getHedgeFlag()
            != other.getHedgeFlag()) return false;
      }
      if (hasOperatorID() != other.hasOperatorID()) return false;
      if (hasOperatorID()) {
        if (getOperatorID()
            != other.getOperatorID()) return false;
      }
      if (hasOrderPrice() != other.hasOrderPrice()) return false;
      if (hasOrderPrice()) {
        if (java.lang.Double.doubleToLongBits(getOrderPrice())
            != java.lang.Double.doubleToLongBits(
                other.getOrderPrice())) return false;
      }
      if (hasOrderQty() != other.hasOrderQty()) return false;
      if (hasOrderQty()) {
        if (getOrderQty()
            != other.getOrderQty()) return false;
      }
      if (hasBuyOrSell() != other.hasBuyOrSell()) return false;
      if (hasBuyOrSell()) {
        if (getBuyOrSell()
            != other.getBuyOrSell()) return false;
      }
      if (hasChannelBuildType() != other.hasChannelBuildType()) return false;
      if (hasChannelBuildType()) {
        if (getChannelBuildType()
            != other.getChannelBuildType()) return false;
      }
      if (hasCloseType() != other.hasCloseType()) return false;
      if (hasCloseType()) {
        if (getCloseType()
            != other.getCloseType()) return false;
      }
      if (hasPriceMode() != other.hasPriceMode()) return false;
      if (hasPriceMode()) {
        if (getPriceMode()
            != other.getPriceMode()) return false;
      }
      if (hasTimeValidType() != other.hasTimeValidType()) return false;
      if (hasTimeValidType()) {
        if (getTimeValidType()
            != other.getTimeValidType()) return false;
      }
      if (hasRelatedID() != other.hasRelatedID()) return false;
      if (hasRelatedID()) {
        if (getRelatedID()
            != other.getRelatedID()) return false;
      }
      if (hasServiceTime() != other.hasServiceTime()) return false;
      if (hasServiceTime()) {
        if (!getServiceTime()
            .equals(other.getServiceTime())) return false;
      }
      if (hasValidtime() != other.hasValidtime()) return false;
      if (hasValidtime()) {
        if (!getValidtime()
            .equals(other.getValidtime())) return false;
      }
      if (hasCloseTodayQty() != other.hasCloseTodayQty()) return false;
      if (hasCloseTodayQty()) {
        if (getCloseTodayQty()
            != other.getCloseTodayQty()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasClientSerialNo()) {
        hash = (37 * hash) + CLIENTSERIALNO_FIELD_NUMBER;
        hash = (53 * hash) + getClientSerialNo().hashCode();
      }
      if (hasClientOrderTime()) {
        hash = (37 * hash) + CLIENTORDERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getClientOrderTime().hashCode();
      }
      if (hasClientType()) {
        hash = (37 * hash) + CLIENTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getClientType();
      }
      if (hasLoginID()) {
        hash = (37 * hash) + LOGINID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLoginID());
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasGoodsID()) {
        hash = (37 * hash) + GOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsID();
      }
      if (hasMarketID()) {
        hash = (37 * hash) + MARKETID_FIELD_NUMBER;
        hash = (53 * hash) + getMarketID();
      }
      if (hasValidType()) {
        hash = (37 * hash) + VALIDTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getValidType();
      }
      if (hasChannelOperateType()) {
        hash = (37 * hash) + CHANNELOPERATETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getChannelOperateType();
      }
      if (hasChannelOrderSrc()) {
        hash = (37 * hash) + CHANNELORDERSRC_FIELD_NUMBER;
        hash = (53 * hash) + getChannelOrderSrc();
      }
      if (hasHedgeFlag()) {
        hash = (37 * hash) + HEDGEFLAG_FIELD_NUMBER;
        hash = (53 * hash) + getHedgeFlag();
      }
      if (hasOperatorID()) {
        hash = (37 * hash) + OPERATORID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOperatorID());
      }
      if (hasOrderPrice()) {
        hash = (37 * hash) + ORDERPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getOrderPrice()));
      }
      if (hasOrderQty()) {
        hash = (37 * hash) + ORDERQTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOrderQty());
      }
      if (hasBuyOrSell()) {
        hash = (37 * hash) + BUYORSELL_FIELD_NUMBER;
        hash = (53 * hash) + getBuyOrSell();
      }
      if (hasChannelBuildType()) {
        hash = (37 * hash) + CHANNELBUILDTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getChannelBuildType();
      }
      if (hasCloseType()) {
        hash = (37 * hash) + CLOSETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getCloseType();
      }
      if (hasPriceMode()) {
        hash = (37 * hash) + PRICEMODE_FIELD_NUMBER;
        hash = (53 * hash) + getPriceMode();
      }
      if (hasTimeValidType()) {
        hash = (37 * hash) + TIMEVALIDTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getTimeValidType();
      }
      if (hasRelatedID()) {
        hash = (37 * hash) + RELATEDID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRelatedID());
      }
      if (hasServiceTime()) {
        hash = (37 * hash) + SERVICETIME_FIELD_NUMBER;
        hash = (53 * hash) + getServiceTime().hashCode();
      }
      if (hasValidtime()) {
        hash = (37 * hash) + VALIDTIME_FIELD_NUMBER;
        hash = (53 * hash) + getValidtime().hashCode();
      }
      if (hasCloseTodayQty()) {
        hash = (37 * hash) + CLOSETODAYQTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCloseTodayQty());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelOrderReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelOrderReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelOrderReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelOrderReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelOrderReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelOrderReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelOrderReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelOrderReq 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 MSIM.ChannelOrderReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelOrderReq 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 MSIM.ChannelOrderReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelOrderReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelOrderReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 交易委托请求 0 3 31
     * </pre>
     *
     * Protobuf type {@code ChannelOrderReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelOrderReq)
        MSIM.ChannelOrderReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelOrderReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelOrderReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelOrderReq.class, MSIM.ChannelOrderReq.Builder.class);
      }

      // Construct using MSIM.ChannelOrderReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        clientSerialNo_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        clientOrderTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        clientType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        loginID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        goodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        marketID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        validType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        channelOperateType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        channelOrderSrc_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        hedgeFlag_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        operatorID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00001000);
        orderPrice_ = 0D;
        bitField0_ = (bitField0_ & ~0x00002000);
        orderQty_ = 0L;
        bitField0_ = (bitField0_ & ~0x00004000);
        buyOrSell_ = 0;
        bitField0_ = (bitField0_ & ~0x00008000);
        channelBuildType_ = 0;
        bitField0_ = (bitField0_ & ~0x00010000);
        closeType_ = 0;
        bitField0_ = (bitField0_ & ~0x00020000);
        priceMode_ = 0;
        bitField0_ = (bitField0_ & ~0x00040000);
        timeValidType_ = 0;
        bitField0_ = (bitField0_ & ~0x00080000);
        relatedID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00100000);
        serviceTime_ = "";
        bitField0_ = (bitField0_ & ~0x00200000);
        validtime_ = "";
        bitField0_ = (bitField0_ & ~0x00400000);
        closeTodayQty_ = 0L;
        bitField0_ = (bitField0_ & ~0x00800000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelOrderReq_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelOrderReq getDefaultInstanceForType() {
        return MSIM.ChannelOrderReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelOrderReq build() {
        MSIM.ChannelOrderReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelOrderReq buildPartial() {
        MSIM.ChannelOrderReq result = new MSIM.ChannelOrderReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.clientSerialNo_ = clientSerialNo_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.clientOrderTime_ = clientOrderTime_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.clientType_ = clientType_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.loginID_ = loginID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.goodsID_ = goodsID_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.marketID_ = marketID_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.validType_ = validType_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.channelOperateType_ = channelOperateType_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.channelOrderSrc_ = channelOrderSrc_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.hedgeFlag_ = hedgeFlag_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.operatorID_ = operatorID_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.orderPrice_ = orderPrice_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.orderQty_ = orderQty_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.buyOrSell_ = buyOrSell_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.channelBuildType_ = channelBuildType_;
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.closeType_ = closeType_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.priceMode_ = priceMode_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.timeValidType_ = timeValidType_;
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.relatedID_ = relatedID_;
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          to_bitField0_ |= 0x00200000;
        }
        result.serviceTime_ = serviceTime_;
        if (((from_bitField0_ & 0x00400000) != 0)) {
          to_bitField0_ |= 0x00400000;
        }
        result.validtime_ = validtime_;
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.closeTodayQty_ = closeTodayQty_;
          to_bitField0_ |= 0x00800000;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelOrderReq) {
          return mergeFrom((MSIM.ChannelOrderReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelOrderReq other) {
        if (other == MSIM.ChannelOrderReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasClientSerialNo()) {
          bitField0_ |= 0x00000002;
          clientSerialNo_ = other.clientSerialNo_;
          onChanged();
        }
        if (other.hasClientOrderTime()) {
          bitField0_ |= 0x00000004;
          clientOrderTime_ = other.clientOrderTime_;
          onChanged();
        }
        if (other.hasClientType()) {
          setClientType(other.getClientType());
        }
        if (other.hasLoginID()) {
          setLoginID(other.getLoginID());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasGoodsID()) {
          setGoodsID(other.getGoodsID());
        }
        if (other.hasMarketID()) {
          setMarketID(other.getMarketID());
        }
        if (other.hasValidType()) {
          setValidType(other.getValidType());
        }
        if (other.hasChannelOperateType()) {
          setChannelOperateType(other.getChannelOperateType());
        }
        if (other.hasChannelOrderSrc()) {
          setChannelOrderSrc(other.getChannelOrderSrc());
        }
        if (other.hasHedgeFlag()) {
          setHedgeFlag(other.getHedgeFlag());
        }
        if (other.hasOperatorID()) {
          setOperatorID(other.getOperatorID());
        }
        if (other.hasOrderPrice()) {
          setOrderPrice(other.getOrderPrice());
        }
        if (other.hasOrderQty()) {
          setOrderQty(other.getOrderQty());
        }
        if (other.hasBuyOrSell()) {
          setBuyOrSell(other.getBuyOrSell());
        }
        if (other.hasChannelBuildType()) {
          setChannelBuildType(other.getChannelBuildType());
        }
        if (other.hasCloseType()) {
          setCloseType(other.getCloseType());
        }
        if (other.hasPriceMode()) {
          setPriceMode(other.getPriceMode());
        }
        if (other.hasTimeValidType()) {
          setTimeValidType(other.getTimeValidType());
        }
        if (other.hasRelatedID()) {
          setRelatedID(other.getRelatedID());
        }
        if (other.hasServiceTime()) {
          bitField0_ |= 0x00200000;
          serviceTime_ = other.serviceTime_;
          onChanged();
        }
        if (other.hasValidtime()) {
          bitField0_ |= 0x00400000;
          validtime_ = other.validtime_;
          onChanged();
        }
        if (other.hasCloseTodayQty()) {
          setCloseTodayQty(other.getCloseTodayQty());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelOrderReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelOrderReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.lang.Object clientSerialNo_ = "";
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return Whether the clientSerialNo field is set.
       */
      public boolean hasClientSerialNo() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return The clientSerialNo.
       */
      public java.lang.String getClientSerialNo() {
        java.lang.Object ref = clientSerialNo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientSerialNo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return The bytes for clientSerialNo.
       */
      public com.google.protobuf.ByteString
          getClientSerialNoBytes() {
        java.lang.Object ref = clientSerialNo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientSerialNo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @param value The clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialNo() {
        bitField0_ = (bitField0_ & ~0x00000002);
        clientSerialNo_ = getDefaultInstance().getClientSerialNo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @param value The bytes for clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clientOrderTime_ = "";
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return Whether the clientOrderTime field is set.
       */
      public boolean hasClientOrderTime() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The clientOrderTime.
       */
      public java.lang.String getClientOrderTime() {
        java.lang.Object ref = clientOrderTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientOrderTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The bytes for clientOrderTime.
       */
      public com.google.protobuf.ByteString
          getClientOrderTimeBytes() {
        java.lang.Object ref = clientOrderTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientOrderTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientOrderTime() {
        bitField0_ = (bitField0_ & ~0x00000004);
        clientOrderTime_ = getDefaultInstance().getClientOrderTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The bytes for clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }

      private int clientType_ ;
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return Whether the clientType field is set.
       */
      @java.lang.Override
      public boolean hasClientType() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return The clientType.
       */
      @java.lang.Override
      public int getClientType() {
        return clientType_;
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @param value The clientType to set.
       * @return This builder for chaining.
       */
      public Builder setClientType(int value) {
        bitField0_ |= 0x00000008;
        clientType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        clientType_ = 0;
        onChanged();
        return this;
      }

      private long loginID_ ;
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return Whether the loginID field is set.
       */
      @java.lang.Override
      public boolean hasLoginID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return The loginID.
       */
      @java.lang.Override
      public long getLoginID() {
        return loginID_;
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @param value The loginID to set.
       * @return This builder for chaining.
       */
      public Builder setLoginID(long value) {
        bitField0_ |= 0x00000010;
        loginID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        loginID_ = 0L;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000020;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000020);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private int goodsID_ ;
      /**
       * <pre>
       * uint32 商品IDOrderReq
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return Whether the goodsID field is set.
       */
      @java.lang.Override
      public boolean hasGoodsID() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * uint32 商品IDOrderReq
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return The goodsID.
       */
      @java.lang.Override
      public int getGoodsID() {
        return goodsID_;
      }
      /**
       * <pre>
       * uint32 商品IDOrderReq
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @param value The goodsID to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsID(int value) {
        bitField0_ |= 0x00000040;
        goodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 商品IDOrderReq
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        goodsID_ = 0;
        onChanged();
        return this;
      }

      private int marketID_ ;
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @return Whether the marketID field is set.
       */
      @java.lang.Override
      public boolean hasMarketID() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @return The marketID.
       */
      @java.lang.Override
      public int getMarketID() {
        return marketID_;
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @param value The marketID to set.
       * @return This builder for chaining.
       */
      public Builder setMarketID(int value) {
        bitField0_ |= 0x00000080;
        marketID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearMarketID() {
        bitField0_ = (bitField0_ & ~0x00000080);
        marketID_ = 0;
        onChanged();
        return this;
      }

      private int validType_ ;
      /**
       * <pre>
       * int32 有效类型 - 1当日有效
       * </pre>
       *
       * <code>optional int32 ValidType = 9;</code>
       * @return Whether the validType field is set.
       */
      @java.lang.Override
      public boolean hasValidType() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * int32 有效类型 - 1当日有效
       * </pre>
       *
       * <code>optional int32 ValidType = 9;</code>
       * @return The validType.
       */
      @java.lang.Override
      public int getValidType() {
        return validType_;
      }
      /**
       * <pre>
       * int32 有效类型 - 1当日有效
       * </pre>
       *
       * <code>optional int32 ValidType = 9;</code>
       * @param value The validType to set.
       * @return This builder for chaining.
       */
      public Builder setValidType(int value) {
        bitField0_ |= 0x00000100;
        validType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 有效类型 - 1当日有效
       * </pre>
       *
       * <code>optional int32 ValidType = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearValidType() {
        bitField0_ = (bitField0_ & ~0x00000100);
        validType_ = 0;
        onChanged();
        return this;
      }

      private int channelOperateType_ ;
      /**
       * <pre>
       * uint32 操作类型:
       * </pre>
       *
       * <code>optional uint32 ChannelOperateType = 10;</code>
       * @return Whether the channelOperateType field is set.
       */
      @java.lang.Override
      public boolean hasChannelOperateType() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * uint32 操作类型:
       * </pre>
       *
       * <code>optional uint32 ChannelOperateType = 10;</code>
       * @return The channelOperateType.
       */
      @java.lang.Override
      public int getChannelOperateType() {
        return channelOperateType_;
      }
      /**
       * <pre>
       * uint32 操作类型:
       * </pre>
       *
       * <code>optional uint32 ChannelOperateType = 10;</code>
       * @param value The channelOperateType to set.
       * @return This builder for chaining.
       */
      public Builder setChannelOperateType(int value) {
        bitField0_ |= 0x00000200;
        channelOperateType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 操作类型:
       * </pre>
       *
       * <code>optional uint32 ChannelOperateType = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannelOperateType() {
        bitField0_ = (bitField0_ & ~0x00000200);
        channelOperateType_ = 0;
        onChanged();
        return this;
      }

      private int channelOrderSrc_ ;
      /**
       * <pre>
       * uint32 单据来源委托来源 -  1:客户端 2:管理端 3:风控服务 
       * </pre>
       *
       * <code>optional uint32 ChannelOrderSrc = 11;</code>
       * @return Whether the channelOrderSrc field is set.
       */
      @java.lang.Override
      public boolean hasChannelOrderSrc() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * uint32 单据来源委托来源 -  1:客户端 2:管理端 3:风控服务 
       * </pre>
       *
       * <code>optional uint32 ChannelOrderSrc = 11;</code>
       * @return The channelOrderSrc.
       */
      @java.lang.Override
      public int getChannelOrderSrc() {
        return channelOrderSrc_;
      }
      /**
       * <pre>
       * uint32 单据来源委托来源 -  1:客户端 2:管理端 3:风控服务 
       * </pre>
       *
       * <code>optional uint32 ChannelOrderSrc = 11;</code>
       * @param value The channelOrderSrc to set.
       * @return This builder for chaining.
       */
      public Builder setChannelOrderSrc(int value) {
        bitField0_ |= 0x00000400;
        channelOrderSrc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 单据来源委托来源 -  1:客户端 2:管理端 3:风控服务 
       * </pre>
       *
       * <code>optional uint32 ChannelOrderSrc = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannelOrderSrc() {
        bitField0_ = (bitField0_ & ~0x00000400);
        channelOrderSrc_ = 0;
        onChanged();
        return this;
      }

      private int hedgeFlag_ ;
      /**
       * <pre>
       * uint32 投机套保标志 - 0:无 1:投机 2:套保 3:套利
       * </pre>
       *
       * <code>optional uint32 HedgeFlag = 12;</code>
       * @return Whether the hedgeFlag field is set.
       */
      @java.lang.Override
      public boolean hasHedgeFlag() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * uint32 投机套保标志 - 0:无 1:投机 2:套保 3:套利
       * </pre>
       *
       * <code>optional uint32 HedgeFlag = 12;</code>
       * @return The hedgeFlag.
       */
      @java.lang.Override
      public int getHedgeFlag() {
        return hedgeFlag_;
      }
      /**
       * <pre>
       * uint32 投机套保标志 - 0:无 1:投机 2:套保 3:套利
       * </pre>
       *
       * <code>optional uint32 HedgeFlag = 12;</code>
       * @param value The hedgeFlag to set.
       * @return This builder for chaining.
       */
      public Builder setHedgeFlag(int value) {
        bitField0_ |= 0x00000800;
        hedgeFlag_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 投机套保标志 - 0:无 1:投机 2:套保 3:套利
       * </pre>
       *
       * <code>optional uint32 HedgeFlag = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearHedgeFlag() {
        bitField0_ = (bitField0_ & ~0x00000800);
        hedgeFlag_ = 0;
        onChanged();
        return this;
      }

      private long operatorID_ ;
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 13;</code>
       * @return Whether the operatorID field is set.
       */
      @java.lang.Override
      public boolean hasOperatorID() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 13;</code>
       * @return The operatorID.
       */
      @java.lang.Override
      public long getOperatorID() {
        return operatorID_;
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 13;</code>
       * @param value The operatorID to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorID(long value) {
        bitField0_ |= 0x00001000;
        operatorID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorID() {
        bitField0_ = (bitField0_ & ~0x00001000);
        operatorID_ = 0L;
        onChanged();
        return this;
      }

      private double orderPrice_ ;
      /**
       * <pre>
       * double 委托价格
       * </pre>
       *
       * <code>optional double OrderPrice = 14;</code>
       * @return Whether the orderPrice field is set.
       */
      @java.lang.Override
      public boolean hasOrderPrice() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * double 委托价格
       * </pre>
       *
       * <code>optional double OrderPrice = 14;</code>
       * @return The orderPrice.
       */
      @java.lang.Override
      public double getOrderPrice() {
        return orderPrice_;
      }
      /**
       * <pre>
       * double 委托价格
       * </pre>
       *
       * <code>optional double OrderPrice = 14;</code>
       * @param value The orderPrice to set.
       * @return This builder for chaining.
       */
      public Builder setOrderPrice(double value) {
        bitField0_ |= 0x00002000;
        orderPrice_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double 委托价格
       * </pre>
       *
       * <code>optional double OrderPrice = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderPrice() {
        bitField0_ = (bitField0_ & ~0x00002000);
        orderPrice_ = 0D;
        onChanged();
        return this;
      }

      private long orderQty_ ;
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 15;</code>
       * @return Whether the orderQty field is set.
       */
      @java.lang.Override
      public boolean hasOrderQty() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 15;</code>
       * @return The orderQty.
       */
      @java.lang.Override
      public long getOrderQty() {
        return orderQty_;
      }
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 15;</code>
       * @param value The orderQty to set.
       * @return This builder for chaining.
       */
      public Builder setOrderQty(long value) {
        bitField0_ |= 0x00004000;
        orderQty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderQty() {
        bitField0_ = (bitField0_ & ~0x00004000);
        orderQty_ = 0L;
        onChanged();
        return this;
      }

      private int buyOrSell_ ;
      /**
       * <pre>
       * uint32 买卖方向(买卖 - 0:买 1:卖 )
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 16;</code>
       * @return Whether the buyOrSell field is set.
       */
      @java.lang.Override
      public boolean hasBuyOrSell() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <pre>
       * uint32 买卖方向(买卖 - 0:买 1:卖 )
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 16;</code>
       * @return The buyOrSell.
       */
      @java.lang.Override
      public int getBuyOrSell() {
        return buyOrSell_;
      }
      /**
       * <pre>
       * uint32 买卖方向(买卖 - 0:买 1:卖 )
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 16;</code>
       * @param value The buyOrSell to set.
       * @return This builder for chaining.
       */
      public Builder setBuyOrSell(int value) {
        bitField0_ |= 0x00008000;
        buyOrSell_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 买卖方向(买卖 - 0:买 1:卖 )
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearBuyOrSell() {
        bitField0_ = (bitField0_ & ~0x00008000);
        buyOrSell_ = 0;
        onChanged();
        return this;
      }

      private int channelBuildType_ ;
      /**
       * <pre>
       * uint32 下单类型(开平标志 - 0:无 1:建仓 2:平仓)
       * </pre>
       *
       * <code>optional uint32 ChannelBuildType = 17;</code>
       * @return Whether the channelBuildType field is set.
       */
      @java.lang.Override
      public boolean hasChannelBuildType() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <pre>
       * uint32 下单类型(开平标志 - 0:无 1:建仓 2:平仓)
       * </pre>
       *
       * <code>optional uint32 ChannelBuildType = 17;</code>
       * @return The channelBuildType.
       */
      @java.lang.Override
      public int getChannelBuildType() {
        return channelBuildType_;
      }
      /**
       * <pre>
       * uint32 下单类型(开平标志 - 0:无 1:建仓 2:平仓)
       * </pre>
       *
       * <code>optional uint32 ChannelBuildType = 17;</code>
       * @param value The channelBuildType to set.
       * @return This builder for chaining.
       */
      public Builder setChannelBuildType(int value) {
        bitField0_ |= 0x00010000;
        channelBuildType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 下单类型(开平标志 - 0:无 1:建仓 2:平仓)
       * </pre>
       *
       * <code>optional uint32 ChannelBuildType = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannelBuildType() {
        bitField0_ = (bitField0_ & ~0x00010000);
        channelBuildType_ = 0;
        onChanged();
        return this;
      }

      private int closeType_ ;
      /**
       * <pre>
       * uint32 平仓方式(平仓方式 - 0:无 1:平今 2:平昨)
       * </pre>
       *
       * <code>optional uint32 CloseType = 18;</code>
       * @return Whether the closeType field is set.
       */
      @java.lang.Override
      public boolean hasCloseType() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <pre>
       * uint32 平仓方式(平仓方式 - 0:无 1:平今 2:平昨)
       * </pre>
       *
       * <code>optional uint32 CloseType = 18;</code>
       * @return The closeType.
       */
      @java.lang.Override
      public int getCloseType() {
        return closeType_;
      }
      /**
       * <pre>
       * uint32 平仓方式(平仓方式 - 0:无 1:平今 2:平昨)
       * </pre>
       *
       * <code>optional uint32 CloseType = 18;</code>
       * @param value The closeType to set.
       * @return This builder for chaining.
       */
      public Builder setCloseType(int value) {
        bitField0_ |= 0x00020000;
        closeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 平仓方式(平仓方式 - 0:无 1:平今 2:平昨)
       * </pre>
       *
       * <code>optional uint32 CloseType = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearCloseType() {
        bitField0_ = (bitField0_ & ~0x00020000);
        closeType_ = 0;
        onChanged();
        return this;
      }

      private int priceMode_ ;
      /**
       * <pre>
       * uint32 取价方式 - 1:市价 2: 限价
       * </pre>
       *
       * <code>optional uint32 PriceMode = 19;</code>
       * @return Whether the priceMode field is set.
       */
      @java.lang.Override
      public boolean hasPriceMode() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <pre>
       * uint32 取价方式 - 1:市价 2: 限价
       * </pre>
       *
       * <code>optional uint32 PriceMode = 19;</code>
       * @return The priceMode.
       */
      @java.lang.Override
      public int getPriceMode() {
        return priceMode_;
      }
      /**
       * <pre>
       * uint32 取价方式 - 1:市价 2: 限价
       * </pre>
       *
       * <code>optional uint32 PriceMode = 19;</code>
       * @param value The priceMode to set.
       * @return This builder for chaining.
       */
      public Builder setPriceMode(int value) {
        bitField0_ |= 0x00040000;
        priceMode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 取价方式 - 1:市价 2: 限价
       * </pre>
       *
       * <code>optional uint32 PriceMode = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearPriceMode() {
        bitField0_ = (bitField0_ & ~0x00040000);
        priceMode_ = 0;
        onChanged();
        return this;
      }

      private int timeValidType_ ;
      /**
       * <pre>
       * uint32 时间有效类型
       * </pre>
       *
       * <code>optional uint32 TimeValidType = 20;</code>
       * @return Whether the timeValidType field is set.
       */
      @java.lang.Override
      public boolean hasTimeValidType() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <pre>
       * uint32 时间有效类型
       * </pre>
       *
       * <code>optional uint32 TimeValidType = 20;</code>
       * @return The timeValidType.
       */
      @java.lang.Override
      public int getTimeValidType() {
        return timeValidType_;
      }
      /**
       * <pre>
       * uint32 时间有效类型
       * </pre>
       *
       * <code>optional uint32 TimeValidType = 20;</code>
       * @param value The timeValidType to set.
       * @return This builder for chaining.
       */
      public Builder setTimeValidType(int value) {
        bitField0_ |= 0x00080000;
        timeValidType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 时间有效类型
       * </pre>
       *
       * <code>optional uint32 TimeValidType = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeValidType() {
        bitField0_ = (bitField0_ & ~0x00080000);
        timeValidType_ = 0;
        onChanged();
        return this;
      }

      private long relatedID_ ;
      /**
       * <pre>
       * uint64 关联单号
       * </pre>
       *
       * <code>optional uint64 RelatedID = 21;</code>
       * @return Whether the relatedID field is set.
       */
      @java.lang.Override
      public boolean hasRelatedID() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <pre>
       * uint64 关联单号
       * </pre>
       *
       * <code>optional uint64 RelatedID = 21;</code>
       * @return The relatedID.
       */
      @java.lang.Override
      public long getRelatedID() {
        return relatedID_;
      }
      /**
       * <pre>
       * uint64 关联单号
       * </pre>
       *
       * <code>optional uint64 RelatedID = 21;</code>
       * @param value The relatedID to set.
       * @return This builder for chaining.
       */
      public Builder setRelatedID(long value) {
        bitField0_ |= 0x00100000;
        relatedID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 关联单号
       * </pre>
       *
       * <code>optional uint64 RelatedID = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearRelatedID() {
        bitField0_ = (bitField0_ & ~0x00100000);
        relatedID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object serviceTime_ = "";
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 22;</code>
       * @return Whether the serviceTime field is set.
       */
      public boolean hasServiceTime() {
        return ((bitField0_ & 0x00200000) != 0);
      }
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 22;</code>
       * @return The serviceTime.
       */
      public java.lang.String getServiceTime() {
        java.lang.Object ref = serviceTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            serviceTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 22;</code>
       * @return The bytes for serviceTime.
       */
      public com.google.protobuf.ByteString
          getServiceTimeBytes() {
        java.lang.Object ref = serviceTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          serviceTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 22;</code>
       * @param value The serviceTime to set.
       * @return This builder for chaining.
       */
      public Builder setServiceTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00200000;
        serviceTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearServiceTime() {
        bitField0_ = (bitField0_ & ~0x00200000);
        serviceTime_ = getDefaultInstance().getServiceTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 22;</code>
       * @param value The bytes for serviceTime to set.
       * @return This builder for chaining.
       */
      public Builder setServiceTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00200000;
        serviceTime_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object validtime_ = "";
      /**
       * <pre>
       * string 有效时间
       * </pre>
       *
       * <code>optional string validtime = 23;</code>
       * @return Whether the validtime field is set.
       */
      public boolean hasValidtime() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <pre>
       * string 有效时间
       * </pre>
       *
       * <code>optional string validtime = 23;</code>
       * @return The validtime.
       */
      public java.lang.String getValidtime() {
        java.lang.Object ref = validtime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            validtime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 有效时间
       * </pre>
       *
       * <code>optional string validtime = 23;</code>
       * @return The bytes for validtime.
       */
      public com.google.protobuf.ByteString
          getValidtimeBytes() {
        java.lang.Object ref = validtime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          validtime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 有效时间
       * </pre>
       *
       * <code>optional string validtime = 23;</code>
       * @param value The validtime to set.
       * @return This builder for chaining.
       */
      public Builder setValidtime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00400000;
        validtime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 有效时间
       * </pre>
       *
       * <code>optional string validtime = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearValidtime() {
        bitField0_ = (bitField0_ & ~0x00400000);
        validtime_ = getDefaultInstance().getValidtime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 有效时间
       * </pre>
       *
       * <code>optional string validtime = 23;</code>
       * @param value The bytes for validtime to set.
       * @return This builder for chaining.
       */
      public Builder setValidtimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00400000;
        validtime_ = value;
        onChanged();
        return this;
      }

      private long closeTodayQty_ ;
      /**
       * <pre>
       * uint64 平今仓数量
       * </pre>
       *
       * <code>optional uint64 CloseTodayQty = 24;</code>
       * @return Whether the closeTodayQty field is set.
       */
      @java.lang.Override
      public boolean hasCloseTodayQty() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <pre>
       * uint64 平今仓数量
       * </pre>
       *
       * <code>optional uint64 CloseTodayQty = 24;</code>
       * @return The closeTodayQty.
       */
      @java.lang.Override
      public long getCloseTodayQty() {
        return closeTodayQty_;
      }
      /**
       * <pre>
       * uint64 平今仓数量
       * </pre>
       *
       * <code>optional uint64 CloseTodayQty = 24;</code>
       * @param value The closeTodayQty to set.
       * @return This builder for chaining.
       */
      public Builder setCloseTodayQty(long value) {
        bitField0_ |= 0x00800000;
        closeTodayQty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 平今仓数量
       * </pre>
       *
       * <code>optional uint64 CloseTodayQty = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearCloseTodayQty() {
        bitField0_ = (bitField0_ & ~0x00800000);
        closeTodayQty_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelOrderReq)
    }

    // @@protoc_insertion_point(class_scope:ChannelOrderReq)
    private static final MSIM.ChannelOrderReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelOrderReq();
    }

    public static MSIM.ChannelOrderReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelOrderReq>
        PARSER = new com.google.protobuf.AbstractParser<ChannelOrderReq>() {
      @java.lang.Override
      public ChannelOrderReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelOrderReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelOrderReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelOrderRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelOrderRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return Whether the orderID field is set.
     */
    boolean hasOrderID();
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return The orderID.
     */
    long getOrderID();

    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return Whether the orderTime field is set.
     */
    boolean hasOrderTime();
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The orderTime.
     */
    java.lang.String getOrderTime();
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The bytes for orderTime.
     */
    com.google.protobuf.ByteString
        getOrderTimeBytes();
  }
  /**
   * <pre>
   * 交易委托应答 0 3 32
   * </pre>
   *
   * Protobuf type {@code ChannelOrderRsp}
   */
  public static final class ChannelOrderRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelOrderRsp)
      ChannelOrderRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelOrderRsp.newBuilder() to construct.
    private ChannelOrderRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelOrderRsp() {
      retDesc_ = "";
      orderTime_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelOrderRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelOrderRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              orderID_ = input.readUInt64();
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              orderTime_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelOrderRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelOrderRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelOrderRsp.class, MSIM.ChannelOrderRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ORDERID_FIELD_NUMBER = 4;
    private long orderID_;
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return Whether the orderID field is set.
     */
    @java.lang.Override
    public boolean hasOrderID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return The orderID.
     */
    @java.lang.Override
    public long getOrderID() {
      return orderID_;
    }

    public static final int ORDERTIME_FIELD_NUMBER = 5;
    private volatile java.lang.Object orderTime_;
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return Whether the orderTime field is set.
     */
    @java.lang.Override
    public boolean hasOrderTime() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The orderTime.
     */
    @java.lang.Override
    public java.lang.String getOrderTime() {
      java.lang.Object ref = orderTime_;
      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();
        if (bs.isValidUtf8()) {
          orderTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The bytes for orderTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOrderTimeBytes() {
      java.lang.Object ref = orderTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        orderTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, orderID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, orderTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, orderID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, orderTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelOrderRsp)) {
        return super.equals(obj);
      }
      MSIM.ChannelOrderRsp other = (MSIM.ChannelOrderRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasOrderID() != other.hasOrderID()) return false;
      if (hasOrderID()) {
        if (getOrderID()
            != other.getOrderID()) return false;
      }
      if (hasOrderTime() != other.hasOrderTime()) return false;
      if (hasOrderTime()) {
        if (!getOrderTime()
            .equals(other.getOrderTime())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasOrderID()) {
        hash = (37 * hash) + ORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOrderID());
      }
      if (hasOrderTime()) {
        hash = (37 * hash) + ORDERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getOrderTime().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelOrderRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelOrderRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelOrderRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelOrderRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelOrderRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelOrderRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelOrderRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelOrderRsp 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 MSIM.ChannelOrderRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelOrderRsp 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 MSIM.ChannelOrderRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelOrderRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelOrderRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 交易委托应答 0 3 32
     * </pre>
     *
     * Protobuf type {@code ChannelOrderRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelOrderRsp)
        MSIM.ChannelOrderRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelOrderRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelOrderRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelOrderRsp.class, MSIM.ChannelOrderRsp.Builder.class);
      }

      // Construct using MSIM.ChannelOrderRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        orderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        orderTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelOrderRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelOrderRsp getDefaultInstanceForType() {
        return MSIM.ChannelOrderRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelOrderRsp build() {
        MSIM.ChannelOrderRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelOrderRsp buildPartial() {
        MSIM.ChannelOrderRsp result = new MSIM.ChannelOrderRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.orderID_ = orderID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.orderTime_ = orderTime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelOrderRsp) {
          return mergeFrom((MSIM.ChannelOrderRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelOrderRsp other) {
        if (other == MSIM.ChannelOrderRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasOrderID()) {
          setOrderID(other.getOrderID());
        }
        if (other.hasOrderTime()) {
          bitField0_ |= 0x00000010;
          orderTime_ = other.orderTime_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelOrderRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelOrderRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long orderID_ ;
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return Whether the orderID field is set.
       */
      @java.lang.Override
      public boolean hasOrderID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return The orderID.
       */
      @java.lang.Override
      public long getOrderID() {
        return orderID_;
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @param value The orderID to set.
       * @return This builder for chaining.
       */
      public Builder setOrderID(long value) {
        bitField0_ |= 0x00000008;
        orderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        orderID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object orderTime_ = "";
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return Whether the orderTime field is set.
       */
      public boolean hasOrderTime() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return The orderTime.
       */
      public java.lang.String getOrderTime() {
        java.lang.Object ref = orderTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            orderTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return The bytes for orderTime.
       */
      public com.google.protobuf.ByteString
          getOrderTimeBytes() {
        java.lang.Object ref = orderTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          orderTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @param value The orderTime to set.
       * @return This builder for chaining.
       */
      public Builder setOrderTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        orderTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderTime() {
        bitField0_ = (bitField0_ & ~0x00000010);
        orderTime_ = getDefaultInstance().getOrderTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @param value The bytes for orderTime to set.
       * @return This builder for chaining.
       */
      public Builder setOrderTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        orderTime_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelOrderRsp)
    }

    // @@protoc_insertion_point(class_scope:ChannelOrderRsp)
    private static final MSIM.ChannelOrderRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelOrderRsp();
    }

    public static MSIM.ChannelOrderRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelOrderRsp>
        PARSER = new com.google.protobuf.AbstractParser<ChannelOrderRsp>() {
      @java.lang.Override
      public ChannelOrderRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelOrderRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelOrderRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExternalExchangeReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ExternalExchangeReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * 更新时间
     * </pre>
     *
     * <code>optional uint64 ExUTime = 2;</code>
     * @return Whether the exUTime field is set.
     */
    boolean hasExUTime();
    /**
     * <pre>
     * 更新时间
     * </pre>
     *
     * <code>optional uint64 ExUTime = 2;</code>
     * @return The exUTime.
     */
    long getExUTime();
  }
  /**
   * Protobuf type {@code ExternalExchangeReq}
   */
  public static final class ExternalExchangeReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ExternalExchangeReq)
      ExternalExchangeReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExternalExchangeReq.newBuilder() to construct.
    private ExternalExchangeReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ExternalExchangeReq() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ExternalExchangeReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ExternalExchangeReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              exUTime_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ExternalExchangeReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ExternalExchangeReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ExternalExchangeReq.class, MSIM.ExternalExchangeReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int EXUTIME_FIELD_NUMBER = 2;
    private long exUTime_;
    /**
     * <pre>
     * 更新时间
     * </pre>
     *
     * <code>optional uint64 ExUTime = 2;</code>
     * @return Whether the exUTime field is set.
     */
    @java.lang.Override
    public boolean hasExUTime() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 更新时间
     * </pre>
     *
     * <code>optional uint64 ExUTime = 2;</code>
     * @return The exUTime.
     */
    @java.lang.Override
    public long getExUTime() {
      return exUTime_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, exUTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, exUTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ExternalExchangeReq)) {
        return super.equals(obj);
      }
      MSIM.ExternalExchangeReq other = (MSIM.ExternalExchangeReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasExUTime() != other.hasExUTime()) return false;
      if (hasExUTime()) {
        if (getExUTime()
            != other.getExUTime()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasExUTime()) {
        hash = (37 * hash) + EXUTIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getExUTime());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ExternalExchangeReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ExternalExchangeReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ExternalExchangeReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ExternalExchangeReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ExternalExchangeReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ExternalExchangeReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ExternalExchangeReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ExternalExchangeReq 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 MSIM.ExternalExchangeReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ExternalExchangeReq 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 MSIM.ExternalExchangeReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ExternalExchangeReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ExternalExchangeReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 ExternalExchangeReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ExternalExchangeReq)
        MSIM.ExternalExchangeReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ExternalExchangeReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ExternalExchangeReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ExternalExchangeReq.class, MSIM.ExternalExchangeReq.Builder.class);
      }

      // Construct using MSIM.ExternalExchangeReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        exUTime_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ExternalExchangeReq_descriptor;
      }

      @java.lang.Override
      public MSIM.ExternalExchangeReq getDefaultInstanceForType() {
        return MSIM.ExternalExchangeReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ExternalExchangeReq build() {
        MSIM.ExternalExchangeReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ExternalExchangeReq buildPartial() {
        MSIM.ExternalExchangeReq result = new MSIM.ExternalExchangeReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.exUTime_ = exUTime_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ExternalExchangeReq) {
          return mergeFrom((MSIM.ExternalExchangeReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ExternalExchangeReq other) {
        if (other == MSIM.ExternalExchangeReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasExUTime()) {
          setExUTime(other.getExUTime());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ExternalExchangeReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ExternalExchangeReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long exUTime_ ;
      /**
       * <pre>
       * 更新时间
       * </pre>
       *
       * <code>optional uint64 ExUTime = 2;</code>
       * @return Whether the exUTime field is set.
       */
      @java.lang.Override
      public boolean hasExUTime() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 更新时间
       * </pre>
       *
       * <code>optional uint64 ExUTime = 2;</code>
       * @return The exUTime.
       */
      @java.lang.Override
      public long getExUTime() {
        return exUTime_;
      }
      /**
       * <pre>
       * 更新时间
       * </pre>
       *
       * <code>optional uint64 ExUTime = 2;</code>
       * @param value The exUTime to set.
       * @return This builder for chaining.
       */
      public Builder setExUTime(long value) {
        bitField0_ |= 0x00000002;
        exUTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 更新时间
       * </pre>
       *
       * <code>optional uint64 ExUTime = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearExUTime() {
        bitField0_ = (bitField0_ & ~0x00000002);
        exUTime_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ExternalExchangeReq)
    }

    // @@protoc_insertion_point(class_scope:ExternalExchangeReq)
    private static final MSIM.ExternalExchangeReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ExternalExchangeReq();
    }

    public static MSIM.ExternalExchangeReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ExternalExchangeReq>
        PARSER = new com.google.protobuf.AbstractParser<ExternalExchangeReq>() {
      @java.lang.Override
      public ExternalExchangeReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ExternalExchangeReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ExternalExchangeReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExternalExchangeRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ExternalExchangeRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * 外部交易所列表
     * </pre>
     *
     * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
     */
    java.util.List<MSIM.ExternalExchange> 
        getExternalExchangeListList();
    /**
     * <pre>
     * 外部交易所列表
     * </pre>
     *
     * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
     */
    MSIM.ExternalExchange getExternalExchangeList(int index);
    /**
     * <pre>
     * 外部交易所列表
     * </pre>
     *
     * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
     */
    int getExternalExchangeListCount();
    /**
     * <pre>
     * 外部交易所列表
     * </pre>
     *
     * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
     */
    java.util.List<? extends MSIM.ExternalExchangeOrBuilder> 
        getExternalExchangeListOrBuilderList();
    /**
     * <pre>
     * 外部交易所列表
     * </pre>
     *
     * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
     */
    MSIM.ExternalExchangeOrBuilder getExternalExchangeListOrBuilder(
        int index);
  }
  /**
   * <pre>
   * 外部交易所查询应答
   * </pre>
   *
   * Protobuf type {@code ExternalExchangeRsp}
   */
  public static final class ExternalExchangeRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ExternalExchangeRsp)
      ExternalExchangeRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExternalExchangeRsp.newBuilder() to construct.
    private ExternalExchangeRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ExternalExchangeRsp() {
      retDesc_ = "";
      externalExchangeList_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ExternalExchangeRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ExternalExchangeRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                externalExchangeList_ = new java.util.ArrayList<MSIM.ExternalExchange>();
                mutable_bitField0_ |= 0x00000008;
              }
              externalExchangeList_.add(
                  input.readMessage(MSIM.ExternalExchange.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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_ & 0x00000008) != 0)) {
          externalExchangeList_ = java.util.Collections.unmodifiableList(externalExchangeList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ExternalExchangeRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ExternalExchangeRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ExternalExchangeRsp.class, MSIM.ExternalExchangeRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXTERNALEXCHANGELIST_FIELD_NUMBER = 4;
    private java.util.List<MSIM.ExternalExchange> externalExchangeList_;
    /**
     * <pre>
     * 外部交易所列表
     * </pre>
     *
     * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
     */
    @java.lang.Override
    public java.util.List<MSIM.ExternalExchange> getExternalExchangeListList() {
      return externalExchangeList_;
    }
    /**
     * <pre>
     * 外部交易所列表
     * </pre>
     *
     * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
     */
    @java.lang.Override
    public java.util.List<? extends MSIM.ExternalExchangeOrBuilder> 
        getExternalExchangeListOrBuilderList() {
      return externalExchangeList_;
    }
    /**
     * <pre>
     * 外部交易所列表
     * </pre>
     *
     * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
     */
    @java.lang.Override
    public int getExternalExchangeListCount() {
      return externalExchangeList_.size();
    }
    /**
     * <pre>
     * 外部交易所列表
     * </pre>
     *
     * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
     */
    @java.lang.Override
    public MSIM.ExternalExchange getExternalExchangeList(int index) {
      return externalExchangeList_.get(index);
    }
    /**
     * <pre>
     * 外部交易所列表
     * </pre>
     *
     * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
     */
    @java.lang.Override
    public MSIM.ExternalExchangeOrBuilder getExternalExchangeListOrBuilder(
        int index) {
      return externalExchangeList_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      for (int i = 0; i < externalExchangeList_.size(); i++) {
        output.writeMessage(4, externalExchangeList_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      for (int i = 0; i < externalExchangeList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, externalExchangeList_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ExternalExchangeRsp)) {
        return super.equals(obj);
      }
      MSIM.ExternalExchangeRsp other = (MSIM.ExternalExchangeRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (!getExternalExchangeListList()
          .equals(other.getExternalExchangeListList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (getExternalExchangeListCount() > 0) {
        hash = (37 * hash) + EXTERNALEXCHANGELIST_FIELD_NUMBER;
        hash = (53 * hash) + getExternalExchangeListList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ExternalExchangeRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ExternalExchangeRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ExternalExchangeRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ExternalExchangeRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ExternalExchangeRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ExternalExchangeRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ExternalExchangeRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ExternalExchangeRsp 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 MSIM.ExternalExchangeRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ExternalExchangeRsp 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 MSIM.ExternalExchangeRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ExternalExchangeRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ExternalExchangeRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 外部交易所查询应答
     * </pre>
     *
     * Protobuf type {@code ExternalExchangeRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ExternalExchangeRsp)
        MSIM.ExternalExchangeRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ExternalExchangeRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ExternalExchangeRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ExternalExchangeRsp.class, MSIM.ExternalExchangeRsp.Builder.class);
      }

      // Construct using MSIM.ExternalExchangeRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
          getExternalExchangeListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (externalExchangeListBuilder_ == null) {
          externalExchangeList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          externalExchangeListBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ExternalExchangeRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.ExternalExchangeRsp getDefaultInstanceForType() {
        return MSIM.ExternalExchangeRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ExternalExchangeRsp build() {
        MSIM.ExternalExchangeRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ExternalExchangeRsp buildPartial() {
        MSIM.ExternalExchangeRsp result = new MSIM.ExternalExchangeRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (externalExchangeListBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            externalExchangeList_ = java.util.Collections.unmodifiableList(externalExchangeList_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.externalExchangeList_ = externalExchangeList_;
        } else {
          result.externalExchangeList_ = externalExchangeListBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ExternalExchangeRsp) {
          return mergeFrom((MSIM.ExternalExchangeRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ExternalExchangeRsp other) {
        if (other == MSIM.ExternalExchangeRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (externalExchangeListBuilder_ == null) {
          if (!other.externalExchangeList_.isEmpty()) {
            if (externalExchangeList_.isEmpty()) {
              externalExchangeList_ = other.externalExchangeList_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureExternalExchangeListIsMutable();
              externalExchangeList_.addAll(other.externalExchangeList_);
            }
            onChanged();
          }
        } else {
          if (!other.externalExchangeList_.isEmpty()) {
            if (externalExchangeListBuilder_.isEmpty()) {
              externalExchangeListBuilder_.dispose();
              externalExchangeListBuilder_ = null;
              externalExchangeList_ = other.externalExchangeList_;
              bitField0_ = (bitField0_ & ~0x00000008);
              externalExchangeListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getExternalExchangeListFieldBuilder() : null;
            } else {
              externalExchangeListBuilder_.addAllMessages(other.externalExchangeList_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ExternalExchangeRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ExternalExchangeRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private java.util.List<MSIM.ExternalExchange> externalExchangeList_ =
        java.util.Collections.emptyList();
      private void ensureExternalExchangeListIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          externalExchangeList_ = new java.util.ArrayList<MSIM.ExternalExchange>(externalExchangeList_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.ExternalExchange, MSIM.ExternalExchange.Builder, MSIM.ExternalExchangeOrBuilder> externalExchangeListBuilder_;

      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public java.util.List<MSIM.ExternalExchange> getExternalExchangeListList() {
        if (externalExchangeListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(externalExchangeList_);
        } else {
          return externalExchangeListBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public int getExternalExchangeListCount() {
        if (externalExchangeListBuilder_ == null) {
          return externalExchangeList_.size();
        } else {
          return externalExchangeListBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public MSIM.ExternalExchange getExternalExchangeList(int index) {
        if (externalExchangeListBuilder_ == null) {
          return externalExchangeList_.get(index);
        } else {
          return externalExchangeListBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public Builder setExternalExchangeList(
          int index, MSIM.ExternalExchange value) {
        if (externalExchangeListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureExternalExchangeListIsMutable();
          externalExchangeList_.set(index, value);
          onChanged();
        } else {
          externalExchangeListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public Builder setExternalExchangeList(
          int index, MSIM.ExternalExchange.Builder builderForValue) {
        if (externalExchangeListBuilder_ == null) {
          ensureExternalExchangeListIsMutable();
          externalExchangeList_.set(index, builderForValue.build());
          onChanged();
        } else {
          externalExchangeListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public Builder addExternalExchangeList(MSIM.ExternalExchange value) {
        if (externalExchangeListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureExternalExchangeListIsMutable();
          externalExchangeList_.add(value);
          onChanged();
        } else {
          externalExchangeListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public Builder addExternalExchangeList(
          int index, MSIM.ExternalExchange value) {
        if (externalExchangeListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureExternalExchangeListIsMutable();
          externalExchangeList_.add(index, value);
          onChanged();
        } else {
          externalExchangeListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public Builder addExternalExchangeList(
          MSIM.ExternalExchange.Builder builderForValue) {
        if (externalExchangeListBuilder_ == null) {
          ensureExternalExchangeListIsMutable();
          externalExchangeList_.add(builderForValue.build());
          onChanged();
        } else {
          externalExchangeListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public Builder addExternalExchangeList(
          int index, MSIM.ExternalExchange.Builder builderForValue) {
        if (externalExchangeListBuilder_ == null) {
          ensureExternalExchangeListIsMutable();
          externalExchangeList_.add(index, builderForValue.build());
          onChanged();
        } else {
          externalExchangeListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public Builder addAllExternalExchangeList(
          java.lang.Iterable<? extends MSIM.ExternalExchange> values) {
        if (externalExchangeListBuilder_ == null) {
          ensureExternalExchangeListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, externalExchangeList_);
          onChanged();
        } else {
          externalExchangeListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public Builder clearExternalExchangeList() {
        if (externalExchangeListBuilder_ == null) {
          externalExchangeList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          externalExchangeListBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public Builder removeExternalExchangeList(int index) {
        if (externalExchangeListBuilder_ == null) {
          ensureExternalExchangeListIsMutable();
          externalExchangeList_.remove(index);
          onChanged();
        } else {
          externalExchangeListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public MSIM.ExternalExchange.Builder getExternalExchangeListBuilder(
          int index) {
        return getExternalExchangeListFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public MSIM.ExternalExchangeOrBuilder getExternalExchangeListOrBuilder(
          int index) {
        if (externalExchangeListBuilder_ == null) {
          return externalExchangeList_.get(index);  } else {
          return externalExchangeListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public java.util.List<? extends MSIM.ExternalExchangeOrBuilder> 
           getExternalExchangeListOrBuilderList() {
        if (externalExchangeListBuilder_ != null) {
          return externalExchangeListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(externalExchangeList_);
        }
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public MSIM.ExternalExchange.Builder addExternalExchangeListBuilder() {
        return getExternalExchangeListFieldBuilder().addBuilder(
            MSIM.ExternalExchange.getDefaultInstance());
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public MSIM.ExternalExchange.Builder addExternalExchangeListBuilder(
          int index) {
        return getExternalExchangeListFieldBuilder().addBuilder(
            index, MSIM.ExternalExchange.getDefaultInstance());
      }
      /**
       * <pre>
       * 外部交易所列表
       * </pre>
       *
       * <code>repeated .ExternalExchange ExternalExchangeList = 4;</code>
       */
      public java.util.List<MSIM.ExternalExchange.Builder> 
           getExternalExchangeListBuilderList() {
        return getExternalExchangeListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.ExternalExchange, MSIM.ExternalExchange.Builder, MSIM.ExternalExchangeOrBuilder> 
          getExternalExchangeListFieldBuilder() {
        if (externalExchangeListBuilder_ == null) {
          externalExchangeListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              MSIM.ExternalExchange, MSIM.ExternalExchange.Builder, MSIM.ExternalExchangeOrBuilder>(
                  externalExchangeList_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          externalExchangeList_ = null;
        }
        return externalExchangeListBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ExternalExchangeRsp)
    }

    // @@protoc_insertion_point(class_scope:ExternalExchangeRsp)
    private static final MSIM.ExternalExchangeRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ExternalExchangeRsp();
    }

    public static MSIM.ExternalExchangeRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ExternalExchangeRsp>
        PARSER = new com.google.protobuf.AbstractParser<ExternalExchangeRsp>() {
      @java.lang.Override
      public ExternalExchangeRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ExternalExchangeRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ExternalExchangeRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExternalExchangeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ExternalExchange)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 外部交易所id
     * </pre>
     *
     * <code>optional uint32 AutoID = 1;</code>
     * @return Whether the autoID field is set.
     */
    boolean hasAutoID();
    /**
     * <pre>
     * 外部交易所id
     * </pre>
     *
     * <code>optional uint32 AutoID = 1;</code>
     * @return The autoID.
     */
    int getAutoID();

    /**
     * <pre>
     * 外部交易所代码
     * </pre>
     *
     * <code>optional string ExExchangeCode = 2;</code>
     * @return Whether the exExchangeCode field is set.
     */
    boolean hasExExchangeCode();
    /**
     * <pre>
     * 外部交易所代码
     * </pre>
     *
     * <code>optional string ExExchangeCode = 2;</code>
     * @return The exExchangeCode.
     */
    java.lang.String getExExchangeCode();
    /**
     * <pre>
     * 外部交易所代码
     * </pre>
     *
     * <code>optional string ExExchangeCode = 2;</code>
     * @return The bytes for exExchangeCode.
     */
    com.google.protobuf.ByteString
        getExExchangeCodeBytes();

    /**
     * <pre>
     * 外部交易所名称
     * </pre>
     *
     * <code>optional string ExExchangeName = 3;</code>
     * @return Whether the exExchangeName field is set.
     */
    boolean hasExExchangeName();
    /**
     * <pre>
     * 外部交易所名称
     * </pre>
     *
     * <code>optional string ExExchangeName = 3;</code>
     * @return The exExchangeName.
     */
    java.lang.String getExExchangeName();
    /**
     * <pre>
     * 外部交易所名称
     * </pre>
     *
     * <code>optional string ExExchangeName = 3;</code>
     * @return The bytes for exExchangeName.
     */
    com.google.protobuf.ByteString
        getExExchangeNameBytes();

    /**
     * <pre>
     * 是否支持市价0：不支持 1支持
     * </pre>
     *
     * <code>optional string IsMarketPrice = 4;</code>
     * @return Whether the isMarketPrice field is set.
     */
    boolean hasIsMarketPrice();
    /**
     * <pre>
     * 是否支持市价0：不支持 1支持
     * </pre>
     *
     * <code>optional string IsMarketPrice = 4;</code>
     * @return The isMarketPrice.
     */
    java.lang.String getIsMarketPrice();
    /**
     * <pre>
     * 是否支持市价0：不支持 1支持
     * </pre>
     *
     * <code>optional string IsMarketPrice = 4;</code>
     * @return The bytes for isMarketPrice.
     */
    com.google.protobuf.ByteString
        getIsMarketPriceBytes();
  }
  /**
   * <pre>
   * 外部交易所信息
   * </pre>
   *
   * Protobuf type {@code ExternalExchange}
   */
  public static final class ExternalExchange extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ExternalExchange)
      ExternalExchangeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExternalExchange.newBuilder() to construct.
    private ExternalExchange(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ExternalExchange() {
      exExchangeCode_ = "";
      exExchangeName_ = "";
      isMarketPrice_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ExternalExchange();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ExternalExchange(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              autoID_ = input.readUInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              exExchangeCode_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              exExchangeName_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              isMarketPrice_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ExternalExchange_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ExternalExchange_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ExternalExchange.class, MSIM.ExternalExchange.Builder.class);
    }

    private int bitField0_;
    public static final int AUTOID_FIELD_NUMBER = 1;
    private int autoID_;
    /**
     * <pre>
     * 外部交易所id
     * </pre>
     *
     * <code>optional uint32 AutoID = 1;</code>
     * @return Whether the autoID field is set.
     */
    @java.lang.Override
    public boolean hasAutoID() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * 外部交易所id
     * </pre>
     *
     * <code>optional uint32 AutoID = 1;</code>
     * @return The autoID.
     */
    @java.lang.Override
    public int getAutoID() {
      return autoID_;
    }

    public static final int EXEXCHANGECODE_FIELD_NUMBER = 2;
    private volatile java.lang.Object exExchangeCode_;
    /**
     * <pre>
     * 外部交易所代码
     * </pre>
     *
     * <code>optional string ExExchangeCode = 2;</code>
     * @return Whether the exExchangeCode field is set.
     */
    @java.lang.Override
    public boolean hasExExchangeCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 外部交易所代码
     * </pre>
     *
     * <code>optional string ExExchangeCode = 2;</code>
     * @return The exExchangeCode.
     */
    @java.lang.Override
    public java.lang.String getExExchangeCode() {
      java.lang.Object ref = exExchangeCode_;
      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();
        if (bs.isValidUtf8()) {
          exExchangeCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 外部交易所代码
     * </pre>
     *
     * <code>optional string ExExchangeCode = 2;</code>
     * @return The bytes for exExchangeCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExExchangeCodeBytes() {
      java.lang.Object ref = exExchangeCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        exExchangeCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXEXCHANGENAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object exExchangeName_;
    /**
     * <pre>
     * 外部交易所名称
     * </pre>
     *
     * <code>optional string ExExchangeName = 3;</code>
     * @return Whether the exExchangeName field is set.
     */
    @java.lang.Override
    public boolean hasExExchangeName() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 外部交易所名称
     * </pre>
     *
     * <code>optional string ExExchangeName = 3;</code>
     * @return The exExchangeName.
     */
    @java.lang.Override
    public java.lang.String getExExchangeName() {
      java.lang.Object ref = exExchangeName_;
      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();
        if (bs.isValidUtf8()) {
          exExchangeName_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 外部交易所名称
     * </pre>
     *
     * <code>optional string ExExchangeName = 3;</code>
     * @return The bytes for exExchangeName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExExchangeNameBytes() {
      java.lang.Object ref = exExchangeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        exExchangeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ISMARKETPRICE_FIELD_NUMBER = 4;
    private volatile java.lang.Object isMarketPrice_;
    /**
     * <pre>
     * 是否支持市价0：不支持 1支持
     * </pre>
     *
     * <code>optional string IsMarketPrice = 4;</code>
     * @return Whether the isMarketPrice field is set.
     */
    @java.lang.Override
    public boolean hasIsMarketPrice() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 是否支持市价0：不支持 1支持
     * </pre>
     *
     * <code>optional string IsMarketPrice = 4;</code>
     * @return The isMarketPrice.
     */
    @java.lang.Override
    public java.lang.String getIsMarketPrice() {
      java.lang.Object ref = isMarketPrice_;
      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();
        if (bs.isValidUtf8()) {
          isMarketPrice_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 是否支持市价0：不支持 1支持
     * </pre>
     *
     * <code>optional string IsMarketPrice = 4;</code>
     * @return The bytes for isMarketPrice.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIsMarketPriceBytes() {
      java.lang.Object ref = isMarketPrice_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        isMarketPrice_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, autoID_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, exExchangeCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, exExchangeName_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, isMarketPrice_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, autoID_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, exExchangeCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, exExchangeName_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, isMarketPrice_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ExternalExchange)) {
        return super.equals(obj);
      }
      MSIM.ExternalExchange other = (MSIM.ExternalExchange) obj;

      if (hasAutoID() != other.hasAutoID()) return false;
      if (hasAutoID()) {
        if (getAutoID()
            != other.getAutoID()) return false;
      }
      if (hasExExchangeCode() != other.hasExExchangeCode()) return false;
      if (hasExExchangeCode()) {
        if (!getExExchangeCode()
            .equals(other.getExExchangeCode())) return false;
      }
      if (hasExExchangeName() != other.hasExExchangeName()) return false;
      if (hasExExchangeName()) {
        if (!getExExchangeName()
            .equals(other.getExExchangeName())) return false;
      }
      if (hasIsMarketPrice() != other.hasIsMarketPrice()) return false;
      if (hasIsMarketPrice()) {
        if (!getIsMarketPrice()
            .equals(other.getIsMarketPrice())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasAutoID()) {
        hash = (37 * hash) + AUTOID_FIELD_NUMBER;
        hash = (53 * hash) + getAutoID();
      }
      if (hasExExchangeCode()) {
        hash = (37 * hash) + EXEXCHANGECODE_FIELD_NUMBER;
        hash = (53 * hash) + getExExchangeCode().hashCode();
      }
      if (hasExExchangeName()) {
        hash = (37 * hash) + EXEXCHANGENAME_FIELD_NUMBER;
        hash = (53 * hash) + getExExchangeName().hashCode();
      }
      if (hasIsMarketPrice()) {
        hash = (37 * hash) + ISMARKETPRICE_FIELD_NUMBER;
        hash = (53 * hash) + getIsMarketPrice().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ExternalExchange parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ExternalExchange parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ExternalExchange parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ExternalExchange parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ExternalExchange parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ExternalExchange parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ExternalExchange parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ExternalExchange 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 MSIM.ExternalExchange parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ExternalExchange 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 MSIM.ExternalExchange parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ExternalExchange parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ExternalExchange prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 外部交易所信息
     * </pre>
     *
     * Protobuf type {@code ExternalExchange}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ExternalExchange)
        MSIM.ExternalExchangeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ExternalExchange_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ExternalExchange_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ExternalExchange.class, MSIM.ExternalExchange.Builder.class);
      }

      // Construct using MSIM.ExternalExchange.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        autoID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        exExchangeCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        exExchangeName_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        isMarketPrice_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ExternalExchange_descriptor;
      }

      @java.lang.Override
      public MSIM.ExternalExchange getDefaultInstanceForType() {
        return MSIM.ExternalExchange.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ExternalExchange build() {
        MSIM.ExternalExchange result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ExternalExchange buildPartial() {
        MSIM.ExternalExchange result = new MSIM.ExternalExchange(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.autoID_ = autoID_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.exExchangeCode_ = exExchangeCode_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.exExchangeName_ = exExchangeName_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.isMarketPrice_ = isMarketPrice_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ExternalExchange) {
          return mergeFrom((MSIM.ExternalExchange)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ExternalExchange other) {
        if (other == MSIM.ExternalExchange.getDefaultInstance()) return this;
        if (other.hasAutoID()) {
          setAutoID(other.getAutoID());
        }
        if (other.hasExExchangeCode()) {
          bitField0_ |= 0x00000002;
          exExchangeCode_ = other.exExchangeCode_;
          onChanged();
        }
        if (other.hasExExchangeName()) {
          bitField0_ |= 0x00000004;
          exExchangeName_ = other.exExchangeName_;
          onChanged();
        }
        if (other.hasIsMarketPrice()) {
          bitField0_ |= 0x00000008;
          isMarketPrice_ = other.isMarketPrice_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ExternalExchange parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ExternalExchange) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int autoID_ ;
      /**
       * <pre>
       * 外部交易所id
       * </pre>
       *
       * <code>optional uint32 AutoID = 1;</code>
       * @return Whether the autoID field is set.
       */
      @java.lang.Override
      public boolean hasAutoID() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * 外部交易所id
       * </pre>
       *
       * <code>optional uint32 AutoID = 1;</code>
       * @return The autoID.
       */
      @java.lang.Override
      public int getAutoID() {
        return autoID_;
      }
      /**
       * <pre>
       * 外部交易所id
       * </pre>
       *
       * <code>optional uint32 AutoID = 1;</code>
       * @param value The autoID to set.
       * @return This builder for chaining.
       */
      public Builder setAutoID(int value) {
        bitField0_ |= 0x00000001;
        autoID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 外部交易所id
       * </pre>
       *
       * <code>optional uint32 AutoID = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        autoID_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object exExchangeCode_ = "";
      /**
       * <pre>
       * 外部交易所代码
       * </pre>
       *
       * <code>optional string ExExchangeCode = 2;</code>
       * @return Whether the exExchangeCode field is set.
       */
      public boolean hasExExchangeCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 外部交易所代码
       * </pre>
       *
       * <code>optional string ExExchangeCode = 2;</code>
       * @return The exExchangeCode.
       */
      public java.lang.String getExExchangeCode() {
        java.lang.Object ref = exExchangeCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            exExchangeCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 外部交易所代码
       * </pre>
       *
       * <code>optional string ExExchangeCode = 2;</code>
       * @return The bytes for exExchangeCode.
       */
      public com.google.protobuf.ByteString
          getExExchangeCodeBytes() {
        java.lang.Object ref = exExchangeCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          exExchangeCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 外部交易所代码
       * </pre>
       *
       * <code>optional string ExExchangeCode = 2;</code>
       * @param value The exExchangeCode to set.
       * @return This builder for chaining.
       */
      public Builder setExExchangeCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        exExchangeCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 外部交易所代码
       * </pre>
       *
       * <code>optional string ExExchangeCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearExExchangeCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        exExchangeCode_ = getDefaultInstance().getExExchangeCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 外部交易所代码
       * </pre>
       *
       * <code>optional string ExExchangeCode = 2;</code>
       * @param value The bytes for exExchangeCode to set.
       * @return This builder for chaining.
       */
      public Builder setExExchangeCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        exExchangeCode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object exExchangeName_ = "";
      /**
       * <pre>
       * 外部交易所名称
       * </pre>
       *
       * <code>optional string ExExchangeName = 3;</code>
       * @return Whether the exExchangeName field is set.
       */
      public boolean hasExExchangeName() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 外部交易所名称
       * </pre>
       *
       * <code>optional string ExExchangeName = 3;</code>
       * @return The exExchangeName.
       */
      public java.lang.String getExExchangeName() {
        java.lang.Object ref = exExchangeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            exExchangeName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 外部交易所名称
       * </pre>
       *
       * <code>optional string ExExchangeName = 3;</code>
       * @return The bytes for exExchangeName.
       */
      public com.google.protobuf.ByteString
          getExExchangeNameBytes() {
        java.lang.Object ref = exExchangeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          exExchangeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 外部交易所名称
       * </pre>
       *
       * <code>optional string ExExchangeName = 3;</code>
       * @param value The exExchangeName to set.
       * @return This builder for chaining.
       */
      public Builder setExExchangeName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        exExchangeName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 外部交易所名称
       * </pre>
       *
       * <code>optional string ExExchangeName = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearExExchangeName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        exExchangeName_ = getDefaultInstance().getExExchangeName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 外部交易所名称
       * </pre>
       *
       * <code>optional string ExExchangeName = 3;</code>
       * @param value The bytes for exExchangeName to set.
       * @return This builder for chaining.
       */
      public Builder setExExchangeNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        exExchangeName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object isMarketPrice_ = "";
      /**
       * <pre>
       * 是否支持市价0：不支持 1支持
       * </pre>
       *
       * <code>optional string IsMarketPrice = 4;</code>
       * @return Whether the isMarketPrice field is set.
       */
      public boolean hasIsMarketPrice() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 是否支持市价0：不支持 1支持
       * </pre>
       *
       * <code>optional string IsMarketPrice = 4;</code>
       * @return The isMarketPrice.
       */
      public java.lang.String getIsMarketPrice() {
        java.lang.Object ref = isMarketPrice_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            isMarketPrice_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 是否支持市价0：不支持 1支持
       * </pre>
       *
       * <code>optional string IsMarketPrice = 4;</code>
       * @return The bytes for isMarketPrice.
       */
      public com.google.protobuf.ByteString
          getIsMarketPriceBytes() {
        java.lang.Object ref = isMarketPrice_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          isMarketPrice_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 是否支持市价0：不支持 1支持
       * </pre>
       *
       * <code>optional string IsMarketPrice = 4;</code>
       * @param value The isMarketPrice to set.
       * @return This builder for chaining.
       */
      public Builder setIsMarketPrice(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        isMarketPrice_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 是否支持市价0：不支持 1支持
       * </pre>
       *
       * <code>optional string IsMarketPrice = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsMarketPrice() {
        bitField0_ = (bitField0_ & ~0x00000008);
        isMarketPrice_ = getDefaultInstance().getIsMarketPrice();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 是否支持市价0：不支持 1支持
       * </pre>
       *
       * <code>optional string IsMarketPrice = 4;</code>
       * @param value The bytes for isMarketPrice to set.
       * @return This builder for chaining.
       */
      public Builder setIsMarketPriceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        isMarketPrice_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ExternalExchange)
    }

    // @@protoc_insertion_point(class_scope:ExternalExchange)
    private static final MSIM.ExternalExchange DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ExternalExchange();
    }

    public static MSIM.ExternalExchange getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ExternalExchange>
        PARSER = new com.google.protobuf.AbstractParser<ExternalExchange>() {
      @java.lang.Override
      public ExternalExchange parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ExternalExchange(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ExternalExchange getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GoodsGroupReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GoodsGroupReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * 更新时间
     * </pre>
     *
     * <code>optional uint64 GoodsGroupUTime = 2;</code>
     * @return Whether the goodsGroupUTime field is set.
     */
    boolean hasGoodsGroupUTime();
    /**
     * <pre>
     * 更新时间
     * </pre>
     *
     * <code>optional uint64 GoodsGroupUTime = 2;</code>
     * @return The goodsGroupUTime.
     */
    long getGoodsGroupUTime();
  }
  /**
   * <pre>
   * 商品组查询请求
   * </pre>
   *
   * Protobuf type {@code GoodsGroupReq}
   */
  public static final class GoodsGroupReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GoodsGroupReq)
      GoodsGroupReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GoodsGroupReq.newBuilder() to construct.
    private GoodsGroupReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GoodsGroupReq() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GoodsGroupReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GoodsGroupReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              goodsGroupUTime_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_GoodsGroupReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_GoodsGroupReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.GoodsGroupReq.class, MSIM.GoodsGroupReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int GOODSGROUPUTIME_FIELD_NUMBER = 2;
    private long goodsGroupUTime_;
    /**
     * <pre>
     * 更新时间
     * </pre>
     *
     * <code>optional uint64 GoodsGroupUTime = 2;</code>
     * @return Whether the goodsGroupUTime field is set.
     */
    @java.lang.Override
    public boolean hasGoodsGroupUTime() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 更新时间
     * </pre>
     *
     * <code>optional uint64 GoodsGroupUTime = 2;</code>
     * @return The goodsGroupUTime.
     */
    @java.lang.Override
    public long getGoodsGroupUTime() {
      return goodsGroupUTime_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, goodsGroupUTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, goodsGroupUTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.GoodsGroupReq)) {
        return super.equals(obj);
      }
      MSIM.GoodsGroupReq other = (MSIM.GoodsGroupReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasGoodsGroupUTime() != other.hasGoodsGroupUTime()) return false;
      if (hasGoodsGroupUTime()) {
        if (getGoodsGroupUTime()
            != other.getGoodsGroupUTime()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasGoodsGroupUTime()) {
        hash = (37 * hash) + GOODSGROUPUTIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getGoodsGroupUTime());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.GoodsGroupReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsGroupReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsGroupReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsGroupReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsGroupReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsGroupReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsGroupReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.GoodsGroupReq 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 MSIM.GoodsGroupReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.GoodsGroupReq 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 MSIM.GoodsGroupReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.GoodsGroupReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.GoodsGroupReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 商品组查询请求
     * </pre>
     *
     * Protobuf type {@code GoodsGroupReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GoodsGroupReq)
        MSIM.GoodsGroupReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_GoodsGroupReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_GoodsGroupReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.GoodsGroupReq.class, MSIM.GoodsGroupReq.Builder.class);
      }

      // Construct using MSIM.GoodsGroupReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        goodsGroupUTime_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_GoodsGroupReq_descriptor;
      }

      @java.lang.Override
      public MSIM.GoodsGroupReq getDefaultInstanceForType() {
        return MSIM.GoodsGroupReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.GoodsGroupReq build() {
        MSIM.GoodsGroupReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.GoodsGroupReq buildPartial() {
        MSIM.GoodsGroupReq result = new MSIM.GoodsGroupReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.goodsGroupUTime_ = goodsGroupUTime_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.GoodsGroupReq) {
          return mergeFrom((MSIM.GoodsGroupReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.GoodsGroupReq other) {
        if (other == MSIM.GoodsGroupReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasGoodsGroupUTime()) {
          setGoodsGroupUTime(other.getGoodsGroupUTime());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.GoodsGroupReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.GoodsGroupReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long goodsGroupUTime_ ;
      /**
       * <pre>
       * 更新时间
       * </pre>
       *
       * <code>optional uint64 GoodsGroupUTime = 2;</code>
       * @return Whether the goodsGroupUTime field is set.
       */
      @java.lang.Override
      public boolean hasGoodsGroupUTime() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 更新时间
       * </pre>
       *
       * <code>optional uint64 GoodsGroupUTime = 2;</code>
       * @return The goodsGroupUTime.
       */
      @java.lang.Override
      public long getGoodsGroupUTime() {
        return goodsGroupUTime_;
      }
      /**
       * <pre>
       * 更新时间
       * </pre>
       *
       * <code>optional uint64 GoodsGroupUTime = 2;</code>
       * @param value The goodsGroupUTime to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsGroupUTime(long value) {
        bitField0_ |= 0x00000002;
        goodsGroupUTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 更新时间
       * </pre>
       *
       * <code>optional uint64 GoodsGroupUTime = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsGroupUTime() {
        bitField0_ = (bitField0_ & ~0x00000002);
        goodsGroupUTime_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GoodsGroupReq)
    }

    // @@protoc_insertion_point(class_scope:GoodsGroupReq)
    private static final MSIM.GoodsGroupReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.GoodsGroupReq();
    }

    public static MSIM.GoodsGroupReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GoodsGroupReq>
        PARSER = new com.google.protobuf.AbstractParser<GoodsGroupReq>() {
      @java.lang.Override
      public GoodsGroupReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GoodsGroupReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.GoodsGroupReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GoodsGroupRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GoodsGroupRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * 商品组（品种）列表
     * </pre>
     *
     * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
     */
    java.util.List<MSIM.GoodsGroup> 
        getGoodsGroupListList();
    /**
     * <pre>
     * 商品组（品种）列表
     * </pre>
     *
     * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
     */
    MSIM.GoodsGroup getGoodsGroupList(int index);
    /**
     * <pre>
     * 商品组（品种）列表
     * </pre>
     *
     * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
     */
    int getGoodsGroupListCount();
    /**
     * <pre>
     * 商品组（品种）列表
     * </pre>
     *
     * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
     */
    java.util.List<? extends MSIM.GoodsGroupOrBuilder> 
        getGoodsGroupListOrBuilderList();
    /**
     * <pre>
     * 商品组（品种）列表
     * </pre>
     *
     * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
     */
    MSIM.GoodsGroupOrBuilder getGoodsGroupListOrBuilder(
        int index);
  }
  /**
   * <pre>
   * 商品组查询应答
   * </pre>
   *
   * Protobuf type {@code GoodsGroupRsp}
   */
  public static final class GoodsGroupRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GoodsGroupRsp)
      GoodsGroupRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GoodsGroupRsp.newBuilder() to construct.
    private GoodsGroupRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GoodsGroupRsp() {
      retDesc_ = "";
      goodsGroupList_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GoodsGroupRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GoodsGroupRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                goodsGroupList_ = new java.util.ArrayList<MSIM.GoodsGroup>();
                mutable_bitField0_ |= 0x00000008;
              }
              goodsGroupList_.add(
                  input.readMessage(MSIM.GoodsGroup.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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_ & 0x00000008) != 0)) {
          goodsGroupList_ = java.util.Collections.unmodifiableList(goodsGroupList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_GoodsGroupRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_GoodsGroupRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.GoodsGroupRsp.class, MSIM.GoodsGroupRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GOODSGROUPLIST_FIELD_NUMBER = 4;
    private java.util.List<MSIM.GoodsGroup> goodsGroupList_;
    /**
     * <pre>
     * 商品组（品种）列表
     * </pre>
     *
     * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
     */
    @java.lang.Override
    public java.util.List<MSIM.GoodsGroup> getGoodsGroupListList() {
      return goodsGroupList_;
    }
    /**
     * <pre>
     * 商品组（品种）列表
     * </pre>
     *
     * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
     */
    @java.lang.Override
    public java.util.List<? extends MSIM.GoodsGroupOrBuilder> 
        getGoodsGroupListOrBuilderList() {
      return goodsGroupList_;
    }
    /**
     * <pre>
     * 商品组（品种）列表
     * </pre>
     *
     * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
     */
    @java.lang.Override
    public int getGoodsGroupListCount() {
      return goodsGroupList_.size();
    }
    /**
     * <pre>
     * 商品组（品种）列表
     * </pre>
     *
     * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
     */
    @java.lang.Override
    public MSIM.GoodsGroup getGoodsGroupList(int index) {
      return goodsGroupList_.get(index);
    }
    /**
     * <pre>
     * 商品组（品种）列表
     * </pre>
     *
     * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
     */
    @java.lang.Override
    public MSIM.GoodsGroupOrBuilder getGoodsGroupListOrBuilder(
        int index) {
      return goodsGroupList_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      for (int i = 0; i < goodsGroupList_.size(); i++) {
        output.writeMessage(4, goodsGroupList_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      for (int i = 0; i < goodsGroupList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, goodsGroupList_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.GoodsGroupRsp)) {
        return super.equals(obj);
      }
      MSIM.GoodsGroupRsp other = (MSIM.GoodsGroupRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (!getGoodsGroupListList()
          .equals(other.getGoodsGroupListList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (getGoodsGroupListCount() > 0) {
        hash = (37 * hash) + GOODSGROUPLIST_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsGroupListList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.GoodsGroupRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsGroupRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsGroupRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsGroupRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsGroupRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsGroupRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsGroupRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.GoodsGroupRsp 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 MSIM.GoodsGroupRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.GoodsGroupRsp 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 MSIM.GoodsGroupRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.GoodsGroupRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.GoodsGroupRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 商品组查询应答
     * </pre>
     *
     * Protobuf type {@code GoodsGroupRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GoodsGroupRsp)
        MSIM.GoodsGroupRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_GoodsGroupRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_GoodsGroupRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.GoodsGroupRsp.class, MSIM.GoodsGroupRsp.Builder.class);
      }

      // Construct using MSIM.GoodsGroupRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
          getGoodsGroupListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (goodsGroupListBuilder_ == null) {
          goodsGroupList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          goodsGroupListBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_GoodsGroupRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.GoodsGroupRsp getDefaultInstanceForType() {
        return MSIM.GoodsGroupRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.GoodsGroupRsp build() {
        MSIM.GoodsGroupRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.GoodsGroupRsp buildPartial() {
        MSIM.GoodsGroupRsp result = new MSIM.GoodsGroupRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (goodsGroupListBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            goodsGroupList_ = java.util.Collections.unmodifiableList(goodsGroupList_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.goodsGroupList_ = goodsGroupList_;
        } else {
          result.goodsGroupList_ = goodsGroupListBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.GoodsGroupRsp) {
          return mergeFrom((MSIM.GoodsGroupRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.GoodsGroupRsp other) {
        if (other == MSIM.GoodsGroupRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (goodsGroupListBuilder_ == null) {
          if (!other.goodsGroupList_.isEmpty()) {
            if (goodsGroupList_.isEmpty()) {
              goodsGroupList_ = other.goodsGroupList_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureGoodsGroupListIsMutable();
              goodsGroupList_.addAll(other.goodsGroupList_);
            }
            onChanged();
          }
        } else {
          if (!other.goodsGroupList_.isEmpty()) {
            if (goodsGroupListBuilder_.isEmpty()) {
              goodsGroupListBuilder_.dispose();
              goodsGroupListBuilder_ = null;
              goodsGroupList_ = other.goodsGroupList_;
              bitField0_ = (bitField0_ & ~0x00000008);
              goodsGroupListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getGoodsGroupListFieldBuilder() : null;
            } else {
              goodsGroupListBuilder_.addAllMessages(other.goodsGroupList_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.GoodsGroupRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.GoodsGroupRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private java.util.List<MSIM.GoodsGroup> goodsGroupList_ =
        java.util.Collections.emptyList();
      private void ensureGoodsGroupListIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          goodsGroupList_ = new java.util.ArrayList<MSIM.GoodsGroup>(goodsGroupList_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.GoodsGroup, MSIM.GoodsGroup.Builder, MSIM.GoodsGroupOrBuilder> goodsGroupListBuilder_;

      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public java.util.List<MSIM.GoodsGroup> getGoodsGroupListList() {
        if (goodsGroupListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(goodsGroupList_);
        } else {
          return goodsGroupListBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public int getGoodsGroupListCount() {
        if (goodsGroupListBuilder_ == null) {
          return goodsGroupList_.size();
        } else {
          return goodsGroupListBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public MSIM.GoodsGroup getGoodsGroupList(int index) {
        if (goodsGroupListBuilder_ == null) {
          return goodsGroupList_.get(index);
        } else {
          return goodsGroupListBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public Builder setGoodsGroupList(
          int index, MSIM.GoodsGroup value) {
        if (goodsGroupListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGoodsGroupListIsMutable();
          goodsGroupList_.set(index, value);
          onChanged();
        } else {
          goodsGroupListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public Builder setGoodsGroupList(
          int index, MSIM.GoodsGroup.Builder builderForValue) {
        if (goodsGroupListBuilder_ == null) {
          ensureGoodsGroupListIsMutable();
          goodsGroupList_.set(index, builderForValue.build());
          onChanged();
        } else {
          goodsGroupListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public Builder addGoodsGroupList(MSIM.GoodsGroup value) {
        if (goodsGroupListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGoodsGroupListIsMutable();
          goodsGroupList_.add(value);
          onChanged();
        } else {
          goodsGroupListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public Builder addGoodsGroupList(
          int index, MSIM.GoodsGroup value) {
        if (goodsGroupListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGoodsGroupListIsMutable();
          goodsGroupList_.add(index, value);
          onChanged();
        } else {
          goodsGroupListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public Builder addGoodsGroupList(
          MSIM.GoodsGroup.Builder builderForValue) {
        if (goodsGroupListBuilder_ == null) {
          ensureGoodsGroupListIsMutable();
          goodsGroupList_.add(builderForValue.build());
          onChanged();
        } else {
          goodsGroupListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public Builder addGoodsGroupList(
          int index, MSIM.GoodsGroup.Builder builderForValue) {
        if (goodsGroupListBuilder_ == null) {
          ensureGoodsGroupListIsMutable();
          goodsGroupList_.add(index, builderForValue.build());
          onChanged();
        } else {
          goodsGroupListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public Builder addAllGoodsGroupList(
          java.lang.Iterable<? extends MSIM.GoodsGroup> values) {
        if (goodsGroupListBuilder_ == null) {
          ensureGoodsGroupListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, goodsGroupList_);
          onChanged();
        } else {
          goodsGroupListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public Builder clearGoodsGroupList() {
        if (goodsGroupListBuilder_ == null) {
          goodsGroupList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          goodsGroupListBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public Builder removeGoodsGroupList(int index) {
        if (goodsGroupListBuilder_ == null) {
          ensureGoodsGroupListIsMutable();
          goodsGroupList_.remove(index);
          onChanged();
        } else {
          goodsGroupListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public MSIM.GoodsGroup.Builder getGoodsGroupListBuilder(
          int index) {
        return getGoodsGroupListFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public MSIM.GoodsGroupOrBuilder getGoodsGroupListOrBuilder(
          int index) {
        if (goodsGroupListBuilder_ == null) {
          return goodsGroupList_.get(index);  } else {
          return goodsGroupListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public java.util.List<? extends MSIM.GoodsGroupOrBuilder> 
           getGoodsGroupListOrBuilderList() {
        if (goodsGroupListBuilder_ != null) {
          return goodsGroupListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(goodsGroupList_);
        }
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public MSIM.GoodsGroup.Builder addGoodsGroupListBuilder() {
        return getGoodsGroupListFieldBuilder().addBuilder(
            MSIM.GoodsGroup.getDefaultInstance());
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public MSIM.GoodsGroup.Builder addGoodsGroupListBuilder(
          int index) {
        return getGoodsGroupListFieldBuilder().addBuilder(
            index, MSIM.GoodsGroup.getDefaultInstance());
      }
      /**
       * <pre>
       * 商品组（品种）列表
       * </pre>
       *
       * <code>repeated .GoodsGroup GoodsGroupList = 4;</code>
       */
      public java.util.List<MSIM.GoodsGroup.Builder> 
           getGoodsGroupListBuilderList() {
        return getGoodsGroupListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.GoodsGroup, MSIM.GoodsGroup.Builder, MSIM.GoodsGroupOrBuilder> 
          getGoodsGroupListFieldBuilder() {
        if (goodsGroupListBuilder_ == null) {
          goodsGroupListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              MSIM.GoodsGroup, MSIM.GoodsGroup.Builder, MSIM.GoodsGroupOrBuilder>(
                  goodsGroupList_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          goodsGroupList_ = null;
        }
        return goodsGroupListBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GoodsGroupRsp)
    }

    // @@protoc_insertion_point(class_scope:GoodsGroupRsp)
    private static final MSIM.GoodsGroupRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.GoodsGroupRsp();
    }

    public static MSIM.GoodsGroupRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GoodsGroupRsp>
        PARSER = new com.google.protobuf.AbstractParser<GoodsGroupRsp>() {
      @java.lang.Override
      public GoodsGroupRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GoodsGroupRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.GoodsGroupRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GoodsGroupOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GoodsGroup)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 商品组id
     * </pre>
     *
     * <code>optional uint32 GoodsGroupID = 1;</code>
     * @return Whether the goodsGroupID field is set.
     */
    boolean hasGoodsGroupID();
    /**
     * <pre>
     * 商品组id
     * </pre>
     *
     * <code>optional uint32 GoodsGroupID = 1;</code>
     * @return The goodsGroupID.
     */
    int getGoodsGroupID();

    /**
     * <pre>
     * 商品组名称
     * </pre>
     *
     * <code>optional string GoodsGroupName = 2;</code>
     * @return Whether the goodsGroupName field is set.
     */
    boolean hasGoodsGroupName();
    /**
     * <pre>
     * 商品组名称
     * </pre>
     *
     * <code>optional string GoodsGroupName = 2;</code>
     * @return The goodsGroupName.
     */
    java.lang.String getGoodsGroupName();
    /**
     * <pre>
     * 商品组名称
     * </pre>
     *
     * <code>optional string GoodsGroupName = 2;</code>
     * @return The bytes for goodsGroupName.
     */
    com.google.protobuf.ByteString
        getGoodsGroupNameBytes();

    /**
     * <pre>
     * 市场id
     * </pre>
     *
     * <code>optional uint32 MarketID = 3;</code>
     * @return Whether the marketID field is set.
     */
    boolean hasMarketID();
    /**
     * <pre>
     * 市场id
     * </pre>
     *
     * <code>optional uint32 MarketID = 3;</code>
     * @return The marketID.
     */
    int getMarketID();

    /**
     * <pre>
     * 外部交易所id
     * </pre>
     *
     * <code>optional uint32 ExExchangeID = 4;</code>
     * @return Whether the exExchangeID field is set.
     */
    boolean hasExExchangeID();
    /**
     * <pre>
     * 外部交易所id
     * </pre>
     *
     * <code>optional uint32 ExExchangeID = 4;</code>
     * @return The exExchangeID.
     */
    int getExExchangeID();

    /**
     * <pre>
     * 是否允许做空[通道交易]-0:不能做空
     * </pre>
     *
     * <code>optional uint32 CanShort = 5;</code>
     * @return Whether the canShort field is set.
     */
    boolean hasCanShort();
    /**
     * <pre>
     * 是否允许做空[通道交易]-0:不能做空
     * </pre>
     *
     * <code>optional uint32 CanShort = 5;</code>
     * @return The canShort.
     */
    int getCanShort();
  }
  /**
   * <pre>
   * 商品组信息
   * </pre>
   *
   * Protobuf type {@code GoodsGroup}
   */
  public static final class GoodsGroup extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GoodsGroup)
      GoodsGroupOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GoodsGroup.newBuilder() to construct.
    private GoodsGroup(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GoodsGroup() {
      goodsGroupName_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GoodsGroup();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GoodsGroup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              goodsGroupID_ = input.readUInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              goodsGroupName_ = bs;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              marketID_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              exExchangeID_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              canShort_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_GoodsGroup_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_GoodsGroup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.GoodsGroup.class, MSIM.GoodsGroup.Builder.class);
    }

    private int bitField0_;
    public static final int GOODSGROUPID_FIELD_NUMBER = 1;
    private int goodsGroupID_;
    /**
     * <pre>
     * 商品组id
     * </pre>
     *
     * <code>optional uint32 GoodsGroupID = 1;</code>
     * @return Whether the goodsGroupID field is set.
     */
    @java.lang.Override
    public boolean hasGoodsGroupID() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * 商品组id
     * </pre>
     *
     * <code>optional uint32 GoodsGroupID = 1;</code>
     * @return The goodsGroupID.
     */
    @java.lang.Override
    public int getGoodsGroupID() {
      return goodsGroupID_;
    }

    public static final int GOODSGROUPNAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object goodsGroupName_;
    /**
     * <pre>
     * 商品组名称
     * </pre>
     *
     * <code>optional string GoodsGroupName = 2;</code>
     * @return Whether the goodsGroupName field is set.
     */
    @java.lang.Override
    public boolean hasGoodsGroupName() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 商品组名称
     * </pre>
     *
     * <code>optional string GoodsGroupName = 2;</code>
     * @return The goodsGroupName.
     */
    @java.lang.Override
    public java.lang.String getGoodsGroupName() {
      java.lang.Object ref = goodsGroupName_;
      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();
        if (bs.isValidUtf8()) {
          goodsGroupName_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 商品组名称
     * </pre>
     *
     * <code>optional string GoodsGroupName = 2;</code>
     * @return The bytes for goodsGroupName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getGoodsGroupNameBytes() {
      java.lang.Object ref = goodsGroupName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        goodsGroupName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MARKETID_FIELD_NUMBER = 3;
    private int marketID_;
    /**
     * <pre>
     * 市场id
     * </pre>
     *
     * <code>optional uint32 MarketID = 3;</code>
     * @return Whether the marketID field is set.
     */
    @java.lang.Override
    public boolean hasMarketID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 市场id
     * </pre>
     *
     * <code>optional uint32 MarketID = 3;</code>
     * @return The marketID.
     */
    @java.lang.Override
    public int getMarketID() {
      return marketID_;
    }

    public static final int EXEXCHANGEID_FIELD_NUMBER = 4;
    private int exExchangeID_;
    /**
     * <pre>
     * 外部交易所id
     * </pre>
     *
     * <code>optional uint32 ExExchangeID = 4;</code>
     * @return Whether the exExchangeID field is set.
     */
    @java.lang.Override
    public boolean hasExExchangeID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 外部交易所id
     * </pre>
     *
     * <code>optional uint32 ExExchangeID = 4;</code>
     * @return The exExchangeID.
     */
    @java.lang.Override
    public int getExExchangeID() {
      return exExchangeID_;
    }

    public static final int CANSHORT_FIELD_NUMBER = 5;
    private int canShort_;
    /**
     * <pre>
     * 是否允许做空[通道交易]-0:不能做空
     * </pre>
     *
     * <code>optional uint32 CanShort = 5;</code>
     * @return Whether the canShort field is set.
     */
    @java.lang.Override
    public boolean hasCanShort() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * 是否允许做空[通道交易]-0:不能做空
     * </pre>
     *
     * <code>optional uint32 CanShort = 5;</code>
     * @return The canShort.
     */
    @java.lang.Override
    public int getCanShort() {
      return canShort_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, goodsGroupID_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, goodsGroupName_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, marketID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, exExchangeID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, canShort_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, goodsGroupID_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, goodsGroupName_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, marketID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, exExchangeID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, canShort_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.GoodsGroup)) {
        return super.equals(obj);
      }
      MSIM.GoodsGroup other = (MSIM.GoodsGroup) obj;

      if (hasGoodsGroupID() != other.hasGoodsGroupID()) return false;
      if (hasGoodsGroupID()) {
        if (getGoodsGroupID()
            != other.getGoodsGroupID()) return false;
      }
      if (hasGoodsGroupName() != other.hasGoodsGroupName()) return false;
      if (hasGoodsGroupName()) {
        if (!getGoodsGroupName()
            .equals(other.getGoodsGroupName())) return false;
      }
      if (hasMarketID() != other.hasMarketID()) return false;
      if (hasMarketID()) {
        if (getMarketID()
            != other.getMarketID()) return false;
      }
      if (hasExExchangeID() != other.hasExExchangeID()) return false;
      if (hasExExchangeID()) {
        if (getExExchangeID()
            != other.getExExchangeID()) return false;
      }
      if (hasCanShort() != other.hasCanShort()) return false;
      if (hasCanShort()) {
        if (getCanShort()
            != other.getCanShort()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGoodsGroupID()) {
        hash = (37 * hash) + GOODSGROUPID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsGroupID();
      }
      if (hasGoodsGroupName()) {
        hash = (37 * hash) + GOODSGROUPNAME_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsGroupName().hashCode();
      }
      if (hasMarketID()) {
        hash = (37 * hash) + MARKETID_FIELD_NUMBER;
        hash = (53 * hash) + getMarketID();
      }
      if (hasExExchangeID()) {
        hash = (37 * hash) + EXEXCHANGEID_FIELD_NUMBER;
        hash = (53 * hash) + getExExchangeID();
      }
      if (hasCanShort()) {
        hash = (37 * hash) + CANSHORT_FIELD_NUMBER;
        hash = (53 * hash) + getCanShort();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.GoodsGroup parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsGroup parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsGroup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsGroup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsGroup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsGroup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsGroup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.GoodsGroup 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 MSIM.GoodsGroup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.GoodsGroup 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 MSIM.GoodsGroup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.GoodsGroup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.GoodsGroup prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 商品组信息
     * </pre>
     *
     * Protobuf type {@code GoodsGroup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GoodsGroup)
        MSIM.GoodsGroupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_GoodsGroup_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_GoodsGroup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.GoodsGroup.class, MSIM.GoodsGroup.Builder.class);
      }

      // Construct using MSIM.GoodsGroup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        goodsGroupID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        goodsGroupName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        marketID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        exExchangeID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        canShort_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_GoodsGroup_descriptor;
      }

      @java.lang.Override
      public MSIM.GoodsGroup getDefaultInstanceForType() {
        return MSIM.GoodsGroup.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.GoodsGroup build() {
        MSIM.GoodsGroup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.GoodsGroup buildPartial() {
        MSIM.GoodsGroup result = new MSIM.GoodsGroup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.goodsGroupID_ = goodsGroupID_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.goodsGroupName_ = goodsGroupName_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.marketID_ = marketID_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.exExchangeID_ = exExchangeID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.canShort_ = canShort_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.GoodsGroup) {
          return mergeFrom((MSIM.GoodsGroup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.GoodsGroup other) {
        if (other == MSIM.GoodsGroup.getDefaultInstance()) return this;
        if (other.hasGoodsGroupID()) {
          setGoodsGroupID(other.getGoodsGroupID());
        }
        if (other.hasGoodsGroupName()) {
          bitField0_ |= 0x00000002;
          goodsGroupName_ = other.goodsGroupName_;
          onChanged();
        }
        if (other.hasMarketID()) {
          setMarketID(other.getMarketID());
        }
        if (other.hasExExchangeID()) {
          setExExchangeID(other.getExExchangeID());
        }
        if (other.hasCanShort()) {
          setCanShort(other.getCanShort());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.GoodsGroup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.GoodsGroup) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int goodsGroupID_ ;
      /**
       * <pre>
       * 商品组id
       * </pre>
       *
       * <code>optional uint32 GoodsGroupID = 1;</code>
       * @return Whether the goodsGroupID field is set.
       */
      @java.lang.Override
      public boolean hasGoodsGroupID() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * 商品组id
       * </pre>
       *
       * <code>optional uint32 GoodsGroupID = 1;</code>
       * @return The goodsGroupID.
       */
      @java.lang.Override
      public int getGoodsGroupID() {
        return goodsGroupID_;
      }
      /**
       * <pre>
       * 商品组id
       * </pre>
       *
       * <code>optional uint32 GoodsGroupID = 1;</code>
       * @param value The goodsGroupID to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsGroupID(int value) {
        bitField0_ |= 0x00000001;
        goodsGroupID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 商品组id
       * </pre>
       *
       * <code>optional uint32 GoodsGroupID = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsGroupID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        goodsGroupID_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object goodsGroupName_ = "";
      /**
       * <pre>
       * 商品组名称
       * </pre>
       *
       * <code>optional string GoodsGroupName = 2;</code>
       * @return Whether the goodsGroupName field is set.
       */
      public boolean hasGoodsGroupName() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 商品组名称
       * </pre>
       *
       * <code>optional string GoodsGroupName = 2;</code>
       * @return The goodsGroupName.
       */
      public java.lang.String getGoodsGroupName() {
        java.lang.Object ref = goodsGroupName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            goodsGroupName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 商品组名称
       * </pre>
       *
       * <code>optional string GoodsGroupName = 2;</code>
       * @return The bytes for goodsGroupName.
       */
      public com.google.protobuf.ByteString
          getGoodsGroupNameBytes() {
        java.lang.Object ref = goodsGroupName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          goodsGroupName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 商品组名称
       * </pre>
       *
       * <code>optional string GoodsGroupName = 2;</code>
       * @param value The goodsGroupName to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsGroupName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        goodsGroupName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 商品组名称
       * </pre>
       *
       * <code>optional string GoodsGroupName = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsGroupName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        goodsGroupName_ = getDefaultInstance().getGoodsGroupName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 商品组名称
       * </pre>
       *
       * <code>optional string GoodsGroupName = 2;</code>
       * @param value The bytes for goodsGroupName to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsGroupNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        goodsGroupName_ = value;
        onChanged();
        return this;
      }

      private int marketID_ ;
      /**
       * <pre>
       * 市场id
       * </pre>
       *
       * <code>optional uint32 MarketID = 3;</code>
       * @return Whether the marketID field is set.
       */
      @java.lang.Override
      public boolean hasMarketID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 市场id
       * </pre>
       *
       * <code>optional uint32 MarketID = 3;</code>
       * @return The marketID.
       */
      @java.lang.Override
      public int getMarketID() {
        return marketID_;
      }
      /**
       * <pre>
       * 市场id
       * </pre>
       *
       * <code>optional uint32 MarketID = 3;</code>
       * @param value The marketID to set.
       * @return This builder for chaining.
       */
      public Builder setMarketID(int value) {
        bitField0_ |= 0x00000004;
        marketID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 市场id
       * </pre>
       *
       * <code>optional uint32 MarketID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMarketID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        marketID_ = 0;
        onChanged();
        return this;
      }

      private int exExchangeID_ ;
      /**
       * <pre>
       * 外部交易所id
       * </pre>
       *
       * <code>optional uint32 ExExchangeID = 4;</code>
       * @return Whether the exExchangeID field is set.
       */
      @java.lang.Override
      public boolean hasExExchangeID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 外部交易所id
       * </pre>
       *
       * <code>optional uint32 ExExchangeID = 4;</code>
       * @return The exExchangeID.
       */
      @java.lang.Override
      public int getExExchangeID() {
        return exExchangeID_;
      }
      /**
       * <pre>
       * 外部交易所id
       * </pre>
       *
       * <code>optional uint32 ExExchangeID = 4;</code>
       * @param value The exExchangeID to set.
       * @return This builder for chaining.
       */
      public Builder setExExchangeID(int value) {
        bitField0_ |= 0x00000008;
        exExchangeID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 外部交易所id
       * </pre>
       *
       * <code>optional uint32 ExExchangeID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearExExchangeID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        exExchangeID_ = 0;
        onChanged();
        return this;
      }

      private int canShort_ ;
      /**
       * <pre>
       * 是否允许做空[通道交易]-0:不能做空
       * </pre>
       *
       * <code>optional uint32 CanShort = 5;</code>
       * @return Whether the canShort field is set.
       */
      @java.lang.Override
      public boolean hasCanShort() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * 是否允许做空[通道交易]-0:不能做空
       * </pre>
       *
       * <code>optional uint32 CanShort = 5;</code>
       * @return The canShort.
       */
      @java.lang.Override
      public int getCanShort() {
        return canShort_;
      }
      /**
       * <pre>
       * 是否允许做空[通道交易]-0:不能做空
       * </pre>
       *
       * <code>optional uint32 CanShort = 5;</code>
       * @param value The canShort to set.
       * @return This builder for chaining.
       */
      public Builder setCanShort(int value) {
        bitField0_ |= 0x00000010;
        canShort_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 是否允许做空[通道交易]-0:不能做空
       * </pre>
       *
       * <code>optional uint32 CanShort = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearCanShort() {
        bitField0_ = (bitField0_ & ~0x00000010);
        canShort_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GoodsGroup)
    }

    // @@protoc_insertion_point(class_scope:GoodsGroup)
    private static final MSIM.GoodsGroup DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.GoodsGroup();
    }

    public static MSIM.GoodsGroup getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GoodsGroup>
        PARSER = new com.google.protobuf.AbstractParser<GoodsGroup>() {
      @java.lang.Override
      public GoodsGroup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GoodsGroup(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.GoodsGroup getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface t2bShortMsgCheckReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:t2bShortMsgCheckReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 外部操作流水号(发起本次交易的流水,发起方填写)
     * </pre>
     *
     * <code>required uint64 extoperatorid = 2;</code>
     * @return Whether the extoperatorid field is set.
     */
    boolean hasExtoperatorid();
    /**
     * <pre>
     * uint64 外部操作流水号(发起本次交易的流水,发起方填写)
     * </pre>
     *
     * <code>required uint64 extoperatorid = 2;</code>
     * @return The extoperatorid.
     */
    long getExtoperatorid();

    /**
     * <pre>
     * string 托管银行编号
     * </pre>
     *
     * <code>required string CusBankID = 3;</code>
     * @return Whether the cusBankID field is set.
     */
    boolean hasCusBankID();
    /**
     * <pre>
     * string 托管银行编号
     * </pre>
     *
     * <code>required string CusBankID = 3;</code>
     * @return The cusBankID.
     */
    java.lang.String getCusBankID();
    /**
     * <pre>
     * string 托管银行编号
     * </pre>
     *
     * <code>required string CusBankID = 3;</code>
     * @return The bytes for cusBankID.
     */
    com.google.protobuf.ByteString
        getCusBankIDBytes();

    /**
     * <pre>
     * string 资金账户
     * </pre>
     *
     * <code>required string AccountCode = 4;</code>
     * @return Whether the accountCode field is set.
     */
    boolean hasAccountCode();
    /**
     * <pre>
     * string 资金账户
     * </pre>
     *
     * <code>required string AccountCode = 4;</code>
     * @return The accountCode.
     */
    java.lang.String getAccountCode();
    /**
     * <pre>
     * string 资金账户
     * </pre>
     *
     * <code>required string AccountCode = 4;</code>
     * @return The bytes for accountCode.
     */
    com.google.protobuf.ByteString
        getAccountCodeBytes();

    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 5;</code>
     * @return Whether the exchId field is set.
     */
    boolean hasExchId();
    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 5;</code>
     * @return The exchId.
     */
    java.lang.String getExchId();
    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 5;</code>
     * @return The bytes for exchId.
     */
    com.google.protobuf.ByteString
        getExchIdBytes();

    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 6;</code>
     * @return Whether the tradeDate field is set.
     */
    boolean hasTradeDate();
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 6;</code>
     * @return The tradeDate.
     */
    java.lang.String getTradeDate();
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 6;</code>
     * @return The bytes for tradeDate.
     */
    com.google.protobuf.ByteString
        getTradeDateBytes();

    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return Whether the exchTicket field is set.
     */
    boolean hasExchTicket();
    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return The exchTicket.
     */
    java.lang.String getExchTicket();
    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return The bytes for exchTicket.
     */
    com.google.protobuf.ByteString
        getExchTicketBytes();

    /**
     * <pre>
     * string 关联的入金流水号（返回的银行服务流水号）
     * </pre>
     *
     * <code>required string RelatedExchTicket = 8;</code>
     * @return Whether the relatedExchTicket field is set.
     */
    boolean hasRelatedExchTicket();
    /**
     * <pre>
     * string 关联的入金流水号（返回的银行服务流水号）
     * </pre>
     *
     * <code>required string RelatedExchTicket = 8;</code>
     * @return The relatedExchTicket.
     */
    java.lang.String getRelatedExchTicket();
    /**
     * <pre>
     * string 关联的入金流水号（返回的银行服务流水号）
     * </pre>
     *
     * <code>required string RelatedExchTicket = 8;</code>
     * @return The bytes for relatedExchTicket.
     */
    com.google.protobuf.ByteString
        getRelatedExchTicketBytes();

    /**
     * <pre>
     * string 手机验证码
     * </pre>
     *
     * <code>optional string ShortMsgId = 9;</code>
     * @return Whether the shortMsgId field is set.
     */
    boolean hasShortMsgId();
    /**
     * <pre>
     * string 手机验证码
     * </pre>
     *
     * <code>optional string ShortMsgId = 9;</code>
     * @return The shortMsgId.
     */
    java.lang.String getShortMsgId();
    /**
     * <pre>
     * string 手机验证码
     * </pre>
     *
     * <code>optional string ShortMsgId = 9;</code>
     * @return The bytes for shortMsgId.
     */
    com.google.protobuf.ByteString
        getShortMsgIdBytes();

    /**
     * <pre>
     * string 扩展信息
     * </pre>
     *
     * <code>optional string Extend = 10;</code>
     * @return Whether the extend field is set.
     */
    boolean hasExtend();
    /**
     * <pre>
     * string 扩展信息
     * </pre>
     *
     * <code>optional string Extend = 10;</code>
     * @return The extend.
     */
    java.lang.String getExtend();
    /**
     * <pre>
     * string 扩展信息
     * </pre>
     *
     * <code>optional string Extend = 10;</code>
     * @return The bytes for extend.
     */
    com.google.protobuf.ByteString
        getExtendBytes();
  }
  /**
   * <pre>
   * 入金验证码校验报文请求 0 9 87
   * </pre>
   *
   * Protobuf type {@code t2bShortMsgCheckReq}
   */
  public static final class t2bShortMsgCheckReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:t2bShortMsgCheckReq)
      t2bShortMsgCheckReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use t2bShortMsgCheckReq.newBuilder() to construct.
    private t2bShortMsgCheckReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private t2bShortMsgCheckReq() {
      cusBankID_ = "";
      accountCode_ = "";
      exchId_ = "";
      tradeDate_ = "";
      exchTicket_ = "";
      relatedExchTicket_ = "";
      shortMsgId_ = "";
      extend_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new t2bShortMsgCheckReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private t2bShortMsgCheckReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              extoperatorid_ = input.readUInt64();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              cusBankID_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              accountCode_ = bs;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              exchId_ = bs;
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              tradeDate_ = bs;
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              exchTicket_ = bs;
              break;
            }
            case 66: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000080;
              relatedExchTicket_ = bs;
              break;
            }
            case 74: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000100;
              shortMsgId_ = bs;
              break;
            }
            case 82: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000200;
              extend_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_t2bShortMsgCheckReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_t2bShortMsgCheckReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.t2bShortMsgCheckReq.class, MSIM.t2bShortMsgCheckReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int EXTOPERATORID_FIELD_NUMBER = 2;
    private long extoperatorid_;
    /**
     * <pre>
     * uint64 外部操作流水号(发起本次交易的流水,发起方填写)
     * </pre>
     *
     * <code>required uint64 extoperatorid = 2;</code>
     * @return Whether the extoperatorid field is set.
     */
    @java.lang.Override
    public boolean hasExtoperatorid() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 外部操作流水号(发起本次交易的流水,发起方填写)
     * </pre>
     *
     * <code>required uint64 extoperatorid = 2;</code>
     * @return The extoperatorid.
     */
    @java.lang.Override
    public long getExtoperatorid() {
      return extoperatorid_;
    }

    public static final int CUSBANKID_FIELD_NUMBER = 3;
    private volatile java.lang.Object cusBankID_;
    /**
     * <pre>
     * string 托管银行编号
     * </pre>
     *
     * <code>required string CusBankID = 3;</code>
     * @return Whether the cusBankID field is set.
     */
    @java.lang.Override
    public boolean hasCusBankID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 托管银行编号
     * </pre>
     *
     * <code>required string CusBankID = 3;</code>
     * @return The cusBankID.
     */
    @java.lang.Override
    public java.lang.String getCusBankID() {
      java.lang.Object ref = cusBankID_;
      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();
        if (bs.isValidUtf8()) {
          cusBankID_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 托管银行编号
     * </pre>
     *
     * <code>required string CusBankID = 3;</code>
     * @return The bytes for cusBankID.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCusBankIDBytes() {
      java.lang.Object ref = cusBankID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cusBankID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACCOUNTCODE_FIELD_NUMBER = 4;
    private volatile java.lang.Object accountCode_;
    /**
     * <pre>
     * string 资金账户
     * </pre>
     *
     * <code>required string AccountCode = 4;</code>
     * @return Whether the accountCode field is set.
     */
    @java.lang.Override
    public boolean hasAccountCode() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * string 资金账户
     * </pre>
     *
     * <code>required string AccountCode = 4;</code>
     * @return The accountCode.
     */
    @java.lang.Override
    public java.lang.String getAccountCode() {
      java.lang.Object ref = accountCode_;
      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();
        if (bs.isValidUtf8()) {
          accountCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 资金账户
     * </pre>
     *
     * <code>required string AccountCode = 4;</code>
     * @return The bytes for accountCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAccountCodeBytes() {
      java.lang.Object ref = accountCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        accountCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXCHID_FIELD_NUMBER = 5;
    private volatile java.lang.Object exchId_;
    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 5;</code>
     * @return Whether the exchId field is set.
     */
    @java.lang.Override
    public boolean hasExchId() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 5;</code>
     * @return The exchId.
     */
    @java.lang.Override
    public java.lang.String getExchId() {
      java.lang.Object ref = exchId_;
      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();
        if (bs.isValidUtf8()) {
          exchId_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 5;</code>
     * @return The bytes for exchId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExchIdBytes() {
      java.lang.Object ref = exchId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        exchId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TRADEDATE_FIELD_NUMBER = 6;
    private volatile java.lang.Object tradeDate_;
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 6;</code>
     * @return Whether the tradeDate field is set.
     */
    @java.lang.Override
    public boolean hasTradeDate() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 6;</code>
     * @return The tradeDate.
     */
    @java.lang.Override
    public java.lang.String getTradeDate() {
      java.lang.Object ref = tradeDate_;
      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();
        if (bs.isValidUtf8()) {
          tradeDate_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 6;</code>
     * @return The bytes for tradeDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTradeDateBytes() {
      java.lang.Object ref = tradeDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tradeDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXCHTICKET_FIELD_NUMBER = 7;
    private volatile java.lang.Object exchTicket_;
    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return Whether the exchTicket field is set.
     */
    @java.lang.Override
    public boolean hasExchTicket() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return The exchTicket.
     */
    @java.lang.Override
    public java.lang.String getExchTicket() {
      java.lang.Object ref = exchTicket_;
      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();
        if (bs.isValidUtf8()) {
          exchTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return The bytes for exchTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExchTicketBytes() {
      java.lang.Object ref = exchTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        exchTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RELATEDEXCHTICKET_FIELD_NUMBER = 8;
    private volatile java.lang.Object relatedExchTicket_;
    /**
     * <pre>
     * string 关联的入金流水号（返回的银行服务流水号）
     * </pre>
     *
     * <code>required string RelatedExchTicket = 8;</code>
     * @return Whether the relatedExchTicket field is set.
     */
    @java.lang.Override
    public boolean hasRelatedExchTicket() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * string 关联的入金流水号（返回的银行服务流水号）
     * </pre>
     *
     * <code>required string RelatedExchTicket = 8;</code>
     * @return The relatedExchTicket.
     */
    @java.lang.Override
    public java.lang.String getRelatedExchTicket() {
      java.lang.Object ref = relatedExchTicket_;
      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();
        if (bs.isValidUtf8()) {
          relatedExchTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 关联的入金流水号（返回的银行服务流水号）
     * </pre>
     *
     * <code>required string RelatedExchTicket = 8;</code>
     * @return The bytes for relatedExchTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRelatedExchTicketBytes() {
      java.lang.Object ref = relatedExchTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        relatedExchTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SHORTMSGID_FIELD_NUMBER = 9;
    private volatile java.lang.Object shortMsgId_;
    /**
     * <pre>
     * string 手机验证码
     * </pre>
     *
     * <code>optional string ShortMsgId = 9;</code>
     * @return Whether the shortMsgId field is set.
     */
    @java.lang.Override
    public boolean hasShortMsgId() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * string 手机验证码
     * </pre>
     *
     * <code>optional string ShortMsgId = 9;</code>
     * @return The shortMsgId.
     */
    @java.lang.Override
    public java.lang.String getShortMsgId() {
      java.lang.Object ref = shortMsgId_;
      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();
        if (bs.isValidUtf8()) {
          shortMsgId_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 手机验证码
     * </pre>
     *
     * <code>optional string ShortMsgId = 9;</code>
     * @return The bytes for shortMsgId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getShortMsgIdBytes() {
      java.lang.Object ref = shortMsgId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shortMsgId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXTEND_FIELD_NUMBER = 10;
    private volatile java.lang.Object extend_;
    /**
     * <pre>
     * string 扩展信息
     * </pre>
     *
     * <code>optional string Extend = 10;</code>
     * @return Whether the extend field is set.
     */
    @java.lang.Override
    public boolean hasExtend() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * string 扩展信息
     * </pre>
     *
     * <code>optional string Extend = 10;</code>
     * @return The extend.
     */
    @java.lang.Override
    public java.lang.String getExtend() {
      java.lang.Object ref = extend_;
      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();
        if (bs.isValidUtf8()) {
          extend_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 扩展信息
     * </pre>
     *
     * <code>optional string Extend = 10;</code>
     * @return The bytes for extend.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExtendBytes() {
      java.lang.Object ref = extend_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        extend_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasExtoperatorid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCusBankID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAccountCode()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRelatedExchTicket()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, extoperatorid_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, cusBankID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, accountCode_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, exchId_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, tradeDate_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, exchTicket_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, relatedExchTicket_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, shortMsgId_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, extend_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, extoperatorid_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, cusBankID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, accountCode_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, exchId_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, tradeDate_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, exchTicket_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, relatedExchTicket_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, shortMsgId_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, extend_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.t2bShortMsgCheckReq)) {
        return super.equals(obj);
      }
      MSIM.t2bShortMsgCheckReq other = (MSIM.t2bShortMsgCheckReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasExtoperatorid() != other.hasExtoperatorid()) return false;
      if (hasExtoperatorid()) {
        if (getExtoperatorid()
            != other.getExtoperatorid()) return false;
      }
      if (hasCusBankID() != other.hasCusBankID()) return false;
      if (hasCusBankID()) {
        if (!getCusBankID()
            .equals(other.getCusBankID())) return false;
      }
      if (hasAccountCode() != other.hasAccountCode()) return false;
      if (hasAccountCode()) {
        if (!getAccountCode()
            .equals(other.getAccountCode())) return false;
      }
      if (hasExchId() != other.hasExchId()) return false;
      if (hasExchId()) {
        if (!getExchId()
            .equals(other.getExchId())) return false;
      }
      if (hasTradeDate() != other.hasTradeDate()) return false;
      if (hasTradeDate()) {
        if (!getTradeDate()
            .equals(other.getTradeDate())) return false;
      }
      if (hasExchTicket() != other.hasExchTicket()) return false;
      if (hasExchTicket()) {
        if (!getExchTicket()
            .equals(other.getExchTicket())) return false;
      }
      if (hasRelatedExchTicket() != other.hasRelatedExchTicket()) return false;
      if (hasRelatedExchTicket()) {
        if (!getRelatedExchTicket()
            .equals(other.getRelatedExchTicket())) return false;
      }
      if (hasShortMsgId() != other.hasShortMsgId()) return false;
      if (hasShortMsgId()) {
        if (!getShortMsgId()
            .equals(other.getShortMsgId())) return false;
      }
      if (hasExtend() != other.hasExtend()) return false;
      if (hasExtend()) {
        if (!getExtend()
            .equals(other.getExtend())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasExtoperatorid()) {
        hash = (37 * hash) + EXTOPERATORID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getExtoperatorid());
      }
      if (hasCusBankID()) {
        hash = (37 * hash) + CUSBANKID_FIELD_NUMBER;
        hash = (53 * hash) + getCusBankID().hashCode();
      }
      if (hasAccountCode()) {
        hash = (37 * hash) + ACCOUNTCODE_FIELD_NUMBER;
        hash = (53 * hash) + getAccountCode().hashCode();
      }
      if (hasExchId()) {
        hash = (37 * hash) + EXCHID_FIELD_NUMBER;
        hash = (53 * hash) + getExchId().hashCode();
      }
      if (hasTradeDate()) {
        hash = (37 * hash) + TRADEDATE_FIELD_NUMBER;
        hash = (53 * hash) + getTradeDate().hashCode();
      }
      if (hasExchTicket()) {
        hash = (37 * hash) + EXCHTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getExchTicket().hashCode();
      }
      if (hasRelatedExchTicket()) {
        hash = (37 * hash) + RELATEDEXCHTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getRelatedExchTicket().hashCode();
      }
      if (hasShortMsgId()) {
        hash = (37 * hash) + SHORTMSGID_FIELD_NUMBER;
        hash = (53 * hash) + getShortMsgId().hashCode();
      }
      if (hasExtend()) {
        hash = (37 * hash) + EXTEND_FIELD_NUMBER;
        hash = (53 * hash) + getExtend().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.t2bShortMsgCheckReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.t2bShortMsgCheckReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.t2bShortMsgCheckReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.t2bShortMsgCheckReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.t2bShortMsgCheckReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.t2bShortMsgCheckReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.t2bShortMsgCheckReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.t2bShortMsgCheckReq 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 MSIM.t2bShortMsgCheckReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.t2bShortMsgCheckReq 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 MSIM.t2bShortMsgCheckReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.t2bShortMsgCheckReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.t2bShortMsgCheckReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 入金验证码校验报文请求 0 9 87
     * </pre>
     *
     * Protobuf type {@code t2bShortMsgCheckReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:t2bShortMsgCheckReq)
        MSIM.t2bShortMsgCheckReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_t2bShortMsgCheckReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_t2bShortMsgCheckReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.t2bShortMsgCheckReq.class, MSIM.t2bShortMsgCheckReq.Builder.class);
      }

      // Construct using MSIM.t2bShortMsgCheckReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        extoperatorid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        cusBankID_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        accountCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        exchId_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        tradeDate_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        exchTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        relatedExchTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        shortMsgId_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        extend_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_t2bShortMsgCheckReq_descriptor;
      }

      @java.lang.Override
      public MSIM.t2bShortMsgCheckReq getDefaultInstanceForType() {
        return MSIM.t2bShortMsgCheckReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.t2bShortMsgCheckReq build() {
        MSIM.t2bShortMsgCheckReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.t2bShortMsgCheckReq buildPartial() {
        MSIM.t2bShortMsgCheckReq result = new MSIM.t2bShortMsgCheckReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.extoperatorid_ = extoperatorid_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.cusBankID_ = cusBankID_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.accountCode_ = accountCode_;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.exchId_ = exchId_;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.tradeDate_ = tradeDate_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.exchTicket_ = exchTicket_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          to_bitField0_ |= 0x00000080;
        }
        result.relatedExchTicket_ = relatedExchTicket_;
        if (((from_bitField0_ & 0x00000100) != 0)) {
          to_bitField0_ |= 0x00000100;
        }
        result.shortMsgId_ = shortMsgId_;
        if (((from_bitField0_ & 0x00000200) != 0)) {
          to_bitField0_ |= 0x00000200;
        }
        result.extend_ = extend_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.t2bShortMsgCheckReq) {
          return mergeFrom((MSIM.t2bShortMsgCheckReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.t2bShortMsgCheckReq other) {
        if (other == MSIM.t2bShortMsgCheckReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasExtoperatorid()) {
          setExtoperatorid(other.getExtoperatorid());
        }
        if (other.hasCusBankID()) {
          bitField0_ |= 0x00000004;
          cusBankID_ = other.cusBankID_;
          onChanged();
        }
        if (other.hasAccountCode()) {
          bitField0_ |= 0x00000008;
          accountCode_ = other.accountCode_;
          onChanged();
        }
        if (other.hasExchId()) {
          bitField0_ |= 0x00000010;
          exchId_ = other.exchId_;
          onChanged();
        }
        if (other.hasTradeDate()) {
          bitField0_ |= 0x00000020;
          tradeDate_ = other.tradeDate_;
          onChanged();
        }
        if (other.hasExchTicket()) {
          bitField0_ |= 0x00000040;
          exchTicket_ = other.exchTicket_;
          onChanged();
        }
        if (other.hasRelatedExchTicket()) {
          bitField0_ |= 0x00000080;
          relatedExchTicket_ = other.relatedExchTicket_;
          onChanged();
        }
        if (other.hasShortMsgId()) {
          bitField0_ |= 0x00000100;
          shortMsgId_ = other.shortMsgId_;
          onChanged();
        }
        if (other.hasExtend()) {
          bitField0_ |= 0x00000200;
          extend_ = other.extend_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasExtoperatorid()) {
          return false;
        }
        if (!hasCusBankID()) {
          return false;
        }
        if (!hasAccountCode()) {
          return false;
        }
        if (!hasRelatedExchTicket()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.t2bShortMsgCheckReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.t2bShortMsgCheckReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long extoperatorid_ ;
      /**
       * <pre>
       * uint64 外部操作流水号(发起本次交易的流水,发起方填写)
       * </pre>
       *
       * <code>required uint64 extoperatorid = 2;</code>
       * @return Whether the extoperatorid field is set.
       */
      @java.lang.Override
      public boolean hasExtoperatorid() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 外部操作流水号(发起本次交易的流水,发起方填写)
       * </pre>
       *
       * <code>required uint64 extoperatorid = 2;</code>
       * @return The extoperatorid.
       */
      @java.lang.Override
      public long getExtoperatorid() {
        return extoperatorid_;
      }
      /**
       * <pre>
       * uint64 外部操作流水号(发起本次交易的流水,发起方填写)
       * </pre>
       *
       * <code>required uint64 extoperatorid = 2;</code>
       * @param value The extoperatorid to set.
       * @return This builder for chaining.
       */
      public Builder setExtoperatorid(long value) {
        bitField0_ |= 0x00000002;
        extoperatorid_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 外部操作流水号(发起本次交易的流水,发起方填写)
       * </pre>
       *
       * <code>required uint64 extoperatorid = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearExtoperatorid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        extoperatorid_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object cusBankID_ = "";
      /**
       * <pre>
       * string 托管银行编号
       * </pre>
       *
       * <code>required string CusBankID = 3;</code>
       * @return Whether the cusBankID field is set.
       */
      public boolean hasCusBankID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 托管银行编号
       * </pre>
       *
       * <code>required string CusBankID = 3;</code>
       * @return The cusBankID.
       */
      public java.lang.String getCusBankID() {
        java.lang.Object ref = cusBankID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            cusBankID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 托管银行编号
       * </pre>
       *
       * <code>required string CusBankID = 3;</code>
       * @return The bytes for cusBankID.
       */
      public com.google.protobuf.ByteString
          getCusBankIDBytes() {
        java.lang.Object ref = cusBankID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          cusBankID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 托管银行编号
       * </pre>
       *
       * <code>required string CusBankID = 3;</code>
       * @param value The cusBankID to set.
       * @return This builder for chaining.
       */
      public Builder setCusBankID(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        cusBankID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 托管银行编号
       * </pre>
       *
       * <code>required string CusBankID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearCusBankID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        cusBankID_ = getDefaultInstance().getCusBankID();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 托管银行编号
       * </pre>
       *
       * <code>required string CusBankID = 3;</code>
       * @param value The bytes for cusBankID to set.
       * @return This builder for chaining.
       */
      public Builder setCusBankIDBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        cusBankID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object accountCode_ = "";
      /**
       * <pre>
       * string 资金账户
       * </pre>
       *
       * <code>required string AccountCode = 4;</code>
       * @return Whether the accountCode field is set.
       */
      public boolean hasAccountCode() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * string 资金账户
       * </pre>
       *
       * <code>required string AccountCode = 4;</code>
       * @return The accountCode.
       */
      public java.lang.String getAccountCode() {
        java.lang.Object ref = accountCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            accountCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 资金账户
       * </pre>
       *
       * <code>required string AccountCode = 4;</code>
       * @return The bytes for accountCode.
       */
      public com.google.protobuf.ByteString
          getAccountCodeBytes() {
        java.lang.Object ref = accountCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          accountCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 资金账户
       * </pre>
       *
       * <code>required string AccountCode = 4;</code>
       * @param value The accountCode to set.
       * @return This builder for chaining.
       */
      public Builder setAccountCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        accountCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 资金账户
       * </pre>
       *
       * <code>required string AccountCode = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountCode() {
        bitField0_ = (bitField0_ & ~0x00000008);
        accountCode_ = getDefaultInstance().getAccountCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 资金账户
       * </pre>
       *
       * <code>required string AccountCode = 4;</code>
       * @param value The bytes for accountCode to set.
       * @return This builder for chaining.
       */
      public Builder setAccountCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        accountCode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object exchId_ = "";
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 5;</code>
       * @return Whether the exchId field is set.
       */
      public boolean hasExchId() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 5;</code>
       * @return The exchId.
       */
      public java.lang.String getExchId() {
        java.lang.Object ref = exchId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            exchId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 5;</code>
       * @return The bytes for exchId.
       */
      public com.google.protobuf.ByteString
          getExchIdBytes() {
        java.lang.Object ref = exchId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          exchId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 5;</code>
       * @param value The exchId to set.
       * @return This builder for chaining.
       */
      public Builder setExchId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        exchId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearExchId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        exchId_ = getDefaultInstance().getExchId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 5;</code>
       * @param value The bytes for exchId to set.
       * @return This builder for chaining.
       */
      public Builder setExchIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        exchId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tradeDate_ = "";
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 6;</code>
       * @return Whether the tradeDate field is set.
       */
      public boolean hasTradeDate() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 6;</code>
       * @return The tradeDate.
       */
      public java.lang.String getTradeDate() {
        java.lang.Object ref = tradeDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tradeDate_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 6;</code>
       * @return The bytes for tradeDate.
       */
      public com.google.protobuf.ByteString
          getTradeDateBytes() {
        java.lang.Object ref = tradeDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tradeDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 6;</code>
       * @param value The tradeDate to set.
       * @return This builder for chaining.
       */
      public Builder setTradeDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        tradeDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearTradeDate() {
        bitField0_ = (bitField0_ & ~0x00000020);
        tradeDate_ = getDefaultInstance().getTradeDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 6;</code>
       * @param value The bytes for tradeDate to set.
       * @return This builder for chaining.
       */
      public Builder setTradeDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        tradeDate_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object exchTicket_ = "";
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @return Whether the exchTicket field is set.
       */
      public boolean hasExchTicket() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @return The exchTicket.
       */
      public java.lang.String getExchTicket() {
        java.lang.Object ref = exchTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            exchTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @return The bytes for exchTicket.
       */
      public com.google.protobuf.ByteString
          getExchTicketBytes() {
        java.lang.Object ref = exchTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          exchTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @param value The exchTicket to set.
       * @return This builder for chaining.
       */
      public Builder setExchTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        exchTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearExchTicket() {
        bitField0_ = (bitField0_ & ~0x00000040);
        exchTicket_ = getDefaultInstance().getExchTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @param value The bytes for exchTicket to set.
       * @return This builder for chaining.
       */
      public Builder setExchTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        exchTicket_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object relatedExchTicket_ = "";
      /**
       * <pre>
       * string 关联的入金流水号（返回的银行服务流水号）
       * </pre>
       *
       * <code>required string RelatedExchTicket = 8;</code>
       * @return Whether the relatedExchTicket field is set.
       */
      public boolean hasRelatedExchTicket() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * string 关联的入金流水号（返回的银行服务流水号）
       * </pre>
       *
       * <code>required string RelatedExchTicket = 8;</code>
       * @return The relatedExchTicket.
       */
      public java.lang.String getRelatedExchTicket() {
        java.lang.Object ref = relatedExchTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            relatedExchTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 关联的入金流水号（返回的银行服务流水号）
       * </pre>
       *
       * <code>required string RelatedExchTicket = 8;</code>
       * @return The bytes for relatedExchTicket.
       */
      public com.google.protobuf.ByteString
          getRelatedExchTicketBytes() {
        java.lang.Object ref = relatedExchTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          relatedExchTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 关联的入金流水号（返回的银行服务流水号）
       * </pre>
       *
       * <code>required string RelatedExchTicket = 8;</code>
       * @param value The relatedExchTicket to set.
       * @return This builder for chaining.
       */
      public Builder setRelatedExchTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        relatedExchTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 关联的入金流水号（返回的银行服务流水号）
       * </pre>
       *
       * <code>required string RelatedExchTicket = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearRelatedExchTicket() {
        bitField0_ = (bitField0_ & ~0x00000080);
        relatedExchTicket_ = getDefaultInstance().getRelatedExchTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 关联的入金流水号（返回的银行服务流水号）
       * </pre>
       *
       * <code>required string RelatedExchTicket = 8;</code>
       * @param value The bytes for relatedExchTicket to set.
       * @return This builder for chaining.
       */
      public Builder setRelatedExchTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        relatedExchTicket_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object shortMsgId_ = "";
      /**
       * <pre>
       * string 手机验证码
       * </pre>
       *
       * <code>optional string ShortMsgId = 9;</code>
       * @return Whether the shortMsgId field is set.
       */
      public boolean hasShortMsgId() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * string 手机验证码
       * </pre>
       *
       * <code>optional string ShortMsgId = 9;</code>
       * @return The shortMsgId.
       */
      public java.lang.String getShortMsgId() {
        java.lang.Object ref = shortMsgId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shortMsgId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 手机验证码
       * </pre>
       *
       * <code>optional string ShortMsgId = 9;</code>
       * @return The bytes for shortMsgId.
       */
      public com.google.protobuf.ByteString
          getShortMsgIdBytes() {
        java.lang.Object ref = shortMsgId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shortMsgId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 手机验证码
       * </pre>
       *
       * <code>optional string ShortMsgId = 9;</code>
       * @param value The shortMsgId to set.
       * @return This builder for chaining.
       */
      public Builder setShortMsgId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        shortMsgId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 手机验证码
       * </pre>
       *
       * <code>optional string ShortMsgId = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearShortMsgId() {
        bitField0_ = (bitField0_ & ~0x00000100);
        shortMsgId_ = getDefaultInstance().getShortMsgId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 手机验证码
       * </pre>
       *
       * <code>optional string ShortMsgId = 9;</code>
       * @param value The bytes for shortMsgId to set.
       * @return This builder for chaining.
       */
      public Builder setShortMsgIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        shortMsgId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object extend_ = "";
      /**
       * <pre>
       * string 扩展信息
       * </pre>
       *
       * <code>optional string Extend = 10;</code>
       * @return Whether the extend field is set.
       */
      public boolean hasExtend() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * string 扩展信息
       * </pre>
       *
       * <code>optional string Extend = 10;</code>
       * @return The extend.
       */
      public java.lang.String getExtend() {
        java.lang.Object ref = extend_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            extend_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 扩展信息
       * </pre>
       *
       * <code>optional string Extend = 10;</code>
       * @return The bytes for extend.
       */
      public com.google.protobuf.ByteString
          getExtendBytes() {
        java.lang.Object ref = extend_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          extend_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 扩展信息
       * </pre>
       *
       * <code>optional string Extend = 10;</code>
       * @param value The extend to set.
       * @return This builder for chaining.
       */
      public Builder setExtend(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        extend_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 扩展信息
       * </pre>
       *
       * <code>optional string Extend = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearExtend() {
        bitField0_ = (bitField0_ & ~0x00000200);
        extend_ = getDefaultInstance().getExtend();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 扩展信息
       * </pre>
       *
       * <code>optional string Extend = 10;</code>
       * @param value The bytes for extend to set.
       * @return This builder for chaining.
       */
      public Builder setExtendBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        extend_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:t2bShortMsgCheckReq)
    }

    // @@protoc_insertion_point(class_scope:t2bShortMsgCheckReq)
    private static final MSIM.t2bShortMsgCheckReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.t2bShortMsgCheckReq();
    }

    public static MSIM.t2bShortMsgCheckReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<t2bShortMsgCheckReq>
        PARSER = new com.google.protobuf.AbstractParser<t2bShortMsgCheckReq>() {
      @java.lang.Override
      public t2bShortMsgCheckReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new t2bShortMsgCheckReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.t2bShortMsgCheckReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface t2bShortMsgCheckRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:t2bShortMsgCheckRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 外部操作流水号
     * </pre>
     *
     * <code>optional uint64 ExtOperatorID = 4;</code>
     * @return Whether the extOperatorID field is set.
     */
    boolean hasExtOperatorID();
    /**
     * <pre>
     * uint64 外部操作流水号
     * </pre>
     *
     * <code>optional uint64 ExtOperatorID = 4;</code>
     * @return The extOperatorID.
     */
    long getExtOperatorID();

    /**
     * <pre>
     * int32 状态（0 成功, 其他数值参考银行服务的错误码）
     * </pre>
     *
     * <code>optional int32 Status = 5;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <pre>
     * int32 状态（0 成功, 其他数值参考银行服务的错误码）
     * </pre>
     *
     * <code>optional int32 Status = 5;</code>
     * @return The status.
     */
    int getStatus();

    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 6;</code>
     * @return Whether the exchId field is set.
     */
    boolean hasExchId();
    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 6;</code>
     * @return The exchId.
     */
    java.lang.String getExchId();
    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 6;</code>
     * @return The bytes for exchId.
     */
    com.google.protobuf.ByteString
        getExchIdBytes();

    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return Whether the exchTicket field is set.
     */
    boolean hasExchTicket();
    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return The exchTicket.
     */
    java.lang.String getExchTicket();
    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return The bytes for exchTicket.
     */
    com.google.protobuf.ByteString
        getExchTicketBytes();

    /**
     * <pre>
     * string 返回码
     * </pre>
     *
     * <code>optional string CenterRetCode = 8;</code>
     * @return Whether the centerRetCode field is set.
     */
    boolean hasCenterRetCode();
    /**
     * <pre>
     * string 返回码
     * </pre>
     *
     * <code>optional string CenterRetCode = 8;</code>
     * @return The centerRetCode.
     */
    java.lang.String getCenterRetCode();
    /**
     * <pre>
     * string 返回码
     * </pre>
     *
     * <code>optional string CenterRetCode = 8;</code>
     * @return The bytes for centerRetCode.
     */
    com.google.protobuf.ByteString
        getCenterRetCodeBytes();

    /**
     * <pre>
     * string 返回结果说明
     * </pre>
     *
     * <code>optional string CenterRetDesc = 9;</code>
     * @return Whether the centerRetDesc field is set.
     */
    boolean hasCenterRetDesc();
    /**
     * <pre>
     * string 返回结果说明
     * </pre>
     *
     * <code>optional string CenterRetDesc = 9;</code>
     * @return The centerRetDesc.
     */
    java.lang.String getCenterRetDesc();
    /**
     * <pre>
     * string 返回结果说明
     * </pre>
     *
     * <code>optional string CenterRetDesc = 9;</code>
     * @return The bytes for centerRetDesc.
     */
    com.google.protobuf.ByteString
        getCenterRetDescBytes();

    /**
     * <pre>
     * string 中心流水号
     * </pre>
     *
     * <code>optional string BankTicket = 10;</code>
     * @return Whether the bankTicket field is set.
     */
    boolean hasBankTicket();
    /**
     * <pre>
     * string 中心流水号
     * </pre>
     *
     * <code>optional string BankTicket = 10;</code>
     * @return The bankTicket.
     */
    java.lang.String getBankTicket();
    /**
     * <pre>
     * string 中心流水号
     * </pre>
     *
     * <code>optional string BankTicket = 10;</code>
     * @return The bytes for bankTicket.
     */
    com.google.protobuf.ByteString
        getBankTicketBytes();
  }
  /**
   * <pre>
   * 入金验证码校验报文应答 0 9 88
   * </pre>
   *
   * Protobuf type {@code t2bShortMsgCheckRsp}
   */
  public static final class t2bShortMsgCheckRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:t2bShortMsgCheckRsp)
      t2bShortMsgCheckRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use t2bShortMsgCheckRsp.newBuilder() to construct.
    private t2bShortMsgCheckRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private t2bShortMsgCheckRsp() {
      retDesc_ = "";
      exchId_ = "";
      exchTicket_ = "";
      centerRetCode_ = "";
      centerRetDesc_ = "";
      bankTicket_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new t2bShortMsgCheckRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private t2bShortMsgCheckRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              extOperatorID_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              status_ = input.readInt32();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              exchId_ = bs;
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              exchTicket_ = bs;
              break;
            }
            case 66: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000080;
              centerRetCode_ = bs;
              break;
            }
            case 74: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000100;
              centerRetDesc_ = bs;
              break;
            }
            case 82: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000200;
              bankTicket_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_t2bShortMsgCheckRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_t2bShortMsgCheckRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.t2bShortMsgCheckRsp.class, MSIM.t2bShortMsgCheckRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXTOPERATORID_FIELD_NUMBER = 4;
    private long extOperatorID_;
    /**
     * <pre>
     * uint64 外部操作流水号
     * </pre>
     *
     * <code>optional uint64 ExtOperatorID = 4;</code>
     * @return Whether the extOperatorID field is set.
     */
    @java.lang.Override
    public boolean hasExtOperatorID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 外部操作流水号
     * </pre>
     *
     * <code>optional uint64 ExtOperatorID = 4;</code>
     * @return The extOperatorID.
     */
    @java.lang.Override
    public long getExtOperatorID() {
      return extOperatorID_;
    }

    public static final int STATUS_FIELD_NUMBER = 5;
    private int status_;
    /**
     * <pre>
     * int32 状态（0 成功, 其他数值参考银行服务的错误码）
     * </pre>
     *
     * <code>optional int32 Status = 5;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * int32 状态（0 成功, 其他数值参考银行服务的错误码）
     * </pre>
     *
     * <code>optional int32 Status = 5;</code>
     * @return The status.
     */
    @java.lang.Override
    public int getStatus() {
      return status_;
    }

    public static final int EXCHID_FIELD_NUMBER = 6;
    private volatile java.lang.Object exchId_;
    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 6;</code>
     * @return Whether the exchId field is set.
     */
    @java.lang.Override
    public boolean hasExchId() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 6;</code>
     * @return The exchId.
     */
    @java.lang.Override
    public java.lang.String getExchId() {
      java.lang.Object ref = exchId_;
      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();
        if (bs.isValidUtf8()) {
          exchId_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 交易所编号
     * </pre>
     *
     * <code>optional string ExchId = 6;</code>
     * @return The bytes for exchId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExchIdBytes() {
      java.lang.Object ref = exchId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        exchId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXCHTICKET_FIELD_NUMBER = 7;
    private volatile java.lang.Object exchTicket_;
    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return Whether the exchTicket field is set.
     */
    @java.lang.Override
    public boolean hasExchTicket() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return The exchTicket.
     */
    @java.lang.Override
    public java.lang.String getExchTicket() {
      java.lang.Object ref = exchTicket_;
      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();
        if (bs.isValidUtf8()) {
          exchTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 交易所流水号
     * </pre>
     *
     * <code>optional string ExchTicket = 7;</code>
     * @return The bytes for exchTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExchTicketBytes() {
      java.lang.Object ref = exchTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        exchTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CENTERRETCODE_FIELD_NUMBER = 8;
    private volatile java.lang.Object centerRetCode_;
    /**
     * <pre>
     * string 返回码
     * </pre>
     *
     * <code>optional string CenterRetCode = 8;</code>
     * @return Whether the centerRetCode field is set.
     */
    @java.lang.Override
    public boolean hasCenterRetCode() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * string 返回码
     * </pre>
     *
     * <code>optional string CenterRetCode = 8;</code>
     * @return The centerRetCode.
     */
    @java.lang.Override
    public java.lang.String getCenterRetCode() {
      java.lang.Object ref = centerRetCode_;
      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();
        if (bs.isValidUtf8()) {
          centerRetCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 返回码
     * </pre>
     *
     * <code>optional string CenterRetCode = 8;</code>
     * @return The bytes for centerRetCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCenterRetCodeBytes() {
      java.lang.Object ref = centerRetCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        centerRetCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CENTERRETDESC_FIELD_NUMBER = 9;
    private volatile java.lang.Object centerRetDesc_;
    /**
     * <pre>
     * string 返回结果说明
     * </pre>
     *
     * <code>optional string CenterRetDesc = 9;</code>
     * @return Whether the centerRetDesc field is set.
     */
    @java.lang.Override
    public boolean hasCenterRetDesc() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * string 返回结果说明
     * </pre>
     *
     * <code>optional string CenterRetDesc = 9;</code>
     * @return The centerRetDesc.
     */
    @java.lang.Override
    public java.lang.String getCenterRetDesc() {
      java.lang.Object ref = centerRetDesc_;
      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();
        if (bs.isValidUtf8()) {
          centerRetDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 返回结果说明
     * </pre>
     *
     * <code>optional string CenterRetDesc = 9;</code>
     * @return The bytes for centerRetDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCenterRetDescBytes() {
      java.lang.Object ref = centerRetDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        centerRetDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BANKTICKET_FIELD_NUMBER = 10;
    private volatile java.lang.Object bankTicket_;
    /**
     * <pre>
     * string 中心流水号
     * </pre>
     *
     * <code>optional string BankTicket = 10;</code>
     * @return Whether the bankTicket field is set.
     */
    @java.lang.Override
    public boolean hasBankTicket() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * string 中心流水号
     * </pre>
     *
     * <code>optional string BankTicket = 10;</code>
     * @return The bankTicket.
     */
    @java.lang.Override
    public java.lang.String getBankTicket() {
      java.lang.Object ref = bankTicket_;
      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();
        if (bs.isValidUtf8()) {
          bankTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 中心流水号
     * </pre>
     *
     * <code>optional string BankTicket = 10;</code>
     * @return The bytes for bankTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBankTicketBytes() {
      java.lang.Object ref = bankTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        bankTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, extOperatorID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(5, status_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, exchId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, exchTicket_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, centerRetCode_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, centerRetDesc_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, bankTicket_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, extOperatorID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, status_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, exchId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, exchTicket_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, centerRetCode_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, centerRetDesc_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, bankTicket_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.t2bShortMsgCheckRsp)) {
        return super.equals(obj);
      }
      MSIM.t2bShortMsgCheckRsp other = (MSIM.t2bShortMsgCheckRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasExtOperatorID() != other.hasExtOperatorID()) return false;
      if (hasExtOperatorID()) {
        if (getExtOperatorID()
            != other.getExtOperatorID()) return false;
      }
      if (hasStatus() != other.hasStatus()) return false;
      if (hasStatus()) {
        if (getStatus()
            != other.getStatus()) return false;
      }
      if (hasExchId() != other.hasExchId()) return false;
      if (hasExchId()) {
        if (!getExchId()
            .equals(other.getExchId())) return false;
      }
      if (hasExchTicket() != other.hasExchTicket()) return false;
      if (hasExchTicket()) {
        if (!getExchTicket()
            .equals(other.getExchTicket())) return false;
      }
      if (hasCenterRetCode() != other.hasCenterRetCode()) return false;
      if (hasCenterRetCode()) {
        if (!getCenterRetCode()
            .equals(other.getCenterRetCode())) return false;
      }
      if (hasCenterRetDesc() != other.hasCenterRetDesc()) return false;
      if (hasCenterRetDesc()) {
        if (!getCenterRetDesc()
            .equals(other.getCenterRetDesc())) return false;
      }
      if (hasBankTicket() != other.hasBankTicket()) return false;
      if (hasBankTicket()) {
        if (!getBankTicket()
            .equals(other.getBankTicket())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasExtOperatorID()) {
        hash = (37 * hash) + EXTOPERATORID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getExtOperatorID());
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus();
      }
      if (hasExchId()) {
        hash = (37 * hash) + EXCHID_FIELD_NUMBER;
        hash = (53 * hash) + getExchId().hashCode();
      }
      if (hasExchTicket()) {
        hash = (37 * hash) + EXCHTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getExchTicket().hashCode();
      }
      if (hasCenterRetCode()) {
        hash = (37 * hash) + CENTERRETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getCenterRetCode().hashCode();
      }
      if (hasCenterRetDesc()) {
        hash = (37 * hash) + CENTERRETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getCenterRetDesc().hashCode();
      }
      if (hasBankTicket()) {
        hash = (37 * hash) + BANKTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getBankTicket().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.t2bShortMsgCheckRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.t2bShortMsgCheckRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.t2bShortMsgCheckRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.t2bShortMsgCheckRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.t2bShortMsgCheckRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.t2bShortMsgCheckRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.t2bShortMsgCheckRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.t2bShortMsgCheckRsp 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 MSIM.t2bShortMsgCheckRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.t2bShortMsgCheckRsp 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 MSIM.t2bShortMsgCheckRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.t2bShortMsgCheckRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.t2bShortMsgCheckRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 入金验证码校验报文应答 0 9 88
     * </pre>
     *
     * Protobuf type {@code t2bShortMsgCheckRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:t2bShortMsgCheckRsp)
        MSIM.t2bShortMsgCheckRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_t2bShortMsgCheckRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_t2bShortMsgCheckRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.t2bShortMsgCheckRsp.class, MSIM.t2bShortMsgCheckRsp.Builder.class);
      }

      // Construct using MSIM.t2bShortMsgCheckRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        extOperatorID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        status_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        exchId_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        exchTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        centerRetCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        centerRetDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        bankTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_t2bShortMsgCheckRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.t2bShortMsgCheckRsp getDefaultInstanceForType() {
        return MSIM.t2bShortMsgCheckRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.t2bShortMsgCheckRsp build() {
        MSIM.t2bShortMsgCheckRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.t2bShortMsgCheckRsp buildPartial() {
        MSIM.t2bShortMsgCheckRsp result = new MSIM.t2bShortMsgCheckRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.extOperatorID_ = extOperatorID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.status_ = status_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.exchId_ = exchId_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.exchTicket_ = exchTicket_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          to_bitField0_ |= 0x00000080;
        }
        result.centerRetCode_ = centerRetCode_;
        if (((from_bitField0_ & 0x00000100) != 0)) {
          to_bitField0_ |= 0x00000100;
        }
        result.centerRetDesc_ = centerRetDesc_;
        if (((from_bitField0_ & 0x00000200) != 0)) {
          to_bitField0_ |= 0x00000200;
        }
        result.bankTicket_ = bankTicket_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.t2bShortMsgCheckRsp) {
          return mergeFrom((MSIM.t2bShortMsgCheckRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.t2bShortMsgCheckRsp other) {
        if (other == MSIM.t2bShortMsgCheckRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasExtOperatorID()) {
          setExtOperatorID(other.getExtOperatorID());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasExchId()) {
          bitField0_ |= 0x00000020;
          exchId_ = other.exchId_;
          onChanged();
        }
        if (other.hasExchTicket()) {
          bitField0_ |= 0x00000040;
          exchTicket_ = other.exchTicket_;
          onChanged();
        }
        if (other.hasCenterRetCode()) {
          bitField0_ |= 0x00000080;
          centerRetCode_ = other.centerRetCode_;
          onChanged();
        }
        if (other.hasCenterRetDesc()) {
          bitField0_ |= 0x00000100;
          centerRetDesc_ = other.centerRetDesc_;
          onChanged();
        }
        if (other.hasBankTicket()) {
          bitField0_ |= 0x00000200;
          bankTicket_ = other.bankTicket_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.t2bShortMsgCheckRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.t2bShortMsgCheckRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long extOperatorID_ ;
      /**
       * <pre>
       * uint64 外部操作流水号
       * </pre>
       *
       * <code>optional uint64 ExtOperatorID = 4;</code>
       * @return Whether the extOperatorID field is set.
       */
      @java.lang.Override
      public boolean hasExtOperatorID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 外部操作流水号
       * </pre>
       *
       * <code>optional uint64 ExtOperatorID = 4;</code>
       * @return The extOperatorID.
       */
      @java.lang.Override
      public long getExtOperatorID() {
        return extOperatorID_;
      }
      /**
       * <pre>
       * uint64 外部操作流水号
       * </pre>
       *
       * <code>optional uint64 ExtOperatorID = 4;</code>
       * @param value The extOperatorID to set.
       * @return This builder for chaining.
       */
      public Builder setExtOperatorID(long value) {
        bitField0_ |= 0x00000008;
        extOperatorID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 外部操作流水号
       * </pre>
       *
       * <code>optional uint64 ExtOperatorID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearExtOperatorID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        extOperatorID_ = 0L;
        onChanged();
        return this;
      }

      private int status_ ;
      /**
       * <pre>
       * int32 状态（0 成功, 其他数值参考银行服务的错误码）
       * </pre>
       *
       * <code>optional int32 Status = 5;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * int32 状态（0 成功, 其他数值参考银行服务的错误码）
       * </pre>
       *
       * <code>optional int32 Status = 5;</code>
       * @return The status.
       */
      @java.lang.Override
      public int getStatus() {
        return status_;
      }
      /**
       * <pre>
       * int32 状态（0 成功, 其他数值参考银行服务的错误码）
       * </pre>
       *
       * <code>optional int32 Status = 5;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(int value) {
        bitField0_ |= 0x00000010;
        status_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 状态（0 成功, 其他数值参考银行服务的错误码）
       * </pre>
       *
       * <code>optional int32 Status = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000010);
        status_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object exchId_ = "";
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 6;</code>
       * @return Whether the exchId field is set.
       */
      public boolean hasExchId() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 6;</code>
       * @return The exchId.
       */
      public java.lang.String getExchId() {
        java.lang.Object ref = exchId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            exchId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 6;</code>
       * @return The bytes for exchId.
       */
      public com.google.protobuf.ByteString
          getExchIdBytes() {
        java.lang.Object ref = exchId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          exchId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 6;</code>
       * @param value The exchId to set.
       * @return This builder for chaining.
       */
      public Builder setExchId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        exchId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearExchId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        exchId_ = getDefaultInstance().getExchId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易所编号
       * </pre>
       *
       * <code>optional string ExchId = 6;</code>
       * @param value The bytes for exchId to set.
       * @return This builder for chaining.
       */
      public Builder setExchIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        exchId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object exchTicket_ = "";
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @return Whether the exchTicket field is set.
       */
      public boolean hasExchTicket() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @return The exchTicket.
       */
      public java.lang.String getExchTicket() {
        java.lang.Object ref = exchTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            exchTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @return The bytes for exchTicket.
       */
      public com.google.protobuf.ByteString
          getExchTicketBytes() {
        java.lang.Object ref = exchTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          exchTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @param value The exchTicket to set.
       * @return This builder for chaining.
       */
      public Builder setExchTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        exchTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearExchTicket() {
        bitField0_ = (bitField0_ & ~0x00000040);
        exchTicket_ = getDefaultInstance().getExchTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易所流水号
       * </pre>
       *
       * <code>optional string ExchTicket = 7;</code>
       * @param value The bytes for exchTicket to set.
       * @return This builder for chaining.
       */
      public Builder setExchTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        exchTicket_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object centerRetCode_ = "";
      /**
       * <pre>
       * string 返回码
       * </pre>
       *
       * <code>optional string CenterRetCode = 8;</code>
       * @return Whether the centerRetCode field is set.
       */
      public boolean hasCenterRetCode() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * string 返回码
       * </pre>
       *
       * <code>optional string CenterRetCode = 8;</code>
       * @return The centerRetCode.
       */
      public java.lang.String getCenterRetCode() {
        java.lang.Object ref = centerRetCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            centerRetCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 返回码
       * </pre>
       *
       * <code>optional string CenterRetCode = 8;</code>
       * @return The bytes for centerRetCode.
       */
      public com.google.protobuf.ByteString
          getCenterRetCodeBytes() {
        java.lang.Object ref = centerRetCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          centerRetCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 返回码
       * </pre>
       *
       * <code>optional string CenterRetCode = 8;</code>
       * @param value The centerRetCode to set.
       * @return This builder for chaining.
       */
      public Builder setCenterRetCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        centerRetCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 返回码
       * </pre>
       *
       * <code>optional string CenterRetCode = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearCenterRetCode() {
        bitField0_ = (bitField0_ & ~0x00000080);
        centerRetCode_ = getDefaultInstance().getCenterRetCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 返回码
       * </pre>
       *
       * <code>optional string CenterRetCode = 8;</code>
       * @param value The bytes for centerRetCode to set.
       * @return This builder for chaining.
       */
      public Builder setCenterRetCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        centerRetCode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object centerRetDesc_ = "";
      /**
       * <pre>
       * string 返回结果说明
       * </pre>
       *
       * <code>optional string CenterRetDesc = 9;</code>
       * @return Whether the centerRetDesc field is set.
       */
      public boolean hasCenterRetDesc() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * string 返回结果说明
       * </pre>
       *
       * <code>optional string CenterRetDesc = 9;</code>
       * @return The centerRetDesc.
       */
      public java.lang.String getCenterRetDesc() {
        java.lang.Object ref = centerRetDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            centerRetDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 返回结果说明
       * </pre>
       *
       * <code>optional string CenterRetDesc = 9;</code>
       * @return The bytes for centerRetDesc.
       */
      public com.google.protobuf.ByteString
          getCenterRetDescBytes() {
        java.lang.Object ref = centerRetDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          centerRetDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 返回结果说明
       * </pre>
       *
       * <code>optional string CenterRetDesc = 9;</code>
       * @param value The centerRetDesc to set.
       * @return This builder for chaining.
       */
      public Builder setCenterRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        centerRetDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 返回结果说明
       * </pre>
       *
       * <code>optional string CenterRetDesc = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearCenterRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000100);
        centerRetDesc_ = getDefaultInstance().getCenterRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 返回结果说明
       * </pre>
       *
       * <code>optional string CenterRetDesc = 9;</code>
       * @param value The bytes for centerRetDesc to set.
       * @return This builder for chaining.
       */
      public Builder setCenterRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        centerRetDesc_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object bankTicket_ = "";
      /**
       * <pre>
       * string 中心流水号
       * </pre>
       *
       * <code>optional string BankTicket = 10;</code>
       * @return Whether the bankTicket field is set.
       */
      public boolean hasBankTicket() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * string 中心流水号
       * </pre>
       *
       * <code>optional string BankTicket = 10;</code>
       * @return The bankTicket.
       */
      public java.lang.String getBankTicket() {
        java.lang.Object ref = bankTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            bankTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 中心流水号
       * </pre>
       *
       * <code>optional string BankTicket = 10;</code>
       * @return The bytes for bankTicket.
       */
      public com.google.protobuf.ByteString
          getBankTicketBytes() {
        java.lang.Object ref = bankTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          bankTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 中心流水号
       * </pre>
       *
       * <code>optional string BankTicket = 10;</code>
       * @param value The bankTicket to set.
       * @return This builder for chaining.
       */
      public Builder setBankTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        bankTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 中心流水号
       * </pre>
       *
       * <code>optional string BankTicket = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearBankTicket() {
        bitField0_ = (bitField0_ & ~0x00000200);
        bankTicket_ = getDefaultInstance().getBankTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 中心流水号
       * </pre>
       *
       * <code>optional string BankTicket = 10;</code>
       * @param value The bytes for bankTicket to set.
       * @return This builder for chaining.
       */
      public Builder setBankTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        bankTicket_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:t2bShortMsgCheckRsp)
    }

    // @@protoc_insertion_point(class_scope:t2bShortMsgCheckRsp)
    private static final MSIM.t2bShortMsgCheckRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.t2bShortMsgCheckRsp();
    }

    public static MSIM.t2bShortMsgCheckRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<t2bShortMsgCheckRsp>
        PARSER = new com.google.protobuf.AbstractParser<t2bShortMsgCheckRsp>() {
      @java.lang.Override
      public t2bShortMsgCheckRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new t2bShortMsgCheckRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.t2bShortMsgCheckRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelUnlockLockReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelUnlockLockReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 锁仓单据ID
     * </pre>
     *
     * <code>optional uint64 OrderID = 2;</code>
     * @return Whether the orderID field is set.
     */
    boolean hasOrderID();
    /**
     * <pre>
     * uint64 锁仓单据ID
     * </pre>
     *
     * <code>optional uint64 OrderID = 2;</code>
     * @return The orderID.
     */
    long getOrderID();

    /**
     * <pre>
     * string 管理端操作时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    boolean hasClientOrderTime();
    /**
     * <pre>
     * string 管理端操作时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    java.lang.String getClientOrderTime();
    /**
     * <pre>
     * string 管理端操作时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    com.google.protobuf.ByteString
        getClientOrderTimeBytes();

    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 4;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 4;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 5;</code>
     * @return Whether the operatorID field is set.
     */
    boolean hasOperatorID();
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 5;</code>
     * @return The operatorID.
     */
    long getOperatorID();

    /**
     * <pre>
     * string 备注
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return Whether the remark field is set.
     */
    boolean hasRemark();
    /**
     * <pre>
     * string 备注
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The remark.
     */
    java.lang.String getRemark();
    /**
     * <pre>
     * string 备注
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The bytes for remark.
     */
    com.google.protobuf.ByteString
        getRemarkBytes();
  }
  /**
   * <pre>
   * 通道解锁锁仓请求 0 3 50
   * </pre>
   *
   * Protobuf type {@code ChannelUnlockLockReq}
   */
  public static final class ChannelUnlockLockReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelUnlockLockReq)
      ChannelUnlockLockReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelUnlockLockReq.newBuilder() to construct.
    private ChannelUnlockLockReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelUnlockLockReq() {
      clientOrderTime_ = "";
      remark_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelUnlockLockReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelUnlockLockReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              orderID_ = input.readUInt64();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              clientOrderTime_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              accountID_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              operatorID_ = input.readUInt64();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              remark_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelUnlockLockReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelUnlockLockReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelUnlockLockReq.class, MSIM.ChannelUnlockLockReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int ORDERID_FIELD_NUMBER = 2;
    private long orderID_;
    /**
     * <pre>
     * uint64 锁仓单据ID
     * </pre>
     *
     * <code>optional uint64 OrderID = 2;</code>
     * @return Whether the orderID field is set.
     */
    @java.lang.Override
    public boolean hasOrderID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 锁仓单据ID
     * </pre>
     *
     * <code>optional uint64 OrderID = 2;</code>
     * @return The orderID.
     */
    @java.lang.Override
    public long getOrderID() {
      return orderID_;
    }

    public static final int CLIENTORDERTIME_FIELD_NUMBER = 3;
    private volatile java.lang.Object clientOrderTime_;
    /**
     * <pre>
     * string 管理端操作时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    @java.lang.Override
    public boolean hasClientOrderTime() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 管理端操作时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    @java.lang.Override
    public java.lang.String getClientOrderTime() {
      java.lang.Object ref = clientOrderTime_;
      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();
        if (bs.isValidUtf8()) {
          clientOrderTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 管理端操作时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientOrderTimeBytes() {
      java.lang.Object ref = clientOrderTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientOrderTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 4;
    private long accountID_;
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 4;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 4;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int OPERATORID_FIELD_NUMBER = 5;
    private long operatorID_;
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 5;</code>
     * @return Whether the operatorID field is set.
     */
    @java.lang.Override
    public boolean hasOperatorID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 5;</code>
     * @return The operatorID.
     */
    @java.lang.Override
    public long getOperatorID() {
      return operatorID_;
    }

    public static final int REMARK_FIELD_NUMBER = 6;
    private volatile java.lang.Object remark_;
    /**
     * <pre>
     * string 备注
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return Whether the remark field is set.
     */
    @java.lang.Override
    public boolean hasRemark() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * string 备注
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The remark.
     */
    @java.lang.Override
    public java.lang.String getRemark() {
      java.lang.Object ref = remark_;
      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();
        if (bs.isValidUtf8()) {
          remark_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 备注
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The bytes for remark.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRemarkBytes() {
      java.lang.Object ref = remark_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        remark_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, orderID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, accountID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, operatorID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, remark_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, orderID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, accountID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, operatorID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, remark_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelUnlockLockReq)) {
        return super.equals(obj);
      }
      MSIM.ChannelUnlockLockReq other = (MSIM.ChannelUnlockLockReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasOrderID() != other.hasOrderID()) return false;
      if (hasOrderID()) {
        if (getOrderID()
            != other.getOrderID()) return false;
      }
      if (hasClientOrderTime() != other.hasClientOrderTime()) return false;
      if (hasClientOrderTime()) {
        if (!getClientOrderTime()
            .equals(other.getClientOrderTime())) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasOperatorID() != other.hasOperatorID()) return false;
      if (hasOperatorID()) {
        if (getOperatorID()
            != other.getOperatorID()) return false;
      }
      if (hasRemark() != other.hasRemark()) return false;
      if (hasRemark()) {
        if (!getRemark()
            .equals(other.getRemark())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasOrderID()) {
        hash = (37 * hash) + ORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOrderID());
      }
      if (hasClientOrderTime()) {
        hash = (37 * hash) + CLIENTORDERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getClientOrderTime().hashCode();
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasOperatorID()) {
        hash = (37 * hash) + OPERATORID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOperatorID());
      }
      if (hasRemark()) {
        hash = (37 * hash) + REMARK_FIELD_NUMBER;
        hash = (53 * hash) + getRemark().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelUnlockLockReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelUnlockLockReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelUnlockLockReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelUnlockLockReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelUnlockLockReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelUnlockLockReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelUnlockLockReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelUnlockLockReq 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 MSIM.ChannelUnlockLockReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelUnlockLockReq 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 MSIM.ChannelUnlockLockReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelUnlockLockReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelUnlockLockReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 通道解锁锁仓请求 0 3 50
     * </pre>
     *
     * Protobuf type {@code ChannelUnlockLockReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelUnlockLockReq)
        MSIM.ChannelUnlockLockReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelUnlockLockReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelUnlockLockReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelUnlockLockReq.class, MSIM.ChannelUnlockLockReq.Builder.class);
      }

      // Construct using MSIM.ChannelUnlockLockReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        orderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        clientOrderTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        operatorID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        remark_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelUnlockLockReq_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelUnlockLockReq getDefaultInstanceForType() {
        return MSIM.ChannelUnlockLockReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelUnlockLockReq build() {
        MSIM.ChannelUnlockLockReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelUnlockLockReq buildPartial() {
        MSIM.ChannelUnlockLockReq result = new MSIM.ChannelUnlockLockReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.orderID_ = orderID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.clientOrderTime_ = clientOrderTime_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.operatorID_ = operatorID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.remark_ = remark_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelUnlockLockReq) {
          return mergeFrom((MSIM.ChannelUnlockLockReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelUnlockLockReq other) {
        if (other == MSIM.ChannelUnlockLockReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasOrderID()) {
          setOrderID(other.getOrderID());
        }
        if (other.hasClientOrderTime()) {
          bitField0_ |= 0x00000004;
          clientOrderTime_ = other.clientOrderTime_;
          onChanged();
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasOperatorID()) {
          setOperatorID(other.getOperatorID());
        }
        if (other.hasRemark()) {
          bitField0_ |= 0x00000020;
          remark_ = other.remark_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelUnlockLockReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelUnlockLockReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long orderID_ ;
      /**
       * <pre>
       * uint64 锁仓单据ID
       * </pre>
       *
       * <code>optional uint64 OrderID = 2;</code>
       * @return Whether the orderID field is set.
       */
      @java.lang.Override
      public boolean hasOrderID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 锁仓单据ID
       * </pre>
       *
       * <code>optional uint64 OrderID = 2;</code>
       * @return The orderID.
       */
      @java.lang.Override
      public long getOrderID() {
        return orderID_;
      }
      /**
       * <pre>
       * uint64 锁仓单据ID
       * </pre>
       *
       * <code>optional uint64 OrderID = 2;</code>
       * @param value The orderID to set.
       * @return This builder for chaining.
       */
      public Builder setOrderID(long value) {
        bitField0_ |= 0x00000002;
        orderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 锁仓单据ID
       * </pre>
       *
       * <code>optional uint64 OrderID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        orderID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object clientOrderTime_ = "";
      /**
       * <pre>
       * string 管理端操作时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return Whether the clientOrderTime field is set.
       */
      public boolean hasClientOrderTime() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 管理端操作时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The clientOrderTime.
       */
      public java.lang.String getClientOrderTime() {
        java.lang.Object ref = clientOrderTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientOrderTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 管理端操作时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The bytes for clientOrderTime.
       */
      public com.google.protobuf.ByteString
          getClientOrderTimeBytes() {
        java.lang.Object ref = clientOrderTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientOrderTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 管理端操作时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 管理端操作时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientOrderTime() {
        bitField0_ = (bitField0_ & ~0x00000004);
        clientOrderTime_ = getDefaultInstance().getClientOrderTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 管理端操作时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The bytes for clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 4;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 4;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 4;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000008;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private long operatorID_ ;
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 5;</code>
       * @return Whether the operatorID field is set.
       */
      @java.lang.Override
      public boolean hasOperatorID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 5;</code>
       * @return The operatorID.
       */
      @java.lang.Override
      public long getOperatorID() {
        return operatorID_;
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 5;</code>
       * @param value The operatorID to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorID(long value) {
        bitField0_ |= 0x00000010;
        operatorID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        operatorID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object remark_ = "";
      /**
       * <pre>
       * string 备注
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return Whether the remark field is set.
       */
      public boolean hasRemark() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * string 备注
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return The remark.
       */
      public java.lang.String getRemark() {
        java.lang.Object ref = remark_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            remark_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 备注
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return The bytes for remark.
       */
      public com.google.protobuf.ByteString
          getRemarkBytes() {
        java.lang.Object ref = remark_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          remark_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 备注
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @param value The remark to set.
       * @return This builder for chaining.
       */
      public Builder setRemark(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        remark_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 备注
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearRemark() {
        bitField0_ = (bitField0_ & ~0x00000020);
        remark_ = getDefaultInstance().getRemark();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 备注
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @param value The bytes for remark to set.
       * @return This builder for chaining.
       */
      public Builder setRemarkBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        remark_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelUnlockLockReq)
    }

    // @@protoc_insertion_point(class_scope:ChannelUnlockLockReq)
    private static final MSIM.ChannelUnlockLockReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelUnlockLockReq();
    }

    public static MSIM.ChannelUnlockLockReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelUnlockLockReq>
        PARSER = new com.google.protobuf.AbstractParser<ChannelUnlockLockReq>() {
      @java.lang.Override
      public ChannelUnlockLockReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelUnlockLockReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelUnlockLockReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelUnlockLockRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelUnlockLockRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return Whether the orderID field is set.
     */
    boolean hasOrderID();
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return The orderID.
     */
    long getOrderID();
  }
  /**
   * <pre>
   * 通道解锁锁仓应答 0 3 51
   * </pre>
   *
   * Protobuf type {@code ChannelUnlockLockRsp}
   */
  public static final class ChannelUnlockLockRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelUnlockLockRsp)
      ChannelUnlockLockRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelUnlockLockRsp.newBuilder() to construct.
    private ChannelUnlockLockRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelUnlockLockRsp() {
      retDesc_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelUnlockLockRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelUnlockLockRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              orderID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelUnlockLockRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelUnlockLockRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelUnlockLockRsp.class, MSIM.ChannelUnlockLockRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ORDERID_FIELD_NUMBER = 4;
    private long orderID_;
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return Whether the orderID field is set.
     */
    @java.lang.Override
    public boolean hasOrderID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return The orderID.
     */
    @java.lang.Override
    public long getOrderID() {
      return orderID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, orderID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, orderID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelUnlockLockRsp)) {
        return super.equals(obj);
      }
      MSIM.ChannelUnlockLockRsp other = (MSIM.ChannelUnlockLockRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasOrderID() != other.hasOrderID()) return false;
      if (hasOrderID()) {
        if (getOrderID()
            != other.getOrderID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasOrderID()) {
        hash = (37 * hash) + ORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOrderID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelUnlockLockRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelUnlockLockRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelUnlockLockRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelUnlockLockRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelUnlockLockRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelUnlockLockRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelUnlockLockRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelUnlockLockRsp 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 MSIM.ChannelUnlockLockRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelUnlockLockRsp 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 MSIM.ChannelUnlockLockRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelUnlockLockRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelUnlockLockRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 通道解锁锁仓应答 0 3 51
     * </pre>
     *
     * Protobuf type {@code ChannelUnlockLockRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelUnlockLockRsp)
        MSIM.ChannelUnlockLockRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelUnlockLockRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelUnlockLockRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelUnlockLockRsp.class, MSIM.ChannelUnlockLockRsp.Builder.class);
      }

      // Construct using MSIM.ChannelUnlockLockRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        orderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelUnlockLockRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelUnlockLockRsp getDefaultInstanceForType() {
        return MSIM.ChannelUnlockLockRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelUnlockLockRsp build() {
        MSIM.ChannelUnlockLockRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelUnlockLockRsp buildPartial() {
        MSIM.ChannelUnlockLockRsp result = new MSIM.ChannelUnlockLockRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.orderID_ = orderID_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelUnlockLockRsp) {
          return mergeFrom((MSIM.ChannelUnlockLockRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelUnlockLockRsp other) {
        if (other == MSIM.ChannelUnlockLockRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasOrderID()) {
          setOrderID(other.getOrderID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelUnlockLockRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelUnlockLockRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long orderID_ ;
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return Whether the orderID field is set.
       */
      @java.lang.Override
      public boolean hasOrderID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return The orderID.
       */
      @java.lang.Override
      public long getOrderID() {
        return orderID_;
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @param value The orderID to set.
       * @return This builder for chaining.
       */
      public Builder setOrderID(long value) {
        bitField0_ |= 0x00000008;
        orderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        orderID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelUnlockLockRsp)
    }

    // @@protoc_insertion_point(class_scope:ChannelUnlockLockRsp)
    private static final MSIM.ChannelUnlockLockRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelUnlockLockRsp();
    }

    public static MSIM.ChannelUnlockLockRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelUnlockLockRsp>
        PARSER = new com.google.protobuf.AbstractParser<ChannelUnlockLockRsp>() {
      @java.lang.Override
      public ChannelUnlockLockRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelUnlockLockRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelUnlockLockRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelLockReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelLockReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return Whether the clientSerialNo field is set.
     */
    boolean hasClientSerialNo();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The clientSerialNo.
     */
    java.lang.String getClientSerialNo();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The bytes for clientSerialNo.
     */
    com.google.protobuf.ByteString
        getClientSerialNoBytes();

    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    boolean hasClientOrderTime();
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    java.lang.String getClientOrderTime();
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    com.google.protobuf.ByteString
        getClientOrderTimeBytes();

    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return Whether the clientType field is set.
     */
    boolean hasClientType();
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return The clientType.
     */
    int getClientType();

    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return Whether the loginID field is set.
     */
    boolean hasLoginID();
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return The loginID.
     */
    long getLoginID();

    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return Whether the goodsID field is set.
     */
    boolean hasGoodsID();
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return The goodsID.
     */
    int getGoodsID();

    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return Whether the marketID field is set.
     */
    boolean hasMarketID();
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return The marketID.
     */
    int getMarketID();

    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 9;</code>
     * @return Whether the operatorID field is set.
     */
    boolean hasOperatorID();
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 9;</code>
     * @return The operatorID.
     */
    long getOperatorID();

    /**
     * <pre>
     * uint64 锁仓活动ID
     * </pre>
     *
     * <code>optional uint64 ActiveInfoID = 10;</code>
     * @return Whether the activeInfoID field is set.
     */
    boolean hasActiveInfoID();
    /**
     * <pre>
     * uint64 锁仓活动ID
     * </pre>
     *
     * <code>optional uint64 ActiveInfoID = 10;</code>
     * @return The activeInfoID.
     */
    long getActiveInfoID();

    /**
     * <pre>
     * uint64 锁仓数量
     * </pre>
     *
     * <code>optional uint64 Qty = 11;</code>
     * @return Whether the qty field is set.
     */
    boolean hasQty();
    /**
     * <pre>
     * uint64 锁仓数量
     * </pre>
     *
     * <code>optional uint64 Qty = 11;</code>
     * @return The qty.
     */
    long getQty();

    /**
     * <pre>
     * double 当前价格
     * </pre>
     *
     * <code>optional double OrderPrice = 12;</code>
     * @return Whether the orderPrice field is set.
     */
    boolean hasOrderPrice();
    /**
     * <pre>
     * double 当前价格
     * </pre>
     *
     * <code>optional double OrderPrice = 12;</code>
     * @return The orderPrice.
     */
    double getOrderPrice();

    /**
     * <pre>
     * uint64 赠送数量
     * </pre>
     *
     * <code>optional uint64 GiftQty = 13;</code>
     * @return Whether the giftQty field is set.
     */
    boolean hasGiftQty();
    /**
     * <pre>
     * uint64 赠送数量
     * </pre>
     *
     * <code>optional uint64 GiftQty = 13;</code>
     * @return The giftQty.
     */
    long getGiftQty();

    /**
     * <pre>
     * string 锁仓结束时间(格式YYYY-MM-DD)
     * </pre>
     *
     * <code>optional string StopDate = 14;</code>
     * @return Whether the stopDate field is set.
     */
    boolean hasStopDate();
    /**
     * <pre>
     * string 锁仓结束时间(格式YYYY-MM-DD)
     * </pre>
     *
     * <code>optional string StopDate = 14;</code>
     * @return The stopDate.
     */
    java.lang.String getStopDate();
    /**
     * <pre>
     * string 锁仓结束时间(格式YYYY-MM-DD)
     * </pre>
     *
     * <code>optional string StopDate = 14;</code>
     * @return The bytes for stopDate.
     */
    com.google.protobuf.ByteString
        getStopDateBytes();

    /**
     * <pre>
     * string 身份证地址
     * </pre>
     *
     * <code>optional string IDCardPhotoURL = 15;</code>
     * @return Whether the iDCardPhotoURL field is set.
     */
    boolean hasIDCardPhotoURL();
    /**
     * <pre>
     * string 身份证地址
     * </pre>
     *
     * <code>optional string IDCardPhotoURL = 15;</code>
     * @return The iDCardPhotoURL.
     */
    java.lang.String getIDCardPhotoURL();
    /**
     * <pre>
     * string 身份证地址
     * </pre>
     *
     * <code>optional string IDCardPhotoURL = 15;</code>
     * @return The bytes for iDCardPhotoURL.
     */
    com.google.protobuf.ByteString
        getIDCardPhotoURLBytes();

    /**
     * <pre>
     * string 电子签名地址
     * </pre>
     *
     * <code>optional string SignatureURL = 16;</code>
     * @return Whether the signatureURL field is set.
     */
    boolean hasSignatureURL();
    /**
     * <pre>
     * string 电子签名地址
     * </pre>
     *
     * <code>optional string SignatureURL = 16;</code>
     * @return The signatureURL.
     */
    java.lang.String getSignatureURL();
    /**
     * <pre>
     * string 电子签名地址
     * </pre>
     *
     * <code>optional string SignatureURL = 16;</code>
     * @return The bytes for signatureURL.
     */
    com.google.protobuf.ByteString
        getSignatureURLBytes();
  }
  /**
   * <pre>
   * 通道锁仓请求 0 3 43
   * </pre>
   *
   * Protobuf type {@code ChannelLockReq}
   */
  public static final class ChannelLockReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelLockReq)
      ChannelLockReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelLockReq.newBuilder() to construct.
    private ChannelLockReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelLockReq() {
      clientSerialNo_ = "";
      clientOrderTime_ = "";
      stopDate_ = "";
      iDCardPhotoURL_ = "";
      signatureURL_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelLockReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelLockReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              clientSerialNo_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              clientOrderTime_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              clientType_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              loginID_ = input.readUInt64();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              accountID_ = input.readUInt64();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              goodsID_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              marketID_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              operatorID_ = input.readUInt64();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              activeInfoID_ = input.readUInt64();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              qty_ = input.readUInt64();
              break;
            }
            case 97: {
              bitField0_ |= 0x00000800;
              orderPrice_ = input.readDouble();
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              giftQty_ = input.readUInt64();
              break;
            }
            case 114: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00002000;
              stopDate_ = bs;
              break;
            }
            case 122: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00004000;
              iDCardPhotoURL_ = bs;
              break;
            }
            case 130: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00008000;
              signatureURL_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelLockReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelLockReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelLockReq.class, MSIM.ChannelLockReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int CLIENTSERIALNO_FIELD_NUMBER = 2;
    private volatile java.lang.Object clientSerialNo_;
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return Whether the clientSerialNo field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialNo() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The clientSerialNo.
     */
    @java.lang.Override
    public java.lang.String getClientSerialNo() {
      java.lang.Object ref = clientSerialNo_;
      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();
        if (bs.isValidUtf8()) {
          clientSerialNo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The bytes for clientSerialNo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientSerialNoBytes() {
      java.lang.Object ref = clientSerialNo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSerialNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTORDERTIME_FIELD_NUMBER = 3;
    private volatile java.lang.Object clientOrderTime_;
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    @java.lang.Override
    public boolean hasClientOrderTime() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    @java.lang.Override
    public java.lang.String getClientOrderTime() {
      java.lang.Object ref = clientOrderTime_;
      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();
        if (bs.isValidUtf8()) {
          clientOrderTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientOrderTimeBytes() {
      java.lang.Object ref = clientOrderTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientOrderTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTTYPE_FIELD_NUMBER = 4;
    private int clientType_;
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return Whether the clientType field is set.
     */
    @java.lang.Override
    public boolean hasClientType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return The clientType.
     */
    @java.lang.Override
    public int getClientType() {
      return clientType_;
    }

    public static final int LOGINID_FIELD_NUMBER = 5;
    private long loginID_;
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return Whether the loginID field is set.
     */
    @java.lang.Override
    public boolean hasLoginID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return The loginID.
     */
    @java.lang.Override
    public long getLoginID() {
      return loginID_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 6;
    private long accountID_;
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int GOODSID_FIELD_NUMBER = 7;
    private int goodsID_;
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return Whether the goodsID field is set.
     */
    @java.lang.Override
    public boolean hasGoodsID() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return The goodsID.
     */
    @java.lang.Override
    public int getGoodsID() {
      return goodsID_;
    }

    public static final int MARKETID_FIELD_NUMBER = 8;
    private int marketID_;
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return Whether the marketID field is set.
     */
    @java.lang.Override
    public boolean hasMarketID() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return The marketID.
     */
    @java.lang.Override
    public int getMarketID() {
      return marketID_;
    }

    public static final int OPERATORID_FIELD_NUMBER = 9;
    private long operatorID_;
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 9;</code>
     * @return Whether the operatorID field is set.
     */
    @java.lang.Override
    public boolean hasOperatorID() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 9;</code>
     * @return The operatorID.
     */
    @java.lang.Override
    public long getOperatorID() {
      return operatorID_;
    }

    public static final int ACTIVEINFOID_FIELD_NUMBER = 10;
    private long activeInfoID_;
    /**
     * <pre>
     * uint64 锁仓活动ID
     * </pre>
     *
     * <code>optional uint64 ActiveInfoID = 10;</code>
     * @return Whether the activeInfoID field is set.
     */
    @java.lang.Override
    public boolean hasActiveInfoID() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * uint64 锁仓活动ID
     * </pre>
     *
     * <code>optional uint64 ActiveInfoID = 10;</code>
     * @return The activeInfoID.
     */
    @java.lang.Override
    public long getActiveInfoID() {
      return activeInfoID_;
    }

    public static final int QTY_FIELD_NUMBER = 11;
    private long qty_;
    /**
     * <pre>
     * uint64 锁仓数量
     * </pre>
     *
     * <code>optional uint64 Qty = 11;</code>
     * @return Whether the qty field is set.
     */
    @java.lang.Override
    public boolean hasQty() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * uint64 锁仓数量
     * </pre>
     *
     * <code>optional uint64 Qty = 11;</code>
     * @return The qty.
     */
    @java.lang.Override
    public long getQty() {
      return qty_;
    }

    public static final int ORDERPRICE_FIELD_NUMBER = 12;
    private double orderPrice_;
    /**
     * <pre>
     * double 当前价格
     * </pre>
     *
     * <code>optional double OrderPrice = 12;</code>
     * @return Whether the orderPrice field is set.
     */
    @java.lang.Override
    public boolean hasOrderPrice() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * double 当前价格
     * </pre>
     *
     * <code>optional double OrderPrice = 12;</code>
     * @return The orderPrice.
     */
    @java.lang.Override
    public double getOrderPrice() {
      return orderPrice_;
    }

    public static final int GIFTQTY_FIELD_NUMBER = 13;
    private long giftQty_;
    /**
     * <pre>
     * uint64 赠送数量
     * </pre>
     *
     * <code>optional uint64 GiftQty = 13;</code>
     * @return Whether the giftQty field is set.
     */
    @java.lang.Override
    public boolean hasGiftQty() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * uint64 赠送数量
     * </pre>
     *
     * <code>optional uint64 GiftQty = 13;</code>
     * @return The giftQty.
     */
    @java.lang.Override
    public long getGiftQty() {
      return giftQty_;
    }

    public static final int STOPDATE_FIELD_NUMBER = 14;
    private volatile java.lang.Object stopDate_;
    /**
     * <pre>
     * string 锁仓结束时间(格式YYYY-MM-DD)
     * </pre>
     *
     * <code>optional string StopDate = 14;</code>
     * @return Whether the stopDate field is set.
     */
    @java.lang.Override
    public boolean hasStopDate() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * string 锁仓结束时间(格式YYYY-MM-DD)
     * </pre>
     *
     * <code>optional string StopDate = 14;</code>
     * @return The stopDate.
     */
    @java.lang.Override
    public java.lang.String getStopDate() {
      java.lang.Object ref = stopDate_;
      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();
        if (bs.isValidUtf8()) {
          stopDate_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 锁仓结束时间(格式YYYY-MM-DD)
     * </pre>
     *
     * <code>optional string StopDate = 14;</code>
     * @return The bytes for stopDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getStopDateBytes() {
      java.lang.Object ref = stopDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        stopDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IDCARDPHOTOURL_FIELD_NUMBER = 15;
    private volatile java.lang.Object iDCardPhotoURL_;
    /**
     * <pre>
     * string 身份证地址
     * </pre>
     *
     * <code>optional string IDCardPhotoURL = 15;</code>
     * @return Whether the iDCardPhotoURL field is set.
     */
    @java.lang.Override
    public boolean hasIDCardPhotoURL() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * string 身份证地址
     * </pre>
     *
     * <code>optional string IDCardPhotoURL = 15;</code>
     * @return The iDCardPhotoURL.
     */
    @java.lang.Override
    public java.lang.String getIDCardPhotoURL() {
      java.lang.Object ref = iDCardPhotoURL_;
      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();
        if (bs.isValidUtf8()) {
          iDCardPhotoURL_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 身份证地址
     * </pre>
     *
     * <code>optional string IDCardPhotoURL = 15;</code>
     * @return The bytes for iDCardPhotoURL.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIDCardPhotoURLBytes() {
      java.lang.Object ref = iDCardPhotoURL_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        iDCardPhotoURL_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SIGNATUREURL_FIELD_NUMBER = 16;
    private volatile java.lang.Object signatureURL_;
    /**
     * <pre>
     * string 电子签名地址
     * </pre>
     *
     * <code>optional string SignatureURL = 16;</code>
     * @return Whether the signatureURL field is set.
     */
    @java.lang.Override
    public boolean hasSignatureURL() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * string 电子签名地址
     * </pre>
     *
     * <code>optional string SignatureURL = 16;</code>
     * @return The signatureURL.
     */
    @java.lang.Override
    public java.lang.String getSignatureURL() {
      java.lang.Object ref = signatureURL_;
      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();
        if (bs.isValidUtf8()) {
          signatureURL_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 电子签名地址
     * </pre>
     *
     * <code>optional string SignatureURL = 16;</code>
     * @return The bytes for signatureURL.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSignatureURLBytes() {
      java.lang.Object ref = signatureURL_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        signatureURL_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, loginID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt64(6, accountID_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeUInt32(7, goodsID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeUInt32(8, marketID_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeUInt64(9, operatorID_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeUInt64(10, activeInfoID_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeUInt64(11, qty_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeDouble(12, orderPrice_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeUInt64(13, giftQty_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, stopDate_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, iDCardPhotoURL_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, signatureURL_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, loginID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(6, accountID_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, goodsID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, marketID_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(9, operatorID_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(10, activeInfoID_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(11, qty_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(12, orderPrice_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(13, giftQty_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, stopDate_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, iDCardPhotoURL_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, signatureURL_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelLockReq)) {
        return super.equals(obj);
      }
      MSIM.ChannelLockReq other = (MSIM.ChannelLockReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasClientSerialNo() != other.hasClientSerialNo()) return false;
      if (hasClientSerialNo()) {
        if (!getClientSerialNo()
            .equals(other.getClientSerialNo())) return false;
      }
      if (hasClientOrderTime() != other.hasClientOrderTime()) return false;
      if (hasClientOrderTime()) {
        if (!getClientOrderTime()
            .equals(other.getClientOrderTime())) return false;
      }
      if (hasClientType() != other.hasClientType()) return false;
      if (hasClientType()) {
        if (getClientType()
            != other.getClientType()) return false;
      }
      if (hasLoginID() != other.hasLoginID()) return false;
      if (hasLoginID()) {
        if (getLoginID()
            != other.getLoginID()) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasGoodsID() != other.hasGoodsID()) return false;
      if (hasGoodsID()) {
        if (getGoodsID()
            != other.getGoodsID()) return false;
      }
      if (hasMarketID() != other.hasMarketID()) return false;
      if (hasMarketID()) {
        if (getMarketID()
            != other.getMarketID()) return false;
      }
      if (hasOperatorID() != other.hasOperatorID()) return false;
      if (hasOperatorID()) {
        if (getOperatorID()
            != other.getOperatorID()) return false;
      }
      if (hasActiveInfoID() != other.hasActiveInfoID()) return false;
      if (hasActiveInfoID()) {
        if (getActiveInfoID()
            != other.getActiveInfoID()) return false;
      }
      if (hasQty() != other.hasQty()) return false;
      if (hasQty()) {
        if (getQty()
            != other.getQty()) return false;
      }
      if (hasOrderPrice() != other.hasOrderPrice()) return false;
      if (hasOrderPrice()) {
        if (java.lang.Double.doubleToLongBits(getOrderPrice())
            != java.lang.Double.doubleToLongBits(
                other.getOrderPrice())) return false;
      }
      if (hasGiftQty() != other.hasGiftQty()) return false;
      if (hasGiftQty()) {
        if (getGiftQty()
            != other.getGiftQty()) return false;
      }
      if (hasStopDate() != other.hasStopDate()) return false;
      if (hasStopDate()) {
        if (!getStopDate()
            .equals(other.getStopDate())) return false;
      }
      if (hasIDCardPhotoURL() != other.hasIDCardPhotoURL()) return false;
      if (hasIDCardPhotoURL()) {
        if (!getIDCardPhotoURL()
            .equals(other.getIDCardPhotoURL())) return false;
      }
      if (hasSignatureURL() != other.hasSignatureURL()) return false;
      if (hasSignatureURL()) {
        if (!getSignatureURL()
            .equals(other.getSignatureURL())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasClientSerialNo()) {
        hash = (37 * hash) + CLIENTSERIALNO_FIELD_NUMBER;
        hash = (53 * hash) + getClientSerialNo().hashCode();
      }
      if (hasClientOrderTime()) {
        hash = (37 * hash) + CLIENTORDERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getClientOrderTime().hashCode();
      }
      if (hasClientType()) {
        hash = (37 * hash) + CLIENTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getClientType();
      }
      if (hasLoginID()) {
        hash = (37 * hash) + LOGINID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLoginID());
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasGoodsID()) {
        hash = (37 * hash) + GOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsID();
      }
      if (hasMarketID()) {
        hash = (37 * hash) + MARKETID_FIELD_NUMBER;
        hash = (53 * hash) + getMarketID();
      }
      if (hasOperatorID()) {
        hash = (37 * hash) + OPERATORID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOperatorID());
      }
      if (hasActiveInfoID()) {
        hash = (37 * hash) + ACTIVEINFOID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getActiveInfoID());
      }
      if (hasQty()) {
        hash = (37 * hash) + QTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getQty());
      }
      if (hasOrderPrice()) {
        hash = (37 * hash) + ORDERPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getOrderPrice()));
      }
      if (hasGiftQty()) {
        hash = (37 * hash) + GIFTQTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getGiftQty());
      }
      if (hasStopDate()) {
        hash = (37 * hash) + STOPDATE_FIELD_NUMBER;
        hash = (53 * hash) + getStopDate().hashCode();
      }
      if (hasIDCardPhotoURL()) {
        hash = (37 * hash) + IDCARDPHOTOURL_FIELD_NUMBER;
        hash = (53 * hash) + getIDCardPhotoURL().hashCode();
      }
      if (hasSignatureURL()) {
        hash = (37 * hash) + SIGNATUREURL_FIELD_NUMBER;
        hash = (53 * hash) + getSignatureURL().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelLockReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelLockReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelLockReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelLockReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelLockReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelLockReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelLockReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelLockReq 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 MSIM.ChannelLockReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelLockReq 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 MSIM.ChannelLockReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelLockReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelLockReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 通道锁仓请求 0 3 43
     * </pre>
     *
     * Protobuf type {@code ChannelLockReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelLockReq)
        MSIM.ChannelLockReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelLockReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelLockReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelLockReq.class, MSIM.ChannelLockReq.Builder.class);
      }

      // Construct using MSIM.ChannelLockReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        clientSerialNo_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        clientOrderTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        clientType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        loginID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        goodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        marketID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        operatorID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000100);
        activeInfoID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000200);
        qty_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000400);
        orderPrice_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000800);
        giftQty_ = 0L;
        bitField0_ = (bitField0_ & ~0x00001000);
        stopDate_ = "";
        bitField0_ = (bitField0_ & ~0x00002000);
        iDCardPhotoURL_ = "";
        bitField0_ = (bitField0_ & ~0x00004000);
        signatureURL_ = "";
        bitField0_ = (bitField0_ & ~0x00008000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelLockReq_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelLockReq getDefaultInstanceForType() {
        return MSIM.ChannelLockReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelLockReq build() {
        MSIM.ChannelLockReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelLockReq buildPartial() {
        MSIM.ChannelLockReq result = new MSIM.ChannelLockReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.clientSerialNo_ = clientSerialNo_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.clientOrderTime_ = clientOrderTime_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.clientType_ = clientType_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.loginID_ = loginID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.goodsID_ = goodsID_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.marketID_ = marketID_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.operatorID_ = operatorID_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.activeInfoID_ = activeInfoID_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.qty_ = qty_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.orderPrice_ = orderPrice_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.giftQty_ = giftQty_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          to_bitField0_ |= 0x00002000;
        }
        result.stopDate_ = stopDate_;
        if (((from_bitField0_ & 0x00004000) != 0)) {
          to_bitField0_ |= 0x00004000;
        }
        result.iDCardPhotoURL_ = iDCardPhotoURL_;
        if (((from_bitField0_ & 0x00008000) != 0)) {
          to_bitField0_ |= 0x00008000;
        }
        result.signatureURL_ = signatureURL_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelLockReq) {
          return mergeFrom((MSIM.ChannelLockReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelLockReq other) {
        if (other == MSIM.ChannelLockReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasClientSerialNo()) {
          bitField0_ |= 0x00000002;
          clientSerialNo_ = other.clientSerialNo_;
          onChanged();
        }
        if (other.hasClientOrderTime()) {
          bitField0_ |= 0x00000004;
          clientOrderTime_ = other.clientOrderTime_;
          onChanged();
        }
        if (other.hasClientType()) {
          setClientType(other.getClientType());
        }
        if (other.hasLoginID()) {
          setLoginID(other.getLoginID());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasGoodsID()) {
          setGoodsID(other.getGoodsID());
        }
        if (other.hasMarketID()) {
          setMarketID(other.getMarketID());
        }
        if (other.hasOperatorID()) {
          setOperatorID(other.getOperatorID());
        }
        if (other.hasActiveInfoID()) {
          setActiveInfoID(other.getActiveInfoID());
        }
        if (other.hasQty()) {
          setQty(other.getQty());
        }
        if (other.hasOrderPrice()) {
          setOrderPrice(other.getOrderPrice());
        }
        if (other.hasGiftQty()) {
          setGiftQty(other.getGiftQty());
        }
        if (other.hasStopDate()) {
          bitField0_ |= 0x00002000;
          stopDate_ = other.stopDate_;
          onChanged();
        }
        if (other.hasIDCardPhotoURL()) {
          bitField0_ |= 0x00004000;
          iDCardPhotoURL_ = other.iDCardPhotoURL_;
          onChanged();
        }
        if (other.hasSignatureURL()) {
          bitField0_ |= 0x00008000;
          signatureURL_ = other.signatureURL_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelLockReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelLockReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.lang.Object clientSerialNo_ = "";
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return Whether the clientSerialNo field is set.
       */
      public boolean hasClientSerialNo() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return The clientSerialNo.
       */
      public java.lang.String getClientSerialNo() {
        java.lang.Object ref = clientSerialNo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientSerialNo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return The bytes for clientSerialNo.
       */
      public com.google.protobuf.ByteString
          getClientSerialNoBytes() {
        java.lang.Object ref = clientSerialNo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientSerialNo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @param value The clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialNo() {
        bitField0_ = (bitField0_ & ~0x00000002);
        clientSerialNo_ = getDefaultInstance().getClientSerialNo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @param value The bytes for clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clientOrderTime_ = "";
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return Whether the clientOrderTime field is set.
       */
      public boolean hasClientOrderTime() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The clientOrderTime.
       */
      public java.lang.String getClientOrderTime() {
        java.lang.Object ref = clientOrderTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientOrderTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The bytes for clientOrderTime.
       */
      public com.google.protobuf.ByteString
          getClientOrderTimeBytes() {
        java.lang.Object ref = clientOrderTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientOrderTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientOrderTime() {
        bitField0_ = (bitField0_ & ~0x00000004);
        clientOrderTime_ = getDefaultInstance().getClientOrderTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The bytes for clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }

      private int clientType_ ;
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return Whether the clientType field is set.
       */
      @java.lang.Override
      public boolean hasClientType() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return The clientType.
       */
      @java.lang.Override
      public int getClientType() {
        return clientType_;
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @param value The clientType to set.
       * @return This builder for chaining.
       */
      public Builder setClientType(int value) {
        bitField0_ |= 0x00000008;
        clientType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        clientType_ = 0;
        onChanged();
        return this;
      }

      private long loginID_ ;
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return Whether the loginID field is set.
       */
      @java.lang.Override
      public boolean hasLoginID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return The loginID.
       */
      @java.lang.Override
      public long getLoginID() {
        return loginID_;
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @param value The loginID to set.
       * @return This builder for chaining.
       */
      public Builder setLoginID(long value) {
        bitField0_ |= 0x00000010;
        loginID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        loginID_ = 0L;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000020;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000020);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private int goodsID_ ;
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return Whether the goodsID field is set.
       */
      @java.lang.Override
      public boolean hasGoodsID() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return The goodsID.
       */
      @java.lang.Override
      public int getGoodsID() {
        return goodsID_;
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @param value The goodsID to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsID(int value) {
        bitField0_ |= 0x00000040;
        goodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        goodsID_ = 0;
        onChanged();
        return this;
      }

      private int marketID_ ;
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @return Whether the marketID field is set.
       */
      @java.lang.Override
      public boolean hasMarketID() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @return The marketID.
       */
      @java.lang.Override
      public int getMarketID() {
        return marketID_;
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @param value The marketID to set.
       * @return This builder for chaining.
       */
      public Builder setMarketID(int value) {
        bitField0_ |= 0x00000080;
        marketID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearMarketID() {
        bitField0_ = (bitField0_ & ~0x00000080);
        marketID_ = 0;
        onChanged();
        return this;
      }

      private long operatorID_ ;
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 9;</code>
       * @return Whether the operatorID field is set.
       */
      @java.lang.Override
      public boolean hasOperatorID() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 9;</code>
       * @return The operatorID.
       */
      @java.lang.Override
      public long getOperatorID() {
        return operatorID_;
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 9;</code>
       * @param value The operatorID to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorID(long value) {
        bitField0_ |= 0x00000100;
        operatorID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorID() {
        bitField0_ = (bitField0_ & ~0x00000100);
        operatorID_ = 0L;
        onChanged();
        return this;
      }

      private long activeInfoID_ ;
      /**
       * <pre>
       * uint64 锁仓活动ID
       * </pre>
       *
       * <code>optional uint64 ActiveInfoID = 10;</code>
       * @return Whether the activeInfoID field is set.
       */
      @java.lang.Override
      public boolean hasActiveInfoID() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * uint64 锁仓活动ID
       * </pre>
       *
       * <code>optional uint64 ActiveInfoID = 10;</code>
       * @return The activeInfoID.
       */
      @java.lang.Override
      public long getActiveInfoID() {
        return activeInfoID_;
      }
      /**
       * <pre>
       * uint64 锁仓活动ID
       * </pre>
       *
       * <code>optional uint64 ActiveInfoID = 10;</code>
       * @param value The activeInfoID to set.
       * @return This builder for chaining.
       */
      public Builder setActiveInfoID(long value) {
        bitField0_ |= 0x00000200;
        activeInfoID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 锁仓活动ID
       * </pre>
       *
       * <code>optional uint64 ActiveInfoID = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearActiveInfoID() {
        bitField0_ = (bitField0_ & ~0x00000200);
        activeInfoID_ = 0L;
        onChanged();
        return this;
      }

      private long qty_ ;
      /**
       * <pre>
       * uint64 锁仓数量
       * </pre>
       *
       * <code>optional uint64 Qty = 11;</code>
       * @return Whether the qty field is set.
       */
      @java.lang.Override
      public boolean hasQty() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * uint64 锁仓数量
       * </pre>
       *
       * <code>optional uint64 Qty = 11;</code>
       * @return The qty.
       */
      @java.lang.Override
      public long getQty() {
        return qty_;
      }
      /**
       * <pre>
       * uint64 锁仓数量
       * </pre>
       *
       * <code>optional uint64 Qty = 11;</code>
       * @param value The qty to set.
       * @return This builder for chaining.
       */
      public Builder setQty(long value) {
        bitField0_ |= 0x00000400;
        qty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 锁仓数量
       * </pre>
       *
       * <code>optional uint64 Qty = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearQty() {
        bitField0_ = (bitField0_ & ~0x00000400);
        qty_ = 0L;
        onChanged();
        return this;
      }

      private double orderPrice_ ;
      /**
       * <pre>
       * double 当前价格
       * </pre>
       *
       * <code>optional double OrderPrice = 12;</code>
       * @return Whether the orderPrice field is set.
       */
      @java.lang.Override
      public boolean hasOrderPrice() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * double 当前价格
       * </pre>
       *
       * <code>optional double OrderPrice = 12;</code>
       * @return The orderPrice.
       */
      @java.lang.Override
      public double getOrderPrice() {
        return orderPrice_;
      }
      /**
       * <pre>
       * double 当前价格
       * </pre>
       *
       * <code>optional double OrderPrice = 12;</code>
       * @param value The orderPrice to set.
       * @return This builder for chaining.
       */
      public Builder setOrderPrice(double value) {
        bitField0_ |= 0x00000800;
        orderPrice_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double 当前价格
       * </pre>
       *
       * <code>optional double OrderPrice = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderPrice() {
        bitField0_ = (bitField0_ & ~0x00000800);
        orderPrice_ = 0D;
        onChanged();
        return this;
      }

      private long giftQty_ ;
      /**
       * <pre>
       * uint64 赠送数量
       * </pre>
       *
       * <code>optional uint64 GiftQty = 13;</code>
       * @return Whether the giftQty field is set.
       */
      @java.lang.Override
      public boolean hasGiftQty() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * uint64 赠送数量
       * </pre>
       *
       * <code>optional uint64 GiftQty = 13;</code>
       * @return The giftQty.
       */
      @java.lang.Override
      public long getGiftQty() {
        return giftQty_;
      }
      /**
       * <pre>
       * uint64 赠送数量
       * </pre>
       *
       * <code>optional uint64 GiftQty = 13;</code>
       * @param value The giftQty to set.
       * @return This builder for chaining.
       */
      public Builder setGiftQty(long value) {
        bitField0_ |= 0x00001000;
        giftQty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 赠送数量
       * </pre>
       *
       * <code>optional uint64 GiftQty = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearGiftQty() {
        bitField0_ = (bitField0_ & ~0x00001000);
        giftQty_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object stopDate_ = "";
      /**
       * <pre>
       * string 锁仓结束时间(格式YYYY-MM-DD)
       * </pre>
       *
       * <code>optional string StopDate = 14;</code>
       * @return Whether the stopDate field is set.
       */
      public boolean hasStopDate() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * string 锁仓结束时间(格式YYYY-MM-DD)
       * </pre>
       *
       * <code>optional string StopDate = 14;</code>
       * @return The stopDate.
       */
      public java.lang.String getStopDate() {
        java.lang.Object ref = stopDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            stopDate_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 锁仓结束时间(格式YYYY-MM-DD)
       * </pre>
       *
       * <code>optional string StopDate = 14;</code>
       * @return The bytes for stopDate.
       */
      public com.google.protobuf.ByteString
          getStopDateBytes() {
        java.lang.Object ref = stopDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          stopDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 锁仓结束时间(格式YYYY-MM-DD)
       * </pre>
       *
       * <code>optional string StopDate = 14;</code>
       * @param value The stopDate to set.
       * @return This builder for chaining.
       */
      public Builder setStopDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        stopDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 锁仓结束时间(格式YYYY-MM-DD)
       * </pre>
       *
       * <code>optional string StopDate = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearStopDate() {
        bitField0_ = (bitField0_ & ~0x00002000);
        stopDate_ = getDefaultInstance().getStopDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 锁仓结束时间(格式YYYY-MM-DD)
       * </pre>
       *
       * <code>optional string StopDate = 14;</code>
       * @param value The bytes for stopDate to set.
       * @return This builder for chaining.
       */
      public Builder setStopDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        stopDate_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object iDCardPhotoURL_ = "";
      /**
       * <pre>
       * string 身份证地址
       * </pre>
       *
       * <code>optional string IDCardPhotoURL = 15;</code>
       * @return Whether the iDCardPhotoURL field is set.
       */
      public boolean hasIDCardPhotoURL() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * string 身份证地址
       * </pre>
       *
       * <code>optional string IDCardPhotoURL = 15;</code>
       * @return The iDCardPhotoURL.
       */
      public java.lang.String getIDCardPhotoURL() {
        java.lang.Object ref = iDCardPhotoURL_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            iDCardPhotoURL_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 身份证地址
       * </pre>
       *
       * <code>optional string IDCardPhotoURL = 15;</code>
       * @return The bytes for iDCardPhotoURL.
       */
      public com.google.protobuf.ByteString
          getIDCardPhotoURLBytes() {
        java.lang.Object ref = iDCardPhotoURL_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          iDCardPhotoURL_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 身份证地址
       * </pre>
       *
       * <code>optional string IDCardPhotoURL = 15;</code>
       * @param value The iDCardPhotoURL to set.
       * @return This builder for chaining.
       */
      public Builder setIDCardPhotoURL(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
        iDCardPhotoURL_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 身份证地址
       * </pre>
       *
       * <code>optional string IDCardPhotoURL = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearIDCardPhotoURL() {
        bitField0_ = (bitField0_ & ~0x00004000);
        iDCardPhotoURL_ = getDefaultInstance().getIDCardPhotoURL();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 身份证地址
       * </pre>
       *
       * <code>optional string IDCardPhotoURL = 15;</code>
       * @param value The bytes for iDCardPhotoURL to set.
       * @return This builder for chaining.
       */
      public Builder setIDCardPhotoURLBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
        iDCardPhotoURL_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object signatureURL_ = "";
      /**
       * <pre>
       * string 电子签名地址
       * </pre>
       *
       * <code>optional string SignatureURL = 16;</code>
       * @return Whether the signatureURL field is set.
       */
      public boolean hasSignatureURL() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <pre>
       * string 电子签名地址
       * </pre>
       *
       * <code>optional string SignatureURL = 16;</code>
       * @return The signatureURL.
       */
      public java.lang.String getSignatureURL() {
        java.lang.Object ref = signatureURL_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            signatureURL_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 电子签名地址
       * </pre>
       *
       * <code>optional string SignatureURL = 16;</code>
       * @return The bytes for signatureURL.
       */
      public com.google.protobuf.ByteString
          getSignatureURLBytes() {
        java.lang.Object ref = signatureURL_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          signatureURL_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 电子签名地址
       * </pre>
       *
       * <code>optional string SignatureURL = 16;</code>
       * @param value The signatureURL to set.
       * @return This builder for chaining.
       */
      public Builder setSignatureURL(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
        signatureURL_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 电子签名地址
       * </pre>
       *
       * <code>optional string SignatureURL = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearSignatureURL() {
        bitField0_ = (bitField0_ & ~0x00008000);
        signatureURL_ = getDefaultInstance().getSignatureURL();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 电子签名地址
       * </pre>
       *
       * <code>optional string SignatureURL = 16;</code>
       * @param value The bytes for signatureURL to set.
       * @return This builder for chaining.
       */
      public Builder setSignatureURLBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
        signatureURL_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelLockReq)
    }

    // @@protoc_insertion_point(class_scope:ChannelLockReq)
    private static final MSIM.ChannelLockReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelLockReq();
    }

    public static MSIM.ChannelLockReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelLockReq>
        PARSER = new com.google.protobuf.AbstractParser<ChannelLockReq>() {
      @java.lang.Override
      public ChannelLockReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelLockReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelLockReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelLockRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelLockRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return Whether the orderID field is set.
     */
    boolean hasOrderID();
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return The orderID.
     */
    long getOrderID();

    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return Whether the orderTime field is set.
     */
    boolean hasOrderTime();
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The orderTime.
     */
    java.lang.String getOrderTime();
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The bytes for orderTime.
     */
    com.google.protobuf.ByteString
        getOrderTimeBytes();
  }
  /**
   * <pre>
   * 通道锁仓应答 0 3 44
   * </pre>
   *
   * Protobuf type {@code ChannelLockRsp}
   */
  public static final class ChannelLockRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelLockRsp)
      ChannelLockRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelLockRsp.newBuilder() to construct.
    private ChannelLockRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelLockRsp() {
      retDesc_ = "";
      orderTime_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelLockRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelLockRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              orderID_ = input.readUInt64();
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              orderTime_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelLockRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelLockRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelLockRsp.class, MSIM.ChannelLockRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ORDERID_FIELD_NUMBER = 4;
    private long orderID_;
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return Whether the orderID field is set.
     */
    @java.lang.Override
    public boolean hasOrderID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return The orderID.
     */
    @java.lang.Override
    public long getOrderID() {
      return orderID_;
    }

    public static final int ORDERTIME_FIELD_NUMBER = 5;
    private volatile java.lang.Object orderTime_;
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return Whether the orderTime field is set.
     */
    @java.lang.Override
    public boolean hasOrderTime() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The orderTime.
     */
    @java.lang.Override
    public java.lang.String getOrderTime() {
      java.lang.Object ref = orderTime_;
      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();
        if (bs.isValidUtf8()) {
          orderTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The bytes for orderTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOrderTimeBytes() {
      java.lang.Object ref = orderTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        orderTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, orderID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, orderTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, orderID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, orderTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelLockRsp)) {
        return super.equals(obj);
      }
      MSIM.ChannelLockRsp other = (MSIM.ChannelLockRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasOrderID() != other.hasOrderID()) return false;
      if (hasOrderID()) {
        if (getOrderID()
            != other.getOrderID()) return false;
      }
      if (hasOrderTime() != other.hasOrderTime()) return false;
      if (hasOrderTime()) {
        if (!getOrderTime()
            .equals(other.getOrderTime())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasOrderID()) {
        hash = (37 * hash) + ORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOrderID());
      }
      if (hasOrderTime()) {
        hash = (37 * hash) + ORDERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getOrderTime().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelLockRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelLockRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelLockRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelLockRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelLockRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelLockRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelLockRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelLockRsp 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 MSIM.ChannelLockRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelLockRsp 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 MSIM.ChannelLockRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelLockRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelLockRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 通道锁仓应答 0 3 44
     * </pre>
     *
     * Protobuf type {@code ChannelLockRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelLockRsp)
        MSIM.ChannelLockRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelLockRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelLockRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelLockRsp.class, MSIM.ChannelLockRsp.Builder.class);
      }

      // Construct using MSIM.ChannelLockRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        orderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        orderTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelLockRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelLockRsp getDefaultInstanceForType() {
        return MSIM.ChannelLockRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelLockRsp build() {
        MSIM.ChannelLockRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelLockRsp buildPartial() {
        MSIM.ChannelLockRsp result = new MSIM.ChannelLockRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.orderID_ = orderID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.orderTime_ = orderTime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelLockRsp) {
          return mergeFrom((MSIM.ChannelLockRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelLockRsp other) {
        if (other == MSIM.ChannelLockRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasOrderID()) {
          setOrderID(other.getOrderID());
        }
        if (other.hasOrderTime()) {
          bitField0_ |= 0x00000010;
          orderTime_ = other.orderTime_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelLockRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelLockRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long orderID_ ;
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return Whether the orderID field is set.
       */
      @java.lang.Override
      public boolean hasOrderID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return The orderID.
       */
      @java.lang.Override
      public long getOrderID() {
        return orderID_;
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @param value The orderID to set.
       * @return This builder for chaining.
       */
      public Builder setOrderID(long value) {
        bitField0_ |= 0x00000008;
        orderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        orderID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object orderTime_ = "";
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return Whether the orderTime field is set.
       */
      public boolean hasOrderTime() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return The orderTime.
       */
      public java.lang.String getOrderTime() {
        java.lang.Object ref = orderTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            orderTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return The bytes for orderTime.
       */
      public com.google.protobuf.ByteString
          getOrderTimeBytes() {
        java.lang.Object ref = orderTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          orderTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @param value The orderTime to set.
       * @return This builder for chaining.
       */
      public Builder setOrderTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        orderTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderTime() {
        bitField0_ = (bitField0_ & ~0x00000010);
        orderTime_ = getDefaultInstance().getOrderTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @param value The bytes for orderTime to set.
       * @return This builder for chaining.
       */
      public Builder setOrderTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        orderTime_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelLockRsp)
    }

    // @@protoc_insertion_point(class_scope:ChannelLockRsp)
    private static final MSIM.ChannelLockRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelLockRsp();
    }

    public static MSIM.ChannelLockRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelLockRsp>
        PARSER = new com.google.protobuf.AbstractParser<ChannelLockRsp>() {
      @java.lang.Override
      public ChannelLockRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelLockRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelLockRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelCancelLockReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelCancelLockReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return Whether the clientSerialNo field is set.
     */
    boolean hasClientSerialNo();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The clientSerialNo.
     */
    java.lang.String getClientSerialNo();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The bytes for clientSerialNo.
     */
    com.google.protobuf.ByteString
        getClientSerialNoBytes();

    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    boolean hasClientOrderTime();
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    java.lang.String getClientOrderTime();
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    com.google.protobuf.ByteString
        getClientOrderTimeBytes();

    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return Whether the clientType field is set.
     */
    boolean hasClientType();
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return The clientType.
     */
    int getClientType();

    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return Whether the loginID field is set.
     */
    boolean hasLoginID();
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return The loginID.
     */
    long getLoginID();

    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 7;</code>
     * @return Whether the operatorID field is set.
     */
    boolean hasOperatorID();
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 7;</code>
     * @return The operatorID.
     */
    long getOperatorID();

    /**
     * <pre>
     * uint64 锁仓单据ID
     * </pre>
     *
     * <code>optional uint64 OrderID = 8;</code>
     * @return Whether the orderID field is set.
     */
    boolean hasOrderID();
    /**
     * <pre>
     * uint64 锁仓单据ID
     * </pre>
     *
     * <code>optional uint64 OrderID = 8;</code>
     * @return The orderID.
     */
    long getOrderID();
  }
  /**
   * <pre>
   * 通道撤销锁仓请求 0 3 45
   * </pre>
   *
   * Protobuf type {@code ChannelCancelLockReq}
   */
  public static final class ChannelCancelLockReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelCancelLockReq)
      ChannelCancelLockReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelCancelLockReq.newBuilder() to construct.
    private ChannelCancelLockReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelCancelLockReq() {
      clientSerialNo_ = "";
      clientOrderTime_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelCancelLockReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelCancelLockReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              clientSerialNo_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              clientOrderTime_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              clientType_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              loginID_ = input.readUInt64();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              accountID_ = input.readUInt64();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              operatorID_ = input.readUInt64();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              orderID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelCancelLockReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelCancelLockReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelCancelLockReq.class, MSIM.ChannelCancelLockReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int CLIENTSERIALNO_FIELD_NUMBER = 2;
    private volatile java.lang.Object clientSerialNo_;
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return Whether the clientSerialNo field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialNo() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The clientSerialNo.
     */
    @java.lang.Override
    public java.lang.String getClientSerialNo() {
      java.lang.Object ref = clientSerialNo_;
      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();
        if (bs.isValidUtf8()) {
          clientSerialNo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The bytes for clientSerialNo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientSerialNoBytes() {
      java.lang.Object ref = clientSerialNo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSerialNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTORDERTIME_FIELD_NUMBER = 3;
    private volatile java.lang.Object clientOrderTime_;
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    @java.lang.Override
    public boolean hasClientOrderTime() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    @java.lang.Override
    public java.lang.String getClientOrderTime() {
      java.lang.Object ref = clientOrderTime_;
      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();
        if (bs.isValidUtf8()) {
          clientOrderTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientOrderTimeBytes() {
      java.lang.Object ref = clientOrderTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientOrderTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTTYPE_FIELD_NUMBER = 4;
    private int clientType_;
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return Whether the clientType field is set.
     */
    @java.lang.Override
    public boolean hasClientType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return The clientType.
     */
    @java.lang.Override
    public int getClientType() {
      return clientType_;
    }

    public static final int LOGINID_FIELD_NUMBER = 5;
    private long loginID_;
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return Whether the loginID field is set.
     */
    @java.lang.Override
    public boolean hasLoginID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return The loginID.
     */
    @java.lang.Override
    public long getLoginID() {
      return loginID_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 6;
    private long accountID_;
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int OPERATORID_FIELD_NUMBER = 7;
    private long operatorID_;
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 7;</code>
     * @return Whether the operatorID field is set.
     */
    @java.lang.Override
    public boolean hasOperatorID() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 7;</code>
     * @return The operatorID.
     */
    @java.lang.Override
    public long getOperatorID() {
      return operatorID_;
    }

    public static final int ORDERID_FIELD_NUMBER = 8;
    private long orderID_;
    /**
     * <pre>
     * uint64 锁仓单据ID
     * </pre>
     *
     * <code>optional uint64 OrderID = 8;</code>
     * @return Whether the orderID field is set.
     */
    @java.lang.Override
    public boolean hasOrderID() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * uint64 锁仓单据ID
     * </pre>
     *
     * <code>optional uint64 OrderID = 8;</code>
     * @return The orderID.
     */
    @java.lang.Override
    public long getOrderID() {
      return orderID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, loginID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt64(6, accountID_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeUInt64(7, operatorID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeUInt64(8, orderID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, loginID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(6, accountID_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(7, operatorID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(8, orderID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelCancelLockReq)) {
        return super.equals(obj);
      }
      MSIM.ChannelCancelLockReq other = (MSIM.ChannelCancelLockReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasClientSerialNo() != other.hasClientSerialNo()) return false;
      if (hasClientSerialNo()) {
        if (!getClientSerialNo()
            .equals(other.getClientSerialNo())) return false;
      }
      if (hasClientOrderTime() != other.hasClientOrderTime()) return false;
      if (hasClientOrderTime()) {
        if (!getClientOrderTime()
            .equals(other.getClientOrderTime())) return false;
      }
      if (hasClientType() != other.hasClientType()) return false;
      if (hasClientType()) {
        if (getClientType()
            != other.getClientType()) return false;
      }
      if (hasLoginID() != other.hasLoginID()) return false;
      if (hasLoginID()) {
        if (getLoginID()
            != other.getLoginID()) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasOperatorID() != other.hasOperatorID()) return false;
      if (hasOperatorID()) {
        if (getOperatorID()
            != other.getOperatorID()) return false;
      }
      if (hasOrderID() != other.hasOrderID()) return false;
      if (hasOrderID()) {
        if (getOrderID()
            != other.getOrderID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasClientSerialNo()) {
        hash = (37 * hash) + CLIENTSERIALNO_FIELD_NUMBER;
        hash = (53 * hash) + getClientSerialNo().hashCode();
      }
      if (hasClientOrderTime()) {
        hash = (37 * hash) + CLIENTORDERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getClientOrderTime().hashCode();
      }
      if (hasClientType()) {
        hash = (37 * hash) + CLIENTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getClientType();
      }
      if (hasLoginID()) {
        hash = (37 * hash) + LOGINID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLoginID());
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasOperatorID()) {
        hash = (37 * hash) + OPERATORID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOperatorID());
      }
      if (hasOrderID()) {
        hash = (37 * hash) + ORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOrderID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelCancelLockReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelCancelLockReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelCancelLockReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelCancelLockReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelCancelLockReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelCancelLockReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelCancelLockReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelCancelLockReq 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 MSIM.ChannelCancelLockReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelCancelLockReq 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 MSIM.ChannelCancelLockReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelCancelLockReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelCancelLockReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 通道撤销锁仓请求 0 3 45
     * </pre>
     *
     * Protobuf type {@code ChannelCancelLockReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelCancelLockReq)
        MSIM.ChannelCancelLockReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelCancelLockReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelCancelLockReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelCancelLockReq.class, MSIM.ChannelCancelLockReq.Builder.class);
      }

      // Construct using MSIM.ChannelCancelLockReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        clientSerialNo_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        clientOrderTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        clientType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        loginID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        operatorID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000040);
        orderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelCancelLockReq_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelCancelLockReq getDefaultInstanceForType() {
        return MSIM.ChannelCancelLockReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelCancelLockReq build() {
        MSIM.ChannelCancelLockReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelCancelLockReq buildPartial() {
        MSIM.ChannelCancelLockReq result = new MSIM.ChannelCancelLockReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.clientSerialNo_ = clientSerialNo_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.clientOrderTime_ = clientOrderTime_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.clientType_ = clientType_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.loginID_ = loginID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.operatorID_ = operatorID_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.orderID_ = orderID_;
          to_bitField0_ |= 0x00000080;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelCancelLockReq) {
          return mergeFrom((MSIM.ChannelCancelLockReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelCancelLockReq other) {
        if (other == MSIM.ChannelCancelLockReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasClientSerialNo()) {
          bitField0_ |= 0x00000002;
          clientSerialNo_ = other.clientSerialNo_;
          onChanged();
        }
        if (other.hasClientOrderTime()) {
          bitField0_ |= 0x00000004;
          clientOrderTime_ = other.clientOrderTime_;
          onChanged();
        }
        if (other.hasClientType()) {
          setClientType(other.getClientType());
        }
        if (other.hasLoginID()) {
          setLoginID(other.getLoginID());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasOperatorID()) {
          setOperatorID(other.getOperatorID());
        }
        if (other.hasOrderID()) {
          setOrderID(other.getOrderID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelCancelLockReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelCancelLockReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.lang.Object clientSerialNo_ = "";
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return Whether the clientSerialNo field is set.
       */
      public boolean hasClientSerialNo() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return The clientSerialNo.
       */
      public java.lang.String getClientSerialNo() {
        java.lang.Object ref = clientSerialNo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientSerialNo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return The bytes for clientSerialNo.
       */
      public com.google.protobuf.ByteString
          getClientSerialNoBytes() {
        java.lang.Object ref = clientSerialNo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientSerialNo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @param value The clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialNo() {
        bitField0_ = (bitField0_ & ~0x00000002);
        clientSerialNo_ = getDefaultInstance().getClientSerialNo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @param value The bytes for clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clientOrderTime_ = "";
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return Whether the clientOrderTime field is set.
       */
      public boolean hasClientOrderTime() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The clientOrderTime.
       */
      public java.lang.String getClientOrderTime() {
        java.lang.Object ref = clientOrderTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientOrderTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The bytes for clientOrderTime.
       */
      public com.google.protobuf.ByteString
          getClientOrderTimeBytes() {
        java.lang.Object ref = clientOrderTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientOrderTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientOrderTime() {
        bitField0_ = (bitField0_ & ~0x00000004);
        clientOrderTime_ = getDefaultInstance().getClientOrderTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The bytes for clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }

      private int clientType_ ;
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return Whether the clientType field is set.
       */
      @java.lang.Override
      public boolean hasClientType() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return The clientType.
       */
      @java.lang.Override
      public int getClientType() {
        return clientType_;
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @param value The clientType to set.
       * @return This builder for chaining.
       */
      public Builder setClientType(int value) {
        bitField0_ |= 0x00000008;
        clientType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        clientType_ = 0;
        onChanged();
        return this;
      }

      private long loginID_ ;
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return Whether the loginID field is set.
       */
      @java.lang.Override
      public boolean hasLoginID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return The loginID.
       */
      @java.lang.Override
      public long getLoginID() {
        return loginID_;
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @param value The loginID to set.
       * @return This builder for chaining.
       */
      public Builder setLoginID(long value) {
        bitField0_ |= 0x00000010;
        loginID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        loginID_ = 0L;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000020;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000020);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private long operatorID_ ;
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 7;</code>
       * @return Whether the operatorID field is set.
       */
      @java.lang.Override
      public boolean hasOperatorID() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 7;</code>
       * @return The operatorID.
       */
      @java.lang.Override
      public long getOperatorID() {
        return operatorID_;
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 7;</code>
       * @param value The operatorID to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorID(long value) {
        bitField0_ |= 0x00000040;
        operatorID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        operatorID_ = 0L;
        onChanged();
        return this;
      }

      private long orderID_ ;
      /**
       * <pre>
       * uint64 锁仓单据ID
       * </pre>
       *
       * <code>optional uint64 OrderID = 8;</code>
       * @return Whether the orderID field is set.
       */
      @java.lang.Override
      public boolean hasOrderID() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * uint64 锁仓单据ID
       * </pre>
       *
       * <code>optional uint64 OrderID = 8;</code>
       * @return The orderID.
       */
      @java.lang.Override
      public long getOrderID() {
        return orderID_;
      }
      /**
       * <pre>
       * uint64 锁仓单据ID
       * </pre>
       *
       * <code>optional uint64 OrderID = 8;</code>
       * @param value The orderID to set.
       * @return This builder for chaining.
       */
      public Builder setOrderID(long value) {
        bitField0_ |= 0x00000080;
        orderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 锁仓单据ID
       * </pre>
       *
       * <code>optional uint64 OrderID = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderID() {
        bitField0_ = (bitField0_ & ~0x00000080);
        orderID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelCancelLockReq)
    }

    // @@protoc_insertion_point(class_scope:ChannelCancelLockReq)
    private static final MSIM.ChannelCancelLockReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelCancelLockReq();
    }

    public static MSIM.ChannelCancelLockReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelCancelLockReq>
        PARSER = new com.google.protobuf.AbstractParser<ChannelCancelLockReq>() {
      @java.lang.Override
      public ChannelCancelLockReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelCancelLockReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelCancelLockReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelCancelLockRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelCancelLockRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return Whether the orderID field is set.
     */
    boolean hasOrderID();
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return The orderID.
     */
    long getOrderID();

    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return Whether the orderTime field is set.
     */
    boolean hasOrderTime();
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The orderTime.
     */
    java.lang.String getOrderTime();
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The bytes for orderTime.
     */
    com.google.protobuf.ByteString
        getOrderTimeBytes();
  }
  /**
   * <pre>
   * 通道撤销锁仓应答 0 3 46
   * </pre>
   *
   * Protobuf type {@code ChannelCancelLockRsp}
   */
  public static final class ChannelCancelLockRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelCancelLockRsp)
      ChannelCancelLockRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelCancelLockRsp.newBuilder() to construct.
    private ChannelCancelLockRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelCancelLockRsp() {
      retDesc_ = "";
      orderTime_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelCancelLockRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelCancelLockRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              orderID_ = input.readUInt64();
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              orderTime_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelCancelLockRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelCancelLockRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelCancelLockRsp.class, MSIM.ChannelCancelLockRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ORDERID_FIELD_NUMBER = 4;
    private long orderID_;
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return Whether the orderID field is set.
     */
    @java.lang.Override
    public boolean hasOrderID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return The orderID.
     */
    @java.lang.Override
    public long getOrderID() {
      return orderID_;
    }

    public static final int ORDERTIME_FIELD_NUMBER = 5;
    private volatile java.lang.Object orderTime_;
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return Whether the orderTime field is set.
     */
    @java.lang.Override
    public boolean hasOrderTime() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The orderTime.
     */
    @java.lang.Override
    public java.lang.String getOrderTime() {
      java.lang.Object ref = orderTime_;
      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();
        if (bs.isValidUtf8()) {
          orderTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The bytes for orderTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOrderTimeBytes() {
      java.lang.Object ref = orderTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        orderTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, orderID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, orderTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, orderID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, orderTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelCancelLockRsp)) {
        return super.equals(obj);
      }
      MSIM.ChannelCancelLockRsp other = (MSIM.ChannelCancelLockRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasOrderID() != other.hasOrderID()) return false;
      if (hasOrderID()) {
        if (getOrderID()
            != other.getOrderID()) return false;
      }
      if (hasOrderTime() != other.hasOrderTime()) return false;
      if (hasOrderTime()) {
        if (!getOrderTime()
            .equals(other.getOrderTime())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasOrderID()) {
        hash = (37 * hash) + ORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOrderID());
      }
      if (hasOrderTime()) {
        hash = (37 * hash) + ORDERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getOrderTime().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelCancelLockRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelCancelLockRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelCancelLockRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelCancelLockRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelCancelLockRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelCancelLockRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelCancelLockRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelCancelLockRsp 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 MSIM.ChannelCancelLockRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelCancelLockRsp 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 MSIM.ChannelCancelLockRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelCancelLockRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelCancelLockRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 通道撤销锁仓应答 0 3 46
     * </pre>
     *
     * Protobuf type {@code ChannelCancelLockRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelCancelLockRsp)
        MSIM.ChannelCancelLockRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelCancelLockRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelCancelLockRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelCancelLockRsp.class, MSIM.ChannelCancelLockRsp.Builder.class);
      }

      // Construct using MSIM.ChannelCancelLockRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        orderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        orderTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelCancelLockRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelCancelLockRsp getDefaultInstanceForType() {
        return MSIM.ChannelCancelLockRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelCancelLockRsp build() {
        MSIM.ChannelCancelLockRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelCancelLockRsp buildPartial() {
        MSIM.ChannelCancelLockRsp result = new MSIM.ChannelCancelLockRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.orderID_ = orderID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.orderTime_ = orderTime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelCancelLockRsp) {
          return mergeFrom((MSIM.ChannelCancelLockRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelCancelLockRsp other) {
        if (other == MSIM.ChannelCancelLockRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasOrderID()) {
          setOrderID(other.getOrderID());
        }
        if (other.hasOrderTime()) {
          bitField0_ |= 0x00000010;
          orderTime_ = other.orderTime_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelCancelLockRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelCancelLockRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long orderID_ ;
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return Whether the orderID field is set.
       */
      @java.lang.Override
      public boolean hasOrderID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return The orderID.
       */
      @java.lang.Override
      public long getOrderID() {
        return orderID_;
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @param value The orderID to set.
       * @return This builder for chaining.
       */
      public Builder setOrderID(long value) {
        bitField0_ |= 0x00000008;
        orderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        orderID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object orderTime_ = "";
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return Whether the orderTime field is set.
       */
      public boolean hasOrderTime() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return The orderTime.
       */
      public java.lang.String getOrderTime() {
        java.lang.Object ref = orderTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            orderTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return The bytes for orderTime.
       */
      public com.google.protobuf.ByteString
          getOrderTimeBytes() {
        java.lang.Object ref = orderTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          orderTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @param value The orderTime to set.
       * @return This builder for chaining.
       */
      public Builder setOrderTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        orderTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderTime() {
        bitField0_ = (bitField0_ & ~0x00000010);
        orderTime_ = getDefaultInstance().getOrderTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @param value The bytes for orderTime to set.
       * @return This builder for chaining.
       */
      public Builder setOrderTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        orderTime_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelCancelLockRsp)
    }

    // @@protoc_insertion_point(class_scope:ChannelCancelLockRsp)
    private static final MSIM.ChannelCancelLockRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelCancelLockRsp();
    }

    public static MSIM.ChannelCancelLockRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelCancelLockRsp>
        PARSER = new com.google.protobuf.AbstractParser<ChannelCancelLockRsp>() {
      @java.lang.Override
      public ChannelCancelLockRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelCancelLockRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelCancelLockRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelSPSLOrderReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelSPSLOrderReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 2;</code>
     * @return Whether the clientType field is set.
     */
    boolean hasClientType();
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 2;</code>
     * @return The clientType.
     */
    int getClientType();

    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 3;</code>
     * @return Whether the loginID field is set.
     */
    boolean hasLoginID();
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 3;</code>
     * @return The loginID.
     */
    long getLoginID();

    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 4;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 4;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 5;</code>
     * @return Whether the goodsID field is set.
     */
    boolean hasGoodsID();
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 5;</code>
     * @return The goodsID.
     */
    int getGoodsID();

    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 6;</code>
     * @return Whether the marketID field is set.
     */
    boolean hasMarketID();
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 6;</code>
     * @return The marketID.
     */
    int getMarketID();

    /**
     * <pre>
     * int32 有效类型：1 - 当日有效 4 - 一直有效
     * </pre>
     *
     * <code>optional int32 ValidType = 7;</code>
     * @return Whether the validType field is set.
     */
    boolean hasValidType();
    /**
     * <pre>
     * int32 有效类型：1 - 当日有效 4 - 一直有效
     * </pre>
     *
     * <code>optional int32 ValidType = 7;</code>
     * @return The validType.
     */
    int getValidType();

    /**
     * <pre>
     * uint32 操作类型: 1 - 止盈 2 - 止损 3 - 撤单
     * </pre>
     *
     * <code>optional uint32 OperateType = 8;</code>
     * @return Whether the operateType field is set.
     */
    boolean hasOperateType();
    /**
     * <pre>
     * uint32 操作类型: 1 - 止盈 2 - 止损 3 - 撤单
     * </pre>
     *
     * <code>optional uint32 OperateType = 8;</code>
     * @return The operateType.
     */
    int getOperateType();

    /**
     * <pre>
     * uint32 单据委托来源 - 1:客户端
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 9;</code>
     * @return Whether the orderSrc field is set.
     */
    boolean hasOrderSrc();
    /**
     * <pre>
     * uint32 单据委托来源 - 1:客户端
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 9;</code>
     * @return The orderSrc.
     */
    int getOrderSrc();

    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 10;</code>
     * @return Whether the orderQty field is set.
     */
    boolean hasOrderQty();
    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 10;</code>
     * @return The orderQty.
     */
    long getOrderQty();

    /**
     * <pre>
     * uint32 买卖方向(买卖 - 0:买 1:卖 )
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 11;</code>
     * @return Whether the buyOrSell field is set.
     */
    boolean hasBuyOrSell();
    /**
     * <pre>
     * uint32 买卖方向(买卖 - 0:买 1:卖 )
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 11;</code>
     * @return The buyOrSell.
     */
    int getBuyOrSell();

    /**
     * <pre>
     * uint64 关联单号(撤单时填写)
     * </pre>
     *
     * <code>optional uint64 RelatedID = 12;</code>
     * @return Whether the relatedID field is set.
     */
    boolean hasRelatedID();
    /**
     * <pre>
     * uint64 关联单号(撤单时填写)
     * </pre>
     *
     * <code>optional uint64 RelatedID = 12;</code>
     * @return The relatedID.
     */
    long getRelatedID();

    /**
     * <pre>
     * double 止盈价格
     * </pre>
     *
     * <code>optional double SpPrice = 13;</code>
     * @return Whether the spPrice field is set.
     */
    boolean hasSpPrice();
    /**
     * <pre>
     * double 止盈价格
     * </pre>
     *
     * <code>optional double SpPrice = 13;</code>
     * @return The spPrice.
     */
    double getSpPrice();

    /**
     * <pre>
     * double 止损价格
     * </pre>
     *
     * <code>optional double SlPrice = 14;</code>
     * @return Whether the slPrice field is set.
     */
    boolean hasSlPrice();
    /**
     * <pre>
     * double 止损价格
     * </pre>
     *
     * <code>optional double SlPrice = 14;</code>
     * @return The slPrice.
     */
    double getSlPrice();

    /**
     * <pre>
     * uint32 价格类型: 1 - 最新价 2 - 对手价 3 - 市价
     * </pre>
     *
     * <code>optional uint32 PriceType = 15;</code>
     * @return Whether the priceType field is set.
     */
    boolean hasPriceType();
    /**
     * <pre>
     * uint32 价格类型: 1 - 最新价 2 - 对手价 3 - 市价
     * </pre>
     *
     * <code>optional uint32 PriceType = 15;</code>
     * @return The priceType.
     */
    int getPriceType();

    /**
     * <pre>
     * uint32 触发条件: 1 - 触发价 2 - 追踪价差
     * </pre>
     *
     * <code>optional uint32 TriggerType = 16;</code>
     * @return Whether the triggerType field is set.
     */
    boolean hasTriggerType();
    /**
     * <pre>
     * uint32 触发条件: 1 - 触发价 2 - 追踪价差
     * </pre>
     *
     * <code>optional uint32 TriggerType = 16;</code>
     * @return The triggerType.
     */
    int getTriggerType();
  }
  /**
   * <pre>
   * 止盈止损请求 0 3 67
   * </pre>
   *
   * Protobuf type {@code ChannelSPSLOrderReq}
   */
  public static final class ChannelSPSLOrderReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelSPSLOrderReq)
      ChannelSPSLOrderReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelSPSLOrderReq.newBuilder() to construct.
    private ChannelSPSLOrderReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelSPSLOrderReq() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelSPSLOrderReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelSPSLOrderReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              clientType_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              loginID_ = input.readUInt64();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              accountID_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              goodsID_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              marketID_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              validType_ = input.readInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              operateType_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              orderSrc_ = input.readUInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              orderQty_ = input.readUInt64();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              buyOrSell_ = input.readUInt32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              relatedID_ = input.readUInt64();
              break;
            }
            case 105: {
              bitField0_ |= 0x00001000;
              spPrice_ = input.readDouble();
              break;
            }
            case 113: {
              bitField0_ |= 0x00002000;
              slPrice_ = input.readDouble();
              break;
            }
            case 120: {
              bitField0_ |= 0x00004000;
              priceType_ = input.readUInt32();
              break;
            }
            case 128: {
              bitField0_ |= 0x00008000;
              triggerType_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelSPSLOrderReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelSPSLOrderReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelSPSLOrderReq.class, MSIM.ChannelSPSLOrderReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int CLIENTTYPE_FIELD_NUMBER = 2;
    private int clientType_;
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 2;</code>
     * @return Whether the clientType field is set.
     */
    @java.lang.Override
    public boolean hasClientType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 2;</code>
     * @return The clientType.
     */
    @java.lang.Override
    public int getClientType() {
      return clientType_;
    }

    public static final int LOGINID_FIELD_NUMBER = 3;
    private long loginID_;
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 3;</code>
     * @return Whether the loginID field is set.
     */
    @java.lang.Override
    public boolean hasLoginID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 3;</code>
     * @return The loginID.
     */
    @java.lang.Override
    public long getLoginID() {
      return loginID_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 4;
    private long accountID_;
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 4;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 4;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int GOODSID_FIELD_NUMBER = 5;
    private int goodsID_;
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 5;</code>
     * @return Whether the goodsID field is set.
     */
    @java.lang.Override
    public boolean hasGoodsID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 5;</code>
     * @return The goodsID.
     */
    @java.lang.Override
    public int getGoodsID() {
      return goodsID_;
    }

    public static final int MARKETID_FIELD_NUMBER = 6;
    private int marketID_;
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 6;</code>
     * @return Whether the marketID field is set.
     */
    @java.lang.Override
    public boolean hasMarketID() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 6;</code>
     * @return The marketID.
     */
    @java.lang.Override
    public int getMarketID() {
      return marketID_;
    }

    public static final int VALIDTYPE_FIELD_NUMBER = 7;
    private int validType_;
    /**
     * <pre>
     * int32 有效类型：1 - 当日有效 4 - 一直有效
     * </pre>
     *
     * <code>optional int32 ValidType = 7;</code>
     * @return Whether the validType field is set.
     */
    @java.lang.Override
    public boolean hasValidType() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * int32 有效类型：1 - 当日有效 4 - 一直有效
     * </pre>
     *
     * <code>optional int32 ValidType = 7;</code>
     * @return The validType.
     */
    @java.lang.Override
    public int getValidType() {
      return validType_;
    }

    public static final int OPERATETYPE_FIELD_NUMBER = 8;
    private int operateType_;
    /**
     * <pre>
     * uint32 操作类型: 1 - 止盈 2 - 止损 3 - 撤单
     * </pre>
     *
     * <code>optional uint32 OperateType = 8;</code>
     * @return Whether the operateType field is set.
     */
    @java.lang.Override
    public boolean hasOperateType() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * uint32 操作类型: 1 - 止盈 2 - 止损 3 - 撤单
     * </pre>
     *
     * <code>optional uint32 OperateType = 8;</code>
     * @return The operateType.
     */
    @java.lang.Override
    public int getOperateType() {
      return operateType_;
    }

    public static final int ORDERSRC_FIELD_NUMBER = 9;
    private int orderSrc_;
    /**
     * <pre>
     * uint32 单据委托来源 - 1:客户端
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 9;</code>
     * @return Whether the orderSrc field is set.
     */
    @java.lang.Override
    public boolean hasOrderSrc() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * uint32 单据委托来源 - 1:客户端
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 9;</code>
     * @return The orderSrc.
     */
    @java.lang.Override
    public int getOrderSrc() {
      return orderSrc_;
    }

    public static final int ORDERQTY_FIELD_NUMBER = 10;
    private long orderQty_;
    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 10;</code>
     * @return Whether the orderQty field is set.
     */
    @java.lang.Override
    public boolean hasOrderQty() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 10;</code>
     * @return The orderQty.
     */
    @java.lang.Override
    public long getOrderQty() {
      return orderQty_;
    }

    public static final int BUYORSELL_FIELD_NUMBER = 11;
    private int buyOrSell_;
    /**
     * <pre>
     * uint32 买卖方向(买卖 - 0:买 1:卖 )
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 11;</code>
     * @return Whether the buyOrSell field is set.
     */
    @java.lang.Override
    public boolean hasBuyOrSell() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * uint32 买卖方向(买卖 - 0:买 1:卖 )
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 11;</code>
     * @return The buyOrSell.
     */
    @java.lang.Override
    public int getBuyOrSell() {
      return buyOrSell_;
    }

    public static final int RELATEDID_FIELD_NUMBER = 12;
    private long relatedID_;
    /**
     * <pre>
     * uint64 关联单号(撤单时填写)
     * </pre>
     *
     * <code>optional uint64 RelatedID = 12;</code>
     * @return Whether the relatedID field is set.
     */
    @java.lang.Override
    public boolean hasRelatedID() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * uint64 关联单号(撤单时填写)
     * </pre>
     *
     * <code>optional uint64 RelatedID = 12;</code>
     * @return The relatedID.
     */
    @java.lang.Override
    public long getRelatedID() {
      return relatedID_;
    }

    public static final int SPPRICE_FIELD_NUMBER = 13;
    private double spPrice_;
    /**
     * <pre>
     * double 止盈价格
     * </pre>
     *
     * <code>optional double SpPrice = 13;</code>
     * @return Whether the spPrice field is set.
     */
    @java.lang.Override
    public boolean hasSpPrice() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * double 止盈价格
     * </pre>
     *
     * <code>optional double SpPrice = 13;</code>
     * @return The spPrice.
     */
    @java.lang.Override
    public double getSpPrice() {
      return spPrice_;
    }

    public static final int SLPRICE_FIELD_NUMBER = 14;
    private double slPrice_;
    /**
     * <pre>
     * double 止损价格
     * </pre>
     *
     * <code>optional double SlPrice = 14;</code>
     * @return Whether the slPrice field is set.
     */
    @java.lang.Override
    public boolean hasSlPrice() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * double 止损价格
     * </pre>
     *
     * <code>optional double SlPrice = 14;</code>
     * @return The slPrice.
     */
    @java.lang.Override
    public double getSlPrice() {
      return slPrice_;
    }

    public static final int PRICETYPE_FIELD_NUMBER = 15;
    private int priceType_;
    /**
     * <pre>
     * uint32 价格类型: 1 - 最新价 2 - 对手价 3 - 市价
     * </pre>
     *
     * <code>optional uint32 PriceType = 15;</code>
     * @return Whether the priceType field is set.
     */
    @java.lang.Override
    public boolean hasPriceType() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * uint32 价格类型: 1 - 最新价 2 - 对手价 3 - 市价
     * </pre>
     *
     * <code>optional uint32 PriceType = 15;</code>
     * @return The priceType.
     */
    @java.lang.Override
    public int getPriceType() {
      return priceType_;
    }

    public static final int TRIGGERTYPE_FIELD_NUMBER = 16;
    private int triggerType_;
    /**
     * <pre>
     * uint32 触发条件: 1 - 触发价 2 - 追踪价差
     * </pre>
     *
     * <code>optional uint32 TriggerType = 16;</code>
     * @return Whether the triggerType field is set.
     */
    @java.lang.Override
    public boolean hasTriggerType() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * uint32 触发条件: 1 - 触发价 2 - 追踪价差
     * </pre>
     *
     * <code>optional uint32 TriggerType = 16;</code>
     * @return The triggerType.
     */
    @java.lang.Override
    public int getTriggerType() {
      return triggerType_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, clientType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt64(3, loginID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, accountID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, goodsID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, marketID_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt32(7, validType_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeUInt32(8, operateType_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeUInt32(9, orderSrc_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeUInt64(10, orderQty_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeUInt32(11, buyOrSell_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeUInt64(12, relatedID_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeDouble(13, spPrice_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeDouble(14, slPrice_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeUInt32(15, priceType_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeUInt32(16, triggerType_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, clientType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(3, loginID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, accountID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, goodsID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, marketID_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, validType_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, operateType_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, orderSrc_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(10, orderQty_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, buyOrSell_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(12, relatedID_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(13, spPrice_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(14, slPrice_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(15, priceType_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(16, triggerType_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelSPSLOrderReq)) {
        return super.equals(obj);
      }
      MSIM.ChannelSPSLOrderReq other = (MSIM.ChannelSPSLOrderReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasClientType() != other.hasClientType()) return false;
      if (hasClientType()) {
        if (getClientType()
            != other.getClientType()) return false;
      }
      if (hasLoginID() != other.hasLoginID()) return false;
      if (hasLoginID()) {
        if (getLoginID()
            != other.getLoginID()) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasGoodsID() != other.hasGoodsID()) return false;
      if (hasGoodsID()) {
        if (getGoodsID()
            != other.getGoodsID()) return false;
      }
      if (hasMarketID() != other.hasMarketID()) return false;
      if (hasMarketID()) {
        if (getMarketID()
            != other.getMarketID()) return false;
      }
      if (hasValidType() != other.hasValidType()) return false;
      if (hasValidType()) {
        if (getValidType()
            != other.getValidType()) return false;
      }
      if (hasOperateType() != other.hasOperateType()) return false;
      if (hasOperateType()) {
        if (getOperateType()
            != other.getOperateType()) return false;
      }
      if (hasOrderSrc() != other.hasOrderSrc()) return false;
      if (hasOrderSrc()) {
        if (getOrderSrc()
            != other.getOrderSrc()) return false;
      }
      if (hasOrderQty() != other.hasOrderQty()) return false;
      if (hasOrderQty()) {
        if (getOrderQty()
            != other.getOrderQty()) return false;
      }
      if (hasBuyOrSell() != other.hasBuyOrSell()) return false;
      if (hasBuyOrSell()) {
        if (getBuyOrSell()
            != other.getBuyOrSell()) return false;
      }
      if (hasRelatedID() != other.hasRelatedID()) return false;
      if (hasRelatedID()) {
        if (getRelatedID()
            != other.getRelatedID()) return false;
      }
      if (hasSpPrice() != other.hasSpPrice()) return false;
      if (hasSpPrice()) {
        if (java.lang.Double.doubleToLongBits(getSpPrice())
            != java.lang.Double.doubleToLongBits(
                other.getSpPrice())) return false;
      }
      if (hasSlPrice() != other.hasSlPrice()) return false;
      if (hasSlPrice()) {
        if (java.lang.Double.doubleToLongBits(getSlPrice())
            != java.lang.Double.doubleToLongBits(
                other.getSlPrice())) return false;
      }
      if (hasPriceType() != other.hasPriceType()) return false;
      if (hasPriceType()) {
        if (getPriceType()
            != other.getPriceType()) return false;
      }
      if (hasTriggerType() != other.hasTriggerType()) return false;
      if (hasTriggerType()) {
        if (getTriggerType()
            != other.getTriggerType()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasClientType()) {
        hash = (37 * hash) + CLIENTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getClientType();
      }
      if (hasLoginID()) {
        hash = (37 * hash) + LOGINID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLoginID());
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasGoodsID()) {
        hash = (37 * hash) + GOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsID();
      }
      if (hasMarketID()) {
        hash = (37 * hash) + MARKETID_FIELD_NUMBER;
        hash = (53 * hash) + getMarketID();
      }
      if (hasValidType()) {
        hash = (37 * hash) + VALIDTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getValidType();
      }
      if (hasOperateType()) {
        hash = (37 * hash) + OPERATETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOperateType();
      }
      if (hasOrderSrc()) {
        hash = (37 * hash) + ORDERSRC_FIELD_NUMBER;
        hash = (53 * hash) + getOrderSrc();
      }
      if (hasOrderQty()) {
        hash = (37 * hash) + ORDERQTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOrderQty());
      }
      if (hasBuyOrSell()) {
        hash = (37 * hash) + BUYORSELL_FIELD_NUMBER;
        hash = (53 * hash) + getBuyOrSell();
      }
      if (hasRelatedID()) {
        hash = (37 * hash) + RELATEDID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRelatedID());
      }
      if (hasSpPrice()) {
        hash = (37 * hash) + SPPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getSpPrice()));
      }
      if (hasSlPrice()) {
        hash = (37 * hash) + SLPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getSlPrice()));
      }
      if (hasPriceType()) {
        hash = (37 * hash) + PRICETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getPriceType();
      }
      if (hasTriggerType()) {
        hash = (37 * hash) + TRIGGERTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getTriggerType();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelSPSLOrderReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelSPSLOrderReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelSPSLOrderReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelSPSLOrderReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelSPSLOrderReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelSPSLOrderReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelSPSLOrderReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelSPSLOrderReq 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 MSIM.ChannelSPSLOrderReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelSPSLOrderReq 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 MSIM.ChannelSPSLOrderReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelSPSLOrderReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelSPSLOrderReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 止盈止损请求 0 3 67
     * </pre>
     *
     * Protobuf type {@code ChannelSPSLOrderReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelSPSLOrderReq)
        MSIM.ChannelSPSLOrderReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelSPSLOrderReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelSPSLOrderReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelSPSLOrderReq.class, MSIM.ChannelSPSLOrderReq.Builder.class);
      }

      // Construct using MSIM.ChannelSPSLOrderReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        clientType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        loginID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        goodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        marketID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        validType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        operateType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        orderSrc_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        orderQty_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000200);
        buyOrSell_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        relatedID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000800);
        spPrice_ = 0D;
        bitField0_ = (bitField0_ & ~0x00001000);
        slPrice_ = 0D;
        bitField0_ = (bitField0_ & ~0x00002000);
        priceType_ = 0;
        bitField0_ = (bitField0_ & ~0x00004000);
        triggerType_ = 0;
        bitField0_ = (bitField0_ & ~0x00008000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelSPSLOrderReq_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelSPSLOrderReq getDefaultInstanceForType() {
        return MSIM.ChannelSPSLOrderReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelSPSLOrderReq build() {
        MSIM.ChannelSPSLOrderReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelSPSLOrderReq buildPartial() {
        MSIM.ChannelSPSLOrderReq result = new MSIM.ChannelSPSLOrderReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.clientType_ = clientType_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.loginID_ = loginID_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.goodsID_ = goodsID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.marketID_ = marketID_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.validType_ = validType_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.operateType_ = operateType_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.orderSrc_ = orderSrc_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.orderQty_ = orderQty_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.buyOrSell_ = buyOrSell_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.relatedID_ = relatedID_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.spPrice_ = spPrice_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.slPrice_ = slPrice_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.priceType_ = priceType_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.triggerType_ = triggerType_;
          to_bitField0_ |= 0x00008000;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelSPSLOrderReq) {
          return mergeFrom((MSIM.ChannelSPSLOrderReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelSPSLOrderReq other) {
        if (other == MSIM.ChannelSPSLOrderReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasClientType()) {
          setClientType(other.getClientType());
        }
        if (other.hasLoginID()) {
          setLoginID(other.getLoginID());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasGoodsID()) {
          setGoodsID(other.getGoodsID());
        }
        if (other.hasMarketID()) {
          setMarketID(other.getMarketID());
        }
        if (other.hasValidType()) {
          setValidType(other.getValidType());
        }
        if (other.hasOperateType()) {
          setOperateType(other.getOperateType());
        }
        if (other.hasOrderSrc()) {
          setOrderSrc(other.getOrderSrc());
        }
        if (other.hasOrderQty()) {
          setOrderQty(other.getOrderQty());
        }
        if (other.hasBuyOrSell()) {
          setBuyOrSell(other.getBuyOrSell());
        }
        if (other.hasRelatedID()) {
          setRelatedID(other.getRelatedID());
        }
        if (other.hasSpPrice()) {
          setSpPrice(other.getSpPrice());
        }
        if (other.hasSlPrice()) {
          setSlPrice(other.getSlPrice());
        }
        if (other.hasPriceType()) {
          setPriceType(other.getPriceType());
        }
        if (other.hasTriggerType()) {
          setTriggerType(other.getTriggerType());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelSPSLOrderReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelSPSLOrderReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int clientType_ ;
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 2;</code>
       * @return Whether the clientType field is set.
       */
      @java.lang.Override
      public boolean hasClientType() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 2;</code>
       * @return The clientType.
       */
      @java.lang.Override
      public int getClientType() {
        return clientType_;
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 2;</code>
       * @param value The clientType to set.
       * @return This builder for chaining.
       */
      public Builder setClientType(int value) {
        bitField0_ |= 0x00000002;
        clientType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        clientType_ = 0;
        onChanged();
        return this;
      }

      private long loginID_ ;
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 3;</code>
       * @return Whether the loginID field is set.
       */
      @java.lang.Override
      public boolean hasLoginID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 3;</code>
       * @return The loginID.
       */
      @java.lang.Override
      public long getLoginID() {
        return loginID_;
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 3;</code>
       * @param value The loginID to set.
       * @return This builder for chaining.
       */
      public Builder setLoginID(long value) {
        bitField0_ |= 0x00000004;
        loginID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        loginID_ = 0L;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 4;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 4;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 4;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000008;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private int goodsID_ ;
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 5;</code>
       * @return Whether the goodsID field is set.
       */
      @java.lang.Override
      public boolean hasGoodsID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 5;</code>
       * @return The goodsID.
       */
      @java.lang.Override
      public int getGoodsID() {
        return goodsID_;
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 5;</code>
       * @param value The goodsID to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsID(int value) {
        bitField0_ |= 0x00000010;
        goodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        goodsID_ = 0;
        onChanged();
        return this;
      }

      private int marketID_ ;
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 6;</code>
       * @return Whether the marketID field is set.
       */
      @java.lang.Override
      public boolean hasMarketID() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 6;</code>
       * @return The marketID.
       */
      @java.lang.Override
      public int getMarketID() {
        return marketID_;
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 6;</code>
       * @param value The marketID to set.
       * @return This builder for chaining.
       */
      public Builder setMarketID(int value) {
        bitField0_ |= 0x00000020;
        marketID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearMarketID() {
        bitField0_ = (bitField0_ & ~0x00000020);
        marketID_ = 0;
        onChanged();
        return this;
      }

      private int validType_ ;
      /**
       * <pre>
       * int32 有效类型：1 - 当日有效 4 - 一直有效
       * </pre>
       *
       * <code>optional int32 ValidType = 7;</code>
       * @return Whether the validType field is set.
       */
      @java.lang.Override
      public boolean hasValidType() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * int32 有效类型：1 - 当日有效 4 - 一直有效
       * </pre>
       *
       * <code>optional int32 ValidType = 7;</code>
       * @return The validType.
       */
      @java.lang.Override
      public int getValidType() {
        return validType_;
      }
      /**
       * <pre>
       * int32 有效类型：1 - 当日有效 4 - 一直有效
       * </pre>
       *
       * <code>optional int32 ValidType = 7;</code>
       * @param value The validType to set.
       * @return This builder for chaining.
       */
      public Builder setValidType(int value) {
        bitField0_ |= 0x00000040;
        validType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 有效类型：1 - 当日有效 4 - 一直有效
       * </pre>
       *
       * <code>optional int32 ValidType = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearValidType() {
        bitField0_ = (bitField0_ & ~0x00000040);
        validType_ = 0;
        onChanged();
        return this;
      }

      private int operateType_ ;
      /**
       * <pre>
       * uint32 操作类型: 1 - 止盈 2 - 止损 3 - 撤单
       * </pre>
       *
       * <code>optional uint32 OperateType = 8;</code>
       * @return Whether the operateType field is set.
       */
      @java.lang.Override
      public boolean hasOperateType() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * uint32 操作类型: 1 - 止盈 2 - 止损 3 - 撤单
       * </pre>
       *
       * <code>optional uint32 OperateType = 8;</code>
       * @return The operateType.
       */
      @java.lang.Override
      public int getOperateType() {
        return operateType_;
      }
      /**
       * <pre>
       * uint32 操作类型: 1 - 止盈 2 - 止损 3 - 撤单
       * </pre>
       *
       * <code>optional uint32 OperateType = 8;</code>
       * @param value The operateType to set.
       * @return This builder for chaining.
       */
      public Builder setOperateType(int value) {
        bitField0_ |= 0x00000080;
        operateType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 操作类型: 1 - 止盈 2 - 止损 3 - 撤单
       * </pre>
       *
       * <code>optional uint32 OperateType = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateType() {
        bitField0_ = (bitField0_ & ~0x00000080);
        operateType_ = 0;
        onChanged();
        return this;
      }

      private int orderSrc_ ;
      /**
       * <pre>
       * uint32 单据委托来源 - 1:客户端
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 9;</code>
       * @return Whether the orderSrc field is set.
       */
      @java.lang.Override
      public boolean hasOrderSrc() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * uint32 单据委托来源 - 1:客户端
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 9;</code>
       * @return The orderSrc.
       */
      @java.lang.Override
      public int getOrderSrc() {
        return orderSrc_;
      }
      /**
       * <pre>
       * uint32 单据委托来源 - 1:客户端
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 9;</code>
       * @param value The orderSrc to set.
       * @return This builder for chaining.
       */
      public Builder setOrderSrc(int value) {
        bitField0_ |= 0x00000100;
        orderSrc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 单据委托来源 - 1:客户端
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderSrc() {
        bitField0_ = (bitField0_ & ~0x00000100);
        orderSrc_ = 0;
        onChanged();
        return this;
      }

      private long orderQty_ ;
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 10;</code>
       * @return Whether the orderQty field is set.
       */
      @java.lang.Override
      public boolean hasOrderQty() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 10;</code>
       * @return The orderQty.
       */
      @java.lang.Override
      public long getOrderQty() {
        return orderQty_;
      }
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 10;</code>
       * @param value The orderQty to set.
       * @return This builder for chaining.
       */
      public Builder setOrderQty(long value) {
        bitField0_ |= 0x00000200;
        orderQty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderQty() {
        bitField0_ = (bitField0_ & ~0x00000200);
        orderQty_ = 0L;
        onChanged();
        return this;
      }

      private int buyOrSell_ ;
      /**
       * <pre>
       * uint32 买卖方向(买卖 - 0:买 1:卖 )
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 11;</code>
       * @return Whether the buyOrSell field is set.
       */
      @java.lang.Override
      public boolean hasBuyOrSell() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * uint32 买卖方向(买卖 - 0:买 1:卖 )
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 11;</code>
       * @return The buyOrSell.
       */
      @java.lang.Override
      public int getBuyOrSell() {
        return buyOrSell_;
      }
      /**
       * <pre>
       * uint32 买卖方向(买卖 - 0:买 1:卖 )
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 11;</code>
       * @param value The buyOrSell to set.
       * @return This builder for chaining.
       */
      public Builder setBuyOrSell(int value) {
        bitField0_ |= 0x00000400;
        buyOrSell_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 买卖方向(买卖 - 0:买 1:卖 )
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearBuyOrSell() {
        bitField0_ = (bitField0_ & ~0x00000400);
        buyOrSell_ = 0;
        onChanged();
        return this;
      }

      private long relatedID_ ;
      /**
       * <pre>
       * uint64 关联单号(撤单时填写)
       * </pre>
       *
       * <code>optional uint64 RelatedID = 12;</code>
       * @return Whether the relatedID field is set.
       */
      @java.lang.Override
      public boolean hasRelatedID() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * uint64 关联单号(撤单时填写)
       * </pre>
       *
       * <code>optional uint64 RelatedID = 12;</code>
       * @return The relatedID.
       */
      @java.lang.Override
      public long getRelatedID() {
        return relatedID_;
      }
      /**
       * <pre>
       * uint64 关联单号(撤单时填写)
       * </pre>
       *
       * <code>optional uint64 RelatedID = 12;</code>
       * @param value The relatedID to set.
       * @return This builder for chaining.
       */
      public Builder setRelatedID(long value) {
        bitField0_ |= 0x00000800;
        relatedID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 关联单号(撤单时填写)
       * </pre>
       *
       * <code>optional uint64 RelatedID = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearRelatedID() {
        bitField0_ = (bitField0_ & ~0x00000800);
        relatedID_ = 0L;
        onChanged();
        return this;
      }

      private double spPrice_ ;
      /**
       * <pre>
       * double 止盈价格
       * </pre>
       *
       * <code>optional double SpPrice = 13;</code>
       * @return Whether the spPrice field is set.
       */
      @java.lang.Override
      public boolean hasSpPrice() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * double 止盈价格
       * </pre>
       *
       * <code>optional double SpPrice = 13;</code>
       * @return The spPrice.
       */
      @java.lang.Override
      public double getSpPrice() {
        return spPrice_;
      }
      /**
       * <pre>
       * double 止盈价格
       * </pre>
       *
       * <code>optional double SpPrice = 13;</code>
       * @param value The spPrice to set.
       * @return This builder for chaining.
       */
      public Builder setSpPrice(double value) {
        bitField0_ |= 0x00001000;
        spPrice_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double 止盈价格
       * </pre>
       *
       * <code>optional double SpPrice = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpPrice() {
        bitField0_ = (bitField0_ & ~0x00001000);
        spPrice_ = 0D;
        onChanged();
        return this;
      }

      private double slPrice_ ;
      /**
       * <pre>
       * double 止损价格
       * </pre>
       *
       * <code>optional double SlPrice = 14;</code>
       * @return Whether the slPrice field is set.
       */
      @java.lang.Override
      public boolean hasSlPrice() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * double 止损价格
       * </pre>
       *
       * <code>optional double SlPrice = 14;</code>
       * @return The slPrice.
       */
      @java.lang.Override
      public double getSlPrice() {
        return slPrice_;
      }
      /**
       * <pre>
       * double 止损价格
       * </pre>
       *
       * <code>optional double SlPrice = 14;</code>
       * @param value The slPrice to set.
       * @return This builder for chaining.
       */
      public Builder setSlPrice(double value) {
        bitField0_ |= 0x00002000;
        slPrice_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double 止损价格
       * </pre>
       *
       * <code>optional double SlPrice = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearSlPrice() {
        bitField0_ = (bitField0_ & ~0x00002000);
        slPrice_ = 0D;
        onChanged();
        return this;
      }

      private int priceType_ ;
      /**
       * <pre>
       * uint32 价格类型: 1 - 最新价 2 - 对手价 3 - 市价
       * </pre>
       *
       * <code>optional uint32 PriceType = 15;</code>
       * @return Whether the priceType field is set.
       */
      @java.lang.Override
      public boolean hasPriceType() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * uint32 价格类型: 1 - 最新价 2 - 对手价 3 - 市价
       * </pre>
       *
       * <code>optional uint32 PriceType = 15;</code>
       * @return The priceType.
       */
      @java.lang.Override
      public int getPriceType() {
        return priceType_;
      }
      /**
       * <pre>
       * uint32 价格类型: 1 - 最新价 2 - 对手价 3 - 市价
       * </pre>
       *
       * <code>optional uint32 PriceType = 15;</code>
       * @param value The priceType to set.
       * @return This builder for chaining.
       */
      public Builder setPriceType(int value) {
        bitField0_ |= 0x00004000;
        priceType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 价格类型: 1 - 最新价 2 - 对手价 3 - 市价
       * </pre>
       *
       * <code>optional uint32 PriceType = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearPriceType() {
        bitField0_ = (bitField0_ & ~0x00004000);
        priceType_ = 0;
        onChanged();
        return this;
      }

      private int triggerType_ ;
      /**
       * <pre>
       * uint32 触发条件: 1 - 触发价 2 - 追踪价差
       * </pre>
       *
       * <code>optional uint32 TriggerType = 16;</code>
       * @return Whether the triggerType field is set.
       */
      @java.lang.Override
      public boolean hasTriggerType() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <pre>
       * uint32 触发条件: 1 - 触发价 2 - 追踪价差
       * </pre>
       *
       * <code>optional uint32 TriggerType = 16;</code>
       * @return The triggerType.
       */
      @java.lang.Override
      public int getTriggerType() {
        return triggerType_;
      }
      /**
       * <pre>
       * uint32 触发条件: 1 - 触发价 2 - 追踪价差
       * </pre>
       *
       * <code>optional uint32 TriggerType = 16;</code>
       * @param value The triggerType to set.
       * @return This builder for chaining.
       */
      public Builder setTriggerType(int value) {
        bitField0_ |= 0x00008000;
        triggerType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 触发条件: 1 - 触发价 2 - 追踪价差
       * </pre>
       *
       * <code>optional uint32 TriggerType = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearTriggerType() {
        bitField0_ = (bitField0_ & ~0x00008000);
        triggerType_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelSPSLOrderReq)
    }

    // @@protoc_insertion_point(class_scope:ChannelSPSLOrderReq)
    private static final MSIM.ChannelSPSLOrderReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelSPSLOrderReq();
    }

    public static MSIM.ChannelSPSLOrderReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelSPSLOrderReq>
        PARSER = new com.google.protobuf.AbstractParser<ChannelSPSLOrderReq>() {
      @java.lang.Override
      public ChannelSPSLOrderReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelSPSLOrderReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelSPSLOrderReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelSPSLOrderRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelSPSLOrderRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return Whether the orderID field is set.
     */
    boolean hasOrderID();
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return The orderID.
     */
    long getOrderID();
  }
  /**
   * <pre>
   * 止盈止损应答 0 3 68
   * </pre>
   *
   * Protobuf type {@code ChannelSPSLOrderRsp}
   */
  public static final class ChannelSPSLOrderRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelSPSLOrderRsp)
      ChannelSPSLOrderRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelSPSLOrderRsp.newBuilder() to construct.
    private ChannelSPSLOrderRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelSPSLOrderRsp() {
      retDesc_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelSPSLOrderRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelSPSLOrderRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              orderID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelSPSLOrderRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelSPSLOrderRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelSPSLOrderRsp.class, MSIM.ChannelSPSLOrderRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ORDERID_FIELD_NUMBER = 4;
    private long orderID_;
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return Whether the orderID field is set.
     */
    @java.lang.Override
    public boolean hasOrderID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 一级生成的订单号
     * </pre>
     *
     * <code>optional uint64 OrderID = 4;</code>
     * @return The orderID.
     */
    @java.lang.Override
    public long getOrderID() {
      return orderID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, orderID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, orderID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelSPSLOrderRsp)) {
        return super.equals(obj);
      }
      MSIM.ChannelSPSLOrderRsp other = (MSIM.ChannelSPSLOrderRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasOrderID() != other.hasOrderID()) return false;
      if (hasOrderID()) {
        if (getOrderID()
            != other.getOrderID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasOrderID()) {
        hash = (37 * hash) + ORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOrderID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelSPSLOrderRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelSPSLOrderRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelSPSLOrderRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelSPSLOrderRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelSPSLOrderRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelSPSLOrderRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelSPSLOrderRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelSPSLOrderRsp 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 MSIM.ChannelSPSLOrderRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelSPSLOrderRsp 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 MSIM.ChannelSPSLOrderRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelSPSLOrderRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelSPSLOrderRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 止盈止损应答 0 3 68
     * </pre>
     *
     * Protobuf type {@code ChannelSPSLOrderRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelSPSLOrderRsp)
        MSIM.ChannelSPSLOrderRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelSPSLOrderRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelSPSLOrderRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelSPSLOrderRsp.class, MSIM.ChannelSPSLOrderRsp.Builder.class);
      }

      // Construct using MSIM.ChannelSPSLOrderRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        orderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelSPSLOrderRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelSPSLOrderRsp getDefaultInstanceForType() {
        return MSIM.ChannelSPSLOrderRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelSPSLOrderRsp build() {
        MSIM.ChannelSPSLOrderRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelSPSLOrderRsp buildPartial() {
        MSIM.ChannelSPSLOrderRsp result = new MSIM.ChannelSPSLOrderRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.orderID_ = orderID_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelSPSLOrderRsp) {
          return mergeFrom((MSIM.ChannelSPSLOrderRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelSPSLOrderRsp other) {
        if (other == MSIM.ChannelSPSLOrderRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasOrderID()) {
          setOrderID(other.getOrderID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelSPSLOrderRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelSPSLOrderRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long orderID_ ;
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return Whether the orderID field is set.
       */
      @java.lang.Override
      public boolean hasOrderID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return The orderID.
       */
      @java.lang.Override
      public long getOrderID() {
        return orderID_;
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @param value The orderID to set.
       * @return This builder for chaining.
       */
      public Builder setOrderID(long value) {
        bitField0_ |= 0x00000008;
        orderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 一级生成的订单号
       * </pre>
       *
       * <code>optional uint64 OrderID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        orderID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelSPSLOrderRsp)
    }

    // @@protoc_insertion_point(class_scope:ChannelSPSLOrderRsp)
    private static final MSIM.ChannelSPSLOrderRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelSPSLOrderRsp();
    }

    public static MSIM.ChannelSPSLOrderRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelSPSLOrderRsp>
        PARSER = new com.google.protobuf.AbstractParser<ChannelSPSLOrderRsp>() {
      @java.lang.Override
      public ChannelSPSLOrderRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelSPSLOrderRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelSPSLOrderRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FuncMenuReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:FuncMenuReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 菜单最后更新时间
     * </pre>
     *
     * <code>optional uint64 MenuUTime = 2;</code>
     * @return Whether the menuUTime field is set.
     */
    boolean hasMenuUTime();
    /**
     * <pre>
     * uint64 菜单最后更新时间
     * </pre>
     *
     * <code>optional uint64 MenuUTime = 2;</code>
     * @return The menuUTime.
     */
    long getMenuUTime();
  }
  /**
   * <pre>
   * 菜单查询 1 5 41
   * </pre>
   *
   * Protobuf type {@code FuncMenuReq}
   */
  public static final class FuncMenuReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:FuncMenuReq)
      FuncMenuReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FuncMenuReq.newBuilder() to construct.
    private FuncMenuReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private FuncMenuReq() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new FuncMenuReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FuncMenuReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              menuUTime_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_FuncMenuReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_FuncMenuReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.FuncMenuReq.class, MSIM.FuncMenuReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int MENUUTIME_FIELD_NUMBER = 2;
    private long menuUTime_;
    /**
     * <pre>
     * uint64 菜单最后更新时间
     * </pre>
     *
     * <code>optional uint64 MenuUTime = 2;</code>
     * @return Whether the menuUTime field is set.
     */
    @java.lang.Override
    public boolean hasMenuUTime() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 菜单最后更新时间
     * </pre>
     *
     * <code>optional uint64 MenuUTime = 2;</code>
     * @return The menuUTime.
     */
    @java.lang.Override
    public long getMenuUTime() {
      return menuUTime_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, menuUTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, menuUTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.FuncMenuReq)) {
        return super.equals(obj);
      }
      MSIM.FuncMenuReq other = (MSIM.FuncMenuReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasMenuUTime() != other.hasMenuUTime()) return false;
      if (hasMenuUTime()) {
        if (getMenuUTime()
            != other.getMenuUTime()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasMenuUTime()) {
        hash = (37 * hash) + MENUUTIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getMenuUTime());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.FuncMenuReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.FuncMenuReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.FuncMenuReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.FuncMenuReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.FuncMenuReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.FuncMenuReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.FuncMenuReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.FuncMenuReq 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 MSIM.FuncMenuReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.FuncMenuReq 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 MSIM.FuncMenuReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.FuncMenuReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.FuncMenuReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 菜单查询 1 5 41
     * </pre>
     *
     * Protobuf type {@code FuncMenuReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:FuncMenuReq)
        MSIM.FuncMenuReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_FuncMenuReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_FuncMenuReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.FuncMenuReq.class, MSIM.FuncMenuReq.Builder.class);
      }

      // Construct using MSIM.FuncMenuReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        menuUTime_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_FuncMenuReq_descriptor;
      }

      @java.lang.Override
      public MSIM.FuncMenuReq getDefaultInstanceForType() {
        return MSIM.FuncMenuReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.FuncMenuReq build() {
        MSIM.FuncMenuReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.FuncMenuReq buildPartial() {
        MSIM.FuncMenuReq result = new MSIM.FuncMenuReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.menuUTime_ = menuUTime_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.FuncMenuReq) {
          return mergeFrom((MSIM.FuncMenuReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.FuncMenuReq other) {
        if (other == MSIM.FuncMenuReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasMenuUTime()) {
          setMenuUTime(other.getMenuUTime());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.FuncMenuReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.FuncMenuReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long menuUTime_ ;
      /**
       * <pre>
       * uint64 菜单最后更新时间
       * </pre>
       *
       * <code>optional uint64 MenuUTime = 2;</code>
       * @return Whether the menuUTime field is set.
       */
      @java.lang.Override
      public boolean hasMenuUTime() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 菜单最后更新时间
       * </pre>
       *
       * <code>optional uint64 MenuUTime = 2;</code>
       * @return The menuUTime.
       */
      @java.lang.Override
      public long getMenuUTime() {
        return menuUTime_;
      }
      /**
       * <pre>
       * uint64 菜单最后更新时间
       * </pre>
       *
       * <code>optional uint64 MenuUTime = 2;</code>
       * @param value The menuUTime to set.
       * @return This builder for chaining.
       */
      public Builder setMenuUTime(long value) {
        bitField0_ |= 0x00000002;
        menuUTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 菜单最后更新时间
       * </pre>
       *
       * <code>optional uint64 MenuUTime = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMenuUTime() {
        bitField0_ = (bitField0_ & ~0x00000002);
        menuUTime_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:FuncMenuReq)
    }

    // @@protoc_insertion_point(class_scope:FuncMenuReq)
    private static final MSIM.FuncMenuReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.FuncMenuReq();
    }

    public static MSIM.FuncMenuReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<FuncMenuReq>
        PARSER = new com.google.protobuf.AbstractParser<FuncMenuReq>() {
      @java.lang.Override
      public FuncMenuReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new FuncMenuReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.FuncMenuReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FuncMenuRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:FuncMenuRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * FuncMenu 菜单列表
     * </pre>
     *
     * <code>repeated .FuncMenu FuncMenuList = 4;</code>
     */
    java.util.List<MSIM.FuncMenu> 
        getFuncMenuListList();
    /**
     * <pre>
     * FuncMenu 菜单列表
     * </pre>
     *
     * <code>repeated .FuncMenu FuncMenuList = 4;</code>
     */
    MSIM.FuncMenu getFuncMenuList(int index);
    /**
     * <pre>
     * FuncMenu 菜单列表
     * </pre>
     *
     * <code>repeated .FuncMenu FuncMenuList = 4;</code>
     */
    int getFuncMenuListCount();
    /**
     * <pre>
     * FuncMenu 菜单列表
     * </pre>
     *
     * <code>repeated .FuncMenu FuncMenuList = 4;</code>
     */
    java.util.List<? extends MSIM.FuncMenuOrBuilder> 
        getFuncMenuListOrBuilderList();
    /**
     * <pre>
     * FuncMenu 菜单列表
     * </pre>
     *
     * <code>repeated .FuncMenu FuncMenuList = 4;</code>
     */
    MSIM.FuncMenuOrBuilder getFuncMenuListOrBuilder(
        int index);
  }
  /**
   * <pre>
   * 菜单查询查询应答 1 5 42
   * </pre>
   *
   * Protobuf type {@code FuncMenuRsp}
   */
  public static final class FuncMenuRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:FuncMenuRsp)
      FuncMenuRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FuncMenuRsp.newBuilder() to construct.
    private FuncMenuRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private FuncMenuRsp() {
      retDesc_ = "";
      funcMenuList_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new FuncMenuRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FuncMenuRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                funcMenuList_ = new java.util.ArrayList<MSIM.FuncMenu>();
                mutable_bitField0_ |= 0x00000008;
              }
              funcMenuList_.add(
                  input.readMessage(MSIM.FuncMenu.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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_ & 0x00000008) != 0)) {
          funcMenuList_ = java.util.Collections.unmodifiableList(funcMenuList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_FuncMenuRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_FuncMenuRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.FuncMenuRsp.class, MSIM.FuncMenuRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FUNCMENULIST_FIELD_NUMBER = 4;
    private java.util.List<MSIM.FuncMenu> funcMenuList_;
    /**
     * <pre>
     * FuncMenu 菜单列表
     * </pre>
     *
     * <code>repeated .FuncMenu FuncMenuList = 4;</code>
     */
    @java.lang.Override
    public java.util.List<MSIM.FuncMenu> getFuncMenuListList() {
      return funcMenuList_;
    }
    /**
     * <pre>
     * FuncMenu 菜单列表
     * </pre>
     *
     * <code>repeated .FuncMenu FuncMenuList = 4;</code>
     */
    @java.lang.Override
    public java.util.List<? extends MSIM.FuncMenuOrBuilder> 
        getFuncMenuListOrBuilderList() {
      return funcMenuList_;
    }
    /**
     * <pre>
     * FuncMenu 菜单列表
     * </pre>
     *
     * <code>repeated .FuncMenu FuncMenuList = 4;</code>
     */
    @java.lang.Override
    public int getFuncMenuListCount() {
      return funcMenuList_.size();
    }
    /**
     * <pre>
     * FuncMenu 菜单列表
     * </pre>
     *
     * <code>repeated .FuncMenu FuncMenuList = 4;</code>
     */
    @java.lang.Override
    public MSIM.FuncMenu getFuncMenuList(int index) {
      return funcMenuList_.get(index);
    }
    /**
     * <pre>
     * FuncMenu 菜单列表
     * </pre>
     *
     * <code>repeated .FuncMenu FuncMenuList = 4;</code>
     */
    @java.lang.Override
    public MSIM.FuncMenuOrBuilder getFuncMenuListOrBuilder(
        int index) {
      return funcMenuList_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      for (int i = 0; i < funcMenuList_.size(); i++) {
        output.writeMessage(4, funcMenuList_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      for (int i = 0; i < funcMenuList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, funcMenuList_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.FuncMenuRsp)) {
        return super.equals(obj);
      }
      MSIM.FuncMenuRsp other = (MSIM.FuncMenuRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (!getFuncMenuListList()
          .equals(other.getFuncMenuListList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (getFuncMenuListCount() > 0) {
        hash = (37 * hash) + FUNCMENULIST_FIELD_NUMBER;
        hash = (53 * hash) + getFuncMenuListList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.FuncMenuRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.FuncMenuRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.FuncMenuRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.FuncMenuRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.FuncMenuRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.FuncMenuRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.FuncMenuRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.FuncMenuRsp 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 MSIM.FuncMenuRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.FuncMenuRsp 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 MSIM.FuncMenuRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.FuncMenuRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.FuncMenuRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 菜单查询查询应答 1 5 42
     * </pre>
     *
     * Protobuf type {@code FuncMenuRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:FuncMenuRsp)
        MSIM.FuncMenuRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_FuncMenuRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_FuncMenuRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.FuncMenuRsp.class, MSIM.FuncMenuRsp.Builder.class);
      }

      // Construct using MSIM.FuncMenuRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
          getFuncMenuListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (funcMenuListBuilder_ == null) {
          funcMenuList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          funcMenuListBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_FuncMenuRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.FuncMenuRsp getDefaultInstanceForType() {
        return MSIM.FuncMenuRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.FuncMenuRsp build() {
        MSIM.FuncMenuRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.FuncMenuRsp buildPartial() {
        MSIM.FuncMenuRsp result = new MSIM.FuncMenuRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (funcMenuListBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            funcMenuList_ = java.util.Collections.unmodifiableList(funcMenuList_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.funcMenuList_ = funcMenuList_;
        } else {
          result.funcMenuList_ = funcMenuListBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.FuncMenuRsp) {
          return mergeFrom((MSIM.FuncMenuRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.FuncMenuRsp other) {
        if (other == MSIM.FuncMenuRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (funcMenuListBuilder_ == null) {
          if (!other.funcMenuList_.isEmpty()) {
            if (funcMenuList_.isEmpty()) {
              funcMenuList_ = other.funcMenuList_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureFuncMenuListIsMutable();
              funcMenuList_.addAll(other.funcMenuList_);
            }
            onChanged();
          }
        } else {
          if (!other.funcMenuList_.isEmpty()) {
            if (funcMenuListBuilder_.isEmpty()) {
              funcMenuListBuilder_.dispose();
              funcMenuListBuilder_ = null;
              funcMenuList_ = other.funcMenuList_;
              bitField0_ = (bitField0_ & ~0x00000008);
              funcMenuListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getFuncMenuListFieldBuilder() : null;
            } else {
              funcMenuListBuilder_.addAllMessages(other.funcMenuList_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.FuncMenuRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.FuncMenuRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private java.util.List<MSIM.FuncMenu> funcMenuList_ =
        java.util.Collections.emptyList();
      private void ensureFuncMenuListIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          funcMenuList_ = new java.util.ArrayList<MSIM.FuncMenu>(funcMenuList_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.FuncMenu, MSIM.FuncMenu.Builder, MSIM.FuncMenuOrBuilder> funcMenuListBuilder_;

      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public java.util.List<MSIM.FuncMenu> getFuncMenuListList() {
        if (funcMenuListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(funcMenuList_);
        } else {
          return funcMenuListBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public int getFuncMenuListCount() {
        if (funcMenuListBuilder_ == null) {
          return funcMenuList_.size();
        } else {
          return funcMenuListBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public MSIM.FuncMenu getFuncMenuList(int index) {
        if (funcMenuListBuilder_ == null) {
          return funcMenuList_.get(index);
        } else {
          return funcMenuListBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public Builder setFuncMenuList(
          int index, MSIM.FuncMenu value) {
        if (funcMenuListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFuncMenuListIsMutable();
          funcMenuList_.set(index, value);
          onChanged();
        } else {
          funcMenuListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public Builder setFuncMenuList(
          int index, MSIM.FuncMenu.Builder builderForValue) {
        if (funcMenuListBuilder_ == null) {
          ensureFuncMenuListIsMutable();
          funcMenuList_.set(index, builderForValue.build());
          onChanged();
        } else {
          funcMenuListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public Builder addFuncMenuList(MSIM.FuncMenu value) {
        if (funcMenuListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFuncMenuListIsMutable();
          funcMenuList_.add(value);
          onChanged();
        } else {
          funcMenuListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public Builder addFuncMenuList(
          int index, MSIM.FuncMenu value) {
        if (funcMenuListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFuncMenuListIsMutable();
          funcMenuList_.add(index, value);
          onChanged();
        } else {
          funcMenuListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public Builder addFuncMenuList(
          MSIM.FuncMenu.Builder builderForValue) {
        if (funcMenuListBuilder_ == null) {
          ensureFuncMenuListIsMutable();
          funcMenuList_.add(builderForValue.build());
          onChanged();
        } else {
          funcMenuListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public Builder addFuncMenuList(
          int index, MSIM.FuncMenu.Builder builderForValue) {
        if (funcMenuListBuilder_ == null) {
          ensureFuncMenuListIsMutable();
          funcMenuList_.add(index, builderForValue.build());
          onChanged();
        } else {
          funcMenuListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public Builder addAllFuncMenuList(
          java.lang.Iterable<? extends MSIM.FuncMenu> values) {
        if (funcMenuListBuilder_ == null) {
          ensureFuncMenuListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, funcMenuList_);
          onChanged();
        } else {
          funcMenuListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public Builder clearFuncMenuList() {
        if (funcMenuListBuilder_ == null) {
          funcMenuList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          funcMenuListBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public Builder removeFuncMenuList(int index) {
        if (funcMenuListBuilder_ == null) {
          ensureFuncMenuListIsMutable();
          funcMenuList_.remove(index);
          onChanged();
        } else {
          funcMenuListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public MSIM.FuncMenu.Builder getFuncMenuListBuilder(
          int index) {
        return getFuncMenuListFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public MSIM.FuncMenuOrBuilder getFuncMenuListOrBuilder(
          int index) {
        if (funcMenuListBuilder_ == null) {
          return funcMenuList_.get(index);  } else {
          return funcMenuListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public java.util.List<? extends MSIM.FuncMenuOrBuilder> 
           getFuncMenuListOrBuilderList() {
        if (funcMenuListBuilder_ != null) {
          return funcMenuListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(funcMenuList_);
        }
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public MSIM.FuncMenu.Builder addFuncMenuListBuilder() {
        return getFuncMenuListFieldBuilder().addBuilder(
            MSIM.FuncMenu.getDefaultInstance());
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public MSIM.FuncMenu.Builder addFuncMenuListBuilder(
          int index) {
        return getFuncMenuListFieldBuilder().addBuilder(
            index, MSIM.FuncMenu.getDefaultInstance());
      }
      /**
       * <pre>
       * FuncMenu 菜单列表
       * </pre>
       *
       * <code>repeated .FuncMenu FuncMenuList = 4;</code>
       */
      public java.util.List<MSIM.FuncMenu.Builder> 
           getFuncMenuListBuilderList() {
        return getFuncMenuListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.FuncMenu, MSIM.FuncMenu.Builder, MSIM.FuncMenuOrBuilder> 
          getFuncMenuListFieldBuilder() {
        if (funcMenuListBuilder_ == null) {
          funcMenuListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              MSIM.FuncMenu, MSIM.FuncMenu.Builder, MSIM.FuncMenuOrBuilder>(
                  funcMenuList_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          funcMenuList_ = null;
        }
        return funcMenuListBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:FuncMenuRsp)
    }

    // @@protoc_insertion_point(class_scope:FuncMenuRsp)
    private static final MSIM.FuncMenuRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.FuncMenuRsp();
    }

    public static MSIM.FuncMenuRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<FuncMenuRsp>
        PARSER = new com.google.protobuf.AbstractParser<FuncMenuRsp>() {
      @java.lang.Override
      public FuncMenuRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new FuncMenuRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.FuncMenuRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FuncMenuOrBuilder extends
      // @@protoc_insertion_point(interface_extends:FuncMenu)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * string 功能菜单名称
     * </pre>
     *
     * <code>optional string FuncMenuName = 1;</code>
     * @return Whether the funcMenuName field is set.
     */
    boolean hasFuncMenuName();
    /**
     * <pre>
     * string 功能菜单名称
     * </pre>
     *
     * <code>optional string FuncMenuName = 1;</code>
     * @return The funcMenuName.
     */
    java.lang.String getFuncMenuName();
    /**
     * <pre>
     * string 功能菜单名称
     * </pre>
     *
     * <code>optional string FuncMenuName = 1;</code>
     * @return The bytes for funcMenuName.
     */
    com.google.protobuf.ByteString
        getFuncMenuNameBytes();

    /**
     * <pre>
     * string 功能菜单代码
     * </pre>
     *
     * <code>optional string FuncMenuCode = 2;</code>
     * @return Whether the funcMenuCode field is set.
     */
    boolean hasFuncMenuCode();
    /**
     * <pre>
     * string 功能菜单代码
     * </pre>
     *
     * <code>optional string FuncMenuCode = 2;</code>
     * @return The funcMenuCode.
     */
    java.lang.String getFuncMenuCode();
    /**
     * <pre>
     * string 功能菜单代码
     * </pre>
     *
     * <code>optional string FuncMenuCode = 2;</code>
     * @return The bytes for funcMenuCode.
     */
    com.google.protobuf.ByteString
        getFuncMenuCodeBytes();

    /**
     * <pre>
     * string 父级菜单代码
     * </pre>
     *
     * <code>optional string Parentfuncmenucode = 3;</code>
     * @return Whether the parentfuncmenucode field is set.
     */
    boolean hasParentfuncmenucode();
    /**
     * <pre>
     * string 父级菜单代码
     * </pre>
     *
     * <code>optional string Parentfuncmenucode = 3;</code>
     * @return The parentfuncmenucode.
     */
    java.lang.String getParentfuncmenucode();
    /**
     * <pre>
     * string 父级菜单代码
     * </pre>
     *
     * <code>optional string Parentfuncmenucode = 3;</code>
     * @return The bytes for parentfuncmenucode.
     */
    com.google.protobuf.ByteString
        getParentfuncmenucodeBytes();

    /**
     * <pre>
     * FuncMenu 子菜单
     * </pre>
     *
     * <code>repeated .FuncMenu SonMenus = 4;</code>
     */
    java.util.List<MSIM.FuncMenu> 
        getSonMenusList();
    /**
     * <pre>
     * FuncMenu 子菜单
     * </pre>
     *
     * <code>repeated .FuncMenu SonMenus = 4;</code>
     */
    MSIM.FuncMenu getSonMenus(int index);
    /**
     * <pre>
     * FuncMenu 子菜单
     * </pre>
     *
     * <code>repeated .FuncMenu SonMenus = 4;</code>
     */
    int getSonMenusCount();
    /**
     * <pre>
     * FuncMenu 子菜单
     * </pre>
     *
     * <code>repeated .FuncMenu SonMenus = 4;</code>
     */
    java.util.List<? extends MSIM.FuncMenuOrBuilder> 
        getSonMenusOrBuilderList();
    /**
     * <pre>
     * FuncMenu 子菜单
     * </pre>
     *
     * <code>repeated .FuncMenu SonMenus = 4;</code>
     */
    MSIM.FuncMenuOrBuilder getSonMenusOrBuilder(
        int index);
  }
  /**
   * <pre>
   * 菜单权限 1 5 43
   * </pre>
   *
   * Protobuf type {@code FuncMenu}
   */
  public static final class FuncMenu extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:FuncMenu)
      FuncMenuOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FuncMenu.newBuilder() to construct.
    private FuncMenu(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private FuncMenu() {
      funcMenuName_ = "";
      funcMenuCode_ = "";
      parentfuncmenucode_ = "";
      sonMenus_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new FuncMenu();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FuncMenu(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              funcMenuName_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              funcMenuCode_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              parentfuncmenucode_ = bs;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                sonMenus_ = new java.util.ArrayList<MSIM.FuncMenu>();
                mutable_bitField0_ |= 0x00000008;
              }
              sonMenus_.add(
                  input.readMessage(MSIM.FuncMenu.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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_ & 0x00000008) != 0)) {
          sonMenus_ = java.util.Collections.unmodifiableList(sonMenus_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_FuncMenu_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_FuncMenu_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.FuncMenu.class, MSIM.FuncMenu.Builder.class);
    }

    private int bitField0_;
    public static final int FUNCMENUNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object funcMenuName_;
    /**
     * <pre>
     * string 功能菜单名称
     * </pre>
     *
     * <code>optional string FuncMenuName = 1;</code>
     * @return Whether the funcMenuName field is set.
     */
    @java.lang.Override
    public boolean hasFuncMenuName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * string 功能菜单名称
     * </pre>
     *
     * <code>optional string FuncMenuName = 1;</code>
     * @return The funcMenuName.
     */
    @java.lang.Override
    public java.lang.String getFuncMenuName() {
      java.lang.Object ref = funcMenuName_;
      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();
        if (bs.isValidUtf8()) {
          funcMenuName_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 功能菜单名称
     * </pre>
     *
     * <code>optional string FuncMenuName = 1;</code>
     * @return The bytes for funcMenuName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFuncMenuNameBytes() {
      java.lang.Object ref = funcMenuName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        funcMenuName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FUNCMENUCODE_FIELD_NUMBER = 2;
    private volatile java.lang.Object funcMenuCode_;
    /**
     * <pre>
     * string 功能菜单代码
     * </pre>
     *
     * <code>optional string FuncMenuCode = 2;</code>
     * @return Whether the funcMenuCode field is set.
     */
    @java.lang.Override
    public boolean hasFuncMenuCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * string 功能菜单代码
     * </pre>
     *
     * <code>optional string FuncMenuCode = 2;</code>
     * @return The funcMenuCode.
     */
    @java.lang.Override
    public java.lang.String getFuncMenuCode() {
      java.lang.Object ref = funcMenuCode_;
      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();
        if (bs.isValidUtf8()) {
          funcMenuCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 功能菜单代码
     * </pre>
     *
     * <code>optional string FuncMenuCode = 2;</code>
     * @return The bytes for funcMenuCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFuncMenuCodeBytes() {
      java.lang.Object ref = funcMenuCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        funcMenuCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PARENTFUNCMENUCODE_FIELD_NUMBER = 3;
    private volatile java.lang.Object parentfuncmenucode_;
    /**
     * <pre>
     * string 父级菜单代码
     * </pre>
     *
     * <code>optional string Parentfuncmenucode = 3;</code>
     * @return Whether the parentfuncmenucode field is set.
     */
    @java.lang.Override
    public boolean hasParentfuncmenucode() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 父级菜单代码
     * </pre>
     *
     * <code>optional string Parentfuncmenucode = 3;</code>
     * @return The parentfuncmenucode.
     */
    @java.lang.Override
    public java.lang.String getParentfuncmenucode() {
      java.lang.Object ref = parentfuncmenucode_;
      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();
        if (bs.isValidUtf8()) {
          parentfuncmenucode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 父级菜单代码
     * </pre>
     *
     * <code>optional string Parentfuncmenucode = 3;</code>
     * @return The bytes for parentfuncmenucode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getParentfuncmenucodeBytes() {
      java.lang.Object ref = parentfuncmenucode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        parentfuncmenucode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SONMENUS_FIELD_NUMBER = 4;
    private java.util.List<MSIM.FuncMenu> sonMenus_;
    /**
     * <pre>
     * FuncMenu 子菜单
     * </pre>
     *
     * <code>repeated .FuncMenu SonMenus = 4;</code>
     */
    @java.lang.Override
    public java.util.List<MSIM.FuncMenu> getSonMenusList() {
      return sonMenus_;
    }
    /**
     * <pre>
     * FuncMenu 子菜单
     * </pre>
     *
     * <code>repeated .FuncMenu SonMenus = 4;</code>
     */
    @java.lang.Override
    public java.util.List<? extends MSIM.FuncMenuOrBuilder> 
        getSonMenusOrBuilderList() {
      return sonMenus_;
    }
    /**
     * <pre>
     * FuncMenu 子菜单
     * </pre>
     *
     * <code>repeated .FuncMenu SonMenus = 4;</code>
     */
    @java.lang.Override
    public int getSonMenusCount() {
      return sonMenus_.size();
    }
    /**
     * <pre>
     * FuncMenu 子菜单
     * </pre>
     *
     * <code>repeated .FuncMenu SonMenus = 4;</code>
     */
    @java.lang.Override
    public MSIM.FuncMenu getSonMenus(int index) {
      return sonMenus_.get(index);
    }
    /**
     * <pre>
     * FuncMenu 子菜单
     * </pre>
     *
     * <code>repeated .FuncMenu SonMenus = 4;</code>
     */
    @java.lang.Override
    public MSIM.FuncMenuOrBuilder getSonMenusOrBuilder(
        int index) {
      return sonMenus_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, funcMenuName_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, funcMenuCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, parentfuncmenucode_);
      }
      for (int i = 0; i < sonMenus_.size(); i++) {
        output.writeMessage(4, sonMenus_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, funcMenuName_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, funcMenuCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, parentfuncmenucode_);
      }
      for (int i = 0; i < sonMenus_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, sonMenus_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.FuncMenu)) {
        return super.equals(obj);
      }
      MSIM.FuncMenu other = (MSIM.FuncMenu) obj;

      if (hasFuncMenuName() != other.hasFuncMenuName()) return false;
      if (hasFuncMenuName()) {
        if (!getFuncMenuName()
            .equals(other.getFuncMenuName())) return false;
      }
      if (hasFuncMenuCode() != other.hasFuncMenuCode()) return false;
      if (hasFuncMenuCode()) {
        if (!getFuncMenuCode()
            .equals(other.getFuncMenuCode())) return false;
      }
      if (hasParentfuncmenucode() != other.hasParentfuncmenucode()) return false;
      if (hasParentfuncmenucode()) {
        if (!getParentfuncmenucode()
            .equals(other.getParentfuncmenucode())) return false;
      }
      if (!getSonMenusList()
          .equals(other.getSonMenusList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasFuncMenuName()) {
        hash = (37 * hash) + FUNCMENUNAME_FIELD_NUMBER;
        hash = (53 * hash) + getFuncMenuName().hashCode();
      }
      if (hasFuncMenuCode()) {
        hash = (37 * hash) + FUNCMENUCODE_FIELD_NUMBER;
        hash = (53 * hash) + getFuncMenuCode().hashCode();
      }
      if (hasParentfuncmenucode()) {
        hash = (37 * hash) + PARENTFUNCMENUCODE_FIELD_NUMBER;
        hash = (53 * hash) + getParentfuncmenucode().hashCode();
      }
      if (getSonMenusCount() > 0) {
        hash = (37 * hash) + SONMENUS_FIELD_NUMBER;
        hash = (53 * hash) + getSonMenusList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.FuncMenu parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.FuncMenu parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.FuncMenu parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.FuncMenu parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.FuncMenu parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.FuncMenu parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.FuncMenu parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.FuncMenu 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 MSIM.FuncMenu parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.FuncMenu 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 MSIM.FuncMenu parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.FuncMenu parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.FuncMenu prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 菜单权限 1 5 43
     * </pre>
     *
     * Protobuf type {@code FuncMenu}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:FuncMenu)
        MSIM.FuncMenuOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_FuncMenu_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_FuncMenu_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.FuncMenu.class, MSIM.FuncMenu.Builder.class);
      }

      // Construct using MSIM.FuncMenu.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSonMenusFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        funcMenuName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        funcMenuCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        parentfuncmenucode_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (sonMenusBuilder_ == null) {
          sonMenus_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          sonMenusBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_FuncMenu_descriptor;
      }

      @java.lang.Override
      public MSIM.FuncMenu getDefaultInstanceForType() {
        return MSIM.FuncMenu.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.FuncMenu build() {
        MSIM.FuncMenu result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.FuncMenu buildPartial() {
        MSIM.FuncMenu result = new MSIM.FuncMenu(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.funcMenuName_ = funcMenuName_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.funcMenuCode_ = funcMenuCode_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.parentfuncmenucode_ = parentfuncmenucode_;
        if (sonMenusBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            sonMenus_ = java.util.Collections.unmodifiableList(sonMenus_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.sonMenus_ = sonMenus_;
        } else {
          result.sonMenus_ = sonMenusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.FuncMenu) {
          return mergeFrom((MSIM.FuncMenu)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.FuncMenu other) {
        if (other == MSIM.FuncMenu.getDefaultInstance()) return this;
        if (other.hasFuncMenuName()) {
          bitField0_ |= 0x00000001;
          funcMenuName_ = other.funcMenuName_;
          onChanged();
        }
        if (other.hasFuncMenuCode()) {
          bitField0_ |= 0x00000002;
          funcMenuCode_ = other.funcMenuCode_;
          onChanged();
        }
        if (other.hasParentfuncmenucode()) {
          bitField0_ |= 0x00000004;
          parentfuncmenucode_ = other.parentfuncmenucode_;
          onChanged();
        }
        if (sonMenusBuilder_ == null) {
          if (!other.sonMenus_.isEmpty()) {
            if (sonMenus_.isEmpty()) {
              sonMenus_ = other.sonMenus_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureSonMenusIsMutable();
              sonMenus_.addAll(other.sonMenus_);
            }
            onChanged();
          }
        } else {
          if (!other.sonMenus_.isEmpty()) {
            if (sonMenusBuilder_.isEmpty()) {
              sonMenusBuilder_.dispose();
              sonMenusBuilder_ = null;
              sonMenus_ = other.sonMenus_;
              bitField0_ = (bitField0_ & ~0x00000008);
              sonMenusBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSonMenusFieldBuilder() : null;
            } else {
              sonMenusBuilder_.addAllMessages(other.sonMenus_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.FuncMenu parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.FuncMenu) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object funcMenuName_ = "";
      /**
       * <pre>
       * string 功能菜单名称
       * </pre>
       *
       * <code>optional string FuncMenuName = 1;</code>
       * @return Whether the funcMenuName field is set.
       */
      public boolean hasFuncMenuName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * string 功能菜单名称
       * </pre>
       *
       * <code>optional string FuncMenuName = 1;</code>
       * @return The funcMenuName.
       */
      public java.lang.String getFuncMenuName() {
        java.lang.Object ref = funcMenuName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            funcMenuName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 功能菜单名称
       * </pre>
       *
       * <code>optional string FuncMenuName = 1;</code>
       * @return The bytes for funcMenuName.
       */
      public com.google.protobuf.ByteString
          getFuncMenuNameBytes() {
        java.lang.Object ref = funcMenuName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          funcMenuName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 功能菜单名称
       * </pre>
       *
       * <code>optional string FuncMenuName = 1;</code>
       * @param value The funcMenuName to set.
       * @return This builder for chaining.
       */
      public Builder setFuncMenuName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        funcMenuName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 功能菜单名称
       * </pre>
       *
       * <code>optional string FuncMenuName = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearFuncMenuName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        funcMenuName_ = getDefaultInstance().getFuncMenuName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 功能菜单名称
       * </pre>
       *
       * <code>optional string FuncMenuName = 1;</code>
       * @param value The bytes for funcMenuName to set.
       * @return This builder for chaining.
       */
      public Builder setFuncMenuNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        funcMenuName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object funcMenuCode_ = "";
      /**
       * <pre>
       * string 功能菜单代码
       * </pre>
       *
       * <code>optional string FuncMenuCode = 2;</code>
       * @return Whether the funcMenuCode field is set.
       */
      public boolean hasFuncMenuCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * string 功能菜单代码
       * </pre>
       *
       * <code>optional string FuncMenuCode = 2;</code>
       * @return The funcMenuCode.
       */
      public java.lang.String getFuncMenuCode() {
        java.lang.Object ref = funcMenuCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            funcMenuCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 功能菜单代码
       * </pre>
       *
       * <code>optional string FuncMenuCode = 2;</code>
       * @return The bytes for funcMenuCode.
       */
      public com.google.protobuf.ByteString
          getFuncMenuCodeBytes() {
        java.lang.Object ref = funcMenuCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          funcMenuCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 功能菜单代码
       * </pre>
       *
       * <code>optional string FuncMenuCode = 2;</code>
       * @param value The funcMenuCode to set.
       * @return This builder for chaining.
       */
      public Builder setFuncMenuCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        funcMenuCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 功能菜单代码
       * </pre>
       *
       * <code>optional string FuncMenuCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFuncMenuCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        funcMenuCode_ = getDefaultInstance().getFuncMenuCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 功能菜单代码
       * </pre>
       *
       * <code>optional string FuncMenuCode = 2;</code>
       * @param value The bytes for funcMenuCode to set.
       * @return This builder for chaining.
       */
      public Builder setFuncMenuCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        funcMenuCode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object parentfuncmenucode_ = "";
      /**
       * <pre>
       * string 父级菜单代码
       * </pre>
       *
       * <code>optional string Parentfuncmenucode = 3;</code>
       * @return Whether the parentfuncmenucode field is set.
       */
      public boolean hasParentfuncmenucode() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 父级菜单代码
       * </pre>
       *
       * <code>optional string Parentfuncmenucode = 3;</code>
       * @return The parentfuncmenucode.
       */
      public java.lang.String getParentfuncmenucode() {
        java.lang.Object ref = parentfuncmenucode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            parentfuncmenucode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 父级菜单代码
       * </pre>
       *
       * <code>optional string Parentfuncmenucode = 3;</code>
       * @return The bytes for parentfuncmenucode.
       */
      public com.google.protobuf.ByteString
          getParentfuncmenucodeBytes() {
        java.lang.Object ref = parentfuncmenucode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          parentfuncmenucode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 父级菜单代码
       * </pre>
       *
       * <code>optional string Parentfuncmenucode = 3;</code>
       * @param value The parentfuncmenucode to set.
       * @return This builder for chaining.
       */
      public Builder setParentfuncmenucode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        parentfuncmenucode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 父级菜单代码
       * </pre>
       *
       * <code>optional string Parentfuncmenucode = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearParentfuncmenucode() {
        bitField0_ = (bitField0_ & ~0x00000004);
        parentfuncmenucode_ = getDefaultInstance().getParentfuncmenucode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 父级菜单代码
       * </pre>
       *
       * <code>optional string Parentfuncmenucode = 3;</code>
       * @param value The bytes for parentfuncmenucode to set.
       * @return This builder for chaining.
       */
      public Builder setParentfuncmenucodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        parentfuncmenucode_ = value;
        onChanged();
        return this;
      }

      private java.util.List<MSIM.FuncMenu> sonMenus_ =
        java.util.Collections.emptyList();
      private void ensureSonMenusIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          sonMenus_ = new java.util.ArrayList<MSIM.FuncMenu>(sonMenus_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.FuncMenu, MSIM.FuncMenu.Builder, MSIM.FuncMenuOrBuilder> sonMenusBuilder_;

      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public java.util.List<MSIM.FuncMenu> getSonMenusList() {
        if (sonMenusBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sonMenus_);
        } else {
          return sonMenusBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public int getSonMenusCount() {
        if (sonMenusBuilder_ == null) {
          return sonMenus_.size();
        } else {
          return sonMenusBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public MSIM.FuncMenu getSonMenus(int index) {
        if (sonMenusBuilder_ == null) {
          return sonMenus_.get(index);
        } else {
          return sonMenusBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public Builder setSonMenus(
          int index, MSIM.FuncMenu value) {
        if (sonMenusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSonMenusIsMutable();
          sonMenus_.set(index, value);
          onChanged();
        } else {
          sonMenusBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public Builder setSonMenus(
          int index, MSIM.FuncMenu.Builder builderForValue) {
        if (sonMenusBuilder_ == null) {
          ensureSonMenusIsMutable();
          sonMenus_.set(index, builderForValue.build());
          onChanged();
        } else {
          sonMenusBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public Builder addSonMenus(MSIM.FuncMenu value) {
        if (sonMenusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSonMenusIsMutable();
          sonMenus_.add(value);
          onChanged();
        } else {
          sonMenusBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public Builder addSonMenus(
          int index, MSIM.FuncMenu value) {
        if (sonMenusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSonMenusIsMutable();
          sonMenus_.add(index, value);
          onChanged();
        } else {
          sonMenusBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public Builder addSonMenus(
          MSIM.FuncMenu.Builder builderForValue) {
        if (sonMenusBuilder_ == null) {
          ensureSonMenusIsMutable();
          sonMenus_.add(builderForValue.build());
          onChanged();
        } else {
          sonMenusBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public Builder addSonMenus(
          int index, MSIM.FuncMenu.Builder builderForValue) {
        if (sonMenusBuilder_ == null) {
          ensureSonMenusIsMutable();
          sonMenus_.add(index, builderForValue.build());
          onChanged();
        } else {
          sonMenusBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public Builder addAllSonMenus(
          java.lang.Iterable<? extends MSIM.FuncMenu> values) {
        if (sonMenusBuilder_ == null) {
          ensureSonMenusIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sonMenus_);
          onChanged();
        } else {
          sonMenusBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public Builder clearSonMenus() {
        if (sonMenusBuilder_ == null) {
          sonMenus_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          sonMenusBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public Builder removeSonMenus(int index) {
        if (sonMenusBuilder_ == null) {
          ensureSonMenusIsMutable();
          sonMenus_.remove(index);
          onChanged();
        } else {
          sonMenusBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public MSIM.FuncMenu.Builder getSonMenusBuilder(
          int index) {
        return getSonMenusFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public MSIM.FuncMenuOrBuilder getSonMenusOrBuilder(
          int index) {
        if (sonMenusBuilder_ == null) {
          return sonMenus_.get(index);  } else {
          return sonMenusBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public java.util.List<? extends MSIM.FuncMenuOrBuilder> 
           getSonMenusOrBuilderList() {
        if (sonMenusBuilder_ != null) {
          return sonMenusBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sonMenus_);
        }
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public MSIM.FuncMenu.Builder addSonMenusBuilder() {
        return getSonMenusFieldBuilder().addBuilder(
            MSIM.FuncMenu.getDefaultInstance());
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public MSIM.FuncMenu.Builder addSonMenusBuilder(
          int index) {
        return getSonMenusFieldBuilder().addBuilder(
            index, MSIM.FuncMenu.getDefaultInstance());
      }
      /**
       * <pre>
       * FuncMenu 子菜单
       * </pre>
       *
       * <code>repeated .FuncMenu SonMenus = 4;</code>
       */
      public java.util.List<MSIM.FuncMenu.Builder> 
           getSonMenusBuilderList() {
        return getSonMenusFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.FuncMenu, MSIM.FuncMenu.Builder, MSIM.FuncMenuOrBuilder> 
          getSonMenusFieldBuilder() {
        if (sonMenusBuilder_ == null) {
          sonMenusBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              MSIM.FuncMenu, MSIM.FuncMenu.Builder, MSIM.FuncMenuOrBuilder>(
                  sonMenus_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          sonMenus_ = null;
        }
        return sonMenusBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:FuncMenu)
    }

    // @@protoc_insertion_point(class_scope:FuncMenu)
    private static final MSIM.FuncMenu DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.FuncMenu();
    }

    public static MSIM.FuncMenu getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<FuncMenu>
        PARSER = new com.google.protobuf.AbstractParser<FuncMenu>() {
      @java.lang.Override
      public FuncMenu parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new FuncMenu(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.FuncMenu getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface QuotesourceGroupRunQueryReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:QuotesourceGroupRunQueryReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 2;</code>
     * @return Whether the tradeDate field is set.
     */
    boolean hasTradeDate();
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 2;</code>
     * @return The tradeDate.
     */
    java.lang.String getTradeDate();
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 2;</code>
     * @return The bytes for tradeDate.
     */
    com.google.protobuf.ByteString
        getTradeDateBytes();
  }
  /**
   * <pre>
   * 行情源分组时段查询请求 1 5 64
   * </pre>
   *
   * Protobuf type {@code QuotesourceGroupRunQueryReq}
   */
  public static final class QuotesourceGroupRunQueryReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:QuotesourceGroupRunQueryReq)
      QuotesourceGroupRunQueryReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use QuotesourceGroupRunQueryReq.newBuilder() to construct.
    private QuotesourceGroupRunQueryReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private QuotesourceGroupRunQueryReq() {
      tradeDate_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new QuotesourceGroupRunQueryReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private QuotesourceGroupRunQueryReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              tradeDate_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_QuotesourceGroupRunQueryReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_QuotesourceGroupRunQueryReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.QuotesourceGroupRunQueryReq.class, MSIM.QuotesourceGroupRunQueryReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int TRADEDATE_FIELD_NUMBER = 2;
    private volatile java.lang.Object tradeDate_;
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 2;</code>
     * @return Whether the tradeDate field is set.
     */
    @java.lang.Override
    public boolean hasTradeDate() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 2;</code>
     * @return The tradeDate.
     */
    @java.lang.Override
    public java.lang.String getTradeDate() {
      java.lang.Object ref = tradeDate_;
      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();
        if (bs.isValidUtf8()) {
          tradeDate_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 2;</code>
     * @return The bytes for tradeDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTradeDateBytes() {
      java.lang.Object ref = tradeDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tradeDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, tradeDate_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, tradeDate_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.QuotesourceGroupRunQueryReq)) {
        return super.equals(obj);
      }
      MSIM.QuotesourceGroupRunQueryReq other = (MSIM.QuotesourceGroupRunQueryReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasTradeDate() != other.hasTradeDate()) return false;
      if (hasTradeDate()) {
        if (!getTradeDate()
            .equals(other.getTradeDate())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasTradeDate()) {
        hash = (37 * hash) + TRADEDATE_FIELD_NUMBER;
        hash = (53 * hash) + getTradeDate().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.QuotesourceGroupRunQueryReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.QuotesourceGroupRunQueryReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.QuotesourceGroupRunQueryReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.QuotesourceGroupRunQueryReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.QuotesourceGroupRunQueryReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.QuotesourceGroupRunQueryReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.QuotesourceGroupRunQueryReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.QuotesourceGroupRunQueryReq 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 MSIM.QuotesourceGroupRunQueryReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.QuotesourceGroupRunQueryReq 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 MSIM.QuotesourceGroupRunQueryReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.QuotesourceGroupRunQueryReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.QuotesourceGroupRunQueryReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 行情源分组时段查询请求 1 5 64
     * </pre>
     *
     * Protobuf type {@code QuotesourceGroupRunQueryReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:QuotesourceGroupRunQueryReq)
        MSIM.QuotesourceGroupRunQueryReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_QuotesourceGroupRunQueryReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_QuotesourceGroupRunQueryReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.QuotesourceGroupRunQueryReq.class, MSIM.QuotesourceGroupRunQueryReq.Builder.class);
      }

      // Construct using MSIM.QuotesourceGroupRunQueryReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        tradeDate_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_QuotesourceGroupRunQueryReq_descriptor;
      }

      @java.lang.Override
      public MSIM.QuotesourceGroupRunQueryReq getDefaultInstanceForType() {
        return MSIM.QuotesourceGroupRunQueryReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.QuotesourceGroupRunQueryReq build() {
        MSIM.QuotesourceGroupRunQueryReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.QuotesourceGroupRunQueryReq buildPartial() {
        MSIM.QuotesourceGroupRunQueryReq result = new MSIM.QuotesourceGroupRunQueryReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.tradeDate_ = tradeDate_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.QuotesourceGroupRunQueryReq) {
          return mergeFrom((MSIM.QuotesourceGroupRunQueryReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.QuotesourceGroupRunQueryReq other) {
        if (other == MSIM.QuotesourceGroupRunQueryReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasTradeDate()) {
          bitField0_ |= 0x00000002;
          tradeDate_ = other.tradeDate_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.QuotesourceGroupRunQueryReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.QuotesourceGroupRunQueryReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.lang.Object tradeDate_ = "";
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 2;</code>
       * @return Whether the tradeDate field is set.
       */
      public boolean hasTradeDate() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 2;</code>
       * @return The tradeDate.
       */
      public java.lang.String getTradeDate() {
        java.lang.Object ref = tradeDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tradeDate_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 2;</code>
       * @return The bytes for tradeDate.
       */
      public com.google.protobuf.ByteString
          getTradeDateBytes() {
        java.lang.Object ref = tradeDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tradeDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 2;</code>
       * @param value The tradeDate to set.
       * @return This builder for chaining.
       */
      public Builder setTradeDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        tradeDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTradeDate() {
        bitField0_ = (bitField0_ & ~0x00000002);
        tradeDate_ = getDefaultInstance().getTradeDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 2;</code>
       * @param value The bytes for tradeDate to set.
       * @return This builder for chaining.
       */
      public Builder setTradeDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        tradeDate_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:QuotesourceGroupRunQueryReq)
    }

    // @@protoc_insertion_point(class_scope:QuotesourceGroupRunQueryReq)
    private static final MSIM.QuotesourceGroupRunQueryReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.QuotesourceGroupRunQueryReq();
    }

    public static MSIM.QuotesourceGroupRunQueryReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<QuotesourceGroupRunQueryReq>
        PARSER = new com.google.protobuf.AbstractParser<QuotesourceGroupRunQueryReq>() {
      @java.lang.Override
      public QuotesourceGroupRunQueryReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new QuotesourceGroupRunQueryReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.QuotesourceGroupRunQueryReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface QuotesourceGroupRunQueryRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:QuotesourceGroupRunQueryRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 4;</code>
     * @return Whether the tradeDate field is set.
     */
    boolean hasTradeDate();
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 4;</code>
     * @return The tradeDate.
     */
    java.lang.String getTradeDate();
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 4;</code>
     * @return The bytes for tradeDate.
     */
    com.google.protobuf.ByteString
        getTradeDateBytes();

    /**
     * <pre>
     * QuotesourceGroupRun 市场及其日计划列表
     * </pre>
     *
     * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
     */
    java.util.List<MSIM.QuotesourceGroupRun> 
        getQuotesourceGroupRunListList();
    /**
     * <pre>
     * QuotesourceGroupRun 市场及其日计划列表
     * </pre>
     *
     * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
     */
    MSIM.QuotesourceGroupRun getQuotesourceGroupRunList(int index);
    /**
     * <pre>
     * QuotesourceGroupRun 市场及其日计划列表
     * </pre>
     *
     * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
     */
    int getQuotesourceGroupRunListCount();
    /**
     * <pre>
     * QuotesourceGroupRun 市场及其日计划列表
     * </pre>
     *
     * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
     */
    java.util.List<? extends MSIM.QuotesourceGroupRunOrBuilder> 
        getQuotesourceGroupRunListOrBuilderList();
    /**
     * <pre>
     * QuotesourceGroupRun 市场及其日计划列表
     * </pre>
     *
     * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
     */
    MSIM.QuotesourceGroupRunOrBuilder getQuotesourceGroupRunListOrBuilder(
        int index);
  }
  /**
   * <pre>
   * 行情源分组时段查询应答 1 5 65
   * </pre>
   *
   * Protobuf type {@code QuotesourceGroupRunQueryRsp}
   */
  public static final class QuotesourceGroupRunQueryRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:QuotesourceGroupRunQueryRsp)
      QuotesourceGroupRunQueryRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use QuotesourceGroupRunQueryRsp.newBuilder() to construct.
    private QuotesourceGroupRunQueryRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private QuotesourceGroupRunQueryRsp() {
      retDesc_ = "";
      tradeDate_ = "";
      quotesourceGroupRunList_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new QuotesourceGroupRunQueryRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private QuotesourceGroupRunQueryRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              tradeDate_ = bs;
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                quotesourceGroupRunList_ = new java.util.ArrayList<MSIM.QuotesourceGroupRun>();
                mutable_bitField0_ |= 0x00000010;
              }
              quotesourceGroupRunList_.add(
                  input.readMessage(MSIM.QuotesourceGroupRun.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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_ & 0x00000010) != 0)) {
          quotesourceGroupRunList_ = java.util.Collections.unmodifiableList(quotesourceGroupRunList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_QuotesourceGroupRunQueryRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_QuotesourceGroupRunQueryRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.QuotesourceGroupRunQueryRsp.class, MSIM.QuotesourceGroupRunQueryRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TRADEDATE_FIELD_NUMBER = 4;
    private volatile java.lang.Object tradeDate_;
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 4;</code>
     * @return Whether the tradeDate field is set.
     */
    @java.lang.Override
    public boolean hasTradeDate() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 4;</code>
     * @return The tradeDate.
     */
    @java.lang.Override
    public java.lang.String getTradeDate() {
      java.lang.Object ref = tradeDate_;
      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();
        if (bs.isValidUtf8()) {
          tradeDate_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 交易日
     * </pre>
     *
     * <code>optional string TradeDate = 4;</code>
     * @return The bytes for tradeDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTradeDateBytes() {
      java.lang.Object ref = tradeDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tradeDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int QUOTESOURCEGROUPRUNLIST_FIELD_NUMBER = 5;
    private java.util.List<MSIM.QuotesourceGroupRun> quotesourceGroupRunList_;
    /**
     * <pre>
     * QuotesourceGroupRun 市场及其日计划列表
     * </pre>
     *
     * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
     */
    @java.lang.Override
    public java.util.List<MSIM.QuotesourceGroupRun> getQuotesourceGroupRunListList() {
      return quotesourceGroupRunList_;
    }
    /**
     * <pre>
     * QuotesourceGroupRun 市场及其日计划列表
     * </pre>
     *
     * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
     */
    @java.lang.Override
    public java.util.List<? extends MSIM.QuotesourceGroupRunOrBuilder> 
        getQuotesourceGroupRunListOrBuilderList() {
      return quotesourceGroupRunList_;
    }
    /**
     * <pre>
     * QuotesourceGroupRun 市场及其日计划列表
     * </pre>
     *
     * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
     */
    @java.lang.Override
    public int getQuotesourceGroupRunListCount() {
      return quotesourceGroupRunList_.size();
    }
    /**
     * <pre>
     * QuotesourceGroupRun 市场及其日计划列表
     * </pre>
     *
     * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
     */
    @java.lang.Override
    public MSIM.QuotesourceGroupRun getQuotesourceGroupRunList(int index) {
      return quotesourceGroupRunList_.get(index);
    }
    /**
     * <pre>
     * QuotesourceGroupRun 市场及其日计划列表
     * </pre>
     *
     * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
     */
    @java.lang.Override
    public MSIM.QuotesourceGroupRunOrBuilder getQuotesourceGroupRunListOrBuilder(
        int index) {
      return quotesourceGroupRunList_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, tradeDate_);
      }
      for (int i = 0; i < quotesourceGroupRunList_.size(); i++) {
        output.writeMessage(5, quotesourceGroupRunList_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, tradeDate_);
      }
      for (int i = 0; i < quotesourceGroupRunList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, quotesourceGroupRunList_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.QuotesourceGroupRunQueryRsp)) {
        return super.equals(obj);
      }
      MSIM.QuotesourceGroupRunQueryRsp other = (MSIM.QuotesourceGroupRunQueryRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasTradeDate() != other.hasTradeDate()) return false;
      if (hasTradeDate()) {
        if (!getTradeDate()
            .equals(other.getTradeDate())) return false;
      }
      if (!getQuotesourceGroupRunListList()
          .equals(other.getQuotesourceGroupRunListList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasTradeDate()) {
        hash = (37 * hash) + TRADEDATE_FIELD_NUMBER;
        hash = (53 * hash) + getTradeDate().hashCode();
      }
      if (getQuotesourceGroupRunListCount() > 0) {
        hash = (37 * hash) + QUOTESOURCEGROUPRUNLIST_FIELD_NUMBER;
        hash = (53 * hash) + getQuotesourceGroupRunListList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.QuotesourceGroupRunQueryRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.QuotesourceGroupRunQueryRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.QuotesourceGroupRunQueryRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.QuotesourceGroupRunQueryRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.QuotesourceGroupRunQueryRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.QuotesourceGroupRunQueryRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.QuotesourceGroupRunQueryRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.QuotesourceGroupRunQueryRsp 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 MSIM.QuotesourceGroupRunQueryRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.QuotesourceGroupRunQueryRsp 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 MSIM.QuotesourceGroupRunQueryRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.QuotesourceGroupRunQueryRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.QuotesourceGroupRunQueryRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 行情源分组时段查询应答 1 5 65
     * </pre>
     *
     * Protobuf type {@code QuotesourceGroupRunQueryRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:QuotesourceGroupRunQueryRsp)
        MSIM.QuotesourceGroupRunQueryRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_QuotesourceGroupRunQueryRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_QuotesourceGroupRunQueryRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.QuotesourceGroupRunQueryRsp.class, MSIM.QuotesourceGroupRunQueryRsp.Builder.class);
      }

      // Construct using MSIM.QuotesourceGroupRunQueryRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
          getQuotesourceGroupRunListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        tradeDate_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        if (quotesourceGroupRunListBuilder_ == null) {
          quotesourceGroupRunList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          quotesourceGroupRunListBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_QuotesourceGroupRunQueryRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.QuotesourceGroupRunQueryRsp getDefaultInstanceForType() {
        return MSIM.QuotesourceGroupRunQueryRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.QuotesourceGroupRunQueryRsp build() {
        MSIM.QuotesourceGroupRunQueryRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.QuotesourceGroupRunQueryRsp buildPartial() {
        MSIM.QuotesourceGroupRunQueryRsp result = new MSIM.QuotesourceGroupRunQueryRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.tradeDate_ = tradeDate_;
        if (quotesourceGroupRunListBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            quotesourceGroupRunList_ = java.util.Collections.unmodifiableList(quotesourceGroupRunList_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.quotesourceGroupRunList_ = quotesourceGroupRunList_;
        } else {
          result.quotesourceGroupRunList_ = quotesourceGroupRunListBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.QuotesourceGroupRunQueryRsp) {
          return mergeFrom((MSIM.QuotesourceGroupRunQueryRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.QuotesourceGroupRunQueryRsp other) {
        if (other == MSIM.QuotesourceGroupRunQueryRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasTradeDate()) {
          bitField0_ |= 0x00000008;
          tradeDate_ = other.tradeDate_;
          onChanged();
        }
        if (quotesourceGroupRunListBuilder_ == null) {
          if (!other.quotesourceGroupRunList_.isEmpty()) {
            if (quotesourceGroupRunList_.isEmpty()) {
              quotesourceGroupRunList_ = other.quotesourceGroupRunList_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureQuotesourceGroupRunListIsMutable();
              quotesourceGroupRunList_.addAll(other.quotesourceGroupRunList_);
            }
            onChanged();
          }
        } else {
          if (!other.quotesourceGroupRunList_.isEmpty()) {
            if (quotesourceGroupRunListBuilder_.isEmpty()) {
              quotesourceGroupRunListBuilder_.dispose();
              quotesourceGroupRunListBuilder_ = null;
              quotesourceGroupRunList_ = other.quotesourceGroupRunList_;
              bitField0_ = (bitField0_ & ~0x00000010);
              quotesourceGroupRunListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getQuotesourceGroupRunListFieldBuilder() : null;
            } else {
              quotesourceGroupRunListBuilder_.addAllMessages(other.quotesourceGroupRunList_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.QuotesourceGroupRunQueryRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.QuotesourceGroupRunQueryRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tradeDate_ = "";
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 4;</code>
       * @return Whether the tradeDate field is set.
       */
      public boolean hasTradeDate() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 4;</code>
       * @return The tradeDate.
       */
      public java.lang.String getTradeDate() {
        java.lang.Object ref = tradeDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tradeDate_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 4;</code>
       * @return The bytes for tradeDate.
       */
      public com.google.protobuf.ByteString
          getTradeDateBytes() {
        java.lang.Object ref = tradeDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tradeDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 4;</code>
       * @param value The tradeDate to set.
       * @return This builder for chaining.
       */
      public Builder setTradeDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        tradeDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTradeDate() {
        bitField0_ = (bitField0_ & ~0x00000008);
        tradeDate_ = getDefaultInstance().getTradeDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 交易日
       * </pre>
       *
       * <code>optional string TradeDate = 4;</code>
       * @param value The bytes for tradeDate to set.
       * @return This builder for chaining.
       */
      public Builder setTradeDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        tradeDate_ = value;
        onChanged();
        return this;
      }

      private java.util.List<MSIM.QuotesourceGroupRun> quotesourceGroupRunList_ =
        java.util.Collections.emptyList();
      private void ensureQuotesourceGroupRunListIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          quotesourceGroupRunList_ = new java.util.ArrayList<MSIM.QuotesourceGroupRun>(quotesourceGroupRunList_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.QuotesourceGroupRun, MSIM.QuotesourceGroupRun.Builder, MSIM.QuotesourceGroupRunOrBuilder> quotesourceGroupRunListBuilder_;

      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public java.util.List<MSIM.QuotesourceGroupRun> getQuotesourceGroupRunListList() {
        if (quotesourceGroupRunListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(quotesourceGroupRunList_);
        } else {
          return quotesourceGroupRunListBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public int getQuotesourceGroupRunListCount() {
        if (quotesourceGroupRunListBuilder_ == null) {
          return quotesourceGroupRunList_.size();
        } else {
          return quotesourceGroupRunListBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public MSIM.QuotesourceGroupRun getQuotesourceGroupRunList(int index) {
        if (quotesourceGroupRunListBuilder_ == null) {
          return quotesourceGroupRunList_.get(index);
        } else {
          return quotesourceGroupRunListBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public Builder setQuotesourceGroupRunList(
          int index, MSIM.QuotesourceGroupRun value) {
        if (quotesourceGroupRunListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureQuotesourceGroupRunListIsMutable();
          quotesourceGroupRunList_.set(index, value);
          onChanged();
        } else {
          quotesourceGroupRunListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public Builder setQuotesourceGroupRunList(
          int index, MSIM.QuotesourceGroupRun.Builder builderForValue) {
        if (quotesourceGroupRunListBuilder_ == null) {
          ensureQuotesourceGroupRunListIsMutable();
          quotesourceGroupRunList_.set(index, builderForValue.build());
          onChanged();
        } else {
          quotesourceGroupRunListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public Builder addQuotesourceGroupRunList(MSIM.QuotesourceGroupRun value) {
        if (quotesourceGroupRunListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureQuotesourceGroupRunListIsMutable();
          quotesourceGroupRunList_.add(value);
          onChanged();
        } else {
          quotesourceGroupRunListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public Builder addQuotesourceGroupRunList(
          int index, MSIM.QuotesourceGroupRun value) {
        if (quotesourceGroupRunListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureQuotesourceGroupRunListIsMutable();
          quotesourceGroupRunList_.add(index, value);
          onChanged();
        } else {
          quotesourceGroupRunListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public Builder addQuotesourceGroupRunList(
          MSIM.QuotesourceGroupRun.Builder builderForValue) {
        if (quotesourceGroupRunListBuilder_ == null) {
          ensureQuotesourceGroupRunListIsMutable();
          quotesourceGroupRunList_.add(builderForValue.build());
          onChanged();
        } else {
          quotesourceGroupRunListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public Builder addQuotesourceGroupRunList(
          int index, MSIM.QuotesourceGroupRun.Builder builderForValue) {
        if (quotesourceGroupRunListBuilder_ == null) {
          ensureQuotesourceGroupRunListIsMutable();
          quotesourceGroupRunList_.add(index, builderForValue.build());
          onChanged();
        } else {
          quotesourceGroupRunListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public Builder addAllQuotesourceGroupRunList(
          java.lang.Iterable<? extends MSIM.QuotesourceGroupRun> values) {
        if (quotesourceGroupRunListBuilder_ == null) {
          ensureQuotesourceGroupRunListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, quotesourceGroupRunList_);
          onChanged();
        } else {
          quotesourceGroupRunListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public Builder clearQuotesourceGroupRunList() {
        if (quotesourceGroupRunListBuilder_ == null) {
          quotesourceGroupRunList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          quotesourceGroupRunListBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public Builder removeQuotesourceGroupRunList(int index) {
        if (quotesourceGroupRunListBuilder_ == null) {
          ensureQuotesourceGroupRunListIsMutable();
          quotesourceGroupRunList_.remove(index);
          onChanged();
        } else {
          quotesourceGroupRunListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public MSIM.QuotesourceGroupRun.Builder getQuotesourceGroupRunListBuilder(
          int index) {
        return getQuotesourceGroupRunListFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public MSIM.QuotesourceGroupRunOrBuilder getQuotesourceGroupRunListOrBuilder(
          int index) {
        if (quotesourceGroupRunListBuilder_ == null) {
          return quotesourceGroupRunList_.get(index);  } else {
          return quotesourceGroupRunListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public java.util.List<? extends MSIM.QuotesourceGroupRunOrBuilder> 
           getQuotesourceGroupRunListOrBuilderList() {
        if (quotesourceGroupRunListBuilder_ != null) {
          return quotesourceGroupRunListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(quotesourceGroupRunList_);
        }
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public MSIM.QuotesourceGroupRun.Builder addQuotesourceGroupRunListBuilder() {
        return getQuotesourceGroupRunListFieldBuilder().addBuilder(
            MSIM.QuotesourceGroupRun.getDefaultInstance());
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public MSIM.QuotesourceGroupRun.Builder addQuotesourceGroupRunListBuilder(
          int index) {
        return getQuotesourceGroupRunListFieldBuilder().addBuilder(
            index, MSIM.QuotesourceGroupRun.getDefaultInstance());
      }
      /**
       * <pre>
       * QuotesourceGroupRun 市场及其日计划列表
       * </pre>
       *
       * <code>repeated .QuotesourceGroupRun QuotesourceGroupRunList = 5;</code>
       */
      public java.util.List<MSIM.QuotesourceGroupRun.Builder> 
           getQuotesourceGroupRunListBuilderList() {
        return getQuotesourceGroupRunListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.QuotesourceGroupRun, MSIM.QuotesourceGroupRun.Builder, MSIM.QuotesourceGroupRunOrBuilder> 
          getQuotesourceGroupRunListFieldBuilder() {
        if (quotesourceGroupRunListBuilder_ == null) {
          quotesourceGroupRunListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              MSIM.QuotesourceGroupRun, MSIM.QuotesourceGroupRun.Builder, MSIM.QuotesourceGroupRunOrBuilder>(
                  quotesourceGroupRunList_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          quotesourceGroupRunList_ = null;
        }
        return quotesourceGroupRunListBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:QuotesourceGroupRunQueryRsp)
    }

    // @@protoc_insertion_point(class_scope:QuotesourceGroupRunQueryRsp)
    private static final MSIM.QuotesourceGroupRunQueryRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.QuotesourceGroupRunQueryRsp();
    }

    public static MSIM.QuotesourceGroupRunQueryRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<QuotesourceGroupRunQueryRsp>
        PARSER = new com.google.protobuf.AbstractParser<QuotesourceGroupRunQueryRsp>() {
      @java.lang.Override
      public QuotesourceGroupRunQueryRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new QuotesourceGroupRunQueryRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.QuotesourceGroupRunQueryRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface QuotesourceGroupRunOrBuilder extends
      // @@protoc_insertion_point(interface_extends:QuotesourceGroupRun)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * uint32 行情源分组id
     * </pre>
     *
     * <code>optional uint32 QuotesourceGroupId = 1;</code>
     * @return Whether the quotesourceGroupId field is set.
     */
    boolean hasQuotesourceGroupId();
    /**
     * <pre>
     * uint32 行情源分组id
     * </pre>
     *
     * <code>optional uint32 QuotesourceGroupId = 1;</code>
     * @return The quotesourceGroupId.
     */
    int getQuotesourceGroupId();

    /**
     * <pre>
     * uint32 商品组id
     * </pre>
     *
     * <code>optional uint32 GoodsGroupId = 2;</code>
     * @return Whether the goodsGroupId field is set.
     */
    boolean hasGoodsGroupId();
    /**
     * <pre>
     * uint32 商品组id
     * </pre>
     *
     * <code>optional uint32 GoodsGroupId = 2;</code>
     * @return The goodsGroupId.
     */
    int getGoodsGroupId();

    /**
     * <pre>
     * uint32 市场id
     * </pre>
     *
     * <code>optional uint32 MarketId = 3;</code>
     * @return Whether the marketId field is set.
     */
    boolean hasMarketId();
    /**
     * <pre>
     * uint32 市场id
     * </pre>
     *
     * <code>optional uint32 MarketId = 3;</code>
     * @return The marketId.
     */
    int getMarketId();

    /**
     * <pre>
     * DayRun 行情源分组日运行计划表
     * </pre>
     *
     * <code>repeated .DayRun DayRunList = 4;</code>
     */
    java.util.List<MSIM.DayRun> 
        getDayRunListList();
    /**
     * <pre>
     * DayRun 行情源分组日运行计划表
     * </pre>
     *
     * <code>repeated .DayRun DayRunList = 4;</code>
     */
    MSIM.DayRun getDayRunList(int index);
    /**
     * <pre>
     * DayRun 行情源分组日运行计划表
     * </pre>
     *
     * <code>repeated .DayRun DayRunList = 4;</code>
     */
    int getDayRunListCount();
    /**
     * <pre>
     * DayRun 行情源分组日运行计划表
     * </pre>
     *
     * <code>repeated .DayRun DayRunList = 4;</code>
     */
    java.util.List<? extends MSIM.DayRunOrBuilder> 
        getDayRunListOrBuilderList();
    /**
     * <pre>
     * DayRun 行情源分组日运行计划表
     * </pre>
     *
     * <code>repeated .DayRun DayRunList = 4;</code>
     */
    MSIM.DayRunOrBuilder getDayRunListOrBuilder(
        int index);
  }
  /**
   * <pre>
   * 行情源分组及其日计划信息 1 5 66
   * </pre>
   *
   * Protobuf type {@code QuotesourceGroupRun}
   */
  public static final class QuotesourceGroupRun extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:QuotesourceGroupRun)
      QuotesourceGroupRunOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use QuotesourceGroupRun.newBuilder() to construct.
    private QuotesourceGroupRun(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private QuotesourceGroupRun() {
      dayRunList_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new QuotesourceGroupRun();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private QuotesourceGroupRun(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              quotesourceGroupId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              goodsGroupId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              marketId_ = input.readUInt32();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                dayRunList_ = new java.util.ArrayList<MSIM.DayRun>();
                mutable_bitField0_ |= 0x00000008;
              }
              dayRunList_.add(
                  input.readMessage(MSIM.DayRun.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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_ & 0x00000008) != 0)) {
          dayRunList_ = java.util.Collections.unmodifiableList(dayRunList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_QuotesourceGroupRun_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_QuotesourceGroupRun_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.QuotesourceGroupRun.class, MSIM.QuotesourceGroupRun.Builder.class);
    }

    private int bitField0_;
    public static final int QUOTESOURCEGROUPID_FIELD_NUMBER = 1;
    private int quotesourceGroupId_;
    /**
     * <pre>
     * uint32 行情源分组id
     * </pre>
     *
     * <code>optional uint32 QuotesourceGroupId = 1;</code>
     * @return Whether the quotesourceGroupId field is set.
     */
    @java.lang.Override
    public boolean hasQuotesourceGroupId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * uint32 行情源分组id
     * </pre>
     *
     * <code>optional uint32 QuotesourceGroupId = 1;</code>
     * @return The quotesourceGroupId.
     */
    @java.lang.Override
    public int getQuotesourceGroupId() {
      return quotesourceGroupId_;
    }

    public static final int GOODSGROUPID_FIELD_NUMBER = 2;
    private int goodsGroupId_;
    /**
     * <pre>
     * uint32 商品组id
     * </pre>
     *
     * <code>optional uint32 GoodsGroupId = 2;</code>
     * @return Whether the goodsGroupId field is set.
     */
    @java.lang.Override
    public boolean hasGoodsGroupId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint32 商品组id
     * </pre>
     *
     * <code>optional uint32 GoodsGroupId = 2;</code>
     * @return The goodsGroupId.
     */
    @java.lang.Override
    public int getGoodsGroupId() {
      return goodsGroupId_;
    }

    public static final int MARKETID_FIELD_NUMBER = 3;
    private int marketId_;
    /**
     * <pre>
     * uint32 市场id
     * </pre>
     *
     * <code>optional uint32 MarketId = 3;</code>
     * @return Whether the marketId field is set.
     */
    @java.lang.Override
    public boolean hasMarketId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint32 市场id
     * </pre>
     *
     * <code>optional uint32 MarketId = 3;</code>
     * @return The marketId.
     */
    @java.lang.Override
    public int getMarketId() {
      return marketId_;
    }

    public static final int DAYRUNLIST_FIELD_NUMBER = 4;
    private java.util.List<MSIM.DayRun> dayRunList_;
    /**
     * <pre>
     * DayRun 行情源分组日运行计划表
     * </pre>
     *
     * <code>repeated .DayRun DayRunList = 4;</code>
     */
    @java.lang.Override
    public java.util.List<MSIM.DayRun> getDayRunListList() {
      return dayRunList_;
    }
    /**
     * <pre>
     * DayRun 行情源分组日运行计划表
     * </pre>
     *
     * <code>repeated .DayRun DayRunList = 4;</code>
     */
    @java.lang.Override
    public java.util.List<? extends MSIM.DayRunOrBuilder> 
        getDayRunListOrBuilderList() {
      return dayRunList_;
    }
    /**
     * <pre>
     * DayRun 行情源分组日运行计划表
     * </pre>
     *
     * <code>repeated .DayRun DayRunList = 4;</code>
     */
    @java.lang.Override
    public int getDayRunListCount() {
      return dayRunList_.size();
    }
    /**
     * <pre>
     * DayRun 行情源分组日运行计划表
     * </pre>
     *
     * <code>repeated .DayRun DayRunList = 4;</code>
     */
    @java.lang.Override
    public MSIM.DayRun getDayRunList(int index) {
      return dayRunList_.get(index);
    }
    /**
     * <pre>
     * DayRun 行情源分组日运行计划表
     * </pre>
     *
     * <code>repeated .DayRun DayRunList = 4;</code>
     */
    @java.lang.Override
    public MSIM.DayRunOrBuilder getDayRunListOrBuilder(
        int index) {
      return dayRunList_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, quotesourceGroupId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, goodsGroupId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, marketId_);
      }
      for (int i = 0; i < dayRunList_.size(); i++) {
        output.writeMessage(4, dayRunList_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, quotesourceGroupId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, goodsGroupId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, marketId_);
      }
      for (int i = 0; i < dayRunList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, dayRunList_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.QuotesourceGroupRun)) {
        return super.equals(obj);
      }
      MSIM.QuotesourceGroupRun other = (MSIM.QuotesourceGroupRun) obj;

      if (hasQuotesourceGroupId() != other.hasQuotesourceGroupId()) return false;
      if (hasQuotesourceGroupId()) {
        if (getQuotesourceGroupId()
            != other.getQuotesourceGroupId()) return false;
      }
      if (hasGoodsGroupId() != other.hasGoodsGroupId()) return false;
      if (hasGoodsGroupId()) {
        if (getGoodsGroupId()
            != other.getGoodsGroupId()) return false;
      }
      if (hasMarketId() != other.hasMarketId()) return false;
      if (hasMarketId()) {
        if (getMarketId()
            != other.getMarketId()) return false;
      }
      if (!getDayRunListList()
          .equals(other.getDayRunListList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasQuotesourceGroupId()) {
        hash = (37 * hash) + QUOTESOURCEGROUPID_FIELD_NUMBER;
        hash = (53 * hash) + getQuotesourceGroupId();
      }
      if (hasGoodsGroupId()) {
        hash = (37 * hash) + GOODSGROUPID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsGroupId();
      }
      if (hasMarketId()) {
        hash = (37 * hash) + MARKETID_FIELD_NUMBER;
        hash = (53 * hash) + getMarketId();
      }
      if (getDayRunListCount() > 0) {
        hash = (37 * hash) + DAYRUNLIST_FIELD_NUMBER;
        hash = (53 * hash) + getDayRunListList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.QuotesourceGroupRun parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.QuotesourceGroupRun parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.QuotesourceGroupRun parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.QuotesourceGroupRun parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.QuotesourceGroupRun parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.QuotesourceGroupRun parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.QuotesourceGroupRun parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.QuotesourceGroupRun 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 MSIM.QuotesourceGroupRun parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.QuotesourceGroupRun 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 MSIM.QuotesourceGroupRun parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.QuotesourceGroupRun parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.QuotesourceGroupRun prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 行情源分组及其日计划信息 1 5 66
     * </pre>
     *
     * Protobuf type {@code QuotesourceGroupRun}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:QuotesourceGroupRun)
        MSIM.QuotesourceGroupRunOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_QuotesourceGroupRun_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_QuotesourceGroupRun_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.QuotesourceGroupRun.class, MSIM.QuotesourceGroupRun.Builder.class);
      }

      // Construct using MSIM.QuotesourceGroupRun.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getDayRunListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        quotesourceGroupId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        goodsGroupId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        marketId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (dayRunListBuilder_ == null) {
          dayRunList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          dayRunListBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_QuotesourceGroupRun_descriptor;
      }

      @java.lang.Override
      public MSIM.QuotesourceGroupRun getDefaultInstanceForType() {
        return MSIM.QuotesourceGroupRun.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.QuotesourceGroupRun build() {
        MSIM.QuotesourceGroupRun result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.QuotesourceGroupRun buildPartial() {
        MSIM.QuotesourceGroupRun result = new MSIM.QuotesourceGroupRun(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.quotesourceGroupId_ = quotesourceGroupId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.goodsGroupId_ = goodsGroupId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.marketId_ = marketId_;
          to_bitField0_ |= 0x00000004;
        }
        if (dayRunListBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            dayRunList_ = java.util.Collections.unmodifiableList(dayRunList_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.dayRunList_ = dayRunList_;
        } else {
          result.dayRunList_ = dayRunListBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.QuotesourceGroupRun) {
          return mergeFrom((MSIM.QuotesourceGroupRun)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.QuotesourceGroupRun other) {
        if (other == MSIM.QuotesourceGroupRun.getDefaultInstance()) return this;
        if (other.hasQuotesourceGroupId()) {
          setQuotesourceGroupId(other.getQuotesourceGroupId());
        }
        if (other.hasGoodsGroupId()) {
          setGoodsGroupId(other.getGoodsGroupId());
        }
        if (other.hasMarketId()) {
          setMarketId(other.getMarketId());
        }
        if (dayRunListBuilder_ == null) {
          if (!other.dayRunList_.isEmpty()) {
            if (dayRunList_.isEmpty()) {
              dayRunList_ = other.dayRunList_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureDayRunListIsMutable();
              dayRunList_.addAll(other.dayRunList_);
            }
            onChanged();
          }
        } else {
          if (!other.dayRunList_.isEmpty()) {
            if (dayRunListBuilder_.isEmpty()) {
              dayRunListBuilder_.dispose();
              dayRunListBuilder_ = null;
              dayRunList_ = other.dayRunList_;
              bitField0_ = (bitField0_ & ~0x00000008);
              dayRunListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDayRunListFieldBuilder() : null;
            } else {
              dayRunListBuilder_.addAllMessages(other.dayRunList_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.QuotesourceGroupRun parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.QuotesourceGroupRun) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int quotesourceGroupId_ ;
      /**
       * <pre>
       * uint32 行情源分组id
       * </pre>
       *
       * <code>optional uint32 QuotesourceGroupId = 1;</code>
       * @return Whether the quotesourceGroupId field is set.
       */
      @java.lang.Override
      public boolean hasQuotesourceGroupId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * uint32 行情源分组id
       * </pre>
       *
       * <code>optional uint32 QuotesourceGroupId = 1;</code>
       * @return The quotesourceGroupId.
       */
      @java.lang.Override
      public int getQuotesourceGroupId() {
        return quotesourceGroupId_;
      }
      /**
       * <pre>
       * uint32 行情源分组id
       * </pre>
       *
       * <code>optional uint32 QuotesourceGroupId = 1;</code>
       * @param value The quotesourceGroupId to set.
       * @return This builder for chaining.
       */
      public Builder setQuotesourceGroupId(int value) {
        bitField0_ |= 0x00000001;
        quotesourceGroupId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 行情源分组id
       * </pre>
       *
       * <code>optional uint32 QuotesourceGroupId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearQuotesourceGroupId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        quotesourceGroupId_ = 0;
        onChanged();
        return this;
      }

      private int goodsGroupId_ ;
      /**
       * <pre>
       * uint32 商品组id
       * </pre>
       *
       * <code>optional uint32 GoodsGroupId = 2;</code>
       * @return Whether the goodsGroupId field is set.
       */
      @java.lang.Override
      public boolean hasGoodsGroupId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint32 商品组id
       * </pre>
       *
       * <code>optional uint32 GoodsGroupId = 2;</code>
       * @return The goodsGroupId.
       */
      @java.lang.Override
      public int getGoodsGroupId() {
        return goodsGroupId_;
      }
      /**
       * <pre>
       * uint32 商品组id
       * </pre>
       *
       * <code>optional uint32 GoodsGroupId = 2;</code>
       * @param value The goodsGroupId to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsGroupId(int value) {
        bitField0_ |= 0x00000002;
        goodsGroupId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 商品组id
       * </pre>
       *
       * <code>optional uint32 GoodsGroupId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsGroupId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        goodsGroupId_ = 0;
        onChanged();
        return this;
      }

      private int marketId_ ;
      /**
       * <pre>
       * uint32 市场id
       * </pre>
       *
       * <code>optional uint32 MarketId = 3;</code>
       * @return Whether the marketId field is set.
       */
      @java.lang.Override
      public boolean hasMarketId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint32 市场id
       * </pre>
       *
       * <code>optional uint32 MarketId = 3;</code>
       * @return The marketId.
       */
      @java.lang.Override
      public int getMarketId() {
        return marketId_;
      }
      /**
       * <pre>
       * uint32 市场id
       * </pre>
       *
       * <code>optional uint32 MarketId = 3;</code>
       * @param value The marketId to set.
       * @return This builder for chaining.
       */
      public Builder setMarketId(int value) {
        bitField0_ |= 0x00000004;
        marketId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 市场id
       * </pre>
       *
       * <code>optional uint32 MarketId = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMarketId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        marketId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<MSIM.DayRun> dayRunList_ =
        java.util.Collections.emptyList();
      private void ensureDayRunListIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          dayRunList_ = new java.util.ArrayList<MSIM.DayRun>(dayRunList_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.DayRun, MSIM.DayRun.Builder, MSIM.DayRunOrBuilder> dayRunListBuilder_;

      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public java.util.List<MSIM.DayRun> getDayRunListList() {
        if (dayRunListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dayRunList_);
        } else {
          return dayRunListBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public int getDayRunListCount() {
        if (dayRunListBuilder_ == null) {
          return dayRunList_.size();
        } else {
          return dayRunListBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public MSIM.DayRun getDayRunList(int index) {
        if (dayRunListBuilder_ == null) {
          return dayRunList_.get(index);
        } else {
          return dayRunListBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public Builder setDayRunList(
          int index, MSIM.DayRun value) {
        if (dayRunListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDayRunListIsMutable();
          dayRunList_.set(index, value);
          onChanged();
        } else {
          dayRunListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public Builder setDayRunList(
          int index, MSIM.DayRun.Builder builderForValue) {
        if (dayRunListBuilder_ == null) {
          ensureDayRunListIsMutable();
          dayRunList_.set(index, builderForValue.build());
          onChanged();
        } else {
          dayRunListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public Builder addDayRunList(MSIM.DayRun value) {
        if (dayRunListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDayRunListIsMutable();
          dayRunList_.add(value);
          onChanged();
        } else {
          dayRunListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public Builder addDayRunList(
          int index, MSIM.DayRun value) {
        if (dayRunListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDayRunListIsMutable();
          dayRunList_.add(index, value);
          onChanged();
        } else {
          dayRunListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public Builder addDayRunList(
          MSIM.DayRun.Builder builderForValue) {
        if (dayRunListBuilder_ == null) {
          ensureDayRunListIsMutable();
          dayRunList_.add(builderForValue.build());
          onChanged();
        } else {
          dayRunListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public Builder addDayRunList(
          int index, MSIM.DayRun.Builder builderForValue) {
        if (dayRunListBuilder_ == null) {
          ensureDayRunListIsMutable();
          dayRunList_.add(index, builderForValue.build());
          onChanged();
        } else {
          dayRunListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public Builder addAllDayRunList(
          java.lang.Iterable<? extends MSIM.DayRun> values) {
        if (dayRunListBuilder_ == null) {
          ensureDayRunListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dayRunList_);
          onChanged();
        } else {
          dayRunListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public Builder clearDayRunList() {
        if (dayRunListBuilder_ == null) {
          dayRunList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          dayRunListBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public Builder removeDayRunList(int index) {
        if (dayRunListBuilder_ == null) {
          ensureDayRunListIsMutable();
          dayRunList_.remove(index);
          onChanged();
        } else {
          dayRunListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public MSIM.DayRun.Builder getDayRunListBuilder(
          int index) {
        return getDayRunListFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public MSIM.DayRunOrBuilder getDayRunListOrBuilder(
          int index) {
        if (dayRunListBuilder_ == null) {
          return dayRunList_.get(index);  } else {
          return dayRunListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public java.util.List<? extends MSIM.DayRunOrBuilder> 
           getDayRunListOrBuilderList() {
        if (dayRunListBuilder_ != null) {
          return dayRunListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dayRunList_);
        }
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public MSIM.DayRun.Builder addDayRunListBuilder() {
        return getDayRunListFieldBuilder().addBuilder(
            MSIM.DayRun.getDefaultInstance());
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public MSIM.DayRun.Builder addDayRunListBuilder(
          int index) {
        return getDayRunListFieldBuilder().addBuilder(
            index, MSIM.DayRun.getDefaultInstance());
      }
      /**
       * <pre>
       * DayRun 行情源分组日运行计划表
       * </pre>
       *
       * <code>repeated .DayRun DayRunList = 4;</code>
       */
      public java.util.List<MSIM.DayRun.Builder> 
           getDayRunListBuilderList() {
        return getDayRunListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          MSIM.DayRun, MSIM.DayRun.Builder, MSIM.DayRunOrBuilder> 
          getDayRunListFieldBuilder() {
        if (dayRunListBuilder_ == null) {
          dayRunListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              MSIM.DayRun, MSIM.DayRun.Builder, MSIM.DayRunOrBuilder>(
                  dayRunList_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          dayRunList_ = null;
        }
        return dayRunListBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:QuotesourceGroupRun)
    }

    // @@protoc_insertion_point(class_scope:QuotesourceGroupRun)
    private static final MSIM.QuotesourceGroupRun DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.QuotesourceGroupRun();
    }

    public static MSIM.QuotesourceGroupRun getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<QuotesourceGroupRun>
        PARSER = new com.google.protobuf.AbstractParser<QuotesourceGroupRun>() {
      @java.lang.Override
      public QuotesourceGroupRun parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new QuotesourceGroupRun(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.QuotesourceGroupRun getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DayRunOrBuilder extends
      // @@protoc_insertion_point(interface_extends:DayRun)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * uint32 交易归属日,星期几
     * </pre>
     *
     * <code>optional uint32 TradeWeekDay = 1;</code>
     * @return Whether the tradeWeekDay field is set.
     */
    boolean hasTradeWeekDay();
    /**
     * <pre>
     * uint32 交易归属日,星期几
     * </pre>
     *
     * <code>optional uint32 TradeWeekDay = 1;</code>
     * @return The tradeWeekDay.
     */
    int getTradeWeekDay();

    /**
     * <pre>
     * uint32 运行阶段
     * </pre>
     *
     * <code>optional uint32 RunStep = 2;</code>
     * @return Whether the runStep field is set.
     */
    boolean hasRunStep();
    /**
     * <pre>
     * uint32 运行阶段
     * </pre>
     *
     * <code>optional uint32 RunStep = 2;</code>
     * @return The runStep.
     */
    int getRunStep();

    /**
     * <pre>
     * uint32 起始周几
     * </pre>
     *
     * <code>optional uint32 StartWeekDay = 3;</code>
     * @return Whether the startWeekDay field is set.
     */
    boolean hasStartWeekDay();
    /**
     * <pre>
     * uint32 起始周几
     * </pre>
     *
     * <code>optional uint32 StartWeekDay = 3;</code>
     * @return The startWeekDay.
     */
    int getStartWeekDay();

    /**
     * <pre>
     * string 起始时间
     * </pre>
     *
     * <code>optional string StartTime = 4;</code>
     * @return Whether the startTime field is set.
     */
    boolean hasStartTime();
    /**
     * <pre>
     * string 起始时间
     * </pre>
     *
     * <code>optional string StartTime = 4;</code>
     * @return The startTime.
     */
    java.lang.String getStartTime();
    /**
     * <pre>
     * string 起始时间
     * </pre>
     *
     * <code>optional string StartTime = 4;</code>
     * @return The bytes for startTime.
     */
    com.google.protobuf.ByteString
        getStartTimeBytes();

    /**
     * <pre>
     * uint32 结束周几
     * </pre>
     *
     * <code>optional uint32 EndWeekDay = 5;</code>
     * @return Whether the endWeekDay field is set.
     */
    boolean hasEndWeekDay();
    /**
     * <pre>
     * uint32 结束周几
     * </pre>
     *
     * <code>optional uint32 EndWeekDay = 5;</code>
     * @return The endWeekDay.
     */
    int getEndWeekDay();

    /**
     * <pre>
     * string 结束时间
     * </pre>
     *
     * <code>optional string EndTime = 6;</code>
     * @return Whether the endTime field is set.
     */
    boolean hasEndTime();
    /**
     * <pre>
     * string 结束时间
     * </pre>
     *
     * <code>optional string EndTime = 6;</code>
     * @return The endTime.
     */
    java.lang.String getEndTime();
    /**
     * <pre>
     * string 结束时间
     * </pre>
     *
     * <code>optional string EndTime = 6;</code>
     * @return The bytes for endTime.
     */
    com.google.protobuf.ByteString
        getEndTimeBytes();
  }
  /**
   * <pre>
   * 市场日运行计划信息 1 5 26
   * </pre>
   *
   * Protobuf type {@code DayRun}
   */
  public static final class DayRun extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:DayRun)
      DayRunOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DayRun.newBuilder() to construct.
    private DayRun(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DayRun() {
      startTime_ = "";
      endTime_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DayRun();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DayRun(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              tradeWeekDay_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              runStep_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              startWeekDay_ = input.readUInt32();
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              startTime_ = bs;
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              endWeekDay_ = input.readUInt32();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              endTime_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_DayRun_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_DayRun_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.DayRun.class, MSIM.DayRun.Builder.class);
    }

    private int bitField0_;
    public static final int TRADEWEEKDAY_FIELD_NUMBER = 1;
    private int tradeWeekDay_;
    /**
     * <pre>
     * uint32 交易归属日,星期几
     * </pre>
     *
     * <code>optional uint32 TradeWeekDay = 1;</code>
     * @return Whether the tradeWeekDay field is set.
     */
    @java.lang.Override
    public boolean hasTradeWeekDay() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * uint32 交易归属日,星期几
     * </pre>
     *
     * <code>optional uint32 TradeWeekDay = 1;</code>
     * @return The tradeWeekDay.
     */
    @java.lang.Override
    public int getTradeWeekDay() {
      return tradeWeekDay_;
    }

    public static final int RUNSTEP_FIELD_NUMBER = 2;
    private int runStep_;
    /**
     * <pre>
     * uint32 运行阶段
     * </pre>
     *
     * <code>optional uint32 RunStep = 2;</code>
     * @return Whether the runStep field is set.
     */
    @java.lang.Override
    public boolean hasRunStep() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint32 运行阶段
     * </pre>
     *
     * <code>optional uint32 RunStep = 2;</code>
     * @return The runStep.
     */
    @java.lang.Override
    public int getRunStep() {
      return runStep_;
    }

    public static final int STARTWEEKDAY_FIELD_NUMBER = 3;
    private int startWeekDay_;
    /**
     * <pre>
     * uint32 起始周几
     * </pre>
     *
     * <code>optional uint32 StartWeekDay = 3;</code>
     * @return Whether the startWeekDay field is set.
     */
    @java.lang.Override
    public boolean hasStartWeekDay() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint32 起始周几
     * </pre>
     *
     * <code>optional uint32 StartWeekDay = 3;</code>
     * @return The startWeekDay.
     */
    @java.lang.Override
    public int getStartWeekDay() {
      return startWeekDay_;
    }

    public static final int STARTTIME_FIELD_NUMBER = 4;
    private volatile java.lang.Object startTime_;
    /**
     * <pre>
     * string 起始时间
     * </pre>
     *
     * <code>optional string StartTime = 4;</code>
     * @return Whether the startTime field is set.
     */
    @java.lang.Override
    public boolean hasStartTime() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * string 起始时间
     * </pre>
     *
     * <code>optional string StartTime = 4;</code>
     * @return The startTime.
     */
    @java.lang.Override
    public java.lang.String getStartTime() {
      java.lang.Object ref = startTime_;
      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();
        if (bs.isValidUtf8()) {
          startTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 起始时间
     * </pre>
     *
     * <code>optional string StartTime = 4;</code>
     * @return The bytes for startTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getStartTimeBytes() {
      java.lang.Object ref = startTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        startTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ENDWEEKDAY_FIELD_NUMBER = 5;
    private int endWeekDay_;
    /**
     * <pre>
     * uint32 结束周几
     * </pre>
     *
     * <code>optional uint32 EndWeekDay = 5;</code>
     * @return Whether the endWeekDay field is set.
     */
    @java.lang.Override
    public boolean hasEndWeekDay() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 结束周几
     * </pre>
     *
     * <code>optional uint32 EndWeekDay = 5;</code>
     * @return The endWeekDay.
     */
    @java.lang.Override
    public int getEndWeekDay() {
      return endWeekDay_;
    }

    public static final int ENDTIME_FIELD_NUMBER = 6;
    private volatile java.lang.Object endTime_;
    /**
     * <pre>
     * string 结束时间
     * </pre>
     *
     * <code>optional string EndTime = 6;</code>
     * @return Whether the endTime field is set.
     */
    @java.lang.Override
    public boolean hasEndTime() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * string 结束时间
     * </pre>
     *
     * <code>optional string EndTime = 6;</code>
     * @return The endTime.
     */
    @java.lang.Override
    public java.lang.String getEndTime() {
      java.lang.Object ref = endTime_;
      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();
        if (bs.isValidUtf8()) {
          endTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 结束时间
     * </pre>
     *
     * <code>optional string EndTime = 6;</code>
     * @return The bytes for endTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEndTimeBytes() {
      java.lang.Object ref = endTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        endTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, tradeWeekDay_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, runStep_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, startWeekDay_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, startTime_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, endWeekDay_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, endTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, tradeWeekDay_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, runStep_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, startWeekDay_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, startTime_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, endWeekDay_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, endTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.DayRun)) {
        return super.equals(obj);
      }
      MSIM.DayRun other = (MSIM.DayRun) obj;

      if (hasTradeWeekDay() != other.hasTradeWeekDay()) return false;
      if (hasTradeWeekDay()) {
        if (getTradeWeekDay()
            != other.getTradeWeekDay()) return false;
      }
      if (hasRunStep() != other.hasRunStep()) return false;
      if (hasRunStep()) {
        if (getRunStep()
            != other.getRunStep()) return false;
      }
      if (hasStartWeekDay() != other.hasStartWeekDay()) return false;
      if (hasStartWeekDay()) {
        if (getStartWeekDay()
            != other.getStartWeekDay()) return false;
      }
      if (hasStartTime() != other.hasStartTime()) return false;
      if (hasStartTime()) {
        if (!getStartTime()
            .equals(other.getStartTime())) return false;
      }
      if (hasEndWeekDay() != other.hasEndWeekDay()) return false;
      if (hasEndWeekDay()) {
        if (getEndWeekDay()
            != other.getEndWeekDay()) return false;
      }
      if (hasEndTime() != other.hasEndTime()) return false;
      if (hasEndTime()) {
        if (!getEndTime()
            .equals(other.getEndTime())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTradeWeekDay()) {
        hash = (37 * hash) + TRADEWEEKDAY_FIELD_NUMBER;
        hash = (53 * hash) + getTradeWeekDay();
      }
      if (hasRunStep()) {
        hash = (37 * hash) + RUNSTEP_FIELD_NUMBER;
        hash = (53 * hash) + getRunStep();
      }
      if (hasStartWeekDay()) {
        hash = (37 * hash) + STARTWEEKDAY_FIELD_NUMBER;
        hash = (53 * hash) + getStartWeekDay();
      }
      if (hasStartTime()) {
        hash = (37 * hash) + STARTTIME_FIELD_NUMBER;
        hash = (53 * hash) + getStartTime().hashCode();
      }
      if (hasEndWeekDay()) {
        hash = (37 * hash) + ENDWEEKDAY_FIELD_NUMBER;
        hash = (53 * hash) + getEndWeekDay();
      }
      if (hasEndTime()) {
        hash = (37 * hash) + ENDTIME_FIELD_NUMBER;
        hash = (53 * hash) + getEndTime().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.DayRun parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.DayRun parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.DayRun parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.DayRun parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.DayRun parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.DayRun parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.DayRun parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.DayRun 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 MSIM.DayRun parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.DayRun 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 MSIM.DayRun parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.DayRun parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.DayRun prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 市场日运行计划信息 1 5 26
     * </pre>
     *
     * Protobuf type {@code DayRun}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:DayRun)
        MSIM.DayRunOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_DayRun_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_DayRun_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.DayRun.class, MSIM.DayRun.Builder.class);
      }

      // Construct using MSIM.DayRun.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        tradeWeekDay_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        runStep_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        startWeekDay_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        startTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        endWeekDay_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        endTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_DayRun_descriptor;
      }

      @java.lang.Override
      public MSIM.DayRun getDefaultInstanceForType() {
        return MSIM.DayRun.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.DayRun build() {
        MSIM.DayRun result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.DayRun buildPartial() {
        MSIM.DayRun result = new MSIM.DayRun(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.tradeWeekDay_ = tradeWeekDay_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.runStep_ = runStep_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.startWeekDay_ = startWeekDay_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.startTime_ = startTime_;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.endWeekDay_ = endWeekDay_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.endTime_ = endTime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.DayRun) {
          return mergeFrom((MSIM.DayRun)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.DayRun other) {
        if (other == MSIM.DayRun.getDefaultInstance()) return this;
        if (other.hasTradeWeekDay()) {
          setTradeWeekDay(other.getTradeWeekDay());
        }
        if (other.hasRunStep()) {
          setRunStep(other.getRunStep());
        }
        if (other.hasStartWeekDay()) {
          setStartWeekDay(other.getStartWeekDay());
        }
        if (other.hasStartTime()) {
          bitField0_ |= 0x00000008;
          startTime_ = other.startTime_;
          onChanged();
        }
        if (other.hasEndWeekDay()) {
          setEndWeekDay(other.getEndWeekDay());
        }
        if (other.hasEndTime()) {
          bitField0_ |= 0x00000020;
          endTime_ = other.endTime_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.DayRun parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.DayRun) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int tradeWeekDay_ ;
      /**
       * <pre>
       * uint32 交易归属日,星期几
       * </pre>
       *
       * <code>optional uint32 TradeWeekDay = 1;</code>
       * @return Whether the tradeWeekDay field is set.
       */
      @java.lang.Override
      public boolean hasTradeWeekDay() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * uint32 交易归属日,星期几
       * </pre>
       *
       * <code>optional uint32 TradeWeekDay = 1;</code>
       * @return The tradeWeekDay.
       */
      @java.lang.Override
      public int getTradeWeekDay() {
        return tradeWeekDay_;
      }
      /**
       * <pre>
       * uint32 交易归属日,星期几
       * </pre>
       *
       * <code>optional uint32 TradeWeekDay = 1;</code>
       * @param value The tradeWeekDay to set.
       * @return This builder for chaining.
       */
      public Builder setTradeWeekDay(int value) {
        bitField0_ |= 0x00000001;
        tradeWeekDay_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 交易归属日,星期几
       * </pre>
       *
       * <code>optional uint32 TradeWeekDay = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTradeWeekDay() {
        bitField0_ = (bitField0_ & ~0x00000001);
        tradeWeekDay_ = 0;
        onChanged();
        return this;
      }

      private int runStep_ ;
      /**
       * <pre>
       * uint32 运行阶段
       * </pre>
       *
       * <code>optional uint32 RunStep = 2;</code>
       * @return Whether the runStep field is set.
       */
      @java.lang.Override
      public boolean hasRunStep() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint32 运行阶段
       * </pre>
       *
       * <code>optional uint32 RunStep = 2;</code>
       * @return The runStep.
       */
      @java.lang.Override
      public int getRunStep() {
        return runStep_;
      }
      /**
       * <pre>
       * uint32 运行阶段
       * </pre>
       *
       * <code>optional uint32 RunStep = 2;</code>
       * @param value The runStep to set.
       * @return This builder for chaining.
       */
      public Builder setRunStep(int value) {
        bitField0_ |= 0x00000002;
        runStep_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 运行阶段
       * </pre>
       *
       * <code>optional uint32 RunStep = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRunStep() {
        bitField0_ = (bitField0_ & ~0x00000002);
        runStep_ = 0;
        onChanged();
        return this;
      }

      private int startWeekDay_ ;
      /**
       * <pre>
       * uint32 起始周几
       * </pre>
       *
       * <code>optional uint32 StartWeekDay = 3;</code>
       * @return Whether the startWeekDay field is set.
       */
      @java.lang.Override
      public boolean hasStartWeekDay() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint32 起始周几
       * </pre>
       *
       * <code>optional uint32 StartWeekDay = 3;</code>
       * @return The startWeekDay.
       */
      @java.lang.Override
      public int getStartWeekDay() {
        return startWeekDay_;
      }
      /**
       * <pre>
       * uint32 起始周几
       * </pre>
       *
       * <code>optional uint32 StartWeekDay = 3;</code>
       * @param value The startWeekDay to set.
       * @return This builder for chaining.
       */
      public Builder setStartWeekDay(int value) {
        bitField0_ |= 0x00000004;
        startWeekDay_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 起始周几
       * </pre>
       *
       * <code>optional uint32 StartWeekDay = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartWeekDay() {
        bitField0_ = (bitField0_ & ~0x00000004);
        startWeekDay_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object startTime_ = "";
      /**
       * <pre>
       * string 起始时间
       * </pre>
       *
       * <code>optional string StartTime = 4;</code>
       * @return Whether the startTime field is set.
       */
      public boolean hasStartTime() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * string 起始时间
       * </pre>
       *
       * <code>optional string StartTime = 4;</code>
       * @return The startTime.
       */
      public java.lang.String getStartTime() {
        java.lang.Object ref = startTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            startTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 起始时间
       * </pre>
       *
       * <code>optional string StartTime = 4;</code>
       * @return The bytes for startTime.
       */
      public com.google.protobuf.ByteString
          getStartTimeBytes() {
        java.lang.Object ref = startTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          startTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 起始时间
       * </pre>
       *
       * <code>optional string StartTime = 4;</code>
       * @param value The startTime to set.
       * @return This builder for chaining.
       */
      public Builder setStartTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        startTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 起始时间
       * </pre>
       *
       * <code>optional string StartTime = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartTime() {
        bitField0_ = (bitField0_ & ~0x00000008);
        startTime_ = getDefaultInstance().getStartTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 起始时间
       * </pre>
       *
       * <code>optional string StartTime = 4;</code>
       * @param value The bytes for startTime to set.
       * @return This builder for chaining.
       */
      public Builder setStartTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        startTime_ = value;
        onChanged();
        return this;
      }

      private int endWeekDay_ ;
      /**
       * <pre>
       * uint32 结束周几
       * </pre>
       *
       * <code>optional uint32 EndWeekDay = 5;</code>
       * @return Whether the endWeekDay field is set.
       */
      @java.lang.Override
      public boolean hasEndWeekDay() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 结束周几
       * </pre>
       *
       * <code>optional uint32 EndWeekDay = 5;</code>
       * @return The endWeekDay.
       */
      @java.lang.Override
      public int getEndWeekDay() {
        return endWeekDay_;
      }
      /**
       * <pre>
       * uint32 结束周几
       * </pre>
       *
       * <code>optional uint32 EndWeekDay = 5;</code>
       * @param value The endWeekDay to set.
       * @return This builder for chaining.
       */
      public Builder setEndWeekDay(int value) {
        bitField0_ |= 0x00000010;
        endWeekDay_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 结束周几
       * </pre>
       *
       * <code>optional uint32 EndWeekDay = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndWeekDay() {
        bitField0_ = (bitField0_ & ~0x00000010);
        endWeekDay_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object endTime_ = "";
      /**
       * <pre>
       * string 结束时间
       * </pre>
       *
       * <code>optional string EndTime = 6;</code>
       * @return Whether the endTime field is set.
       */
      public boolean hasEndTime() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * string 结束时间
       * </pre>
       *
       * <code>optional string EndTime = 6;</code>
       * @return The endTime.
       */
      public java.lang.String getEndTime() {
        java.lang.Object ref = endTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            endTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 结束时间
       * </pre>
       *
       * <code>optional string EndTime = 6;</code>
       * @return The bytes for endTime.
       */
      public com.google.protobuf.ByteString
          getEndTimeBytes() {
        java.lang.Object ref = endTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          endTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 结束时间
       * </pre>
       *
       * <code>optional string EndTime = 6;</code>
       * @param value The endTime to set.
       * @return This builder for chaining.
       */
      public Builder setEndTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        endTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 结束时间
       * </pre>
       *
       * <code>optional string EndTime = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndTime() {
        bitField0_ = (bitField0_ & ~0x00000020);
        endTime_ = getDefaultInstance().getEndTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 结束时间
       * </pre>
       *
       * <code>optional string EndTime = 6;</code>
       * @param value The bytes for endTime to set.
       * @return This builder for chaining.
       */
      public Builder setEndTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        endTime_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:DayRun)
    }

    // @@protoc_insertion_point(class_scope:DayRun)
    private static final MSIM.DayRun DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.DayRun();
    }

    public static MSIM.DayRun getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<DayRun>
        PARSER = new com.google.protobuf.AbstractParser<DayRun>() {
      @java.lang.Override
      public DayRun parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new DayRun(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.DayRun getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GoodsPickupReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GoodsPickupReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 2;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 2;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 3;</code>
     * @return Whether the goodsID field is set.
     */
    boolean hasGoodsID();
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 3;</code>
     * @return The goodsID.
     */
    int getGoodsID();

    /**
     * <pre>
     * uint64 提货数量
     * </pre>
     *
     * <code>optional uint64 Qty = 4;</code>
     * @return Whether the qty field is set.
     */
    boolean hasQty();
    /**
     * <pre>
     * uint64 提货数量
     * </pre>
     *
     * <code>optional uint64 Qty = 4;</code>
     * @return The qty.
     */
    long getQty();

    /**
     * <pre>
     * string 提货人姓名
     * </pre>
     *
     * <code>optional string ReciverName = 5;</code>
     * @return Whether the reciverName field is set.
     */
    boolean hasReciverName();
    /**
     * <pre>
     * string 提货人姓名
     * </pre>
     *
     * <code>optional string ReciverName = 5;</code>
     * @return The reciverName.
     */
    java.lang.String getReciverName();
    /**
     * <pre>
     * string 提货人姓名
     * </pre>
     *
     * <code>optional string ReciverName = 5;</code>
     * @return The bytes for reciverName.
     */
    com.google.protobuf.ByteString
        getReciverNameBytes();

    /**
     * <pre>
     * uint32 提货人证件类型
     * </pre>
     *
     * <code>optional uint32 CardTypeId = 6;</code>
     * @return Whether the cardTypeId field is set.
     */
    boolean hasCardTypeId();
    /**
     * <pre>
     * uint32 提货人证件类型
     * </pre>
     *
     * <code>optional uint32 CardTypeId = 6;</code>
     * @return The cardTypeId.
     */
    int getCardTypeId();

    /**
     * <pre>
     * string 提货人证件号码
     * </pre>
     *
     * <code>optional string CardNum = 7;</code>
     * @return Whether the cardNum field is set.
     */
    boolean hasCardNum();
    /**
     * <pre>
     * string 提货人证件号码
     * </pre>
     *
     * <code>optional string CardNum = 7;</code>
     * @return The cardNum.
     */
    java.lang.String getCardNum();
    /**
     * <pre>
     * string 提货人证件号码
     * </pre>
     *
     * <code>optional string CardNum = 7;</code>
     * @return The bytes for cardNum.
     */
    com.google.protobuf.ByteString
        getCardNumBytes();

    /**
     * <pre>
     * string 提货人联系方式
     * </pre>
     *
     * <code>optional string PhoneNum = 8;</code>
     * @return Whether the phoneNum field is set.
     */
    boolean hasPhoneNum();
    /**
     * <pre>
     * string 提货人联系方式
     * </pre>
     *
     * <code>optional string PhoneNum = 8;</code>
     * @return The phoneNum.
     */
    java.lang.String getPhoneNum();
    /**
     * <pre>
     * string 提货人联系方式
     * </pre>
     *
     * <code>optional string PhoneNum = 8;</code>
     * @return The bytes for phoneNum.
     */
    com.google.protobuf.ByteString
        getPhoneNumBytes();

    /**
     * <pre>
     * uint32 提货方式 - 2:自提 3:配送
     * </pre>
     *
     * <code>optional uint32 TakeMode = 9;</code>
     * @return Whether the takeMode field is set.
     */
    boolean hasTakeMode();
    /**
     * <pre>
     * uint32 提货方式 - 2:自提 3:配送
     * </pre>
     *
     * <code>optional uint32 TakeMode = 9;</code>
     * @return The takeMode.
     */
    int getTakeMode();

    /**
     * <pre>
     * string 提货人详细地址
     * </pre>
     *
     * <code>optional string Address = 10;</code>
     * @return Whether the address field is set.
     */
    boolean hasAddress();
    /**
     * <pre>
     * string 提货人详细地址
     * </pre>
     *
     * <code>optional string Address = 10;</code>
     * @return The address.
     */
    java.lang.String getAddress();
    /**
     * <pre>
     * string 提货人详细地址
     * </pre>
     *
     * <code>optional string Address = 10;</code>
     * @return The bytes for address.
     */
    com.google.protobuf.ByteString
        getAddressBytes();

    /**
     * <pre>
     * string 提货备注
     * </pre>
     *
     * <code>optional string TakeRemark = 11;</code>
     * @return Whether the takeRemark field is set.
     */
    boolean hasTakeRemark();
    /**
     * <pre>
     * string 提货备注
     * </pre>
     *
     * <code>optional string TakeRemark = 11;</code>
     * @return The takeRemark.
     */
    java.lang.String getTakeRemark();
    /**
     * <pre>
     * string 提货备注
     * </pre>
     *
     * <code>optional string TakeRemark = 11;</code>
     * @return The bytes for takeRemark.
     */
    com.google.protobuf.ByteString
        getTakeRemarkBytes();

    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 12;</code>
     * @return Whether the clientTicket field is set.
     */
    boolean hasClientTicket();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 12;</code>
     * @return The clientTicket.
     */
    java.lang.String getClientTicket();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 12;</code>
     * @return The bytes for clientTicket.
     */
    com.google.protobuf.ByteString
        getClientTicketBytes();

    /**
     * <pre>
     * 转换类型
     * </pre>
     *
     * <code>optional uint32 ConvertType = 13;</code>
     * @return Whether the convertType field is set.
     */
    boolean hasConvertType();
    /**
     * <pre>
     * 转换类型
     * </pre>
     *
     * <code>optional uint32 ConvertType = 13;</code>
     * @return The convertType.
     */
    int getConvertType();

    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 14;</code>
     * @return Whether the dstGoodsCode field is set.
     */
    boolean hasDstGoodsCode();
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 14;</code>
     * @return The dstGoodsCode.
     */
    java.lang.String getDstGoodsCode();
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 14;</code>
     * @return The bytes for dstGoodsCode.
     */
    com.google.protobuf.ByteString
        getDstGoodsCodeBytes();
  }
  /**
   * <pre>
   * 商品提货请求 0 3 65
   * </pre>
   *
   * Protobuf type {@code GoodsPickupReq}
   */
  public static final class GoodsPickupReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GoodsPickupReq)
      GoodsPickupReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GoodsPickupReq.newBuilder() to construct.
    private GoodsPickupReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GoodsPickupReq() {
      reciverName_ = "";
      cardNum_ = "";
      phoneNum_ = "";
      address_ = "";
      takeRemark_ = "";
      clientTicket_ = "";
      dstGoodsCode_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GoodsPickupReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GoodsPickupReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              accountID_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              goodsID_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              qty_ = input.readUInt64();
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              reciverName_ = bs;
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              cardTypeId_ = input.readUInt32();
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              cardNum_ = bs;
              break;
            }
            case 66: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000080;
              phoneNum_ = bs;
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              takeMode_ = input.readUInt32();
              break;
            }
            case 82: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000200;
              address_ = bs;
              break;
            }
            case 90: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000400;
              takeRemark_ = bs;
              break;
            }
            case 98: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000800;
              clientTicket_ = bs;
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              convertType_ = input.readUInt32();
              break;
            }
            case 114: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00002000;
              dstGoodsCode_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_GoodsPickupReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_GoodsPickupReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.GoodsPickupReq.class, MSIM.GoodsPickupReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 2;
    private long accountID_;
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 2;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 2;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int GOODSID_FIELD_NUMBER = 3;
    private int goodsID_;
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 3;</code>
     * @return Whether the goodsID field is set.
     */
    @java.lang.Override
    public boolean hasGoodsID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 3;</code>
     * @return The goodsID.
     */
    @java.lang.Override
    public int getGoodsID() {
      return goodsID_;
    }

    public static final int QTY_FIELD_NUMBER = 4;
    private long qty_;
    /**
     * <pre>
     * uint64 提货数量
     * </pre>
     *
     * <code>optional uint64 Qty = 4;</code>
     * @return Whether the qty field is set.
     */
    @java.lang.Override
    public boolean hasQty() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 提货数量
     * </pre>
     *
     * <code>optional uint64 Qty = 4;</code>
     * @return The qty.
     */
    @java.lang.Override
    public long getQty() {
      return qty_;
    }

    public static final int RECIVERNAME_FIELD_NUMBER = 5;
    private volatile java.lang.Object reciverName_;
    /**
     * <pre>
     * string 提货人姓名
     * </pre>
     *
     * <code>optional string ReciverName = 5;</code>
     * @return Whether the reciverName field is set.
     */
    @java.lang.Override
    public boolean hasReciverName() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * string 提货人姓名
     * </pre>
     *
     * <code>optional string ReciverName = 5;</code>
     * @return The reciverName.
     */
    @java.lang.Override
    public java.lang.String getReciverName() {
      java.lang.Object ref = reciverName_;
      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();
        if (bs.isValidUtf8()) {
          reciverName_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 提货人姓名
     * </pre>
     *
     * <code>optional string ReciverName = 5;</code>
     * @return The bytes for reciverName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getReciverNameBytes() {
      java.lang.Object ref = reciverName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        reciverName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CARDTYPEID_FIELD_NUMBER = 6;
    private int cardTypeId_;
    /**
     * <pre>
     * uint32 提货人证件类型
     * </pre>
     *
     * <code>optional uint32 CardTypeId = 6;</code>
     * @return Whether the cardTypeId field is set.
     */
    @java.lang.Override
    public boolean hasCardTypeId() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint32 提货人证件类型
     * </pre>
     *
     * <code>optional uint32 CardTypeId = 6;</code>
     * @return The cardTypeId.
     */
    @java.lang.Override
    public int getCardTypeId() {
      return cardTypeId_;
    }

    public static final int CARDNUM_FIELD_NUMBER = 7;
    private volatile java.lang.Object cardNum_;
    /**
     * <pre>
     * string 提货人证件号码
     * </pre>
     *
     * <code>optional string CardNum = 7;</code>
     * @return Whether the cardNum field is set.
     */
    @java.lang.Override
    public boolean hasCardNum() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * string 提货人证件号码
     * </pre>
     *
     * <code>optional string CardNum = 7;</code>
     * @return The cardNum.
     */
    @java.lang.Override
    public java.lang.String getCardNum() {
      java.lang.Object ref = cardNum_;
      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();
        if (bs.isValidUtf8()) {
          cardNum_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 提货人证件号码
     * </pre>
     *
     * <code>optional string CardNum = 7;</code>
     * @return The bytes for cardNum.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCardNumBytes() {
      java.lang.Object ref = cardNum_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cardNum_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PHONENUM_FIELD_NUMBER = 8;
    private volatile java.lang.Object phoneNum_;
    /**
     * <pre>
     * string 提货人联系方式
     * </pre>
     *
     * <code>optional string PhoneNum = 8;</code>
     * @return Whether the phoneNum field is set.
     */
    @java.lang.Override
    public boolean hasPhoneNum() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * string 提货人联系方式
     * </pre>
     *
     * <code>optional string PhoneNum = 8;</code>
     * @return The phoneNum.
     */
    @java.lang.Override
    public java.lang.String getPhoneNum() {
      java.lang.Object ref = phoneNum_;
      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();
        if (bs.isValidUtf8()) {
          phoneNum_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 提货人联系方式
     * </pre>
     *
     * <code>optional string PhoneNum = 8;</code>
     * @return The bytes for phoneNum.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPhoneNumBytes() {
      java.lang.Object ref = phoneNum_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        phoneNum_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TAKEMODE_FIELD_NUMBER = 9;
    private int takeMode_;
    /**
     * <pre>
     * uint32 提货方式 - 2:自提 3:配送
     * </pre>
     *
     * <code>optional uint32 TakeMode = 9;</code>
     * @return Whether the takeMode field is set.
     */
    @java.lang.Override
    public boolean hasTakeMode() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * uint32 提货方式 - 2:自提 3:配送
     * </pre>
     *
     * <code>optional uint32 TakeMode = 9;</code>
     * @return The takeMode.
     */
    @java.lang.Override
    public int getTakeMode() {
      return takeMode_;
    }

    public static final int ADDRESS_FIELD_NUMBER = 10;
    private volatile java.lang.Object address_;
    /**
     * <pre>
     * string 提货人详细地址
     * </pre>
     *
     * <code>optional string Address = 10;</code>
     * @return Whether the address field is set.
     */
    @java.lang.Override
    public boolean hasAddress() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * string 提货人详细地址
     * </pre>
     *
     * <code>optional string Address = 10;</code>
     * @return The address.
     */
    @java.lang.Override
    public java.lang.String getAddress() {
      java.lang.Object ref = address_;
      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();
        if (bs.isValidUtf8()) {
          address_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 提货人详细地址
     * </pre>
     *
     * <code>optional string Address = 10;</code>
     * @return The bytes for address.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAddressBytes() {
      java.lang.Object ref = address_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        address_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TAKEREMARK_FIELD_NUMBER = 11;
    private volatile java.lang.Object takeRemark_;
    /**
     * <pre>
     * string 提货备注
     * </pre>
     *
     * <code>optional string TakeRemark = 11;</code>
     * @return Whether the takeRemark field is set.
     */
    @java.lang.Override
    public boolean hasTakeRemark() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * string 提货备注
     * </pre>
     *
     * <code>optional string TakeRemark = 11;</code>
     * @return The takeRemark.
     */
    @java.lang.Override
    public java.lang.String getTakeRemark() {
      java.lang.Object ref = takeRemark_;
      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();
        if (bs.isValidUtf8()) {
          takeRemark_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 提货备注
     * </pre>
     *
     * <code>optional string TakeRemark = 11;</code>
     * @return The bytes for takeRemark.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTakeRemarkBytes() {
      java.lang.Object ref = takeRemark_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        takeRemark_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTTICKET_FIELD_NUMBER = 12;
    private volatile java.lang.Object clientTicket_;
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 12;</code>
     * @return Whether the clientTicket field is set.
     */
    @java.lang.Override
    public boolean hasClientTicket() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 12;</code>
     * @return The clientTicket.
     */
    @java.lang.Override
    public java.lang.String getClientTicket() {
      java.lang.Object ref = clientTicket_;
      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();
        if (bs.isValidUtf8()) {
          clientTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 12;</code>
     * @return The bytes for clientTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientTicketBytes() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONVERTTYPE_FIELD_NUMBER = 13;
    private int convertType_;
    /**
     * <pre>
     * 转换类型
     * </pre>
     *
     * <code>optional uint32 ConvertType = 13;</code>
     * @return Whether the convertType field is set.
     */
    @java.lang.Override
    public boolean hasConvertType() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * 转换类型
     * </pre>
     *
     * <code>optional uint32 ConvertType = 13;</code>
     * @return The convertType.
     */
    @java.lang.Override
    public int getConvertType() {
      return convertType_;
    }

    public static final int DSTGOODSCODE_FIELD_NUMBER = 14;
    private volatile java.lang.Object dstGoodsCode_;
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 14;</code>
     * @return Whether the dstGoodsCode field is set.
     */
    @java.lang.Override
    public boolean hasDstGoodsCode() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 14;</code>
     * @return The dstGoodsCode.
     */
    @java.lang.Override
    public java.lang.String getDstGoodsCode() {
      java.lang.Object ref = dstGoodsCode_;
      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();
        if (bs.isValidUtf8()) {
          dstGoodsCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 14;</code>
     * @return The bytes for dstGoodsCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDstGoodsCodeBytes() {
      java.lang.Object ref = dstGoodsCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        dstGoodsCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, accountID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, goodsID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, qty_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, reciverName_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, cardTypeId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, cardNum_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, phoneNum_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeUInt32(9, takeMode_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, address_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, takeRemark_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, clientTicket_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeUInt32(13, convertType_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, dstGoodsCode_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, accountID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, goodsID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, qty_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, reciverName_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, cardTypeId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, cardNum_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, phoneNum_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, takeMode_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, address_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, takeRemark_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, clientTicket_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(13, convertType_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, dstGoodsCode_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.GoodsPickupReq)) {
        return super.equals(obj);
      }
      MSIM.GoodsPickupReq other = (MSIM.GoodsPickupReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasGoodsID() != other.hasGoodsID()) return false;
      if (hasGoodsID()) {
        if (getGoodsID()
            != other.getGoodsID()) return false;
      }
      if (hasQty() != other.hasQty()) return false;
      if (hasQty()) {
        if (getQty()
            != other.getQty()) return false;
      }
      if (hasReciverName() != other.hasReciverName()) return false;
      if (hasReciverName()) {
        if (!getReciverName()
            .equals(other.getReciverName())) return false;
      }
      if (hasCardTypeId() != other.hasCardTypeId()) return false;
      if (hasCardTypeId()) {
        if (getCardTypeId()
            != other.getCardTypeId()) return false;
      }
      if (hasCardNum() != other.hasCardNum()) return false;
      if (hasCardNum()) {
        if (!getCardNum()
            .equals(other.getCardNum())) return false;
      }
      if (hasPhoneNum() != other.hasPhoneNum()) return false;
      if (hasPhoneNum()) {
        if (!getPhoneNum()
            .equals(other.getPhoneNum())) return false;
      }
      if (hasTakeMode() != other.hasTakeMode()) return false;
      if (hasTakeMode()) {
        if (getTakeMode()
            != other.getTakeMode()) return false;
      }
      if (hasAddress() != other.hasAddress()) return false;
      if (hasAddress()) {
        if (!getAddress()
            .equals(other.getAddress())) return false;
      }
      if (hasTakeRemark() != other.hasTakeRemark()) return false;
      if (hasTakeRemark()) {
        if (!getTakeRemark()
            .equals(other.getTakeRemark())) return false;
      }
      if (hasClientTicket() != other.hasClientTicket()) return false;
      if (hasClientTicket()) {
        if (!getClientTicket()
            .equals(other.getClientTicket())) return false;
      }
      if (hasConvertType() != other.hasConvertType()) return false;
      if (hasConvertType()) {
        if (getConvertType()
            != other.getConvertType()) return false;
      }
      if (hasDstGoodsCode() != other.hasDstGoodsCode()) return false;
      if (hasDstGoodsCode()) {
        if (!getDstGoodsCode()
            .equals(other.getDstGoodsCode())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasGoodsID()) {
        hash = (37 * hash) + GOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsID();
      }
      if (hasQty()) {
        hash = (37 * hash) + QTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getQty());
      }
      if (hasReciverName()) {
        hash = (37 * hash) + RECIVERNAME_FIELD_NUMBER;
        hash = (53 * hash) + getReciverName().hashCode();
      }
      if (hasCardTypeId()) {
        hash = (37 * hash) + CARDTYPEID_FIELD_NUMBER;
        hash = (53 * hash) + getCardTypeId();
      }
      if (hasCardNum()) {
        hash = (37 * hash) + CARDNUM_FIELD_NUMBER;
        hash = (53 * hash) + getCardNum().hashCode();
      }
      if (hasPhoneNum()) {
        hash = (37 * hash) + PHONENUM_FIELD_NUMBER;
        hash = (53 * hash) + getPhoneNum().hashCode();
      }
      if (hasTakeMode()) {
        hash = (37 * hash) + TAKEMODE_FIELD_NUMBER;
        hash = (53 * hash) + getTakeMode();
      }
      if (hasAddress()) {
        hash = (37 * hash) + ADDRESS_FIELD_NUMBER;
        hash = (53 * hash) + getAddress().hashCode();
      }
      if (hasTakeRemark()) {
        hash = (37 * hash) + TAKEREMARK_FIELD_NUMBER;
        hash = (53 * hash) + getTakeRemark().hashCode();
      }
      if (hasClientTicket()) {
        hash = (37 * hash) + CLIENTTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getClientTicket().hashCode();
      }
      if (hasConvertType()) {
        hash = (37 * hash) + CONVERTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getConvertType();
      }
      if (hasDstGoodsCode()) {
        hash = (37 * hash) + DSTGOODSCODE_FIELD_NUMBER;
        hash = (53 * hash) + getDstGoodsCode().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.GoodsPickupReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsPickupReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsPickupReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsPickupReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsPickupReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsPickupReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsPickupReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.GoodsPickupReq 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 MSIM.GoodsPickupReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.GoodsPickupReq 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 MSIM.GoodsPickupReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.GoodsPickupReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.GoodsPickupReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 商品提货请求 0 3 65
     * </pre>
     *
     * Protobuf type {@code GoodsPickupReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GoodsPickupReq)
        MSIM.GoodsPickupReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_GoodsPickupReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_GoodsPickupReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.GoodsPickupReq.class, MSIM.GoodsPickupReq.Builder.class);
      }

      // Construct using MSIM.GoodsPickupReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        goodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        qty_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        reciverName_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        cardTypeId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        cardNum_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        phoneNum_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        takeMode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        address_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        takeRemark_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        clientTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        convertType_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        dstGoodsCode_ = "";
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_GoodsPickupReq_descriptor;
      }

      @java.lang.Override
      public MSIM.GoodsPickupReq getDefaultInstanceForType() {
        return MSIM.GoodsPickupReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.GoodsPickupReq build() {
        MSIM.GoodsPickupReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.GoodsPickupReq buildPartial() {
        MSIM.GoodsPickupReq result = new MSIM.GoodsPickupReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.goodsID_ = goodsID_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.qty_ = qty_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.reciverName_ = reciverName_;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.cardTypeId_ = cardTypeId_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.cardNum_ = cardNum_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          to_bitField0_ |= 0x00000080;
        }
        result.phoneNum_ = phoneNum_;
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.takeMode_ = takeMode_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          to_bitField0_ |= 0x00000200;
        }
        result.address_ = address_;
        if (((from_bitField0_ & 0x00000400) != 0)) {
          to_bitField0_ |= 0x00000400;
        }
        result.takeRemark_ = takeRemark_;
        if (((from_bitField0_ & 0x00000800) != 0)) {
          to_bitField0_ |= 0x00000800;
        }
        result.clientTicket_ = clientTicket_;
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.convertType_ = convertType_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          to_bitField0_ |= 0x00002000;
        }
        result.dstGoodsCode_ = dstGoodsCode_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.GoodsPickupReq) {
          return mergeFrom((MSIM.GoodsPickupReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.GoodsPickupReq other) {
        if (other == MSIM.GoodsPickupReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasGoodsID()) {
          setGoodsID(other.getGoodsID());
        }
        if (other.hasQty()) {
          setQty(other.getQty());
        }
        if (other.hasReciverName()) {
          bitField0_ |= 0x00000010;
          reciverName_ = other.reciverName_;
          onChanged();
        }
        if (other.hasCardTypeId()) {
          setCardTypeId(other.getCardTypeId());
        }
        if (other.hasCardNum()) {
          bitField0_ |= 0x00000040;
          cardNum_ = other.cardNum_;
          onChanged();
        }
        if (other.hasPhoneNum()) {
          bitField0_ |= 0x00000080;
          phoneNum_ = other.phoneNum_;
          onChanged();
        }
        if (other.hasTakeMode()) {
          setTakeMode(other.getTakeMode());
        }
        if (other.hasAddress()) {
          bitField0_ |= 0x00000200;
          address_ = other.address_;
          onChanged();
        }
        if (other.hasTakeRemark()) {
          bitField0_ |= 0x00000400;
          takeRemark_ = other.takeRemark_;
          onChanged();
        }
        if (other.hasClientTicket()) {
          bitField0_ |= 0x00000800;
          clientTicket_ = other.clientTicket_;
          onChanged();
        }
        if (other.hasConvertType()) {
          setConvertType(other.getConvertType());
        }
        if (other.hasDstGoodsCode()) {
          bitField0_ |= 0x00002000;
          dstGoodsCode_ = other.dstGoodsCode_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.GoodsPickupReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.GoodsPickupReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long accountID_ ;
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 2;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 2;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 2;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000002;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private int goodsID_ ;
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 3;</code>
       * @return Whether the goodsID field is set.
       */
      @java.lang.Override
      public boolean hasGoodsID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 3;</code>
       * @return The goodsID.
       */
      @java.lang.Override
      public int getGoodsID() {
        return goodsID_;
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 3;</code>
       * @param value The goodsID to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsID(int value) {
        bitField0_ |= 0x00000004;
        goodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        goodsID_ = 0;
        onChanged();
        return this;
      }

      private long qty_ ;
      /**
       * <pre>
       * uint64 提货数量
       * </pre>
       *
       * <code>optional uint64 Qty = 4;</code>
       * @return Whether the qty field is set.
       */
      @java.lang.Override
      public boolean hasQty() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 提货数量
       * </pre>
       *
       * <code>optional uint64 Qty = 4;</code>
       * @return The qty.
       */
      @java.lang.Override
      public long getQty() {
        return qty_;
      }
      /**
       * <pre>
       * uint64 提货数量
       * </pre>
       *
       * <code>optional uint64 Qty = 4;</code>
       * @param value The qty to set.
       * @return This builder for chaining.
       */
      public Builder setQty(long value) {
        bitField0_ |= 0x00000008;
        qty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 提货数量
       * </pre>
       *
       * <code>optional uint64 Qty = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearQty() {
        bitField0_ = (bitField0_ & ~0x00000008);
        qty_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object reciverName_ = "";
      /**
       * <pre>
       * string 提货人姓名
       * </pre>
       *
       * <code>optional string ReciverName = 5;</code>
       * @return Whether the reciverName field is set.
       */
      public boolean hasReciverName() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * string 提货人姓名
       * </pre>
       *
       * <code>optional string ReciverName = 5;</code>
       * @return The reciverName.
       */
      public java.lang.String getReciverName() {
        java.lang.Object ref = reciverName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reciverName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 提货人姓名
       * </pre>
       *
       * <code>optional string ReciverName = 5;</code>
       * @return The bytes for reciverName.
       */
      public com.google.protobuf.ByteString
          getReciverNameBytes() {
        java.lang.Object ref = reciverName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          reciverName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 提货人姓名
       * </pre>
       *
       * <code>optional string ReciverName = 5;</code>
       * @param value The reciverName to set.
       * @return This builder for chaining.
       */
      public Builder setReciverName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        reciverName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 提货人姓名
       * </pre>
       *
       * <code>optional string ReciverName = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearReciverName() {
        bitField0_ = (bitField0_ & ~0x00000010);
        reciverName_ = getDefaultInstance().getReciverName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 提货人姓名
       * </pre>
       *
       * <code>optional string ReciverName = 5;</code>
       * @param value The bytes for reciverName to set.
       * @return This builder for chaining.
       */
      public Builder setReciverNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        reciverName_ = value;
        onChanged();
        return this;
      }

      private int cardTypeId_ ;
      /**
       * <pre>
       * uint32 提货人证件类型
       * </pre>
       *
       * <code>optional uint32 CardTypeId = 6;</code>
       * @return Whether the cardTypeId field is set.
       */
      @java.lang.Override
      public boolean hasCardTypeId() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint32 提货人证件类型
       * </pre>
       *
       * <code>optional uint32 CardTypeId = 6;</code>
       * @return The cardTypeId.
       */
      @java.lang.Override
      public int getCardTypeId() {
        return cardTypeId_;
      }
      /**
       * <pre>
       * uint32 提货人证件类型
       * </pre>
       *
       * <code>optional uint32 CardTypeId = 6;</code>
       * @param value The cardTypeId to set.
       * @return This builder for chaining.
       */
      public Builder setCardTypeId(int value) {
        bitField0_ |= 0x00000020;
        cardTypeId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 提货人证件类型
       * </pre>
       *
       * <code>optional uint32 CardTypeId = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearCardTypeId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        cardTypeId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object cardNum_ = "";
      /**
       * <pre>
       * string 提货人证件号码
       * </pre>
       *
       * <code>optional string CardNum = 7;</code>
       * @return Whether the cardNum field is set.
       */
      public boolean hasCardNum() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * string 提货人证件号码
       * </pre>
       *
       * <code>optional string CardNum = 7;</code>
       * @return The cardNum.
       */
      public java.lang.String getCardNum() {
        java.lang.Object ref = cardNum_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            cardNum_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 提货人证件号码
       * </pre>
       *
       * <code>optional string CardNum = 7;</code>
       * @return The bytes for cardNum.
       */
      public com.google.protobuf.ByteString
          getCardNumBytes() {
        java.lang.Object ref = cardNum_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          cardNum_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 提货人证件号码
       * </pre>
       *
       * <code>optional string CardNum = 7;</code>
       * @param value The cardNum to set.
       * @return This builder for chaining.
       */
      public Builder setCardNum(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        cardNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 提货人证件号码
       * </pre>
       *
       * <code>optional string CardNum = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearCardNum() {
        bitField0_ = (bitField0_ & ~0x00000040);
        cardNum_ = getDefaultInstance().getCardNum();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 提货人证件号码
       * </pre>
       *
       * <code>optional string CardNum = 7;</code>
       * @param value The bytes for cardNum to set.
       * @return This builder for chaining.
       */
      public Builder setCardNumBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        cardNum_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object phoneNum_ = "";
      /**
       * <pre>
       * string 提货人联系方式
       * </pre>
       *
       * <code>optional string PhoneNum = 8;</code>
       * @return Whether the phoneNum field is set.
       */
      public boolean hasPhoneNum() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * string 提货人联系方式
       * </pre>
       *
       * <code>optional string PhoneNum = 8;</code>
       * @return The phoneNum.
       */
      public java.lang.String getPhoneNum() {
        java.lang.Object ref = phoneNum_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            phoneNum_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 提货人联系方式
       * </pre>
       *
       * <code>optional string PhoneNum = 8;</code>
       * @return The bytes for phoneNum.
       */
      public com.google.protobuf.ByteString
          getPhoneNumBytes() {
        java.lang.Object ref = phoneNum_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          phoneNum_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 提货人联系方式
       * </pre>
       *
       * <code>optional string PhoneNum = 8;</code>
       * @param value The phoneNum to set.
       * @return This builder for chaining.
       */
      public Builder setPhoneNum(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        phoneNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 提货人联系方式
       * </pre>
       *
       * <code>optional string PhoneNum = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearPhoneNum() {
        bitField0_ = (bitField0_ & ~0x00000080);
        phoneNum_ = getDefaultInstance().getPhoneNum();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 提货人联系方式
       * </pre>
       *
       * <code>optional string PhoneNum = 8;</code>
       * @param value The bytes for phoneNum to set.
       * @return This builder for chaining.
       */
      public Builder setPhoneNumBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        phoneNum_ = value;
        onChanged();
        return this;
      }

      private int takeMode_ ;
      /**
       * <pre>
       * uint32 提货方式 - 2:自提 3:配送
       * </pre>
       *
       * <code>optional uint32 TakeMode = 9;</code>
       * @return Whether the takeMode field is set.
       */
      @java.lang.Override
      public boolean hasTakeMode() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * uint32 提货方式 - 2:自提 3:配送
       * </pre>
       *
       * <code>optional uint32 TakeMode = 9;</code>
       * @return The takeMode.
       */
      @java.lang.Override
      public int getTakeMode() {
        return takeMode_;
      }
      /**
       * <pre>
       * uint32 提货方式 - 2:自提 3:配送
       * </pre>
       *
       * <code>optional uint32 TakeMode = 9;</code>
       * @param value The takeMode to set.
       * @return This builder for chaining.
       */
      public Builder setTakeMode(int value) {
        bitField0_ |= 0x00000100;
        takeMode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 提货方式 - 2:自提 3:配送
       * </pre>
       *
       * <code>optional uint32 TakeMode = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearTakeMode() {
        bitField0_ = (bitField0_ & ~0x00000100);
        takeMode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object address_ = "";
      /**
       * <pre>
       * string 提货人详细地址
       * </pre>
       *
       * <code>optional string Address = 10;</code>
       * @return Whether the address field is set.
       */
      public boolean hasAddress() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * string 提货人详细地址
       * </pre>
       *
       * <code>optional string Address = 10;</code>
       * @return The address.
       */
      public java.lang.String getAddress() {
        java.lang.Object ref = address_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            address_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 提货人详细地址
       * </pre>
       *
       * <code>optional string Address = 10;</code>
       * @return The bytes for address.
       */
      public com.google.protobuf.ByteString
          getAddressBytes() {
        java.lang.Object ref = address_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          address_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 提货人详细地址
       * </pre>
       *
       * <code>optional string Address = 10;</code>
       * @param value The address to set.
       * @return This builder for chaining.
       */
      public Builder setAddress(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        address_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 提货人详细地址
       * </pre>
       *
       * <code>optional string Address = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearAddress() {
        bitField0_ = (bitField0_ & ~0x00000200);
        address_ = getDefaultInstance().getAddress();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 提货人详细地址
       * </pre>
       *
       * <code>optional string Address = 10;</code>
       * @param value The bytes for address to set.
       * @return This builder for chaining.
       */
      public Builder setAddressBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        address_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object takeRemark_ = "";
      /**
       * <pre>
       * string 提货备注
       * </pre>
       *
       * <code>optional string TakeRemark = 11;</code>
       * @return Whether the takeRemark field is set.
       */
      public boolean hasTakeRemark() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * string 提货备注
       * </pre>
       *
       * <code>optional string TakeRemark = 11;</code>
       * @return The takeRemark.
       */
      public java.lang.String getTakeRemark() {
        java.lang.Object ref = takeRemark_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            takeRemark_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 提货备注
       * </pre>
       *
       * <code>optional string TakeRemark = 11;</code>
       * @return The bytes for takeRemark.
       */
      public com.google.protobuf.ByteString
          getTakeRemarkBytes() {
        java.lang.Object ref = takeRemark_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          takeRemark_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 提货备注
       * </pre>
       *
       * <code>optional string TakeRemark = 11;</code>
       * @param value The takeRemark to set.
       * @return This builder for chaining.
       */
      public Builder setTakeRemark(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        takeRemark_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 提货备注
       * </pre>
       *
       * <code>optional string TakeRemark = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearTakeRemark() {
        bitField0_ = (bitField0_ & ~0x00000400);
        takeRemark_ = getDefaultInstance().getTakeRemark();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 提货备注
       * </pre>
       *
       * <code>optional string TakeRemark = 11;</code>
       * @param value The bytes for takeRemark to set.
       * @return This builder for chaining.
       */
      public Builder setTakeRemarkBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        takeRemark_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clientTicket_ = "";
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 12;</code>
       * @return Whether the clientTicket field is set.
       */
      public boolean hasClientTicket() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 12;</code>
       * @return The clientTicket.
       */
      public java.lang.String getClientTicket() {
        java.lang.Object ref = clientTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 12;</code>
       * @return The bytes for clientTicket.
       */
      public com.google.protobuf.ByteString
          getClientTicketBytes() {
        java.lang.Object ref = clientTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 12;</code>
       * @param value The clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        clientTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientTicket() {
        bitField0_ = (bitField0_ & ~0x00000800);
        clientTicket_ = getDefaultInstance().getClientTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 12;</code>
       * @param value The bytes for clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        clientTicket_ = value;
        onChanged();
        return this;
      }

      private int convertType_ ;
      /**
       * <pre>
       * 转换类型
       * </pre>
       *
       * <code>optional uint32 ConvertType = 13;</code>
       * @return Whether the convertType field is set.
       */
      @java.lang.Override
      public boolean hasConvertType() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * 转换类型
       * </pre>
       *
       * <code>optional uint32 ConvertType = 13;</code>
       * @return The convertType.
       */
      @java.lang.Override
      public int getConvertType() {
        return convertType_;
      }
      /**
       * <pre>
       * 转换类型
       * </pre>
       *
       * <code>optional uint32 ConvertType = 13;</code>
       * @param value The convertType to set.
       * @return This builder for chaining.
       */
      public Builder setConvertType(int value) {
        bitField0_ |= 0x00001000;
        convertType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 转换类型
       * </pre>
       *
       * <code>optional uint32 ConvertType = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearConvertType() {
        bitField0_ = (bitField0_ & ~0x00001000);
        convertType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object dstGoodsCode_ = "";
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 14;</code>
       * @return Whether the dstGoodsCode field is set.
       */
      public boolean hasDstGoodsCode() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 14;</code>
       * @return The dstGoodsCode.
       */
      public java.lang.String getDstGoodsCode() {
        java.lang.Object ref = dstGoodsCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            dstGoodsCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 14;</code>
       * @return The bytes for dstGoodsCode.
       */
      public com.google.protobuf.ByteString
          getDstGoodsCodeBytes() {
        java.lang.Object ref = dstGoodsCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          dstGoodsCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 14;</code>
       * @param value The dstGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setDstGoodsCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        dstGoodsCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearDstGoodsCode() {
        bitField0_ = (bitField0_ & ~0x00002000);
        dstGoodsCode_ = getDefaultInstance().getDstGoodsCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 14;</code>
       * @param value The bytes for dstGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setDstGoodsCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        dstGoodsCode_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GoodsPickupReq)
    }

    // @@protoc_insertion_point(class_scope:GoodsPickupReq)
    private static final MSIM.GoodsPickupReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.GoodsPickupReq();
    }

    public static MSIM.GoodsPickupReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GoodsPickupReq>
        PARSER = new com.google.protobuf.AbstractParser<GoodsPickupReq>() {
      @java.lang.Override
      public GoodsPickupReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GoodsPickupReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.GoodsPickupReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GoodsPickupRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GoodsPickupRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 4;</code>
     * @return Whether the clientTicket field is set.
     */
    boolean hasClientTicket();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 4;</code>
     * @return The clientTicket.
     */
    java.lang.String getClientTicket();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 4;</code>
     * @return The bytes for clientTicket.
     */
    com.google.protobuf.ByteString
        getClientTicketBytes();
  }
  /**
   * <pre>
   * 商品提货响应 0 3 66
   * </pre>
   *
   * Protobuf type {@code GoodsPickupRsp}
   */
  public static final class GoodsPickupRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GoodsPickupRsp)
      GoodsPickupRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GoodsPickupRsp.newBuilder() to construct.
    private GoodsPickupRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GoodsPickupRsp() {
      retDesc_ = "";
      clientTicket_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GoodsPickupRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GoodsPickupRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              clientTicket_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_GoodsPickupRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_GoodsPickupRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.GoodsPickupRsp.class, MSIM.GoodsPickupRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTTICKET_FIELD_NUMBER = 4;
    private volatile java.lang.Object clientTicket_;
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 4;</code>
     * @return Whether the clientTicket field is set.
     */
    @java.lang.Override
    public boolean hasClientTicket() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 4;</code>
     * @return The clientTicket.
     */
    @java.lang.Override
    public java.lang.String getClientTicket() {
      java.lang.Object ref = clientTicket_;
      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();
        if (bs.isValidUtf8()) {
          clientTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientTicket = 4;</code>
     * @return The bytes for clientTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientTicketBytes() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, clientTicket_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, clientTicket_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.GoodsPickupRsp)) {
        return super.equals(obj);
      }
      MSIM.GoodsPickupRsp other = (MSIM.GoodsPickupRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasClientTicket() != other.hasClientTicket()) return false;
      if (hasClientTicket()) {
        if (!getClientTicket()
            .equals(other.getClientTicket())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasClientTicket()) {
        hash = (37 * hash) + CLIENTTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getClientTicket().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.GoodsPickupRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsPickupRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsPickupRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsPickupRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsPickupRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.GoodsPickupRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.GoodsPickupRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.GoodsPickupRsp 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 MSIM.GoodsPickupRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.GoodsPickupRsp 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 MSIM.GoodsPickupRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.GoodsPickupRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.GoodsPickupRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 商品提货响应 0 3 66
     * </pre>
     *
     * Protobuf type {@code GoodsPickupRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GoodsPickupRsp)
        MSIM.GoodsPickupRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_GoodsPickupRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_GoodsPickupRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.GoodsPickupRsp.class, MSIM.GoodsPickupRsp.Builder.class);
      }

      // Construct using MSIM.GoodsPickupRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        clientTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_GoodsPickupRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.GoodsPickupRsp getDefaultInstanceForType() {
        return MSIM.GoodsPickupRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.GoodsPickupRsp build() {
        MSIM.GoodsPickupRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.GoodsPickupRsp buildPartial() {
        MSIM.GoodsPickupRsp result = new MSIM.GoodsPickupRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.clientTicket_ = clientTicket_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.GoodsPickupRsp) {
          return mergeFrom((MSIM.GoodsPickupRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.GoodsPickupRsp other) {
        if (other == MSIM.GoodsPickupRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasClientTicket()) {
          bitField0_ |= 0x00000008;
          clientTicket_ = other.clientTicket_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.GoodsPickupRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.GoodsPickupRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clientTicket_ = "";
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 4;</code>
       * @return Whether the clientTicket field is set.
       */
      public boolean hasClientTicket() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 4;</code>
       * @return The clientTicket.
       */
      public java.lang.String getClientTicket() {
        java.lang.Object ref = clientTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 4;</code>
       * @return The bytes for clientTicket.
       */
      public com.google.protobuf.ByteString
          getClientTicketBytes() {
        java.lang.Object ref = clientTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 4;</code>
       * @param value The clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        clientTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientTicket() {
        bitField0_ = (bitField0_ & ~0x00000008);
        clientTicket_ = getDefaultInstance().getClientTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientTicket = 4;</code>
       * @param value The bytes for clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        clientTicket_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GoodsPickupRsp)
    }

    // @@protoc_insertion_point(class_scope:GoodsPickupRsp)
    private static final MSIM.GoodsPickupRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.GoodsPickupRsp();
    }

    public static MSIM.GoodsPickupRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GoodsPickupRsp>
        PARSER = new com.google.protobuf.AbstractParser<GoodsPickupRsp>() {
      @java.lang.Override
      public GoodsPickupRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GoodsPickupRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.GoodsPickupRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TakeConfirmReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:TakeConfirmReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 2;</code>
     * @return Whether the clientSerialID field is set.
     */
    boolean hasClientSerialID();
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 2;</code>
     * @return The clientSerialID.
     */
    long getClientSerialID();

    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 3;</code>
     * @return Whether the takeOrderID field is set.
     */
    boolean hasTakeOrderID();
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 3;</code>
     * @return The takeOrderID.
     */
    long getTakeOrderID();
  }
  /**
   * <pre>
   * 提货单确认收货请求 0 29 87
   * </pre>
   *
   * Protobuf type {@code TakeConfirmReq}
   */
  public static final class TakeConfirmReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:TakeConfirmReq)
      TakeConfirmReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TakeConfirmReq.newBuilder() to construct.
    private TakeConfirmReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TakeConfirmReq() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TakeConfirmReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TakeConfirmReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              clientSerialID_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              takeOrderID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_TakeConfirmReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_TakeConfirmReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.TakeConfirmReq.class, MSIM.TakeConfirmReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int CLIENTSERIALID_FIELD_NUMBER = 2;
    private long clientSerialID_;
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 2;</code>
     * @return Whether the clientSerialID field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 2;</code>
     * @return The clientSerialID.
     */
    @java.lang.Override
    public long getClientSerialID() {
      return clientSerialID_;
    }

    public static final int TAKEORDERID_FIELD_NUMBER = 3;
    private long takeOrderID_;
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 3;</code>
     * @return Whether the takeOrderID field is set.
     */
    @java.lang.Override
    public boolean hasTakeOrderID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 3;</code>
     * @return The takeOrderID.
     */
    @java.lang.Override
    public long getTakeOrderID() {
      return takeOrderID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, clientSerialID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt64(3, takeOrderID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, clientSerialID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(3, takeOrderID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.TakeConfirmReq)) {
        return super.equals(obj);
      }
      MSIM.TakeConfirmReq other = (MSIM.TakeConfirmReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasClientSerialID() != other.hasClientSerialID()) return false;
      if (hasClientSerialID()) {
        if (getClientSerialID()
            != other.getClientSerialID()) return false;
      }
      if (hasTakeOrderID() != other.hasTakeOrderID()) return false;
      if (hasTakeOrderID()) {
        if (getTakeOrderID()
            != other.getTakeOrderID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasClientSerialID()) {
        hash = (37 * hash) + CLIENTSERIALID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getClientSerialID());
      }
      if (hasTakeOrderID()) {
        hash = (37 * hash) + TAKEORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTakeOrderID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.TakeConfirmReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmReq 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 MSIM.TakeConfirmReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmReq 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 MSIM.TakeConfirmReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.TakeConfirmReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 提货单确认收货请求 0 29 87
     * </pre>
     *
     * Protobuf type {@code TakeConfirmReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:TakeConfirmReq)
        MSIM.TakeConfirmReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_TakeConfirmReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_TakeConfirmReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.TakeConfirmReq.class, MSIM.TakeConfirmReq.Builder.class);
      }

      // Construct using MSIM.TakeConfirmReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        clientSerialID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        takeOrderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_TakeConfirmReq_descriptor;
      }

      @java.lang.Override
      public MSIM.TakeConfirmReq getDefaultInstanceForType() {
        return MSIM.TakeConfirmReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.TakeConfirmReq build() {
        MSIM.TakeConfirmReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.TakeConfirmReq buildPartial() {
        MSIM.TakeConfirmReq result = new MSIM.TakeConfirmReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.clientSerialID_ = clientSerialID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.takeOrderID_ = takeOrderID_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.TakeConfirmReq) {
          return mergeFrom((MSIM.TakeConfirmReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.TakeConfirmReq other) {
        if (other == MSIM.TakeConfirmReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasClientSerialID()) {
          setClientSerialID(other.getClientSerialID());
        }
        if (other.hasTakeOrderID()) {
          setTakeOrderID(other.getTakeOrderID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.TakeConfirmReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.TakeConfirmReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long clientSerialID_ ;
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 2;</code>
       * @return Whether the clientSerialID field is set.
       */
      @java.lang.Override
      public boolean hasClientSerialID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 2;</code>
       * @return The clientSerialID.
       */
      @java.lang.Override
      public long getClientSerialID() {
        return clientSerialID_;
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 2;</code>
       * @param value The clientSerialID to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialID(long value) {
        bitField0_ |= 0x00000002;
        clientSerialID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        clientSerialID_ = 0L;
        onChanged();
        return this;
      }

      private long takeOrderID_ ;
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 3;</code>
       * @return Whether the takeOrderID field is set.
       */
      @java.lang.Override
      public boolean hasTakeOrderID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 3;</code>
       * @return The takeOrderID.
       */
      @java.lang.Override
      public long getTakeOrderID() {
        return takeOrderID_;
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 3;</code>
       * @param value The takeOrderID to set.
       * @return This builder for chaining.
       */
      public Builder setTakeOrderID(long value) {
        bitField0_ |= 0x00000004;
        takeOrderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTakeOrderID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        takeOrderID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:TakeConfirmReq)
    }

    // @@protoc_insertion_point(class_scope:TakeConfirmReq)
    private static final MSIM.TakeConfirmReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.TakeConfirmReq();
    }

    public static MSIM.TakeConfirmReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<TakeConfirmReq>
        PARSER = new com.google.protobuf.AbstractParser<TakeConfirmReq>() {
      @java.lang.Override
      public TakeConfirmReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new TakeConfirmReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.TakeConfirmReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TakeConfirmRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:TakeConfirmRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 4;</code>
     * @return Whether the clientSerialID field is set.
     */
    boolean hasClientSerialID();
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 4;</code>
     * @return The clientSerialID.
     */
    long getClientSerialID();

    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 5;</code>
     * @return Whether the takeOrderID field is set.
     */
    boolean hasTakeOrderID();
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 5;</code>
     * @return The takeOrderID.
     */
    long getTakeOrderID();
  }
  /**
   * <pre>
   * 提货单确认收货应答 0 29 88
   * </pre>
   *
   * Protobuf type {@code TakeConfirmRsp}
   */
  public static final class TakeConfirmRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:TakeConfirmRsp)
      TakeConfirmRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TakeConfirmRsp.newBuilder() to construct.
    private TakeConfirmRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TakeConfirmRsp() {
      retDesc_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TakeConfirmRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TakeConfirmRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              clientSerialID_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              takeOrderID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_TakeConfirmRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_TakeConfirmRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.TakeConfirmRsp.class, MSIM.TakeConfirmRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTSERIALID_FIELD_NUMBER = 4;
    private long clientSerialID_;
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 4;</code>
     * @return Whether the clientSerialID field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 4;</code>
     * @return The clientSerialID.
     */
    @java.lang.Override
    public long getClientSerialID() {
      return clientSerialID_;
    }

    public static final int TAKEORDERID_FIELD_NUMBER = 5;
    private long takeOrderID_;
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 5;</code>
     * @return Whether the takeOrderID field is set.
     */
    @java.lang.Override
    public boolean hasTakeOrderID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 5;</code>
     * @return The takeOrderID.
     */
    @java.lang.Override
    public long getTakeOrderID() {
      return takeOrderID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, clientSerialID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, takeOrderID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, clientSerialID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, takeOrderID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.TakeConfirmRsp)) {
        return super.equals(obj);
      }
      MSIM.TakeConfirmRsp other = (MSIM.TakeConfirmRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasClientSerialID() != other.hasClientSerialID()) return false;
      if (hasClientSerialID()) {
        if (getClientSerialID()
            != other.getClientSerialID()) return false;
      }
      if (hasTakeOrderID() != other.hasTakeOrderID()) return false;
      if (hasTakeOrderID()) {
        if (getTakeOrderID()
            != other.getTakeOrderID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasClientSerialID()) {
        hash = (37 * hash) + CLIENTSERIALID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getClientSerialID());
      }
      if (hasTakeOrderID()) {
        hash = (37 * hash) + TAKEORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTakeOrderID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.TakeConfirmRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmRsp 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 MSIM.TakeConfirmRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmRsp 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 MSIM.TakeConfirmRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.TakeConfirmRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 提货单确认收货应答 0 29 88
     * </pre>
     *
     * Protobuf type {@code TakeConfirmRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:TakeConfirmRsp)
        MSIM.TakeConfirmRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_TakeConfirmRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_TakeConfirmRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.TakeConfirmRsp.class, MSIM.TakeConfirmRsp.Builder.class);
      }

      // Construct using MSIM.TakeConfirmRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        clientSerialID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        takeOrderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_TakeConfirmRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.TakeConfirmRsp getDefaultInstanceForType() {
        return MSIM.TakeConfirmRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.TakeConfirmRsp build() {
        MSIM.TakeConfirmRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.TakeConfirmRsp buildPartial() {
        MSIM.TakeConfirmRsp result = new MSIM.TakeConfirmRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.clientSerialID_ = clientSerialID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.takeOrderID_ = takeOrderID_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.TakeConfirmRsp) {
          return mergeFrom((MSIM.TakeConfirmRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.TakeConfirmRsp other) {
        if (other == MSIM.TakeConfirmRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasClientSerialID()) {
          setClientSerialID(other.getClientSerialID());
        }
        if (other.hasTakeOrderID()) {
          setTakeOrderID(other.getTakeOrderID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.TakeConfirmRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.TakeConfirmRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long clientSerialID_ ;
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 4;</code>
       * @return Whether the clientSerialID field is set.
       */
      @java.lang.Override
      public boolean hasClientSerialID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 4;</code>
       * @return The clientSerialID.
       */
      @java.lang.Override
      public long getClientSerialID() {
        return clientSerialID_;
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 4;</code>
       * @param value The clientSerialID to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialID(long value) {
        bitField0_ |= 0x00000008;
        clientSerialID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        clientSerialID_ = 0L;
        onChanged();
        return this;
      }

      private long takeOrderID_ ;
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 5;</code>
       * @return Whether the takeOrderID field is set.
       */
      @java.lang.Override
      public boolean hasTakeOrderID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 5;</code>
       * @return The takeOrderID.
       */
      @java.lang.Override
      public long getTakeOrderID() {
        return takeOrderID_;
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 5;</code>
       * @param value The takeOrderID to set.
       * @return This builder for chaining.
       */
      public Builder setTakeOrderID(long value) {
        bitField0_ |= 0x00000010;
        takeOrderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTakeOrderID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        takeOrderID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:TakeConfirmRsp)
    }

    // @@protoc_insertion_point(class_scope:TakeConfirmRsp)
    private static final MSIM.TakeConfirmRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.TakeConfirmRsp();
    }

    public static MSIM.TakeConfirmRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<TakeConfirmRsp>
        PARSER = new com.google.protobuf.AbstractParser<TakeConfirmRsp>() {
      @java.lang.Override
      public TakeConfirmRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new TakeConfirmRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.TakeConfirmRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TakeConfirmSZDZReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:TakeConfirmSZDZReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 2;</code>
     * @return Whether the clientSerialID field is set.
     */
    boolean hasClientSerialID();
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 2;</code>
     * @return The clientSerialID.
     */
    long getClientSerialID();

    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 3;</code>
     * @return Whether the takeOrderID field is set.
     */
    boolean hasTakeOrderID();
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 3;</code>
     * @return The takeOrderID.
     */
    long getTakeOrderID();
  }
  /**
   * <pre>
   * 提货单确认收货请求 0 29 97
   * </pre>
   *
   * Protobuf type {@code TakeConfirmSZDZReq}
   */
  public static final class TakeConfirmSZDZReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:TakeConfirmSZDZReq)
      TakeConfirmSZDZReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TakeConfirmSZDZReq.newBuilder() to construct.
    private TakeConfirmSZDZReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TakeConfirmSZDZReq() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TakeConfirmSZDZReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TakeConfirmSZDZReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              clientSerialID_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              takeOrderID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_TakeConfirmSZDZReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_TakeConfirmSZDZReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.TakeConfirmSZDZReq.class, MSIM.TakeConfirmSZDZReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int CLIENTSERIALID_FIELD_NUMBER = 2;
    private long clientSerialID_;
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 2;</code>
     * @return Whether the clientSerialID field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 2;</code>
     * @return The clientSerialID.
     */
    @java.lang.Override
    public long getClientSerialID() {
      return clientSerialID_;
    }

    public static final int TAKEORDERID_FIELD_NUMBER = 3;
    private long takeOrderID_;
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 3;</code>
     * @return Whether the takeOrderID field is set.
     */
    @java.lang.Override
    public boolean hasTakeOrderID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 3;</code>
     * @return The takeOrderID.
     */
    @java.lang.Override
    public long getTakeOrderID() {
      return takeOrderID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, clientSerialID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt64(3, takeOrderID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, clientSerialID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(3, takeOrderID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.TakeConfirmSZDZReq)) {
        return super.equals(obj);
      }
      MSIM.TakeConfirmSZDZReq other = (MSIM.TakeConfirmSZDZReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasClientSerialID() != other.hasClientSerialID()) return false;
      if (hasClientSerialID()) {
        if (getClientSerialID()
            != other.getClientSerialID()) return false;
      }
      if (hasTakeOrderID() != other.hasTakeOrderID()) return false;
      if (hasTakeOrderID()) {
        if (getTakeOrderID()
            != other.getTakeOrderID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasClientSerialID()) {
        hash = (37 * hash) + CLIENTSERIALID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getClientSerialID());
      }
      if (hasTakeOrderID()) {
        hash = (37 * hash) + TAKEORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTakeOrderID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.TakeConfirmSZDZReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmSZDZReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmSZDZReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmSZDZReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmSZDZReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmSZDZReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmSZDZReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmSZDZReq 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 MSIM.TakeConfirmSZDZReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmSZDZReq 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 MSIM.TakeConfirmSZDZReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmSZDZReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.TakeConfirmSZDZReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 提货单确认收货请求 0 29 97
     * </pre>
     *
     * Protobuf type {@code TakeConfirmSZDZReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:TakeConfirmSZDZReq)
        MSIM.TakeConfirmSZDZReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_TakeConfirmSZDZReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_TakeConfirmSZDZReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.TakeConfirmSZDZReq.class, MSIM.TakeConfirmSZDZReq.Builder.class);
      }

      // Construct using MSIM.TakeConfirmSZDZReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        clientSerialID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        takeOrderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_TakeConfirmSZDZReq_descriptor;
      }

      @java.lang.Override
      public MSIM.TakeConfirmSZDZReq getDefaultInstanceForType() {
        return MSIM.TakeConfirmSZDZReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.TakeConfirmSZDZReq build() {
        MSIM.TakeConfirmSZDZReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.TakeConfirmSZDZReq buildPartial() {
        MSIM.TakeConfirmSZDZReq result = new MSIM.TakeConfirmSZDZReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.clientSerialID_ = clientSerialID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.takeOrderID_ = takeOrderID_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.TakeConfirmSZDZReq) {
          return mergeFrom((MSIM.TakeConfirmSZDZReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.TakeConfirmSZDZReq other) {
        if (other == MSIM.TakeConfirmSZDZReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasClientSerialID()) {
          setClientSerialID(other.getClientSerialID());
        }
        if (other.hasTakeOrderID()) {
          setTakeOrderID(other.getTakeOrderID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.TakeConfirmSZDZReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.TakeConfirmSZDZReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long clientSerialID_ ;
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 2;</code>
       * @return Whether the clientSerialID field is set.
       */
      @java.lang.Override
      public boolean hasClientSerialID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 2;</code>
       * @return The clientSerialID.
       */
      @java.lang.Override
      public long getClientSerialID() {
        return clientSerialID_;
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 2;</code>
       * @param value The clientSerialID to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialID(long value) {
        bitField0_ |= 0x00000002;
        clientSerialID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        clientSerialID_ = 0L;
        onChanged();
        return this;
      }

      private long takeOrderID_ ;
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 3;</code>
       * @return Whether the takeOrderID field is set.
       */
      @java.lang.Override
      public boolean hasTakeOrderID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 3;</code>
       * @return The takeOrderID.
       */
      @java.lang.Override
      public long getTakeOrderID() {
        return takeOrderID_;
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 3;</code>
       * @param value The takeOrderID to set.
       * @return This builder for chaining.
       */
      public Builder setTakeOrderID(long value) {
        bitField0_ |= 0x00000004;
        takeOrderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTakeOrderID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        takeOrderID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:TakeConfirmSZDZReq)
    }

    // @@protoc_insertion_point(class_scope:TakeConfirmSZDZReq)
    private static final MSIM.TakeConfirmSZDZReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.TakeConfirmSZDZReq();
    }

    public static MSIM.TakeConfirmSZDZReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<TakeConfirmSZDZReq>
        PARSER = new com.google.protobuf.AbstractParser<TakeConfirmSZDZReq>() {
      @java.lang.Override
      public TakeConfirmSZDZReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new TakeConfirmSZDZReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.TakeConfirmSZDZReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TakeConfirmSZDZRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:TakeConfirmSZDZRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 4;</code>
     * @return Whether the clientSerialID field is set.
     */
    boolean hasClientSerialID();
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 4;</code>
     * @return The clientSerialID.
     */
    long getClientSerialID();

    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 5;</code>
     * @return Whether the takeOrderID field is set.
     */
    boolean hasTakeOrderID();
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 5;</code>
     * @return The takeOrderID.
     */
    long getTakeOrderID();
  }
  /**
   * <pre>
   * 提货单确认收货应答 0 29 98
   * </pre>
   *
   * Protobuf type {@code TakeConfirmSZDZRsp}
   */
  public static final class TakeConfirmSZDZRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:TakeConfirmSZDZRsp)
      TakeConfirmSZDZRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TakeConfirmSZDZRsp.newBuilder() to construct.
    private TakeConfirmSZDZRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TakeConfirmSZDZRsp() {
      retDesc_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TakeConfirmSZDZRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TakeConfirmSZDZRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              clientSerialID_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              takeOrderID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_TakeConfirmSZDZRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_TakeConfirmSZDZRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.TakeConfirmSZDZRsp.class, MSIM.TakeConfirmSZDZRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTSERIALID_FIELD_NUMBER = 4;
    private long clientSerialID_;
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 4;</code>
     * @return Whether the clientSerialID field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 客户端唯一ID
     * </pre>
     *
     * <code>optional uint64 ClientSerialID = 4;</code>
     * @return The clientSerialID.
     */
    @java.lang.Override
    public long getClientSerialID() {
      return clientSerialID_;
    }

    public static final int TAKEORDERID_FIELD_NUMBER = 5;
    private long takeOrderID_;
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 5;</code>
     * @return Whether the takeOrderID field is set.
     */
    @java.lang.Override
    public boolean hasTakeOrderID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint64 提货单号
     * </pre>
     *
     * <code>optional uint64 TakeOrderID = 5;</code>
     * @return The takeOrderID.
     */
    @java.lang.Override
    public long getTakeOrderID() {
      return takeOrderID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, clientSerialID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, takeOrderID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, clientSerialID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, takeOrderID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.TakeConfirmSZDZRsp)) {
        return super.equals(obj);
      }
      MSIM.TakeConfirmSZDZRsp other = (MSIM.TakeConfirmSZDZRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasClientSerialID() != other.hasClientSerialID()) return false;
      if (hasClientSerialID()) {
        if (getClientSerialID()
            != other.getClientSerialID()) return false;
      }
      if (hasTakeOrderID() != other.hasTakeOrderID()) return false;
      if (hasTakeOrderID()) {
        if (getTakeOrderID()
            != other.getTakeOrderID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasClientSerialID()) {
        hash = (37 * hash) + CLIENTSERIALID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getClientSerialID());
      }
      if (hasTakeOrderID()) {
        hash = (37 * hash) + TAKEORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTakeOrderID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.TakeConfirmSZDZRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmSZDZRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmSZDZRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmSZDZRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmSZDZRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.TakeConfirmSZDZRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.TakeConfirmSZDZRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmSZDZRsp 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 MSIM.TakeConfirmSZDZRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmSZDZRsp 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 MSIM.TakeConfirmSZDZRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.TakeConfirmSZDZRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.TakeConfirmSZDZRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 提货单确认收货应答 0 29 98
     * </pre>
     *
     * Protobuf type {@code TakeConfirmSZDZRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:TakeConfirmSZDZRsp)
        MSIM.TakeConfirmSZDZRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_TakeConfirmSZDZRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_TakeConfirmSZDZRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.TakeConfirmSZDZRsp.class, MSIM.TakeConfirmSZDZRsp.Builder.class);
      }

      // Construct using MSIM.TakeConfirmSZDZRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        clientSerialID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        takeOrderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_TakeConfirmSZDZRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.TakeConfirmSZDZRsp getDefaultInstanceForType() {
        return MSIM.TakeConfirmSZDZRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.TakeConfirmSZDZRsp build() {
        MSIM.TakeConfirmSZDZRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.TakeConfirmSZDZRsp buildPartial() {
        MSIM.TakeConfirmSZDZRsp result = new MSIM.TakeConfirmSZDZRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.clientSerialID_ = clientSerialID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.takeOrderID_ = takeOrderID_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.TakeConfirmSZDZRsp) {
          return mergeFrom((MSIM.TakeConfirmSZDZRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.TakeConfirmSZDZRsp other) {
        if (other == MSIM.TakeConfirmSZDZRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasClientSerialID()) {
          setClientSerialID(other.getClientSerialID());
        }
        if (other.hasTakeOrderID()) {
          setTakeOrderID(other.getTakeOrderID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.TakeConfirmSZDZRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.TakeConfirmSZDZRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long clientSerialID_ ;
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 4;</code>
       * @return Whether the clientSerialID field is set.
       */
      @java.lang.Override
      public boolean hasClientSerialID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 4;</code>
       * @return The clientSerialID.
       */
      @java.lang.Override
      public long getClientSerialID() {
        return clientSerialID_;
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 4;</code>
       * @param value The clientSerialID to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialID(long value) {
        bitField0_ |= 0x00000008;
        clientSerialID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 客户端唯一ID
       * </pre>
       *
       * <code>optional uint64 ClientSerialID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        clientSerialID_ = 0L;
        onChanged();
        return this;
      }

      private long takeOrderID_ ;
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 5;</code>
       * @return Whether the takeOrderID field is set.
       */
      @java.lang.Override
      public boolean hasTakeOrderID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 5;</code>
       * @return The takeOrderID.
       */
      @java.lang.Override
      public long getTakeOrderID() {
        return takeOrderID_;
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 5;</code>
       * @param value The takeOrderID to set.
       * @return This builder for chaining.
       */
      public Builder setTakeOrderID(long value) {
        bitField0_ |= 0x00000010;
        takeOrderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 提货单号
       * </pre>
       *
       * <code>optional uint64 TakeOrderID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTakeOrderID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        takeOrderID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:TakeConfirmSZDZRsp)
    }

    // @@protoc_insertion_point(class_scope:TakeConfirmSZDZRsp)
    private static final MSIM.TakeConfirmSZDZRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.TakeConfirmSZDZRsp();
    }

    public static MSIM.TakeConfirmSZDZRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<TakeConfirmSZDZRsp>
        PARSER = new com.google.protobuf.AbstractParser<TakeConfirmSZDZRsp>() {
      @java.lang.Override
      public TakeConfirmSZDZRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new TakeConfirmSZDZRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.TakeConfirmSZDZRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelTradePosConvertJdpReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelTradePosConvertJdpReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 2;</code>
     * @return Whether the userID field is set.
     */
    boolean hasUserID();
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 2;</code>
     * @return The userID.
     */
    int getUserID();

    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return Whether the mobile field is set.
     */
    boolean hasMobile();
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return The mobile.
     */
    java.lang.String getMobile();
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return The bytes for mobile.
     */
    com.google.protobuf.ByteString
        getMobileBytes();

    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return Whether the srcGoodsCode field is set.
     */
    boolean hasSrcGoodsCode();
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return The srcGoodsCode.
     */
    java.lang.String getSrcGoodsCode();
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return The bytes for srcGoodsCode.
     */
    com.google.protobuf.ByteString
        getSrcGoodsCodeBytes();

    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return Whether the dstGoodsCode field is set.
     */
    boolean hasDstGoodsCode();
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return The dstGoodsCode.
     */
    java.lang.String getDstGoodsCode();
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return The bytes for dstGoodsCode.
     */
    com.google.protobuf.ByteString
        getDstGoodsCodeBytes();

    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return Whether the goodsID field is set.
     */
    boolean hasGoodsID();
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return The goodsID.
     */
    int getGoodsID();

    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 8;</code>
     * @return Whether the qty field is set.
     */
    boolean hasQty();
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 8;</code>
     * @return The qty.
     */
    double getQty();

    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return Whether the clientSerialNo field is set.
     */
    boolean hasClientSerialNo();
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return The clientSerialNo.
     */
    java.lang.String getClientSerialNo();
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return The bytes for clientSerialNo.
     */
    com.google.protobuf.ByteString
        getClientSerialNoBytes();

    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 10;</code>
     * @return Whether the logID field is set.
     */
    boolean hasLogID();
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 10;</code>
     * @return The logID.
     */
    long getLogID();

    /**
     * <pre>
     * uint32 转换类型（1：金点赞转交易 2：金点拍转交易 3:交易转金点赞（不设置）4:交易转金点拍（不设置）5:花生米转交易 6：交易转花生米(不设置)）
     * </pre>
     *
     * <code>optional uint32 ConvertType = 11;</code>
     * @return Whether the convertType field is set.
     */
    boolean hasConvertType();
    /**
     * <pre>
     * uint32 转换类型（1：金点赞转交易 2：金点拍转交易 3:交易转金点赞（不设置）4:交易转金点拍（不设置）5:花生米转交易 6：交易转花生米(不设置)）
     * </pre>
     *
     * <code>optional uint32 ConvertType = 11;</code>
     * @return The convertType.
     */
    int getConvertType();

    /**
     * <pre>
     * uint32 提货操作日志（内部用）
     * </pre>
     *
     * <code>optional uint32 PickupFlag = 12;</code>
     * @return Whether the pickupFlag field is set.
     */
    boolean hasPickupFlag();
    /**
     * <pre>
     * uint32 提货操作日志（内部用）
     * </pre>
     *
     * <code>optional uint32 PickupFlag = 12;</code>
     * @return The pickupFlag.
     */
    int getPickupFlag();
  }
  /**
   * <pre>
   * 通道交易头寸转金点拍请求
   * </pre>
   *
   * Protobuf type {@code ChannelTradePosConvertJdpReq}
   */
  public static final class ChannelTradePosConvertJdpReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelTradePosConvertJdpReq)
      ChannelTradePosConvertJdpReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelTradePosConvertJdpReq.newBuilder() to construct.
    private ChannelTradePosConvertJdpReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelTradePosConvertJdpReq() {
      mobile_ = "";
      srcGoodsCode_ = "";
      dstGoodsCode_ = "";
      clientSerialNo_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelTradePosConvertJdpReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelTradePosConvertJdpReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              userID_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              accountID_ = input.readUInt64();
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              mobile_ = bs;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              srcGoodsCode_ = bs;
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              dstGoodsCode_ = bs;
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              goodsID_ = input.readUInt32();
              break;
            }
            case 65: {
              bitField0_ |= 0x00000080;
              qty_ = input.readDouble();
              break;
            }
            case 74: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000100;
              clientSerialNo_ = bs;
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              logID_ = input.readUInt64();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              convertType_ = input.readUInt32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              pickupFlag_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelTradePosConvertJdpReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelTradePosConvertJdpReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelTradePosConvertJdpReq.class, MSIM.ChannelTradePosConvertJdpReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int USERID_FIELD_NUMBER = 2;
    private int userID_;
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 2;</code>
     * @return Whether the userID field is set.
     */
    @java.lang.Override
    public boolean hasUserID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 2;</code>
     * @return The userID.
     */
    @java.lang.Override
    public int getUserID() {
      return userID_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 3;
    private long accountID_;
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int MOBILE_FIELD_NUMBER = 4;
    private volatile java.lang.Object mobile_;
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return Whether the mobile field is set.
     */
    @java.lang.Override
    public boolean hasMobile() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return The mobile.
     */
    @java.lang.Override
    public java.lang.String getMobile() {
      java.lang.Object ref = mobile_;
      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();
        if (bs.isValidUtf8()) {
          mobile_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return The bytes for mobile.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMobileBytes() {
      java.lang.Object ref = mobile_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mobile_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SRCGOODSCODE_FIELD_NUMBER = 5;
    private volatile java.lang.Object srcGoodsCode_;
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return Whether the srcGoodsCode field is set.
     */
    @java.lang.Override
    public boolean hasSrcGoodsCode() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return The srcGoodsCode.
     */
    @java.lang.Override
    public java.lang.String getSrcGoodsCode() {
      java.lang.Object ref = srcGoodsCode_;
      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();
        if (bs.isValidUtf8()) {
          srcGoodsCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return The bytes for srcGoodsCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSrcGoodsCodeBytes() {
      java.lang.Object ref = srcGoodsCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        srcGoodsCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DSTGOODSCODE_FIELD_NUMBER = 6;
    private volatile java.lang.Object dstGoodsCode_;
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return Whether the dstGoodsCode field is set.
     */
    @java.lang.Override
    public boolean hasDstGoodsCode() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return The dstGoodsCode.
     */
    @java.lang.Override
    public java.lang.String getDstGoodsCode() {
      java.lang.Object ref = dstGoodsCode_;
      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();
        if (bs.isValidUtf8()) {
          dstGoodsCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return The bytes for dstGoodsCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDstGoodsCodeBytes() {
      java.lang.Object ref = dstGoodsCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        dstGoodsCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GOODSID_FIELD_NUMBER = 7;
    private int goodsID_;
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return Whether the goodsID field is set.
     */
    @java.lang.Override
    public boolean hasGoodsID() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return The goodsID.
     */
    @java.lang.Override
    public int getGoodsID() {
      return goodsID_;
    }

    public static final int QTY_FIELD_NUMBER = 8;
    private double qty_;
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 8;</code>
     * @return Whether the qty field is set.
     */
    @java.lang.Override
    public boolean hasQty() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 8;</code>
     * @return The qty.
     */
    @java.lang.Override
    public double getQty() {
      return qty_;
    }

    public static final int CLIENTSERIALNO_FIELD_NUMBER = 9;
    private volatile java.lang.Object clientSerialNo_;
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return Whether the clientSerialNo field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialNo() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return The clientSerialNo.
     */
    @java.lang.Override
    public java.lang.String getClientSerialNo() {
      java.lang.Object ref = clientSerialNo_;
      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();
        if (bs.isValidUtf8()) {
          clientSerialNo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return The bytes for clientSerialNo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientSerialNoBytes() {
      java.lang.Object ref = clientSerialNo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSerialNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGID_FIELD_NUMBER = 10;
    private long logID_;
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 10;</code>
     * @return Whether the logID field is set.
     */
    @java.lang.Override
    public boolean hasLogID() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 10;</code>
     * @return The logID.
     */
    @java.lang.Override
    public long getLogID() {
      return logID_;
    }

    public static final int CONVERTTYPE_FIELD_NUMBER = 11;
    private int convertType_;
    /**
     * <pre>
     * uint32 转换类型（1：金点赞转交易 2：金点拍转交易 3:交易转金点赞（不设置）4:交易转金点拍（不设置）5:花生米转交易 6：交易转花生米(不设置)）
     * </pre>
     *
     * <code>optional uint32 ConvertType = 11;</code>
     * @return Whether the convertType field is set.
     */
    @java.lang.Override
    public boolean hasConvertType() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * uint32 转换类型（1：金点赞转交易 2：金点拍转交易 3:交易转金点赞（不设置）4:交易转金点拍（不设置）5:花生米转交易 6：交易转花生米(不设置)）
     * </pre>
     *
     * <code>optional uint32 ConvertType = 11;</code>
     * @return The convertType.
     */
    @java.lang.Override
    public int getConvertType() {
      return convertType_;
    }

    public static final int PICKUPFLAG_FIELD_NUMBER = 12;
    private int pickupFlag_;
    /**
     * <pre>
     * uint32 提货操作日志（内部用）
     * </pre>
     *
     * <code>optional uint32 PickupFlag = 12;</code>
     * @return Whether the pickupFlag field is set.
     */
    @java.lang.Override
    public boolean hasPickupFlag() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * uint32 提货操作日志（内部用）
     * </pre>
     *
     * <code>optional uint32 PickupFlag = 12;</code>
     * @return The pickupFlag.
     */
    @java.lang.Override
    public int getPickupFlag() {
      return pickupFlag_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, userID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt64(3, accountID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, mobile_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, srcGoodsCode_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, dstGoodsCode_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeUInt32(7, goodsID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeDouble(8, qty_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeUInt64(10, logID_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeUInt32(11, convertType_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeUInt32(12, pickupFlag_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, userID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(3, accountID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, mobile_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, srcGoodsCode_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, dstGoodsCode_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, goodsID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(8, qty_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(10, logID_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, convertType_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, pickupFlag_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelTradePosConvertJdpReq)) {
        return super.equals(obj);
      }
      MSIM.ChannelTradePosConvertJdpReq other = (MSIM.ChannelTradePosConvertJdpReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasUserID() != other.hasUserID()) return false;
      if (hasUserID()) {
        if (getUserID()
            != other.getUserID()) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasMobile() != other.hasMobile()) return false;
      if (hasMobile()) {
        if (!getMobile()
            .equals(other.getMobile())) return false;
      }
      if (hasSrcGoodsCode() != other.hasSrcGoodsCode()) return false;
      if (hasSrcGoodsCode()) {
        if (!getSrcGoodsCode()
            .equals(other.getSrcGoodsCode())) return false;
      }
      if (hasDstGoodsCode() != other.hasDstGoodsCode()) return false;
      if (hasDstGoodsCode()) {
        if (!getDstGoodsCode()
            .equals(other.getDstGoodsCode())) return false;
      }
      if (hasGoodsID() != other.hasGoodsID()) return false;
      if (hasGoodsID()) {
        if (getGoodsID()
            != other.getGoodsID()) return false;
      }
      if (hasQty() != other.hasQty()) return false;
      if (hasQty()) {
        if (java.lang.Double.doubleToLongBits(getQty())
            != java.lang.Double.doubleToLongBits(
                other.getQty())) return false;
      }
      if (hasClientSerialNo() != other.hasClientSerialNo()) return false;
      if (hasClientSerialNo()) {
        if (!getClientSerialNo()
            .equals(other.getClientSerialNo())) return false;
      }
      if (hasLogID() != other.hasLogID()) return false;
      if (hasLogID()) {
        if (getLogID()
            != other.getLogID()) return false;
      }
      if (hasConvertType() != other.hasConvertType()) return false;
      if (hasConvertType()) {
        if (getConvertType()
            != other.getConvertType()) return false;
      }
      if (hasPickupFlag() != other.hasPickupFlag()) return false;
      if (hasPickupFlag()) {
        if (getPickupFlag()
            != other.getPickupFlag()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasUserID()) {
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + getUserID();
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasMobile()) {
        hash = (37 * hash) + MOBILE_FIELD_NUMBER;
        hash = (53 * hash) + getMobile().hashCode();
      }
      if (hasSrcGoodsCode()) {
        hash = (37 * hash) + SRCGOODSCODE_FIELD_NUMBER;
        hash = (53 * hash) + getSrcGoodsCode().hashCode();
      }
      if (hasDstGoodsCode()) {
        hash = (37 * hash) + DSTGOODSCODE_FIELD_NUMBER;
        hash = (53 * hash) + getDstGoodsCode().hashCode();
      }
      if (hasGoodsID()) {
        hash = (37 * hash) + GOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsID();
      }
      if (hasQty()) {
        hash = (37 * hash) + QTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getQty()));
      }
      if (hasClientSerialNo()) {
        hash = (37 * hash) + CLIENTSERIALNO_FIELD_NUMBER;
        hash = (53 * hash) + getClientSerialNo().hashCode();
      }
      if (hasLogID()) {
        hash = (37 * hash) + LOGID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLogID());
      }
      if (hasConvertType()) {
        hash = (37 * hash) + CONVERTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getConvertType();
      }
      if (hasPickupFlag()) {
        hash = (37 * hash) + PICKUPFLAG_FIELD_NUMBER;
        hash = (53 * hash) + getPickupFlag();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelTradePosConvertJdpReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelTradePosConvertJdpReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelTradePosConvertJdpReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelTradePosConvertJdpReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelTradePosConvertJdpReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelTradePosConvertJdpReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelTradePosConvertJdpReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelTradePosConvertJdpReq 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 MSIM.ChannelTradePosConvertJdpReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelTradePosConvertJdpReq 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 MSIM.ChannelTradePosConvertJdpReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelTradePosConvertJdpReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelTradePosConvertJdpReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 通道交易头寸转金点拍请求
     * </pre>
     *
     * Protobuf type {@code ChannelTradePosConvertJdpReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelTradePosConvertJdpReq)
        MSIM.ChannelTradePosConvertJdpReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelTradePosConvertJdpReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelTradePosConvertJdpReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelTradePosConvertJdpReq.class, MSIM.ChannelTradePosConvertJdpReq.Builder.class);
      }

      // Construct using MSIM.ChannelTradePosConvertJdpReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        userID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        mobile_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        srcGoodsCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        dstGoodsCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        goodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        qty_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000080);
        clientSerialNo_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        logID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000200);
        convertType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        pickupFlag_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelTradePosConvertJdpReq_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelTradePosConvertJdpReq getDefaultInstanceForType() {
        return MSIM.ChannelTradePosConvertJdpReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelTradePosConvertJdpReq build() {
        MSIM.ChannelTradePosConvertJdpReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelTradePosConvertJdpReq buildPartial() {
        MSIM.ChannelTradePosConvertJdpReq result = new MSIM.ChannelTradePosConvertJdpReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.userID_ = userID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.mobile_ = mobile_;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.srcGoodsCode_ = srcGoodsCode_;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.dstGoodsCode_ = dstGoodsCode_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.goodsID_ = goodsID_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.qty_ = qty_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          to_bitField0_ |= 0x00000100;
        }
        result.clientSerialNo_ = clientSerialNo_;
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.logID_ = logID_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.convertType_ = convertType_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.pickupFlag_ = pickupFlag_;
          to_bitField0_ |= 0x00000800;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelTradePosConvertJdpReq) {
          return mergeFrom((MSIM.ChannelTradePosConvertJdpReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelTradePosConvertJdpReq other) {
        if (other == MSIM.ChannelTradePosConvertJdpReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasUserID()) {
          setUserID(other.getUserID());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasMobile()) {
          bitField0_ |= 0x00000008;
          mobile_ = other.mobile_;
          onChanged();
        }
        if (other.hasSrcGoodsCode()) {
          bitField0_ |= 0x00000010;
          srcGoodsCode_ = other.srcGoodsCode_;
          onChanged();
        }
        if (other.hasDstGoodsCode()) {
          bitField0_ |= 0x00000020;
          dstGoodsCode_ = other.dstGoodsCode_;
          onChanged();
        }
        if (other.hasGoodsID()) {
          setGoodsID(other.getGoodsID());
        }
        if (other.hasQty()) {
          setQty(other.getQty());
        }
        if (other.hasClientSerialNo()) {
          bitField0_ |= 0x00000100;
          clientSerialNo_ = other.clientSerialNo_;
          onChanged();
        }
        if (other.hasLogID()) {
          setLogID(other.getLogID());
        }
        if (other.hasConvertType()) {
          setConvertType(other.getConvertType());
        }
        if (other.hasPickupFlag()) {
          setPickupFlag(other.getPickupFlag());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelTradePosConvertJdpReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelTradePosConvertJdpReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int userID_ ;
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 2;</code>
       * @return Whether the userID field is set.
       */
      @java.lang.Override
      public boolean hasUserID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 2;</code>
       * @return The userID.
       */
      @java.lang.Override
      public int getUserID() {
        return userID_;
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 2;</code>
       * @param value The userID to set.
       * @return This builder for chaining.
       */
      public Builder setUserID(int value) {
        bitField0_ |= 0x00000002;
        userID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        userID_ = 0;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000004;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object mobile_ = "";
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @return Whether the mobile field is set.
       */
      public boolean hasMobile() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @return The mobile.
       */
      public java.lang.String getMobile() {
        java.lang.Object ref = mobile_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            mobile_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @return The bytes for mobile.
       */
      public com.google.protobuf.ByteString
          getMobileBytes() {
        java.lang.Object ref = mobile_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mobile_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @param value The mobile to set.
       * @return This builder for chaining.
       */
      public Builder setMobile(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        mobile_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMobile() {
        bitField0_ = (bitField0_ & ~0x00000008);
        mobile_ = getDefaultInstance().getMobile();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @param value The bytes for mobile to set.
       * @return This builder for chaining.
       */
      public Builder setMobileBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        mobile_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object srcGoodsCode_ = "";
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @return Whether the srcGoodsCode field is set.
       */
      public boolean hasSrcGoodsCode() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @return The srcGoodsCode.
       */
      public java.lang.String getSrcGoodsCode() {
        java.lang.Object ref = srcGoodsCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            srcGoodsCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @return The bytes for srcGoodsCode.
       */
      public com.google.protobuf.ByteString
          getSrcGoodsCodeBytes() {
        java.lang.Object ref = srcGoodsCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          srcGoodsCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @param value The srcGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setSrcGoodsCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        srcGoodsCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearSrcGoodsCode() {
        bitField0_ = (bitField0_ & ~0x00000010);
        srcGoodsCode_ = getDefaultInstance().getSrcGoodsCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @param value The bytes for srcGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setSrcGoodsCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        srcGoodsCode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object dstGoodsCode_ = "";
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @return Whether the dstGoodsCode field is set.
       */
      public boolean hasDstGoodsCode() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @return The dstGoodsCode.
       */
      public java.lang.String getDstGoodsCode() {
        java.lang.Object ref = dstGoodsCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            dstGoodsCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @return The bytes for dstGoodsCode.
       */
      public com.google.protobuf.ByteString
          getDstGoodsCodeBytes() {
        java.lang.Object ref = dstGoodsCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          dstGoodsCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @param value The dstGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setDstGoodsCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        dstGoodsCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearDstGoodsCode() {
        bitField0_ = (bitField0_ & ~0x00000020);
        dstGoodsCode_ = getDefaultInstance().getDstGoodsCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @param value The bytes for dstGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setDstGoodsCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        dstGoodsCode_ = value;
        onChanged();
        return this;
      }

      private int goodsID_ ;
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return Whether the goodsID field is set.
       */
      @java.lang.Override
      public boolean hasGoodsID() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return The goodsID.
       */
      @java.lang.Override
      public int getGoodsID() {
        return goodsID_;
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @param value The goodsID to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsID(int value) {
        bitField0_ |= 0x00000040;
        goodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        goodsID_ = 0;
        onChanged();
        return this;
      }

      private double qty_ ;
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 8;</code>
       * @return Whether the qty field is set.
       */
      @java.lang.Override
      public boolean hasQty() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 8;</code>
       * @return The qty.
       */
      @java.lang.Override
      public double getQty() {
        return qty_;
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 8;</code>
       * @param value The qty to set.
       * @return This builder for chaining.
       */
      public Builder setQty(double value) {
        bitField0_ |= 0x00000080;
        qty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearQty() {
        bitField0_ = (bitField0_ & ~0x00000080);
        qty_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object clientSerialNo_ = "";
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @return Whether the clientSerialNo field is set.
       */
      public boolean hasClientSerialNo() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @return The clientSerialNo.
       */
      public java.lang.String getClientSerialNo() {
        java.lang.Object ref = clientSerialNo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientSerialNo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @return The bytes for clientSerialNo.
       */
      public com.google.protobuf.ByteString
          getClientSerialNoBytes() {
        java.lang.Object ref = clientSerialNo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientSerialNo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @param value The clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialNo() {
        bitField0_ = (bitField0_ & ~0x00000100);
        clientSerialNo_ = getDefaultInstance().getClientSerialNo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @param value The bytes for clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }

      private long logID_ ;
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 10;</code>
       * @return Whether the logID field is set.
       */
      @java.lang.Override
      public boolean hasLogID() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 10;</code>
       * @return The logID.
       */
      @java.lang.Override
      public long getLogID() {
        return logID_;
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 10;</code>
       * @param value The logID to set.
       * @return This builder for chaining.
       */
      public Builder setLogID(long value) {
        bitField0_ |= 0x00000200;
        logID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearLogID() {
        bitField0_ = (bitField0_ & ~0x00000200);
        logID_ = 0L;
        onChanged();
        return this;
      }

      private int convertType_ ;
      /**
       * <pre>
       * uint32 转换类型（1：金点赞转交易 2：金点拍转交易 3:交易转金点赞（不设置）4:交易转金点拍（不设置）5:花生米转交易 6：交易转花生米(不设置)）
       * </pre>
       *
       * <code>optional uint32 ConvertType = 11;</code>
       * @return Whether the convertType field is set.
       */
      @java.lang.Override
      public boolean hasConvertType() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * uint32 转换类型（1：金点赞转交易 2：金点拍转交易 3:交易转金点赞（不设置）4:交易转金点拍（不设置）5:花生米转交易 6：交易转花生米(不设置)）
       * </pre>
       *
       * <code>optional uint32 ConvertType = 11;</code>
       * @return The convertType.
       */
      @java.lang.Override
      public int getConvertType() {
        return convertType_;
      }
      /**
       * <pre>
       * uint32 转换类型（1：金点赞转交易 2：金点拍转交易 3:交易转金点赞（不设置）4:交易转金点拍（不设置）5:花生米转交易 6：交易转花生米(不设置)）
       * </pre>
       *
       * <code>optional uint32 ConvertType = 11;</code>
       * @param value The convertType to set.
       * @return This builder for chaining.
       */
      public Builder setConvertType(int value) {
        bitField0_ |= 0x00000400;
        convertType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 转换类型（1：金点赞转交易 2：金点拍转交易 3:交易转金点赞（不设置）4:交易转金点拍（不设置）5:花生米转交易 6：交易转花生米(不设置)）
       * </pre>
       *
       * <code>optional uint32 ConvertType = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearConvertType() {
        bitField0_ = (bitField0_ & ~0x00000400);
        convertType_ = 0;
        onChanged();
        return this;
      }

      private int pickupFlag_ ;
      /**
       * <pre>
       * uint32 提货操作日志（内部用）
       * </pre>
       *
       * <code>optional uint32 PickupFlag = 12;</code>
       * @return Whether the pickupFlag field is set.
       */
      @java.lang.Override
      public boolean hasPickupFlag() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * uint32 提货操作日志（内部用）
       * </pre>
       *
       * <code>optional uint32 PickupFlag = 12;</code>
       * @return The pickupFlag.
       */
      @java.lang.Override
      public int getPickupFlag() {
        return pickupFlag_;
      }
      /**
       * <pre>
       * uint32 提货操作日志（内部用）
       * </pre>
       *
       * <code>optional uint32 PickupFlag = 12;</code>
       * @param value The pickupFlag to set.
       * @return This builder for chaining.
       */
      public Builder setPickupFlag(int value) {
        bitField0_ |= 0x00000800;
        pickupFlag_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 提货操作日志（内部用）
       * </pre>
       *
       * <code>optional uint32 PickupFlag = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearPickupFlag() {
        bitField0_ = (bitField0_ & ~0x00000800);
        pickupFlag_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelTradePosConvertJdpReq)
    }

    // @@protoc_insertion_point(class_scope:ChannelTradePosConvertJdpReq)
    private static final MSIM.ChannelTradePosConvertJdpReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelTradePosConvertJdpReq();
    }

    public static MSIM.ChannelTradePosConvertJdpReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelTradePosConvertJdpReq>
        PARSER = new com.google.protobuf.AbstractParser<ChannelTradePosConvertJdpReq>() {
      @java.lang.Override
      public ChannelTradePosConvertJdpReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelTradePosConvertJdpReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelTradePosConvertJdpReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelTradePosConvertJdpRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelTradePosConvertJdpRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 4;</code>
     * @return Whether the userID field is set.
     */
    boolean hasUserID();
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 4;</code>
     * @return The userID.
     */
    int getUserID();

    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 5;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 5;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return Whether the mobile field is set.
     */
    boolean hasMobile();
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return The mobile.
     */
    java.lang.String getMobile();
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return The bytes for mobile.
     */
    com.google.protobuf.ByteString
        getMobileBytes();

    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return Whether the srcGoodsCode field is set.
     */
    boolean hasSrcGoodsCode();
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return The srcGoodsCode.
     */
    java.lang.String getSrcGoodsCode();
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return The bytes for srcGoodsCode.
     */
    com.google.protobuf.ByteString
        getSrcGoodsCodeBytes();

    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return Whether the dstGoodsCode field is set.
     */
    boolean hasDstGoodsCode();
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return The dstGoodsCode.
     */
    java.lang.String getDstGoodsCode();
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return The bytes for dstGoodsCode.
     */
    com.google.protobuf.ByteString
        getDstGoodsCodeBytes();

    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 9;</code>
     * @return Whether the goodsID field is set.
     */
    boolean hasGoodsID();
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 9;</code>
     * @return The goodsID.
     */
    int getGoodsID();

    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 10;</code>
     * @return Whether the qty field is set.
     */
    boolean hasQty();
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 10;</code>
     * @return The qty.
     */
    double getQty();

    /**
     * <pre>
     * 转换目标商品数量
     * </pre>
     *
     * <code>optional double ConvertQty = 11;</code>
     * @return Whether the convertQty field is set.
     */
    boolean hasConvertQty();
    /**
     * <pre>
     * 转换目标商品数量
     * </pre>
     *
     * <code>optional double ConvertQty = 11;</code>
     * @return The convertQty.
     */
    double getConvertQty();

    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return Whether the clientSerialNo field is set.
     */
    boolean hasClientSerialNo();
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return The clientSerialNo.
     */
    java.lang.String getClientSerialNo();
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return The bytes for clientSerialNo.
     */
    com.google.protobuf.ByteString
        getClientSerialNoBytes();

    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 13;</code>
     * @return Whether the logID field is set.
     */
    boolean hasLogID();
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 13;</code>
     * @return The logID.
     */
    long getLogID();
  }
  /**
   * <pre>
   * 通道交易头寸转金点拍请求
   * </pre>
   *
   * Protobuf type {@code ChannelTradePosConvertJdpRsp}
   */
  public static final class ChannelTradePosConvertJdpRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelTradePosConvertJdpRsp)
      ChannelTradePosConvertJdpRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelTradePosConvertJdpRsp.newBuilder() to construct.
    private ChannelTradePosConvertJdpRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelTradePosConvertJdpRsp() {
      retDesc_ = "";
      mobile_ = "";
      srcGoodsCode_ = "";
      dstGoodsCode_ = "";
      clientSerialNo_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelTradePosConvertJdpRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelTradePosConvertJdpRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              userID_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              accountID_ = input.readUInt64();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              mobile_ = bs;
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              srcGoodsCode_ = bs;
              break;
            }
            case 66: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000080;
              dstGoodsCode_ = bs;
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              goodsID_ = input.readUInt32();
              break;
            }
            case 81: {
              bitField0_ |= 0x00000200;
              qty_ = input.readDouble();
              break;
            }
            case 89: {
              bitField0_ |= 0x00000400;
              convertQty_ = input.readDouble();
              break;
            }
            case 98: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000800;
              clientSerialNo_ = bs;
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              logID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelTradePosConvertJdpRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelTradePosConvertJdpRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelTradePosConvertJdpRsp.class, MSIM.ChannelTradePosConvertJdpRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERID_FIELD_NUMBER = 4;
    private int userID_;
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 4;</code>
     * @return Whether the userID field is set.
     */
    @java.lang.Override
    public boolean hasUserID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 4;</code>
     * @return The userID.
     */
    @java.lang.Override
    public int getUserID() {
      return userID_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 5;
    private long accountID_;
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 5;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 5;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int MOBILE_FIELD_NUMBER = 6;
    private volatile java.lang.Object mobile_;
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return Whether the mobile field is set.
     */
    @java.lang.Override
    public boolean hasMobile() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return The mobile.
     */
    @java.lang.Override
    public java.lang.String getMobile() {
      java.lang.Object ref = mobile_;
      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();
        if (bs.isValidUtf8()) {
          mobile_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return The bytes for mobile.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMobileBytes() {
      java.lang.Object ref = mobile_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mobile_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SRCGOODSCODE_FIELD_NUMBER = 7;
    private volatile java.lang.Object srcGoodsCode_;
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return Whether the srcGoodsCode field is set.
     */
    @java.lang.Override
    public boolean hasSrcGoodsCode() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return The srcGoodsCode.
     */
    @java.lang.Override
    public java.lang.String getSrcGoodsCode() {
      java.lang.Object ref = srcGoodsCode_;
      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();
        if (bs.isValidUtf8()) {
          srcGoodsCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return The bytes for srcGoodsCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSrcGoodsCodeBytes() {
      java.lang.Object ref = srcGoodsCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        srcGoodsCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DSTGOODSCODE_FIELD_NUMBER = 8;
    private volatile java.lang.Object dstGoodsCode_;
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return Whether the dstGoodsCode field is set.
     */
    @java.lang.Override
    public boolean hasDstGoodsCode() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return The dstGoodsCode.
     */
    @java.lang.Override
    public java.lang.String getDstGoodsCode() {
      java.lang.Object ref = dstGoodsCode_;
      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();
        if (bs.isValidUtf8()) {
          dstGoodsCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return The bytes for dstGoodsCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDstGoodsCodeBytes() {
      java.lang.Object ref = dstGoodsCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        dstGoodsCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GOODSID_FIELD_NUMBER = 9;
    private int goodsID_;
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 9;</code>
     * @return Whether the goodsID field is set.
     */
    @java.lang.Override
    public boolean hasGoodsID() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 9;</code>
     * @return The goodsID.
     */
    @java.lang.Override
    public int getGoodsID() {
      return goodsID_;
    }

    public static final int QTY_FIELD_NUMBER = 10;
    private double qty_;
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 10;</code>
     * @return Whether the qty field is set.
     */
    @java.lang.Override
    public boolean hasQty() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 10;</code>
     * @return The qty.
     */
    @java.lang.Override
    public double getQty() {
      return qty_;
    }

    public static final int CONVERTQTY_FIELD_NUMBER = 11;
    private double convertQty_;
    /**
     * <pre>
     * 转换目标商品数量
     * </pre>
     *
     * <code>optional double ConvertQty = 11;</code>
     * @return Whether the convertQty field is set.
     */
    @java.lang.Override
    public boolean hasConvertQty() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * 转换目标商品数量
     * </pre>
     *
     * <code>optional double ConvertQty = 11;</code>
     * @return The convertQty.
     */
    @java.lang.Override
    public double getConvertQty() {
      return convertQty_;
    }

    public static final int CLIENTSERIALNO_FIELD_NUMBER = 12;
    private volatile java.lang.Object clientSerialNo_;
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return Whether the clientSerialNo field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialNo() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return The clientSerialNo.
     */
    @java.lang.Override
    public java.lang.String getClientSerialNo() {
      java.lang.Object ref = clientSerialNo_;
      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();
        if (bs.isValidUtf8()) {
          clientSerialNo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return The bytes for clientSerialNo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientSerialNoBytes() {
      java.lang.Object ref = clientSerialNo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSerialNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGID_FIELD_NUMBER = 13;
    private long logID_;
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 13;</code>
     * @return Whether the logID field is set.
     */
    @java.lang.Override
    public boolean hasLogID() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 13;</code>
     * @return The logID.
     */
    @java.lang.Override
    public long getLogID() {
      return logID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, userID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, accountID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, mobile_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, srcGoodsCode_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, dstGoodsCode_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeUInt32(9, goodsID_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeDouble(10, qty_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeDouble(11, convertQty_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, clientSerialNo_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeUInt64(13, logID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, userID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, accountID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, mobile_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, srcGoodsCode_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, dstGoodsCode_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, goodsID_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(10, qty_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(11, convertQty_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, clientSerialNo_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(13, logID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelTradePosConvertJdpRsp)) {
        return super.equals(obj);
      }
      MSIM.ChannelTradePosConvertJdpRsp other = (MSIM.ChannelTradePosConvertJdpRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasUserID() != other.hasUserID()) return false;
      if (hasUserID()) {
        if (getUserID()
            != other.getUserID()) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasMobile() != other.hasMobile()) return false;
      if (hasMobile()) {
        if (!getMobile()
            .equals(other.getMobile())) return false;
      }
      if (hasSrcGoodsCode() != other.hasSrcGoodsCode()) return false;
      if (hasSrcGoodsCode()) {
        if (!getSrcGoodsCode()
            .equals(other.getSrcGoodsCode())) return false;
      }
      if (hasDstGoodsCode() != other.hasDstGoodsCode()) return false;
      if (hasDstGoodsCode()) {
        if (!getDstGoodsCode()
            .equals(other.getDstGoodsCode())) return false;
      }
      if (hasGoodsID() != other.hasGoodsID()) return false;
      if (hasGoodsID()) {
        if (getGoodsID()
            != other.getGoodsID()) return false;
      }
      if (hasQty() != other.hasQty()) return false;
      if (hasQty()) {
        if (java.lang.Double.doubleToLongBits(getQty())
            != java.lang.Double.doubleToLongBits(
                other.getQty())) return false;
      }
      if (hasConvertQty() != other.hasConvertQty()) return false;
      if (hasConvertQty()) {
        if (java.lang.Double.doubleToLongBits(getConvertQty())
            != java.lang.Double.doubleToLongBits(
                other.getConvertQty())) return false;
      }
      if (hasClientSerialNo() != other.hasClientSerialNo()) return false;
      if (hasClientSerialNo()) {
        if (!getClientSerialNo()
            .equals(other.getClientSerialNo())) return false;
      }
      if (hasLogID() != other.hasLogID()) return false;
      if (hasLogID()) {
        if (getLogID()
            != other.getLogID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasUserID()) {
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + getUserID();
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasMobile()) {
        hash = (37 * hash) + MOBILE_FIELD_NUMBER;
        hash = (53 * hash) + getMobile().hashCode();
      }
      if (hasSrcGoodsCode()) {
        hash = (37 * hash) + SRCGOODSCODE_FIELD_NUMBER;
        hash = (53 * hash) + getSrcGoodsCode().hashCode();
      }
      if (hasDstGoodsCode()) {
        hash = (37 * hash) + DSTGOODSCODE_FIELD_NUMBER;
        hash = (53 * hash) + getDstGoodsCode().hashCode();
      }
      if (hasGoodsID()) {
        hash = (37 * hash) + GOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsID();
      }
      if (hasQty()) {
        hash = (37 * hash) + QTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getQty()));
      }
      if (hasConvertQty()) {
        hash = (37 * hash) + CONVERTQTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getConvertQty()));
      }
      if (hasClientSerialNo()) {
        hash = (37 * hash) + CLIENTSERIALNO_FIELD_NUMBER;
        hash = (53 * hash) + getClientSerialNo().hashCode();
      }
      if (hasLogID()) {
        hash = (37 * hash) + LOGID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLogID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelTradePosConvertJdpRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelTradePosConvertJdpRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelTradePosConvertJdpRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelTradePosConvertJdpRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelTradePosConvertJdpRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelTradePosConvertJdpRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelTradePosConvertJdpRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelTradePosConvertJdpRsp 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 MSIM.ChannelTradePosConvertJdpRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelTradePosConvertJdpRsp 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 MSIM.ChannelTradePosConvertJdpRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelTradePosConvertJdpRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelTradePosConvertJdpRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 通道交易头寸转金点拍请求
     * </pre>
     *
     * Protobuf type {@code ChannelTradePosConvertJdpRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelTradePosConvertJdpRsp)
        MSIM.ChannelTradePosConvertJdpRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelTradePosConvertJdpRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelTradePosConvertJdpRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelTradePosConvertJdpRsp.class, MSIM.ChannelTradePosConvertJdpRsp.Builder.class);
      }

      // Construct using MSIM.ChannelTradePosConvertJdpRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        userID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        mobile_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        srcGoodsCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        dstGoodsCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        goodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        qty_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000200);
        convertQty_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000400);
        clientSerialNo_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        logID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelTradePosConvertJdpRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelTradePosConvertJdpRsp getDefaultInstanceForType() {
        return MSIM.ChannelTradePosConvertJdpRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelTradePosConvertJdpRsp build() {
        MSIM.ChannelTradePosConvertJdpRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelTradePosConvertJdpRsp buildPartial() {
        MSIM.ChannelTradePosConvertJdpRsp result = new MSIM.ChannelTradePosConvertJdpRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.userID_ = userID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.mobile_ = mobile_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.srcGoodsCode_ = srcGoodsCode_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          to_bitField0_ |= 0x00000080;
        }
        result.dstGoodsCode_ = dstGoodsCode_;
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.goodsID_ = goodsID_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.qty_ = qty_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.convertQty_ = convertQty_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          to_bitField0_ |= 0x00000800;
        }
        result.clientSerialNo_ = clientSerialNo_;
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.logID_ = logID_;
          to_bitField0_ |= 0x00001000;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelTradePosConvertJdpRsp) {
          return mergeFrom((MSIM.ChannelTradePosConvertJdpRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelTradePosConvertJdpRsp other) {
        if (other == MSIM.ChannelTradePosConvertJdpRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasUserID()) {
          setUserID(other.getUserID());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasMobile()) {
          bitField0_ |= 0x00000020;
          mobile_ = other.mobile_;
          onChanged();
        }
        if (other.hasSrcGoodsCode()) {
          bitField0_ |= 0x00000040;
          srcGoodsCode_ = other.srcGoodsCode_;
          onChanged();
        }
        if (other.hasDstGoodsCode()) {
          bitField0_ |= 0x00000080;
          dstGoodsCode_ = other.dstGoodsCode_;
          onChanged();
        }
        if (other.hasGoodsID()) {
          setGoodsID(other.getGoodsID());
        }
        if (other.hasQty()) {
          setQty(other.getQty());
        }
        if (other.hasConvertQty()) {
          setConvertQty(other.getConvertQty());
        }
        if (other.hasClientSerialNo()) {
          bitField0_ |= 0x00000800;
          clientSerialNo_ = other.clientSerialNo_;
          onChanged();
        }
        if (other.hasLogID()) {
          setLogID(other.getLogID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelTradePosConvertJdpRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelTradePosConvertJdpRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private int userID_ ;
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 4;</code>
       * @return Whether the userID field is set.
       */
      @java.lang.Override
      public boolean hasUserID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 4;</code>
       * @return The userID.
       */
      @java.lang.Override
      public int getUserID() {
        return userID_;
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 4;</code>
       * @param value The userID to set.
       * @return This builder for chaining.
       */
      public Builder setUserID(int value) {
        bitField0_ |= 0x00000008;
        userID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        userID_ = 0;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 5;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 5;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 5;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000010;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object mobile_ = "";
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @return Whether the mobile field is set.
       */
      public boolean hasMobile() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @return The mobile.
       */
      public java.lang.String getMobile() {
        java.lang.Object ref = mobile_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            mobile_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @return The bytes for mobile.
       */
      public com.google.protobuf.ByteString
          getMobileBytes() {
        java.lang.Object ref = mobile_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mobile_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @param value The mobile to set.
       * @return This builder for chaining.
       */
      public Builder setMobile(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        mobile_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearMobile() {
        bitField0_ = (bitField0_ & ~0x00000020);
        mobile_ = getDefaultInstance().getMobile();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @param value The bytes for mobile to set.
       * @return This builder for chaining.
       */
      public Builder setMobileBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        mobile_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object srcGoodsCode_ = "";
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @return Whether the srcGoodsCode field is set.
       */
      public boolean hasSrcGoodsCode() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @return The srcGoodsCode.
       */
      public java.lang.String getSrcGoodsCode() {
        java.lang.Object ref = srcGoodsCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            srcGoodsCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @return The bytes for srcGoodsCode.
       */
      public com.google.protobuf.ByteString
          getSrcGoodsCodeBytes() {
        java.lang.Object ref = srcGoodsCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          srcGoodsCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @param value The srcGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setSrcGoodsCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        srcGoodsCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearSrcGoodsCode() {
        bitField0_ = (bitField0_ & ~0x00000040);
        srcGoodsCode_ = getDefaultInstance().getSrcGoodsCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @param value The bytes for srcGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setSrcGoodsCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        srcGoodsCode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object dstGoodsCode_ = "";
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @return Whether the dstGoodsCode field is set.
       */
      public boolean hasDstGoodsCode() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @return The dstGoodsCode.
       */
      public java.lang.String getDstGoodsCode() {
        java.lang.Object ref = dstGoodsCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            dstGoodsCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @return The bytes for dstGoodsCode.
       */
      public com.google.protobuf.ByteString
          getDstGoodsCodeBytes() {
        java.lang.Object ref = dstGoodsCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          dstGoodsCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @param value The dstGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setDstGoodsCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        dstGoodsCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearDstGoodsCode() {
        bitField0_ = (bitField0_ & ~0x00000080);
        dstGoodsCode_ = getDefaultInstance().getDstGoodsCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @param value The bytes for dstGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setDstGoodsCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        dstGoodsCode_ = value;
        onChanged();
        return this;
      }

      private int goodsID_ ;
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 9;</code>
       * @return Whether the goodsID field is set.
       */
      @java.lang.Override
      public boolean hasGoodsID() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 9;</code>
       * @return The goodsID.
       */
      @java.lang.Override
      public int getGoodsID() {
        return goodsID_;
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 9;</code>
       * @param value The goodsID to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsID(int value) {
        bitField0_ |= 0x00000100;
        goodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsID() {
        bitField0_ = (bitField0_ & ~0x00000100);
        goodsID_ = 0;
        onChanged();
        return this;
      }

      private double qty_ ;
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 10;</code>
       * @return Whether the qty field is set.
       */
      @java.lang.Override
      public boolean hasQty() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 10;</code>
       * @return The qty.
       */
      @java.lang.Override
      public double getQty() {
        return qty_;
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 10;</code>
       * @param value The qty to set.
       * @return This builder for chaining.
       */
      public Builder setQty(double value) {
        bitField0_ |= 0x00000200;
        qty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearQty() {
        bitField0_ = (bitField0_ & ~0x00000200);
        qty_ = 0D;
        onChanged();
        return this;
      }

      private double convertQty_ ;
      /**
       * <pre>
       * 转换目标商品数量
       * </pre>
       *
       * <code>optional double ConvertQty = 11;</code>
       * @return Whether the convertQty field is set.
       */
      @java.lang.Override
      public boolean hasConvertQty() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * 转换目标商品数量
       * </pre>
       *
       * <code>optional double ConvertQty = 11;</code>
       * @return The convertQty.
       */
      @java.lang.Override
      public double getConvertQty() {
        return convertQty_;
      }
      /**
       * <pre>
       * 转换目标商品数量
       * </pre>
       *
       * <code>optional double ConvertQty = 11;</code>
       * @param value The convertQty to set.
       * @return This builder for chaining.
       */
      public Builder setConvertQty(double value) {
        bitField0_ |= 0x00000400;
        convertQty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 转换目标商品数量
       * </pre>
       *
       * <code>optional double ConvertQty = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearConvertQty() {
        bitField0_ = (bitField0_ & ~0x00000400);
        convertQty_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object clientSerialNo_ = "";
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @return Whether the clientSerialNo field is set.
       */
      public boolean hasClientSerialNo() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @return The clientSerialNo.
       */
      public java.lang.String getClientSerialNo() {
        java.lang.Object ref = clientSerialNo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientSerialNo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @return The bytes for clientSerialNo.
       */
      public com.google.protobuf.ByteString
          getClientSerialNoBytes() {
        java.lang.Object ref = clientSerialNo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientSerialNo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @param value The clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialNo() {
        bitField0_ = (bitField0_ & ~0x00000800);
        clientSerialNo_ = getDefaultInstance().getClientSerialNo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @param value The bytes for clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }

      private long logID_ ;
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 13;</code>
       * @return Whether the logID field is set.
       */
      @java.lang.Override
      public boolean hasLogID() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 13;</code>
       * @return The logID.
       */
      @java.lang.Override
      public long getLogID() {
        return logID_;
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 13;</code>
       * @param value The logID to set.
       * @return This builder for chaining.
       */
      public Builder setLogID(long value) {
        bitField0_ |= 0x00001000;
        logID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearLogID() {
        bitField0_ = (bitField0_ & ~0x00001000);
        logID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelTradePosConvertJdpRsp)
    }

    // @@protoc_insertion_point(class_scope:ChannelTradePosConvertJdpRsp)
    private static final MSIM.ChannelTradePosConvertJdpRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelTradePosConvertJdpRsp();
    }

    public static MSIM.ChannelTradePosConvertJdpRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelTradePosConvertJdpRsp>
        PARSER = new com.google.protobuf.AbstractParser<ChannelTradePosConvertJdpRsp>() {
      @java.lang.Override
      public ChannelTradePosConvertJdpRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelTradePosConvertJdpRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelTradePosConvertJdpRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelJdpPdConvertTradeReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelJdpPdConvertTradeReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 2;</code>
     * @return Whether the userID field is set.
     */
    boolean hasUserID();
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 2;</code>
     * @return The userID.
     */
    int getUserID();

    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return Whether the mobile field is set.
     */
    boolean hasMobile();
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return The mobile.
     */
    java.lang.String getMobile();
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return The bytes for mobile.
     */
    com.google.protobuf.ByteString
        getMobileBytes();

    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return Whether the srcGoodsCode field is set.
     */
    boolean hasSrcGoodsCode();
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return The srcGoodsCode.
     */
    java.lang.String getSrcGoodsCode();
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return The bytes for srcGoodsCode.
     */
    com.google.protobuf.ByteString
        getSrcGoodsCodeBytes();

    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return Whether the dstGoodsCode field is set.
     */
    boolean hasDstGoodsCode();
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return The dstGoodsCode.
     */
    java.lang.String getDstGoodsCode();
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return The bytes for dstGoodsCode.
     */
    com.google.protobuf.ByteString
        getDstGoodsCodeBytes();

    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return Whether the goodsID field is set.
     */
    boolean hasGoodsID();
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return The goodsID.
     */
    int getGoodsID();

    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 8;</code>
     * @return Whether the qty field is set.
     */
    boolean hasQty();
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 8;</code>
     * @return The qty.
     */
    double getQty();

    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return Whether the clientSerialNo field is set.
     */
    boolean hasClientSerialNo();
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return The clientSerialNo.
     */
    java.lang.String getClientSerialNo();
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return The bytes for clientSerialNo.
     */
    com.google.protobuf.ByteString
        getClientSerialNoBytes();

    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 10;</code>
     * @return Whether the logID field is set.
     */
    boolean hasLogID();
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 10;</code>
     * @return The logID.
     */
    long getLogID();
  }
  /**
   * <pre>
   * 通道金点拍PD转交易请求
   * </pre>
   *
   * Protobuf type {@code ChannelJdpPdConvertTradeReq}
   */
  public static final class ChannelJdpPdConvertTradeReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelJdpPdConvertTradeReq)
      ChannelJdpPdConvertTradeReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelJdpPdConvertTradeReq.newBuilder() to construct.
    private ChannelJdpPdConvertTradeReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelJdpPdConvertTradeReq() {
      mobile_ = "";
      srcGoodsCode_ = "";
      dstGoodsCode_ = "";
      clientSerialNo_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelJdpPdConvertTradeReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelJdpPdConvertTradeReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              userID_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              accountID_ = input.readUInt64();
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              mobile_ = bs;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              srcGoodsCode_ = bs;
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              dstGoodsCode_ = bs;
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              goodsID_ = input.readUInt32();
              break;
            }
            case 65: {
              bitField0_ |= 0x00000080;
              qty_ = input.readDouble();
              break;
            }
            case 74: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000100;
              clientSerialNo_ = bs;
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              logID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelJdpPdConvertTradeReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelJdpPdConvertTradeReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelJdpPdConvertTradeReq.class, MSIM.ChannelJdpPdConvertTradeReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int USERID_FIELD_NUMBER = 2;
    private int userID_;
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 2;</code>
     * @return Whether the userID field is set.
     */
    @java.lang.Override
    public boolean hasUserID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 2;</code>
     * @return The userID.
     */
    @java.lang.Override
    public int getUserID() {
      return userID_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 3;
    private long accountID_;
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int MOBILE_FIELD_NUMBER = 4;
    private volatile java.lang.Object mobile_;
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return Whether the mobile field is set.
     */
    @java.lang.Override
    public boolean hasMobile() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return The mobile.
     */
    @java.lang.Override
    public java.lang.String getMobile() {
      java.lang.Object ref = mobile_;
      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();
        if (bs.isValidUtf8()) {
          mobile_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 4;</code>
     * @return The bytes for mobile.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMobileBytes() {
      java.lang.Object ref = mobile_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mobile_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SRCGOODSCODE_FIELD_NUMBER = 5;
    private volatile java.lang.Object srcGoodsCode_;
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return Whether the srcGoodsCode field is set.
     */
    @java.lang.Override
    public boolean hasSrcGoodsCode() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return The srcGoodsCode.
     */
    @java.lang.Override
    public java.lang.String getSrcGoodsCode() {
      java.lang.Object ref = srcGoodsCode_;
      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();
        if (bs.isValidUtf8()) {
          srcGoodsCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 5;</code>
     * @return The bytes for srcGoodsCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSrcGoodsCodeBytes() {
      java.lang.Object ref = srcGoodsCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        srcGoodsCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DSTGOODSCODE_FIELD_NUMBER = 6;
    private volatile java.lang.Object dstGoodsCode_;
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return Whether the dstGoodsCode field is set.
     */
    @java.lang.Override
    public boolean hasDstGoodsCode() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return The dstGoodsCode.
     */
    @java.lang.Override
    public java.lang.String getDstGoodsCode() {
      java.lang.Object ref = dstGoodsCode_;
      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();
        if (bs.isValidUtf8()) {
          dstGoodsCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 目标商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 6;</code>
     * @return The bytes for dstGoodsCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDstGoodsCodeBytes() {
      java.lang.Object ref = dstGoodsCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        dstGoodsCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GOODSID_FIELD_NUMBER = 7;
    private int goodsID_;
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return Whether the goodsID field is set.
     */
    @java.lang.Override
    public boolean hasGoodsID() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return The goodsID.
     */
    @java.lang.Override
    public int getGoodsID() {
      return goodsID_;
    }

    public static final int QTY_FIELD_NUMBER = 8;
    private double qty_;
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 8;</code>
     * @return Whether the qty field is set.
     */
    @java.lang.Override
    public boolean hasQty() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 8;</code>
     * @return The qty.
     */
    @java.lang.Override
    public double getQty() {
      return qty_;
    }

    public static final int CLIENTSERIALNO_FIELD_NUMBER = 9;
    private volatile java.lang.Object clientSerialNo_;
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return Whether the clientSerialNo field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialNo() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return The clientSerialNo.
     */
    @java.lang.Override
    public java.lang.String getClientSerialNo() {
      java.lang.Object ref = clientSerialNo_;
      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();
        if (bs.isValidUtf8()) {
          clientSerialNo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 9;</code>
     * @return The bytes for clientSerialNo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientSerialNoBytes() {
      java.lang.Object ref = clientSerialNo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSerialNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGID_FIELD_NUMBER = 10;
    private long logID_;
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 10;</code>
     * @return Whether the logID field is set.
     */
    @java.lang.Override
    public boolean hasLogID() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 10;</code>
     * @return The logID.
     */
    @java.lang.Override
    public long getLogID() {
      return logID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, userID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt64(3, accountID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, mobile_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, srcGoodsCode_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, dstGoodsCode_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeUInt32(7, goodsID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeDouble(8, qty_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeUInt64(10, logID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, userID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(3, accountID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, mobile_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, srcGoodsCode_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, dstGoodsCode_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, goodsID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(8, qty_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(10, logID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelJdpPdConvertTradeReq)) {
        return super.equals(obj);
      }
      MSIM.ChannelJdpPdConvertTradeReq other = (MSIM.ChannelJdpPdConvertTradeReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasUserID() != other.hasUserID()) return false;
      if (hasUserID()) {
        if (getUserID()
            != other.getUserID()) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasMobile() != other.hasMobile()) return false;
      if (hasMobile()) {
        if (!getMobile()
            .equals(other.getMobile())) return false;
      }
      if (hasSrcGoodsCode() != other.hasSrcGoodsCode()) return false;
      if (hasSrcGoodsCode()) {
        if (!getSrcGoodsCode()
            .equals(other.getSrcGoodsCode())) return false;
      }
      if (hasDstGoodsCode() != other.hasDstGoodsCode()) return false;
      if (hasDstGoodsCode()) {
        if (!getDstGoodsCode()
            .equals(other.getDstGoodsCode())) return false;
      }
      if (hasGoodsID() != other.hasGoodsID()) return false;
      if (hasGoodsID()) {
        if (getGoodsID()
            != other.getGoodsID()) return false;
      }
      if (hasQty() != other.hasQty()) return false;
      if (hasQty()) {
        if (java.lang.Double.doubleToLongBits(getQty())
            != java.lang.Double.doubleToLongBits(
                other.getQty())) return false;
      }
      if (hasClientSerialNo() != other.hasClientSerialNo()) return false;
      if (hasClientSerialNo()) {
        if (!getClientSerialNo()
            .equals(other.getClientSerialNo())) return false;
      }
      if (hasLogID() != other.hasLogID()) return false;
      if (hasLogID()) {
        if (getLogID()
            != other.getLogID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasUserID()) {
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + getUserID();
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasMobile()) {
        hash = (37 * hash) + MOBILE_FIELD_NUMBER;
        hash = (53 * hash) + getMobile().hashCode();
      }
      if (hasSrcGoodsCode()) {
        hash = (37 * hash) + SRCGOODSCODE_FIELD_NUMBER;
        hash = (53 * hash) + getSrcGoodsCode().hashCode();
      }
      if (hasDstGoodsCode()) {
        hash = (37 * hash) + DSTGOODSCODE_FIELD_NUMBER;
        hash = (53 * hash) + getDstGoodsCode().hashCode();
      }
      if (hasGoodsID()) {
        hash = (37 * hash) + GOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsID();
      }
      if (hasQty()) {
        hash = (37 * hash) + QTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getQty()));
      }
      if (hasClientSerialNo()) {
        hash = (37 * hash) + CLIENTSERIALNO_FIELD_NUMBER;
        hash = (53 * hash) + getClientSerialNo().hashCode();
      }
      if (hasLogID()) {
        hash = (37 * hash) + LOGID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLogID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelJdpPdConvertTradeReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelJdpPdConvertTradeReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelJdpPdConvertTradeReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelJdpPdConvertTradeReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelJdpPdConvertTradeReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelJdpPdConvertTradeReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelJdpPdConvertTradeReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelJdpPdConvertTradeReq 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 MSIM.ChannelJdpPdConvertTradeReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelJdpPdConvertTradeReq 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 MSIM.ChannelJdpPdConvertTradeReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelJdpPdConvertTradeReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelJdpPdConvertTradeReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 通道金点拍PD转交易请求
     * </pre>
     *
     * Protobuf type {@code ChannelJdpPdConvertTradeReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelJdpPdConvertTradeReq)
        MSIM.ChannelJdpPdConvertTradeReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelJdpPdConvertTradeReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelJdpPdConvertTradeReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelJdpPdConvertTradeReq.class, MSIM.ChannelJdpPdConvertTradeReq.Builder.class);
      }

      // Construct using MSIM.ChannelJdpPdConvertTradeReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        userID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        mobile_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        srcGoodsCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        dstGoodsCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        goodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        qty_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000080);
        clientSerialNo_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        logID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelJdpPdConvertTradeReq_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelJdpPdConvertTradeReq getDefaultInstanceForType() {
        return MSIM.ChannelJdpPdConvertTradeReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelJdpPdConvertTradeReq build() {
        MSIM.ChannelJdpPdConvertTradeReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelJdpPdConvertTradeReq buildPartial() {
        MSIM.ChannelJdpPdConvertTradeReq result = new MSIM.ChannelJdpPdConvertTradeReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.userID_ = userID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.mobile_ = mobile_;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.srcGoodsCode_ = srcGoodsCode_;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.dstGoodsCode_ = dstGoodsCode_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.goodsID_ = goodsID_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.qty_ = qty_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          to_bitField0_ |= 0x00000100;
        }
        result.clientSerialNo_ = clientSerialNo_;
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.logID_ = logID_;
          to_bitField0_ |= 0x00000200;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelJdpPdConvertTradeReq) {
          return mergeFrom((MSIM.ChannelJdpPdConvertTradeReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelJdpPdConvertTradeReq other) {
        if (other == MSIM.ChannelJdpPdConvertTradeReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasUserID()) {
          setUserID(other.getUserID());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasMobile()) {
          bitField0_ |= 0x00000008;
          mobile_ = other.mobile_;
          onChanged();
        }
        if (other.hasSrcGoodsCode()) {
          bitField0_ |= 0x00000010;
          srcGoodsCode_ = other.srcGoodsCode_;
          onChanged();
        }
        if (other.hasDstGoodsCode()) {
          bitField0_ |= 0x00000020;
          dstGoodsCode_ = other.dstGoodsCode_;
          onChanged();
        }
        if (other.hasGoodsID()) {
          setGoodsID(other.getGoodsID());
        }
        if (other.hasQty()) {
          setQty(other.getQty());
        }
        if (other.hasClientSerialNo()) {
          bitField0_ |= 0x00000100;
          clientSerialNo_ = other.clientSerialNo_;
          onChanged();
        }
        if (other.hasLogID()) {
          setLogID(other.getLogID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelJdpPdConvertTradeReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelJdpPdConvertTradeReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int userID_ ;
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 2;</code>
       * @return Whether the userID field is set.
       */
      @java.lang.Override
      public boolean hasUserID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 2;</code>
       * @return The userID.
       */
      @java.lang.Override
      public int getUserID() {
        return userID_;
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 2;</code>
       * @param value The userID to set.
       * @return This builder for chaining.
       */
      public Builder setUserID(int value) {
        bitField0_ |= 0x00000002;
        userID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        userID_ = 0;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000004;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object mobile_ = "";
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @return Whether the mobile field is set.
       */
      public boolean hasMobile() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @return The mobile.
       */
      public java.lang.String getMobile() {
        java.lang.Object ref = mobile_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            mobile_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @return The bytes for mobile.
       */
      public com.google.protobuf.ByteString
          getMobileBytes() {
        java.lang.Object ref = mobile_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mobile_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @param value The mobile to set.
       * @return This builder for chaining.
       */
      public Builder setMobile(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        mobile_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMobile() {
        bitField0_ = (bitField0_ & ~0x00000008);
        mobile_ = getDefaultInstance().getMobile();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 4;</code>
       * @param value The bytes for mobile to set.
       * @return This builder for chaining.
       */
      public Builder setMobileBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        mobile_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object srcGoodsCode_ = "";
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @return Whether the srcGoodsCode field is set.
       */
      public boolean hasSrcGoodsCode() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @return The srcGoodsCode.
       */
      public java.lang.String getSrcGoodsCode() {
        java.lang.Object ref = srcGoodsCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            srcGoodsCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @return The bytes for srcGoodsCode.
       */
      public com.google.protobuf.ByteString
          getSrcGoodsCodeBytes() {
        java.lang.Object ref = srcGoodsCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          srcGoodsCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @param value The srcGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setSrcGoodsCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        srcGoodsCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearSrcGoodsCode() {
        bitField0_ = (bitField0_ & ~0x00000010);
        srcGoodsCode_ = getDefaultInstance().getSrcGoodsCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 5;</code>
       * @param value The bytes for srcGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setSrcGoodsCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        srcGoodsCode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object dstGoodsCode_ = "";
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @return Whether the dstGoodsCode field is set.
       */
      public boolean hasDstGoodsCode() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @return The dstGoodsCode.
       */
      public java.lang.String getDstGoodsCode() {
        java.lang.Object ref = dstGoodsCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            dstGoodsCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @return The bytes for dstGoodsCode.
       */
      public com.google.protobuf.ByteString
          getDstGoodsCodeBytes() {
        java.lang.Object ref = dstGoodsCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          dstGoodsCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @param value The dstGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setDstGoodsCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        dstGoodsCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearDstGoodsCode() {
        bitField0_ = (bitField0_ & ~0x00000020);
        dstGoodsCode_ = getDefaultInstance().getDstGoodsCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 目标商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 6;</code>
       * @param value The bytes for dstGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setDstGoodsCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        dstGoodsCode_ = value;
        onChanged();
        return this;
      }

      private int goodsID_ ;
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return Whether the goodsID field is set.
       */
      @java.lang.Override
      public boolean hasGoodsID() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return The goodsID.
       */
      @java.lang.Override
      public int getGoodsID() {
        return goodsID_;
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @param value The goodsID to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsID(int value) {
        bitField0_ |= 0x00000040;
        goodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        goodsID_ = 0;
        onChanged();
        return this;
      }

      private double qty_ ;
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 8;</code>
       * @return Whether the qty field is set.
       */
      @java.lang.Override
      public boolean hasQty() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 8;</code>
       * @return The qty.
       */
      @java.lang.Override
      public double getQty() {
        return qty_;
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 8;</code>
       * @param value The qty to set.
       * @return This builder for chaining.
       */
      public Builder setQty(double value) {
        bitField0_ |= 0x00000080;
        qty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearQty() {
        bitField0_ = (bitField0_ & ~0x00000080);
        qty_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object clientSerialNo_ = "";
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @return Whether the clientSerialNo field is set.
       */
      public boolean hasClientSerialNo() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @return The clientSerialNo.
       */
      public java.lang.String getClientSerialNo() {
        java.lang.Object ref = clientSerialNo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientSerialNo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @return The bytes for clientSerialNo.
       */
      public com.google.protobuf.ByteString
          getClientSerialNoBytes() {
        java.lang.Object ref = clientSerialNo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientSerialNo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @param value The clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialNo() {
        bitField0_ = (bitField0_ & ~0x00000100);
        clientSerialNo_ = getDefaultInstance().getClientSerialNo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 9;</code>
       * @param value The bytes for clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }

      private long logID_ ;
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 10;</code>
       * @return Whether the logID field is set.
       */
      @java.lang.Override
      public boolean hasLogID() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 10;</code>
       * @return The logID.
       */
      @java.lang.Override
      public long getLogID() {
        return logID_;
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 10;</code>
       * @param value The logID to set.
       * @return This builder for chaining.
       */
      public Builder setLogID(long value) {
        bitField0_ |= 0x00000200;
        logID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearLogID() {
        bitField0_ = (bitField0_ & ~0x00000200);
        logID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelJdpPdConvertTradeReq)
    }

    // @@protoc_insertion_point(class_scope:ChannelJdpPdConvertTradeReq)
    private static final MSIM.ChannelJdpPdConvertTradeReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelJdpPdConvertTradeReq();
    }

    public static MSIM.ChannelJdpPdConvertTradeReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelJdpPdConvertTradeReq>
        PARSER = new com.google.protobuf.AbstractParser<ChannelJdpPdConvertTradeReq>() {
      @java.lang.Override
      public ChannelJdpPdConvertTradeReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelJdpPdConvertTradeReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelJdpPdConvertTradeReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChannelJdpPdConvertTradeRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChannelJdpPdConvertTradeRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 4;</code>
     * @return Whether the userID field is set.
     */
    boolean hasUserID();
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 4;</code>
     * @return The userID.
     */
    int getUserID();

    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 5;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 5;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return Whether the mobile field is set.
     */
    boolean hasMobile();
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return The mobile.
     */
    java.lang.String getMobile();
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return The bytes for mobile.
     */
    com.google.protobuf.ByteString
        getMobileBytes();

    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return Whether the srcGoodsCode field is set.
     */
    boolean hasSrcGoodsCode();
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return The srcGoodsCode.
     */
    java.lang.String getSrcGoodsCode();
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return The bytes for srcGoodsCode.
     */
    com.google.protobuf.ByteString
        getSrcGoodsCodeBytes();

    /**
     * <pre>
     * 外部商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return Whether the dstGoodsCode field is set.
     */
    boolean hasDstGoodsCode();
    /**
     * <pre>
     * 外部商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return The dstGoodsCode.
     */
    java.lang.String getDstGoodsCode();
    /**
     * <pre>
     * 外部商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return The bytes for dstGoodsCode.
     */
    com.google.protobuf.ByteString
        getDstGoodsCodeBytes();

    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 9;</code>
     * @return Whether the goodsID field is set.
     */
    boolean hasGoodsID();
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 9;</code>
     * @return The goodsID.
     */
    int getGoodsID();

    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 10;</code>
     * @return Whether the qty field is set.
     */
    boolean hasQty();
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 10;</code>
     * @return The qty.
     */
    double getQty();

    /**
     * <pre>
     * 转换目标商品数量
     * </pre>
     *
     * <code>optional double ConvertQty = 11;</code>
     * @return Whether the convertQty field is set.
     */
    boolean hasConvertQty();
    /**
     * <pre>
     * 转换目标商品数量
     * </pre>
     *
     * <code>optional double ConvertQty = 11;</code>
     * @return The convertQty.
     */
    double getConvertQty();

    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return Whether the clientSerialNo field is set.
     */
    boolean hasClientSerialNo();
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return The clientSerialNo.
     */
    java.lang.String getClientSerialNo();
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return The bytes for clientSerialNo.
     */
    com.google.protobuf.ByteString
        getClientSerialNoBytes();

    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 13;</code>
     * @return Whether the logID field is set.
     */
    boolean hasLogID();
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 13;</code>
     * @return The logID.
     */
    long getLogID();
  }
  /**
   * <pre>
   * 通道金点拍PD转交易响应
   * </pre>
   *
   * Protobuf type {@code ChannelJdpPdConvertTradeRsp}
   */
  public static final class ChannelJdpPdConvertTradeRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChannelJdpPdConvertTradeRsp)
      ChannelJdpPdConvertTradeRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChannelJdpPdConvertTradeRsp.newBuilder() to construct.
    private ChannelJdpPdConvertTradeRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChannelJdpPdConvertTradeRsp() {
      retDesc_ = "";
      mobile_ = "";
      srcGoodsCode_ = "";
      dstGoodsCode_ = "";
      clientSerialNo_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChannelJdpPdConvertTradeRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChannelJdpPdConvertTradeRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              userID_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              accountID_ = input.readUInt64();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              mobile_ = bs;
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              srcGoodsCode_ = bs;
              break;
            }
            case 66: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000080;
              dstGoodsCode_ = bs;
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              goodsID_ = input.readUInt32();
              break;
            }
            case 81: {
              bitField0_ |= 0x00000200;
              qty_ = input.readDouble();
              break;
            }
            case 89: {
              bitField0_ |= 0x00000400;
              convertQty_ = input.readDouble();
              break;
            }
            case 98: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000800;
              clientSerialNo_ = bs;
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              logID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_ChannelJdpPdConvertTradeRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_ChannelJdpPdConvertTradeRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.ChannelJdpPdConvertTradeRsp.class, MSIM.ChannelJdpPdConvertTradeRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USERID_FIELD_NUMBER = 4;
    private int userID_;
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 4;</code>
     * @return Whether the userID field is set.
     */
    @java.lang.Override
    public boolean hasUserID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 用户ID
     * </pre>
     *
     * <code>optional uint32 UserID = 4;</code>
     * @return The userID.
     */
    @java.lang.Override
    public int getUserID() {
      return userID_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 5;
    private long accountID_;
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 5;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * 账号ID
     * </pre>
     *
     * <code>optional uint64 AccountID = 5;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int MOBILE_FIELD_NUMBER = 6;
    private volatile java.lang.Object mobile_;
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return Whether the mobile field is set.
     */
    @java.lang.Override
    public boolean hasMobile() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return The mobile.
     */
    @java.lang.Override
    public java.lang.String getMobile() {
      java.lang.Object ref = mobile_;
      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();
        if (bs.isValidUtf8()) {
          mobile_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 手机号
     * </pre>
     *
     * <code>optional string Mobile = 6;</code>
     * @return The bytes for mobile.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMobileBytes() {
      java.lang.Object ref = mobile_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mobile_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SRCGOODSCODE_FIELD_NUMBER = 7;
    private volatile java.lang.Object srcGoodsCode_;
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return Whether the srcGoodsCode field is set.
     */
    @java.lang.Override
    public boolean hasSrcGoodsCode() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return The srcGoodsCode.
     */
    @java.lang.Override
    public java.lang.String getSrcGoodsCode() {
      java.lang.Object ref = srcGoodsCode_;
      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();
        if (bs.isValidUtf8()) {
          srcGoodsCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 源商品编码
     * </pre>
     *
     * <code>optional string SrcGoodsCode = 7;</code>
     * @return The bytes for srcGoodsCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSrcGoodsCodeBytes() {
      java.lang.Object ref = srcGoodsCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        srcGoodsCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DSTGOODSCODE_FIELD_NUMBER = 8;
    private volatile java.lang.Object dstGoodsCode_;
    /**
     * <pre>
     * 外部商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return Whether the dstGoodsCode field is set.
     */
    @java.lang.Override
    public boolean hasDstGoodsCode() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * 外部商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return The dstGoodsCode.
     */
    @java.lang.Override
    public java.lang.String getDstGoodsCode() {
      java.lang.Object ref = dstGoodsCode_;
      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();
        if (bs.isValidUtf8()) {
          dstGoodsCode_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 外部商品编码
     * </pre>
     *
     * <code>optional string DstGoodsCode = 8;</code>
     * @return The bytes for dstGoodsCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDstGoodsCodeBytes() {
      java.lang.Object ref = dstGoodsCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        dstGoodsCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GOODSID_FIELD_NUMBER = 9;
    private int goodsID_;
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 9;</code>
     * @return Whether the goodsID field is set.
     */
    @java.lang.Override
    public boolean hasGoodsID() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 9;</code>
     * @return The goodsID.
     */
    @java.lang.Override
    public int getGoodsID() {
      return goodsID_;
    }

    public static final int QTY_FIELD_NUMBER = 10;
    private double qty_;
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 10;</code>
     * @return Whether the qty field is set.
     */
    @java.lang.Override
    public boolean hasQty() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * 转换数量
     * </pre>
     *
     * <code>optional double Qty = 10;</code>
     * @return The qty.
     */
    @java.lang.Override
    public double getQty() {
      return qty_;
    }

    public static final int CONVERTQTY_FIELD_NUMBER = 11;
    private double convertQty_;
    /**
     * <pre>
     * 转换目标商品数量
     * </pre>
     *
     * <code>optional double ConvertQty = 11;</code>
     * @return Whether the convertQty field is set.
     */
    @java.lang.Override
    public boolean hasConvertQty() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * 转换目标商品数量
     * </pre>
     *
     * <code>optional double ConvertQty = 11;</code>
     * @return The convertQty.
     */
    @java.lang.Override
    public double getConvertQty() {
      return convertQty_;
    }

    public static final int CLIENTSERIALNO_FIELD_NUMBER = 12;
    private volatile java.lang.Object clientSerialNo_;
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return Whether the clientSerialNo field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialNo() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return The clientSerialNo.
     */
    @java.lang.Override
    public java.lang.String getClientSerialNo() {
      java.lang.Object ref = clientSerialNo_;
      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();
        if (bs.isValidUtf8()) {
          clientSerialNo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 12;</code>
     * @return The bytes for clientSerialNo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientSerialNoBytes() {
      java.lang.Object ref = clientSerialNo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSerialNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGID_FIELD_NUMBER = 13;
    private long logID_;
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 13;</code>
     * @return Whether the logID field is set.
     */
    @java.lang.Override
    public boolean hasLogID() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * 日志ID(内部用)
     * </pre>
     *
     * <code>optional uint64 LogID = 13;</code>
     * @return The logID.
     */
    @java.lang.Override
    public long getLogID() {
      return logID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, userID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, accountID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, mobile_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, srcGoodsCode_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, dstGoodsCode_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeUInt32(9, goodsID_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeDouble(10, qty_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeDouble(11, convertQty_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, clientSerialNo_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeUInt64(13, logID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, userID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, accountID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, mobile_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, srcGoodsCode_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, dstGoodsCode_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, goodsID_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(10, qty_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(11, convertQty_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, clientSerialNo_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(13, logID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.ChannelJdpPdConvertTradeRsp)) {
        return super.equals(obj);
      }
      MSIM.ChannelJdpPdConvertTradeRsp other = (MSIM.ChannelJdpPdConvertTradeRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasUserID() != other.hasUserID()) return false;
      if (hasUserID()) {
        if (getUserID()
            != other.getUserID()) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasMobile() != other.hasMobile()) return false;
      if (hasMobile()) {
        if (!getMobile()
            .equals(other.getMobile())) return false;
      }
      if (hasSrcGoodsCode() != other.hasSrcGoodsCode()) return false;
      if (hasSrcGoodsCode()) {
        if (!getSrcGoodsCode()
            .equals(other.getSrcGoodsCode())) return false;
      }
      if (hasDstGoodsCode() != other.hasDstGoodsCode()) return false;
      if (hasDstGoodsCode()) {
        if (!getDstGoodsCode()
            .equals(other.getDstGoodsCode())) return false;
      }
      if (hasGoodsID() != other.hasGoodsID()) return false;
      if (hasGoodsID()) {
        if (getGoodsID()
            != other.getGoodsID()) return false;
      }
      if (hasQty() != other.hasQty()) return false;
      if (hasQty()) {
        if (java.lang.Double.doubleToLongBits(getQty())
            != java.lang.Double.doubleToLongBits(
                other.getQty())) return false;
      }
      if (hasConvertQty() != other.hasConvertQty()) return false;
      if (hasConvertQty()) {
        if (java.lang.Double.doubleToLongBits(getConvertQty())
            != java.lang.Double.doubleToLongBits(
                other.getConvertQty())) return false;
      }
      if (hasClientSerialNo() != other.hasClientSerialNo()) return false;
      if (hasClientSerialNo()) {
        if (!getClientSerialNo()
            .equals(other.getClientSerialNo())) return false;
      }
      if (hasLogID() != other.hasLogID()) return false;
      if (hasLogID()) {
        if (getLogID()
            != other.getLogID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasUserID()) {
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + getUserID();
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasMobile()) {
        hash = (37 * hash) + MOBILE_FIELD_NUMBER;
        hash = (53 * hash) + getMobile().hashCode();
      }
      if (hasSrcGoodsCode()) {
        hash = (37 * hash) + SRCGOODSCODE_FIELD_NUMBER;
        hash = (53 * hash) + getSrcGoodsCode().hashCode();
      }
      if (hasDstGoodsCode()) {
        hash = (37 * hash) + DSTGOODSCODE_FIELD_NUMBER;
        hash = (53 * hash) + getDstGoodsCode().hashCode();
      }
      if (hasGoodsID()) {
        hash = (37 * hash) + GOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsID();
      }
      if (hasQty()) {
        hash = (37 * hash) + QTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getQty()));
      }
      if (hasConvertQty()) {
        hash = (37 * hash) + CONVERTQTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getConvertQty()));
      }
      if (hasClientSerialNo()) {
        hash = (37 * hash) + CLIENTSERIALNO_FIELD_NUMBER;
        hash = (53 * hash) + getClientSerialNo().hashCode();
      }
      if (hasLogID()) {
        hash = (37 * hash) + LOGID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLogID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.ChannelJdpPdConvertTradeRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelJdpPdConvertTradeRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelJdpPdConvertTradeRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelJdpPdConvertTradeRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelJdpPdConvertTradeRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.ChannelJdpPdConvertTradeRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.ChannelJdpPdConvertTradeRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelJdpPdConvertTradeRsp 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 MSIM.ChannelJdpPdConvertTradeRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.ChannelJdpPdConvertTradeRsp 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 MSIM.ChannelJdpPdConvertTradeRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.ChannelJdpPdConvertTradeRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.ChannelJdpPdConvertTradeRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 通道金点拍PD转交易响应
     * </pre>
     *
     * Protobuf type {@code ChannelJdpPdConvertTradeRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChannelJdpPdConvertTradeRsp)
        MSIM.ChannelJdpPdConvertTradeRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_ChannelJdpPdConvertTradeRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_ChannelJdpPdConvertTradeRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.ChannelJdpPdConvertTradeRsp.class, MSIM.ChannelJdpPdConvertTradeRsp.Builder.class);
      }

      // Construct using MSIM.ChannelJdpPdConvertTradeRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        userID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        mobile_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        srcGoodsCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        dstGoodsCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        goodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        qty_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000200);
        convertQty_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000400);
        clientSerialNo_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        logID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_ChannelJdpPdConvertTradeRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.ChannelJdpPdConvertTradeRsp getDefaultInstanceForType() {
        return MSIM.ChannelJdpPdConvertTradeRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.ChannelJdpPdConvertTradeRsp build() {
        MSIM.ChannelJdpPdConvertTradeRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.ChannelJdpPdConvertTradeRsp buildPartial() {
        MSIM.ChannelJdpPdConvertTradeRsp result = new MSIM.ChannelJdpPdConvertTradeRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.userID_ = userID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.mobile_ = mobile_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.srcGoodsCode_ = srcGoodsCode_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          to_bitField0_ |= 0x00000080;
        }
        result.dstGoodsCode_ = dstGoodsCode_;
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.goodsID_ = goodsID_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.qty_ = qty_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.convertQty_ = convertQty_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          to_bitField0_ |= 0x00000800;
        }
        result.clientSerialNo_ = clientSerialNo_;
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.logID_ = logID_;
          to_bitField0_ |= 0x00001000;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.ChannelJdpPdConvertTradeRsp) {
          return mergeFrom((MSIM.ChannelJdpPdConvertTradeRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.ChannelJdpPdConvertTradeRsp other) {
        if (other == MSIM.ChannelJdpPdConvertTradeRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasUserID()) {
          setUserID(other.getUserID());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasMobile()) {
          bitField0_ |= 0x00000020;
          mobile_ = other.mobile_;
          onChanged();
        }
        if (other.hasSrcGoodsCode()) {
          bitField0_ |= 0x00000040;
          srcGoodsCode_ = other.srcGoodsCode_;
          onChanged();
        }
        if (other.hasDstGoodsCode()) {
          bitField0_ |= 0x00000080;
          dstGoodsCode_ = other.dstGoodsCode_;
          onChanged();
        }
        if (other.hasGoodsID()) {
          setGoodsID(other.getGoodsID());
        }
        if (other.hasQty()) {
          setQty(other.getQty());
        }
        if (other.hasConvertQty()) {
          setConvertQty(other.getConvertQty());
        }
        if (other.hasClientSerialNo()) {
          bitField0_ |= 0x00000800;
          clientSerialNo_ = other.clientSerialNo_;
          onChanged();
        }
        if (other.hasLogID()) {
          setLogID(other.getLogID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.ChannelJdpPdConvertTradeRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.ChannelJdpPdConvertTradeRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private int userID_ ;
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 4;</code>
       * @return Whether the userID field is set.
       */
      @java.lang.Override
      public boolean hasUserID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 4;</code>
       * @return The userID.
       */
      @java.lang.Override
      public int getUserID() {
        return userID_;
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 4;</code>
       * @param value The userID to set.
       * @return This builder for chaining.
       */
      public Builder setUserID(int value) {
        bitField0_ |= 0x00000008;
        userID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 用户ID
       * </pre>
       *
       * <code>optional uint32 UserID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        userID_ = 0;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 5;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 5;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 5;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000010;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 账号ID
       * </pre>
       *
       * <code>optional uint64 AccountID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object mobile_ = "";
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @return Whether the mobile field is set.
       */
      public boolean hasMobile() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @return The mobile.
       */
      public java.lang.String getMobile() {
        java.lang.Object ref = mobile_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            mobile_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @return The bytes for mobile.
       */
      public com.google.protobuf.ByteString
          getMobileBytes() {
        java.lang.Object ref = mobile_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mobile_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @param value The mobile to set.
       * @return This builder for chaining.
       */
      public Builder setMobile(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        mobile_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearMobile() {
        bitField0_ = (bitField0_ & ~0x00000020);
        mobile_ = getDefaultInstance().getMobile();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 手机号
       * </pre>
       *
       * <code>optional string Mobile = 6;</code>
       * @param value The bytes for mobile to set.
       * @return This builder for chaining.
       */
      public Builder setMobileBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        mobile_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object srcGoodsCode_ = "";
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @return Whether the srcGoodsCode field is set.
       */
      public boolean hasSrcGoodsCode() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @return The srcGoodsCode.
       */
      public java.lang.String getSrcGoodsCode() {
        java.lang.Object ref = srcGoodsCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            srcGoodsCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @return The bytes for srcGoodsCode.
       */
      public com.google.protobuf.ByteString
          getSrcGoodsCodeBytes() {
        java.lang.Object ref = srcGoodsCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          srcGoodsCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @param value The srcGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setSrcGoodsCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        srcGoodsCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearSrcGoodsCode() {
        bitField0_ = (bitField0_ & ~0x00000040);
        srcGoodsCode_ = getDefaultInstance().getSrcGoodsCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 源商品编码
       * </pre>
       *
       * <code>optional string SrcGoodsCode = 7;</code>
       * @param value The bytes for srcGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setSrcGoodsCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        srcGoodsCode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object dstGoodsCode_ = "";
      /**
       * <pre>
       * 外部商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @return Whether the dstGoodsCode field is set.
       */
      public boolean hasDstGoodsCode() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * 外部商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @return The dstGoodsCode.
       */
      public java.lang.String getDstGoodsCode() {
        java.lang.Object ref = dstGoodsCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            dstGoodsCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 外部商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @return The bytes for dstGoodsCode.
       */
      public com.google.protobuf.ByteString
          getDstGoodsCodeBytes() {
        java.lang.Object ref = dstGoodsCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          dstGoodsCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 外部商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @param value The dstGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setDstGoodsCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        dstGoodsCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 外部商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearDstGoodsCode() {
        bitField0_ = (bitField0_ & ~0x00000080);
        dstGoodsCode_ = getDefaultInstance().getDstGoodsCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 外部商品编码
       * </pre>
       *
       * <code>optional string DstGoodsCode = 8;</code>
       * @param value The bytes for dstGoodsCode to set.
       * @return This builder for chaining.
       */
      public Builder setDstGoodsCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        dstGoodsCode_ = value;
        onChanged();
        return this;
      }

      private int goodsID_ ;
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 9;</code>
       * @return Whether the goodsID field is set.
       */
      @java.lang.Override
      public boolean hasGoodsID() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 9;</code>
       * @return The goodsID.
       */
      @java.lang.Override
      public int getGoodsID() {
        return goodsID_;
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 9;</code>
       * @param value The goodsID to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsID(int value) {
        bitField0_ |= 0x00000100;
        goodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsID() {
        bitField0_ = (bitField0_ & ~0x00000100);
        goodsID_ = 0;
        onChanged();
        return this;
      }

      private double qty_ ;
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 10;</code>
       * @return Whether the qty field is set.
       */
      @java.lang.Override
      public boolean hasQty() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 10;</code>
       * @return The qty.
       */
      @java.lang.Override
      public double getQty() {
        return qty_;
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 10;</code>
       * @param value The qty to set.
       * @return This builder for chaining.
       */
      public Builder setQty(double value) {
        bitField0_ |= 0x00000200;
        qty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 转换数量
       * </pre>
       *
       * <code>optional double Qty = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearQty() {
        bitField0_ = (bitField0_ & ~0x00000200);
        qty_ = 0D;
        onChanged();
        return this;
      }

      private double convertQty_ ;
      /**
       * <pre>
       * 转换目标商品数量
       * </pre>
       *
       * <code>optional double ConvertQty = 11;</code>
       * @return Whether the convertQty field is set.
       */
      @java.lang.Override
      public boolean hasConvertQty() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * 转换目标商品数量
       * </pre>
       *
       * <code>optional double ConvertQty = 11;</code>
       * @return The convertQty.
       */
      @java.lang.Override
      public double getConvertQty() {
        return convertQty_;
      }
      /**
       * <pre>
       * 转换目标商品数量
       * </pre>
       *
       * <code>optional double ConvertQty = 11;</code>
       * @param value The convertQty to set.
       * @return This builder for chaining.
       */
      public Builder setConvertQty(double value) {
        bitField0_ |= 0x00000400;
        convertQty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 转换目标商品数量
       * </pre>
       *
       * <code>optional double ConvertQty = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearConvertQty() {
        bitField0_ = (bitField0_ & ~0x00000400);
        convertQty_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object clientSerialNo_ = "";
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @return Whether the clientSerialNo field is set.
       */
      public boolean hasClientSerialNo() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @return The clientSerialNo.
       */
      public java.lang.String getClientSerialNo() {
        java.lang.Object ref = clientSerialNo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientSerialNo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @return The bytes for clientSerialNo.
       */
      public com.google.protobuf.ByteString
          getClientSerialNoBytes() {
        java.lang.Object ref = clientSerialNo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientSerialNo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @param value The clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialNo() {
        bitField0_ = (bitField0_ & ~0x00000800);
        clientSerialNo_ = getDefaultInstance().getClientSerialNo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 12;</code>
       * @param value The bytes for clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }

      private long logID_ ;
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 13;</code>
       * @return Whether the logID field is set.
       */
      @java.lang.Override
      public boolean hasLogID() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 13;</code>
       * @return The logID.
       */
      @java.lang.Override
      public long getLogID() {
        return logID_;
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 13;</code>
       * @param value The logID to set.
       * @return This builder for chaining.
       */
      public Builder setLogID(long value) {
        bitField0_ |= 0x00001000;
        logID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 日志ID(内部用)
       * </pre>
       *
       * <code>optional uint64 LogID = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearLogID() {
        bitField0_ = (bitField0_ & ~0x00001000);
        logID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChannelJdpPdConvertTradeRsp)
    }

    // @@protoc_insertion_point(class_scope:ChannelJdpPdConvertTradeRsp)
    private static final MSIM.ChannelJdpPdConvertTradeRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.ChannelJdpPdConvertTradeRsp();
    }

    public static MSIM.ChannelJdpPdConvertTradeRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChannelJdpPdConvertTradeRsp>
        PARSER = new com.google.protobuf.AbstractParser<ChannelJdpPdConvertTradeRsp>() {
      @java.lang.Override
      public ChannelJdpPdConvertTradeRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChannelJdpPdConvertTradeRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.ChannelJdpPdConvertTradeRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CancelPaymentReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CancelPaymentReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 成交单号
     * </pre>
     *
     * <code>optional uint64 TradeID = 2;</code>
     * @return Whether the tradeID field is set.
     */
    boolean hasTradeID();
    /**
     * <pre>
     * uint64 成交单号
     * </pre>
     *
     * <code>optional uint64 TradeID = 2;</code>
     * @return The tradeID.
     */
    long getTradeID();

    /**
     * <pre>
     * uint64 校验买方账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * uint64 校验买方账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return The accountID.
     */
    long getAccountID();
  }
  /**
   * <pre>
   * 撤销支付请求 0 3 89
   * </pre>
   *
   * Protobuf type {@code CancelPaymentReq}
   */
  public static final class CancelPaymentReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:CancelPaymentReq)
      CancelPaymentReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CancelPaymentReq.newBuilder() to construct.
    private CancelPaymentReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CancelPaymentReq() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CancelPaymentReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CancelPaymentReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              tradeID_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              accountID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_CancelPaymentReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_CancelPaymentReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.CancelPaymentReq.class, MSIM.CancelPaymentReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int TRADEID_FIELD_NUMBER = 2;
    private long tradeID_;
    /**
     * <pre>
     * uint64 成交单号
     * </pre>
     *
     * <code>optional uint64 TradeID = 2;</code>
     * @return Whether the tradeID field is set.
     */
    @java.lang.Override
    public boolean hasTradeID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 成交单号
     * </pre>
     *
     * <code>optional uint64 TradeID = 2;</code>
     * @return The tradeID.
     */
    @java.lang.Override
    public long getTradeID() {
      return tradeID_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 3;
    private long accountID_;
    /**
     * <pre>
     * uint64 校验买方账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint64 校验买方账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 3;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, tradeID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt64(3, accountID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, tradeID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(3, accountID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.CancelPaymentReq)) {
        return super.equals(obj);
      }
      MSIM.CancelPaymentReq other = (MSIM.CancelPaymentReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasTradeID() != other.hasTradeID()) return false;
      if (hasTradeID()) {
        if (getTradeID()
            != other.getTradeID()) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasTradeID()) {
        hash = (37 * hash) + TRADEID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTradeID());
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.CancelPaymentReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelPaymentReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelPaymentReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelPaymentReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelPaymentReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelPaymentReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelPaymentReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.CancelPaymentReq 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 MSIM.CancelPaymentReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.CancelPaymentReq 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 MSIM.CancelPaymentReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.CancelPaymentReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.CancelPaymentReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 撤销支付请求 0 3 89
     * </pre>
     *
     * Protobuf type {@code CancelPaymentReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:CancelPaymentReq)
        MSIM.CancelPaymentReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_CancelPaymentReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_CancelPaymentReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.CancelPaymentReq.class, MSIM.CancelPaymentReq.Builder.class);
      }

      // Construct using MSIM.CancelPaymentReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        tradeID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_CancelPaymentReq_descriptor;
      }

      @java.lang.Override
      public MSIM.CancelPaymentReq getDefaultInstanceForType() {
        return MSIM.CancelPaymentReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.CancelPaymentReq build() {
        MSIM.CancelPaymentReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.CancelPaymentReq buildPartial() {
        MSIM.CancelPaymentReq result = new MSIM.CancelPaymentReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.tradeID_ = tradeID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.CancelPaymentReq) {
          return mergeFrom((MSIM.CancelPaymentReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.CancelPaymentReq other) {
        if (other == MSIM.CancelPaymentReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasTradeID()) {
          setTradeID(other.getTradeID());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.CancelPaymentReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.CancelPaymentReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long tradeID_ ;
      /**
       * <pre>
       * uint64 成交单号
       * </pre>
       *
       * <code>optional uint64 TradeID = 2;</code>
       * @return Whether the tradeID field is set.
       */
      @java.lang.Override
      public boolean hasTradeID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 成交单号
       * </pre>
       *
       * <code>optional uint64 TradeID = 2;</code>
       * @return The tradeID.
       */
      @java.lang.Override
      public long getTradeID() {
        return tradeID_;
      }
      /**
       * <pre>
       * uint64 成交单号
       * </pre>
       *
       * <code>optional uint64 TradeID = 2;</code>
       * @param value The tradeID to set.
       * @return This builder for chaining.
       */
      public Builder setTradeID(long value) {
        bitField0_ |= 0x00000002;
        tradeID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 成交单号
       * </pre>
       *
       * <code>optional uint64 TradeID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTradeID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        tradeID_ = 0L;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * uint64 校验买方账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint64 校验买方账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * uint64 校验买方账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000004;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 校验买方账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        accountID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:CancelPaymentReq)
    }

    // @@protoc_insertion_point(class_scope:CancelPaymentReq)
    private static final MSIM.CancelPaymentReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.CancelPaymentReq();
    }

    public static MSIM.CancelPaymentReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<CancelPaymentReq>
        PARSER = new com.google.protobuf.AbstractParser<CancelPaymentReq>() {
      @java.lang.Override
      public CancelPaymentReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CancelPaymentReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.CancelPaymentReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CancelPaymentRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CancelPaymentRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 成交单号
     * </pre>
     *
     * <code>optional uint64 TradeID = 4;</code>
     * @return Whether the tradeID field is set.
     */
    boolean hasTradeID();
    /**
     * <pre>
     * uint64 成交单号
     * </pre>
     *
     * <code>optional uint64 TradeID = 4;</code>
     * @return The tradeID.
     */
    long getTradeID();
  }
  /**
   * <pre>
   * 撤销支付应答 0 3 90
   * </pre>
   *
   * Protobuf type {@code CancelPaymentRsp}
   */
  public static final class CancelPaymentRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:CancelPaymentRsp)
      CancelPaymentRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CancelPaymentRsp.newBuilder() to construct.
    private CancelPaymentRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CancelPaymentRsp() {
      retDesc_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CancelPaymentRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CancelPaymentRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              tradeID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_CancelPaymentRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_CancelPaymentRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.CancelPaymentRsp.class, MSIM.CancelPaymentRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TRADEID_FIELD_NUMBER = 4;
    private long tradeID_;
    /**
     * <pre>
     * uint64 成交单号
     * </pre>
     *
     * <code>optional uint64 TradeID = 4;</code>
     * @return Whether the tradeID field is set.
     */
    @java.lang.Override
    public boolean hasTradeID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 成交单号
     * </pre>
     *
     * <code>optional uint64 TradeID = 4;</code>
     * @return The tradeID.
     */
    @java.lang.Override
    public long getTradeID() {
      return tradeID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, tradeID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, tradeID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.CancelPaymentRsp)) {
        return super.equals(obj);
      }
      MSIM.CancelPaymentRsp other = (MSIM.CancelPaymentRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasTradeID() != other.hasTradeID()) return false;
      if (hasTradeID()) {
        if (getTradeID()
            != other.getTradeID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasTradeID()) {
        hash = (37 * hash) + TRADEID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTradeID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.CancelPaymentRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelPaymentRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelPaymentRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelPaymentRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelPaymentRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelPaymentRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelPaymentRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.CancelPaymentRsp 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 MSIM.CancelPaymentRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.CancelPaymentRsp 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 MSIM.CancelPaymentRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.CancelPaymentRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.CancelPaymentRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 撤销支付应答 0 3 90
     * </pre>
     *
     * Protobuf type {@code CancelPaymentRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:CancelPaymentRsp)
        MSIM.CancelPaymentRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_CancelPaymentRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_CancelPaymentRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.CancelPaymentRsp.class, MSIM.CancelPaymentRsp.Builder.class);
      }

      // Construct using MSIM.CancelPaymentRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        tradeID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_CancelPaymentRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.CancelPaymentRsp getDefaultInstanceForType() {
        return MSIM.CancelPaymentRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.CancelPaymentRsp build() {
        MSIM.CancelPaymentRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.CancelPaymentRsp buildPartial() {
        MSIM.CancelPaymentRsp result = new MSIM.CancelPaymentRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.tradeID_ = tradeID_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.CancelPaymentRsp) {
          return mergeFrom((MSIM.CancelPaymentRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.CancelPaymentRsp other) {
        if (other == MSIM.CancelPaymentRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasTradeID()) {
          setTradeID(other.getTradeID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.CancelPaymentRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.CancelPaymentRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long tradeID_ ;
      /**
       * <pre>
       * uint64 成交单号
       * </pre>
       *
       * <code>optional uint64 TradeID = 4;</code>
       * @return Whether the tradeID field is set.
       */
      @java.lang.Override
      public boolean hasTradeID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 成交单号
       * </pre>
       *
       * <code>optional uint64 TradeID = 4;</code>
       * @return The tradeID.
       */
      @java.lang.Override
      public long getTradeID() {
        return tradeID_;
      }
      /**
       * <pre>
       * uint64 成交单号
       * </pre>
       *
       * <code>optional uint64 TradeID = 4;</code>
       * @param value The tradeID to set.
       * @return This builder for chaining.
       */
      public Builder setTradeID(long value) {
        bitField0_ |= 0x00000008;
        tradeID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 成交单号
       * </pre>
       *
       * <code>optional uint64 TradeID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTradeID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        tradeID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:CancelPaymentRsp)
    }

    // @@protoc_insertion_point(class_scope:CancelPaymentRsp)
    private static final MSIM.CancelPaymentRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.CancelPaymentRsp();
    }

    public static MSIM.CancelPaymentRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<CancelPaymentRsp>
        PARSER = new com.google.protobuf.AbstractParser<CancelPaymentRsp>() {
      @java.lang.Override
      public CancelPaymentRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CancelPaymentRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.CancelPaymentRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OrderReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:OrderReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return Whether the clientSerialNo field is set.
     */
    boolean hasClientSerialNo();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The clientSerialNo.
     */
    java.lang.String getClientSerialNo();
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The bytes for clientSerialNo.
     */
    com.google.protobuf.ByteString
        getClientSerialNoBytes();

    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    boolean hasClientOrderTime();
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    java.lang.String getClientOrderTime();
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    com.google.protobuf.ByteString
        getClientOrderTimeBytes();

    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return Whether the clientType field is set.
     */
    boolean hasClientType();
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return The clientType.
     */
    int getClientType();

    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return Whether the loginID field is set.
     */
    boolean hasLoginID();
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return The loginID.
     */
    long getLoginID();

    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return Whether the goodsID field is set.
     */
    boolean hasGoodsID();
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return The goodsID.
     */
    int getGoodsID();

    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return Whether the marketID field is set.
     */
    boolean hasMarketID();
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return The marketID.
     */
    int getMarketID();

    /**
     * <pre>
     * int32 校验类型
     * </pre>
     *
     * <code>optional int32 ValidType = 9;</code>
     * @return Whether the validType field is set.
     */
    boolean hasValidType();
    /**
     * <pre>
     * int32 校验类型
     * </pre>
     *
     * <code>optional int32 ValidType = 9;</code>
     * @return The validType.
     */
    int getValidType();

    /**
     * <pre>
     * uint32 操作类型:
     * </pre>
     *
     * <code>optional uint32 OperateType = 10;</code>
     * @return Whether the operateType field is set.
     */
    boolean hasOperateType();
    /**
     * <pre>
     * uint32 操作类型:
     * </pre>
     *
     * <code>optional uint32 OperateType = 10;</code>
     * @return The operateType.
     */
    int getOperateType();

    /**
     * <pre>
     * uint32 单据来源
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 11;</code>
     * @return Whether the orderSrc field is set.
     */
    boolean hasOrderSrc();
    /**
     * <pre>
     * uint32 单据来源
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 11;</code>
     * @return The orderSrc.
     */
    int getOrderSrc();

    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 12;</code>
     * @return Whether the operatorID field is set.
     */
    boolean hasOperatorID();
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 12;</code>
     * @return The operatorID.
     */
    long getOperatorID();

    /**
     * <pre>
     * double 委托价格
     * </pre>
     *
     * <code>optional double OrderPrice = 13;</code>
     * @return Whether the orderPrice field is set.
     */
    boolean hasOrderPrice();
    /**
     * <pre>
     * double 委托价格
     * </pre>
     *
     * <code>optional double OrderPrice = 13;</code>
     * @return The orderPrice.
     */
    double getOrderPrice();

    /**
     * <pre>
     * double 市价允许最大偏差(做市)
     * </pre>
     *
     * <code>optional double MarketMaxSub = 14;</code>
     * @return Whether the marketMaxSub field is set.
     */
    boolean hasMarketMaxSub();
    /**
     * <pre>
     * double 市价允许最大偏差(做市)
     * </pre>
     *
     * <code>optional double MarketMaxSub = 14;</code>
     * @return The marketMaxSub.
     */
    double getMarketMaxSub();

    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 15;</code>
     * @return Whether the orderQty field is set.
     */
    boolean hasOrderQty();
    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 15;</code>
     * @return The orderQty.
     */
    long getOrderQty();

    /**
     * <pre>
     * uint32 买卖方向
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 16;</code>
     * @return Whether the buyOrSell field is set.
     */
    boolean hasBuyOrSell();
    /**
     * <pre>
     * uint32 买卖方向
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 16;</code>
     * @return The buyOrSell.
     */
    int getBuyOrSell();

    /**
     * <pre>
     * uint32 下单类型
     * </pre>
     *
     * <code>optional uint32 BuildType = 17;</code>
     * @return Whether the buildType field is set.
     */
    boolean hasBuildType();
    /**
     * <pre>
     * uint32 下单类型
     * </pre>
     *
     * <code>optional uint32 BuildType = 17;</code>
     * @return The buildType.
     */
    int getBuildType();

    /**
     * <pre>
     * double 保留，计算冻结金额使用
     * </pre>
     *
     * <code>optional double CurtQuotePrice = 18;</code>
     * @return Whether the curtQuotePrice field is set.
     */
    boolean hasCurtQuotePrice();
    /**
     * <pre>
     * double 保留，计算冻结金额使用
     * </pre>
     *
     * <code>optional double CurtQuotePrice = 18;</code>
     * @return The curtQuotePrice.
     */
    double getCurtQuotePrice();

    /**
     * <pre>
     * double 止盈价格
     * </pre>
     *
     * <code>optional double SpPrice = 19;</code>
     * @return Whether the spPrice field is set.
     */
    boolean hasSpPrice();
    /**
     * <pre>
     * double 止盈价格
     * </pre>
     *
     * <code>optional double SpPrice = 19;</code>
     * @return The spPrice.
     */
    double getSpPrice();

    /**
     * <pre>
     * double 止损价格
     * </pre>
     *
     * <code>optional double SlPrice = 20;</code>
     * @return Whether the slPrice field is set.
     */
    boolean hasSlPrice();
    /**
     * <pre>
     * double 止损价格
     * </pre>
     *
     * <code>optional double SlPrice = 20;</code>
     * @return The slPrice.
     */
    double getSlPrice();

    /**
     * <pre>
     * uint32 取价方式
     * </pre>
     *
     * <code>optional uint32 PriceMode = 21;</code>
     * @return Whether the priceMode field is set.
     */
    boolean hasPriceMode();
    /**
     * <pre>
     * uint32 取价方式
     * </pre>
     *
     * <code>optional uint32 PriceMode = 21;</code>
     * @return The priceMode.
     */
    int getPriceMode();

    /**
     * <pre>
     * uint32 时间有效类型
     * </pre>
     *
     * <code>optional uint32 TimevalidType = 22;</code>
     * @return Whether the timevalidType field is set.
     */
    boolean hasTimevalidType();
    /**
     * <pre>
     * uint32 时间有效类型
     * </pre>
     *
     * <code>optional uint32 TimevalidType = 22;</code>
     * @return The timevalidType.
     */
    int getTimevalidType();

    /**
     * <pre>
     * uint32 预埋单触发类型
     * </pre>
     *
     * <code>optional uint32 TriggerType = 23;</code>
     * @return Whether the triggerType field is set.
     */
    boolean hasTriggerType();
    /**
     * <pre>
     * uint32 预埋单触发类型
     * </pre>
     *
     * <code>optional uint32 TriggerType = 23;</code>
     * @return The triggerType.
     */
    int getTriggerType();

    /**
     * <pre>
     * double 预埋单触发价格
     * </pre>
     *
     * <code>optional double TriggerPrice = 24;</code>
     * @return Whether the triggerPrice field is set.
     */
    boolean hasTriggerPrice();
    /**
     * <pre>
     * double 预埋单触发价格
     * </pre>
     *
     * <code>optional double TriggerPrice = 24;</code>
     * @return The triggerPrice.
     */
    double getTriggerPrice();

    /**
     * <pre>
     * uint32 挂牌点选类型
     * </pre>
     *
     * <code>optional uint32 ListingSelectType = 25;</code>
     * @return Whether the listingSelectType field is set.
     */
    boolean hasListingSelectType();
    /**
     * <pre>
     * uint32 挂牌点选类型
     * </pre>
     *
     * <code>optional uint32 ListingSelectType = 25;</code>
     * @return The listingSelectType.
     */
    int getListingSelectType();

    /**
     * <pre>
     * uint32 摘牌类型
     * </pre>
     *
     * <code>optional uint32 DelistingType = 26;</code>
     * @return Whether the delistingType field is set.
     */
    boolean hasDelistingType();
    /**
     * <pre>
     * uint32 摘牌类型
     * </pre>
     *
     * <code>optional uint32 DelistingType = 26;</code>
     * @return The delistingType.
     */
    int getDelistingType();

    /**
     * <pre>
     * uint64 关联单号
     * </pre>
     *
     * <code>optional uint64 RelatedID = 27;</code>
     * @return Whether the relatedID field is set.
     */
    boolean hasRelatedID();
    /**
     * <pre>
     * uint64 关联单号
     * </pre>
     *
     * <code>optional uint64 RelatedID = 27;</code>
     * @return The relatedID.
     */
    long getRelatedID();

    /**
     * <pre>
     * uint32 期权类型(1:认购(看涨) 2:认沽(看跌))
     * </pre>
     *
     * <code>optional uint32 OptionType = 28;</code>
     * @return Whether the optionType field is set.
     */
    boolean hasOptionType();
    /**
     * <pre>
     * uint32 期权类型(1:认购(看涨) 2:认沽(看跌))
     * </pre>
     *
     * <code>optional uint32 OptionType = 28;</code>
     * @return The optionType.
     */
    int getOptionType();

    /**
     * <pre>
     * double 权利金
     * </pre>
     *
     * <code>optional double Premium = 29;</code>
     * @return Whether the premium field is set.
     */
    boolean hasPremium();
    /**
     * <pre>
     * double 权利金
     * </pre>
     *
     * <code>optional double Premium = 29;</code>
     * @return The premium.
     */
    double getPremium();

    /**
     * <pre>
     * uint32 触发条件(1: 大于等于 2:小于等于)
     * </pre>
     *
     * <code>optional uint32 TriggerOperator = 30;</code>
     * @return Whether the triggerOperator field is set.
     */
    boolean hasTriggerOperator();
    /**
     * <pre>
     * uint32 触发条件(1: 大于等于 2:小于等于)
     * </pre>
     *
     * <code>optional uint32 TriggerOperator = 30;</code>
     * @return The triggerOperator.
     */
    int getTriggerOperator();

    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 31;</code>
     * @return Whether the serviceTime field is set.
     */
    boolean hasServiceTime();
    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 31;</code>
     * @return The serviceTime.
     */
    java.lang.String getServiceTime();
    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 31;</code>
     * @return The bytes for serviceTime.
     */
    com.google.protobuf.ByteString
        getServiceTimeBytes();

    /**
     * <pre>
     * uint64 优惠券类型ID(买方)
     * </pre>
     *
     * <code>optional uint64 CouponTypeID = 32;</code>
     * @return Whether the couponTypeID field is set.
     */
    boolean hasCouponTypeID();
    /**
     * <pre>
     * uint64 优惠券类型ID(买方)
     * </pre>
     *
     * <code>optional uint64 CouponTypeID = 32;</code>
     * @return The couponTypeID.
     */
    long getCouponTypeID();

    /**
     * <pre>
     * uint32 使用数量
     * </pre>
     *
     * <code>optional uint32 UsedQty = 33;</code>
     * @return Whether the usedQty field is set.
     */
    boolean hasUsedQty();
    /**
     * <pre>
     * uint32 使用数量
     * </pre>
     *
     * <code>optional uint32 UsedQty = 33;</code>
     * @return The usedQty.
     */
    int getUsedQty();

    /**
     * <pre>
     * string 指定有效日期
     * </pre>
     *
     * <code>optional string ValidTime = 34;</code>
     * @return Whether the validTime field is set.
     */
    boolean hasValidTime();
    /**
     * <pre>
     * string 指定有效日期
     * </pre>
     *
     * <code>optional string ValidTime = 34;</code>
     * @return The validTime.
     */
    java.lang.String getValidTime();
    /**
     * <pre>
     * string 指定有效日期
     * </pre>
     *
     * <code>optional string ValidTime = 34;</code>
     * @return The bytes for validTime.
     */
    com.google.protobuf.ByteString
        getValidTimeBytes();

    /**
     * <pre>
     * uint64 收货地址ID
     * </pre>
     *
     * <code>optional uint64 ReceiveInfoID = 35;</code>
     * @return Whether the receiveInfoID field is set.
     */
    boolean hasReceiveInfoID();
    /**
     * <pre>
     * uint64 收货地址ID
     * </pre>
     *
     * <code>optional uint64 ReceiveInfoID = 35;</code>
     * @return The receiveInfoID.
     */
    long getReceiveInfoID();
  }
  /**
   * Protobuf type {@code OrderReq}
   */
  public static final class OrderReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:OrderReq)
      OrderReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OrderReq.newBuilder() to construct.
    private OrderReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private OrderReq() {
      clientSerialNo_ = "";
      clientOrderTime_ = "";
      serviceTime_ = "";
      validTime_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new OrderReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private OrderReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      int mutable_bitField1_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              clientSerialNo_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              clientOrderTime_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              clientType_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              loginID_ = input.readUInt64();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              accountID_ = input.readUInt64();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              goodsID_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              marketID_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              validType_ = input.readInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              operateType_ = input.readUInt32();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              orderSrc_ = input.readUInt32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              operatorID_ = input.readUInt64();
              break;
            }
            case 105: {
              bitField0_ |= 0x00001000;
              orderPrice_ = input.readDouble();
              break;
            }
            case 113: {
              bitField0_ |= 0x00002000;
              marketMaxSub_ = input.readDouble();
              break;
            }
            case 120: {
              bitField0_ |= 0x00004000;
              orderQty_ = input.readUInt64();
              break;
            }
            case 128: {
              bitField0_ |= 0x00008000;
              buyOrSell_ = input.readUInt32();
              break;
            }
            case 136: {
              bitField0_ |= 0x00010000;
              buildType_ = input.readUInt32();
              break;
            }
            case 145: {
              bitField0_ |= 0x00020000;
              curtQuotePrice_ = input.readDouble();
              break;
            }
            case 153: {
              bitField0_ |= 0x00040000;
              spPrice_ = input.readDouble();
              break;
            }
            case 161: {
              bitField0_ |= 0x00080000;
              slPrice_ = input.readDouble();
              break;
            }
            case 168: {
              bitField0_ |= 0x00100000;
              priceMode_ = input.readUInt32();
              break;
            }
            case 176: {
              bitField0_ |= 0x00200000;
              timevalidType_ = input.readUInt32();
              break;
            }
            case 184: {
              bitField0_ |= 0x00400000;
              triggerType_ = input.readUInt32();
              break;
            }
            case 193: {
              bitField0_ |= 0x00800000;
              triggerPrice_ = input.readDouble();
              break;
            }
            case 200: {
              bitField0_ |= 0x01000000;
              listingSelectType_ = input.readUInt32();
              break;
            }
            case 208: {
              bitField0_ |= 0x02000000;
              delistingType_ = input.readUInt32();
              break;
            }
            case 216: {
              bitField0_ |= 0x04000000;
              relatedID_ = input.readUInt64();
              break;
            }
            case 224: {
              bitField0_ |= 0x08000000;
              optionType_ = input.readUInt32();
              break;
            }
            case 233: {
              bitField0_ |= 0x10000000;
              premium_ = input.readDouble();
              break;
            }
            case 240: {
              bitField0_ |= 0x20000000;
              triggerOperator_ = input.readUInt32();
              break;
            }
            case 250: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x40000000;
              serviceTime_ = bs;
              break;
            }
            case 256: {
              bitField0_ |= 0x80000000;
              couponTypeID_ = input.readUInt64();
              break;
            }
            case 264: {
              bitField1_ |= 0x00000001;
              usedQty_ = input.readUInt32();
              break;
            }
            case 274: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField1_ |= 0x00000002;
              validTime_ = bs;
              break;
            }
            case 280: {
              bitField1_ |= 0x00000004;
              receiveInfoID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_OrderReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_OrderReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.OrderReq.class, MSIM.OrderReq.Builder.class);
    }

    private int bitField0_;
    private int bitField1_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int CLIENTSERIALNO_FIELD_NUMBER = 2;
    private volatile java.lang.Object clientSerialNo_;
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return Whether the clientSerialNo field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialNo() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The clientSerialNo.
     */
    @java.lang.Override
    public java.lang.String getClientSerialNo() {
      java.lang.Object ref = clientSerialNo_;
      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();
        if (bs.isValidUtf8()) {
          clientSerialNo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The bytes for clientSerialNo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientSerialNoBytes() {
      java.lang.Object ref = clientSerialNo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSerialNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTORDERTIME_FIELD_NUMBER = 3;
    private volatile java.lang.Object clientOrderTime_;
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    @java.lang.Override
    public boolean hasClientOrderTime() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    @java.lang.Override
    public java.lang.String getClientOrderTime() {
      java.lang.Object ref = clientOrderTime_;
      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();
        if (bs.isValidUtf8()) {
          clientOrderTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientOrderTimeBytes() {
      java.lang.Object ref = clientOrderTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientOrderTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTTYPE_FIELD_NUMBER = 4;
    private int clientType_;
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return Whether the clientType field is set.
     */
    @java.lang.Override
    public boolean hasClientType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint32 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return The clientType.
     */
    @java.lang.Override
    public int getClientType() {
      return clientType_;
    }

    public static final int LOGINID_FIELD_NUMBER = 5;
    private long loginID_;
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return Whether the loginID field is set.
     */
    @java.lang.Override
    public boolean hasLoginID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint64 登陆账号
     * </pre>
     *
     * <code>optional uint64 LoginID = 5;</code>
     * @return The loginID.
     */
    @java.lang.Override
    public long getLoginID() {
      return loginID_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 6;
    private long accountID_;
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint64 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 6;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int GOODSID_FIELD_NUMBER = 7;
    private int goodsID_;
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return Whether the goodsID field is set.
     */
    @java.lang.Override
    public boolean hasGoodsID() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * uint32 商品ID
     * </pre>
     *
     * <code>optional uint32 GoodsID = 7;</code>
     * @return The goodsID.
     */
    @java.lang.Override
    public int getGoodsID() {
      return goodsID_;
    }

    public static final int MARKETID_FIELD_NUMBER = 8;
    private int marketID_;
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return Whether the marketID field is set.
     */
    @java.lang.Override
    public boolean hasMarketID() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * uint32 市场ID
     * </pre>
     *
     * <code>optional uint32 MarketID = 8;</code>
     * @return The marketID.
     */
    @java.lang.Override
    public int getMarketID() {
      return marketID_;
    }

    public static final int VALIDTYPE_FIELD_NUMBER = 9;
    private int validType_;
    /**
     * <pre>
     * int32 校验类型
     * </pre>
     *
     * <code>optional int32 ValidType = 9;</code>
     * @return Whether the validType field is set.
     */
    @java.lang.Override
    public boolean hasValidType() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * int32 校验类型
     * </pre>
     *
     * <code>optional int32 ValidType = 9;</code>
     * @return The validType.
     */
    @java.lang.Override
    public int getValidType() {
      return validType_;
    }

    public static final int OPERATETYPE_FIELD_NUMBER = 10;
    private int operateType_;
    /**
     * <pre>
     * uint32 操作类型:
     * </pre>
     *
     * <code>optional uint32 OperateType = 10;</code>
     * @return Whether the operateType field is set.
     */
    @java.lang.Override
    public boolean hasOperateType() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * uint32 操作类型:
     * </pre>
     *
     * <code>optional uint32 OperateType = 10;</code>
     * @return The operateType.
     */
    @java.lang.Override
    public int getOperateType() {
      return operateType_;
    }

    public static final int ORDERSRC_FIELD_NUMBER = 11;
    private int orderSrc_;
    /**
     * <pre>
     * uint32 单据来源
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 11;</code>
     * @return Whether the orderSrc field is set.
     */
    @java.lang.Override
    public boolean hasOrderSrc() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * uint32 单据来源
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 11;</code>
     * @return The orderSrc.
     */
    @java.lang.Override
    public int getOrderSrc() {
      return orderSrc_;
    }

    public static final int OPERATORID_FIELD_NUMBER = 12;
    private long operatorID_;
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 12;</code>
     * @return Whether the operatorID field is set.
     */
    @java.lang.Override
    public boolean hasOperatorID() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * uint64 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 12;</code>
     * @return The operatorID.
     */
    @java.lang.Override
    public long getOperatorID() {
      return operatorID_;
    }

    public static final int ORDERPRICE_FIELD_NUMBER = 13;
    private double orderPrice_;
    /**
     * <pre>
     * double 委托价格
     * </pre>
     *
     * <code>optional double OrderPrice = 13;</code>
     * @return Whether the orderPrice field is set.
     */
    @java.lang.Override
    public boolean hasOrderPrice() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * double 委托价格
     * </pre>
     *
     * <code>optional double OrderPrice = 13;</code>
     * @return The orderPrice.
     */
    @java.lang.Override
    public double getOrderPrice() {
      return orderPrice_;
    }

    public static final int MARKETMAXSUB_FIELD_NUMBER = 14;
    private double marketMaxSub_;
    /**
     * <pre>
     * double 市价允许最大偏差(做市)
     * </pre>
     *
     * <code>optional double MarketMaxSub = 14;</code>
     * @return Whether the marketMaxSub field is set.
     */
    @java.lang.Override
    public boolean hasMarketMaxSub() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * double 市价允许最大偏差(做市)
     * </pre>
     *
     * <code>optional double MarketMaxSub = 14;</code>
     * @return The marketMaxSub.
     */
    @java.lang.Override
    public double getMarketMaxSub() {
      return marketMaxSub_;
    }

    public static final int ORDERQTY_FIELD_NUMBER = 15;
    private long orderQty_;
    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 15;</code>
     * @return Whether the orderQty field is set.
     */
    @java.lang.Override
    public boolean hasOrderQty() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * uint64 委托数量
     * </pre>
     *
     * <code>optional uint64 OrderQty = 15;</code>
     * @return The orderQty.
     */
    @java.lang.Override
    public long getOrderQty() {
      return orderQty_;
    }

    public static final int BUYORSELL_FIELD_NUMBER = 16;
    private int buyOrSell_;
    /**
     * <pre>
     * uint32 买卖方向
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 16;</code>
     * @return Whether the buyOrSell field is set.
     */
    @java.lang.Override
    public boolean hasBuyOrSell() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * uint32 买卖方向
     * </pre>
     *
     * <code>optional uint32 BuyOrSell = 16;</code>
     * @return The buyOrSell.
     */
    @java.lang.Override
    public int getBuyOrSell() {
      return buyOrSell_;
    }

    public static final int BUILDTYPE_FIELD_NUMBER = 17;
    private int buildType_;
    /**
     * <pre>
     * uint32 下单类型
     * </pre>
     *
     * <code>optional uint32 BuildType = 17;</code>
     * @return Whether the buildType field is set.
     */
    @java.lang.Override
    public boolean hasBuildType() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <pre>
     * uint32 下单类型
     * </pre>
     *
     * <code>optional uint32 BuildType = 17;</code>
     * @return The buildType.
     */
    @java.lang.Override
    public int getBuildType() {
      return buildType_;
    }

    public static final int CURTQUOTEPRICE_FIELD_NUMBER = 18;
    private double curtQuotePrice_;
    /**
     * <pre>
     * double 保留，计算冻结金额使用
     * </pre>
     *
     * <code>optional double CurtQuotePrice = 18;</code>
     * @return Whether the curtQuotePrice field is set.
     */
    @java.lang.Override
    public boolean hasCurtQuotePrice() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <pre>
     * double 保留，计算冻结金额使用
     * </pre>
     *
     * <code>optional double CurtQuotePrice = 18;</code>
     * @return The curtQuotePrice.
     */
    @java.lang.Override
    public double getCurtQuotePrice() {
      return curtQuotePrice_;
    }

    public static final int SPPRICE_FIELD_NUMBER = 19;
    private double spPrice_;
    /**
     * <pre>
     * double 止盈价格
     * </pre>
     *
     * <code>optional double SpPrice = 19;</code>
     * @return Whether the spPrice field is set.
     */
    @java.lang.Override
    public boolean hasSpPrice() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <pre>
     * double 止盈价格
     * </pre>
     *
     * <code>optional double SpPrice = 19;</code>
     * @return The spPrice.
     */
    @java.lang.Override
    public double getSpPrice() {
      return spPrice_;
    }

    public static final int SLPRICE_FIELD_NUMBER = 20;
    private double slPrice_;
    /**
     * <pre>
     * double 止损价格
     * </pre>
     *
     * <code>optional double SlPrice = 20;</code>
     * @return Whether the slPrice field is set.
     */
    @java.lang.Override
    public boolean hasSlPrice() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <pre>
     * double 止损价格
     * </pre>
     *
     * <code>optional double SlPrice = 20;</code>
     * @return The slPrice.
     */
    @java.lang.Override
    public double getSlPrice() {
      return slPrice_;
    }

    public static final int PRICEMODE_FIELD_NUMBER = 21;
    private int priceMode_;
    /**
     * <pre>
     * uint32 取价方式
     * </pre>
     *
     * <code>optional uint32 PriceMode = 21;</code>
     * @return Whether the priceMode field is set.
     */
    @java.lang.Override
    public boolean hasPriceMode() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <pre>
     * uint32 取价方式
     * </pre>
     *
     * <code>optional uint32 PriceMode = 21;</code>
     * @return The priceMode.
     */
    @java.lang.Override
    public int getPriceMode() {
      return priceMode_;
    }

    public static final int TIMEVALIDTYPE_FIELD_NUMBER = 22;
    private int timevalidType_;
    /**
     * <pre>
     * uint32 时间有效类型
     * </pre>
     *
     * <code>optional uint32 TimevalidType = 22;</code>
     * @return Whether the timevalidType field is set.
     */
    @java.lang.Override
    public boolean hasTimevalidType() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <pre>
     * uint32 时间有效类型
     * </pre>
     *
     * <code>optional uint32 TimevalidType = 22;</code>
     * @return The timevalidType.
     */
    @java.lang.Override
    public int getTimevalidType() {
      return timevalidType_;
    }

    public static final int TRIGGERTYPE_FIELD_NUMBER = 23;
    private int triggerType_;
    /**
     * <pre>
     * uint32 预埋单触发类型
     * </pre>
     *
     * <code>optional uint32 TriggerType = 23;</code>
     * @return Whether the triggerType field is set.
     */
    @java.lang.Override
    public boolean hasTriggerType() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <pre>
     * uint32 预埋单触发类型
     * </pre>
     *
     * <code>optional uint32 TriggerType = 23;</code>
     * @return The triggerType.
     */
    @java.lang.Override
    public int getTriggerType() {
      return triggerType_;
    }

    public static final int TRIGGERPRICE_FIELD_NUMBER = 24;
    private double triggerPrice_;
    /**
     * <pre>
     * double 预埋单触发价格
     * </pre>
     *
     * <code>optional double TriggerPrice = 24;</code>
     * @return Whether the triggerPrice field is set.
     */
    @java.lang.Override
    public boolean hasTriggerPrice() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <pre>
     * double 预埋单触发价格
     * </pre>
     *
     * <code>optional double TriggerPrice = 24;</code>
     * @return The triggerPrice.
     */
    @java.lang.Override
    public double getTriggerPrice() {
      return triggerPrice_;
    }

    public static final int LISTINGSELECTTYPE_FIELD_NUMBER = 25;
    private int listingSelectType_;
    /**
     * <pre>
     * uint32 挂牌点选类型
     * </pre>
     *
     * <code>optional uint32 ListingSelectType = 25;</code>
     * @return Whether the listingSelectType field is set.
     */
    @java.lang.Override
    public boolean hasListingSelectType() {
      return ((bitField0_ & 0x01000000) != 0);
    }
    /**
     * <pre>
     * uint32 挂牌点选类型
     * </pre>
     *
     * <code>optional uint32 ListingSelectType = 25;</code>
     * @return The listingSelectType.
     */
    @java.lang.Override
    public int getListingSelectType() {
      return listingSelectType_;
    }

    public static final int DELISTINGTYPE_FIELD_NUMBER = 26;
    private int delistingType_;
    /**
     * <pre>
     * uint32 摘牌类型
     * </pre>
     *
     * <code>optional uint32 DelistingType = 26;</code>
     * @return Whether the delistingType field is set.
     */
    @java.lang.Override
    public boolean hasDelistingType() {
      return ((bitField0_ & 0x02000000) != 0);
    }
    /**
     * <pre>
     * uint32 摘牌类型
     * </pre>
     *
     * <code>optional uint32 DelistingType = 26;</code>
     * @return The delistingType.
     */
    @java.lang.Override
    public int getDelistingType() {
      return delistingType_;
    }

    public static final int RELATEDID_FIELD_NUMBER = 27;
    private long relatedID_;
    /**
     * <pre>
     * uint64 关联单号
     * </pre>
     *
     * <code>optional uint64 RelatedID = 27;</code>
     * @return Whether the relatedID field is set.
     */
    @java.lang.Override
    public boolean hasRelatedID() {
      return ((bitField0_ & 0x04000000) != 0);
    }
    /**
     * <pre>
     * uint64 关联单号
     * </pre>
     *
     * <code>optional uint64 RelatedID = 27;</code>
     * @return The relatedID.
     */
    @java.lang.Override
    public long getRelatedID() {
      return relatedID_;
    }

    public static final int OPTIONTYPE_FIELD_NUMBER = 28;
    private int optionType_;
    /**
     * <pre>
     * uint32 期权类型(1:认购(看涨) 2:认沽(看跌))
     * </pre>
     *
     * <code>optional uint32 OptionType = 28;</code>
     * @return Whether the optionType field is set.
     */
    @java.lang.Override
    public boolean hasOptionType() {
      return ((bitField0_ & 0x08000000) != 0);
    }
    /**
     * <pre>
     * uint32 期权类型(1:认购(看涨) 2:认沽(看跌))
     * </pre>
     *
     * <code>optional uint32 OptionType = 28;</code>
     * @return The optionType.
     */
    @java.lang.Override
    public int getOptionType() {
      return optionType_;
    }

    public static final int PREMIUM_FIELD_NUMBER = 29;
    private double premium_;
    /**
     * <pre>
     * double 权利金
     * </pre>
     *
     * <code>optional double Premium = 29;</code>
     * @return Whether the premium field is set.
     */
    @java.lang.Override
    public boolean hasPremium() {
      return ((bitField0_ & 0x10000000) != 0);
    }
    /**
     * <pre>
     * double 权利金
     * </pre>
     *
     * <code>optional double Premium = 29;</code>
     * @return The premium.
     */
    @java.lang.Override
    public double getPremium() {
      return premium_;
    }

    public static final int TRIGGEROPERATOR_FIELD_NUMBER = 30;
    private int triggerOperator_;
    /**
     * <pre>
     * uint32 触发条件(1: 大于等于 2:小于等于)
     * </pre>
     *
     * <code>optional uint32 TriggerOperator = 30;</code>
     * @return Whether the triggerOperator field is set.
     */
    @java.lang.Override
    public boolean hasTriggerOperator() {
      return ((bitField0_ & 0x20000000) != 0);
    }
    /**
     * <pre>
     * uint32 触发条件(1: 大于等于 2:小于等于)
     * </pre>
     *
     * <code>optional uint32 TriggerOperator = 30;</code>
     * @return The triggerOperator.
     */
    @java.lang.Override
    public int getTriggerOperator() {
      return triggerOperator_;
    }

    public static final int SERVICETIME_FIELD_NUMBER = 31;
    private volatile java.lang.Object serviceTime_;
    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 31;</code>
     * @return Whether the serviceTime field is set.
     */
    @java.lang.Override
    public boolean hasServiceTime() {
      return ((bitField0_ & 0x40000000) != 0);
    }
    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 31;</code>
     * @return The serviceTime.
     */
    @java.lang.Override
    public java.lang.String getServiceTime() {
      java.lang.Object ref = serviceTime_;
      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();
        if (bs.isValidUtf8()) {
          serviceTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 服务端时间
     * </pre>
     *
     * <code>optional string ServiceTime = 31;</code>
     * @return The bytes for serviceTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getServiceTimeBytes() {
      java.lang.Object ref = serviceTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        serviceTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COUPONTYPEID_FIELD_NUMBER = 32;
    private long couponTypeID_;
    /**
     * <pre>
     * uint64 优惠券类型ID(买方)
     * </pre>
     *
     * <code>optional uint64 CouponTypeID = 32;</code>
     * @return Whether the couponTypeID field is set.
     */
    @java.lang.Override
    public boolean hasCouponTypeID() {
      return ((bitField0_ & 0x80000000) != 0);
    }
    /**
     * <pre>
     * uint64 优惠券类型ID(买方)
     * </pre>
     *
     * <code>optional uint64 CouponTypeID = 32;</code>
     * @return The couponTypeID.
     */
    @java.lang.Override
    public long getCouponTypeID() {
      return couponTypeID_;
    }

    public static final int USEDQTY_FIELD_NUMBER = 33;
    private int usedQty_;
    /**
     * <pre>
     * uint32 使用数量
     * </pre>
     *
     * <code>optional uint32 UsedQty = 33;</code>
     * @return Whether the usedQty field is set.
     */
    @java.lang.Override
    public boolean hasUsedQty() {
      return ((bitField1_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * uint32 使用数量
     * </pre>
     *
     * <code>optional uint32 UsedQty = 33;</code>
     * @return The usedQty.
     */
    @java.lang.Override
    public int getUsedQty() {
      return usedQty_;
    }

    public static final int VALIDTIME_FIELD_NUMBER = 34;
    private volatile java.lang.Object validTime_;
    /**
     * <pre>
     * string 指定有效日期
     * </pre>
     *
     * <code>optional string ValidTime = 34;</code>
     * @return Whether the validTime field is set.
     */
    @java.lang.Override
    public boolean hasValidTime() {
      return ((bitField1_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * string 指定有效日期
     * </pre>
     *
     * <code>optional string ValidTime = 34;</code>
     * @return The validTime.
     */
    @java.lang.Override
    public java.lang.String getValidTime() {
      java.lang.Object ref = validTime_;
      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();
        if (bs.isValidUtf8()) {
          validTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string 指定有效日期
     * </pre>
     *
     * <code>optional string ValidTime = 34;</code>
     * @return The bytes for validTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getValidTimeBytes() {
      java.lang.Object ref = validTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        validTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RECEIVEINFOID_FIELD_NUMBER = 35;
    private long receiveInfoID_;
    /**
     * <pre>
     * uint64 收货地址ID
     * </pre>
     *
     * <code>optional uint64 ReceiveInfoID = 35;</code>
     * @return Whether the receiveInfoID field is set.
     */
    @java.lang.Override
    public boolean hasReceiveInfoID() {
      return ((bitField1_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint64 收货地址ID
     * </pre>
     *
     * <code>optional uint64 ReceiveInfoID = 35;</code>
     * @return The receiveInfoID.
     */
    @java.lang.Override
    public long getReceiveInfoID() {
      return receiveInfoID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, loginID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt64(6, accountID_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeUInt32(7, goodsID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeUInt32(8, marketID_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt32(9, validType_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeUInt32(10, operateType_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeUInt32(11, orderSrc_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeUInt64(12, operatorID_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeDouble(13, orderPrice_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeDouble(14, marketMaxSub_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeUInt64(15, orderQty_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeUInt32(16, buyOrSell_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeUInt32(17, buildType_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeDouble(18, curtQuotePrice_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeDouble(19, spPrice_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeDouble(20, slPrice_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeUInt32(21, priceMode_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        output.writeUInt32(22, timevalidType_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        output.writeUInt32(23, triggerType_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        output.writeDouble(24, triggerPrice_);
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        output.writeUInt32(25, listingSelectType_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        output.writeUInt32(26, delistingType_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        output.writeUInt64(27, relatedID_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        output.writeUInt32(28, optionType_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        output.writeDouble(29, premium_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        output.writeUInt32(30, triggerOperator_);
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 31, serviceTime_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        output.writeUInt64(32, couponTypeID_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        output.writeUInt32(33, usedQty_);
      }
      if (((bitField1_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 34, validTime_);
      }
      if (((bitField1_ & 0x00000004) != 0)) {
        output.writeUInt64(35, receiveInfoID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, loginID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(6, accountID_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, goodsID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, marketID_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, validType_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, operateType_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, orderSrc_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(12, operatorID_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(13, orderPrice_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(14, marketMaxSub_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(15, orderQty_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(16, buyOrSell_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(17, buildType_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(18, curtQuotePrice_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(19, spPrice_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(20, slPrice_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(21, priceMode_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(22, timevalidType_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(23, triggerType_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(24, triggerPrice_);
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(25, listingSelectType_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(26, delistingType_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(27, relatedID_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(28, optionType_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(29, premium_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(30, triggerOperator_);
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(31, serviceTime_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(32, couponTypeID_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(33, usedQty_);
      }
      if (((bitField1_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(34, validTime_);
      }
      if (((bitField1_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(35, receiveInfoID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.OrderReq)) {
        return super.equals(obj);
      }
      MSIM.OrderReq other = (MSIM.OrderReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasClientSerialNo() != other.hasClientSerialNo()) return false;
      if (hasClientSerialNo()) {
        if (!getClientSerialNo()
            .equals(other.getClientSerialNo())) return false;
      }
      if (hasClientOrderTime() != other.hasClientOrderTime()) return false;
      if (hasClientOrderTime()) {
        if (!getClientOrderTime()
            .equals(other.getClientOrderTime())) return false;
      }
      if (hasClientType() != other.hasClientType()) return false;
      if (hasClientType()) {
        if (getClientType()
            != other.getClientType()) return false;
      }
      if (hasLoginID() != other.hasLoginID()) return false;
      if (hasLoginID()) {
        if (getLoginID()
            != other.getLoginID()) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasGoodsID() != other.hasGoodsID()) return false;
      if (hasGoodsID()) {
        if (getGoodsID()
            != other.getGoodsID()) return false;
      }
      if (hasMarketID() != other.hasMarketID()) return false;
      if (hasMarketID()) {
        if (getMarketID()
            != other.getMarketID()) return false;
      }
      if (hasValidType() != other.hasValidType()) return false;
      if (hasValidType()) {
        if (getValidType()
            != other.getValidType()) return false;
      }
      if (hasOperateType() != other.hasOperateType()) return false;
      if (hasOperateType()) {
        if (getOperateType()
            != other.getOperateType()) return false;
      }
      if (hasOrderSrc() != other.hasOrderSrc()) return false;
      if (hasOrderSrc()) {
        if (getOrderSrc()
            != other.getOrderSrc()) return false;
      }
      if (hasOperatorID() != other.hasOperatorID()) return false;
      if (hasOperatorID()) {
        if (getOperatorID()
            != other.getOperatorID()) return false;
      }
      if (hasOrderPrice() != other.hasOrderPrice()) return false;
      if (hasOrderPrice()) {
        if (java.lang.Double.doubleToLongBits(getOrderPrice())
            != java.lang.Double.doubleToLongBits(
                other.getOrderPrice())) return false;
      }
      if (hasMarketMaxSub() != other.hasMarketMaxSub()) return false;
      if (hasMarketMaxSub()) {
        if (java.lang.Double.doubleToLongBits(getMarketMaxSub())
            != java.lang.Double.doubleToLongBits(
                other.getMarketMaxSub())) return false;
      }
      if (hasOrderQty() != other.hasOrderQty()) return false;
      if (hasOrderQty()) {
        if (getOrderQty()
            != other.getOrderQty()) return false;
      }
      if (hasBuyOrSell() != other.hasBuyOrSell()) return false;
      if (hasBuyOrSell()) {
        if (getBuyOrSell()
            != other.getBuyOrSell()) return false;
      }
      if (hasBuildType() != other.hasBuildType()) return false;
      if (hasBuildType()) {
        if (getBuildType()
            != other.getBuildType()) return false;
      }
      if (hasCurtQuotePrice() != other.hasCurtQuotePrice()) return false;
      if (hasCurtQuotePrice()) {
        if (java.lang.Double.doubleToLongBits(getCurtQuotePrice())
            != java.lang.Double.doubleToLongBits(
                other.getCurtQuotePrice())) return false;
      }
      if (hasSpPrice() != other.hasSpPrice()) return false;
      if (hasSpPrice()) {
        if (java.lang.Double.doubleToLongBits(getSpPrice())
            != java.lang.Double.doubleToLongBits(
                other.getSpPrice())) return false;
      }
      if (hasSlPrice() != other.hasSlPrice()) return false;
      if (hasSlPrice()) {
        if (java.lang.Double.doubleToLongBits(getSlPrice())
            != java.lang.Double.doubleToLongBits(
                other.getSlPrice())) return false;
      }
      if (hasPriceMode() != other.hasPriceMode()) return false;
      if (hasPriceMode()) {
        if (getPriceMode()
            != other.getPriceMode()) return false;
      }
      if (hasTimevalidType() != other.hasTimevalidType()) return false;
      if (hasTimevalidType()) {
        if (getTimevalidType()
            != other.getTimevalidType()) return false;
      }
      if (hasTriggerType() != other.hasTriggerType()) return false;
      if (hasTriggerType()) {
        if (getTriggerType()
            != other.getTriggerType()) return false;
      }
      if (hasTriggerPrice() != other.hasTriggerPrice()) return false;
      if (hasTriggerPrice()) {
        if (java.lang.Double.doubleToLongBits(getTriggerPrice())
            != java.lang.Double.doubleToLongBits(
                other.getTriggerPrice())) return false;
      }
      if (hasListingSelectType() != other.hasListingSelectType()) return false;
      if (hasListingSelectType()) {
        if (getListingSelectType()
            != other.getListingSelectType()) return false;
      }
      if (hasDelistingType() != other.hasDelistingType()) return false;
      if (hasDelistingType()) {
        if (getDelistingType()
            != other.getDelistingType()) return false;
      }
      if (hasRelatedID() != other.hasRelatedID()) return false;
      if (hasRelatedID()) {
        if (getRelatedID()
            != other.getRelatedID()) return false;
      }
      if (hasOptionType() != other.hasOptionType()) return false;
      if (hasOptionType()) {
        if (getOptionType()
            != other.getOptionType()) return false;
      }
      if (hasPremium() != other.hasPremium()) return false;
      if (hasPremium()) {
        if (java.lang.Double.doubleToLongBits(getPremium())
            != java.lang.Double.doubleToLongBits(
                other.getPremium())) return false;
      }
      if (hasTriggerOperator() != other.hasTriggerOperator()) return false;
      if (hasTriggerOperator()) {
        if (getTriggerOperator()
            != other.getTriggerOperator()) return false;
      }
      if (hasServiceTime() != other.hasServiceTime()) return false;
      if (hasServiceTime()) {
        if (!getServiceTime()
            .equals(other.getServiceTime())) return false;
      }
      if (hasCouponTypeID() != other.hasCouponTypeID()) return false;
      if (hasCouponTypeID()) {
        if (getCouponTypeID()
            != other.getCouponTypeID()) return false;
      }
      if (hasUsedQty() != other.hasUsedQty()) return false;
      if (hasUsedQty()) {
        if (getUsedQty()
            != other.getUsedQty()) return false;
      }
      if (hasValidTime() != other.hasValidTime()) return false;
      if (hasValidTime()) {
        if (!getValidTime()
            .equals(other.getValidTime())) return false;
      }
      if (hasReceiveInfoID() != other.hasReceiveInfoID()) return false;
      if (hasReceiveInfoID()) {
        if (getReceiveInfoID()
            != other.getReceiveInfoID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasClientSerialNo()) {
        hash = (37 * hash) + CLIENTSERIALNO_FIELD_NUMBER;
        hash = (53 * hash) + getClientSerialNo().hashCode();
      }
      if (hasClientOrderTime()) {
        hash = (37 * hash) + CLIENTORDERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getClientOrderTime().hashCode();
      }
      if (hasClientType()) {
        hash = (37 * hash) + CLIENTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getClientType();
      }
      if (hasLoginID()) {
        hash = (37 * hash) + LOGINID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLoginID());
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasGoodsID()) {
        hash = (37 * hash) + GOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsID();
      }
      if (hasMarketID()) {
        hash = (37 * hash) + MARKETID_FIELD_NUMBER;
        hash = (53 * hash) + getMarketID();
      }
      if (hasValidType()) {
        hash = (37 * hash) + VALIDTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getValidType();
      }
      if (hasOperateType()) {
        hash = (37 * hash) + OPERATETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOperateType();
      }
      if (hasOrderSrc()) {
        hash = (37 * hash) + ORDERSRC_FIELD_NUMBER;
        hash = (53 * hash) + getOrderSrc();
      }
      if (hasOperatorID()) {
        hash = (37 * hash) + OPERATORID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOperatorID());
      }
      if (hasOrderPrice()) {
        hash = (37 * hash) + ORDERPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getOrderPrice()));
      }
      if (hasMarketMaxSub()) {
        hash = (37 * hash) + MARKETMAXSUB_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMarketMaxSub()));
      }
      if (hasOrderQty()) {
        hash = (37 * hash) + ORDERQTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOrderQty());
      }
      if (hasBuyOrSell()) {
        hash = (37 * hash) + BUYORSELL_FIELD_NUMBER;
        hash = (53 * hash) + getBuyOrSell();
      }
      if (hasBuildType()) {
        hash = (37 * hash) + BUILDTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getBuildType();
      }
      if (hasCurtQuotePrice()) {
        hash = (37 * hash) + CURTQUOTEPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getCurtQuotePrice()));
      }
      if (hasSpPrice()) {
        hash = (37 * hash) + SPPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getSpPrice()));
      }
      if (hasSlPrice()) {
        hash = (37 * hash) + SLPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getSlPrice()));
      }
      if (hasPriceMode()) {
        hash = (37 * hash) + PRICEMODE_FIELD_NUMBER;
        hash = (53 * hash) + getPriceMode();
      }
      if (hasTimevalidType()) {
        hash = (37 * hash) + TIMEVALIDTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getTimevalidType();
      }
      if (hasTriggerType()) {
        hash = (37 * hash) + TRIGGERTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getTriggerType();
      }
      if (hasTriggerPrice()) {
        hash = (37 * hash) + TRIGGERPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getTriggerPrice()));
      }
      if (hasListingSelectType()) {
        hash = (37 * hash) + LISTINGSELECTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getListingSelectType();
      }
      if (hasDelistingType()) {
        hash = (37 * hash) + DELISTINGTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getDelistingType();
      }
      if (hasRelatedID()) {
        hash = (37 * hash) + RELATEDID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRelatedID());
      }
      if (hasOptionType()) {
        hash = (37 * hash) + OPTIONTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOptionType();
      }
      if (hasPremium()) {
        hash = (37 * hash) + PREMIUM_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getPremium()));
      }
      if (hasTriggerOperator()) {
        hash = (37 * hash) + TRIGGEROPERATOR_FIELD_NUMBER;
        hash = (53 * hash) + getTriggerOperator();
      }
      if (hasServiceTime()) {
        hash = (37 * hash) + SERVICETIME_FIELD_NUMBER;
        hash = (53 * hash) + getServiceTime().hashCode();
      }
      if (hasCouponTypeID()) {
        hash = (37 * hash) + COUPONTYPEID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCouponTypeID());
      }
      if (hasUsedQty()) {
        hash = (37 * hash) + USEDQTY_FIELD_NUMBER;
        hash = (53 * hash) + getUsedQty();
      }
      if (hasValidTime()) {
        hash = (37 * hash) + VALIDTIME_FIELD_NUMBER;
        hash = (53 * hash) + getValidTime().hashCode();
      }
      if (hasReceiveInfoID()) {
        hash = (37 * hash) + RECEIVEINFOID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getReceiveInfoID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.OrderReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.OrderReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.OrderReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.OrderReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.OrderReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.OrderReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.OrderReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.OrderReq 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 MSIM.OrderReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.OrderReq 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 MSIM.OrderReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.OrderReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.OrderReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 OrderReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:OrderReq)
        MSIM.OrderReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_OrderReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_OrderReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.OrderReq.class, MSIM.OrderReq.Builder.class);
      }

      // Construct using MSIM.OrderReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        clientSerialNo_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        clientOrderTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        clientType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        loginID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        goodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        marketID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        validType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        operateType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        orderSrc_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        operatorID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000800);
        orderPrice_ = 0D;
        bitField0_ = (bitField0_ & ~0x00001000);
        marketMaxSub_ = 0D;
        bitField0_ = (bitField0_ & ~0x00002000);
        orderQty_ = 0L;
        bitField0_ = (bitField0_ & ~0x00004000);
        buyOrSell_ = 0;
        bitField0_ = (bitField0_ & ~0x00008000);
        buildType_ = 0;
        bitField0_ = (bitField0_ & ~0x00010000);
        curtQuotePrice_ = 0D;
        bitField0_ = (bitField0_ & ~0x00020000);
        spPrice_ = 0D;
        bitField0_ = (bitField0_ & ~0x00040000);
        slPrice_ = 0D;
        bitField0_ = (bitField0_ & ~0x00080000);
        priceMode_ = 0;
        bitField0_ = (bitField0_ & ~0x00100000);
        timevalidType_ = 0;
        bitField0_ = (bitField0_ & ~0x00200000);
        triggerType_ = 0;
        bitField0_ = (bitField0_ & ~0x00400000);
        triggerPrice_ = 0D;
        bitField0_ = (bitField0_ & ~0x00800000);
        listingSelectType_ = 0;
        bitField0_ = (bitField0_ & ~0x01000000);
        delistingType_ = 0;
        bitField0_ = (bitField0_ & ~0x02000000);
        relatedID_ = 0L;
        bitField0_ = (bitField0_ & ~0x04000000);
        optionType_ = 0;
        bitField0_ = (bitField0_ & ~0x08000000);
        premium_ = 0D;
        bitField0_ = (bitField0_ & ~0x10000000);
        triggerOperator_ = 0;
        bitField0_ = (bitField0_ & ~0x20000000);
        serviceTime_ = "";
        bitField0_ = (bitField0_ & ~0x40000000);
        couponTypeID_ = 0L;
        bitField0_ = (bitField0_ & ~0x80000000);
        usedQty_ = 0;
        bitField1_ = (bitField1_ & ~0x00000001);
        validTime_ = "";
        bitField1_ = (bitField1_ & ~0x00000002);
        receiveInfoID_ = 0L;
        bitField1_ = (bitField1_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_OrderReq_descriptor;
      }

      @java.lang.Override
      public MSIM.OrderReq getDefaultInstanceForType() {
        return MSIM.OrderReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.OrderReq build() {
        MSIM.OrderReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.OrderReq buildPartial() {
        MSIM.OrderReq result = new MSIM.OrderReq(this);
        int from_bitField0_ = bitField0_;
        int from_bitField1_ = bitField1_;
        int to_bitField0_ = 0;
        int to_bitField1_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.clientSerialNo_ = clientSerialNo_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.clientOrderTime_ = clientOrderTime_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.clientType_ = clientType_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.loginID_ = loginID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.goodsID_ = goodsID_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.marketID_ = marketID_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.validType_ = validType_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.operateType_ = operateType_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.orderSrc_ = orderSrc_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.operatorID_ = operatorID_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.orderPrice_ = orderPrice_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.marketMaxSub_ = marketMaxSub_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.orderQty_ = orderQty_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.buyOrSell_ = buyOrSell_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.buildType_ = buildType_;
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.curtQuotePrice_ = curtQuotePrice_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.spPrice_ = spPrice_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.slPrice_ = slPrice_;
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.priceMode_ = priceMode_;
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.timevalidType_ = timevalidType_;
          to_bitField0_ |= 0x00200000;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.triggerType_ = triggerType_;
          to_bitField0_ |= 0x00400000;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.triggerPrice_ = triggerPrice_;
          to_bitField0_ |= 0x00800000;
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.listingSelectType_ = listingSelectType_;
          to_bitField0_ |= 0x01000000;
        }
        if (((from_bitField0_ & 0x02000000) != 0)) {
          result.delistingType_ = delistingType_;
          to_bitField0_ |= 0x02000000;
        }
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.relatedID_ = relatedID_;
          to_bitField0_ |= 0x04000000;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.optionType_ = optionType_;
          to_bitField0_ |= 0x08000000;
        }
        if (((from_bitField0_ & 0x10000000) != 0)) {
          result.premium_ = premium_;
          to_bitField0_ |= 0x10000000;
        }
        if (((from_bitField0_ & 0x20000000) != 0)) {
          result.triggerOperator_ = triggerOperator_;
          to_bitField0_ |= 0x20000000;
        }
        if (((from_bitField0_ & 0x40000000) != 0)) {
          to_bitField0_ |= 0x40000000;
        }
        result.serviceTime_ = serviceTime_;
        if (((from_bitField0_ & 0x80000000) != 0)) {
          result.couponTypeID_ = couponTypeID_;
          to_bitField0_ |= 0x80000000;
        }
        if (((from_bitField1_ & 0x00000001) != 0)) {
          result.usedQty_ = usedQty_;
          to_bitField1_ |= 0x00000001;
        }
        if (((from_bitField1_ & 0x00000002) != 0)) {
          to_bitField1_ |= 0x00000002;
        }
        result.validTime_ = validTime_;
        if (((from_bitField1_ & 0x00000004) != 0)) {
          result.receiveInfoID_ = receiveInfoID_;
          to_bitField1_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        result.bitField1_ = to_bitField1_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.OrderReq) {
          return mergeFrom((MSIM.OrderReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.OrderReq other) {
        if (other == MSIM.OrderReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasClientSerialNo()) {
          bitField0_ |= 0x00000002;
          clientSerialNo_ = other.clientSerialNo_;
          onChanged();
        }
        if (other.hasClientOrderTime()) {
          bitField0_ |= 0x00000004;
          clientOrderTime_ = other.clientOrderTime_;
          onChanged();
        }
        if (other.hasClientType()) {
          setClientType(other.getClientType());
        }
        if (other.hasLoginID()) {
          setLoginID(other.getLoginID());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasGoodsID()) {
          setGoodsID(other.getGoodsID());
        }
        if (other.hasMarketID()) {
          setMarketID(other.getMarketID());
        }
        if (other.hasValidType()) {
          setValidType(other.getValidType());
        }
        if (other.hasOperateType()) {
          setOperateType(other.getOperateType());
        }
        if (other.hasOrderSrc()) {
          setOrderSrc(other.getOrderSrc());
        }
        if (other.hasOperatorID()) {
          setOperatorID(other.getOperatorID());
        }
        if (other.hasOrderPrice()) {
          setOrderPrice(other.getOrderPrice());
        }
        if (other.hasMarketMaxSub()) {
          setMarketMaxSub(other.getMarketMaxSub());
        }
        if (other.hasOrderQty()) {
          setOrderQty(other.getOrderQty());
        }
        if (other.hasBuyOrSell()) {
          setBuyOrSell(other.getBuyOrSell());
        }
        if (other.hasBuildType()) {
          setBuildType(other.getBuildType());
        }
        if (other.hasCurtQuotePrice()) {
          setCurtQuotePrice(other.getCurtQuotePrice());
        }
        if (other.hasSpPrice()) {
          setSpPrice(other.getSpPrice());
        }
        if (other.hasSlPrice()) {
          setSlPrice(other.getSlPrice());
        }
        if (other.hasPriceMode()) {
          setPriceMode(other.getPriceMode());
        }
        if (other.hasTimevalidType()) {
          setTimevalidType(other.getTimevalidType());
        }
        if (other.hasTriggerType()) {
          setTriggerType(other.getTriggerType());
        }
        if (other.hasTriggerPrice()) {
          setTriggerPrice(other.getTriggerPrice());
        }
        if (other.hasListingSelectType()) {
          setListingSelectType(other.getListingSelectType());
        }
        if (other.hasDelistingType()) {
          setDelistingType(other.getDelistingType());
        }
        if (other.hasRelatedID()) {
          setRelatedID(other.getRelatedID());
        }
        if (other.hasOptionType()) {
          setOptionType(other.getOptionType());
        }
        if (other.hasPremium()) {
          setPremium(other.getPremium());
        }
        if (other.hasTriggerOperator()) {
          setTriggerOperator(other.getTriggerOperator());
        }
        if (other.hasServiceTime()) {
          bitField0_ |= 0x40000000;
          serviceTime_ = other.serviceTime_;
          onChanged();
        }
        if (other.hasCouponTypeID()) {
          setCouponTypeID(other.getCouponTypeID());
        }
        if (other.hasUsedQty()) {
          setUsedQty(other.getUsedQty());
        }
        if (other.hasValidTime()) {
          bitField1_ |= 0x00000002;
          validTime_ = other.validTime_;
          onChanged();
        }
        if (other.hasReceiveInfoID()) {
          setReceiveInfoID(other.getReceiveInfoID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.OrderReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.OrderReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private int bitField1_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.lang.Object clientSerialNo_ = "";
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return Whether the clientSerialNo field is set.
       */
      public boolean hasClientSerialNo() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return The clientSerialNo.
       */
      public java.lang.String getClientSerialNo() {
        java.lang.Object ref = clientSerialNo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientSerialNo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return The bytes for clientSerialNo.
       */
      public com.google.protobuf.ByteString
          getClientSerialNoBytes() {
        java.lang.Object ref = clientSerialNo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientSerialNo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @param value The clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialNo() {
        bitField0_ = (bitField0_ & ~0x00000002);
        clientSerialNo_ = getDefaultInstance().getClientSerialNo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @param value The bytes for clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clientOrderTime_ = "";
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return Whether the clientOrderTime field is set.
       */
      public boolean hasClientOrderTime() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The clientOrderTime.
       */
      public java.lang.String getClientOrderTime() {
        java.lang.Object ref = clientOrderTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientOrderTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The bytes for clientOrderTime.
       */
      public com.google.protobuf.ByteString
          getClientOrderTimeBytes() {
        java.lang.Object ref = clientOrderTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientOrderTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientOrderTime() {
        bitField0_ = (bitField0_ & ~0x00000004);
        clientOrderTime_ = getDefaultInstance().getClientOrderTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The bytes for clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }

      private int clientType_ ;
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return Whether the clientType field is set.
       */
      @java.lang.Override
      public boolean hasClientType() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return The clientType.
       */
      @java.lang.Override
      public int getClientType() {
        return clientType_;
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @param value The clientType to set.
       * @return This builder for chaining.
       */
      public Builder setClientType(int value) {
        bitField0_ |= 0x00000008;
        clientType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        clientType_ = 0;
        onChanged();
        return this;
      }

      private long loginID_ ;
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return Whether the loginID field is set.
       */
      @java.lang.Override
      public boolean hasLoginID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return The loginID.
       */
      @java.lang.Override
      public long getLoginID() {
        return loginID_;
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @param value The loginID to set.
       * @return This builder for chaining.
       */
      public Builder setLoginID(long value) {
        bitField0_ |= 0x00000010;
        loginID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 登陆账号
       * </pre>
       *
       * <code>optional uint64 LoginID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        loginID_ = 0L;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000020;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000020);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private int goodsID_ ;
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return Whether the goodsID field is set.
       */
      @java.lang.Override
      public boolean hasGoodsID() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return The goodsID.
       */
      @java.lang.Override
      public int getGoodsID() {
        return goodsID_;
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @param value The goodsID to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsID(int value) {
        bitField0_ |= 0x00000040;
        goodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 商品ID
       * </pre>
       *
       * <code>optional uint32 GoodsID = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        goodsID_ = 0;
        onChanged();
        return this;
      }

      private int marketID_ ;
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @return Whether the marketID field is set.
       */
      @java.lang.Override
      public boolean hasMarketID() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @return The marketID.
       */
      @java.lang.Override
      public int getMarketID() {
        return marketID_;
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @param value The marketID to set.
       * @return This builder for chaining.
       */
      public Builder setMarketID(int value) {
        bitField0_ |= 0x00000080;
        marketID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 市场ID
       * </pre>
       *
       * <code>optional uint32 MarketID = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearMarketID() {
        bitField0_ = (bitField0_ & ~0x00000080);
        marketID_ = 0;
        onChanged();
        return this;
      }

      private int validType_ ;
      /**
       * <pre>
       * int32 校验类型
       * </pre>
       *
       * <code>optional int32 ValidType = 9;</code>
       * @return Whether the validType field is set.
       */
      @java.lang.Override
      public boolean hasValidType() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * int32 校验类型
       * </pre>
       *
       * <code>optional int32 ValidType = 9;</code>
       * @return The validType.
       */
      @java.lang.Override
      public int getValidType() {
        return validType_;
      }
      /**
       * <pre>
       * int32 校验类型
       * </pre>
       *
       * <code>optional int32 ValidType = 9;</code>
       * @param value The validType to set.
       * @return This builder for chaining.
       */
      public Builder setValidType(int value) {
        bitField0_ |= 0x00000100;
        validType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 校验类型
       * </pre>
       *
       * <code>optional int32 ValidType = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearValidType() {
        bitField0_ = (bitField0_ & ~0x00000100);
        validType_ = 0;
        onChanged();
        return this;
      }

      private int operateType_ ;
      /**
       * <pre>
       * uint32 操作类型:
       * </pre>
       *
       * <code>optional uint32 OperateType = 10;</code>
       * @return Whether the operateType field is set.
       */
      @java.lang.Override
      public boolean hasOperateType() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * uint32 操作类型:
       * </pre>
       *
       * <code>optional uint32 OperateType = 10;</code>
       * @return The operateType.
       */
      @java.lang.Override
      public int getOperateType() {
        return operateType_;
      }
      /**
       * <pre>
       * uint32 操作类型:
       * </pre>
       *
       * <code>optional uint32 OperateType = 10;</code>
       * @param value The operateType to set.
       * @return This builder for chaining.
       */
      public Builder setOperateType(int value) {
        bitField0_ |= 0x00000200;
        operateType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 操作类型:
       * </pre>
       *
       * <code>optional uint32 OperateType = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateType() {
        bitField0_ = (bitField0_ & ~0x00000200);
        operateType_ = 0;
        onChanged();
        return this;
      }

      private int orderSrc_ ;
      /**
       * <pre>
       * uint32 单据来源
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 11;</code>
       * @return Whether the orderSrc field is set.
       */
      @java.lang.Override
      public boolean hasOrderSrc() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * uint32 单据来源
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 11;</code>
       * @return The orderSrc.
       */
      @java.lang.Override
      public int getOrderSrc() {
        return orderSrc_;
      }
      /**
       * <pre>
       * uint32 单据来源
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 11;</code>
       * @param value The orderSrc to set.
       * @return This builder for chaining.
       */
      public Builder setOrderSrc(int value) {
        bitField0_ |= 0x00000400;
        orderSrc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 单据来源
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderSrc() {
        bitField0_ = (bitField0_ & ~0x00000400);
        orderSrc_ = 0;
        onChanged();
        return this;
      }

      private long operatorID_ ;
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 12;</code>
       * @return Whether the operatorID field is set.
       */
      @java.lang.Override
      public boolean hasOperatorID() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 12;</code>
       * @return The operatorID.
       */
      @java.lang.Override
      public long getOperatorID() {
        return operatorID_;
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 12;</code>
       * @param value The operatorID to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorID(long value) {
        bitField0_ |= 0x00000800;
        operatorID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorID() {
        bitField0_ = (bitField0_ & ~0x00000800);
        operatorID_ = 0L;
        onChanged();
        return this;
      }

      private double orderPrice_ ;
      /**
       * <pre>
       * double 委托价格
       * </pre>
       *
       * <code>optional double OrderPrice = 13;</code>
       * @return Whether the orderPrice field is set.
       */
      @java.lang.Override
      public boolean hasOrderPrice() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * double 委托价格
       * </pre>
       *
       * <code>optional double OrderPrice = 13;</code>
       * @return The orderPrice.
       */
      @java.lang.Override
      public double getOrderPrice() {
        return orderPrice_;
      }
      /**
       * <pre>
       * double 委托价格
       * </pre>
       *
       * <code>optional double OrderPrice = 13;</code>
       * @param value The orderPrice to set.
       * @return This builder for chaining.
       */
      public Builder setOrderPrice(double value) {
        bitField0_ |= 0x00001000;
        orderPrice_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double 委托价格
       * </pre>
       *
       * <code>optional double OrderPrice = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderPrice() {
        bitField0_ = (bitField0_ & ~0x00001000);
        orderPrice_ = 0D;
        onChanged();
        return this;
      }

      private double marketMaxSub_ ;
      /**
       * <pre>
       * double 市价允许最大偏差(做市)
       * </pre>
       *
       * <code>optional double MarketMaxSub = 14;</code>
       * @return Whether the marketMaxSub field is set.
       */
      @java.lang.Override
      public boolean hasMarketMaxSub() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * double 市价允许最大偏差(做市)
       * </pre>
       *
       * <code>optional double MarketMaxSub = 14;</code>
       * @return The marketMaxSub.
       */
      @java.lang.Override
      public double getMarketMaxSub() {
        return marketMaxSub_;
      }
      /**
       * <pre>
       * double 市价允许最大偏差(做市)
       * </pre>
       *
       * <code>optional double MarketMaxSub = 14;</code>
       * @param value The marketMaxSub to set.
       * @return This builder for chaining.
       */
      public Builder setMarketMaxSub(double value) {
        bitField0_ |= 0x00002000;
        marketMaxSub_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double 市价允许最大偏差(做市)
       * </pre>
       *
       * <code>optional double MarketMaxSub = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearMarketMaxSub() {
        bitField0_ = (bitField0_ & ~0x00002000);
        marketMaxSub_ = 0D;
        onChanged();
        return this;
      }

      private long orderQty_ ;
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 15;</code>
       * @return Whether the orderQty field is set.
       */
      @java.lang.Override
      public boolean hasOrderQty() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 15;</code>
       * @return The orderQty.
       */
      @java.lang.Override
      public long getOrderQty() {
        return orderQty_;
      }
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 15;</code>
       * @param value The orderQty to set.
       * @return This builder for chaining.
       */
      public Builder setOrderQty(long value) {
        bitField0_ |= 0x00004000;
        orderQty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 委托数量
       * </pre>
       *
       * <code>optional uint64 OrderQty = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderQty() {
        bitField0_ = (bitField0_ & ~0x00004000);
        orderQty_ = 0L;
        onChanged();
        return this;
      }

      private int buyOrSell_ ;
      /**
       * <pre>
       * uint32 买卖方向
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 16;</code>
       * @return Whether the buyOrSell field is set.
       */
      @java.lang.Override
      public boolean hasBuyOrSell() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <pre>
       * uint32 买卖方向
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 16;</code>
       * @return The buyOrSell.
       */
      @java.lang.Override
      public int getBuyOrSell() {
        return buyOrSell_;
      }
      /**
       * <pre>
       * uint32 买卖方向
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 16;</code>
       * @param value The buyOrSell to set.
       * @return This builder for chaining.
       */
      public Builder setBuyOrSell(int value) {
        bitField0_ |= 0x00008000;
        buyOrSell_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 买卖方向
       * </pre>
       *
       * <code>optional uint32 BuyOrSell = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearBuyOrSell() {
        bitField0_ = (bitField0_ & ~0x00008000);
        buyOrSell_ = 0;
        onChanged();
        return this;
      }

      private int buildType_ ;
      /**
       * <pre>
       * uint32 下单类型
       * </pre>
       *
       * <code>optional uint32 BuildType = 17;</code>
       * @return Whether the buildType field is set.
       */
      @java.lang.Override
      public boolean hasBuildType() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <pre>
       * uint32 下单类型
       * </pre>
       *
       * <code>optional uint32 BuildType = 17;</code>
       * @return The buildType.
       */
      @java.lang.Override
      public int getBuildType() {
        return buildType_;
      }
      /**
       * <pre>
       * uint32 下单类型
       * </pre>
       *
       * <code>optional uint32 BuildType = 17;</code>
       * @param value The buildType to set.
       * @return This builder for chaining.
       */
      public Builder setBuildType(int value) {
        bitField0_ |= 0x00010000;
        buildType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 下单类型
       * </pre>
       *
       * <code>optional uint32 BuildType = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearBuildType() {
        bitField0_ = (bitField0_ & ~0x00010000);
        buildType_ = 0;
        onChanged();
        return this;
      }

      private double curtQuotePrice_ ;
      /**
       * <pre>
       * double 保留，计算冻结金额使用
       * </pre>
       *
       * <code>optional double CurtQuotePrice = 18;</code>
       * @return Whether the curtQuotePrice field is set.
       */
      @java.lang.Override
      public boolean hasCurtQuotePrice() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <pre>
       * double 保留，计算冻结金额使用
       * </pre>
       *
       * <code>optional double CurtQuotePrice = 18;</code>
       * @return The curtQuotePrice.
       */
      @java.lang.Override
      public double getCurtQuotePrice() {
        return curtQuotePrice_;
      }
      /**
       * <pre>
       * double 保留，计算冻结金额使用
       * </pre>
       *
       * <code>optional double CurtQuotePrice = 18;</code>
       * @param value The curtQuotePrice to set.
       * @return This builder for chaining.
       */
      public Builder setCurtQuotePrice(double value) {
        bitField0_ |= 0x00020000;
        curtQuotePrice_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double 保留，计算冻结金额使用
       * </pre>
       *
       * <code>optional double CurtQuotePrice = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurtQuotePrice() {
        bitField0_ = (bitField0_ & ~0x00020000);
        curtQuotePrice_ = 0D;
        onChanged();
        return this;
      }

      private double spPrice_ ;
      /**
       * <pre>
       * double 止盈价格
       * </pre>
       *
       * <code>optional double SpPrice = 19;</code>
       * @return Whether the spPrice field is set.
       */
      @java.lang.Override
      public boolean hasSpPrice() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <pre>
       * double 止盈价格
       * </pre>
       *
       * <code>optional double SpPrice = 19;</code>
       * @return The spPrice.
       */
      @java.lang.Override
      public double getSpPrice() {
        return spPrice_;
      }
      /**
       * <pre>
       * double 止盈价格
       * </pre>
       *
       * <code>optional double SpPrice = 19;</code>
       * @param value The spPrice to set.
       * @return This builder for chaining.
       */
      public Builder setSpPrice(double value) {
        bitField0_ |= 0x00040000;
        spPrice_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double 止盈价格
       * </pre>
       *
       * <code>optional double SpPrice = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpPrice() {
        bitField0_ = (bitField0_ & ~0x00040000);
        spPrice_ = 0D;
        onChanged();
        return this;
      }

      private double slPrice_ ;
      /**
       * <pre>
       * double 止损价格
       * </pre>
       *
       * <code>optional double SlPrice = 20;</code>
       * @return Whether the slPrice field is set.
       */
      @java.lang.Override
      public boolean hasSlPrice() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <pre>
       * double 止损价格
       * </pre>
       *
       * <code>optional double SlPrice = 20;</code>
       * @return The slPrice.
       */
      @java.lang.Override
      public double getSlPrice() {
        return slPrice_;
      }
      /**
       * <pre>
       * double 止损价格
       * </pre>
       *
       * <code>optional double SlPrice = 20;</code>
       * @param value The slPrice to set.
       * @return This builder for chaining.
       */
      public Builder setSlPrice(double value) {
        bitField0_ |= 0x00080000;
        slPrice_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double 止损价格
       * </pre>
       *
       * <code>optional double SlPrice = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearSlPrice() {
        bitField0_ = (bitField0_ & ~0x00080000);
        slPrice_ = 0D;
        onChanged();
        return this;
      }

      private int priceMode_ ;
      /**
       * <pre>
       * uint32 取价方式
       * </pre>
       *
       * <code>optional uint32 PriceMode = 21;</code>
       * @return Whether the priceMode field is set.
       */
      @java.lang.Override
      public boolean hasPriceMode() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <pre>
       * uint32 取价方式
       * </pre>
       *
       * <code>optional uint32 PriceMode = 21;</code>
       * @return The priceMode.
       */
      @java.lang.Override
      public int getPriceMode() {
        return priceMode_;
      }
      /**
       * <pre>
       * uint32 取价方式
       * </pre>
       *
       * <code>optional uint32 PriceMode = 21;</code>
       * @param value The priceMode to set.
       * @return This builder for chaining.
       */
      public Builder setPriceMode(int value) {
        bitField0_ |= 0x00100000;
        priceMode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 取价方式
       * </pre>
       *
       * <code>optional uint32 PriceMode = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearPriceMode() {
        bitField0_ = (bitField0_ & ~0x00100000);
        priceMode_ = 0;
        onChanged();
        return this;
      }

      private int timevalidType_ ;
      /**
       * <pre>
       * uint32 时间有效类型
       * </pre>
       *
       * <code>optional uint32 TimevalidType = 22;</code>
       * @return Whether the timevalidType field is set.
       */
      @java.lang.Override
      public boolean hasTimevalidType() {
        return ((bitField0_ & 0x00200000) != 0);
      }
      /**
       * <pre>
       * uint32 时间有效类型
       * </pre>
       *
       * <code>optional uint32 TimevalidType = 22;</code>
       * @return The timevalidType.
       */
      @java.lang.Override
      public int getTimevalidType() {
        return timevalidType_;
      }
      /**
       * <pre>
       * uint32 时间有效类型
       * </pre>
       *
       * <code>optional uint32 TimevalidType = 22;</code>
       * @param value The timevalidType to set.
       * @return This builder for chaining.
       */
      public Builder setTimevalidType(int value) {
        bitField0_ |= 0x00200000;
        timevalidType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 时间有效类型
       * </pre>
       *
       * <code>optional uint32 TimevalidType = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimevalidType() {
        bitField0_ = (bitField0_ & ~0x00200000);
        timevalidType_ = 0;
        onChanged();
        return this;
      }

      private int triggerType_ ;
      /**
       * <pre>
       * uint32 预埋单触发类型
       * </pre>
       *
       * <code>optional uint32 TriggerType = 23;</code>
       * @return Whether the triggerType field is set.
       */
      @java.lang.Override
      public boolean hasTriggerType() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <pre>
       * uint32 预埋单触发类型
       * </pre>
       *
       * <code>optional uint32 TriggerType = 23;</code>
       * @return The triggerType.
       */
      @java.lang.Override
      public int getTriggerType() {
        return triggerType_;
      }
      /**
       * <pre>
       * uint32 预埋单触发类型
       * </pre>
       *
       * <code>optional uint32 TriggerType = 23;</code>
       * @param value The triggerType to set.
       * @return This builder for chaining.
       */
      public Builder setTriggerType(int value) {
        bitField0_ |= 0x00400000;
        triggerType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 预埋单触发类型
       * </pre>
       *
       * <code>optional uint32 TriggerType = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearTriggerType() {
        bitField0_ = (bitField0_ & ~0x00400000);
        triggerType_ = 0;
        onChanged();
        return this;
      }

      private double triggerPrice_ ;
      /**
       * <pre>
       * double 预埋单触发价格
       * </pre>
       *
       * <code>optional double TriggerPrice = 24;</code>
       * @return Whether the triggerPrice field is set.
       */
      @java.lang.Override
      public boolean hasTriggerPrice() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <pre>
       * double 预埋单触发价格
       * </pre>
       *
       * <code>optional double TriggerPrice = 24;</code>
       * @return The triggerPrice.
       */
      @java.lang.Override
      public double getTriggerPrice() {
        return triggerPrice_;
      }
      /**
       * <pre>
       * double 预埋单触发价格
       * </pre>
       *
       * <code>optional double TriggerPrice = 24;</code>
       * @param value The triggerPrice to set.
       * @return This builder for chaining.
       */
      public Builder setTriggerPrice(double value) {
        bitField0_ |= 0x00800000;
        triggerPrice_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double 预埋单触发价格
       * </pre>
       *
       * <code>optional double TriggerPrice = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearTriggerPrice() {
        bitField0_ = (bitField0_ & ~0x00800000);
        triggerPrice_ = 0D;
        onChanged();
        return this;
      }

      private int listingSelectType_ ;
      /**
       * <pre>
       * uint32 挂牌点选类型
       * </pre>
       *
       * <code>optional uint32 ListingSelectType = 25;</code>
       * @return Whether the listingSelectType field is set.
       */
      @java.lang.Override
      public boolean hasListingSelectType() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <pre>
       * uint32 挂牌点选类型
       * </pre>
       *
       * <code>optional uint32 ListingSelectType = 25;</code>
       * @return The listingSelectType.
       */
      @java.lang.Override
      public int getListingSelectType() {
        return listingSelectType_;
      }
      /**
       * <pre>
       * uint32 挂牌点选类型
       * </pre>
       *
       * <code>optional uint32 ListingSelectType = 25;</code>
       * @param value The listingSelectType to set.
       * @return This builder for chaining.
       */
      public Builder setListingSelectType(int value) {
        bitField0_ |= 0x01000000;
        listingSelectType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 挂牌点选类型
       * </pre>
       *
       * <code>optional uint32 ListingSelectType = 25;</code>
       * @return This builder for chaining.
       */
      public Builder clearListingSelectType() {
        bitField0_ = (bitField0_ & ~0x01000000);
        listingSelectType_ = 0;
        onChanged();
        return this;
      }

      private int delistingType_ ;
      /**
       * <pre>
       * uint32 摘牌类型
       * </pre>
       *
       * <code>optional uint32 DelistingType = 26;</code>
       * @return Whether the delistingType field is set.
       */
      @java.lang.Override
      public boolean hasDelistingType() {
        return ((bitField0_ & 0x02000000) != 0);
      }
      /**
       * <pre>
       * uint32 摘牌类型
       * </pre>
       *
       * <code>optional uint32 DelistingType = 26;</code>
       * @return The delistingType.
       */
      @java.lang.Override
      public int getDelistingType() {
        return delistingType_;
      }
      /**
       * <pre>
       * uint32 摘牌类型
       * </pre>
       *
       * <code>optional uint32 DelistingType = 26;</code>
       * @param value The delistingType to set.
       * @return This builder for chaining.
       */
      public Builder setDelistingType(int value) {
        bitField0_ |= 0x02000000;
        delistingType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 摘牌类型
       * </pre>
       *
       * <code>optional uint32 DelistingType = 26;</code>
       * @return This builder for chaining.
       */
      public Builder clearDelistingType() {
        bitField0_ = (bitField0_ & ~0x02000000);
        delistingType_ = 0;
        onChanged();
        return this;
      }

      private long relatedID_ ;
      /**
       * <pre>
       * uint64 关联单号
       * </pre>
       *
       * <code>optional uint64 RelatedID = 27;</code>
       * @return Whether the relatedID field is set.
       */
      @java.lang.Override
      public boolean hasRelatedID() {
        return ((bitField0_ & 0x04000000) != 0);
      }
      /**
       * <pre>
       * uint64 关联单号
       * </pre>
       *
       * <code>optional uint64 RelatedID = 27;</code>
       * @return The relatedID.
       */
      @java.lang.Override
      public long getRelatedID() {
        return relatedID_;
      }
      /**
       * <pre>
       * uint64 关联单号
       * </pre>
       *
       * <code>optional uint64 RelatedID = 27;</code>
       * @param value The relatedID to set.
       * @return This builder for chaining.
       */
      public Builder setRelatedID(long value) {
        bitField0_ |= 0x04000000;
        relatedID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 关联单号
       * </pre>
       *
       * <code>optional uint64 RelatedID = 27;</code>
       * @return This builder for chaining.
       */
      public Builder clearRelatedID() {
        bitField0_ = (bitField0_ & ~0x04000000);
        relatedID_ = 0L;
        onChanged();
        return this;
      }

      private int optionType_ ;
      /**
       * <pre>
       * uint32 期权类型(1:认购(看涨) 2:认沽(看跌))
       * </pre>
       *
       * <code>optional uint32 OptionType = 28;</code>
       * @return Whether the optionType field is set.
       */
      @java.lang.Override
      public boolean hasOptionType() {
        return ((bitField0_ & 0x08000000) != 0);
      }
      /**
       * <pre>
       * uint32 期权类型(1:认购(看涨) 2:认沽(看跌))
       * </pre>
       *
       * <code>optional uint32 OptionType = 28;</code>
       * @return The optionType.
       */
      @java.lang.Override
      public int getOptionType() {
        return optionType_;
      }
      /**
       * <pre>
       * uint32 期权类型(1:认购(看涨) 2:认沽(看跌))
       * </pre>
       *
       * <code>optional uint32 OptionType = 28;</code>
       * @param value The optionType to set.
       * @return This builder for chaining.
       */
      public Builder setOptionType(int value) {
        bitField0_ |= 0x08000000;
        optionType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 期权类型(1:认购(看涨) 2:认沽(看跌))
       * </pre>
       *
       * <code>optional uint32 OptionType = 28;</code>
       * @return This builder for chaining.
       */
      public Builder clearOptionType() {
        bitField0_ = (bitField0_ & ~0x08000000);
        optionType_ = 0;
        onChanged();
        return this;
      }

      private double premium_ ;
      /**
       * <pre>
       * double 权利金
       * </pre>
       *
       * <code>optional double Premium = 29;</code>
       * @return Whether the premium field is set.
       */
      @java.lang.Override
      public boolean hasPremium() {
        return ((bitField0_ & 0x10000000) != 0);
      }
      /**
       * <pre>
       * double 权利金
       * </pre>
       *
       * <code>optional double Premium = 29;</code>
       * @return The premium.
       */
      @java.lang.Override
      public double getPremium() {
        return premium_;
      }
      /**
       * <pre>
       * double 权利金
       * </pre>
       *
       * <code>optional double Premium = 29;</code>
       * @param value The premium to set.
       * @return This builder for chaining.
       */
      public Builder setPremium(double value) {
        bitField0_ |= 0x10000000;
        premium_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double 权利金
       * </pre>
       *
       * <code>optional double Premium = 29;</code>
       * @return This builder for chaining.
       */
      public Builder clearPremium() {
        bitField0_ = (bitField0_ & ~0x10000000);
        premium_ = 0D;
        onChanged();
        return this;
      }

      private int triggerOperator_ ;
      /**
       * <pre>
       * uint32 触发条件(1: 大于等于 2:小于等于)
       * </pre>
       *
       * <code>optional uint32 TriggerOperator = 30;</code>
       * @return Whether the triggerOperator field is set.
       */
      @java.lang.Override
      public boolean hasTriggerOperator() {
        return ((bitField0_ & 0x20000000) != 0);
      }
      /**
       * <pre>
       * uint32 触发条件(1: 大于等于 2:小于等于)
       * </pre>
       *
       * <code>optional uint32 TriggerOperator = 30;</code>
       * @return The triggerOperator.
       */
      @java.lang.Override
      public int getTriggerOperator() {
        return triggerOperator_;
      }
      /**
       * <pre>
       * uint32 触发条件(1: 大于等于 2:小于等于)
       * </pre>
       *
       * <code>optional uint32 TriggerOperator = 30;</code>
       * @param value The triggerOperator to set.
       * @return This builder for chaining.
       */
      public Builder setTriggerOperator(int value) {
        bitField0_ |= 0x20000000;
        triggerOperator_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 触发条件(1: 大于等于 2:小于等于)
       * </pre>
       *
       * <code>optional uint32 TriggerOperator = 30;</code>
       * @return This builder for chaining.
       */
      public Builder clearTriggerOperator() {
        bitField0_ = (bitField0_ & ~0x20000000);
        triggerOperator_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object serviceTime_ = "";
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 31;</code>
       * @return Whether the serviceTime field is set.
       */
      public boolean hasServiceTime() {
        return ((bitField0_ & 0x40000000) != 0);
      }
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 31;</code>
       * @return The serviceTime.
       */
      public java.lang.String getServiceTime() {
        java.lang.Object ref = serviceTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            serviceTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 31;</code>
       * @return The bytes for serviceTime.
       */
      public com.google.protobuf.ByteString
          getServiceTimeBytes() {
        java.lang.Object ref = serviceTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          serviceTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 31;</code>
       * @param value The serviceTime to set.
       * @return This builder for chaining.
       */
      public Builder setServiceTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x40000000;
        serviceTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 31;</code>
       * @return This builder for chaining.
       */
      public Builder clearServiceTime() {
        bitField0_ = (bitField0_ & ~0x40000000);
        serviceTime_ = getDefaultInstance().getServiceTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 服务端时间
       * </pre>
       *
       * <code>optional string ServiceTime = 31;</code>
       * @param value The bytes for serviceTime to set.
       * @return This builder for chaining.
       */
      public Builder setServiceTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x40000000;
        serviceTime_ = value;
        onChanged();
        return this;
      }

      private long couponTypeID_ ;
      /**
       * <pre>
       * uint64 优惠券类型ID(买方)
       * </pre>
       *
       * <code>optional uint64 CouponTypeID = 32;</code>
       * @return Whether the couponTypeID field is set.
       */
      @java.lang.Override
      public boolean hasCouponTypeID() {
        return ((bitField0_ & 0x80000000) != 0);
      }
      /**
       * <pre>
       * uint64 优惠券类型ID(买方)
       * </pre>
       *
       * <code>optional uint64 CouponTypeID = 32;</code>
       * @return The couponTypeID.
       */
      @java.lang.Override
      public long getCouponTypeID() {
        return couponTypeID_;
      }
      /**
       * <pre>
       * uint64 优惠券类型ID(买方)
       * </pre>
       *
       * <code>optional uint64 CouponTypeID = 32;</code>
       * @param value The couponTypeID to set.
       * @return This builder for chaining.
       */
      public Builder setCouponTypeID(long value) {
        bitField0_ |= 0x80000000;
        couponTypeID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 优惠券类型ID(买方)
       * </pre>
       *
       * <code>optional uint64 CouponTypeID = 32;</code>
       * @return This builder for chaining.
       */
      public Builder clearCouponTypeID() {
        bitField0_ = (bitField0_ & ~0x80000000);
        couponTypeID_ = 0L;
        onChanged();
        return this;
      }

      private int usedQty_ ;
      /**
       * <pre>
       * uint32 使用数量
       * </pre>
       *
       * <code>optional uint32 UsedQty = 33;</code>
       * @return Whether the usedQty field is set.
       */
      @java.lang.Override
      public boolean hasUsedQty() {
        return ((bitField1_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * uint32 使用数量
       * </pre>
       *
       * <code>optional uint32 UsedQty = 33;</code>
       * @return The usedQty.
       */
      @java.lang.Override
      public int getUsedQty() {
        return usedQty_;
      }
      /**
       * <pre>
       * uint32 使用数量
       * </pre>
       *
       * <code>optional uint32 UsedQty = 33;</code>
       * @param value The usedQty to set.
       * @return This builder for chaining.
       */
      public Builder setUsedQty(int value) {
        bitField1_ |= 0x00000001;
        usedQty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 使用数量
       * </pre>
       *
       * <code>optional uint32 UsedQty = 33;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsedQty() {
        bitField1_ = (bitField1_ & ~0x00000001);
        usedQty_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object validTime_ = "";
      /**
       * <pre>
       * string 指定有效日期
       * </pre>
       *
       * <code>optional string ValidTime = 34;</code>
       * @return Whether the validTime field is set.
       */
      public boolean hasValidTime() {
        return ((bitField1_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * string 指定有效日期
       * </pre>
       *
       * <code>optional string ValidTime = 34;</code>
       * @return The validTime.
       */
      public java.lang.String getValidTime() {
        java.lang.Object ref = validTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            validTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string 指定有效日期
       * </pre>
       *
       * <code>optional string ValidTime = 34;</code>
       * @return The bytes for validTime.
       */
      public com.google.protobuf.ByteString
          getValidTimeBytes() {
        java.lang.Object ref = validTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          validTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string 指定有效日期
       * </pre>
       *
       * <code>optional string ValidTime = 34;</code>
       * @param value The validTime to set.
       * @return This builder for chaining.
       */
      public Builder setValidTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000002;
        validTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 指定有效日期
       * </pre>
       *
       * <code>optional string ValidTime = 34;</code>
       * @return This builder for chaining.
       */
      public Builder clearValidTime() {
        bitField1_ = (bitField1_ & ~0x00000002);
        validTime_ = getDefaultInstance().getValidTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string 指定有效日期
       * </pre>
       *
       * <code>optional string ValidTime = 34;</code>
       * @param value The bytes for validTime to set.
       * @return This builder for chaining.
       */
      public Builder setValidTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField1_ |= 0x00000002;
        validTime_ = value;
        onChanged();
        return this;
      }

      private long receiveInfoID_ ;
      /**
       * <pre>
       * uint64 收货地址ID
       * </pre>
       *
       * <code>optional uint64 ReceiveInfoID = 35;</code>
       * @return Whether the receiveInfoID field is set.
       */
      @java.lang.Override
      public boolean hasReceiveInfoID() {
        return ((bitField1_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint64 收货地址ID
       * </pre>
       *
       * <code>optional uint64 ReceiveInfoID = 35;</code>
       * @return The receiveInfoID.
       */
      @java.lang.Override
      public long getReceiveInfoID() {
        return receiveInfoID_;
      }
      /**
       * <pre>
       * uint64 收货地址ID
       * </pre>
       *
       * <code>optional uint64 ReceiveInfoID = 35;</code>
       * @param value The receiveInfoID to set.
       * @return This builder for chaining.
       */
      public Builder setReceiveInfoID(long value) {
        bitField1_ |= 0x00000004;
        receiveInfoID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 收货地址ID
       * </pre>
       *
       * <code>optional uint64 ReceiveInfoID = 35;</code>
       * @return This builder for chaining.
       */
      public Builder clearReceiveInfoID() {
        bitField1_ = (bitField1_ & ~0x00000004);
        receiveInfoID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:OrderReq)
    }

    // @@protoc_insertion_point(class_scope:OrderReq)
    private static final MSIM.OrderReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.OrderReq();
    }

    public static MSIM.OrderReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<OrderReq>
        PARSER = new com.google.protobuf.AbstractParser<OrderReq>() {
      @java.lang.Override
      public OrderReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new OrderReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.OrderReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CancelOrderReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CancelOrderReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return Whether the clientSerialNo field is set.
     */
    boolean hasClientSerialNo();
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The clientSerialNo.
     */
    java.lang.String getClientSerialNo();
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The bytes for clientSerialNo.
     */
    com.google.protobuf.ByteString
        getClientSerialNoBytes();

    /**
     * <pre>
     * 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    boolean hasClientOrderTime();
    /**
     * <pre>
     * 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    java.lang.String getClientOrderTime();
    /**
     * <pre>
     * 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    com.google.protobuf.ByteString
        getClientOrderTimeBytes();

    /**
     * <pre>
     * 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return Whether the clientType field is set.
     */
    boolean hasClientType();
    /**
     * <pre>
     * 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return The clientType.
     */
    int getClientType();

    /**
     * <pre>
     * 操作类型
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return Whether the operateType field is set.
     */
    boolean hasOperateType();
    /**
     * <pre>
     * 操作类型
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return The operateType.
     */
    int getOperateType();

    /**
     * <pre>
     * 原委托单号
     * </pre>
     *
     * <code>optional uint64 OldOrderId = 6;</code>
     * @return Whether the oldOrderId field is set.
     */
    boolean hasOldOrderId();
    /**
     * <pre>
     * 原委托单号
     * </pre>
     *
     * <code>optional uint64 OldOrderId = 6;</code>
     * @return The oldOrderId.
     */
    long getOldOrderId();

    /**
     * <pre>
     * 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 7;</code>
     * @return Whether the accountID field is set.
     */
    boolean hasAccountID();
    /**
     * <pre>
     * 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 7;</code>
     * @return The accountID.
     */
    long getAccountID();

    /**
     * <pre>
     * 单据来源
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 8;</code>
     * @return Whether the orderSrc field is set.
     */
    boolean hasOrderSrc();
    /**
     * <pre>
     * 单据来源
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 8;</code>
     * @return The orderSrc.
     */
    int getOrderSrc();

    /**
     * <pre>
     * 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 9;</code>
     * @return Whether the operatorID field is set.
     */
    boolean hasOperatorID();
    /**
     * <pre>
     * 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 9;</code>
     * @return The operatorID.
     */
    long getOperatorID();
  }
  /**
   * <pre>
   * 撤单请求
   * </pre>
   *
   * Protobuf type {@code CancelOrderReq}
   */
  public static final class CancelOrderReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:CancelOrderReq)
      CancelOrderReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CancelOrderReq.newBuilder() to construct.
    private CancelOrderReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CancelOrderReq() {
      clientSerialNo_ = "";
      clientOrderTime_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CancelOrderReq();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CancelOrderReq(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              clientSerialNo_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              clientOrderTime_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              clientType_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              operateType_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              oldOrderId_ = input.readUInt64();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              accountID_ = input.readUInt64();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              orderSrc_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              operatorID_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_CancelOrderReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_CancelOrderReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.CancelOrderReq.class, MSIM.CancelOrderReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int CLIENTSERIALNO_FIELD_NUMBER = 2;
    private volatile java.lang.Object clientSerialNo_;
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return Whether the clientSerialNo field is set.
     */
    @java.lang.Override
    public boolean hasClientSerialNo() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The clientSerialNo.
     */
    @java.lang.Override
    public java.lang.String getClientSerialNo() {
      java.lang.Object ref = clientSerialNo_;
      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();
        if (bs.isValidUtf8()) {
          clientSerialNo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 客户端流水号
     * </pre>
     *
     * <code>optional string ClientSerialNo = 2;</code>
     * @return The bytes for clientSerialNo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientSerialNoBytes() {
      java.lang.Object ref = clientSerialNo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSerialNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTORDERTIME_FIELD_NUMBER = 3;
    private volatile java.lang.Object clientOrderTime_;
    /**
     * <pre>
     * 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return Whether the clientOrderTime field is set.
     */
    @java.lang.Override
    public boolean hasClientOrderTime() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The clientOrderTime.
     */
    @java.lang.Override
    public java.lang.String getClientOrderTime() {
      java.lang.Object ref = clientOrderTime_;
      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();
        if (bs.isValidUtf8()) {
          clientOrderTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 客户端委托时间
     * </pre>
     *
     * <code>optional string ClientOrderTime = 3;</code>
     * @return The bytes for clientOrderTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientOrderTimeBytes() {
      java.lang.Object ref = clientOrderTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientOrderTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTTYPE_FIELD_NUMBER = 4;
    private int clientType_;
    /**
     * <pre>
     * 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return Whether the clientType field is set.
     */
    @java.lang.Override
    public boolean hasClientType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 终端类型
     * </pre>
     *
     * <code>optional uint32 ClientType = 4;</code>
     * @return The clientType.
     */
    @java.lang.Override
    public int getClientType() {
      return clientType_;
    }

    public static final int OPERATETYPE_FIELD_NUMBER = 5;
    private int operateType_;
    /**
     * <pre>
     * 操作类型
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return Whether the operateType field is set.
     */
    @java.lang.Override
    public boolean hasOperateType() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * 操作类型
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return The operateType.
     */
    @java.lang.Override
    public int getOperateType() {
      return operateType_;
    }

    public static final int OLDORDERID_FIELD_NUMBER = 6;
    private long oldOrderId_;
    /**
     * <pre>
     * 原委托单号
     * </pre>
     *
     * <code>optional uint64 OldOrderId = 6;</code>
     * @return Whether the oldOrderId field is set.
     */
    @java.lang.Override
    public boolean hasOldOrderId() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * 原委托单号
     * </pre>
     *
     * <code>optional uint64 OldOrderId = 6;</code>
     * @return The oldOrderId.
     */
    @java.lang.Override
    public long getOldOrderId() {
      return oldOrderId_;
    }

    public static final int ACCOUNTID_FIELD_NUMBER = 7;
    private long accountID_;
    /**
     * <pre>
     * 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 7;</code>
     * @return Whether the accountID field is set.
     */
    @java.lang.Override
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * 交易账号
     * </pre>
     *
     * <code>optional uint64 AccountID = 7;</code>
     * @return The accountID.
     */
    @java.lang.Override
    public long getAccountID() {
      return accountID_;
    }

    public static final int ORDERSRC_FIELD_NUMBER = 8;
    private int orderSrc_;
    /**
     * <pre>
     * 单据来源
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 8;</code>
     * @return Whether the orderSrc field is set.
     */
    @java.lang.Override
    public boolean hasOrderSrc() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * 单据来源
     * </pre>
     *
     * <code>optional uint32 OrderSrc = 8;</code>
     * @return The orderSrc.
     */
    @java.lang.Override
    public int getOrderSrc() {
      return orderSrc_;
    }

    public static final int OPERATORID_FIELD_NUMBER = 9;
    private long operatorID_;
    /**
     * <pre>
     * 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 9;</code>
     * @return Whether the operatorID field is set.
     */
    @java.lang.Override
    public boolean hasOperatorID() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * 操作员账号ID
     * </pre>
     *
     * <code>optional uint64 OperatorID = 9;</code>
     * @return The operatorID.
     */
    @java.lang.Override
    public long getOperatorID() {
      return operatorID_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, operateType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt64(6, oldOrderId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeUInt64(7, accountID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeUInt32(8, orderSrc_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeUInt64(9, operatorID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, clientSerialNo_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, clientOrderTime_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, clientType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, operateType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(6, oldOrderId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(7, accountID_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, orderSrc_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(9, operatorID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.CancelOrderReq)) {
        return super.equals(obj);
      }
      MSIM.CancelOrderReq other = (MSIM.CancelOrderReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasClientSerialNo() != other.hasClientSerialNo()) return false;
      if (hasClientSerialNo()) {
        if (!getClientSerialNo()
            .equals(other.getClientSerialNo())) return false;
      }
      if (hasClientOrderTime() != other.hasClientOrderTime()) return false;
      if (hasClientOrderTime()) {
        if (!getClientOrderTime()
            .equals(other.getClientOrderTime())) return false;
      }
      if (hasClientType() != other.hasClientType()) return false;
      if (hasClientType()) {
        if (getClientType()
            != other.getClientType()) return false;
      }
      if (hasOperateType() != other.hasOperateType()) return false;
      if (hasOperateType()) {
        if (getOperateType()
            != other.getOperateType()) return false;
      }
      if (hasOldOrderId() != other.hasOldOrderId()) return false;
      if (hasOldOrderId()) {
        if (getOldOrderId()
            != other.getOldOrderId()) return false;
      }
      if (hasAccountID() != other.hasAccountID()) return false;
      if (hasAccountID()) {
        if (getAccountID()
            != other.getAccountID()) return false;
      }
      if (hasOrderSrc() != other.hasOrderSrc()) return false;
      if (hasOrderSrc()) {
        if (getOrderSrc()
            != other.getOrderSrc()) return false;
      }
      if (hasOperatorID() != other.hasOperatorID()) return false;
      if (hasOperatorID()) {
        if (getOperatorID()
            != other.getOperatorID()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasClientSerialNo()) {
        hash = (37 * hash) + CLIENTSERIALNO_FIELD_NUMBER;
        hash = (53 * hash) + getClientSerialNo().hashCode();
      }
      if (hasClientOrderTime()) {
        hash = (37 * hash) + CLIENTORDERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getClientOrderTime().hashCode();
      }
      if (hasClientType()) {
        hash = (37 * hash) + CLIENTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getClientType();
      }
      if (hasOperateType()) {
        hash = (37 * hash) + OPERATETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOperateType();
      }
      if (hasOldOrderId()) {
        hash = (37 * hash) + OLDORDERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOldOrderId());
      }
      if (hasAccountID()) {
        hash = (37 * hash) + ACCOUNTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAccountID());
      }
      if (hasOrderSrc()) {
        hash = (37 * hash) + ORDERSRC_FIELD_NUMBER;
        hash = (53 * hash) + getOrderSrc();
      }
      if (hasOperatorID()) {
        hash = (37 * hash) + OPERATORID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOperatorID());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.CancelOrderReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelOrderReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelOrderReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelOrderReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelOrderReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelOrderReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelOrderReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.CancelOrderReq 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 MSIM.CancelOrderReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.CancelOrderReq 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 MSIM.CancelOrderReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.CancelOrderReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.CancelOrderReq prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 撤单请求
     * </pre>
     *
     * Protobuf type {@code CancelOrderReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:CancelOrderReq)
        MSIM.CancelOrderReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_CancelOrderReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_CancelOrderReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.CancelOrderReq.class, MSIM.CancelOrderReq.Builder.class);
      }

      // Construct using MSIM.CancelOrderReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        clientSerialNo_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        clientOrderTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        clientType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        operateType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        oldOrderId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        accountID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000040);
        orderSrc_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        operatorID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_CancelOrderReq_descriptor;
      }

      @java.lang.Override
      public MSIM.CancelOrderReq getDefaultInstanceForType() {
        return MSIM.CancelOrderReq.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.CancelOrderReq build() {
        MSIM.CancelOrderReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.CancelOrderReq buildPartial() {
        MSIM.CancelOrderReq result = new MSIM.CancelOrderReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.clientSerialNo_ = clientSerialNo_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.clientOrderTime_ = clientOrderTime_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.clientType_ = clientType_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.operateType_ = operateType_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.oldOrderId_ = oldOrderId_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.accountID_ = accountID_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.orderSrc_ = orderSrc_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.operatorID_ = operatorID_;
          to_bitField0_ |= 0x00000100;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.CancelOrderReq) {
          return mergeFrom((MSIM.CancelOrderReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.CancelOrderReq other) {
        if (other == MSIM.CancelOrderReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasClientSerialNo()) {
          bitField0_ |= 0x00000002;
          clientSerialNo_ = other.clientSerialNo_;
          onChanged();
        }
        if (other.hasClientOrderTime()) {
          bitField0_ |= 0x00000004;
          clientOrderTime_ = other.clientOrderTime_;
          onChanged();
        }
        if (other.hasClientType()) {
          setClientType(other.getClientType());
        }
        if (other.hasOperateType()) {
          setOperateType(other.getOperateType());
        }
        if (other.hasOldOrderId()) {
          setOldOrderId(other.getOldOrderId());
        }
        if (other.hasAccountID()) {
          setAccountID(other.getAccountID());
        }
        if (other.hasOrderSrc()) {
          setOrderSrc(other.getOrderSrc());
        }
        if (other.hasOperatorID()) {
          setOperatorID(other.getOperatorID());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.CancelOrderReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.CancelOrderReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private java.lang.Object clientSerialNo_ = "";
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return Whether the clientSerialNo field is set.
       */
      public boolean hasClientSerialNo() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return The clientSerialNo.
       */
      public java.lang.String getClientSerialNo() {
        java.lang.Object ref = clientSerialNo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientSerialNo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return The bytes for clientSerialNo.
       */
      public com.google.protobuf.ByteString
          getClientSerialNoBytes() {
        java.lang.Object ref = clientSerialNo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientSerialNo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @param value The clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSerialNo() {
        bitField0_ = (bitField0_ & ~0x00000002);
        clientSerialNo_ = getDefaultInstance().getClientSerialNo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端流水号
       * </pre>
       *
       * <code>optional string ClientSerialNo = 2;</code>
       * @param value The bytes for clientSerialNo to set.
       * @return This builder for chaining.
       */
      public Builder setClientSerialNoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clientSerialNo_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clientOrderTime_ = "";
      /**
       * <pre>
       * 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return Whether the clientOrderTime field is set.
       */
      public boolean hasClientOrderTime() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The clientOrderTime.
       */
      public java.lang.String getClientOrderTime() {
        java.lang.Object ref = clientOrderTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientOrderTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return The bytes for clientOrderTime.
       */
      public com.google.protobuf.ByteString
          getClientOrderTimeBytes() {
        java.lang.Object ref = clientOrderTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientOrderTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientOrderTime() {
        bitField0_ = (bitField0_ & ~0x00000004);
        clientOrderTime_ = getDefaultInstance().getClientOrderTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 客户端委托时间
       * </pre>
       *
       * <code>optional string ClientOrderTime = 3;</code>
       * @param value The bytes for clientOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setClientOrderTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        clientOrderTime_ = value;
        onChanged();
        return this;
      }

      private int clientType_ ;
      /**
       * <pre>
       * 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return Whether the clientType field is set.
       */
      @java.lang.Override
      public boolean hasClientType() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return The clientType.
       */
      @java.lang.Override
      public int getClientType() {
        return clientType_;
      }
      /**
       * <pre>
       * 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @param value The clientType to set.
       * @return This builder for chaining.
       */
      public Builder setClientType(int value) {
        bitField0_ |= 0x00000008;
        clientType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 终端类型
       * </pre>
       *
       * <code>optional uint32 ClientType = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        clientType_ = 0;
        onChanged();
        return this;
      }

      private int operateType_ ;
      /**
       * <pre>
       * 操作类型
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return Whether the operateType field is set.
       */
      @java.lang.Override
      public boolean hasOperateType() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * 操作类型
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return The operateType.
       */
      @java.lang.Override
      public int getOperateType() {
        return operateType_;
      }
      /**
       * <pre>
       * 操作类型
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @param value The operateType to set.
       * @return This builder for chaining.
       */
      public Builder setOperateType(int value) {
        bitField0_ |= 0x00000010;
        operateType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 操作类型
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        operateType_ = 0;
        onChanged();
        return this;
      }

      private long oldOrderId_ ;
      /**
       * <pre>
       * 原委托单号
       * </pre>
       *
       * <code>optional uint64 OldOrderId = 6;</code>
       * @return Whether the oldOrderId field is set.
       */
      @java.lang.Override
      public boolean hasOldOrderId() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * 原委托单号
       * </pre>
       *
       * <code>optional uint64 OldOrderId = 6;</code>
       * @return The oldOrderId.
       */
      @java.lang.Override
      public long getOldOrderId() {
        return oldOrderId_;
      }
      /**
       * <pre>
       * 原委托单号
       * </pre>
       *
       * <code>optional uint64 OldOrderId = 6;</code>
       * @param value The oldOrderId to set.
       * @return This builder for chaining.
       */
      public Builder setOldOrderId(long value) {
        bitField0_ |= 0x00000020;
        oldOrderId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 原委托单号
       * </pre>
       *
       * <code>optional uint64 OldOrderId = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearOldOrderId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        oldOrderId_ = 0L;
        onChanged();
        return this;
      }

      private long accountID_ ;
      /**
       * <pre>
       * 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 7;</code>
       * @return Whether the accountID field is set.
       */
      @java.lang.Override
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 7;</code>
       * @return The accountID.
       */
      @java.lang.Override
      public long getAccountID() {
        return accountID_;
      }
      /**
       * <pre>
       * 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 7;</code>
       * @param value The accountID to set.
       * @return This builder for chaining.
       */
      public Builder setAccountID(long value) {
        bitField0_ |= 0x00000040;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 交易账号
       * </pre>
       *
       * <code>optional uint64 AccountID = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        accountID_ = 0L;
        onChanged();
        return this;
      }

      private int orderSrc_ ;
      /**
       * <pre>
       * 单据来源
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 8;</code>
       * @return Whether the orderSrc field is set.
       */
      @java.lang.Override
      public boolean hasOrderSrc() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * 单据来源
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 8;</code>
       * @return The orderSrc.
       */
      @java.lang.Override
      public int getOrderSrc() {
        return orderSrc_;
      }
      /**
       * <pre>
       * 单据来源
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 8;</code>
       * @param value The orderSrc to set.
       * @return This builder for chaining.
       */
      public Builder setOrderSrc(int value) {
        bitField0_ |= 0x00000080;
        orderSrc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 单据来源
       * </pre>
       *
       * <code>optional uint32 OrderSrc = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderSrc() {
        bitField0_ = (bitField0_ & ~0x00000080);
        orderSrc_ = 0;
        onChanged();
        return this;
      }

      private long operatorID_ ;
      /**
       * <pre>
       * 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 9;</code>
       * @return Whether the operatorID field is set.
       */
      @java.lang.Override
      public boolean hasOperatorID() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 9;</code>
       * @return The operatorID.
       */
      @java.lang.Override
      public long getOperatorID() {
        return operatorID_;
      }
      /**
       * <pre>
       * 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 9;</code>
       * @param value The operatorID to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorID(long value) {
        bitField0_ |= 0x00000100;
        operatorID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 操作员账号ID
       * </pre>
       *
       * <code>optional uint64 OperatorID = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorID() {
        bitField0_ = (bitField0_ & ~0x00000100);
        operatorID_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:CancelOrderReq)
    }

    // @@protoc_insertion_point(class_scope:CancelOrderReq)
    private static final MSIM.CancelOrderReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.CancelOrderReq();
    }

    public static MSIM.CancelOrderReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<CancelOrderReq>
        PARSER = new com.google.protobuf.AbstractParser<CancelOrderReq>() {
      @java.lang.Override
      public CancelOrderReq parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CancelOrderReq(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.CancelOrderReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CancelOrderRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CancelOrderRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * 交易所操作号
     * </pre>
     *
     * <code>optional uint64 ExchActionID = 4;</code>
     * @return Whether the exchActionID field is set.
     */
    boolean hasExchActionID();
    /**
     * <pre>
     * 交易所操作号
     * </pre>
     *
     * <code>optional uint64 ExchActionID = 4;</code>
     * @return The exchActionID.
     */
    long getExchActionID();

    /**
     * <pre>
     * 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return Whether the orderTime field is set.
     */
    boolean hasOrderTime();
    /**
     * <pre>
     * 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The orderTime.
     */
    java.lang.String getOrderTime();
    /**
     * <pre>
     * 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The bytes for orderTime.
     */
    com.google.protobuf.ByteString
        getOrderTimeBytes();
  }
  /**
   * <pre>
   * 撤单应答
   * </pre>
   *
   * Protobuf type {@code CancelOrderRsp}
   */
  public static final class CancelOrderRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:CancelOrderRsp)
      CancelOrderRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CancelOrderRsp.newBuilder() to construct.
    private CancelOrderRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CancelOrderRsp() {
      retDesc_ = "";
      orderTime_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CancelOrderRsp();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CancelOrderRsp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              exchActionID_ = input.readUInt64();
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              orderTime_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return MSIM.internal_static_CancelOrderRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return MSIM.internal_static_CancelOrderRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              MSIM.CancelOrderRsp.class, MSIM.CancelOrderRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * 消息头
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * 返回码
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      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();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 描述信息
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXCHACTIONID_FIELD_NUMBER = 4;
    private long exchActionID_;
    /**
     * <pre>
     * 交易所操作号
     * </pre>
     *
     * <code>optional uint64 ExchActionID = 4;</code>
     * @return Whether the exchActionID field is set.
     */
    @java.lang.Override
    public boolean hasExchActionID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * 交易所操作号
     * </pre>
     *
     * <code>optional uint64 ExchActionID = 4;</code>
     * @return The exchActionID.
     */
    @java.lang.Override
    public long getExchActionID() {
      return exchActionID_;
    }

    public static final int ORDERTIME_FIELD_NUMBER = 5;
    private volatile java.lang.Object orderTime_;
    /**
     * <pre>
     * 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return Whether the orderTime field is set.
     */
    @java.lang.Override
    public boolean hasOrderTime() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The orderTime.
     */
    @java.lang.Override
    public java.lang.String getOrderTime() {
      java.lang.Object ref = orderTime_;
      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();
        if (bs.isValidUtf8()) {
          orderTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * 接收委托交易的时间
     * </pre>
     *
     * <code>optional string OrderTime = 5;</code>
     * @return The bytes for orderTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOrderTimeBytes() {
      java.lang.Object ref = orderTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        orderTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, exchActionID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, orderTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, exchActionID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, orderTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof MSIM.CancelOrderRsp)) {
        return super.equals(obj);
      }
      MSIM.CancelOrderRsp other = (MSIM.CancelOrderRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasExchActionID() != other.hasExchActionID()) return false;
      if (hasExchActionID()) {
        if (getExchActionID()
            != other.getExchActionID()) return false;
      }
      if (hasOrderTime() != other.hasOrderTime()) return false;
      if (hasOrderTime()) {
        if (!getOrderTime()
            .equals(other.getOrderTime())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasExchActionID()) {
        hash = (37 * hash) + EXCHACTIONID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getExchActionID());
      }
      if (hasOrderTime()) {
        hash = (37 * hash) + ORDERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getOrderTime().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static MSIM.CancelOrderRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelOrderRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelOrderRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelOrderRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelOrderRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static MSIM.CancelOrderRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static MSIM.CancelOrderRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.CancelOrderRsp 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 MSIM.CancelOrderRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static MSIM.CancelOrderRsp 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 MSIM.CancelOrderRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static MSIM.CancelOrderRsp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(MSIM.CancelOrderRsp prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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;
    }
    /**
     * <pre>
     * 撤单应答
     * </pre>
     *
     * Protobuf type {@code CancelOrderRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:CancelOrderRsp)
        MSIM.CancelOrderRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return MSIM.internal_static_CancelOrderRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return MSIM.internal_static_CancelOrderRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                MSIM.CancelOrderRsp.class, MSIM.CancelOrderRsp.Builder.class);
      }

      // Construct using MSIM.CancelOrderRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        exchActionID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        orderTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return MSIM.internal_static_CancelOrderRsp_descriptor;
      }

      @java.lang.Override
      public MSIM.CancelOrderRsp getDefaultInstanceForType() {
        return MSIM.CancelOrderRsp.getDefaultInstance();
      }

      @java.lang.Override
      public MSIM.CancelOrderRsp build() {
        MSIM.CancelOrderRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public MSIM.CancelOrderRsp buildPartial() {
        MSIM.CancelOrderRsp result = new MSIM.CancelOrderRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.exchActionID_ = exchActionID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.orderTime_ = orderTime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof MSIM.CancelOrderRsp) {
          return mergeFrom((MSIM.CancelOrderRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(MSIM.CancelOrderRsp other) {
        if (other == MSIM.CancelOrderRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasExchActionID()) {
          setExchActionID(other.getExchActionID());
        }
        if (other.hasOrderTime()) {
          bitField0_ |= 0x00000010;
          orderTime_ = other.orderTime_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        MSIM.CancelOrderRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (MSIM.CancelOrderRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * 消息头
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 返回码
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 描述信息
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long exchActionID_ ;
      /**
       * <pre>
       * 交易所操作号
       * </pre>
       *
       * <code>optional uint64 ExchActionID = 4;</code>
       * @return Whether the exchActionID field is set.
       */
      @java.lang.Override
      public boolean hasExchActionID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * 交易所操作号
       * </pre>
       *
       * <code>optional uint64 ExchActionID = 4;</code>
       * @return The exchActionID.
       */
      @java.lang.Override
      public long getExchActionID() {
        return exchActionID_;
      }
      /**
       * <pre>
       * 交易所操作号
       * </pre>
       *
       * <code>optional uint64 ExchActionID = 4;</code>
       * @param value The exchActionID to set.
       * @return This builder for chaining.
       */
      public Builder setExchActionID(long value) {
        bitField0_ |= 0x00000008;
        exchActionID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 交易所操作号
       * </pre>
       *
       * <code>optional uint64 ExchActionID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearExchActionID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        exchActionID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object orderTime_ = "";
      /**
       * <pre>
       * 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return Whether the orderTime field is set.
       */
      public boolean hasOrderTime() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return The orderTime.
       */
      public java.lang.String getOrderTime() {
        java.lang.Object ref = orderTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            orderTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return The bytes for orderTime.
       */
      public com.google.protobuf.ByteString
          getOrderTimeBytes() {
        java.lang.Object ref = orderTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          orderTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @param value The orderTime to set.
       * @return This builder for chaining.
       */
      public Builder setOrderTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        orderTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderTime() {
        bitField0_ = (bitField0_ & ~0x00000010);
        orderTime_ = getDefaultInstance().getOrderTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 接收委托交易的时间
       * </pre>
       *
       * <code>optional string OrderTime = 5;</code>
       * @param value The bytes for orderTime to set.
       * @return This builder for chaining.
       */
      public Builder setOrderTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        orderTime_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:CancelOrderRsp)
    }

    // @@protoc_insertion_point(class_scope:CancelOrderRsp)
    private static final MSIM.CancelOrderRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new MSIM.CancelOrderRsp();
    }

    public static MSIM.CancelOrderRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<CancelOrderRsp>
        PARSER = new com.google.protobuf.AbstractParser<CancelOrderRsp>() {
      @java.lang.Override
      public CancelOrderRsp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CancelOrderRsp(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public MSIM.CancelOrderRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelOrderReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelOrderReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelOrderRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelOrderRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ExternalExchangeReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ExternalExchangeReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ExternalExchangeRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ExternalExchangeRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ExternalExchange_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ExternalExchange_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GoodsGroupReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GoodsGroupReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GoodsGroupRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GoodsGroupRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GoodsGroup_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GoodsGroup_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_t2bShortMsgCheckReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_t2bShortMsgCheckReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_t2bShortMsgCheckRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_t2bShortMsgCheckRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelUnlockLockReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelUnlockLockReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelUnlockLockRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelUnlockLockRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelLockReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelLockReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelLockRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelLockRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelCancelLockReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelCancelLockReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelCancelLockRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelCancelLockRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelSPSLOrderReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelSPSLOrderReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelSPSLOrderRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelSPSLOrderRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_FuncMenuReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_FuncMenuReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_FuncMenuRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_FuncMenuRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_FuncMenu_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_FuncMenu_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_QuotesourceGroupRunQueryReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_QuotesourceGroupRunQueryReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_QuotesourceGroupRunQueryRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_QuotesourceGroupRunQueryRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_QuotesourceGroupRun_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_QuotesourceGroupRun_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_DayRun_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_DayRun_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GoodsPickupReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GoodsPickupReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GoodsPickupRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GoodsPickupRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_TakeConfirmReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_TakeConfirmReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_TakeConfirmRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_TakeConfirmRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_TakeConfirmSZDZReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_TakeConfirmSZDZReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_TakeConfirmSZDZRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_TakeConfirmSZDZRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelTradePosConvertJdpReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelTradePosConvertJdpReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelTradePosConvertJdpRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelTradePosConvertJdpRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelJdpPdConvertTradeReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelJdpPdConvertTradeReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChannelJdpPdConvertTradeRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChannelJdpPdConvertTradeRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CancelPaymentReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_CancelPaymentReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CancelPaymentRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_CancelPaymentRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_OrderReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_OrderReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CancelOrderReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_CancelOrderReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CancelOrderRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_CancelOrderRsp_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\nMSIM.proto\032\014Common.proto\"\214\004\n\017ChannelOr" +
      "derReq\022\034\n\006Header\030\001 \001(\0132\014.MessageHead\022\026\n\016" +
      "ClientSerialNo\030\002 \001(\t\022\027\n\017ClientOrderTime\030" +
      "\003 \001(\t\022\022\n\nClientType\030\004 \001(\r\022\017\n\007LoginID\030\005 \001" +
      "(\004\022\021\n\tAccountID\030\006 \001(\004\022\017\n\007GoodsID\030\007 \001(\r\022\020" +
      "\n\010MarketID\030\010 \001(\r\022\021\n\tValidType\030\t \001(\005\022\032\n\022C" +
      "hannelOperateType\030\n \001(\r\022\027\n\017ChannelOrderS" +
      "rc\030\013 \001(\r\022\021\n\tHedgeFlag\030\014 \001(\r\022\022\n\nOperatorI" +
      "D\030\r \001(\004\022\022\n\nOrderPrice\030\016 \001(\001\022\020\n\010OrderQty\030" +
      "\017 \001(\004\022\021\n\tBuyOrSell\030\020 \001(\r\022\030\n\020ChannelBuild" +
      "Type\030\021 \001(\r\022\021\n\tCloseType\030\022 \001(\r\022\021\n\tPriceMo" +
      "de\030\023 \001(\r\022\025\n\rTimeValidType\030\024 \001(\r\022\021\n\tRelat" +
      "edID\030\025 \001(\004\022\023\n\013ServiceTime\030\026 \001(\t\022\021\n\tvalid" +
      "time\030\027 \001(\t\022\025\n\rCloseTodayQty\030\030 \001(\004\"u\n\017Cha" +
      "nnelOrderRsp\022\034\n\006Header\030\001 \001(\0132\014.MessageHe" +
      "ad\022\017\n\007RetCode\030\002 \001(\005\022\017\n\007RetDesc\030\003 \001(\t\022\017\n\007" +
      "OrderID\030\004 \001(\004\022\021\n\tOrderTime\030\005 \001(\t\"D\n\023Exte" +
      "rnalExchangeReq\022\034\n\006Header\030\001 \001(\0132\014.Messag" +
      "eHead\022\017\n\007ExUTime\030\002 \001(\004\"\206\001\n\023ExternalExcha" +
      "ngeRsp\022\034\n\006Header\030\001 \001(\0132\014.MessageHead\022\017\n\007" +
      "RetCode\030\002 \001(\005\022\017\n\007RetDesc\030\003 \001(\t\022/\n\024Extern" +
      "alExchangeList\030\004 \003(\0132\021.ExternalExchange\"" +
      "i\n\020ExternalExchange\022\016\n\006AutoID\030\001 \001(\r\022\026\n\016E" +
      "xExchangeCode\030\002 \001(\t\022\026\n\016ExExchangeName\030\003 " +
      "\001(\t\022\025\n\rIsMarketPrice\030\004 \001(\t\"F\n\rGoodsGroup" +
      "Req\022\034\n\006Header\030\001 \001(\0132\014.MessageHead\022\027\n\017Goo" +
      "dsGroupUTime\030\002 \001(\004\"t\n\rGoodsGroupRsp\022\034\n\006H" +
      "eader\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCode\030\002 \001" +
      "(\005\022\017\n\007RetDesc\030\003 \001(\t\022#\n\016GoodsGroupList\030\004 " +
      "\003(\0132\013.GoodsGroup\"t\n\nGoodsGroup\022\024\n\014GoodsG" +
      "roupID\030\001 \001(\r\022\026\n\016GoodsGroupName\030\002 \001(\t\022\020\n\010" +
      "MarketID\030\003 \001(\r\022\024\n\014ExExchangeID\030\004 \001(\r\022\020\n\010" +
      "CanShort\030\005 \001(\r\"\350\001\n\023t2bShortMsgCheckReq\022\034" +
      "\n\006Header\030\001 \001(\0132\014.MessageHead\022\025\n\rextopera" +
      "torid\030\002 \002(\004\022\021\n\tCusBankID\030\003 \002(\t\022\023\n\013Accoun" +
      "tCode\030\004 \002(\t\022\016\n\006ExchId\030\005 \001(\t\022\021\n\tTradeDate" +
      "\030\006 \001(\t\022\022\n\nExchTicket\030\007 \001(\t\022\031\n\021RelatedExc" +
      "hTicket\030\010 \002(\t\022\022\n\nShortMsgId\030\t \001(\t\022\016\n\006Ext" +
      "end\030\n \001(\t\"\342\001\n\023t2bShortMsgCheckRsp\022\034\n\006Hea" +
      "der\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCode\030\002 \001(\005" +
      "\022\017\n\007RetDesc\030\003 \001(\t\022\025\n\rExtOperatorID\030\004 \001(\004" +
      "\022\016\n\006Status\030\005 \001(\005\022\016\n\006ExchId\030\006 \001(\t\022\022\n\nExch" +
      "Ticket\030\007 \001(\t\022\025\n\rCenterRetCode\030\010 \001(\t\022\025\n\rC" +
      "enterRetDesc\030\t \001(\t\022\022\n\nBankTicket\030\n \001(\t\"\225" +
      "\001\n\024ChannelUnlockLockReq\022\034\n\006Header\030\001 \001(\0132" +
      "\014.MessageHead\022\017\n\007OrderID\030\002 \001(\004\022\027\n\017Client" +
      "OrderTime\030\003 \001(\t\022\021\n\tAccountID\030\004 \001(\004\022\022\n\nOp" +
      "eratorID\030\005 \001(\004\022\016\n\006Remark\030\006 \001(\t\"g\n\024Channe" +
      "lUnlockLockRsp\022\034\n\006Header\030\001 \001(\0132\014.Message" +
      "Head\022\017\n\007RetCode\030\002 \001(\005\022\017\n\007RetDesc\030\003 \001(\t\022\017" +
      "\n\007OrderID\030\004 \001(\004\"\326\002\n\016ChannelLockReq\022\034\n\006He" +
      "ader\030\001 \001(\0132\014.MessageHead\022\026\n\016ClientSerial" +
      "No\030\002 \001(\t\022\027\n\017ClientOrderTime\030\003 \001(\t\022\022\n\nCli" +
      "entType\030\004 \001(\r\022\017\n\007LoginID\030\005 \001(\004\022\021\n\tAccoun" +
      "tID\030\006 \001(\004\022\017\n\007GoodsID\030\007 \001(\r\022\020\n\010MarketID\030\010" +
      " \001(\r\022\022\n\nOperatorID\030\t \001(\004\022\024\n\014ActiveInfoID" +
      "\030\n \001(\004\022\013\n\003Qty\030\013 \001(\004\022\022\n\nOrderPrice\030\014 \001(\001\022" +
      "\017\n\007GiftQty\030\r \001(\004\022\020\n\010StopDate\030\016 \001(\t\022\026\n\016ID" +
      "CardPhotoURL\030\017 \001(\t\022\024\n\014SignatureURL\030\020 \001(\t" +
      "\"t\n\016ChannelLockRsp\022\034\n\006Header\030\001 \001(\0132\014.Mes" +
      "sageHead\022\017\n\007RetCode\030\002 \001(\005\022\017\n\007RetDesc\030\003 \001" +
      "(\t\022\017\n\007OrderID\030\004 \001(\004\022\021\n\tOrderTime\030\005 \001(\t\"\302" +
      "\001\n\024ChannelCancelLockReq\022\034\n\006Header\030\001 \001(\0132" +
      "\014.MessageHead\022\026\n\016ClientSerialNo\030\002 \001(\t\022\027\n" +
      "\017ClientOrderTime\030\003 \001(\t\022\022\n\nClientType\030\004 \001" +
      "(\r\022\017\n\007LoginID\030\005 \001(\004\022\021\n\tAccountID\030\006 \001(\004\022\022" +
      "\n\nOperatorID\030\007 \001(\004\022\017\n\007OrderID\030\010 \001(\004\"z\n\024C" +
      "hannelCancelLockRsp\022\034\n\006Header\030\001 \001(\0132\014.Me" +
      "ssageHead\022\017\n\007RetCode\030\002 \001(\005\022\017\n\007RetDesc\030\003 " +
      "\001(\t\022\017\n\007OrderID\030\004 \001(\004\022\021\n\tOrderTime\030\005 \001(\t\"" +
      "\312\002\n\023ChannelSPSLOrderReq\022\034\n\006Header\030\001 \001(\0132" +
      "\014.MessageHead\022\022\n\nClientType\030\002 \001(\r\022\017\n\007Log" +
      "inID\030\003 \001(\004\022\021\n\tAccountID\030\004 \001(\004\022\017\n\007GoodsID" +
      "\030\005 \001(\r\022\020\n\010MarketID\030\006 \001(\r\022\021\n\tValidType\030\007 " +
      "\001(\005\022\023\n\013OperateType\030\010 \001(\r\022\020\n\010OrderSrc\030\t \001" +
      "(\r\022\020\n\010OrderQty\030\n \001(\004\022\021\n\tBuyOrSell\030\013 \001(\r\022" +
      "\021\n\tRelatedID\030\014 \001(\004\022\017\n\007SpPrice\030\r \001(\001\022\017\n\007S" +
      "lPrice\030\016 \001(\001\022\021\n\tPriceType\030\017 \001(\r\022\023\n\013Trigg" +
      "erType\030\020 \001(\r\"f\n\023ChannelSPSLOrderRsp\022\034\n\006H" +
      "eader\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCode\030\002 \001" +
      "(\005\022\017\n\007RetDesc\030\003 \001(\t\022\017\n\007OrderID\030\004 \001(\004\">\n\013" +
      "FuncMenuReq\022\034\n\006Header\030\001 \001(\0132\014.MessageHea" +
      "d\022\021\n\tMenuUTime\030\002 \001(\004\"n\n\013FuncMenuRsp\022\034\n\006H" +
      "eader\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCode\030\002 \001" +
      "(\005\022\017\n\007RetDesc\030\003 \001(\t\022\037\n\014FuncMenuList\030\004 \003(" +
      "\0132\t.FuncMenu\"o\n\010FuncMenu\022\024\n\014FuncMenuName" +
      "\030\001 \001(\t\022\024\n\014FuncMenuCode\030\002 \001(\t\022\032\n\022Parentfu" +
      "ncmenucode\030\003 \001(\t\022\033\n\010SonMenus\030\004 \003(\0132\t.Fun" +
      "cMenu\"N\n\033QuotesourceGroupRunQueryReq\022\034\n\006" +
      "Header\030\001 \001(\0132\014.MessageHead\022\021\n\tTradeDate\030" +
      "\002 \001(\t\"\247\001\n\033QuotesourceGroupRunQueryRsp\022\034\n" +
      "\006Header\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCode\030\002" +
      " \001(\005\022\017\n\007RetDesc\030\003 \001(\t\022\021\n\tTradeDate\030\004 \001(\t" +
      "\0225\n\027QuotesourceGroupRunList\030\005 \003(\0132\024.Quot" +
      "esourceGroupRun\"v\n\023QuotesourceGroupRun\022\032" +
      "\n\022QuotesourceGroupId\030\001 \001(\r\022\024\n\014GoodsGroup" +
      "Id\030\002 \001(\r\022\020\n\010MarketId\030\003 \001(\r\022\033\n\nDayRunList" +
      "\030\004 \003(\0132\007.DayRun\"}\n\006DayRun\022\024\n\014TradeWeekDa" +
      "y\030\001 \001(\r\022\017\n\007RunStep\030\002 \001(\r\022\024\n\014StartWeekDay" +
      "\030\003 \001(\r\022\021\n\tStartTime\030\004 \001(\t\022\022\n\nEndWeekDay\030" +
      "\005 \001(\r\022\017\n\007EndTime\030\006 \001(\t\"\243\002\n\016GoodsPickupRe" +
      "q\022\034\n\006Header\030\001 \001(\0132\014.MessageHead\022\021\n\tAccou" +
      "ntID\030\002 \001(\004\022\017\n\007GoodsID\030\003 \001(\r\022\013\n\003Qty\030\004 \001(\004" +
      "\022\023\n\013ReciverName\030\005 \001(\t\022\022\n\nCardTypeId\030\006 \001(" +
      "\r\022\017\n\007CardNum\030\007 \001(\t\022\020\n\010PhoneNum\030\010 \001(\t\022\020\n\010" +
      "TakeMode\030\t \001(\r\022\017\n\007Address\030\n \001(\t\022\022\n\nTakeR" +
      "emark\030\013 \001(\t\022\024\n\014ClientTicket\030\014 \001(\t\022\023\n\013Con" +
      "vertType\030\r \001(\r\022\024\n\014DstGoodsCode\030\016 \001(\t\"f\n\016" +
      "GoodsPickupRsp\022\034\n\006Header\030\001 \001(\0132\014.Message" +
      "Head\022\017\n\007RetCode\030\002 \001(\005\022\017\n\007RetDesc\030\003 \001(\t\022\024" +
      "\n\014ClientTicket\030\004 \001(\t\"[\n\016TakeConfirmReq\022\034" +
      "\n\006Header\030\001 \001(\0132\014.MessageHead\022\026\n\016ClientSe" +
      "rialID\030\002 \001(\004\022\023\n\013TakeOrderID\030\003 \001(\004\"}\n\016Tak" +
      "eConfirmRsp\022\034\n\006Header\030\001 \001(\0132\014.MessageHea" +
      "d\022\017\n\007RetCode\030\002 \001(\005\022\017\n\007RetDesc\030\003 \001(\t\022\026\n\016C" +
      "lientSerialID\030\004 \001(\004\022\023\n\013TakeOrderID\030\005 \001(\004" +
      "\"_\n\022TakeConfirmSZDZReq\022\034\n\006Header\030\001 \001(\0132\014" +
      ".MessageHead\022\026\n\016ClientSerialID\030\002 \001(\004\022\023\n\013" +
      "TakeOrderID\030\003 \001(\004\"\201\001\n\022TakeConfirmSZDZRsp" +
      "\022\034\n\006Header\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCod" +
      "e\030\002 \001(\005\022\017\n\007RetDesc\030\003 \001(\t\022\026\n\016ClientSerial" +
      "ID\030\004 \001(\004\022\023\n\013TakeOrderID\030\005 \001(\004\"\211\002\n\034Channe" +
      "lTradePosConvertJdpReq\022\034\n\006Header\030\001 \001(\0132\014" +
      ".MessageHead\022\016\n\006UserID\030\002 \001(\r\022\021\n\tAccountI" +
      "D\030\003 \001(\004\022\016\n\006Mobile\030\004 \001(\t\022\024\n\014SrcGoodsCode\030" +
      "\005 \001(\t\022\024\n\014DstGoodsCode\030\006 \001(\t\022\017\n\007GoodsID\030\007" +
      " \001(\r\022\013\n\003Qty\030\010 \001(\001\022\026\n\016ClientSerialNo\030\t \001(" +
      "\t\022\r\n\005LogID\030\n \001(\004\022\023\n\013ConvertType\030\013 \001(\r\022\022\n" +
      "\nPickupFlag\030\014 \001(\r\"\226\002\n\034ChannelTradePosCon" +
      "vertJdpRsp\022\034\n\006Header\030\001 \001(\0132\014.MessageHead" +
      "\022\017\n\007RetCode\030\002 \001(\005\022\017\n\007RetDesc\030\003 \001(\t\022\016\n\006Us" +
      "erID\030\004 \001(\r\022\021\n\tAccountID\030\005 \001(\004\022\016\n\006Mobile\030" +
      "\006 \001(\t\022\024\n\014SrcGoodsCode\030\007 \001(\t\022\024\n\014DstGoodsC" +
      "ode\030\010 \001(\t\022\017\n\007GoodsID\030\t \001(\r\022\013\n\003Qty\030\n \001(\001\022" +
      "\022\n\nConvertQty\030\013 \001(\001\022\026\n\016ClientSerialNo\030\014 " +
      "\001(\t\022\r\n\005LogID\030\r \001(\004\"\337\001\n\033ChannelJdpPdConve" +
      "rtTradeReq\022\034\n\006Header\030\001 \001(\0132\014.MessageHead" +
      "\022\016\n\006UserID\030\002 \001(\r\022\021\n\tAccountID\030\003 \001(\004\022\016\n\006M" +
      "obile\030\004 \001(\t\022\024\n\014SrcGoodsCode\030\005 \001(\t\022\024\n\014Dst" +
      "GoodsCode\030\006 \001(\t\022\017\n\007GoodsID\030\007 \001(\r\022\013\n\003Qty\030" +
      "\010 \001(\001\022\026\n\016ClientSerialNo\030\t \001(\t\022\r\n\005LogID\030\n" +
      " \001(\004\"\225\002\n\033ChannelJdpPdConvertTradeRsp\022\034\n\006" +
      "Header\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCode\030\002 " +
      "\001(\005\022\017\n\007RetDesc\030\003 \001(\t\022\016\n\006UserID\030\004 \001(\r\022\021\n\t" +
      "AccountID\030\005 \001(\004\022\016\n\006Mobile\030\006 \001(\t\022\024\n\014SrcGo" +
      "odsCode\030\007 \001(\t\022\024\n\014DstGoodsCode\030\010 \001(\t\022\017\n\007G" +
      "oodsID\030\t \001(\r\022\013\n\003Qty\030\n \001(\001\022\022\n\nConvertQty\030" +
      "\013 \001(\001\022\026\n\016ClientSerialNo\030\014 \001(\t\022\r\n\005LogID\030\r" +
      " \001(\004\"T\n\020CancelPaymentReq\022\034\n\006Header\030\001 \001(\013" +
      "2\014.MessageHead\022\017\n\007TradeID\030\002 \001(\004\022\021\n\tAccou" +
      "ntID\030\003 \001(\004\"c\n\020CancelPaymentRsp\022\034\n\006Header" +
      "\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCode\030\002 \001(\005\022\017\n" +
      "\007RetDesc\030\003 \001(\t\022\017\n\007TradeID\030\004 \001(\004\"\334\005\n\010Orde" +
      "rReq\022\034\n\006Header\030\001 \001(\0132\014.MessageHead\022\026\n\016Cl" +
      "ientSerialNo\030\002 \001(\t\022\027\n\017ClientOrderTime\030\003 " +
      "\001(\t\022\022\n\nClientType\030\004 \001(\r\022\017\n\007LoginID\030\005 \001(\004" +
      "\022\021\n\tAccountID\030\006 \001(\004\022\017\n\007GoodsID\030\007 \001(\r\022\020\n\010" +
      "MarketID\030\010 \001(\r\022\021\n\tValidType\030\t \001(\005\022\023\n\013Ope" +
      "rateType\030\n \001(\r\022\020\n\010OrderSrc\030\013 \001(\r\022\022\n\nOper" +
      "atorID\030\014 \001(\004\022\022\n\nOrderPrice\030\r \001(\001\022\024\n\014Mark" +
      "etMaxSub\030\016 \001(\001\022\020\n\010OrderQty\030\017 \001(\004\022\021\n\tBuyO" +
      "rSell\030\020 \001(\r\022\021\n\tBuildType\030\021 \001(\r\022\026\n\016CurtQu" +
      "otePrice\030\022 \001(\001\022\017\n\007SpPrice\030\023 \001(\001\022\017\n\007SlPri" +
      "ce\030\024 \001(\001\022\021\n\tPriceMode\030\025 \001(\r\022\025\n\rTimevalid" +
      "Type\030\026 \001(\r\022\023\n\013TriggerType\030\027 \001(\r\022\024\n\014Trigg" +
      "erPrice\030\030 \001(\001\022\031\n\021ListingSelectType\030\031 \001(\r" +
      "\022\025\n\rDelistingType\030\032 \001(\r\022\021\n\tRelatedID\030\033 \001" +
      "(\004\022\022\n\nOptionType\030\034 \001(\r\022\017\n\007Premium\030\035 \001(\001\022" +
      "\027\n\017TriggerOperator\030\036 \001(\r\022\023\n\013ServiceTime\030" +
      "\037 \001(\t\022\024\n\014CouponTypeID\030  \001(\004\022\017\n\007UsedQty\030!" +
      " \001(\r\022\021\n\tValidTime\030\" \001(\t\022\025\n\rReceiveInfoID" +
      "\030# \001(\004\"\325\001\n\016CancelOrderReq\022\034\n\006Header\030\001 \001(" +
      "\0132\014.MessageHead\022\026\n\016ClientSerialNo\030\002 \001(\t\022" +
      "\027\n\017ClientOrderTime\030\003 \001(\t\022\022\n\nClientType\030\004" +
      " \001(\r\022\023\n\013OperateType\030\005 \001(\r\022\022\n\nOldOrderId\030" +
      "\006 \001(\004\022\021\n\tAccountID\030\007 \001(\004\022\020\n\010OrderSrc\030\010 \001" +
      "(\r\022\022\n\nOperatorID\030\t \001(\004\"y\n\016CancelOrderRsp" +
      "\022\034\n\006Header\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCod" +
      "e\030\002 \001(\005\022\017\n\007RetDesc\030\003 \001(\t\022\024\n\014ExchActionID" +
      "\030\004 \001(\004\022\021\n\tOrderTime\030\005 \001(\t"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          cn.muchinfo.rma.protobuf.protoclasses.Common.getDescriptor(),
        });
    internal_static_ChannelOrderReq_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_ChannelOrderReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelOrderReq_descriptor,
        new java.lang.String[] { "Header", "ClientSerialNo", "ClientOrderTime", "ClientType", "LoginID", "AccountID", "GoodsID", "MarketID", "ValidType", "ChannelOperateType", "ChannelOrderSrc", "HedgeFlag", "OperatorID", "OrderPrice", "OrderQty", "BuyOrSell", "ChannelBuildType", "CloseType", "PriceMode", "TimeValidType", "RelatedID", "ServiceTime", "Validtime", "CloseTodayQty", });
    internal_static_ChannelOrderRsp_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_ChannelOrderRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelOrderRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "OrderID", "OrderTime", });
    internal_static_ExternalExchangeReq_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_ExternalExchangeReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ExternalExchangeReq_descriptor,
        new java.lang.String[] { "Header", "ExUTime", });
    internal_static_ExternalExchangeRsp_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_ExternalExchangeRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ExternalExchangeRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "ExternalExchangeList", });
    internal_static_ExternalExchange_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_ExternalExchange_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ExternalExchange_descriptor,
        new java.lang.String[] { "AutoID", "ExExchangeCode", "ExExchangeName", "IsMarketPrice", });
    internal_static_GoodsGroupReq_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_GoodsGroupReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GoodsGroupReq_descriptor,
        new java.lang.String[] { "Header", "GoodsGroupUTime", });
    internal_static_GoodsGroupRsp_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_GoodsGroupRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GoodsGroupRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "GoodsGroupList", });
    internal_static_GoodsGroup_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_GoodsGroup_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GoodsGroup_descriptor,
        new java.lang.String[] { "GoodsGroupID", "GoodsGroupName", "MarketID", "ExExchangeID", "CanShort", });
    internal_static_t2bShortMsgCheckReq_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_t2bShortMsgCheckReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_t2bShortMsgCheckReq_descriptor,
        new java.lang.String[] { "Header", "Extoperatorid", "CusBankID", "AccountCode", "ExchId", "TradeDate", "ExchTicket", "RelatedExchTicket", "ShortMsgId", "Extend", });
    internal_static_t2bShortMsgCheckRsp_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_t2bShortMsgCheckRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_t2bShortMsgCheckRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "ExtOperatorID", "Status", "ExchId", "ExchTicket", "CenterRetCode", "CenterRetDesc", "BankTicket", });
    internal_static_ChannelUnlockLockReq_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_ChannelUnlockLockReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelUnlockLockReq_descriptor,
        new java.lang.String[] { "Header", "OrderID", "ClientOrderTime", "AccountID", "OperatorID", "Remark", });
    internal_static_ChannelUnlockLockRsp_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_ChannelUnlockLockRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelUnlockLockRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "OrderID", });
    internal_static_ChannelLockReq_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_ChannelLockReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelLockReq_descriptor,
        new java.lang.String[] { "Header", "ClientSerialNo", "ClientOrderTime", "ClientType", "LoginID", "AccountID", "GoodsID", "MarketID", "OperatorID", "ActiveInfoID", "Qty", "OrderPrice", "GiftQty", "StopDate", "IDCardPhotoURL", "SignatureURL", });
    internal_static_ChannelLockRsp_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_ChannelLockRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelLockRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "OrderID", "OrderTime", });
    internal_static_ChannelCancelLockReq_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_ChannelCancelLockReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelCancelLockReq_descriptor,
        new java.lang.String[] { "Header", "ClientSerialNo", "ClientOrderTime", "ClientType", "LoginID", "AccountID", "OperatorID", "OrderID", });
    internal_static_ChannelCancelLockRsp_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_ChannelCancelLockRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelCancelLockRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "OrderID", "OrderTime", });
    internal_static_ChannelSPSLOrderReq_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_ChannelSPSLOrderReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelSPSLOrderReq_descriptor,
        new java.lang.String[] { "Header", "ClientType", "LoginID", "AccountID", "GoodsID", "MarketID", "ValidType", "OperateType", "OrderSrc", "OrderQty", "BuyOrSell", "RelatedID", "SpPrice", "SlPrice", "PriceType", "TriggerType", });
    internal_static_ChannelSPSLOrderRsp_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_ChannelSPSLOrderRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelSPSLOrderRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "OrderID", });
    internal_static_FuncMenuReq_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_FuncMenuReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_FuncMenuReq_descriptor,
        new java.lang.String[] { "Header", "MenuUTime", });
    internal_static_FuncMenuRsp_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_FuncMenuRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_FuncMenuRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "FuncMenuList", });
    internal_static_FuncMenu_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_FuncMenu_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_FuncMenu_descriptor,
        new java.lang.String[] { "FuncMenuName", "FuncMenuCode", "Parentfuncmenucode", "SonMenus", });
    internal_static_QuotesourceGroupRunQueryReq_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_QuotesourceGroupRunQueryReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_QuotesourceGroupRunQueryReq_descriptor,
        new java.lang.String[] { "Header", "TradeDate", });
    internal_static_QuotesourceGroupRunQueryRsp_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_QuotesourceGroupRunQueryRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_QuotesourceGroupRunQueryRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "TradeDate", "QuotesourceGroupRunList", });
    internal_static_QuotesourceGroupRun_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_QuotesourceGroupRun_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_QuotesourceGroupRun_descriptor,
        new java.lang.String[] { "QuotesourceGroupId", "GoodsGroupId", "MarketId", "DayRunList", });
    internal_static_DayRun_descriptor =
      getDescriptor().getMessageTypes().get(24);
    internal_static_DayRun_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_DayRun_descriptor,
        new java.lang.String[] { "TradeWeekDay", "RunStep", "StartWeekDay", "StartTime", "EndWeekDay", "EndTime", });
    internal_static_GoodsPickupReq_descriptor =
      getDescriptor().getMessageTypes().get(25);
    internal_static_GoodsPickupReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GoodsPickupReq_descriptor,
        new java.lang.String[] { "Header", "AccountID", "GoodsID", "Qty", "ReciverName", "CardTypeId", "CardNum", "PhoneNum", "TakeMode", "Address", "TakeRemark", "ClientTicket", "ConvertType", "DstGoodsCode", });
    internal_static_GoodsPickupRsp_descriptor =
      getDescriptor().getMessageTypes().get(26);
    internal_static_GoodsPickupRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GoodsPickupRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "ClientTicket", });
    internal_static_TakeConfirmReq_descriptor =
      getDescriptor().getMessageTypes().get(27);
    internal_static_TakeConfirmReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_TakeConfirmReq_descriptor,
        new java.lang.String[] { "Header", "ClientSerialID", "TakeOrderID", });
    internal_static_TakeConfirmRsp_descriptor =
      getDescriptor().getMessageTypes().get(28);
    internal_static_TakeConfirmRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_TakeConfirmRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "ClientSerialID", "TakeOrderID", });
    internal_static_TakeConfirmSZDZReq_descriptor =
      getDescriptor().getMessageTypes().get(29);
    internal_static_TakeConfirmSZDZReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_TakeConfirmSZDZReq_descriptor,
        new java.lang.String[] { "Header", "ClientSerialID", "TakeOrderID", });
    internal_static_TakeConfirmSZDZRsp_descriptor =
      getDescriptor().getMessageTypes().get(30);
    internal_static_TakeConfirmSZDZRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_TakeConfirmSZDZRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "ClientSerialID", "TakeOrderID", });
    internal_static_ChannelTradePosConvertJdpReq_descriptor =
      getDescriptor().getMessageTypes().get(31);
    internal_static_ChannelTradePosConvertJdpReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelTradePosConvertJdpReq_descriptor,
        new java.lang.String[] { "Header", "UserID", "AccountID", "Mobile", "SrcGoodsCode", "DstGoodsCode", "GoodsID", "Qty", "ClientSerialNo", "LogID", "ConvertType", "PickupFlag", });
    internal_static_ChannelTradePosConvertJdpRsp_descriptor =
      getDescriptor().getMessageTypes().get(32);
    internal_static_ChannelTradePosConvertJdpRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelTradePosConvertJdpRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "UserID", "AccountID", "Mobile", "SrcGoodsCode", "DstGoodsCode", "GoodsID", "Qty", "ConvertQty", "ClientSerialNo", "LogID", });
    internal_static_ChannelJdpPdConvertTradeReq_descriptor =
      getDescriptor().getMessageTypes().get(33);
    internal_static_ChannelJdpPdConvertTradeReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelJdpPdConvertTradeReq_descriptor,
        new java.lang.String[] { "Header", "UserID", "AccountID", "Mobile", "SrcGoodsCode", "DstGoodsCode", "GoodsID", "Qty", "ClientSerialNo", "LogID", });
    internal_static_ChannelJdpPdConvertTradeRsp_descriptor =
      getDescriptor().getMessageTypes().get(34);
    internal_static_ChannelJdpPdConvertTradeRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChannelJdpPdConvertTradeRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "UserID", "AccountID", "Mobile", "SrcGoodsCode", "DstGoodsCode", "GoodsID", "Qty", "ConvertQty", "ClientSerialNo", "LogID", });
    internal_static_CancelPaymentReq_descriptor =
      getDescriptor().getMessageTypes().get(35);
    internal_static_CancelPaymentReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_CancelPaymentReq_descriptor,
        new java.lang.String[] { "Header", "TradeID", "AccountID", });
    internal_static_CancelPaymentRsp_descriptor =
      getDescriptor().getMessageTypes().get(36);
    internal_static_CancelPaymentRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_CancelPaymentRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "TradeID", });
    internal_static_OrderReq_descriptor =
      getDescriptor().getMessageTypes().get(37);
    internal_static_OrderReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_OrderReq_descriptor,
        new java.lang.String[] { "Header", "ClientSerialNo", "ClientOrderTime", "ClientType", "LoginID", "AccountID", "GoodsID", "MarketID", "ValidType", "OperateType", "OrderSrc", "OperatorID", "OrderPrice", "MarketMaxSub", "OrderQty", "BuyOrSell", "BuildType", "CurtQuotePrice", "SpPrice", "SlPrice", "PriceMode", "TimevalidType", "TriggerType", "TriggerPrice", "ListingSelectType", "DelistingType", "RelatedID", "OptionType", "Premium", "TriggerOperator", "ServiceTime", "CouponTypeID", "UsedQty", "ValidTime", "ReceiveInfoID", });
    internal_static_CancelOrderReq_descriptor =
      getDescriptor().getMessageTypes().get(38);
    internal_static_CancelOrderReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_CancelOrderReq_descriptor,
        new java.lang.String[] { "Header", "ClientSerialNo", "ClientOrderTime", "ClientType", "OperateType", "OldOrderId", "AccountID", "OrderSrc", "OperatorID", });
    internal_static_CancelOrderRsp_descriptor =
      getDescriptor().getMessageTypes().get(39);
    internal_static_CancelOrderRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_CancelOrderRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "ExchActionID", "OrderTime", });
    cn.muchinfo.rma.protobuf.protoclasses.Common.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
