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

#include "quote/api.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG

namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;

namespace longbridgeapp {
namespace quote {
namespace v1 {
PROTOBUF_CONSTEXPR SecurityRequest::SecurityRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityRequestDefaultTypeInternal() {}
  union {
    SecurityRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityRequestDefaultTypeInternal _SecurityRequest_default_instance_;
PROTOBUF_CONSTEXPR MultiSecurityRequest::MultiSecurityRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MultiSecurityRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MultiSecurityRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MultiSecurityRequestDefaultTypeInternal() {}
  union {
    MultiSecurityRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MultiSecurityRequestDefaultTypeInternal _MultiSecurityRequest_default_instance_;
PROTOBUF_CONSTEXPR SecurityStaticInfoResponse::SecurityStaticInfoResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.secu_static_info_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityStaticInfoResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityStaticInfoResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityStaticInfoResponseDefaultTypeInternal() {}
  union {
    SecurityStaticInfoResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityStaticInfoResponseDefaultTypeInternal _SecurityStaticInfoResponse_default_instance_;
PROTOBUF_CONSTEXPR StaticInfo::StaticInfo(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.stock_derivatives_)*/{}
  , /*decltype(_impl_._stock_derivatives_cached_byte_size_)*/{0}
  , /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.name_cn_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.name_en_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.name_hk_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.listing_date_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.exchange_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.currency_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.eps_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.eps_ttm_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.bps_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.dividend_yield_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.board_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.total_shares_)*/int64_t{0}
  , /*decltype(_impl_.circulating_shares_)*/int64_t{0}
  , /*decltype(_impl_.hk_shares_)*/int64_t{0}
  , /*decltype(_impl_.lot_size_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct StaticInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR StaticInfoDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~StaticInfoDefaultTypeInternal() {}
  union {
    StaticInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 StaticInfoDefaultTypeInternal _StaticInfo_default_instance_;
PROTOBUF_CONSTEXPR SecurityQuoteResponse::SecurityQuoteResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.secu_quote_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityQuoteResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityQuoteResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityQuoteResponseDefaultTypeInternal() {}
  union {
    SecurityQuoteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityQuoteResponseDefaultTypeInternal _SecurityQuoteResponse_default_instance_;
PROTOBUF_CONSTEXPR SecurityQuote::SecurityQuote(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.last_done_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.prev_close_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.open_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.high_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.low_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.turnover_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.pre_market_quote_)*/nullptr
  , /*decltype(_impl_.post_market_quote_)*/nullptr
  , /*decltype(_impl_.timestamp_)*/int64_t{0}
  , /*decltype(_impl_.volume_)*/int64_t{0}
  , /*decltype(_impl_.trade_status_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityQuoteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityQuoteDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityQuoteDefaultTypeInternal() {}
  union {
    SecurityQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityQuoteDefaultTypeInternal _SecurityQuote_default_instance_;
PROTOBUF_CONSTEXPR PrePostQuote::PrePostQuote(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.last_done_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.turnover_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.high_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.low_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.prev_close_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.timestamp_)*/int64_t{0}
  , /*decltype(_impl_.volume_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct PrePostQuoteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PrePostQuoteDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PrePostQuoteDefaultTypeInternal() {}
  union {
    PrePostQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrePostQuoteDefaultTypeInternal _PrePostQuote_default_instance_;
PROTOBUF_CONSTEXPR OptionQuoteResponse::OptionQuoteResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.secu_quote_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OptionQuoteResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionQuoteResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionQuoteResponseDefaultTypeInternal() {}
  union {
    OptionQuoteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionQuoteResponseDefaultTypeInternal _OptionQuoteResponse_default_instance_;
PROTOBUF_CONSTEXPR OptionQuote::OptionQuote(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.last_done_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.prev_close_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.open_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.high_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.low_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.turnover_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.option_extend_)*/nullptr
  , /*decltype(_impl_.timestamp_)*/int64_t{0}
  , /*decltype(_impl_.volume_)*/int64_t{0}
  , /*decltype(_impl_.trade_status_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OptionQuoteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionQuoteDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionQuoteDefaultTypeInternal() {}
  union {
    OptionQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionQuoteDefaultTypeInternal _OptionQuote_default_instance_;
PROTOBUF_CONSTEXPR OptionExtend::OptionExtend(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.implied_volatility_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.expiry_date_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.strike_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.contract_multiplier_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.contract_type_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.contract_size_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.direction_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.historical_volatility_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.underlying_symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.open_interest_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OptionExtendDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionExtendDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionExtendDefaultTypeInternal() {}
  union {
    OptionExtend _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionExtendDefaultTypeInternal _OptionExtend_default_instance_;
PROTOBUF_CONSTEXPR WarrantQuoteResponse::WarrantQuoteResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.secu_quote_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct WarrantQuoteResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR WarrantQuoteResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~WarrantQuoteResponseDefaultTypeInternal() {}
  union {
    WarrantQuoteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 WarrantQuoteResponseDefaultTypeInternal _WarrantQuoteResponse_default_instance_;
PROTOBUF_CONSTEXPR WarrantQuote::WarrantQuote(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.last_done_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.prev_close_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.open_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.high_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.low_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.turnover_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.warrant_extend_)*/nullptr
  , /*decltype(_impl_.timestamp_)*/int64_t{0}
  , /*decltype(_impl_.volume_)*/int64_t{0}
  , /*decltype(_impl_.trade_status_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct WarrantQuoteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR WarrantQuoteDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~WarrantQuoteDefaultTypeInternal() {}
  union {
    WarrantQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 WarrantQuoteDefaultTypeInternal _WarrantQuote_default_instance_;
PROTOBUF_CONSTEXPR WarrantExtend::WarrantExtend(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.implied_volatility_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.expiry_date_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.last_trade_date_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.outstanding_ratio_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.conversion_ratio_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.category_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.strike_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.upper_strike_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.lower_strike_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.call_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.underlying_symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.outstanding_qty_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct WarrantExtendDefaultTypeInternal {
  PROTOBUF_CONSTEXPR WarrantExtendDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~WarrantExtendDefaultTypeInternal() {}
  union {
    WarrantExtend _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 WarrantExtendDefaultTypeInternal _WarrantExtend_default_instance_;
PROTOBUF_CONSTEXPR SecurityDepthResponse::SecurityDepthResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.ask_)*/{}
  , /*decltype(_impl_.bid_)*/{}
  , /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityDepthResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityDepthResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityDepthResponseDefaultTypeInternal() {}
  union {
    SecurityDepthResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityDepthResponseDefaultTypeInternal _SecurityDepthResponse_default_instance_;
PROTOBUF_CONSTEXPR Depth::Depth(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.volume_)*/int64_t{0}
  , /*decltype(_impl_.order_num_)*/int64_t{0}
  , /*decltype(_impl_.position_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct DepthDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DepthDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~DepthDefaultTypeInternal() {}
  union {
    Depth _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DepthDefaultTypeInternal _Depth_default_instance_;
PROTOBUF_CONSTEXPR SecurityBrokersResponse::SecurityBrokersResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.ask_brokers_)*/{}
  , /*decltype(_impl_.bid_brokers_)*/{}
  , /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityBrokersResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityBrokersResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityBrokersResponseDefaultTypeInternal() {}
  union {
    SecurityBrokersResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityBrokersResponseDefaultTypeInternal _SecurityBrokersResponse_default_instance_;
PROTOBUF_CONSTEXPR Brokers::Brokers(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.broker_ids_)*/{}
  , /*decltype(_impl_._broker_ids_cached_byte_size_)*/{0}
  , /*decltype(_impl_.position_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct BrokersDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BrokersDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~BrokersDefaultTypeInternal() {}
  union {
    Brokers _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BrokersDefaultTypeInternal _Brokers_default_instance_;
PROTOBUF_CONSTEXPR ParticipantBrokerIdsResponse::ParticipantBrokerIdsResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.participant_broker_numbers_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ParticipantBrokerIdsResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ParticipantBrokerIdsResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ParticipantBrokerIdsResponseDefaultTypeInternal() {}
  union {
    ParticipantBrokerIdsResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ParticipantBrokerIdsResponseDefaultTypeInternal _ParticipantBrokerIdsResponse_default_instance_;
PROTOBUF_CONSTEXPR ParticipantInfo::ParticipantInfo(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.broker_ids_)*/{}
  , /*decltype(_impl_._broker_ids_cached_byte_size_)*/{0}
  , /*decltype(_impl_.participant_name_cn_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.participant_name_en_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.participant_name_hk_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ParticipantInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ParticipantInfoDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ParticipantInfoDefaultTypeInternal() {}
  union {
    ParticipantInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ParticipantInfoDefaultTypeInternal _ParticipantInfo_default_instance_;
PROTOBUF_CONSTEXPR SecurityTradeRequest::SecurityTradeRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.count_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityTradeRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityTradeRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityTradeRequestDefaultTypeInternal() {}
  union {
    SecurityTradeRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityTradeRequestDefaultTypeInternal _SecurityTradeRequest_default_instance_;
PROTOBUF_CONSTEXPR SecurityTradeResponse::SecurityTradeResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.trades_)*/{}
  , /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityTradeResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityTradeResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityTradeResponseDefaultTypeInternal() {}
  union {
    SecurityTradeResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityTradeResponseDefaultTypeInternal _SecurityTradeResponse_default_instance_;
PROTOBUF_CONSTEXPR Trade::Trade(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.trade_type_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.volume_)*/int64_t{0}
  , /*decltype(_impl_.timestamp_)*/int64_t{0}
  , /*decltype(_impl_.direction_)*/0
  , /*decltype(_impl_.trade_session_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct TradeDefaultTypeInternal {
  PROTOBUF_CONSTEXPR TradeDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~TradeDefaultTypeInternal() {}
  union {
    Trade _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TradeDefaultTypeInternal _Trade_default_instance_;
PROTOBUF_CONSTEXPR SecurityIntradayRequest::SecurityIntradayRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityIntradayRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityIntradayRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityIntradayRequestDefaultTypeInternal() {}
  union {
    SecurityIntradayRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityIntradayRequestDefaultTypeInternal _SecurityIntradayRequest_default_instance_;
PROTOBUF_CONSTEXPR SecurityIntradayResponse::SecurityIntradayResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.lines_)*/{}
  , /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityIntradayResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityIntradayResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityIntradayResponseDefaultTypeInternal() {}
  union {
    SecurityIntradayResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityIntradayResponseDefaultTypeInternal _SecurityIntradayResponse_default_instance_;
PROTOBUF_CONSTEXPR Line::Line(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.turnover_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.avg_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.timestamp_)*/int64_t{0}
  , /*decltype(_impl_.volume_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct LineDefaultTypeInternal {
  PROTOBUF_CONSTEXPR LineDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~LineDefaultTypeInternal() {}
  union {
    Line _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 LineDefaultTypeInternal _Line_default_instance_;
PROTOBUF_CONSTEXPR SecurityCandlestickRequest::SecurityCandlestickRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.period_)*/0
  , /*decltype(_impl_.count_)*/0
  , /*decltype(_impl_.adjust_type_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityCandlestickRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityCandlestickRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityCandlestickRequestDefaultTypeInternal() {}
  union {
    SecurityCandlestickRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityCandlestickRequestDefaultTypeInternal _SecurityCandlestickRequest_default_instance_;
PROTOBUF_CONSTEXPR SecurityCandlestickResponse::SecurityCandlestickResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.candlesticks_)*/{}
  , /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityCandlestickResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityCandlestickResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityCandlestickResponseDefaultTypeInternal() {}
  union {
    SecurityCandlestickResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityCandlestickResponseDefaultTypeInternal _SecurityCandlestickResponse_default_instance_;
PROTOBUF_CONSTEXPR Candlestick::Candlestick(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.close_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.open_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.low_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.high_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.turnover_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.volume_)*/int64_t{0}
  , /*decltype(_impl_.timestamp_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct CandlestickDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CandlestickDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CandlestickDefaultTypeInternal() {}
  union {
    Candlestick _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CandlestickDefaultTypeInternal _Candlestick_default_instance_;
PROTOBUF_CONSTEXPR OptionChainDateListResponse::OptionChainDateListResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.expiry_date_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OptionChainDateListResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionChainDateListResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionChainDateListResponseDefaultTypeInternal() {}
  union {
    OptionChainDateListResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionChainDateListResponseDefaultTypeInternal _OptionChainDateListResponse_default_instance_;
PROTOBUF_CONSTEXPR OptionChainDateStrikeInfoRequest::OptionChainDateStrikeInfoRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.expiry_date_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OptionChainDateStrikeInfoRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionChainDateStrikeInfoRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionChainDateStrikeInfoRequestDefaultTypeInternal() {}
  union {
    OptionChainDateStrikeInfoRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionChainDateStrikeInfoRequestDefaultTypeInternal _OptionChainDateStrikeInfoRequest_default_instance_;
PROTOBUF_CONSTEXPR OptionChainDateStrikeInfoResponse::OptionChainDateStrikeInfoResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.strike_price_info_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OptionChainDateStrikeInfoResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionChainDateStrikeInfoResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionChainDateStrikeInfoResponseDefaultTypeInternal() {}
  union {
    OptionChainDateStrikeInfoResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionChainDateStrikeInfoResponseDefaultTypeInternal _OptionChainDateStrikeInfoResponse_default_instance_;
PROTOBUF_CONSTEXPR StrikePriceInfo::StrikePriceInfo(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.call_symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.put_symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.standard_)*/false
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct StrikePriceInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR StrikePriceInfoDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~StrikePriceInfoDefaultTypeInternal() {}
  union {
    StrikePriceInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 StrikePriceInfoDefaultTypeInternal _StrikePriceInfo_default_instance_;
PROTOBUF_CONSTEXPR IssuerInfoResponse::IssuerInfoResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.issuer_info_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct IssuerInfoResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR IssuerInfoResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~IssuerInfoResponseDefaultTypeInternal() {}
  union {
    IssuerInfoResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 IssuerInfoResponseDefaultTypeInternal _IssuerInfoResponse_default_instance_;
PROTOBUF_CONSTEXPR IssuerInfo::IssuerInfo(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.name_cn_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.name_en_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.name_hk_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.id_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct IssuerInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR IssuerInfoDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~IssuerInfoDefaultTypeInternal() {}
  union {
    IssuerInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 IssuerInfoDefaultTypeInternal _IssuerInfo_default_instance_;
PROTOBUF_CONSTEXPR WarrantFilterListRequest::WarrantFilterListRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.filter_config_)*/nullptr
  , /*decltype(_impl_.language_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct WarrantFilterListRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR WarrantFilterListRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~WarrantFilterListRequestDefaultTypeInternal() {}
  union {
    WarrantFilterListRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 WarrantFilterListRequestDefaultTypeInternal _WarrantFilterListRequest_default_instance_;
PROTOBUF_CONSTEXPR FilterConfig::FilterConfig(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.type_)*/{}
  , /*decltype(_impl_._type_cached_byte_size_)*/{0}
  , /*decltype(_impl_.issuer_)*/{}
  , /*decltype(_impl_._issuer_cached_byte_size_)*/{0}
  , /*decltype(_impl_.expiry_date_)*/{}
  , /*decltype(_impl_._expiry_date_cached_byte_size_)*/{0}
  , /*decltype(_impl_.price_type_)*/{}
  , /*decltype(_impl_._price_type_cached_byte_size_)*/{0}
  , /*decltype(_impl_.status_)*/{}
  , /*decltype(_impl_._status_cached_byte_size_)*/{0}
  , /*decltype(_impl_.sort_by_)*/0
  , /*decltype(_impl_.sort_order_)*/0
  , /*decltype(_impl_.sort_offset_)*/0
  , /*decltype(_impl_.sort_count_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct FilterConfigDefaultTypeInternal {
  PROTOBUF_CONSTEXPR FilterConfigDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~FilterConfigDefaultTypeInternal() {}
  union {
    FilterConfig _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 FilterConfigDefaultTypeInternal _FilterConfig_default_instance_;
PROTOBUF_CONSTEXPR WarrantFilterListResponse::WarrantFilterListResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.warrant_list_)*/{}
  , /*decltype(_impl_.total_count_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct WarrantFilterListResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR WarrantFilterListResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~WarrantFilterListResponseDefaultTypeInternal() {}
  union {
    WarrantFilterListResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 WarrantFilterListResponseDefaultTypeInternal _WarrantFilterListResponse_default_instance_;
PROTOBUF_CONSTEXPR FilterWarrant::FilterWarrant(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.last_done_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.change_rate_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.change_val_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.turnover_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.expiry_date_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.strike_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.upper_strike_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.lower_strike_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.outstanding_qty_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.outstanding_ratio_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.premium_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.itm_otm_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.implied_volatility_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.delta_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.call_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.to_call_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.effective_leverage_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.leverage_ratio_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.conversion_ratio_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.balance_point_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.state_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.volume_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct FilterWarrantDefaultTypeInternal {
  PROTOBUF_CONSTEXPR FilterWarrantDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~FilterWarrantDefaultTypeInternal() {}
  union {
    FilterWarrant _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 FilterWarrantDefaultTypeInternal _FilterWarrant_default_instance_;
PROTOBUF_CONSTEXPR MarketTradePeriodResponse::MarketTradePeriodResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.market_trade_session_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MarketTradePeriodResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MarketTradePeriodResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MarketTradePeriodResponseDefaultTypeInternal() {}
  union {
    MarketTradePeriodResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MarketTradePeriodResponseDefaultTypeInternal _MarketTradePeriodResponse_default_instance_;
PROTOBUF_CONSTEXPR MarketTradePeriod::MarketTradePeriod(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.trade_session_)*/{}
  , /*decltype(_impl_.market_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MarketTradePeriodDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MarketTradePeriodDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MarketTradePeriodDefaultTypeInternal() {}
  union {
    MarketTradePeriod _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MarketTradePeriodDefaultTypeInternal _MarketTradePeriod_default_instance_;
PROTOBUF_CONSTEXPR TradePeriod::TradePeriod(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.beg_time_)*/0
  , /*decltype(_impl_.end_time_)*/0
  , /*decltype(_impl_.trade_session_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct TradePeriodDefaultTypeInternal {
  PROTOBUF_CONSTEXPR TradePeriodDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~TradePeriodDefaultTypeInternal() {}
  union {
    TradePeriod _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TradePeriodDefaultTypeInternal _TradePeriod_default_instance_;
PROTOBUF_CONSTEXPR SubscriptionRequest::SubscriptionRequest(
    ::_pbi::ConstantInitialized) {}
struct SubscriptionRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubscriptionRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubscriptionRequestDefaultTypeInternal() {}
  union {
    SubscriptionRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubscriptionRequestDefaultTypeInternal _SubscriptionRequest_default_instance_;
PROTOBUF_CONSTEXPR SubscriptionResponse::SubscriptionResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.sub_list_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SubscriptionResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubscriptionResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubscriptionResponseDefaultTypeInternal() {}
  union {
    SubscriptionResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubscriptionResponseDefaultTypeInternal _SubscriptionResponse_default_instance_;
PROTOBUF_CONSTEXPR SubTypeList::SubTypeList(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.sub_type_)*/{}
  , /*decltype(_impl_._sub_type_cached_byte_size_)*/{0}
  , /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SubTypeListDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubTypeListDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubTypeListDefaultTypeInternal() {}
  union {
    SubTypeList _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubTypeListDefaultTypeInternal _SubTypeList_default_instance_;
PROTOBUF_CONSTEXPR SubscribeRequest::SubscribeRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{}
  , /*decltype(_impl_.sub_type_)*/{}
  , /*decltype(_impl_._sub_type_cached_byte_size_)*/{0}
  , /*decltype(_impl_.is_first_push_)*/false
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SubscribeRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubscribeRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubscribeRequestDefaultTypeInternal() {}
  union {
    SubscribeRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubscribeRequestDefaultTypeInternal _SubscribeRequest_default_instance_;
PROTOBUF_CONSTEXPR UnsubscribeRequest::UnsubscribeRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{}
  , /*decltype(_impl_.sub_type_)*/{}
  , /*decltype(_impl_._sub_type_cached_byte_size_)*/{0}
  , /*decltype(_impl_.unsub_all_)*/false
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct UnsubscribeRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR UnsubscribeRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~UnsubscribeRequestDefaultTypeInternal() {}
  union {
    UnsubscribeRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UnsubscribeRequestDefaultTypeInternal _UnsubscribeRequest_default_instance_;
PROTOBUF_CONSTEXPR UnsubscribeResponse::UnsubscribeResponse(
    ::_pbi::ConstantInitialized) {}
struct UnsubscribeResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR UnsubscribeResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~UnsubscribeResponseDefaultTypeInternal() {}
  union {
    UnsubscribeResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UnsubscribeResponseDefaultTypeInternal _UnsubscribeResponse_default_instance_;
PROTOBUF_CONSTEXPR PushQuote::PushQuote(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.last_done_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.open_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.high_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.low_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.turnover_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.current_turnover_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.sequence_)*/int64_t{0}
  , /*decltype(_impl_.timestamp_)*/int64_t{0}
  , /*decltype(_impl_.volume_)*/int64_t{0}
  , /*decltype(_impl_.trade_status_)*/0
  , /*decltype(_impl_.trade_session_)*/0
  , /*decltype(_impl_.current_volume_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct PushQuoteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushQuoteDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushQuoteDefaultTypeInternal() {}
  union {
    PushQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushQuoteDefaultTypeInternal _PushQuote_default_instance_;
PROTOBUF_CONSTEXPR PushDepth::PushDepth(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.ask_)*/{}
  , /*decltype(_impl_.bid_)*/{}
  , /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.sequence_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct PushDepthDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushDepthDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushDepthDefaultTypeInternal() {}
  union {
    PushDepth _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushDepthDefaultTypeInternal _PushDepth_default_instance_;
PROTOBUF_CONSTEXPR PushBrokers::PushBrokers(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.ask_brokers_)*/{}
  , /*decltype(_impl_.bid_brokers_)*/{}
  , /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.sequence_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct PushBrokersDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushBrokersDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushBrokersDefaultTypeInternal() {}
  union {
    PushBrokers _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushBrokersDefaultTypeInternal _PushBrokers_default_instance_;
PROTOBUF_CONSTEXPR PushTrade::PushTrade(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.trade_)*/{}
  , /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.sequence_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct PushTradeDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushTradeDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushTradeDefaultTypeInternal() {}
  union {
    PushTrade _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushTradeDefaultTypeInternal _PushTrade_default_instance_;
PROTOBUF_CONSTEXPR MarketTradeDayRequest::MarketTradeDayRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.market_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.beg_day_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.end_day_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MarketTradeDayRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MarketTradeDayRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MarketTradeDayRequestDefaultTypeInternal() {}
  union {
    MarketTradeDayRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MarketTradeDayRequestDefaultTypeInternal _MarketTradeDayRequest_default_instance_;
PROTOBUF_CONSTEXPR MarketTradeDayResponse::MarketTradeDayResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.trade_day_)*/{}
  , /*decltype(_impl_.half_trade_day_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MarketTradeDayResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MarketTradeDayResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MarketTradeDayResponseDefaultTypeInternal() {}
  union {
    MarketTradeDayResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MarketTradeDayResponseDefaultTypeInternal _MarketTradeDayResponse_default_instance_;
PROTOBUF_CONSTEXPR CapitalFlowIntradayRequest::CapitalFlowIntradayRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct CapitalFlowIntradayRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CapitalFlowIntradayRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CapitalFlowIntradayRequestDefaultTypeInternal() {}
  union {
    CapitalFlowIntradayRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CapitalFlowIntradayRequestDefaultTypeInternal _CapitalFlowIntradayRequest_default_instance_;
PROTOBUF_CONSTEXPR CapitalFlowIntradayResponse_CapitalFlowLine::CapitalFlowIntradayResponse_CapitalFlowLine(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.inflow_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.timestamp_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct CapitalFlowIntradayResponse_CapitalFlowLineDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CapitalFlowIntradayResponse_CapitalFlowLineDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CapitalFlowIntradayResponse_CapitalFlowLineDefaultTypeInternal() {}
  union {
    CapitalFlowIntradayResponse_CapitalFlowLine _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CapitalFlowIntradayResponse_CapitalFlowLineDefaultTypeInternal _CapitalFlowIntradayResponse_CapitalFlowLine_default_instance_;
PROTOBUF_CONSTEXPR CapitalFlowIntradayResponse::CapitalFlowIntradayResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.capital_flow_lines_)*/{}
  , /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct CapitalFlowIntradayResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CapitalFlowIntradayResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CapitalFlowIntradayResponseDefaultTypeInternal() {}
  union {
    CapitalFlowIntradayResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CapitalFlowIntradayResponseDefaultTypeInternal _CapitalFlowIntradayResponse_default_instance_;
PROTOBUF_CONSTEXPR CapitalDistributionResponse_CapitalDistribution::CapitalDistributionResponse_CapitalDistribution(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.large_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.medium_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.small_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct CapitalDistributionResponse_CapitalDistributionDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CapitalDistributionResponse_CapitalDistributionDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CapitalDistributionResponse_CapitalDistributionDefaultTypeInternal() {}
  union {
    CapitalDistributionResponse_CapitalDistribution _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CapitalDistributionResponse_CapitalDistributionDefaultTypeInternal _CapitalDistributionResponse_CapitalDistribution_default_instance_;
PROTOBUF_CONSTEXPR CapitalDistributionResponse::CapitalDistributionResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.capital_in_)*/nullptr
  , /*decltype(_impl_.capital_out_)*/nullptr
  , /*decltype(_impl_.timestamp_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct CapitalDistributionResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CapitalDistributionResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CapitalDistributionResponseDefaultTypeInternal() {}
  union {
    CapitalDistributionResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CapitalDistributionResponseDefaultTypeInternal _CapitalDistributionResponse_default_instance_;
PROTOBUF_CONSTEXPR SecurityCalcQuoteRequest::SecurityCalcQuoteRequest(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbols_)*/{}
  , /*decltype(_impl_.calc_index_)*/{}
  , /*decltype(_impl_._calc_index_cached_byte_size_)*/{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityCalcQuoteRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityCalcQuoteRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityCalcQuoteRequestDefaultTypeInternal() {}
  union {
    SecurityCalcQuoteRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityCalcQuoteRequestDefaultTypeInternal _SecurityCalcQuoteRequest_default_instance_;
PROTOBUF_CONSTEXPR SecurityCalcIndex::SecurityCalcIndex(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.symbol_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.last_done_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.change_val_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.change_rate_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.turnover_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.ytd_change_rate_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.turnover_rate_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.total_market_value_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.capital_flow_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.amplitude_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.volume_ratio_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.pe_ttm_ratio_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.pb_ratio_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.dividend_ratio_ttm_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.five_day_change_rate_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.ten_day_change_rate_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.half_year_change_rate_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.five_minutes_change_rate_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.expiry_date_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.strike_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.upper_strike_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.lower_strike_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.outstanding_ratio_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.premium_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.itm_otm_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.implied_volatility_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.warrant_delta_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.call_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.to_call_price_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.effective_leverage_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.leverage_ratio_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.conversion_ratio_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.balance_point_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.delta_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.gamma_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.theta_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.vega_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.rho_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.volume_)*/int64_t{0}
  , /*decltype(_impl_.outstanding_qty_)*/int64_t{0}
  , /*decltype(_impl_.open_interest_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityCalcIndexDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityCalcIndexDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityCalcIndexDefaultTypeInternal() {}
  union {
    SecurityCalcIndex _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityCalcIndexDefaultTypeInternal _SecurityCalcIndex_default_instance_;
PROTOBUF_CONSTEXPR SecurityCalcQuoteResponse::SecurityCalcQuoteResponse(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.security_calc_index_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SecurityCalcQuoteResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityCalcQuoteResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityCalcQuoteResponseDefaultTypeInternal() {}
  union {
    SecurityCalcQuoteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityCalcQuoteResponseDefaultTypeInternal _SecurityCalcQuoteResponse_default_instance_;
}  // namespace v1
}  // namespace quote
}  // namespace longbridgeapp
static ::_pb::Metadata file_level_metadata_quote_2fapi_2eproto[61];
static const ::_pb::EnumDescriptor* file_level_enum_descriptors_quote_2fapi_2eproto[7];
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_quote_2fapi_2eproto = nullptr;

const uint32_t TableStruct_quote_2fapi_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityRequest, _impl_.symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MultiSecurityRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MultiSecurityRequest, _impl_.symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityStaticInfoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityStaticInfoResponse, _impl_.secu_static_info_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.name_cn_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.name_en_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.name_hk_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.listing_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.exchange_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.currency_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.lot_size_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.total_shares_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.circulating_shares_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.hk_shares_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.eps_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.eps_ttm_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.bps_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.dividend_yield_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.stock_derivatives_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _impl_.board_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuoteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuoteResponse, _impl_.secu_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.prev_close_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.open_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.pre_market_quote_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _impl_.post_market_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, _impl_.last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, _impl_.timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, _impl_.volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, _impl_.turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, _impl_.high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, _impl_.low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, _impl_.prev_close_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuoteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuoteResponse, _impl_.secu_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _impl_.last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _impl_.prev_close_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _impl_.open_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _impl_.high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _impl_.low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _impl_.timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _impl_.volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _impl_.turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _impl_.trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _impl_.option_extend_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _impl_.implied_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _impl_.open_interest_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _impl_.expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _impl_.strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _impl_.contract_multiplier_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _impl_.contract_type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _impl_.contract_size_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _impl_.direction_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _impl_.historical_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _impl_.underlying_symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuoteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuoteResponse, _impl_.secu_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _impl_.last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _impl_.prev_close_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _impl_.open_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _impl_.high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _impl_.low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _impl_.timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _impl_.volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _impl_.turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _impl_.trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _impl_.warrant_extend_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.implied_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.last_trade_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.outstanding_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.outstanding_qty_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.conversion_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.category_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.upper_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.lower_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _impl_.underlying_symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityDepthResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityDepthResponse, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityDepthResponse, _impl_.ask_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityDepthResponse, _impl_.bid_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Depth, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Depth, _impl_.position_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Depth, _impl_.price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Depth, _impl_.volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Depth, _impl_.order_num_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityBrokersResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityBrokersResponse, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityBrokersResponse, _impl_.ask_brokers_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityBrokersResponse, _impl_.bid_brokers_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Brokers, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Brokers, _impl_.position_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Brokers, _impl_.broker_ids_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse, _impl_.participant_broker_numbers_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantInfo, _impl_.broker_ids_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantInfo, _impl_.participant_name_cn_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantInfo, _impl_.participant_name_en_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantInfo, _impl_.participant_name_hk_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeRequest, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeRequest, _impl_.count_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeResponse, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeResponse, _impl_.trades_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, _impl_.price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, _impl_.volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, _impl_.timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, _impl_.trade_type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, _impl_.direction_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, _impl_.trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityIntradayRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityIntradayRequest, _impl_.symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityIntradayResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityIntradayResponse, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityIntradayResponse, _impl_.lines_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, _impl_.price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, _impl_.timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, _impl_.volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, _impl_.turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, _impl_.avg_price_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickRequest, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickRequest, _impl_.period_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickRequest, _impl_.count_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickRequest, _impl_.adjust_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickResponse, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickResponse, _impl_.candlesticks_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, _impl_.close_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, _impl_.open_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, _impl_.low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, _impl_.high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, _impl_.volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, _impl_.turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, _impl_.timestamp_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateListResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateListResponse, _impl_.expiry_date_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest, _impl_.expiry_date_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse, _impl_.strike_price_info_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StrikePriceInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StrikePriceInfo, _impl_.price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StrikePriceInfo, _impl_.call_symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StrikePriceInfo, _impl_.put_symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StrikePriceInfo, _impl_.standard_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfoResponse, _impl_.issuer_info_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfo, _impl_.id_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfo, _impl_.name_cn_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfo, _impl_.name_en_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfo, _impl_.name_hk_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListRequest, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListRequest, _impl_.filter_config_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListRequest, _impl_.language_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, _impl_.sort_by_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, _impl_.sort_order_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, _impl_.sort_offset_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, _impl_.sort_count_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, _impl_.type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, _impl_.issuer_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, _impl_.expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, _impl_.price_type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, _impl_.status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListResponse, _impl_.warrant_list_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListResponse, _impl_.total_count_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.name_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.change_val_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.upper_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.lower_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.outstanding_qty_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.outstanding_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.premium_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.itm_otm_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.implied_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.delta_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.to_call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.effective_leverage_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.leverage_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.conversion_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.balance_point_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _impl_.state_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradePeriodResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradePeriodResponse, _impl_.market_trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradePeriod, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradePeriod, _impl_.market_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradePeriod, _impl_.trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::TradePeriod, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::TradePeriod, _impl_.beg_time_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::TradePeriod, _impl_.end_time_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::TradePeriod, _impl_.trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscriptionRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscriptionResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscriptionResponse, _impl_.sub_list_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubTypeList, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubTypeList, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubTypeList, _impl_.sub_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscribeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscribeRequest, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscribeRequest, _impl_.sub_type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscribeRequest, _impl_.is_first_push_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::UnsubscribeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::UnsubscribeRequest, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::UnsubscribeRequest, _impl_.sub_type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::UnsubscribeRequest, _impl_.unsub_all_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::UnsubscribeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.open_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.trade_session_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.current_volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _impl_.current_turnover_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushDepth, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushDepth, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushDepth, _impl_.sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushDepth, _impl_.ask_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushDepth, _impl_.bid_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushBrokers, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushBrokers, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushBrokers, _impl_.sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushBrokers, _impl_.ask_brokers_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushBrokers, _impl_.bid_brokers_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushTrade, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushTrade, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushTrade, _impl_.sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushTrade, _impl_.trade_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayRequest, _impl_.market_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayRequest, _impl_.beg_day_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayRequest, _impl_.end_day_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayResponse, _impl_.trade_day_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayResponse, _impl_.half_trade_day_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalFlowIntradayRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalFlowIntradayRequest, _impl_.symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine, _impl_.inflow_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine, _impl_.timestamp_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalFlowIntradayResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalFlowIntradayResponse, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalFlowIntradayResponse, _impl_.capital_flow_lines_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution, _impl_.large_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution, _impl_.medium_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution, _impl_.small_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalDistributionResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalDistributionResponse, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalDistributionResponse, _impl_.timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalDistributionResponse, _impl_.capital_in_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::CapitalDistributionResponse, _impl_.capital_out_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcQuoteRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcQuoteRequest, _impl_.symbols_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcQuoteRequest, _impl_.calc_index_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.change_val_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.ytd_change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.turnover_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.total_market_value_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.capital_flow_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.amplitude_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.volume_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.pe_ttm_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.pb_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.dividend_ratio_ttm_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.five_day_change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.ten_day_change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.half_year_change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.five_minutes_change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.upper_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.lower_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.outstanding_qty_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.outstanding_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.premium_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.itm_otm_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.implied_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.warrant_delta_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.to_call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.effective_leverage_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.leverage_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.conversion_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.balance_point_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.open_interest_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.delta_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.gamma_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.theta_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.vega_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcIndex, _impl_.rho_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcQuoteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCalcQuoteResponse, _impl_.security_calc_index_),
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityRequest)},
  { 7, -1, -1, sizeof(::longbridgeapp::quote::v1::MultiSecurityRequest)},
  { 14, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityStaticInfoResponse)},
  { 21, -1, -1, sizeof(::longbridgeapp::quote::v1::StaticInfo)},
  { 44, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityQuoteResponse)},
  { 51, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityQuote)},
  { 69, -1, -1, sizeof(::longbridgeapp::quote::v1::PrePostQuote)},
  { 82, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionQuoteResponse)},
  { 89, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionQuote)},
  { 106, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionExtend)},
  { 122, -1, -1, sizeof(::longbridgeapp::quote::v1::WarrantQuoteResponse)},
  { 129, -1, -1, sizeof(::longbridgeapp::quote::v1::WarrantQuote)},
  { 146, -1, -1, sizeof(::longbridgeapp::quote::v1::WarrantExtend)},
  { 164, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityDepthResponse)},
  { 173, -1, -1, sizeof(::longbridgeapp::quote::v1::Depth)},
  { 183, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityBrokersResponse)},
  { 192, -1, -1, sizeof(::longbridgeapp::quote::v1::Brokers)},
  { 200, -1, -1, sizeof(::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse)},
  { 207, -1, -1, sizeof(::longbridgeapp::quote::v1::ParticipantInfo)},
  { 217, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityTradeRequest)},
  { 225, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityTradeResponse)},
  { 233, -1, -1, sizeof(::longbridgeapp::quote::v1::Trade)},
  { 245, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityIntradayRequest)},
  { 252, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityIntradayResponse)},
  { 260, -1, -1, sizeof(::longbridgeapp::quote::v1::Line)},
  { 271, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityCandlestickRequest)},
  { 281, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityCandlestickResponse)},
  { 289, -1, -1, sizeof(::longbridgeapp::quote::v1::Candlestick)},
  { 302, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionChainDateListResponse)},
  { 309, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest)},
  { 317, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse)},
  { 324, -1, -1, sizeof(::longbridgeapp::quote::v1::StrikePriceInfo)},
  { 334, -1, -1, sizeof(::longbridgeapp::quote::v1::IssuerInfoResponse)},
  { 341, -1, -1, sizeof(::longbridgeapp::quote::v1::IssuerInfo)},
  { 351, -1, -1, sizeof(::longbridgeapp::quote::v1::WarrantFilterListRequest)},
  { 360, -1, -1, sizeof(::longbridgeapp::quote::v1::FilterConfig)},
  { 375, -1, -1, sizeof(::longbridgeapp::quote::v1::WarrantFilterListResponse)},
  { 383, -1, -1, sizeof(::longbridgeapp::quote::v1::FilterWarrant)},
  { 413, -1, -1, sizeof(::longbridgeapp::quote::v1::MarketTradePeriodResponse)},
  { 420, -1, -1, sizeof(::longbridgeapp::quote::v1::MarketTradePeriod)},
  { 428, -1, -1, sizeof(::longbridgeapp::quote::v1::TradePeriod)},
  { 437, -1, -1, sizeof(::longbridgeapp::quote::v1::SubscriptionRequest)},
  { 443, -1, -1, sizeof(::longbridgeapp::quote::v1::SubscriptionResponse)},
  { 450, -1, -1, sizeof(::longbridgeapp::quote::v1::SubTypeList)},
  { 458, -1, -1, sizeof(::longbridgeapp::quote::v1::SubscribeRequest)},
  { 467, -1, -1, sizeof(::longbridgeapp::quote::v1::UnsubscribeRequest)},
  { 476, -1, -1, sizeof(::longbridgeapp::quote::v1::UnsubscribeResponse)},
  { 482, -1, -1, sizeof(::longbridgeapp::quote::v1::PushQuote)},
  { 501, -1, -1, sizeof(::longbridgeapp::quote::v1::PushDepth)},
  { 511, -1, -1, sizeof(::longbridgeapp::quote::v1::PushBrokers)},
  { 521, -1, -1, sizeof(::longbridgeapp::quote::v1::PushTrade)},
  { 530, -1, -1, sizeof(::longbridgeapp::quote::v1::MarketTradeDayRequest)},
  { 539, -1, -1, sizeof(::longbridgeapp::quote::v1::MarketTradeDayResponse)},
  { 547, -1, -1, sizeof(::longbridgeapp::quote::v1::CapitalFlowIntradayRequest)},
  { 554, -1, -1, sizeof(::longbridgeapp::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine)},
  { 562, -1, -1, sizeof(::longbridgeapp::quote::v1::CapitalFlowIntradayResponse)},
  { 570, -1, -1, sizeof(::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution)},
  { 579, -1, -1, sizeof(::longbridgeapp::quote::v1::CapitalDistributionResponse)},
  { 589, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityCalcQuoteRequest)},
  { 597, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityCalcIndex)},
  { 644, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityCalcQuoteResponse)},
};

static const ::_pb::Message* const file_default_instances[] = {
  &::longbridgeapp::quote::v1::_SecurityRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_MultiSecurityRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityStaticInfoResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_StaticInfo_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityQuoteResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityQuote_default_instance_._instance,
  &::longbridgeapp::quote::v1::_PrePostQuote_default_instance_._instance,
  &::longbridgeapp::quote::v1::_OptionQuoteResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_OptionQuote_default_instance_._instance,
  &::longbridgeapp::quote::v1::_OptionExtend_default_instance_._instance,
  &::longbridgeapp::quote::v1::_WarrantQuoteResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_WarrantQuote_default_instance_._instance,
  &::longbridgeapp::quote::v1::_WarrantExtend_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityDepthResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_Depth_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityBrokersResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_Brokers_default_instance_._instance,
  &::longbridgeapp::quote::v1::_ParticipantBrokerIdsResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_ParticipantInfo_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityTradeRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityTradeResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_Trade_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityIntradayRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityIntradayResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_Line_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityCandlestickRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityCandlestickResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_Candlestick_default_instance_._instance,
  &::longbridgeapp::quote::v1::_OptionChainDateListResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_OptionChainDateStrikeInfoRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_OptionChainDateStrikeInfoResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_StrikePriceInfo_default_instance_._instance,
  &::longbridgeapp::quote::v1::_IssuerInfoResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_IssuerInfo_default_instance_._instance,
  &::longbridgeapp::quote::v1::_WarrantFilterListRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_FilterConfig_default_instance_._instance,
  &::longbridgeapp::quote::v1::_WarrantFilterListResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_FilterWarrant_default_instance_._instance,
  &::longbridgeapp::quote::v1::_MarketTradePeriodResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_MarketTradePeriod_default_instance_._instance,
  &::longbridgeapp::quote::v1::_TradePeriod_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SubscriptionRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SubscriptionResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SubTypeList_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SubscribeRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_UnsubscribeRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_UnsubscribeResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_PushQuote_default_instance_._instance,
  &::longbridgeapp::quote::v1::_PushDepth_default_instance_._instance,
  &::longbridgeapp::quote::v1::_PushBrokers_default_instance_._instance,
  &::longbridgeapp::quote::v1::_PushTrade_default_instance_._instance,
  &::longbridgeapp::quote::v1::_MarketTradeDayRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_MarketTradeDayResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_CapitalFlowIntradayRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_CapitalFlowIntradayResponse_CapitalFlowLine_default_instance_._instance,
  &::longbridgeapp::quote::v1::_CapitalFlowIntradayResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_CapitalDistributionResponse_CapitalDistribution_default_instance_._instance,
  &::longbridgeapp::quote::v1::_CapitalDistributionResponse_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityCalcQuoteRequest_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityCalcIndex_default_instance_._instance,
  &::longbridgeapp::quote::v1::_SecurityCalcQuoteResponse_default_instance_._instance,
};

const char descriptor_table_protodef_quote_2fapi_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\017quote/api.proto\022\026longbridgeapp.quote.v"
  "1\")\n\017SecurityRequest\022\026\n\006symbol\030\001 \001(\tR\006sy"
  "mbol\".\n\024MultiSecurityRequest\022\026\n\006symbol\030\001"
  " \003(\tR\006symbol\"j\n\032SecurityStaticInfoRespon"
  "se\022L\n\020secu_static_info\030\001 \003(\0132\".longbridg"
  "eapp.quote.v1.StaticInfoR\016secuStaticInfo"
  "\"\373\003\n\nStaticInfo\022\026\n\006symbol\030\001 \001(\tR\006symbol\022"
  "\027\n\007name_cn\030\002 \001(\tR\006nameCn\022\027\n\007name_en\030\003 \001("
  "\tR\006nameEn\022\027\n\007name_hk\030\004 \001(\tR\006nameHk\022!\n\014li"
  "sting_date\030\005 \001(\tR\013listingDate\022\032\n\010exchang"
  "e\030\006 \001(\tR\010exchange\022\032\n\010currency\030\007 \001(\tR\010cur"
  "rency\022\031\n\010lot_size\030\010 \001(\005R\007lotSize\022!\n\014tota"
  "l_shares\030\t \001(\003R\013totalShares\022-\n\022circulati"
  "ng_shares\030\n \001(\003R\021circulatingShares\022\033\n\thk"
  "_shares\030\013 \001(\003R\010hkShares\022\020\n\003eps\030\014 \001(\tR\003ep"
  "s\022\027\n\007eps_ttm\030\r \001(\tR\006epsTtm\022\020\n\003bps\030\016 \001(\tR"
  "\003bps\022%\n\016dividend_yield\030\017 \001(\tR\rdividendYi"
  "eld\022+\n\021stock_derivatives\030\020 \003(\005R\020stockDer"
  "ivatives\022\024\n\005board\030\021 \001(\tR\005board\"]\n\025Securi"
  "tyQuoteResponse\022D\n\nsecu_quote\030\001 \003(\0132%.lo"
  "ngbridgeapp.quote.v1.SecurityQuoteR\tsecu"
  "Quote\"\331\003\n\rSecurityQuote\022\026\n\006symbol\030\001 \001(\tR"
  "\006symbol\022\033\n\tlast_done\030\002 \001(\tR\010lastDone\022\035\n\n"
  "prev_close\030\003 \001(\tR\tprevClose\022\022\n\004open\030\004 \001("
  "\tR\004open\022\022\n\004high\030\005 \001(\tR\004high\022\020\n\003low\030\006 \001(\t"
  "R\003low\022\034\n\ttimestamp\030\007 \001(\003R\ttimestamp\022\026\n\006v"
  "olume\030\010 \001(\003R\006volume\022\032\n\010turnover\030\t \001(\tR\010t"
  "urnover\022F\n\014trade_status\030\n \001(\0162#.longbrid"
  "geapp.quote.v1.TradeStatusR\013tradeStatus\022"
  "N\n\020pre_market_quote\030\013 \001(\0132$.longbridgeap"
  "p.quote.v1.PrePostQuoteR\016preMarketQuote\022"
  "P\n\021post_market_quote\030\014 \001(\0132$.longbridgea"
  "pp.quote.v1.PrePostQuoteR\017postMarketQuot"
  "e\"\302\001\n\014PrePostQuote\022\033\n\tlast_done\030\001 \001(\tR\010l"
  "astDone\022\034\n\ttimestamp\030\002 \001(\003R\ttimestamp\022\026\n"
  "\006volume\030\003 \001(\003R\006volume\022\032\n\010turnover\030\004 \001(\tR"
  "\010turnover\022\022\n\004high\030\005 \001(\tR\004high\022\020\n\003low\030\006 \001"
  "(\tR\003low\022\035\n\nprev_close\030\007 \001(\tR\tprevClose\"Y"
  "\n\023OptionQuoteResponse\022B\n\nsecu_quote\030\001 \003("
  "\0132#.longbridgeapp.quote.v1.OptionQuoteR\t"
  "secuQuote\"\200\003\n\013OptionQuote\022\026\n\006symbol\030\001 \001("
  "\tR\006symbol\022\033\n\tlast_done\030\002 \001(\tR\010lastDone\022\035"
  "\n\nprev_close\030\003 \001(\tR\tprevClose\022\022\n\004open\030\004 "
  "\001(\tR\004open\022\022\n\004high\030\005 \001(\tR\004high\022\020\n\003low\030\006 \001"
  "(\tR\003low\022\034\n\ttimestamp\030\007 \001(\003R\ttimestamp\022\026\n"
  "\006volume\030\010 \001(\003R\006volume\022\032\n\010turnover\030\t \001(\tR"
  "\010turnover\022F\n\014trade_status\030\n \001(\0162#.longbr"
  "idgeapp.quote.v1.TradeStatusR\013tradeStatu"
  "s\022I\n\roption_extend\030\013 \001(\0132$.longbridgeapp"
  ".quote.v1.OptionExtendR\014optionExtend\"\241\003\n"
  "\014OptionExtend\022-\n\022implied_volatility\030\001 \001("
  "\tR\021impliedVolatility\022#\n\ropen_interest\030\002 "
  "\001(\003R\014openInterest\022\037\n\013expiry_date\030\003 \001(\tR\n"
  "expiryDate\022!\n\014strike_price\030\004 \001(\tR\013strike"
  "Price\022/\n\023contract_multiplier\030\005 \001(\tR\022cont"
  "ractMultiplier\022#\n\rcontract_type\030\006 \001(\tR\014c"
  "ontractType\022#\n\rcontract_size\030\007 \001(\tR\014cont"
  "ractSize\022\034\n\tdirection\030\010 \001(\tR\tdirection\0223"
  "\n\025historical_volatility\030\t \001(\tR\024historica"
  "lVolatility\022+\n\021underlying_symbol\030\n \001(\tR\020"
  "underlyingSymbol\"[\n\024WarrantQuoteResponse"
  "\022C\n\nsecu_quote\030\002 \003(\0132$.longbridgeapp.quo"
  "te.v1.WarrantQuoteR\tsecuQuote\"\204\003\n\014Warran"
  "tQuote\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\033\n\tlast_d"
  "one\030\002 \001(\tR\010lastDone\022\035\n\nprev_close\030\003 \001(\tR"
  "\tprevClose\022\022\n\004open\030\004 \001(\tR\004open\022\022\n\004high\030\005"
  " \001(\tR\004high\022\020\n\003low\030\006 \001(\tR\003low\022\034\n\ttimestam"
  "p\030\007 \001(\003R\ttimestamp\022\026\n\006volume\030\010 \001(\003R\006volu"
  "me\022\032\n\010turnover\030\t \001(\tR\010turnover\022F\n\014trade_"
  "status\030\n \001(\0162#.longbridgeapp.quote.v1.Tr"
  "adeStatusR\013tradeStatus\022L\n\016warrant_extend"
  "\030\013 \001(\0132%.longbridgeapp.quote.v1.WarrantE"
  "xtendR\rwarrantExtend\"\357\003\n\rWarrantExtend\022-"
  "\n\022implied_volatility\030\001 \001(\tR\021impliedVolat"
  "ility\022\037\n\013expiry_date\030\002 \001(\tR\nexpiryDate\022&"
  "\n\017last_trade_date\030\003 \001(\tR\rlastTradeDate\022+"
  "\n\021outstanding_ratio\030\004 \001(\tR\020outstandingRa"
  "tio\022\'\n\017outstanding_qty\030\005 \001(\003R\016outstandin"
  "gQty\022)\n\020conversion_ratio\030\006 \001(\tR\017conversi"
  "onRatio\022\032\n\010category\030\007 \001(\tR\010category\022!\n\014s"
  "trike_price\030\010 \001(\tR\013strikePrice\022,\n\022upper_"
  "strike_price\030\t \001(\tR\020upperStrikePrice\022,\n\022"
  "lower_strike_price\030\n \001(\tR\020lowerStrikePri"
  "ce\022\035\n\ncall_price\030\013 \001(\tR\tcallPrice\022+\n\021und"
  "erlying_symbol\030\014 \001(\tR\020underlyingSymbol\"\221"
  "\001\n\025SecurityDepthResponse\022\026\n\006symbol\030\001 \001(\t"
  "R\006symbol\022/\n\003ask\030\002 \003(\0132\035.longbridgeapp.qu"
  "ote.v1.DepthR\003ask\022/\n\003bid\030\003 \003(\0132\035.longbri"
  "dgeapp.quote.v1.DepthR\003bid\"n\n\005Depth\022\032\n\010p"
  "osition\030\001 \001(\005R\010position\022\024\n\005price\030\002 \001(\tR\005"
  "price\022\026\n\006volume\030\003 \001(\003R\006volume\022\033\n\torder_n"
  "um\030\004 \001(\003R\010orderNum\"\265\001\n\027SecurityBrokersRe"
  "sponse\022\026\n\006symbol\030\001 \001(\tR\006symbol\022@\n\013ask_br"
  "okers\030\002 \003(\0132\037.longbridgeapp.quote.v1.Bro"
  "kersR\naskBrokers\022@\n\013bid_brokers\030\003 \003(\0132\037."
  "longbridgeapp.quote.v1.BrokersR\nbidBroke"
  "rs\"D\n\007Brokers\022\032\n\010position\030\001 \001(\005R\010positio"
  "n\022\035\n\nbroker_ids\030\002 \003(\005R\tbrokerIds\"\205\001\n\034Par"
  "ticipantBrokerIdsResponse\022e\n\032participant"
  "_broker_numbers\030\001 \003(\0132\'.longbridgeapp.qu"
  "ote.v1.ParticipantInfoR\030participantBroke"
  "rNumbers\"\300\001\n\017ParticipantInfo\022\035\n\nbroker_i"
  "ds\030\001 \003(\005R\tbrokerIds\022.\n\023participant_name_"
  "cn\030\002 \001(\tR\021participantNameCn\022.\n\023participa"
  "nt_name_en\030\003 \001(\tR\021participantNameEn\022.\n\023p"
  "articipant_name_hk\030\004 \001(\tR\021participantNam"
  "eHk\"D\n\024SecurityTradeRequest\022\026\n\006symbol\030\001 "
  "\001(\tR\006symbol\022\024\n\005count\030\002 \001(\005R\005count\"f\n\025Sec"
  "urityTradeResponse\022\026\n\006symbol\030\001 \001(\tR\006symb"
  "ol\0225\n\006trades\030\002 \003(\0132\035.longbridgeapp.quote"
  ".v1.TradeR\006trades\"\333\001\n\005Trade\022\024\n\005price\030\001 \001"
  "(\tR\005price\022\026\n\006volume\030\002 \001(\003R\006volume\022\034\n\ttim"
  "estamp\030\003 \001(\003R\ttimestamp\022\035\n\ntrade_type\030\004 "
  "\001(\tR\ttradeType\022\034\n\tdirection\030\005 \001(\005R\tdirec"
  "tion\022I\n\rtrade_session\030\006 \001(\0162$.longbridge"
  "app.quote.v1.TradeSessionR\014tradeSession\""
  "1\n\027SecurityIntradayRequest\022\026\n\006symbol\030\001 \001"
  "(\tR\006symbol\"f\n\030SecurityIntradayResponse\022\026"
  "\n\006symbol\030\001 \001(\tR\006symbol\0222\n\005lines\030\002 \003(\0132\034."
  "longbridgeapp.quote.v1.LineR\005lines\"\213\001\n\004L"
  "ine\022\024\n\005price\030\001 \001(\tR\005price\022\034\n\ttimestamp\030\002"
  " \001(\003R\ttimestamp\022\026\n\006volume\030\003 \001(\003R\006volume\022"
  "\032\n\010turnover\030\004 \001(\tR\010turnover\022\033\n\tavg_price"
  "\030\005 \001(\tR\010avgPrice\"\307\001\n\032SecurityCandlestick"
  "Request\022\026\n\006symbol\030\001 \001(\tR\006symbol\0226\n\006perio"
  "d\030\002 \001(\0162\036.longbridgeapp.quote.v1.PeriodR"
  "\006period\022\024\n\005count\030\003 \001(\005R\005count\022C\n\013adjust_"
  "type\030\004 \001(\0162\".longbridgeapp.quote.v1.Adju"
  "stTypeR\nadjustType\"~\n\033SecurityCandlestic"
  "kResponse\022\026\n\006symbol\030\001 \001(\tR\006symbol\022G\n\014can"
  "dlesticks\030\002 \003(\0132#.longbridgeapp.quote.v1"
  ".CandlestickR\014candlesticks\"\257\001\n\013Candlesti"
  "ck\022\024\n\005close\030\001 \001(\tR\005close\022\022\n\004open\030\002 \001(\tR\004"
  "open\022\020\n\003low\030\003 \001(\tR\003low\022\022\n\004high\030\004 \001(\tR\004hi"
  "gh\022\026\n\006volume\030\005 \001(\003R\006volume\022\032\n\010turnover\030\006"
  " \001(\tR\010turnover\022\034\n\ttimestamp\030\007 \001(\003R\ttimes"
  "tamp\">\n\033OptionChainDateListResponse\022\037\n\013e"
  "xpiry_date\030\001 \003(\tR\nexpiryDate\"[\n OptionCh"
  "ainDateStrikeInfoRequest\022\026\n\006symbol\030\001 \001(\t"
  "R\006symbol\022\037\n\013expiry_date\030\002 \001(\tR\nexpiryDat"
  "e\"x\n!OptionChainDateStrikeInfoResponse\022S"
  "\n\021strike_price_info\030\001 \003(\0132\'.longbridgeap"
  "p.quote.v1.StrikePriceInfoR\017strikePriceI"
  "nfo\"\203\001\n\017StrikePriceInfo\022\024\n\005price\030\001 \001(\tR\005"
  "price\022\037\n\013call_symbol\030\002 \001(\tR\ncallSymbol\022\035"
  "\n\nput_symbol\030\003 \001(\tR\tputSymbol\022\032\n\010standar"
  "d\030\004 \001(\010R\010standard\"Y\n\022IssuerInfoResponse\022"
  "C\n\013issuer_info\030\001 \003(\0132\".longbridgeapp.quo"
  "te.v1.IssuerInfoR\nissuerInfo\"g\n\nIssuerIn"
  "fo\022\016\n\002id\030\001 \001(\005R\002id\022\027\n\007name_cn\030\002 \001(\tR\006nam"
  "eCn\022\027\n\007name_en\030\003 \001(\tR\006nameEn\022\027\n\007name_hk\030"
  "\004 \001(\tR\006nameHk\"\231\001\n\030WarrantFilterListReque"
  "st\022\026\n\006symbol\030\001 \001(\tR\006symbol\022I\n\rfilter_con"
  "fig\030\002 \001(\0132$.longbridgeapp.quote.v1.Filte"
  "rConfigR\014filterConfig\022\032\n\010language\030\003 \001(\005R"
  "\010language\"\212\002\n\014FilterConfig\022\027\n\007sort_by\030\001 "
  "\001(\005R\006sortBy\022\035\n\nsort_order\030\002 \001(\005R\tsortOrd"
  "er\022\037\n\013sort_offset\030\003 \001(\005R\nsortOffset\022\035\n\ns"
  "ort_count\030\004 \001(\005R\tsortCount\022\022\n\004type\030\005 \003(\005"
  "R\004type\022\026\n\006issuer\030\006 \003(\005R\006issuer\022\037\n\013expiry"
  "_date\030\007 \003(\005R\nexpiryDate\022\035\n\nprice_type\030\010 "
  "\003(\005R\tpriceType\022\026\n\006status\030\t \003(\005R\006status\"\206"
  "\001\n\031WarrantFilterListResponse\022H\n\014warrant_"
  "list\030\001 \003(\0132%.longbridgeapp.quote.v1.Filt"
  "erWarrantR\013warrantList\022\037\n\013total_count\030\002 "
  "\001(\005R\ntotalCount\"\271\006\n\rFilterWarrant\022\026\n\006sym"
  "bol\030\001 \001(\tR\006symbol\022\022\n\004name\030\002 \001(\tR\004name\022\033\n"
  "\tlast_done\030\003 \001(\tR\010lastDone\022\037\n\013change_rat"
  "e\030\004 \001(\tR\nchangeRate\022\035\n\nchange_val\030\005 \001(\tR"
  "\tchangeVal\022\026\n\006volume\030\006 \001(\003R\006volume\022\032\n\010tu"
  "rnover\030\007 \001(\tR\010turnover\022\037\n\013expiry_date\030\010 "
  "\001(\tR\nexpiryDate\022!\n\014strike_price\030\t \001(\tR\013s"
  "trikePrice\022,\n\022upper_strike_price\030\n \001(\tR\020"
  "upperStrikePrice\022,\n\022lower_strike_price\030\013"
  " \001(\tR\020lowerStrikePrice\022\'\n\017outstanding_qt"
  "y\030\014 \001(\tR\016outstandingQty\022+\n\021outstanding_r"
  "atio\030\r \001(\tR\020outstandingRatio\022\030\n\007premium\030"
  "\016 \001(\tR\007premium\022\027\n\007itm_otm\030\017 \001(\tR\006itmOtm\022"
  "-\n\022implied_volatility\030\020 \001(\tR\021impliedVola"
  "tility\022\024\n\005delta\030\021 \001(\tR\005delta\022\035\n\ncall_pri"
  "ce\030\022 \001(\tR\tcallPrice\022\"\n\rto_call_price\030\023 \001"
  "(\tR\013toCallPrice\022-\n\022effective_leverage\030\024 "
  "\001(\tR\021effectiveLeverage\022%\n\016leverage_ratio"
  "\030\025 \001(\tR\rleverageRatio\022)\n\020conversion_rati"
  "o\030\026 \001(\tR\017conversionRatio\022#\n\rbalance_poin"
  "t\030\027 \001(\tR\014balancePoint\022\024\n\005state\030\030 \001(\tR\005st"
  "ate\"x\n\031MarketTradePeriodResponse\022[\n\024mark"
  "et_trade_session\030\001 \003(\0132).longbridgeapp.q"
  "uote.v1.MarketTradePeriodR\022marketTradeSe"
  "ssion\"u\n\021MarketTradePeriod\022\026\n\006market\030\001 \001"
  "(\tR\006market\022H\n\rtrade_session\030\002 \003(\0132#.long"
  "bridgeapp.quote.v1.TradePeriodR\014tradeSes"
  "sion\"\216\001\n\013TradePeriod\022\031\n\010beg_time\030\001 \001(\005R\007"
  "begTime\022\031\n\010end_time\030\002 \001(\005R\007endTime\022I\n\rtr"
  "ade_session\030\003 \001(\0162$.longbridgeapp.quote."
  "v1.TradeSessionR\014tradeSession\"\025\n\023Subscri"
  "ptionRequest\"V\n\024SubscriptionResponse\022>\n\010"
  "sub_list\030\001 \003(\0132#.longbridgeapp.quote.v1."
  "SubTypeListR\007subList\"a\n\013SubTypeList\022\026\n\006s"
  "ymbol\030\001 \001(\tR\006symbol\022:\n\010sub_type\030\002 \003(\0162\037."
  "longbridgeapp.quote.v1.SubTypeR\007subType\""
  "\212\001\n\020SubscribeRequest\022\026\n\006symbol\030\001 \003(\tR\006sy"
  "mbol\022:\n\010sub_type\030\002 \003(\0162\037.longbridgeapp.q"
  "uote.v1.SubTypeR\007subType\022\"\n\ris_first_pus"
  "h\030\003 \001(\010R\013isFirstPush\"\205\001\n\022UnsubscribeRequ"
  "est\022\026\n\006symbol\030\001 \003(\tR\006symbol\022:\n\010sub_type\030"
  "\002 \003(\0162\037.longbridgeapp.quote.v1.SubTypeR\007"
  "subType\022\033\n\tunsub_all\030\003 \001(\010R\010unsubAll\"\025\n\023"
  "UnsubscribeResponse\"\315\003\n\tPushQuote\022\026\n\006sym"
  "bol\030\001 \001(\tR\006symbol\022\032\n\010sequence\030\002 \001(\003R\010seq"
  "uence\022\033\n\tlast_done\030\003 \001(\tR\010lastDone\022\022\n\004op"
  "en\030\004 \001(\tR\004open\022\022\n\004high\030\005 \001(\tR\004high\022\020\n\003lo"
  "w\030\006 \001(\tR\003low\022\034\n\ttimestamp\030\007 \001(\003R\ttimesta"
  "mp\022\026\n\006volume\030\010 \001(\003R\006volume\022\032\n\010turnover\030\t"
  " \001(\tR\010turnover\022F\n\014trade_status\030\n \001(\0162#.l"
  "ongbridgeapp.quote.v1.TradeStatusR\013trade"
  "Status\022I\n\rtrade_session\030\013 \001(\0162$.longbrid"
  "geapp.quote.v1.TradeSessionR\014tradeSessio"
  "n\022%\n\016current_volume\030\014 \001(\003R\rcurrentVolume"
  "\022)\n\020current_turnover\030\r \001(\tR\017currentTurno"
  "ver\"\241\001\n\tPushDepth\022\026\n\006symbol\030\001 \001(\tR\006symbo"
  "l\022\032\n\010sequence\030\002 \001(\003R\010sequence\022/\n\003ask\030\003 \003"
  "(\0132\035.longbridgeapp.quote.v1.DepthR\003ask\022/"
  "\n\003bid\030\004 \003(\0132\035.longbridgeapp.quote.v1.Dep"
  "thR\003bid\"\305\001\n\013PushBrokers\022\026\n\006symbol\030\001 \001(\tR"
  "\006symbol\022\032\n\010sequence\030\002 \001(\003R\010sequence\022@\n\013a"
  "sk_brokers\030\003 \003(\0132\037.longbridgeapp.quote.v"
  "1.BrokersR\naskBrokers\022@\n\013bid_brokers\030\004 \003"
  "(\0132\037.longbridgeapp.quote.v1.BrokersR\nbid"
  "Brokers\"t\n\tPushTrade\022\026\n\006symbol\030\001 \001(\tR\006sy"
  "mbol\022\032\n\010sequence\030\002 \001(\003R\010sequence\0223\n\005trad"
  "e\030\003 \003(\0132\035.longbridgeapp.quote.v1.TradeR\005"
  "trade\"a\n\025MarketTradeDayRequest\022\026\n\006market"
  "\030\001 \001(\tR\006market\022\027\n\007beg_day\030\002 \001(\tR\006begDay\022"
  "\027\n\007end_day\030\003 \001(\tR\006endDay\"[\n\026MarketTradeD"
  "ayResponse\022\033\n\ttrade_day\030\001 \003(\tR\010tradeDay\022"
  "$\n\016half_trade_day\030\002 \003(\tR\014halfTradeDay\"4\n"
  "\032CapitalFlowIntradayRequest\022\026\n\006symbol\030\001 "
  "\001(\tR\006symbol\"\361\001\n\033CapitalFlowIntradayRespo"
  "nse\022\026\n\006symbol\030\001 \001(\tR\006symbol\022q\n\022capital_f"
  "low_lines\030\002 \003(\0132C.longbridgeapp.quote.v1"
  ".CapitalFlowIntradayResponse.CapitalFlow"
  "LineR\020capitalFlowLines\032G\n\017CapitalFlowLin"
  "e\022\026\n\006inflow\030\001 \001(\tR\006inflow\022\034\n\ttimestamp\030\002"
  " \001(\003R\ttimestamp\"\200\003\n\033CapitalDistributionR"
  "esponse\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\034\n\ttimes"
  "tamp\030\002 \001(\003R\ttimestamp\022f\n\ncapital_in\030\003 \001("
  "\0132G.longbridgeapp.quote.v1.CapitalDistri"
  "butionResponse.CapitalDistributionR\tcapi"
  "talIn\022h\n\013capital_out\030\004 \001(\0132G.longbridgea"
  "pp.quote.v1.CapitalDistributionResponse."
  "CapitalDistributionR\ncapitalOut\032Y\n\023Capit"
  "alDistribution\022\024\n\005large\030\001 \001(\tR\005large\022\026\n\006"
  "medium\030\002 \001(\tR\006medium\022\024\n\005small\030\003 \001(\tR\005sma"
  "ll\"v\n\030SecurityCalcQuoteRequest\022\030\n\007symbol"
  "s\030\001 \003(\tR\007symbols\022@\n\ncalc_index\030\002 \003(\0162!.l"
  "ongbridgeapp.quote.v1.CalcIndexR\tcalcInd"
  "ex\"\305\013\n\021SecurityCalcIndex\022\026\n\006symbol\030\001 \001(\t"
  "R\006symbol\022\033\n\tlast_done\030\002 \001(\tR\010lastDone\022\035\n"
  "\nchange_val\030\003 \001(\tR\tchangeVal\022\037\n\013change_r"
  "ate\030\004 \001(\tR\nchangeRate\022\026\n\006volume\030\005 \001(\003R\006v"
  "olume\022\032\n\010turnover\030\006 \001(\tR\010turnover\022&\n\017ytd"
  "_change_rate\030\007 \001(\tR\rytdChangeRate\022#\n\rtur"
  "nover_rate\030\010 \001(\tR\014turnoverRate\022,\n\022total_"
  "market_value\030\t \001(\tR\020totalMarketValue\022!\n\014"
  "capital_flow\030\n \001(\tR\013capitalFlow\022\034\n\tampli"
  "tude\030\013 \001(\tR\tamplitude\022!\n\014volume_ratio\030\014 "
  "\001(\tR\013volumeRatio\022 \n\014pe_ttm_ratio\030\r \001(\tR\n"
  "peTtmRatio\022\031\n\010pb_ratio\030\016 \001(\tR\007pbRatio\022,\n"
  "\022dividend_ratio_ttm\030\017 \001(\tR\020dividendRatio"
  "Ttm\022/\n\024five_day_change_rate\030\020 \001(\tR\021fiveD"
  "ayChangeRate\022-\n\023ten_day_change_rate\030\021 \001("
  "\tR\020tenDayChangeRate\0221\n\025half_year_change_"
  "rate\030\022 \001(\tR\022halfYearChangeRate\0227\n\030five_m"
  "inutes_change_rate\030\023 \001(\tR\025fiveMinutesCha"
  "ngeRate\022\037\n\013expiry_date\030\024 \001(\tR\nexpiryDate"
  "\022!\n\014strike_price\030\025 \001(\tR\013strikePrice\022,\n\022u"
  "pper_strike_price\030\026 \001(\tR\020upperStrikePric"
  "e\022,\n\022lower_strike_price\030\027 \001(\tR\020lowerStri"
  "kePrice\022\'\n\017outstanding_qty\030\030 \001(\003R\016outsta"
  "ndingQty\022+\n\021outstanding_ratio\030\031 \001(\tR\020out"
  "standingRatio\022\030\n\007premium\030\032 \001(\tR\007premium\022"
  "\027\n\007itm_otm\030\033 \001(\tR\006itmOtm\022-\n\022implied_vola"
  "tility\030\034 \001(\tR\021impliedVolatility\022#\n\rwarra"
  "nt_delta\030\035 \001(\tR\014warrantDelta\022\035\n\ncall_pri"
  "ce\030\036 \001(\tR\tcallPrice\022\"\n\rto_call_price\030\037 \001"
  "(\tR\013toCallPrice\022-\n\022effective_leverage\030  "
  "\001(\tR\021effectiveLeverage\022%\n\016leverage_ratio"
  "\030! \001(\tR\rleverageRatio\022)\n\020conversion_rati"
  "o\030\" \001(\tR\017conversionRatio\022#\n\rbalance_poin"
  "t\030# \001(\tR\014balancePoint\022#\n\ropen_interest\030$"
  " \001(\003R\014openInterest\022\024\n\005delta\030% \001(\tR\005delta"
  "\022\024\n\005gamma\030& \001(\tR\005gamma\022\024\n\005theta\030\' \001(\tR\005t"
  "heta\022\022\n\004vega\030( \001(\tR\004vega\022\020\n\003rho\030) \001(\tR\003r"
  "ho\"v\n\031SecurityCalcQuoteResponse\022Y\n\023secur"
  "ity_calc_index\030\001 \003(\0132).longbridgeapp.quo"
  "te.v1.SecurityCalcIndexR\021securityCalcInd"
  "ex*\252\005\n\007Command\022\023\n\017UNKNOWN_COMMAND\020\000\022\016\n\nH"
  "EART_BEAT\020\001\022\010\n\004AUTH\020\002\022\r\n\tRECONNECT\020\003\022\020\n\014"
  "Subscription\020\005\022\r\n\tSubscribe\020\006\022\017\n\013Unsubsc"
  "ribe\020\007\022\032\n\026QueryMarketTradePeriod\020\010\022\027\n\023Qu"
  "eryMarketTradeDay\020\t\022\033\n\027QuerySecurityStat"
  "icInfo\020\n\022\026\n\022QuerySecurityQuote\020\013\022\024\n\020Quer"
  "yOptionQuote\020\014\022\025\n\021QueryWarrantQuote\020\r\022\016\n"
  "\nQueryDepth\020\016\022\020\n\014QueryBrokers\020\017\022\035\n\031Query"
  "ParticipantBrokerIds\020\020\022\016\n\nQueryTrade\020\021\022\021"
  "\n\rQueryIntraday\020\022\022\024\n\020QueryCandlestick\020\023\022"
  "\030\n\024QueryOptionChainDate\020\024\022\"\n\036QueryOption"
  "ChainDateStrikeInfo\020\025\022\032\n\026QueryWarrantIss"
  "uerInfo\020\026\022\032\n\026QueryWarrantFilterList\020\027\022\034\n"
  "\030QueryCapitalFlowIntraday\020\030\022 \n\034QueryCapi"
  "talFlowDistribution\020\031\022\032\n\026QuerySecurityCa"
  "lcIndex\020\032\022\021\n\rPushQuoteData\020e\022\021\n\rPushDept"
  "hData\020f\022\023\n\017PushBrokersData\020g\022\021\n\rPushTrad"
  "eData\020h*\302\001\n\013TradeStatus\022\n\n\006NORMAL\020\000\022\n\n\006H"
  "ALTED\020\001\022\014\n\010DELISTED\020\002\022\010\n\004FUSE\020\003\022\020\n\014PREPA"
  "RE_LIST\020\004\022\016\n\nCODE_MOVED\020\005\022\020\n\014TO_BE_OPENE"
  "D\020\006\022\025\n\021SPLIT_STOCK_HALTS\020\007\022\013\n\007EXPIRED\020\010\022"
  "\030\n\024WARRANT_PREPARE_LIST\020\t\022\021\n\rSUSPEND_TRA"
  "DE\020\n*\?\n\014TradeSession\022\020\n\014NORMAL_TRADE\020\000\022\r"
  "\n\tPRE_TRADE\020\001\022\016\n\nPOST_TRADE\020\002*/\n\nAdjustT"
  "ype\022\r\n\tNO_ADJUST\020\000\022\022\n\016FORWARD_ADJUST\020\001*\242"
  "\001\n\006Period\022\022\n\016UNKNOWN_PERIOD\020\000\022\016\n\nONE_MIN"
  "UTE\020\001\022\017\n\013FIVE_MINUTE\020\005\022\022\n\016FIFTEEN_MINUTE"
  "\020\017\022\021\n\rTHIRTY_MINUTE\020\036\022\020\n\014SIXTY_MINUTE\020<\022"
  "\010\n\003DAY\020\350\007\022\t\n\004WEEK\020\320\017\022\n\n\005MONTH\020\270\027\022\t\n\004YEAR"
  "\020\240\037*I\n\007SubType\022\020\n\014UNKNOWN_TYPE\020\000\022\t\n\005QUOT"
  "E\020\001\022\t\n\005DEPTH\020\002\022\013\n\007BROKERS\020\003\022\t\n\005TRADE\020\004*\226"
  "\t\n\tCalcIndex\022\025\n\021CALCINDEX_UNKNOWN\020\000\022\027\n\023C"
  "ALCINDEX_LAST_DONE\020\001\022\030\n\024CALCINDEX_CHANGE"
  "_VAL\020\002\022\031\n\025CALCINDEX_CHANGE_RATE\020\003\022\024\n\020CAL"
  "CINDEX_VOLUME\020\004\022\026\n\022CALCINDEX_TURNOVER\020\005\022"
  "\035\n\031CALCINDEX_YTD_CHANGE_RATE\020\006\022\033\n\027CALCIN"
  "DEX_TURNOVER_RATE\020\007\022 \n\034CALCINDEX_TOTAL_M"
  "ARKET_VALUE\020\010\022\032\n\026CALCINDEX_CAPITAL_FLOW\020"
  "\t\022\027\n\023CALCINDEX_AMPLITUDE\020\n\022\032\n\026CALCINDEX_"
  "VOLUME_RATIO\020\013\022\032\n\026CALCINDEX_PE_TTM_RATIO"
  "\020\014\022\026\n\022CALCINDEX_PB_RATIO\020\r\022 \n\034CALCINDEX_"
  "DIVIDEND_RATIO_TTM\020\016\022\"\n\036CALCINDEX_FIVE_D"
  "AY_CHANGE_RATE\020\017\022!\n\035CALCINDEX_TEN_DAY_CH"
  "ANGE_RATE\020\020\022#\n\037CALCINDEX_HALF_YEAR_CHANG"
  "E_RATE\020\021\022&\n\"CALCINDEX_FIVE_MINUTES_CHANG"
  "E_RATE\020\022\022\031\n\025CALCINDEX_EXPIRY_DATE\020\023\022\032\n\026C"
  "ALCINDEX_STRIKE_PRICE\020\024\022 \n\034CALCINDEX_UPP"
  "ER_STRIKE_PRICE\020\025\022 \n\034CALCINDEX_LOWER_STR"
  "IKE_PRICE\020\026\022\035\n\031CALCINDEX_OUTSTANDING_QTY"
  "\020\027\022\037\n\033CALCINDEX_OUTSTANDING_RATIO\020\030\022\025\n\021C"
  "ALCINDEX_PREMIUM\020\031\022\025\n\021CALCINDEX_ITM_OTM\020"
  "\032\022 \n\034CALCINDEX_IMPLIED_VOLATILITY\020\033\022\033\n\027C"
  "ALCINDEX_WARRANT_DELTA\020\034\022\030\n\024CALCINDEX_CA"
  "LL_PRICE\020\035\022\033\n\027CALCINDEX_TO_CALL_PRICE\020\036\022"
  " \n\034CALCINDEX_EFFECTIVE_LEVERAGE\020\037\022\034\n\030CAL"
  "CINDEX_LEVERAGE_RATIO\020 \022\036\n\032CALCINDEX_CON"
  "VERSION_RATIO\020!\022\033\n\027CALCINDEX_BALANCE_POI"
  "NT\020\"\022\033\n\027CALCINDEX_OPEN_INTEREST\020#\022\023\n\017CAL"
  "CINDEX_DELTA\020$\022\023\n\017CALCINDEX_GAMMA\020%\022\023\n\017C"
  "ALCINDEX_THETA\020&\022\022\n\016CALCINDEX_VEGA\020\'\022\021\n\r"
  "CALCINDEX_RHO\020(B\341\001\n\032com.longbridgeapp.qu"
  "ote.v1B\010ApiProtoP\001Z\?github.com/longbridg"
  "eapp/openapi-protobufs/gen/go/quote;quot"
  "ev1\242\002\003LQX\252\002\026Longbridgeapp.Quote.V1\312\002\026Lon"
  "gbridgeapp\\Quote\\V1\342\002\"Longbridgeapp\\Quot"
  "e\\V1\\GPBMetadata\352\002\030Longbridgeapp::Quote:"
  ":V1b\006proto3"
  ;
static ::_pbi::once_flag descriptor_table_quote_2fapi_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_quote_2fapi_2eproto = {
    false, false, 14531, descriptor_table_protodef_quote_2fapi_2eproto,
    "quote/api.proto",
    &descriptor_table_quote_2fapi_2eproto_once, nullptr, 0, 61,
    schemas, file_default_instances, TableStruct_quote_2fapi_2eproto::offsets,
    file_level_metadata_quote_2fapi_2eproto, file_level_enum_descriptors_quote_2fapi_2eproto,
    file_level_service_descriptors_quote_2fapi_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_quote_2fapi_2eproto_getter() {
  return &descriptor_table_quote_2fapi_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_quote_2fapi_2eproto(&descriptor_table_quote_2fapi_2eproto);
namespace longbridgeapp {
namespace quote {
namespace v1 {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Command_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[0];
}
bool Command_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 101:
    case 102:
    case 103:
    case 104:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TradeStatus_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[1];
}
bool TradeStatus_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TradeSession_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[2];
}
bool TradeSession_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AdjustType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[3];
}
bool AdjustType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Period_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[4];
}
bool Period_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 5:
    case 15:
    case 30:
    case 60:
    case 1000:
    case 2000:
    case 3000:
    case 4000:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SubType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[5];
}
bool SubType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CalcIndex_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[6];
}
bool CalcIndex_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      return true;
    default:
      return false;
  }
}


// ===================================================================

class SecurityRequest::_Internal {
 public:
};

SecurityRequest::SecurityRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityRequest)
}
SecurityRequest::SecurityRequest(const SecurityRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityRequest)
}

inline void SecurityRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityRequest::~SecurityRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
}

void SecurityRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityRequest)
  return target;
}

size_t SecurityRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityRequest::GetClassData() const { return &_class_data_; }


void SecurityRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityRequest*>(&to_msg);
  auto& from = static_cast<const SecurityRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityRequest::CopyFrom(const SecurityRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityRequest::IsInitialized() const {
  return true;
}

void SecurityRequest::InternalSwap(SecurityRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[0]);
}

// ===================================================================

class MultiSecurityRequest::_Internal {
 public:
};

MultiSecurityRequest::MultiSecurityRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.MultiSecurityRequest)
}
MultiSecurityRequest::MultiSecurityRequest(const MultiSecurityRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MultiSecurityRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){from._impl_.symbol_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.MultiSecurityRequest)
}

inline void MultiSecurityRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MultiSecurityRequest::~MultiSecurityRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.MultiSecurityRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void MultiSecurityRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.~RepeatedPtrField();
}

void MultiSecurityRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MultiSecurityRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.MultiSecurityRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MultiSecurityRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_symbol();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.MultiSecurityRequest.symbol"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MultiSecurityRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.MultiSecurityRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  for (int i = 0, n = this->_internal_symbol_size(); i < n; i++) {
    const auto& s = this->_internal_symbol(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MultiSecurityRequest.symbol");
    target = stream->WriteString(1, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.MultiSecurityRequest)
  return target;
}

size_t MultiSecurityRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.MultiSecurityRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.symbol_.size());
  for (int i = 0, n = _impl_.symbol_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.symbol_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MultiSecurityRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MultiSecurityRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MultiSecurityRequest::GetClassData() const { return &_class_data_; }


void MultiSecurityRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MultiSecurityRequest*>(&to_msg);
  auto& from = static_cast<const MultiSecurityRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.MultiSecurityRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.symbol_.MergeFrom(from._impl_.symbol_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MultiSecurityRequest::CopyFrom(const MultiSecurityRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.MultiSecurityRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MultiSecurityRequest::IsInitialized() const {
  return true;
}

void MultiSecurityRequest::InternalSwap(MultiSecurityRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.symbol_.InternalSwap(&other->_impl_.symbol_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MultiSecurityRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[1]);
}

// ===================================================================

class SecurityStaticInfoResponse::_Internal {
 public:
};

SecurityStaticInfoResponse::SecurityStaticInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
}
SecurityStaticInfoResponse::SecurityStaticInfoResponse(const SecurityStaticInfoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityStaticInfoResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.secu_static_info_){from._impl_.secu_static_info_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
}

inline void SecurityStaticInfoResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.secu_static_info_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

SecurityStaticInfoResponse::~SecurityStaticInfoResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityStaticInfoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.secu_static_info_.~RepeatedPtrField();
}

void SecurityStaticInfoResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityStaticInfoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.secu_static_info_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityStaticInfoResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.StaticInfo secu_static_info = 1 [json_name = "secuStaticInfo"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_static_info(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityStaticInfoResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.StaticInfo secu_static_info = 1 [json_name = "secuStaticInfo"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_secu_static_info_size()); i < n; i++) {
    const auto& repfield = this->_internal_secu_static_info(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  return target;
}

size_t SecurityStaticInfoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.StaticInfo secu_static_info = 1 [json_name = "secuStaticInfo"];
  total_size += 1UL * this->_internal_secu_static_info_size();
  for (const auto& msg : this->_impl_.secu_static_info_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityStaticInfoResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityStaticInfoResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityStaticInfoResponse::GetClassData() const { return &_class_data_; }


void SecurityStaticInfoResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityStaticInfoResponse*>(&to_msg);
  auto& from = static_cast<const SecurityStaticInfoResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.secu_static_info_.MergeFrom(from._impl_.secu_static_info_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityStaticInfoResponse::CopyFrom(const SecurityStaticInfoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityStaticInfoResponse::IsInitialized() const {
  return true;
}

void SecurityStaticInfoResponse::InternalSwap(SecurityStaticInfoResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.secu_static_info_.InternalSwap(&other->_impl_.secu_static_info_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityStaticInfoResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[2]);
}

// ===================================================================

class StaticInfo::_Internal {
 public:
};

StaticInfo::StaticInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.StaticInfo)
}
StaticInfo::StaticInfo(const StaticInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  StaticInfo* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.stock_derivatives_){from._impl_.stock_derivatives_}
    , /*decltype(_impl_._stock_derivatives_cached_byte_size_)*/{0}
    , decltype(_impl_.symbol_){}
    , decltype(_impl_.name_cn_){}
    , decltype(_impl_.name_en_){}
    , decltype(_impl_.name_hk_){}
    , decltype(_impl_.listing_date_){}
    , decltype(_impl_.exchange_){}
    , decltype(_impl_.currency_){}
    , decltype(_impl_.eps_){}
    , decltype(_impl_.eps_ttm_){}
    , decltype(_impl_.bps_){}
    , decltype(_impl_.dividend_yield_){}
    , decltype(_impl_.board_){}
    , decltype(_impl_.total_shares_){}
    , decltype(_impl_.circulating_shares_){}
    , decltype(_impl_.hk_shares_){}
    , decltype(_impl_.lot_size_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _impl_.name_cn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_cn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_cn().empty()) {
    _this->_impl_.name_cn_.Set(from._internal_name_cn(), 
      _this->GetArenaForAllocation());
  }
  _impl_.name_en_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_en_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_en().empty()) {
    _this->_impl_.name_en_.Set(from._internal_name_en(), 
      _this->GetArenaForAllocation());
  }
  _impl_.name_hk_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_hk_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_hk().empty()) {
    _this->_impl_.name_hk_.Set(from._internal_name_hk(), 
      _this->GetArenaForAllocation());
  }
  _impl_.listing_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.listing_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_listing_date().empty()) {
    _this->_impl_.listing_date_.Set(from._internal_listing_date(), 
      _this->GetArenaForAllocation());
  }
  _impl_.exchange_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.exchange_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_exchange().empty()) {
    _this->_impl_.exchange_.Set(from._internal_exchange(), 
      _this->GetArenaForAllocation());
  }
  _impl_.currency_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.currency_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_currency().empty()) {
    _this->_impl_.currency_.Set(from._internal_currency(), 
      _this->GetArenaForAllocation());
  }
  _impl_.eps_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.eps_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_eps().empty()) {
    _this->_impl_.eps_.Set(from._internal_eps(), 
      _this->GetArenaForAllocation());
  }
  _impl_.eps_ttm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.eps_ttm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_eps_ttm().empty()) {
    _this->_impl_.eps_ttm_.Set(from._internal_eps_ttm(), 
      _this->GetArenaForAllocation());
  }
  _impl_.bps_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.bps_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_bps().empty()) {
    _this->_impl_.bps_.Set(from._internal_bps(), 
      _this->GetArenaForAllocation());
  }
  _impl_.dividend_yield_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.dividend_yield_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_dividend_yield().empty()) {
    _this->_impl_.dividend_yield_.Set(from._internal_dividend_yield(), 
      _this->GetArenaForAllocation());
  }
  _impl_.board_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.board_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_board().empty()) {
    _this->_impl_.board_.Set(from._internal_board(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.total_shares_, &from._impl_.total_shares_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.lot_size_) -
    reinterpret_cast<char*>(&_impl_.total_shares_)) + sizeof(_impl_.lot_size_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.StaticInfo)
}

inline void StaticInfo::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.stock_derivatives_){arena}
    , /*decltype(_impl_._stock_derivatives_cached_byte_size_)*/{0}
    , decltype(_impl_.symbol_){}
    , decltype(_impl_.name_cn_){}
    , decltype(_impl_.name_en_){}
    , decltype(_impl_.name_hk_){}
    , decltype(_impl_.listing_date_){}
    , decltype(_impl_.exchange_){}
    , decltype(_impl_.currency_){}
    , decltype(_impl_.eps_){}
    , decltype(_impl_.eps_ttm_){}
    , decltype(_impl_.bps_){}
    , decltype(_impl_.dividend_yield_){}
    , decltype(_impl_.board_){}
    , decltype(_impl_.total_shares_){int64_t{0}}
    , decltype(_impl_.circulating_shares_){int64_t{0}}
    , decltype(_impl_.hk_shares_){int64_t{0}}
    , decltype(_impl_.lot_size_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.name_cn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_cn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.name_en_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_en_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.name_hk_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_hk_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.listing_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.listing_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.exchange_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.exchange_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.currency_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.currency_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.eps_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.eps_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.eps_ttm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.eps_ttm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.bps_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.bps_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.dividend_yield_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.dividend_yield_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.board_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.board_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

StaticInfo::~StaticInfo() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.StaticInfo)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void StaticInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.stock_derivatives_.~RepeatedField();
  _impl_.symbol_.Destroy();
  _impl_.name_cn_.Destroy();
  _impl_.name_en_.Destroy();
  _impl_.name_hk_.Destroy();
  _impl_.listing_date_.Destroy();
  _impl_.exchange_.Destroy();
  _impl_.currency_.Destroy();
  _impl_.eps_.Destroy();
  _impl_.eps_ttm_.Destroy();
  _impl_.bps_.Destroy();
  _impl_.dividend_yield_.Destroy();
  _impl_.board_.Destroy();
}

void StaticInfo::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void StaticInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.StaticInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.stock_derivatives_.Clear();
  _impl_.symbol_.ClearToEmpty();
  _impl_.name_cn_.ClearToEmpty();
  _impl_.name_en_.ClearToEmpty();
  _impl_.name_hk_.ClearToEmpty();
  _impl_.listing_date_.ClearToEmpty();
  _impl_.exchange_.ClearToEmpty();
  _impl_.currency_.ClearToEmpty();
  _impl_.eps_.ClearToEmpty();
  _impl_.eps_ttm_.ClearToEmpty();
  _impl_.bps_.ClearToEmpty();
  _impl_.dividend_yield_.ClearToEmpty();
  _impl_.board_.ClearToEmpty();
  ::memset(&_impl_.total_shares_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.lot_size_) -
      reinterpret_cast<char*>(&_impl_.total_shares_)) + sizeof(_impl_.lot_size_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* StaticInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string name_cn = 2 [json_name = "nameCn"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_name_cn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.name_cn"));
        } else
          goto handle_unusual;
        continue;
      // string name_en = 3 [json_name = "nameEn"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_name_en();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.name_en"));
        } else
          goto handle_unusual;
        continue;
      // string name_hk = 4 [json_name = "nameHk"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_name_hk();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.name_hk"));
        } else
          goto handle_unusual;
        continue;
      // string listing_date = 5 [json_name = "listingDate"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_listing_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.listing_date"));
        } else
          goto handle_unusual;
        continue;
      // string exchange = 6 [json_name = "exchange"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_exchange();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.exchange"));
        } else
          goto handle_unusual;
        continue;
      // string currency = 7 [json_name = "currency"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_currency();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.currency"));
        } else
          goto handle_unusual;
        continue;
      // int32 lot_size = 8 [json_name = "lotSize"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _impl_.lot_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 total_shares = 9 [json_name = "totalShares"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
          _impl_.total_shares_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 circulating_shares = 10 [json_name = "circulatingShares"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          _impl_.circulating_shares_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 hk_shares = 11 [json_name = "hkShares"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          _impl_.hk_shares_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string eps = 12 [json_name = "eps"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          auto str = _internal_mutable_eps();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.eps"));
        } else
          goto handle_unusual;
        continue;
      // string eps_ttm = 13 [json_name = "epsTtm"];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          auto str = _internal_mutable_eps_ttm();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.eps_ttm"));
        } else
          goto handle_unusual;
        continue;
      // string bps = 14 [json_name = "bps"];
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
          auto str = _internal_mutable_bps();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.bps"));
        } else
          goto handle_unusual;
        continue;
      // string dividend_yield = 15 [json_name = "dividendYield"];
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          auto str = _internal_mutable_dividend_yield();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.dividend_yield"));
        } else
          goto handle_unusual;
        continue;
      // repeated int32 stock_derivatives = 16 [json_name = "stockDerivatives"];
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_stock_derivatives(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 128) {
          _internal_add_stock_derivatives(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string board = 17 [json_name = "board"];
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          auto str = _internal_mutable_board();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.board"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* StaticInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.StaticInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_cn().data(), static_cast<int>(this->_internal_name_cn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.name_cn");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name_cn(), target);
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_en().data(), static_cast<int>(this->_internal_name_en().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.name_en");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_name_en(), target);
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_hk().data(), static_cast<int>(this->_internal_name_hk().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.name_hk");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_name_hk(), target);
  }

  // string listing_date = 5 [json_name = "listingDate"];
  if (!this->_internal_listing_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_listing_date().data(), static_cast<int>(this->_internal_listing_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.listing_date");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_listing_date(), target);
  }

  // string exchange = 6 [json_name = "exchange"];
  if (!this->_internal_exchange().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_exchange().data(), static_cast<int>(this->_internal_exchange().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.exchange");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_exchange(), target);
  }

  // string currency = 7 [json_name = "currency"];
  if (!this->_internal_currency().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_currency().data(), static_cast<int>(this->_internal_currency().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.currency");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_currency(), target);
  }

  // int32 lot_size = 8 [json_name = "lotSize"];
  if (this->_internal_lot_size() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(8, this->_internal_lot_size(), target);
  }

  // int64 total_shares = 9 [json_name = "totalShares"];
  if (this->_internal_total_shares() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(9, this->_internal_total_shares(), target);
  }

  // int64 circulating_shares = 10 [json_name = "circulatingShares"];
  if (this->_internal_circulating_shares() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(10, this->_internal_circulating_shares(), target);
  }

  // int64 hk_shares = 11 [json_name = "hkShares"];
  if (this->_internal_hk_shares() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(11, this->_internal_hk_shares(), target);
  }

  // string eps = 12 [json_name = "eps"];
  if (!this->_internal_eps().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_eps().data(), static_cast<int>(this->_internal_eps().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.eps");
    target = stream->WriteStringMaybeAliased(
        12, this->_internal_eps(), target);
  }

  // string eps_ttm = 13 [json_name = "epsTtm"];
  if (!this->_internal_eps_ttm().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_eps_ttm().data(), static_cast<int>(this->_internal_eps_ttm().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.eps_ttm");
    target = stream->WriteStringMaybeAliased(
        13, this->_internal_eps_ttm(), target);
  }

  // string bps = 14 [json_name = "bps"];
  if (!this->_internal_bps().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_bps().data(), static_cast<int>(this->_internal_bps().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.bps");
    target = stream->WriteStringMaybeAliased(
        14, this->_internal_bps(), target);
  }

  // string dividend_yield = 15 [json_name = "dividendYield"];
  if (!this->_internal_dividend_yield().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_dividend_yield().data(), static_cast<int>(this->_internal_dividend_yield().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.dividend_yield");
    target = stream->WriteStringMaybeAliased(
        15, this->_internal_dividend_yield(), target);
  }

  // repeated int32 stock_derivatives = 16 [json_name = "stockDerivatives"];
  {
    int byte_size = _impl_._stock_derivatives_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          16, _internal_stock_derivatives(), byte_size, target);
    }
  }

  // string board = 17 [json_name = "board"];
  if (!this->_internal_board().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_board().data(), static_cast<int>(this->_internal_board().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.board");
    target = stream->WriteStringMaybeAliased(
        17, this->_internal_board(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.StaticInfo)
  return target;
}

size_t StaticInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.StaticInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 stock_derivatives = 16 [json_name = "stockDerivatives"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.stock_derivatives_);
    if (data_size > 0) {
      total_size += 2 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._stock_derivatives_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_cn());
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_en());
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_hk());
  }

  // string listing_date = 5 [json_name = "listingDate"];
  if (!this->_internal_listing_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_listing_date());
  }

  // string exchange = 6 [json_name = "exchange"];
  if (!this->_internal_exchange().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_exchange());
  }

  // string currency = 7 [json_name = "currency"];
  if (!this->_internal_currency().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_currency());
  }

  // string eps = 12 [json_name = "eps"];
  if (!this->_internal_eps().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_eps());
  }

  // string eps_ttm = 13 [json_name = "epsTtm"];
  if (!this->_internal_eps_ttm().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_eps_ttm());
  }

  // string bps = 14 [json_name = "bps"];
  if (!this->_internal_bps().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_bps());
  }

  // string dividend_yield = 15 [json_name = "dividendYield"];
  if (!this->_internal_dividend_yield().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_dividend_yield());
  }

  // string board = 17 [json_name = "board"];
  if (!this->_internal_board().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_board());
  }

  // int64 total_shares = 9 [json_name = "totalShares"];
  if (this->_internal_total_shares() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_total_shares());
  }

  // int64 circulating_shares = 10 [json_name = "circulatingShares"];
  if (this->_internal_circulating_shares() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_circulating_shares());
  }

  // int64 hk_shares = 11 [json_name = "hkShares"];
  if (this->_internal_hk_shares() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_hk_shares());
  }

  // int32 lot_size = 8 [json_name = "lotSize"];
  if (this->_internal_lot_size() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_lot_size());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData StaticInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    StaticInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*StaticInfo::GetClassData() const { return &_class_data_; }


void StaticInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<StaticInfo*>(&to_msg);
  auto& from = static_cast<const StaticInfo&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.StaticInfo)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.stock_derivatives_.MergeFrom(from._impl_.stock_derivatives_);
  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_name_cn().empty()) {
    _this->_internal_set_name_cn(from._internal_name_cn());
  }
  if (!from._internal_name_en().empty()) {
    _this->_internal_set_name_en(from._internal_name_en());
  }
  if (!from._internal_name_hk().empty()) {
    _this->_internal_set_name_hk(from._internal_name_hk());
  }
  if (!from._internal_listing_date().empty()) {
    _this->_internal_set_listing_date(from._internal_listing_date());
  }
  if (!from._internal_exchange().empty()) {
    _this->_internal_set_exchange(from._internal_exchange());
  }
  if (!from._internal_currency().empty()) {
    _this->_internal_set_currency(from._internal_currency());
  }
  if (!from._internal_eps().empty()) {
    _this->_internal_set_eps(from._internal_eps());
  }
  if (!from._internal_eps_ttm().empty()) {
    _this->_internal_set_eps_ttm(from._internal_eps_ttm());
  }
  if (!from._internal_bps().empty()) {
    _this->_internal_set_bps(from._internal_bps());
  }
  if (!from._internal_dividend_yield().empty()) {
    _this->_internal_set_dividend_yield(from._internal_dividend_yield());
  }
  if (!from._internal_board().empty()) {
    _this->_internal_set_board(from._internal_board());
  }
  if (from._internal_total_shares() != 0) {
    _this->_internal_set_total_shares(from._internal_total_shares());
  }
  if (from._internal_circulating_shares() != 0) {
    _this->_internal_set_circulating_shares(from._internal_circulating_shares());
  }
  if (from._internal_hk_shares() != 0) {
    _this->_internal_set_hk_shares(from._internal_hk_shares());
  }
  if (from._internal_lot_size() != 0) {
    _this->_internal_set_lot_size(from._internal_lot_size());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void StaticInfo::CopyFrom(const StaticInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.StaticInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool StaticInfo::IsInitialized() const {
  return true;
}

void StaticInfo::InternalSwap(StaticInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.stock_derivatives_.InternalSwap(&other->_impl_.stock_derivatives_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_cn_, lhs_arena,
      &other->_impl_.name_cn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_en_, lhs_arena,
      &other->_impl_.name_en_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_hk_, lhs_arena,
      &other->_impl_.name_hk_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.listing_date_, lhs_arena,
      &other->_impl_.listing_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.exchange_, lhs_arena,
      &other->_impl_.exchange_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.currency_, lhs_arena,
      &other->_impl_.currency_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.eps_, lhs_arena,
      &other->_impl_.eps_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.eps_ttm_, lhs_arena,
      &other->_impl_.eps_ttm_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.bps_, lhs_arena,
      &other->_impl_.bps_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.dividend_yield_, lhs_arena,
      &other->_impl_.dividend_yield_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.board_, lhs_arena,
      &other->_impl_.board_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(StaticInfo, _impl_.lot_size_)
      + sizeof(StaticInfo::_impl_.lot_size_)
      - PROTOBUF_FIELD_OFFSET(StaticInfo, _impl_.total_shares_)>(
          reinterpret_cast<char*>(&_impl_.total_shares_),
          reinterpret_cast<char*>(&other->_impl_.total_shares_));
}

::PROTOBUF_NAMESPACE_ID::Metadata StaticInfo::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[3]);
}

// ===================================================================

class SecurityQuoteResponse::_Internal {
 public:
};

SecurityQuoteResponse::SecurityQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityQuoteResponse)
}
SecurityQuoteResponse::SecurityQuoteResponse(const SecurityQuoteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityQuoteResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.secu_quote_){from._impl_.secu_quote_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityQuoteResponse)
}

inline void SecurityQuoteResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.secu_quote_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

SecurityQuoteResponse::~SecurityQuoteResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityQuoteResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityQuoteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.secu_quote_.~RepeatedPtrField();
}

void SecurityQuoteResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityQuoteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityQuoteResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.secu_quote_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityQuoteResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.SecurityQuote secu_quote = 1 [json_name = "secuQuote"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_quote(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityQuoteResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityQuoteResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SecurityQuote secu_quote = 1 [json_name = "secuQuote"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_secu_quote_size()); i < n; i++) {
    const auto& repfield = this->_internal_secu_quote(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityQuoteResponse)
  return target;
}

size_t SecurityQuoteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityQuoteResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SecurityQuote secu_quote = 1 [json_name = "secuQuote"];
  total_size += 1UL * this->_internal_secu_quote_size();
  for (const auto& msg : this->_impl_.secu_quote_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityQuoteResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityQuoteResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityQuoteResponse::GetClassData() const { return &_class_data_; }


void SecurityQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityQuoteResponse*>(&to_msg);
  auto& from = static_cast<const SecurityQuoteResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityQuoteResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.secu_quote_.MergeFrom(from._impl_.secu_quote_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityQuoteResponse::CopyFrom(const SecurityQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityQuoteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityQuoteResponse::IsInitialized() const {
  return true;
}

void SecurityQuoteResponse::InternalSwap(SecurityQuoteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.secu_quote_.InternalSwap(&other->_impl_.secu_quote_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityQuoteResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[4]);
}

// ===================================================================

class SecurityQuote::_Internal {
 public:
  static const ::longbridgeapp::quote::v1::PrePostQuote& pre_market_quote(const SecurityQuote* msg);
  static const ::longbridgeapp::quote::v1::PrePostQuote& post_market_quote(const SecurityQuote* msg);
};

const ::longbridgeapp::quote::v1::PrePostQuote&
SecurityQuote::_Internal::pre_market_quote(const SecurityQuote* msg) {
  return *msg->_impl_.pre_market_quote_;
}
const ::longbridgeapp::quote::v1::PrePostQuote&
SecurityQuote::_Internal::post_market_quote(const SecurityQuote* msg) {
  return *msg->_impl_.post_market_quote_;
}
SecurityQuote::SecurityQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityQuote)
}
SecurityQuote::SecurityQuote(const SecurityQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityQuote* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.prev_close_){}
    , decltype(_impl_.open_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.pre_market_quote_){nullptr}
    , decltype(_impl_.post_market_quote_){nullptr}
    , decltype(_impl_.timestamp_){}
    , decltype(_impl_.volume_){}
    , decltype(_impl_.trade_status_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    _this->_impl_.last_done_.Set(from._internal_last_done(), 
      _this->GetArenaForAllocation());
  }
  _impl_.prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    _this->_impl_.prev_close_.Set(from._internal_prev_close(), 
      _this->GetArenaForAllocation());
  }
  _impl_.open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    _this->_impl_.open_.Set(from._internal_open(), 
      _this->GetArenaForAllocation());
  }
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    _this->_impl_.high_.Set(from._internal_high(), 
      _this->GetArenaForAllocation());
  }
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    _this->_impl_.low_.Set(from._internal_low(), 
      _this->GetArenaForAllocation());
  }
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    _this->_impl_.turnover_.Set(from._internal_turnover(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_pre_market_quote()) {
    _this->_impl_.pre_market_quote_ = new ::longbridgeapp::quote::v1::PrePostQuote(*from._impl_.pre_market_quote_);
  }
  if (from._internal_has_post_market_quote()) {
    _this->_impl_.post_market_quote_ = new ::longbridgeapp::quote::v1::PrePostQuote(*from._impl_.post_market_quote_);
  }
  ::memcpy(&_impl_.timestamp_, &from._impl_.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.trade_status_) -
    reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.trade_status_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityQuote)
}

inline void SecurityQuote::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.prev_close_){}
    , decltype(_impl_.open_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.pre_market_quote_){nullptr}
    , decltype(_impl_.post_market_quote_){nullptr}
    , decltype(_impl_.timestamp_){int64_t{0}}
    , decltype(_impl_.volume_){int64_t{0}}
    , decltype(_impl_.trade_status_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityQuote::~SecurityQuote() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityQuote)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
  _impl_.last_done_.Destroy();
  _impl_.prev_close_.Destroy();
  _impl_.open_.Destroy();
  _impl_.high_.Destroy();
  _impl_.low_.Destroy();
  _impl_.turnover_.Destroy();
  if (this != internal_default_instance()) delete _impl_.pre_market_quote_;
  if (this != internal_default_instance()) delete _impl_.post_market_quote_;
}

void SecurityQuote::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  _impl_.last_done_.ClearToEmpty();
  _impl_.prev_close_.ClearToEmpty();
  _impl_.open_.ClearToEmpty();
  _impl_.high_.ClearToEmpty();
  _impl_.low_.ClearToEmpty();
  _impl_.turnover_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && _impl_.pre_market_quote_ != nullptr) {
    delete _impl_.pre_market_quote_;
  }
  _impl_.pre_market_quote_ = nullptr;
  if (GetArenaForAllocation() == nullptr && _impl_.post_market_quote_ != nullptr) {
    delete _impl_.post_market_quote_;
  }
  _impl_.post_market_quote_ = nullptr;
  ::memset(&_impl_.timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.trade_status_) -
      reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.trade_status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityQuote::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string last_done = 2 [json_name = "lastDone"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 3 [json_name = "prevClose"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.prev_close"));
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.open"));
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.high"));
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.low"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          _impl_.timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _impl_.volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.turnover"));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridgeapp::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.PrePostQuote pre_market_quote = 11 [json_name = "preMarketQuote"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_pre_market_quote(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.PrePostQuote post_market_quote = 12 [json_name = "postMarketQuote"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_post_market_quote(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_last_done(), target);
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_prev_close(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridgeapp.quote.v1.PrePostQuote pre_market_quote = 11 [json_name = "preMarketQuote"];
  if (this->_internal_has_pre_market_quote()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(11, _Internal::pre_market_quote(this),
        _Internal::pre_market_quote(this).GetCachedSize(), target, stream);
  }

  // .longbridgeapp.quote.v1.PrePostQuote post_market_quote = 12 [json_name = "postMarketQuote"];
  if (this->_internal_has_post_market_quote()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(12, _Internal::post_market_quote(this),
        _Internal::post_market_quote(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityQuote)
  return target;
}

size_t SecurityQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // .longbridgeapp.quote.v1.PrePostQuote pre_market_quote = 11 [json_name = "preMarketQuote"];
  if (this->_internal_has_pre_market_quote()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.pre_market_quote_);
  }

  // .longbridgeapp.quote.v1.PrePostQuote post_market_quote = 12 [json_name = "postMarketQuote"];
  if (this->_internal_has_post_market_quote()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.post_market_quote_);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityQuote::GetClassData() const { return &_class_data_; }


void SecurityQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityQuote*>(&to_msg);
  auto& from = static_cast<const SecurityQuote&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityQuote)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _this->_internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_prev_close().empty()) {
    _this->_internal_set_prev_close(from._internal_prev_close());
  }
  if (!from._internal_open().empty()) {
    _this->_internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _this->_internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _this->_internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _this->_internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_has_pre_market_quote()) {
    _this->_internal_mutable_pre_market_quote()->::longbridgeapp::quote::v1::PrePostQuote::MergeFrom(
        from._internal_pre_market_quote());
  }
  if (from._internal_has_post_market_quote()) {
    _this->_internal_mutable_post_market_quote()->::longbridgeapp::quote::v1::PrePostQuote::MergeFrom(
        from._internal_post_market_quote());
  }
  if (from._internal_timestamp() != 0) {
    _this->_internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _this->_internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _this->_internal_set_trade_status(from._internal_trade_status());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityQuote::CopyFrom(const SecurityQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityQuote::IsInitialized() const {
  return true;
}

void SecurityQuote::InternalSwap(SecurityQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.last_done_, lhs_arena,
      &other->_impl_.last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.prev_close_, lhs_arena,
      &other->_impl_.prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.open_, lhs_arena,
      &other->_impl_.open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.high_, lhs_arena,
      &other->_impl_.high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.low_, lhs_arena,
      &other->_impl_.low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.turnover_, lhs_arena,
      &other->_impl_.turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SecurityQuote, _impl_.trade_status_)
      + sizeof(SecurityQuote::_impl_.trade_status_)
      - PROTOBUF_FIELD_OFFSET(SecurityQuote, _impl_.pre_market_quote_)>(
          reinterpret_cast<char*>(&_impl_.pre_market_quote_),
          reinterpret_cast<char*>(&other->_impl_.pre_market_quote_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityQuote::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[5]);
}

// ===================================================================

class PrePostQuote::_Internal {
 public:
};

PrePostQuote::PrePostQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.PrePostQuote)
}
PrePostQuote::PrePostQuote(const PrePostQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  PrePostQuote* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.last_done_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.prev_close_){}
    , decltype(_impl_.timestamp_){}
    , decltype(_impl_.volume_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    _this->_impl_.last_done_.Set(from._internal_last_done(), 
      _this->GetArenaForAllocation());
  }
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    _this->_impl_.turnover_.Set(from._internal_turnover(), 
      _this->GetArenaForAllocation());
  }
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    _this->_impl_.high_.Set(from._internal_high(), 
      _this->GetArenaForAllocation());
  }
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    _this->_impl_.low_.Set(from._internal_low(), 
      _this->GetArenaForAllocation());
  }
  _impl_.prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    _this->_impl_.prev_close_.Set(from._internal_prev_close(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.timestamp_, &from._impl_.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.volume_) -
    reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.volume_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.PrePostQuote)
}

inline void PrePostQuote::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.last_done_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.prev_close_){}
    , decltype(_impl_.timestamp_){int64_t{0}}
    , decltype(_impl_.volume_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

PrePostQuote::~PrePostQuote() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.PrePostQuote)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PrePostQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.last_done_.Destroy();
  _impl_.turnover_.Destroy();
  _impl_.high_.Destroy();
  _impl_.low_.Destroy();
  _impl_.prev_close_.Destroy();
}

void PrePostQuote::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PrePostQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.PrePostQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.last_done_.ClearToEmpty();
  _impl_.turnover_.ClearToEmpty();
  _impl_.high_.ClearToEmpty();
  _impl_.low_.ClearToEmpty();
  _impl_.prev_close_.ClearToEmpty();
  ::memset(&_impl_.timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.volume_) -
      reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.volume_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PrePostQuote::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string last_done = 1 [json_name = "lastDone"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PrePostQuote.last_done"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 2 [json_name = "timestamp"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 3 [json_name = "volume"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _impl_.volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 4 [json_name = "turnover"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PrePostQuote.turnover"));
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PrePostQuote.high"));
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PrePostQuote.low"));
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 7 [json_name = "prevClose"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PrePostQuote.prev_close"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PrePostQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.PrePostQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string last_done = 1 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PrePostQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_last_done(), target);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_timestamp(), target);
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(3, this->_internal_volume(), target);
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PrePostQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_turnover(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PrePostQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PrePostQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // string prev_close = 7 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PrePostQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_prev_close(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.PrePostQuote)
  return target;
}

size_t PrePostQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.PrePostQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string last_done = 1 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string prev_close = 7 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PrePostQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    PrePostQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PrePostQuote::GetClassData() const { return &_class_data_; }


void PrePostQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<PrePostQuote*>(&to_msg);
  auto& from = static_cast<const PrePostQuote&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.PrePostQuote)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_last_done().empty()) {
    _this->_internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_turnover().empty()) {
    _this->_internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_high().empty()) {
    _this->_internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _this->_internal_set_low(from._internal_low());
  }
  if (!from._internal_prev_close().empty()) {
    _this->_internal_set_prev_close(from._internal_prev_close());
  }
  if (from._internal_timestamp() != 0) {
    _this->_internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _this->_internal_set_volume(from._internal_volume());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PrePostQuote::CopyFrom(const PrePostQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.PrePostQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PrePostQuote::IsInitialized() const {
  return true;
}

void PrePostQuote::InternalSwap(PrePostQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.last_done_, lhs_arena,
      &other->_impl_.last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.turnover_, lhs_arena,
      &other->_impl_.turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.high_, lhs_arena,
      &other->_impl_.high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.low_, lhs_arena,
      &other->_impl_.low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.prev_close_, lhs_arena,
      &other->_impl_.prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PrePostQuote, _impl_.volume_)
      + sizeof(PrePostQuote::_impl_.volume_)
      - PROTOBUF_FIELD_OFFSET(PrePostQuote, _impl_.timestamp_)>(
          reinterpret_cast<char*>(&_impl_.timestamp_),
          reinterpret_cast<char*>(&other->_impl_.timestamp_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PrePostQuote::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[6]);
}

// ===================================================================

class OptionQuoteResponse::_Internal {
 public:
};

OptionQuoteResponse::OptionQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionQuoteResponse)
}
OptionQuoteResponse::OptionQuoteResponse(const OptionQuoteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OptionQuoteResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.secu_quote_){from._impl_.secu_quote_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionQuoteResponse)
}

inline void OptionQuoteResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.secu_quote_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

OptionQuoteResponse::~OptionQuoteResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionQuoteResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionQuoteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.secu_quote_.~RepeatedPtrField();
}

void OptionQuoteResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OptionQuoteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionQuoteResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.secu_quote_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionQuoteResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.OptionQuote secu_quote = 1 [json_name = "secuQuote"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_quote(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionQuoteResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionQuoteResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.OptionQuote secu_quote = 1 [json_name = "secuQuote"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_secu_quote_size()); i < n; i++) {
    const auto& repfield = this->_internal_secu_quote(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionQuoteResponse)
  return target;
}

size_t OptionQuoteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionQuoteResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.OptionQuote secu_quote = 1 [json_name = "secuQuote"];
  total_size += 1UL * this->_internal_secu_quote_size();
  for (const auto& msg : this->_impl_.secu_quote_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionQuoteResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OptionQuoteResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionQuoteResponse::GetClassData() const { return &_class_data_; }


void OptionQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OptionQuoteResponse*>(&to_msg);
  auto& from = static_cast<const OptionQuoteResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionQuoteResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.secu_quote_.MergeFrom(from._impl_.secu_quote_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionQuoteResponse::CopyFrom(const OptionQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionQuoteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionQuoteResponse::IsInitialized() const {
  return true;
}

void OptionQuoteResponse::InternalSwap(OptionQuoteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.secu_quote_.InternalSwap(&other->_impl_.secu_quote_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionQuoteResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[7]);
}

// ===================================================================

class OptionQuote::_Internal {
 public:
  static const ::longbridgeapp::quote::v1::OptionExtend& option_extend(const OptionQuote* msg);
};

const ::longbridgeapp::quote::v1::OptionExtend&
OptionQuote::_Internal::option_extend(const OptionQuote* msg) {
  return *msg->_impl_.option_extend_;
}
OptionQuote::OptionQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionQuote)
}
OptionQuote::OptionQuote(const OptionQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OptionQuote* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.prev_close_){}
    , decltype(_impl_.open_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.option_extend_){nullptr}
    , decltype(_impl_.timestamp_){}
    , decltype(_impl_.volume_){}
    , decltype(_impl_.trade_status_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    _this->_impl_.last_done_.Set(from._internal_last_done(), 
      _this->GetArenaForAllocation());
  }
  _impl_.prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    _this->_impl_.prev_close_.Set(from._internal_prev_close(), 
      _this->GetArenaForAllocation());
  }
  _impl_.open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    _this->_impl_.open_.Set(from._internal_open(), 
      _this->GetArenaForAllocation());
  }
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    _this->_impl_.high_.Set(from._internal_high(), 
      _this->GetArenaForAllocation());
  }
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    _this->_impl_.low_.Set(from._internal_low(), 
      _this->GetArenaForAllocation());
  }
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    _this->_impl_.turnover_.Set(from._internal_turnover(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_option_extend()) {
    _this->_impl_.option_extend_ = new ::longbridgeapp::quote::v1::OptionExtend(*from._impl_.option_extend_);
  }
  ::memcpy(&_impl_.timestamp_, &from._impl_.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.trade_status_) -
    reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.trade_status_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionQuote)
}

inline void OptionQuote::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.prev_close_){}
    , decltype(_impl_.open_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.option_extend_){nullptr}
    , decltype(_impl_.timestamp_){int64_t{0}}
    , decltype(_impl_.volume_){int64_t{0}}
    , decltype(_impl_.trade_status_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OptionQuote::~OptionQuote() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionQuote)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
  _impl_.last_done_.Destroy();
  _impl_.prev_close_.Destroy();
  _impl_.open_.Destroy();
  _impl_.high_.Destroy();
  _impl_.low_.Destroy();
  _impl_.turnover_.Destroy();
  if (this != internal_default_instance()) delete _impl_.option_extend_;
}

void OptionQuote::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OptionQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  _impl_.last_done_.ClearToEmpty();
  _impl_.prev_close_.ClearToEmpty();
  _impl_.open_.ClearToEmpty();
  _impl_.high_.ClearToEmpty();
  _impl_.low_.ClearToEmpty();
  _impl_.turnover_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && _impl_.option_extend_ != nullptr) {
    delete _impl_.option_extend_;
  }
  _impl_.option_extend_ = nullptr;
  ::memset(&_impl_.timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.trade_status_) -
      reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.trade_status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionQuote::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string last_done = 2 [json_name = "lastDone"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 3 [json_name = "prevClose"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.prev_close"));
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.open"));
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.high"));
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.low"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          _impl_.timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _impl_.volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.turnover"));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridgeapp::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.OptionExtend option_extend = 11 [json_name = "optionExtend"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_option_extend(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_last_done(), target);
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_prev_close(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridgeapp.quote.v1.OptionExtend option_extend = 11 [json_name = "optionExtend"];
  if (this->_internal_has_option_extend()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(11, _Internal::option_extend(this),
        _Internal::option_extend(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionQuote)
  return target;
}

size_t OptionQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // .longbridgeapp.quote.v1.OptionExtend option_extend = 11 [json_name = "optionExtend"];
  if (this->_internal_has_option_extend()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.option_extend_);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OptionQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionQuote::GetClassData() const { return &_class_data_; }


void OptionQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OptionQuote*>(&to_msg);
  auto& from = static_cast<const OptionQuote&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionQuote)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _this->_internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_prev_close().empty()) {
    _this->_internal_set_prev_close(from._internal_prev_close());
  }
  if (!from._internal_open().empty()) {
    _this->_internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _this->_internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _this->_internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _this->_internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_has_option_extend()) {
    _this->_internal_mutable_option_extend()->::longbridgeapp::quote::v1::OptionExtend::MergeFrom(
        from._internal_option_extend());
  }
  if (from._internal_timestamp() != 0) {
    _this->_internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _this->_internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _this->_internal_set_trade_status(from._internal_trade_status());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionQuote::CopyFrom(const OptionQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionQuote::IsInitialized() const {
  return true;
}

void OptionQuote::InternalSwap(OptionQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.last_done_, lhs_arena,
      &other->_impl_.last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.prev_close_, lhs_arena,
      &other->_impl_.prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.open_, lhs_arena,
      &other->_impl_.open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.high_, lhs_arena,
      &other->_impl_.high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.low_, lhs_arena,
      &other->_impl_.low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.turnover_, lhs_arena,
      &other->_impl_.turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OptionQuote, _impl_.trade_status_)
      + sizeof(OptionQuote::_impl_.trade_status_)
      - PROTOBUF_FIELD_OFFSET(OptionQuote, _impl_.option_extend_)>(
          reinterpret_cast<char*>(&_impl_.option_extend_),
          reinterpret_cast<char*>(&other->_impl_.option_extend_));
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionQuote::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[8]);
}

// ===================================================================

class OptionExtend::_Internal {
 public:
};

OptionExtend::OptionExtend(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionExtend)
}
OptionExtend::OptionExtend(const OptionExtend& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OptionExtend* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.implied_volatility_){}
    , decltype(_impl_.expiry_date_){}
    , decltype(_impl_.strike_price_){}
    , decltype(_impl_.contract_multiplier_){}
    , decltype(_impl_.contract_type_){}
    , decltype(_impl_.contract_size_){}
    , decltype(_impl_.direction_){}
    , decltype(_impl_.historical_volatility_){}
    , decltype(_impl_.underlying_symbol_){}
    , decltype(_impl_.open_interest_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_implied_volatility().empty()) {
    _this->_impl_.implied_volatility_.Set(from._internal_implied_volatility(), 
      _this->GetArenaForAllocation());
  }
  _impl_.expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    _this->_impl_.expiry_date_.Set(from._internal_expiry_date(), 
      _this->GetArenaForAllocation());
  }
  _impl_.strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_strike_price().empty()) {
    _this->_impl_.strike_price_.Set(from._internal_strike_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.contract_multiplier_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.contract_multiplier_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_contract_multiplier().empty()) {
    _this->_impl_.contract_multiplier_.Set(from._internal_contract_multiplier(), 
      _this->GetArenaForAllocation());
  }
  _impl_.contract_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.contract_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_contract_type().empty()) {
    _this->_impl_.contract_type_.Set(from._internal_contract_type(), 
      _this->GetArenaForAllocation());
  }
  _impl_.contract_size_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.contract_size_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_contract_size().empty()) {
    _this->_impl_.contract_size_.Set(from._internal_contract_size(), 
      _this->GetArenaForAllocation());
  }
  _impl_.direction_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.direction_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_direction().empty()) {
    _this->_impl_.direction_.Set(from._internal_direction(), 
      _this->GetArenaForAllocation());
  }
  _impl_.historical_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.historical_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_historical_volatility().empty()) {
    _this->_impl_.historical_volatility_.Set(from._internal_historical_volatility(), 
      _this->GetArenaForAllocation());
  }
  _impl_.underlying_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.underlying_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_underlying_symbol().empty()) {
    _this->_impl_.underlying_symbol_.Set(from._internal_underlying_symbol(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.open_interest_ = from._impl_.open_interest_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionExtend)
}

inline void OptionExtend::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.implied_volatility_){}
    , decltype(_impl_.expiry_date_){}
    , decltype(_impl_.strike_price_){}
    , decltype(_impl_.contract_multiplier_){}
    , decltype(_impl_.contract_type_){}
    , decltype(_impl_.contract_size_){}
    , decltype(_impl_.direction_){}
    , decltype(_impl_.historical_volatility_){}
    , decltype(_impl_.underlying_symbol_){}
    , decltype(_impl_.open_interest_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.contract_multiplier_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.contract_multiplier_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.contract_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.contract_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.contract_size_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.contract_size_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.direction_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.direction_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.historical_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.historical_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.underlying_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.underlying_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OptionExtend::~OptionExtend() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionExtend)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionExtend::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.implied_volatility_.Destroy();
  _impl_.expiry_date_.Destroy();
  _impl_.strike_price_.Destroy();
  _impl_.contract_multiplier_.Destroy();
  _impl_.contract_type_.Destroy();
  _impl_.contract_size_.Destroy();
  _impl_.direction_.Destroy();
  _impl_.historical_volatility_.Destroy();
  _impl_.underlying_symbol_.Destroy();
}

void OptionExtend::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OptionExtend::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionExtend)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.implied_volatility_.ClearToEmpty();
  _impl_.expiry_date_.ClearToEmpty();
  _impl_.strike_price_.ClearToEmpty();
  _impl_.contract_multiplier_.ClearToEmpty();
  _impl_.contract_type_.ClearToEmpty();
  _impl_.contract_size_.ClearToEmpty();
  _impl_.direction_.ClearToEmpty();
  _impl_.historical_volatility_.ClearToEmpty();
  _impl_.underlying_symbol_.ClearToEmpty();
  _impl_.open_interest_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionExtend::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string implied_volatility = 1 [json_name = "impliedVolatility"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_implied_volatility();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.implied_volatility"));
        } else
          goto handle_unusual;
        continue;
      // int64 open_interest = 2 [json_name = "openInterest"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.open_interest_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 3 [json_name = "expiryDate"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.expiry_date"));
        } else
          goto handle_unusual;
        continue;
      // string strike_price = 4 [json_name = "strikePrice"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string contract_multiplier = 5 [json_name = "contractMultiplier"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_contract_multiplier();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.contract_multiplier"));
        } else
          goto handle_unusual;
        continue;
      // string contract_type = 6 [json_name = "contractType"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_contract_type();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.contract_type"));
        } else
          goto handle_unusual;
        continue;
      // string contract_size = 7 [json_name = "contractSize"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_contract_size();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.contract_size"));
        } else
          goto handle_unusual;
        continue;
      // string direction = 8 [json_name = "direction"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_direction();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.direction"));
        } else
          goto handle_unusual;
        continue;
      // string historical_volatility = 9 [json_name = "historicalVolatility"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_historical_volatility();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.historical_volatility"));
        } else
          goto handle_unusual;
        continue;
      // string underlying_symbol = 10 [json_name = "underlyingSymbol"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_underlying_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.underlying_symbol"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionExtend::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionExtend)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_implied_volatility().data(), static_cast<int>(this->_internal_implied_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.implied_volatility");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_implied_volatility(), target);
  }

  // int64 open_interest = 2 [json_name = "openInterest"];
  if (this->_internal_open_interest() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_open_interest(), target);
  }

  // string expiry_date = 3 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.expiry_date");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_expiry_date(), target);
  }

  // string strike_price = 4 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_strike_price().data(), static_cast<int>(this->_internal_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.strike_price");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_strike_price(), target);
  }

  // string contract_multiplier = 5 [json_name = "contractMultiplier"];
  if (!this->_internal_contract_multiplier().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_contract_multiplier().data(), static_cast<int>(this->_internal_contract_multiplier().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.contract_multiplier");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_contract_multiplier(), target);
  }

  // string contract_type = 6 [json_name = "contractType"];
  if (!this->_internal_contract_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_contract_type().data(), static_cast<int>(this->_internal_contract_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.contract_type");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_contract_type(), target);
  }

  // string contract_size = 7 [json_name = "contractSize"];
  if (!this->_internal_contract_size().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_contract_size().data(), static_cast<int>(this->_internal_contract_size().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.contract_size");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_contract_size(), target);
  }

  // string direction = 8 [json_name = "direction"];
  if (!this->_internal_direction().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_direction().data(), static_cast<int>(this->_internal_direction().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.direction");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_direction(), target);
  }

  // string historical_volatility = 9 [json_name = "historicalVolatility"];
  if (!this->_internal_historical_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_historical_volatility().data(), static_cast<int>(this->_internal_historical_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.historical_volatility");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_historical_volatility(), target);
  }

  // string underlying_symbol = 10 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_underlying_symbol().data(), static_cast<int>(this->_internal_underlying_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.underlying_symbol");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_underlying_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionExtend)
  return target;
}

size_t OptionExtend::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionExtend)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_implied_volatility());
  }

  // string expiry_date = 3 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  // string strike_price = 4 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_strike_price());
  }

  // string contract_multiplier = 5 [json_name = "contractMultiplier"];
  if (!this->_internal_contract_multiplier().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_contract_multiplier());
  }

  // string contract_type = 6 [json_name = "contractType"];
  if (!this->_internal_contract_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_contract_type());
  }

  // string contract_size = 7 [json_name = "contractSize"];
  if (!this->_internal_contract_size().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_contract_size());
  }

  // string direction = 8 [json_name = "direction"];
  if (!this->_internal_direction().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_direction());
  }

  // string historical_volatility = 9 [json_name = "historicalVolatility"];
  if (!this->_internal_historical_volatility().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_historical_volatility());
  }

  // string underlying_symbol = 10 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_underlying_symbol());
  }

  // int64 open_interest = 2 [json_name = "openInterest"];
  if (this->_internal_open_interest() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_open_interest());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionExtend::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OptionExtend::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionExtend::GetClassData() const { return &_class_data_; }


void OptionExtend::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OptionExtend*>(&to_msg);
  auto& from = static_cast<const OptionExtend&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionExtend)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_implied_volatility().empty()) {
    _this->_internal_set_implied_volatility(from._internal_implied_volatility());
  }
  if (!from._internal_expiry_date().empty()) {
    _this->_internal_set_expiry_date(from._internal_expiry_date());
  }
  if (!from._internal_strike_price().empty()) {
    _this->_internal_set_strike_price(from._internal_strike_price());
  }
  if (!from._internal_contract_multiplier().empty()) {
    _this->_internal_set_contract_multiplier(from._internal_contract_multiplier());
  }
  if (!from._internal_contract_type().empty()) {
    _this->_internal_set_contract_type(from._internal_contract_type());
  }
  if (!from._internal_contract_size().empty()) {
    _this->_internal_set_contract_size(from._internal_contract_size());
  }
  if (!from._internal_direction().empty()) {
    _this->_internal_set_direction(from._internal_direction());
  }
  if (!from._internal_historical_volatility().empty()) {
    _this->_internal_set_historical_volatility(from._internal_historical_volatility());
  }
  if (!from._internal_underlying_symbol().empty()) {
    _this->_internal_set_underlying_symbol(from._internal_underlying_symbol());
  }
  if (from._internal_open_interest() != 0) {
    _this->_internal_set_open_interest(from._internal_open_interest());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionExtend::CopyFrom(const OptionExtend& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionExtend)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionExtend::IsInitialized() const {
  return true;
}

void OptionExtend::InternalSwap(OptionExtend* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.implied_volatility_, lhs_arena,
      &other->_impl_.implied_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.expiry_date_, lhs_arena,
      &other->_impl_.expiry_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.strike_price_, lhs_arena,
      &other->_impl_.strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.contract_multiplier_, lhs_arena,
      &other->_impl_.contract_multiplier_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.contract_type_, lhs_arena,
      &other->_impl_.contract_type_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.contract_size_, lhs_arena,
      &other->_impl_.contract_size_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.direction_, lhs_arena,
      &other->_impl_.direction_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.historical_volatility_, lhs_arena,
      &other->_impl_.historical_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.underlying_symbol_, lhs_arena,
      &other->_impl_.underlying_symbol_, rhs_arena
  );
  swap(_impl_.open_interest_, other->_impl_.open_interest_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionExtend::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[9]);
}

// ===================================================================

class WarrantQuoteResponse::_Internal {
 public:
};

WarrantQuoteResponse::WarrantQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.WarrantQuoteResponse)
}
WarrantQuoteResponse::WarrantQuoteResponse(const WarrantQuoteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  WarrantQuoteResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.secu_quote_){from._impl_.secu_quote_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.WarrantQuoteResponse)
}

inline void WarrantQuoteResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.secu_quote_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

WarrantQuoteResponse::~WarrantQuoteResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.WarrantQuoteResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void WarrantQuoteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.secu_quote_.~RepeatedPtrField();
}

void WarrantQuoteResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void WarrantQuoteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.WarrantQuoteResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.secu_quote_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantQuoteResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.WarrantQuote secu_quote = 2 [json_name = "secuQuote"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_quote(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantQuoteResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.WarrantQuoteResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.WarrantQuote secu_quote = 2 [json_name = "secuQuote"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_secu_quote_size()); i < n; i++) {
    const auto& repfield = this->_internal_secu_quote(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.WarrantQuoteResponse)
  return target;
}

size_t WarrantQuoteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.WarrantQuoteResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.WarrantQuote secu_quote = 2 [json_name = "secuQuote"];
  total_size += 1UL * this->_internal_secu_quote_size();
  for (const auto& msg : this->_impl_.secu_quote_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantQuoteResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    WarrantQuoteResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantQuoteResponse::GetClassData() const { return &_class_data_; }


void WarrantQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<WarrantQuoteResponse*>(&to_msg);
  auto& from = static_cast<const WarrantQuoteResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.WarrantQuoteResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.secu_quote_.MergeFrom(from._impl_.secu_quote_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantQuoteResponse::CopyFrom(const WarrantQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.WarrantQuoteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantQuoteResponse::IsInitialized() const {
  return true;
}

void WarrantQuoteResponse::InternalSwap(WarrantQuoteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.secu_quote_.InternalSwap(&other->_impl_.secu_quote_);
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantQuoteResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[10]);
}

// ===================================================================

class WarrantQuote::_Internal {
 public:
  static const ::longbridgeapp::quote::v1::WarrantExtend& warrant_extend(const WarrantQuote* msg);
};

const ::longbridgeapp::quote::v1::WarrantExtend&
WarrantQuote::_Internal::warrant_extend(const WarrantQuote* msg) {
  return *msg->_impl_.warrant_extend_;
}
WarrantQuote::WarrantQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.WarrantQuote)
}
WarrantQuote::WarrantQuote(const WarrantQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  WarrantQuote* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.prev_close_){}
    , decltype(_impl_.open_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.warrant_extend_){nullptr}
    , decltype(_impl_.timestamp_){}
    , decltype(_impl_.volume_){}
    , decltype(_impl_.trade_status_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    _this->_impl_.last_done_.Set(from._internal_last_done(), 
      _this->GetArenaForAllocation());
  }
  _impl_.prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    _this->_impl_.prev_close_.Set(from._internal_prev_close(), 
      _this->GetArenaForAllocation());
  }
  _impl_.open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    _this->_impl_.open_.Set(from._internal_open(), 
      _this->GetArenaForAllocation());
  }
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    _this->_impl_.high_.Set(from._internal_high(), 
      _this->GetArenaForAllocation());
  }
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    _this->_impl_.low_.Set(from._internal_low(), 
      _this->GetArenaForAllocation());
  }
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    _this->_impl_.turnover_.Set(from._internal_turnover(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_warrant_extend()) {
    _this->_impl_.warrant_extend_ = new ::longbridgeapp::quote::v1::WarrantExtend(*from._impl_.warrant_extend_);
  }
  ::memcpy(&_impl_.timestamp_, &from._impl_.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.trade_status_) -
    reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.trade_status_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.WarrantQuote)
}

inline void WarrantQuote::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.prev_close_){}
    , decltype(_impl_.open_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.warrant_extend_){nullptr}
    , decltype(_impl_.timestamp_){int64_t{0}}
    , decltype(_impl_.volume_){int64_t{0}}
    , decltype(_impl_.trade_status_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

WarrantQuote::~WarrantQuote() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.WarrantQuote)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void WarrantQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
  _impl_.last_done_.Destroy();
  _impl_.prev_close_.Destroy();
  _impl_.open_.Destroy();
  _impl_.high_.Destroy();
  _impl_.low_.Destroy();
  _impl_.turnover_.Destroy();
  if (this != internal_default_instance()) delete _impl_.warrant_extend_;
}

void WarrantQuote::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void WarrantQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.WarrantQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  _impl_.last_done_.ClearToEmpty();
  _impl_.prev_close_.ClearToEmpty();
  _impl_.open_.ClearToEmpty();
  _impl_.high_.ClearToEmpty();
  _impl_.low_.ClearToEmpty();
  _impl_.turnover_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && _impl_.warrant_extend_ != nullptr) {
    delete _impl_.warrant_extend_;
  }
  _impl_.warrant_extend_ = nullptr;
  ::memset(&_impl_.timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.trade_status_) -
      reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.trade_status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantQuote::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string last_done = 2 [json_name = "lastDone"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 3 [json_name = "prevClose"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.prev_close"));
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.open"));
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.high"));
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.low"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          _impl_.timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _impl_.volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.turnover"));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridgeapp::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.WarrantExtend warrant_extend = 11 [json_name = "warrantExtend"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_warrant_extend(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.WarrantQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_last_done(), target);
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_prev_close(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridgeapp.quote.v1.WarrantExtend warrant_extend = 11 [json_name = "warrantExtend"];
  if (this->_internal_has_warrant_extend()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(11, _Internal::warrant_extend(this),
        _Internal::warrant_extend(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.WarrantQuote)
  return target;
}

size_t WarrantQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.WarrantQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // .longbridgeapp.quote.v1.WarrantExtend warrant_extend = 11 [json_name = "warrantExtend"];
  if (this->_internal_has_warrant_extend()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.warrant_extend_);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    WarrantQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantQuote::GetClassData() const { return &_class_data_; }


void WarrantQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<WarrantQuote*>(&to_msg);
  auto& from = static_cast<const WarrantQuote&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.WarrantQuote)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _this->_internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_prev_close().empty()) {
    _this->_internal_set_prev_close(from._internal_prev_close());
  }
  if (!from._internal_open().empty()) {
    _this->_internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _this->_internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _this->_internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _this->_internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_has_warrant_extend()) {
    _this->_internal_mutable_warrant_extend()->::longbridgeapp::quote::v1::WarrantExtend::MergeFrom(
        from._internal_warrant_extend());
  }
  if (from._internal_timestamp() != 0) {
    _this->_internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _this->_internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _this->_internal_set_trade_status(from._internal_trade_status());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantQuote::CopyFrom(const WarrantQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.WarrantQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantQuote::IsInitialized() const {
  return true;
}

void WarrantQuote::InternalSwap(WarrantQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.last_done_, lhs_arena,
      &other->_impl_.last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.prev_close_, lhs_arena,
      &other->_impl_.prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.open_, lhs_arena,
      &other->_impl_.open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.high_, lhs_arena,
      &other->_impl_.high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.low_, lhs_arena,
      &other->_impl_.low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.turnover_, lhs_arena,
      &other->_impl_.turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(WarrantQuote, _impl_.trade_status_)
      + sizeof(WarrantQuote::_impl_.trade_status_)
      - PROTOBUF_FIELD_OFFSET(WarrantQuote, _impl_.warrant_extend_)>(
          reinterpret_cast<char*>(&_impl_.warrant_extend_),
          reinterpret_cast<char*>(&other->_impl_.warrant_extend_));
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantQuote::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[11]);
}

// ===================================================================

class WarrantExtend::_Internal {
 public:
};

WarrantExtend::WarrantExtend(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.WarrantExtend)
}
WarrantExtend::WarrantExtend(const WarrantExtend& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  WarrantExtend* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.implied_volatility_){}
    , decltype(_impl_.expiry_date_){}
    , decltype(_impl_.last_trade_date_){}
    , decltype(_impl_.outstanding_ratio_){}
    , decltype(_impl_.conversion_ratio_){}
    , decltype(_impl_.category_){}
    , decltype(_impl_.strike_price_){}
    , decltype(_impl_.upper_strike_price_){}
    , decltype(_impl_.lower_strike_price_){}
    , decltype(_impl_.call_price_){}
    , decltype(_impl_.underlying_symbol_){}
    , decltype(_impl_.outstanding_qty_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_implied_volatility().empty()) {
    _this->_impl_.implied_volatility_.Set(from._internal_implied_volatility(), 
      _this->GetArenaForAllocation());
  }
  _impl_.expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    _this->_impl_.expiry_date_.Set(from._internal_expiry_date(), 
      _this->GetArenaForAllocation());
  }
  _impl_.last_trade_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_trade_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_trade_date().empty()) {
    _this->_impl_.last_trade_date_.Set(from._internal_last_trade_date(), 
      _this->GetArenaForAllocation());
  }
  _impl_.outstanding_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.outstanding_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_outstanding_ratio().empty()) {
    _this->_impl_.outstanding_ratio_.Set(from._internal_outstanding_ratio(), 
      _this->GetArenaForAllocation());
  }
  _impl_.conversion_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.conversion_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_conversion_ratio().empty()) {
    _this->_impl_.conversion_ratio_.Set(from._internal_conversion_ratio(), 
      _this->GetArenaForAllocation());
  }
  _impl_.category_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.category_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_category().empty()) {
    _this->_impl_.category_.Set(from._internal_category(), 
      _this->GetArenaForAllocation());
  }
  _impl_.strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_strike_price().empty()) {
    _this->_impl_.strike_price_.Set(from._internal_strike_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.upper_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.upper_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_upper_strike_price().empty()) {
    _this->_impl_.upper_strike_price_.Set(from._internal_upper_strike_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.lower_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.lower_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_lower_strike_price().empty()) {
    _this->_impl_.lower_strike_price_.Set(from._internal_lower_strike_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_call_price().empty()) {
    _this->_impl_.call_price_.Set(from._internal_call_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.underlying_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.underlying_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_underlying_symbol().empty()) {
    _this->_impl_.underlying_symbol_.Set(from._internal_underlying_symbol(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.outstanding_qty_ = from._impl_.outstanding_qty_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.WarrantExtend)
}

inline void WarrantExtend::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.implied_volatility_){}
    , decltype(_impl_.expiry_date_){}
    , decltype(_impl_.last_trade_date_){}
    , decltype(_impl_.outstanding_ratio_){}
    , decltype(_impl_.conversion_ratio_){}
    , decltype(_impl_.category_){}
    , decltype(_impl_.strike_price_){}
    , decltype(_impl_.upper_strike_price_){}
    , decltype(_impl_.lower_strike_price_){}
    , decltype(_impl_.call_price_){}
    , decltype(_impl_.underlying_symbol_){}
    , decltype(_impl_.outstanding_qty_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.last_trade_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_trade_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.outstanding_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.outstanding_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.conversion_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.conversion_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.category_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.category_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.upper_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.upper_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.lower_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.lower_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.underlying_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.underlying_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

WarrantExtend::~WarrantExtend() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.WarrantExtend)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void WarrantExtend::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.implied_volatility_.Destroy();
  _impl_.expiry_date_.Destroy();
  _impl_.last_trade_date_.Destroy();
  _impl_.outstanding_ratio_.Destroy();
  _impl_.conversion_ratio_.Destroy();
  _impl_.category_.Destroy();
  _impl_.strike_price_.Destroy();
  _impl_.upper_strike_price_.Destroy();
  _impl_.lower_strike_price_.Destroy();
  _impl_.call_price_.Destroy();
  _impl_.underlying_symbol_.Destroy();
}

void WarrantExtend::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void WarrantExtend::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.WarrantExtend)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.implied_volatility_.ClearToEmpty();
  _impl_.expiry_date_.ClearToEmpty();
  _impl_.last_trade_date_.ClearToEmpty();
  _impl_.outstanding_ratio_.ClearToEmpty();
  _impl_.conversion_ratio_.ClearToEmpty();
  _impl_.category_.ClearToEmpty();
  _impl_.strike_price_.ClearToEmpty();
  _impl_.upper_strike_price_.ClearToEmpty();
  _impl_.lower_strike_price_.ClearToEmpty();
  _impl_.call_price_.ClearToEmpty();
  _impl_.underlying_symbol_.ClearToEmpty();
  _impl_.outstanding_qty_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantExtend::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string implied_volatility = 1 [json_name = "impliedVolatility"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_implied_volatility();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.implied_volatility"));
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 2 [json_name = "expiryDate"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.expiry_date"));
        } else
          goto handle_unusual;
        continue;
      // string last_trade_date = 3 [json_name = "lastTradeDate"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_last_trade_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.last_trade_date"));
        } else
          goto handle_unusual;
        continue;
      // string outstanding_ratio = 4 [json_name = "outstandingRatio"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_outstanding_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.outstanding_ratio"));
        } else
          goto handle_unusual;
        continue;
      // int64 outstanding_qty = 5 [json_name = "outstandingQty"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          _impl_.outstanding_qty_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string conversion_ratio = 6 [json_name = "conversionRatio"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_conversion_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.conversion_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string category = 7 [json_name = "category"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_category();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.category"));
        } else
          goto handle_unusual;
        continue;
      // string strike_price = 8 [json_name = "strikePrice"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string upper_strike_price = 9 [json_name = "upperStrikePrice"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_upper_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.upper_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string lower_strike_price = 10 [json_name = "lowerStrikePrice"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_lower_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.lower_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string call_price = 11 [json_name = "callPrice"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          auto str = _internal_mutable_call_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.call_price"));
        } else
          goto handle_unusual;
        continue;
      // string underlying_symbol = 12 [json_name = "underlyingSymbol"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          auto str = _internal_mutable_underlying_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.underlying_symbol"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantExtend::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.WarrantExtend)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_implied_volatility().data(), static_cast<int>(this->_internal_implied_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.implied_volatility");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_implied_volatility(), target);
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.expiry_date");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_expiry_date(), target);
  }

  // string last_trade_date = 3 [json_name = "lastTradeDate"];
  if (!this->_internal_last_trade_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_trade_date().data(), static_cast<int>(this->_internal_last_trade_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.last_trade_date");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_last_trade_date(), target);
  }

  // string outstanding_ratio = 4 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_outstanding_ratio().data(), static_cast<int>(this->_internal_outstanding_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.outstanding_ratio");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_outstanding_ratio(), target);
  }

  // int64 outstanding_qty = 5 [json_name = "outstandingQty"];
  if (this->_internal_outstanding_qty() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(5, this->_internal_outstanding_qty(), target);
  }

  // string conversion_ratio = 6 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_conversion_ratio().data(), static_cast<int>(this->_internal_conversion_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.conversion_ratio");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_conversion_ratio(), target);
  }

  // string category = 7 [json_name = "category"];
  if (!this->_internal_category().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_category().data(), static_cast<int>(this->_internal_category().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.category");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_category(), target);
  }

  // string strike_price = 8 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_strike_price().data(), static_cast<int>(this->_internal_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.strike_price");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_strike_price(), target);
  }

  // string upper_strike_price = 9 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_upper_strike_price().data(), static_cast<int>(this->_internal_upper_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.upper_strike_price");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_upper_strike_price(), target);
  }

  // string lower_strike_price = 10 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_lower_strike_price().data(), static_cast<int>(this->_internal_lower_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.lower_strike_price");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_lower_strike_price(), target);
  }

  // string call_price = 11 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_call_price().data(), static_cast<int>(this->_internal_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.call_price");
    target = stream->WriteStringMaybeAliased(
        11, this->_internal_call_price(), target);
  }

  // string underlying_symbol = 12 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_underlying_symbol().data(), static_cast<int>(this->_internal_underlying_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.underlying_symbol");
    target = stream->WriteStringMaybeAliased(
        12, this->_internal_underlying_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.WarrantExtend)
  return target;
}

size_t WarrantExtend::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.WarrantExtend)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_implied_volatility());
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  // string last_trade_date = 3 [json_name = "lastTradeDate"];
  if (!this->_internal_last_trade_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_trade_date());
  }

  // string outstanding_ratio = 4 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_outstanding_ratio());
  }

  // string conversion_ratio = 6 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_conversion_ratio());
  }

  // string category = 7 [json_name = "category"];
  if (!this->_internal_category().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_category());
  }

  // string strike_price = 8 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_strike_price());
  }

  // string upper_strike_price = 9 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_upper_strike_price());
  }

  // string lower_strike_price = 10 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_lower_strike_price());
  }

  // string call_price = 11 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_call_price());
  }

  // string underlying_symbol = 12 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_underlying_symbol());
  }

  // int64 outstanding_qty = 5 [json_name = "outstandingQty"];
  if (this->_internal_outstanding_qty() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_outstanding_qty());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantExtend::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    WarrantExtend::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantExtend::GetClassData() const { return &_class_data_; }


void WarrantExtend::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<WarrantExtend*>(&to_msg);
  auto& from = static_cast<const WarrantExtend&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.WarrantExtend)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_implied_volatility().empty()) {
    _this->_internal_set_implied_volatility(from._internal_implied_volatility());
  }
  if (!from._internal_expiry_date().empty()) {
    _this->_internal_set_expiry_date(from._internal_expiry_date());
  }
  if (!from._internal_last_trade_date().empty()) {
    _this->_internal_set_last_trade_date(from._internal_last_trade_date());
  }
  if (!from._internal_outstanding_ratio().empty()) {
    _this->_internal_set_outstanding_ratio(from._internal_outstanding_ratio());
  }
  if (!from._internal_conversion_ratio().empty()) {
    _this->_internal_set_conversion_ratio(from._internal_conversion_ratio());
  }
  if (!from._internal_category().empty()) {
    _this->_internal_set_category(from._internal_category());
  }
  if (!from._internal_strike_price().empty()) {
    _this->_internal_set_strike_price(from._internal_strike_price());
  }
  if (!from._internal_upper_strike_price().empty()) {
    _this->_internal_set_upper_strike_price(from._internal_upper_strike_price());
  }
  if (!from._internal_lower_strike_price().empty()) {
    _this->_internal_set_lower_strike_price(from._internal_lower_strike_price());
  }
  if (!from._internal_call_price().empty()) {
    _this->_internal_set_call_price(from._internal_call_price());
  }
  if (!from._internal_underlying_symbol().empty()) {
    _this->_internal_set_underlying_symbol(from._internal_underlying_symbol());
  }
  if (from._internal_outstanding_qty() != 0) {
    _this->_internal_set_outstanding_qty(from._internal_outstanding_qty());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantExtend::CopyFrom(const WarrantExtend& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.WarrantExtend)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantExtend::IsInitialized() const {
  return true;
}

void WarrantExtend::InternalSwap(WarrantExtend* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.implied_volatility_, lhs_arena,
      &other->_impl_.implied_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.expiry_date_, lhs_arena,
      &other->_impl_.expiry_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.last_trade_date_, lhs_arena,
      &other->_impl_.last_trade_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.outstanding_ratio_, lhs_arena,
      &other->_impl_.outstanding_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.conversion_ratio_, lhs_arena,
      &other->_impl_.conversion_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.category_, lhs_arena,
      &other->_impl_.category_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.strike_price_, lhs_arena,
      &other->_impl_.strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.upper_strike_price_, lhs_arena,
      &other->_impl_.upper_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.lower_strike_price_, lhs_arena,
      &other->_impl_.lower_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.call_price_, lhs_arena,
      &other->_impl_.call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.underlying_symbol_, lhs_arena,
      &other->_impl_.underlying_symbol_, rhs_arena
  );
  swap(_impl_.outstanding_qty_, other->_impl_.outstanding_qty_);
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantExtend::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[12]);
}

// ===================================================================

class SecurityDepthResponse::_Internal {
 public:
};

SecurityDepthResponse::SecurityDepthResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityDepthResponse)
}
SecurityDepthResponse::SecurityDepthResponse(const SecurityDepthResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityDepthResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.ask_){from._impl_.ask_}
    , decltype(_impl_.bid_){from._impl_.bid_}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityDepthResponse)
}

inline void SecurityDepthResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.ask_){arena}
    , decltype(_impl_.bid_){arena}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityDepthResponse::~SecurityDepthResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityDepthResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityDepthResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.ask_.~RepeatedPtrField();
  _impl_.bid_.~RepeatedPtrField();
  _impl_.symbol_.Destroy();
}

void SecurityDepthResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityDepthResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityDepthResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.ask_.Clear();
  _impl_.bid_.Clear();
  _impl_.symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityDepthResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityDepthResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Depth ask = 2 [json_name = "ask"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Depth bid = 3 [json_name = "bid"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityDepthResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityDepthResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityDepthResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.Depth ask = 2 [json_name = "ask"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_ask_size()); i < n; i++) {
    const auto& repfield = this->_internal_ask(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .longbridgeapp.quote.v1.Depth bid = 3 [json_name = "bid"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_bid_size()); i < n; i++) {
    const auto& repfield = this->_internal_bid(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityDepthResponse)
  return target;
}

size_t SecurityDepthResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityDepthResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Depth ask = 2 [json_name = "ask"];
  total_size += 1UL * this->_internal_ask_size();
  for (const auto& msg : this->_impl_.ask_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridgeapp.quote.v1.Depth bid = 3 [json_name = "bid"];
  total_size += 1UL * this->_internal_bid_size();
  for (const auto& msg : this->_impl_.bid_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityDepthResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityDepthResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityDepthResponse::GetClassData() const { return &_class_data_; }


void SecurityDepthResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityDepthResponse*>(&to_msg);
  auto& from = static_cast<const SecurityDepthResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityDepthResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.ask_.MergeFrom(from._impl_.ask_);
  _this->_impl_.bid_.MergeFrom(from._impl_.bid_);
  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityDepthResponse::CopyFrom(const SecurityDepthResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityDepthResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityDepthResponse::IsInitialized() const {
  return true;
}

void SecurityDepthResponse::InternalSwap(SecurityDepthResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.ask_.InternalSwap(&other->_impl_.ask_);
  _impl_.bid_.InternalSwap(&other->_impl_.bid_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityDepthResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[13]);
}

// ===================================================================

class Depth::_Internal {
 public:
};

Depth::Depth(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.Depth)
}
Depth::Depth(const Depth& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Depth* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.price_){}
    , decltype(_impl_.volume_){}
    , decltype(_impl_.order_num_){}
    , decltype(_impl_.position_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    _this->_impl_.price_.Set(from._internal_price(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.volume_, &from._impl_.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.position_) -
    reinterpret_cast<char*>(&_impl_.volume_)) + sizeof(_impl_.position_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.Depth)
}

inline void Depth::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.price_){}
    , decltype(_impl_.volume_){int64_t{0}}
    , decltype(_impl_.order_num_){int64_t{0}}
    , decltype(_impl_.position_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

Depth::~Depth() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.Depth)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Depth::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.price_.Destroy();
}

void Depth::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Depth::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.Depth)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.price_.ClearToEmpty();
  ::memset(&_impl_.volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.position_) -
      reinterpret_cast<char*>(&_impl_.volume_)) + sizeof(_impl_.position_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Depth::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 position = 1 [json_name = "position"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _impl_.position_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string price = 2 [json_name = "price"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.Depth.price"));
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 3 [json_name = "volume"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _impl_.volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 order_num = 4 [json_name = "orderNum"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _impl_.order_num_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Depth::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.Depth)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_position(), target);
  }

  // string price = 2 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Depth.price");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_price(), target);
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(3, this->_internal_volume(), target);
  }

  // int64 order_num = 4 [json_name = "orderNum"];
  if (this->_internal_order_num() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(4, this->_internal_order_num(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.Depth)
  return target;
}

size_t Depth::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.Depth)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 2 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int64 order_num = 4 [json_name = "orderNum"];
  if (this->_internal_order_num() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_order_num());
  }

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_position());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Depth::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Depth::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Depth::GetClassData() const { return &_class_data_; }


void Depth::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Depth*>(&to_msg);
  auto& from = static_cast<const Depth&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.Depth)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _this->_internal_set_price(from._internal_price());
  }
  if (from._internal_volume() != 0) {
    _this->_internal_set_volume(from._internal_volume());
  }
  if (from._internal_order_num() != 0) {
    _this->_internal_set_order_num(from._internal_order_num());
  }
  if (from._internal_position() != 0) {
    _this->_internal_set_position(from._internal_position());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Depth::CopyFrom(const Depth& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.Depth)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Depth::IsInitialized() const {
  return true;
}

void Depth::InternalSwap(Depth* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.price_, lhs_arena,
      &other->_impl_.price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Depth, _impl_.position_)
      + sizeof(Depth::_impl_.position_)
      - PROTOBUF_FIELD_OFFSET(Depth, _impl_.volume_)>(
          reinterpret_cast<char*>(&_impl_.volume_),
          reinterpret_cast<char*>(&other->_impl_.volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Depth::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[14]);
}

// ===================================================================

class SecurityBrokersResponse::_Internal {
 public:
};

SecurityBrokersResponse::SecurityBrokersResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityBrokersResponse)
}
SecurityBrokersResponse::SecurityBrokersResponse(const SecurityBrokersResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityBrokersResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.ask_brokers_){from._impl_.ask_brokers_}
    , decltype(_impl_.bid_brokers_){from._impl_.bid_brokers_}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityBrokersResponse)
}

inline void SecurityBrokersResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.ask_brokers_){arena}
    , decltype(_impl_.bid_brokers_){arena}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityBrokersResponse::~SecurityBrokersResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityBrokersResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityBrokersResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.ask_brokers_.~RepeatedPtrField();
  _impl_.bid_brokers_.~RepeatedPtrField();
  _impl_.symbol_.Destroy();
}

void SecurityBrokersResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityBrokersResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityBrokersResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.ask_brokers_.Clear();
  _impl_.bid_brokers_.Clear();
  _impl_.symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityBrokersResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityBrokersResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 2 [json_name = "askBrokers"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 3 [json_name = "bidBrokers"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityBrokersResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityBrokersResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityBrokersResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 2 [json_name = "askBrokers"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_ask_brokers_size()); i < n; i++) {
    const auto& repfield = this->_internal_ask_brokers(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 3 [json_name = "bidBrokers"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_bid_brokers_size()); i < n; i++) {
    const auto& repfield = this->_internal_bid_brokers(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityBrokersResponse)
  return target;
}

size_t SecurityBrokersResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityBrokersResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 2 [json_name = "askBrokers"];
  total_size += 1UL * this->_internal_ask_brokers_size();
  for (const auto& msg : this->_impl_.ask_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 3 [json_name = "bidBrokers"];
  total_size += 1UL * this->_internal_bid_brokers_size();
  for (const auto& msg : this->_impl_.bid_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityBrokersResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityBrokersResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityBrokersResponse::GetClassData() const { return &_class_data_; }


void SecurityBrokersResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityBrokersResponse*>(&to_msg);
  auto& from = static_cast<const SecurityBrokersResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityBrokersResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.ask_brokers_.MergeFrom(from._impl_.ask_brokers_);
  _this->_impl_.bid_brokers_.MergeFrom(from._impl_.bid_brokers_);
  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityBrokersResponse::CopyFrom(const SecurityBrokersResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityBrokersResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityBrokersResponse::IsInitialized() const {
  return true;
}

void SecurityBrokersResponse::InternalSwap(SecurityBrokersResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.ask_brokers_.InternalSwap(&other->_impl_.ask_brokers_);
  _impl_.bid_brokers_.InternalSwap(&other->_impl_.bid_brokers_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityBrokersResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[15]);
}

// ===================================================================

class Brokers::_Internal {
 public:
};

Brokers::Brokers(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.Brokers)
}
Brokers::Brokers(const Brokers& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Brokers* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.broker_ids_){from._impl_.broker_ids_}
    , /*decltype(_impl_._broker_ids_cached_byte_size_)*/{0}
    , decltype(_impl_.position_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.position_ = from._impl_.position_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.Brokers)
}

inline void Brokers::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.broker_ids_){arena}
    , /*decltype(_impl_._broker_ids_cached_byte_size_)*/{0}
    , decltype(_impl_.position_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

Brokers::~Brokers() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.Brokers)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Brokers::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.broker_ids_.~RepeatedField();
}

void Brokers::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Brokers::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.Brokers)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.broker_ids_.Clear();
  _impl_.position_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Brokers::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 position = 1 [json_name = "position"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _impl_.position_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 broker_ids = 2 [json_name = "brokerIds"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_broker_ids(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          _internal_add_broker_ids(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Brokers::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.Brokers)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_position(), target);
  }

  // repeated int32 broker_ids = 2 [json_name = "brokerIds"];
  {
    int byte_size = _impl_._broker_ids_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          2, _internal_broker_ids(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.Brokers)
  return target;
}

size_t Brokers::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.Brokers)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 broker_ids = 2 [json_name = "brokerIds"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.broker_ids_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._broker_ids_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_position());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Brokers::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Brokers::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Brokers::GetClassData() const { return &_class_data_; }


void Brokers::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Brokers*>(&to_msg);
  auto& from = static_cast<const Brokers&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.Brokers)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.broker_ids_.MergeFrom(from._impl_.broker_ids_);
  if (from._internal_position() != 0) {
    _this->_internal_set_position(from._internal_position());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Brokers::CopyFrom(const Brokers& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.Brokers)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Brokers::IsInitialized() const {
  return true;
}

void Brokers::InternalSwap(Brokers* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.broker_ids_.InternalSwap(&other->_impl_.broker_ids_);
  swap(_impl_.position_, other->_impl_.position_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Brokers::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[16]);
}

// ===================================================================

class ParticipantBrokerIdsResponse::_Internal {
 public:
};

ParticipantBrokerIdsResponse::ParticipantBrokerIdsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
}
ParticipantBrokerIdsResponse::ParticipantBrokerIdsResponse(const ParticipantBrokerIdsResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ParticipantBrokerIdsResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.participant_broker_numbers_){from._impl_.participant_broker_numbers_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
}

inline void ParticipantBrokerIdsResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.participant_broker_numbers_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ParticipantBrokerIdsResponse::~ParticipantBrokerIdsResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ParticipantBrokerIdsResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.participant_broker_numbers_.~RepeatedPtrField();
}

void ParticipantBrokerIdsResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ParticipantBrokerIdsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.participant_broker_numbers_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ParticipantBrokerIdsResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.ParticipantInfo participant_broker_numbers = 1 [json_name = "participantBrokerNumbers"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_participant_broker_numbers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ParticipantBrokerIdsResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.ParticipantInfo participant_broker_numbers = 1 [json_name = "participantBrokerNumbers"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_participant_broker_numbers_size()); i < n; i++) {
    const auto& repfield = this->_internal_participant_broker_numbers(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  return target;
}

size_t ParticipantBrokerIdsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.ParticipantInfo participant_broker_numbers = 1 [json_name = "participantBrokerNumbers"];
  total_size += 1UL * this->_internal_participant_broker_numbers_size();
  for (const auto& msg : this->_impl_.participant_broker_numbers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ParticipantBrokerIdsResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ParticipantBrokerIdsResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ParticipantBrokerIdsResponse::GetClassData() const { return &_class_data_; }


void ParticipantBrokerIdsResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ParticipantBrokerIdsResponse*>(&to_msg);
  auto& from = static_cast<const ParticipantBrokerIdsResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.participant_broker_numbers_.MergeFrom(from._impl_.participant_broker_numbers_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ParticipantBrokerIdsResponse::CopyFrom(const ParticipantBrokerIdsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ParticipantBrokerIdsResponse::IsInitialized() const {
  return true;
}

void ParticipantBrokerIdsResponse::InternalSwap(ParticipantBrokerIdsResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.participant_broker_numbers_.InternalSwap(&other->_impl_.participant_broker_numbers_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ParticipantBrokerIdsResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[17]);
}

// ===================================================================

class ParticipantInfo::_Internal {
 public:
};

ParticipantInfo::ParticipantInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.ParticipantInfo)
}
ParticipantInfo::ParticipantInfo(const ParticipantInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ParticipantInfo* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.broker_ids_){from._impl_.broker_ids_}
    , /*decltype(_impl_._broker_ids_cached_byte_size_)*/{0}
    , decltype(_impl_.participant_name_cn_){}
    , decltype(_impl_.participant_name_en_){}
    , decltype(_impl_.participant_name_hk_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.participant_name_cn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.participant_name_cn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_participant_name_cn().empty()) {
    _this->_impl_.participant_name_cn_.Set(from._internal_participant_name_cn(), 
      _this->GetArenaForAllocation());
  }
  _impl_.participant_name_en_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.participant_name_en_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_participant_name_en().empty()) {
    _this->_impl_.participant_name_en_.Set(from._internal_participant_name_en(), 
      _this->GetArenaForAllocation());
  }
  _impl_.participant_name_hk_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.participant_name_hk_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_participant_name_hk().empty()) {
    _this->_impl_.participant_name_hk_.Set(from._internal_participant_name_hk(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.ParticipantInfo)
}

inline void ParticipantInfo::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.broker_ids_){arena}
    , /*decltype(_impl_._broker_ids_cached_byte_size_)*/{0}
    , decltype(_impl_.participant_name_cn_){}
    , decltype(_impl_.participant_name_en_){}
    , decltype(_impl_.participant_name_hk_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.participant_name_cn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.participant_name_cn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.participant_name_en_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.participant_name_en_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.participant_name_hk_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.participant_name_hk_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

ParticipantInfo::~ParticipantInfo() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.ParticipantInfo)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ParticipantInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.broker_ids_.~RepeatedField();
  _impl_.participant_name_cn_.Destroy();
  _impl_.participant_name_en_.Destroy();
  _impl_.participant_name_hk_.Destroy();
}

void ParticipantInfo::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ParticipantInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.ParticipantInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.broker_ids_.Clear();
  _impl_.participant_name_cn_.ClearToEmpty();
  _impl_.participant_name_en_.ClearToEmpty();
  _impl_.participant_name_hk_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ParticipantInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated int32 broker_ids = 1 [json_name = "brokerIds"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_broker_ids(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_broker_ids(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string participant_name_cn = 2 [json_name = "participantNameCn"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_participant_name_cn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.ParticipantInfo.participant_name_cn"));
        } else
          goto handle_unusual;
        continue;
      // string participant_name_en = 3 [json_name = "participantNameEn"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_participant_name_en();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.ParticipantInfo.participant_name_en"));
        } else
          goto handle_unusual;
        continue;
      // string participant_name_hk = 4 [json_name = "participantNameHk"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_participant_name_hk();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.ParticipantInfo.participant_name_hk"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ParticipantInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.ParticipantInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated int32 broker_ids = 1 [json_name = "brokerIds"];
  {
    int byte_size = _impl_._broker_ids_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          1, _internal_broker_ids(), byte_size, target);
    }
  }

  // string participant_name_cn = 2 [json_name = "participantNameCn"];
  if (!this->_internal_participant_name_cn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_participant_name_cn().data(), static_cast<int>(this->_internal_participant_name_cn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.ParticipantInfo.participant_name_cn");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_participant_name_cn(), target);
  }

  // string participant_name_en = 3 [json_name = "participantNameEn"];
  if (!this->_internal_participant_name_en().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_participant_name_en().data(), static_cast<int>(this->_internal_participant_name_en().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.ParticipantInfo.participant_name_en");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_participant_name_en(), target);
  }

  // string participant_name_hk = 4 [json_name = "participantNameHk"];
  if (!this->_internal_participant_name_hk().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_participant_name_hk().data(), static_cast<int>(this->_internal_participant_name_hk().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.ParticipantInfo.participant_name_hk");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_participant_name_hk(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.ParticipantInfo)
  return target;
}

size_t ParticipantInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.ParticipantInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 broker_ids = 1 [json_name = "brokerIds"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.broker_ids_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._broker_ids_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // string participant_name_cn = 2 [json_name = "participantNameCn"];
  if (!this->_internal_participant_name_cn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_participant_name_cn());
  }

  // string participant_name_en = 3 [json_name = "participantNameEn"];
  if (!this->_internal_participant_name_en().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_participant_name_en());
  }

  // string participant_name_hk = 4 [json_name = "participantNameHk"];
  if (!this->_internal_participant_name_hk().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_participant_name_hk());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ParticipantInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ParticipantInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ParticipantInfo::GetClassData() const { return &_class_data_; }


void ParticipantInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ParticipantInfo*>(&to_msg);
  auto& from = static_cast<const ParticipantInfo&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.ParticipantInfo)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.broker_ids_.MergeFrom(from._impl_.broker_ids_);
  if (!from._internal_participant_name_cn().empty()) {
    _this->_internal_set_participant_name_cn(from._internal_participant_name_cn());
  }
  if (!from._internal_participant_name_en().empty()) {
    _this->_internal_set_participant_name_en(from._internal_participant_name_en());
  }
  if (!from._internal_participant_name_hk().empty()) {
    _this->_internal_set_participant_name_hk(from._internal_participant_name_hk());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ParticipantInfo::CopyFrom(const ParticipantInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.ParticipantInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ParticipantInfo::IsInitialized() const {
  return true;
}

void ParticipantInfo::InternalSwap(ParticipantInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.broker_ids_.InternalSwap(&other->_impl_.broker_ids_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.participant_name_cn_, lhs_arena,
      &other->_impl_.participant_name_cn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.participant_name_en_, lhs_arena,
      &other->_impl_.participant_name_en_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.participant_name_hk_, lhs_arena,
      &other->_impl_.participant_name_hk_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata ParticipantInfo::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[18]);
}

// ===================================================================

class SecurityTradeRequest::_Internal {
 public:
};

SecurityTradeRequest::SecurityTradeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityTradeRequest)
}
SecurityTradeRequest::SecurityTradeRequest(const SecurityTradeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityTradeRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.count_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.count_ = from._impl_.count_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityTradeRequest)
}

inline void SecurityTradeRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.count_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityTradeRequest::~SecurityTradeRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityTradeRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityTradeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
}

void SecurityTradeRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityTradeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityTradeRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  _impl_.count_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityTradeRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityTradeRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int32 count = 2 [json_name = "count"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityTradeRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityTradeRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityTradeRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int32 count = 2 [json_name = "count"];
  if (this->_internal_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_count(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityTradeRequest)
  return target;
}

size_t SecurityTradeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityTradeRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int32 count = 2 [json_name = "count"];
  if (this->_internal_count() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_count());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityTradeRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityTradeRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityTradeRequest::GetClassData() const { return &_class_data_; }


void SecurityTradeRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityTradeRequest*>(&to_msg);
  auto& from = static_cast<const SecurityTradeRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityTradeRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_count() != 0) {
    _this->_internal_set_count(from._internal_count());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityTradeRequest::CopyFrom(const SecurityTradeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityTradeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityTradeRequest::IsInitialized() const {
  return true;
}

void SecurityTradeRequest::InternalSwap(SecurityTradeRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  swap(_impl_.count_, other->_impl_.count_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityTradeRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[19]);
}

// ===================================================================

class SecurityTradeResponse::_Internal {
 public:
};

SecurityTradeResponse::SecurityTradeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityTradeResponse)
}
SecurityTradeResponse::SecurityTradeResponse(const SecurityTradeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityTradeResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.trades_){from._impl_.trades_}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityTradeResponse)
}

inline void SecurityTradeResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.trades_){arena}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityTradeResponse::~SecurityTradeResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityTradeResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityTradeResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.trades_.~RepeatedPtrField();
  _impl_.symbol_.Destroy();
}

void SecurityTradeResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityTradeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityTradeResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.trades_.Clear();
  _impl_.symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityTradeResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityTradeResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Trade trades = 2 [json_name = "trades"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_trades(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityTradeResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityTradeResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityTradeResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.Trade trades = 2 [json_name = "trades"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_trades_size()); i < n; i++) {
    const auto& repfield = this->_internal_trades(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityTradeResponse)
  return target;
}

size_t SecurityTradeResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityTradeResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Trade trades = 2 [json_name = "trades"];
  total_size += 1UL * this->_internal_trades_size();
  for (const auto& msg : this->_impl_.trades_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityTradeResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityTradeResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityTradeResponse::GetClassData() const { return &_class_data_; }


void SecurityTradeResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityTradeResponse*>(&to_msg);
  auto& from = static_cast<const SecurityTradeResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityTradeResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.trades_.MergeFrom(from._impl_.trades_);
  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityTradeResponse::CopyFrom(const SecurityTradeResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityTradeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityTradeResponse::IsInitialized() const {
  return true;
}

void SecurityTradeResponse::InternalSwap(SecurityTradeResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.trades_.InternalSwap(&other->_impl_.trades_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityTradeResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[20]);
}

// ===================================================================

class Trade::_Internal {
 public:
};

Trade::Trade(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.Trade)
}
Trade::Trade(const Trade& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Trade* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.price_){}
    , decltype(_impl_.trade_type_){}
    , decltype(_impl_.volume_){}
    , decltype(_impl_.timestamp_){}
    , decltype(_impl_.direction_){}
    , decltype(_impl_.trade_session_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    _this->_impl_.price_.Set(from._internal_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.trade_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.trade_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_trade_type().empty()) {
    _this->_impl_.trade_type_.Set(from._internal_trade_type(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.volume_, &from._impl_.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.trade_session_) -
    reinterpret_cast<char*>(&_impl_.volume_)) + sizeof(_impl_.trade_session_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.Trade)
}

inline void Trade::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.price_){}
    , decltype(_impl_.trade_type_){}
    , decltype(_impl_.volume_){int64_t{0}}
    , decltype(_impl_.timestamp_){int64_t{0}}
    , decltype(_impl_.direction_){0}
    , decltype(_impl_.trade_session_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.trade_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.trade_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

Trade::~Trade() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.Trade)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Trade::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.price_.Destroy();
  _impl_.trade_type_.Destroy();
}

void Trade::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Trade::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.Trade)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.price_.ClearToEmpty();
  _impl_.trade_type_.ClearToEmpty();
  ::memset(&_impl_.volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.trade_session_) -
      reinterpret_cast<char*>(&_impl_.volume_)) + sizeof(_impl_.trade_session_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Trade::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string price = 1 [json_name = "price"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.Trade.price"));
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 2 [json_name = "volume"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 3 [json_name = "timestamp"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _impl_.timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string trade_type = 4 [json_name = "tradeType"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_trade_type();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.Trade.trade_type"));
        } else
          goto handle_unusual;
        continue;
      // int32 direction = 5 [json_name = "direction"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          _impl_.direction_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeSession trade_session = 6 [json_name = "tradeSession"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_session(static_cast<::longbridgeapp::quote::v1::TradeSession>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Trade::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.Trade)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Trade.price");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_price(), target);
  }

  // int64 volume = 2 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_volume(), target);
  }

  // int64 timestamp = 3 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(3, this->_internal_timestamp(), target);
  }

  // string trade_type = 4 [json_name = "tradeType"];
  if (!this->_internal_trade_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_trade_type().data(), static_cast<int>(this->_internal_trade_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Trade.trade_type");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_trade_type(), target);
  }

  // int32 direction = 5 [json_name = "direction"];
  if (this->_internal_direction() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(5, this->_internal_direction(), target);
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 6 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      6, this->_internal_trade_session(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.Trade)
  return target;
}

size_t Trade::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.Trade)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // string trade_type = 4 [json_name = "tradeType"];
  if (!this->_internal_trade_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_trade_type());
  }

  // int64 volume = 2 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int64 timestamp = 3 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int32 direction = 5 [json_name = "direction"];
  if (this->_internal_direction() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_direction());
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 6 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_session());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Trade::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Trade::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Trade::GetClassData() const { return &_class_data_; }


void Trade::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Trade*>(&to_msg);
  auto& from = static_cast<const Trade&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.Trade)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _this->_internal_set_price(from._internal_price());
  }
  if (!from._internal_trade_type().empty()) {
    _this->_internal_set_trade_type(from._internal_trade_type());
  }
  if (from._internal_volume() != 0) {
    _this->_internal_set_volume(from._internal_volume());
  }
  if (from._internal_timestamp() != 0) {
    _this->_internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_direction() != 0) {
    _this->_internal_set_direction(from._internal_direction());
  }
  if (from._internal_trade_session() != 0) {
    _this->_internal_set_trade_session(from._internal_trade_session());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Trade::CopyFrom(const Trade& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.Trade)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Trade::IsInitialized() const {
  return true;
}

void Trade::InternalSwap(Trade* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.price_, lhs_arena,
      &other->_impl_.price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.trade_type_, lhs_arena,
      &other->_impl_.trade_type_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Trade, _impl_.trade_session_)
      + sizeof(Trade::_impl_.trade_session_)
      - PROTOBUF_FIELD_OFFSET(Trade, _impl_.volume_)>(
          reinterpret_cast<char*>(&_impl_.volume_),
          reinterpret_cast<char*>(&other->_impl_.volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Trade::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[21]);
}

// ===================================================================

class SecurityIntradayRequest::_Internal {
 public:
};

SecurityIntradayRequest::SecurityIntradayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityIntradayRequest)
}
SecurityIntradayRequest::SecurityIntradayRequest(const SecurityIntradayRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityIntradayRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityIntradayRequest)
}

inline void SecurityIntradayRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityIntradayRequest::~SecurityIntradayRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityIntradayRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityIntradayRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
}

void SecurityIntradayRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityIntradayRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityIntradayRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityIntradayRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityIntradayRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityIntradayRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityIntradayRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityIntradayRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityIntradayRequest)
  return target;
}

size_t SecurityIntradayRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityIntradayRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityIntradayRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityIntradayRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityIntradayRequest::GetClassData() const { return &_class_data_; }


void SecurityIntradayRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityIntradayRequest*>(&to_msg);
  auto& from = static_cast<const SecurityIntradayRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityIntradayRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityIntradayRequest::CopyFrom(const SecurityIntradayRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityIntradayRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityIntradayRequest::IsInitialized() const {
  return true;
}

void SecurityIntradayRequest::InternalSwap(SecurityIntradayRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityIntradayRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[22]);
}

// ===================================================================

class SecurityIntradayResponse::_Internal {
 public:
};

SecurityIntradayResponse::SecurityIntradayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityIntradayResponse)
}
SecurityIntradayResponse::SecurityIntradayResponse(const SecurityIntradayResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityIntradayResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.lines_){from._impl_.lines_}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityIntradayResponse)
}

inline void SecurityIntradayResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.lines_){arena}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityIntradayResponse::~SecurityIntradayResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityIntradayResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityIntradayResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.lines_.~RepeatedPtrField();
  _impl_.symbol_.Destroy();
}

void SecurityIntradayResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityIntradayResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityIntradayResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.lines_.Clear();
  _impl_.symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityIntradayResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityIntradayResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Line lines = 2 [json_name = "lines"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_lines(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityIntradayResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityIntradayResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityIntradayResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.Line lines = 2 [json_name = "lines"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_lines_size()); i < n; i++) {
    const auto& repfield = this->_internal_lines(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityIntradayResponse)
  return target;
}

size_t SecurityIntradayResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityIntradayResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Line lines = 2 [json_name = "lines"];
  total_size += 1UL * this->_internal_lines_size();
  for (const auto& msg : this->_impl_.lines_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityIntradayResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityIntradayResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityIntradayResponse::GetClassData() const { return &_class_data_; }


void SecurityIntradayResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityIntradayResponse*>(&to_msg);
  auto& from = static_cast<const SecurityIntradayResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityIntradayResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.lines_.MergeFrom(from._impl_.lines_);
  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityIntradayResponse::CopyFrom(const SecurityIntradayResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityIntradayResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityIntradayResponse::IsInitialized() const {
  return true;
}

void SecurityIntradayResponse::InternalSwap(SecurityIntradayResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.lines_.InternalSwap(&other->_impl_.lines_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityIntradayResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[23]);
}

// ===================================================================

class Line::_Internal {
 public:
};

Line::Line(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.Line)
}
Line::Line(const Line& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Line* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.price_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.avg_price_){}
    , decltype(_impl_.timestamp_){}
    , decltype(_impl_.volume_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    _this->_impl_.price_.Set(from._internal_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    _this->_impl_.turnover_.Set(from._internal_turnover(), 
      _this->GetArenaForAllocation());
  }
  _impl_.avg_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.avg_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_avg_price().empty()) {
    _this->_impl_.avg_price_.Set(from._internal_avg_price(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.timestamp_, &from._impl_.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.volume_) -
    reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.volume_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.Line)
}

inline void Line::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.price_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.avg_price_){}
    , decltype(_impl_.timestamp_){int64_t{0}}
    , decltype(_impl_.volume_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.avg_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.avg_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

Line::~Line() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.Line)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Line::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.price_.Destroy();
  _impl_.turnover_.Destroy();
  _impl_.avg_price_.Destroy();
}

void Line::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Line::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.Line)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.price_.ClearToEmpty();
  _impl_.turnover_.ClearToEmpty();
  _impl_.avg_price_.ClearToEmpty();
  ::memset(&_impl_.timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.volume_) -
      reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.volume_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Line::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string price = 1 [json_name = "price"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.Line.price"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 2 [json_name = "timestamp"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 3 [json_name = "volume"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _impl_.volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 4 [json_name = "turnover"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.Line.turnover"));
        } else
          goto handle_unusual;
        continue;
      // string avg_price = 5 [json_name = "avgPrice"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_avg_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.Line.avg_price"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Line::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.Line)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Line.price");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_price(), target);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_timestamp(), target);
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(3, this->_internal_volume(), target);
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Line.turnover");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_turnover(), target);
  }

  // string avg_price = 5 [json_name = "avgPrice"];
  if (!this->_internal_avg_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_avg_price().data(), static_cast<int>(this->_internal_avg_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Line.avg_price");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_avg_price(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.Line)
  return target;
}

size_t Line::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.Line)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string avg_price = 5 [json_name = "avgPrice"];
  if (!this->_internal_avg_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_avg_price());
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Line::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Line::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Line::GetClassData() const { return &_class_data_; }


void Line::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Line*>(&to_msg);
  auto& from = static_cast<const Line&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.Line)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _this->_internal_set_price(from._internal_price());
  }
  if (!from._internal_turnover().empty()) {
    _this->_internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_avg_price().empty()) {
    _this->_internal_set_avg_price(from._internal_avg_price());
  }
  if (from._internal_timestamp() != 0) {
    _this->_internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _this->_internal_set_volume(from._internal_volume());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Line::CopyFrom(const Line& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.Line)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Line::IsInitialized() const {
  return true;
}

void Line::InternalSwap(Line* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.price_, lhs_arena,
      &other->_impl_.price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.turnover_, lhs_arena,
      &other->_impl_.turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.avg_price_, lhs_arena,
      &other->_impl_.avg_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Line, _impl_.volume_)
      + sizeof(Line::_impl_.volume_)
      - PROTOBUF_FIELD_OFFSET(Line, _impl_.timestamp_)>(
          reinterpret_cast<char*>(&_impl_.timestamp_),
          reinterpret_cast<char*>(&other->_impl_.timestamp_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Line::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[24]);
}

// ===================================================================

class SecurityCandlestickRequest::_Internal {
 public:
};

SecurityCandlestickRequest::SecurityCandlestickRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityCandlestickRequest)
}
SecurityCandlestickRequest::SecurityCandlestickRequest(const SecurityCandlestickRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityCandlestickRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.period_){}
    , decltype(_impl_.count_){}
    , decltype(_impl_.adjust_type_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.period_, &from._impl_.period_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.adjust_type_) -
    reinterpret_cast<char*>(&_impl_.period_)) + sizeof(_impl_.adjust_type_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityCandlestickRequest)
}

inline void SecurityCandlestickRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.period_){0}
    , decltype(_impl_.count_){0}
    , decltype(_impl_.adjust_type_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityCandlestickRequest::~SecurityCandlestickRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityCandlestickRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
}

void SecurityCandlestickRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityCandlestickRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  ::memset(&_impl_.period_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.adjust_type_) -
      reinterpret_cast<char*>(&_impl_.period_)) + sizeof(_impl_.adjust_type_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCandlestickRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCandlestickRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.Period period = 2 [json_name = "period"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_period(static_cast<::longbridgeapp::quote::v1::Period>(val));
        } else
          goto handle_unusual;
        continue;
      // int32 count = 3 [json_name = "count"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _impl_.count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.AdjustType adjust_type = 4 [json_name = "adjustType"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_adjust_type(static_cast<::longbridgeapp::quote::v1::AdjustType>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCandlestickRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCandlestickRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // .longbridgeapp.quote.v1.Period period = 2 [json_name = "period"];
  if (this->_internal_period() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      2, this->_internal_period(), target);
  }

  // int32 count = 3 [json_name = "count"];
  if (this->_internal_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_count(), target);
  }

  // .longbridgeapp.quote.v1.AdjustType adjust_type = 4 [json_name = "adjustType"];
  if (this->_internal_adjust_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      4, this->_internal_adjust_type(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  return target;
}

size_t SecurityCandlestickRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // .longbridgeapp.quote.v1.Period period = 2 [json_name = "period"];
  if (this->_internal_period() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_period());
  }

  // int32 count = 3 [json_name = "count"];
  if (this->_internal_count() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_count());
  }

  // .longbridgeapp.quote.v1.AdjustType adjust_type = 4 [json_name = "adjustType"];
  if (this->_internal_adjust_type() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_adjust_type());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCandlestickRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityCandlestickRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCandlestickRequest::GetClassData() const { return &_class_data_; }


void SecurityCandlestickRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityCandlestickRequest*>(&to_msg);
  auto& from = static_cast<const SecurityCandlestickRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_period() != 0) {
    _this->_internal_set_period(from._internal_period());
  }
  if (from._internal_count() != 0) {
    _this->_internal_set_count(from._internal_count());
  }
  if (from._internal_adjust_type() != 0) {
    _this->_internal_set_adjust_type(from._internal_adjust_type());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCandlestickRequest::CopyFrom(const SecurityCandlestickRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCandlestickRequest::IsInitialized() const {
  return true;
}

void SecurityCandlestickRequest::InternalSwap(SecurityCandlestickRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SecurityCandlestickRequest, _impl_.adjust_type_)
      + sizeof(SecurityCandlestickRequest::_impl_.adjust_type_)
      - PROTOBUF_FIELD_OFFSET(SecurityCandlestickRequest, _impl_.period_)>(
          reinterpret_cast<char*>(&_impl_.period_),
          reinterpret_cast<char*>(&other->_impl_.period_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCandlestickRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[25]);
}

// ===================================================================

class SecurityCandlestickResponse::_Internal {
 public:
};

SecurityCandlestickResponse::SecurityCandlestickResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityCandlestickResponse)
}
SecurityCandlestickResponse::SecurityCandlestickResponse(const SecurityCandlestickResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityCandlestickResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.candlesticks_){from._impl_.candlesticks_}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityCandlestickResponse)
}

inline void SecurityCandlestickResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.candlesticks_){arena}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityCandlestickResponse::~SecurityCandlestickResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityCandlestickResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.candlesticks_.~RepeatedPtrField();
  _impl_.symbol_.Destroy();
}

void SecurityCandlestickResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityCandlestickResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.candlesticks_.Clear();
  _impl_.symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCandlestickResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCandlestickResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Candlestick candlesticks = 2 [json_name = "candlesticks"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_candlesticks(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCandlestickResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCandlestickResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.Candlestick candlesticks = 2 [json_name = "candlesticks"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_candlesticks_size()); i < n; i++) {
    const auto& repfield = this->_internal_candlesticks(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  return target;
}

size_t SecurityCandlestickResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Candlestick candlesticks = 2 [json_name = "candlesticks"];
  total_size += 1UL * this->_internal_candlesticks_size();
  for (const auto& msg : this->_impl_.candlesticks_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCandlestickResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityCandlestickResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCandlestickResponse::GetClassData() const { return &_class_data_; }


void SecurityCandlestickResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityCandlestickResponse*>(&to_msg);
  auto& from = static_cast<const SecurityCandlestickResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.candlesticks_.MergeFrom(from._impl_.candlesticks_);
  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCandlestickResponse::CopyFrom(const SecurityCandlestickResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCandlestickResponse::IsInitialized() const {
  return true;
}

void SecurityCandlestickResponse::InternalSwap(SecurityCandlestickResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.candlesticks_.InternalSwap(&other->_impl_.candlesticks_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCandlestickResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[26]);
}

// ===================================================================

class Candlestick::_Internal {
 public:
};

Candlestick::Candlestick(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.Candlestick)
}
Candlestick::Candlestick(const Candlestick& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Candlestick* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.close_){}
    , decltype(_impl_.open_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.volume_){}
    , decltype(_impl_.timestamp_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_close().empty()) {
    _this->_impl_.close_.Set(from._internal_close(), 
      _this->GetArenaForAllocation());
  }
  _impl_.open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    _this->_impl_.open_.Set(from._internal_open(), 
      _this->GetArenaForAllocation());
  }
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    _this->_impl_.low_.Set(from._internal_low(), 
      _this->GetArenaForAllocation());
  }
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    _this->_impl_.high_.Set(from._internal_high(), 
      _this->GetArenaForAllocation());
  }
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    _this->_impl_.turnover_.Set(from._internal_turnover(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.volume_, &from._impl_.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.timestamp_) -
    reinterpret_cast<char*>(&_impl_.volume_)) + sizeof(_impl_.timestamp_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.Candlestick)
}

inline void Candlestick::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.close_){}
    , decltype(_impl_.open_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.volume_){int64_t{0}}
    , decltype(_impl_.timestamp_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

Candlestick::~Candlestick() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.Candlestick)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Candlestick::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.close_.Destroy();
  _impl_.open_.Destroy();
  _impl_.low_.Destroy();
  _impl_.high_.Destroy();
  _impl_.turnover_.Destroy();
}

void Candlestick::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Candlestick::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.Candlestick)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.close_.ClearToEmpty();
  _impl_.open_.ClearToEmpty();
  _impl_.low_.ClearToEmpty();
  _impl_.high_.ClearToEmpty();
  _impl_.turnover_.ClearToEmpty();
  ::memset(&_impl_.volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.timestamp_) -
      reinterpret_cast<char*>(&_impl_.volume_)) + sizeof(_impl_.timestamp_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Candlestick::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string close = 1 [json_name = "close"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_close();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.Candlestick.close"));
        } else
          goto handle_unusual;
        continue;
      // string open = 2 [json_name = "open"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_open();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.Candlestick.open"));
        } else
          goto handle_unusual;
        continue;
      // string low = 3 [json_name = "low"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.Candlestick.low"));
        } else
          goto handle_unusual;
        continue;
      // string high = 4 [json_name = "high"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.Candlestick.high"));
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 5 [json_name = "volume"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          _impl_.volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 6 [json_name = "turnover"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.Candlestick.turnover"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          _impl_.timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Candlestick::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.Candlestick)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string close = 1 [json_name = "close"];
  if (!this->_internal_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_close().data(), static_cast<int>(this->_internal_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Candlestick.close");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_close(), target);
  }

  // string open = 2 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Candlestick.open");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_open(), target);
  }

  // string low = 3 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Candlestick.low");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_low(), target);
  }

  // string high = 4 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Candlestick.high");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_high(), target);
  }

  // int64 volume = 5 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(5, this->_internal_volume(), target);
  }

  // string turnover = 6 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Candlestick.turnover");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_turnover(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.Candlestick)
  return target;
}

size_t Candlestick::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.Candlestick)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string close = 1 [json_name = "close"];
  if (!this->_internal_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_close());
  }

  // string open = 2 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string low = 3 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string high = 4 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string turnover = 6 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // int64 volume = 5 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Candlestick::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Candlestick::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Candlestick::GetClassData() const { return &_class_data_; }


void Candlestick::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Candlestick*>(&to_msg);
  auto& from = static_cast<const Candlestick&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.Candlestick)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_close().empty()) {
    _this->_internal_set_close(from._internal_close());
  }
  if (!from._internal_open().empty()) {
    _this->_internal_set_open(from._internal_open());
  }
  if (!from._internal_low().empty()) {
    _this->_internal_set_low(from._internal_low());
  }
  if (!from._internal_high().empty()) {
    _this->_internal_set_high(from._internal_high());
  }
  if (!from._internal_turnover().empty()) {
    _this->_internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_volume() != 0) {
    _this->_internal_set_volume(from._internal_volume());
  }
  if (from._internal_timestamp() != 0) {
    _this->_internal_set_timestamp(from._internal_timestamp());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Candlestick::CopyFrom(const Candlestick& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.Candlestick)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Candlestick::IsInitialized() const {
  return true;
}

void Candlestick::InternalSwap(Candlestick* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.close_, lhs_arena,
      &other->_impl_.close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.open_, lhs_arena,
      &other->_impl_.open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.low_, lhs_arena,
      &other->_impl_.low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.high_, lhs_arena,
      &other->_impl_.high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.turnover_, lhs_arena,
      &other->_impl_.turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Candlestick, _impl_.timestamp_)
      + sizeof(Candlestick::_impl_.timestamp_)
      - PROTOBUF_FIELD_OFFSET(Candlestick, _impl_.volume_)>(
          reinterpret_cast<char*>(&_impl_.volume_),
          reinterpret_cast<char*>(&other->_impl_.volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Candlestick::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[27]);
}

// ===================================================================

class OptionChainDateListResponse::_Internal {
 public:
};

OptionChainDateListResponse::OptionChainDateListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionChainDateListResponse)
}
OptionChainDateListResponse::OptionChainDateListResponse(const OptionChainDateListResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OptionChainDateListResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.expiry_date_){from._impl_.expiry_date_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionChainDateListResponse)
}

inline void OptionChainDateListResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.expiry_date_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

OptionChainDateListResponse::~OptionChainDateListResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionChainDateListResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionChainDateListResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.expiry_date_.~RepeatedPtrField();
}

void OptionChainDateListResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OptionChainDateListResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionChainDateListResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.expiry_date_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionChainDateListResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string expiry_date = 1 [json_name = "expiryDate"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_expiry_date();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionChainDateListResponse.expiry_date"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionChainDateListResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionChainDateListResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string expiry_date = 1 [json_name = "expiryDate"];
  for (int i = 0, n = this->_internal_expiry_date_size(); i < n; i++) {
    const auto& s = this->_internal_expiry_date(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionChainDateListResponse.expiry_date");
    target = stream->WriteString(1, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionChainDateListResponse)
  return target;
}

size_t OptionChainDateListResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionChainDateListResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string expiry_date = 1 [json_name = "expiryDate"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.expiry_date_.size());
  for (int i = 0, n = _impl_.expiry_date_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.expiry_date_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionChainDateListResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OptionChainDateListResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionChainDateListResponse::GetClassData() const { return &_class_data_; }


void OptionChainDateListResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OptionChainDateListResponse*>(&to_msg);
  auto& from = static_cast<const OptionChainDateListResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionChainDateListResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.expiry_date_.MergeFrom(from._impl_.expiry_date_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionChainDateListResponse::CopyFrom(const OptionChainDateListResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionChainDateListResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionChainDateListResponse::IsInitialized() const {
  return true;
}

void OptionChainDateListResponse::InternalSwap(OptionChainDateListResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.expiry_date_.InternalSwap(&other->_impl_.expiry_date_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionChainDateListResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[28]);
}

// ===================================================================

class OptionChainDateStrikeInfoRequest::_Internal {
 public:
};

OptionChainDateStrikeInfoRequest::OptionChainDateStrikeInfoRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
}
OptionChainDateStrikeInfoRequest::OptionChainDateStrikeInfoRequest(const OptionChainDateStrikeInfoRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OptionChainDateStrikeInfoRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.expiry_date_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _impl_.expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    _this->_impl_.expiry_date_.Set(from._internal_expiry_date(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
}

inline void OptionChainDateStrikeInfoRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.expiry_date_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OptionChainDateStrikeInfoRequest::~OptionChainDateStrikeInfoRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionChainDateStrikeInfoRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
  _impl_.expiry_date_.Destroy();
}

void OptionChainDateStrikeInfoRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OptionChainDateStrikeInfoRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  _impl_.expiry_date_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionChainDateStrikeInfoRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 2 [json_name = "expiryDate"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest.expiry_date"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionChainDateStrikeInfoRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest.expiry_date");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_expiry_date(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  return target;
}

size_t OptionChainDateStrikeInfoRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionChainDateStrikeInfoRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OptionChainDateStrikeInfoRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionChainDateStrikeInfoRequest::GetClassData() const { return &_class_data_; }


void OptionChainDateStrikeInfoRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OptionChainDateStrikeInfoRequest*>(&to_msg);
  auto& from = static_cast<const OptionChainDateStrikeInfoRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_expiry_date().empty()) {
    _this->_internal_set_expiry_date(from._internal_expiry_date());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionChainDateStrikeInfoRequest::CopyFrom(const OptionChainDateStrikeInfoRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionChainDateStrikeInfoRequest::IsInitialized() const {
  return true;
}

void OptionChainDateStrikeInfoRequest::InternalSwap(OptionChainDateStrikeInfoRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.expiry_date_, lhs_arena,
      &other->_impl_.expiry_date_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionChainDateStrikeInfoRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[29]);
}

// ===================================================================

class OptionChainDateStrikeInfoResponse::_Internal {
 public:
};

OptionChainDateStrikeInfoResponse::OptionChainDateStrikeInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
}
OptionChainDateStrikeInfoResponse::OptionChainDateStrikeInfoResponse(const OptionChainDateStrikeInfoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OptionChainDateStrikeInfoResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.strike_price_info_){from._impl_.strike_price_info_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
}

inline void OptionChainDateStrikeInfoResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.strike_price_info_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

OptionChainDateStrikeInfoResponse::~OptionChainDateStrikeInfoResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionChainDateStrikeInfoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.strike_price_info_.~RepeatedPtrField();
}

void OptionChainDateStrikeInfoResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OptionChainDateStrikeInfoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.strike_price_info_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionChainDateStrikeInfoResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.StrikePriceInfo strike_price_info = 1 [json_name = "strikePriceInfo"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_strike_price_info(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionChainDateStrikeInfoResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.StrikePriceInfo strike_price_info = 1 [json_name = "strikePriceInfo"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_strike_price_info_size()); i < n; i++) {
    const auto& repfield = this->_internal_strike_price_info(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  return target;
}

size_t OptionChainDateStrikeInfoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.StrikePriceInfo strike_price_info = 1 [json_name = "strikePriceInfo"];
  total_size += 1UL * this->_internal_strike_price_info_size();
  for (const auto& msg : this->_impl_.strike_price_info_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionChainDateStrikeInfoResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OptionChainDateStrikeInfoResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionChainDateStrikeInfoResponse::GetClassData() const { return &_class_data_; }


void OptionChainDateStrikeInfoResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OptionChainDateStrikeInfoResponse*>(&to_msg);
  auto& from = static_cast<const OptionChainDateStrikeInfoResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.strike_price_info_.MergeFrom(from._impl_.strike_price_info_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionChainDateStrikeInfoResponse::CopyFrom(const OptionChainDateStrikeInfoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionChainDateStrikeInfoResponse::IsInitialized() const {
  return true;
}

void OptionChainDateStrikeInfoResponse::InternalSwap(OptionChainDateStrikeInfoResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.strike_price_info_.InternalSwap(&other->_impl_.strike_price_info_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionChainDateStrikeInfoResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[30]);
}

// ===================================================================

class StrikePriceInfo::_Internal {
 public:
};

StrikePriceInfo::StrikePriceInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.StrikePriceInfo)
}
StrikePriceInfo::StrikePriceInfo(const StrikePriceInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  StrikePriceInfo* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.price_){}
    , decltype(_impl_.call_symbol_){}
    , decltype(_impl_.put_symbol_){}
    , decltype(_impl_.standard_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    _this->_impl_.price_.Set(from._internal_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.call_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.call_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_call_symbol().empty()) {
    _this->_impl_.call_symbol_.Set(from._internal_call_symbol(), 
      _this->GetArenaForAllocation());
  }
  _impl_.put_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.put_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_put_symbol().empty()) {
    _this->_impl_.put_symbol_.Set(from._internal_put_symbol(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.standard_ = from._impl_.standard_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.StrikePriceInfo)
}

inline void StrikePriceInfo::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.price_){}
    , decltype(_impl_.call_symbol_){}
    , decltype(_impl_.put_symbol_){}
    , decltype(_impl_.standard_){false}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.call_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.call_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.put_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.put_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

StrikePriceInfo::~StrikePriceInfo() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.StrikePriceInfo)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void StrikePriceInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.price_.Destroy();
  _impl_.call_symbol_.Destroy();
  _impl_.put_symbol_.Destroy();
}

void StrikePriceInfo::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void StrikePriceInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.StrikePriceInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.price_.ClearToEmpty();
  _impl_.call_symbol_.ClearToEmpty();
  _impl_.put_symbol_.ClearToEmpty();
  _impl_.standard_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* StrikePriceInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string price = 1 [json_name = "price"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StrikePriceInfo.price"));
        } else
          goto handle_unusual;
        continue;
      // string call_symbol = 2 [json_name = "callSymbol"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_call_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StrikePriceInfo.call_symbol"));
        } else
          goto handle_unusual;
        continue;
      // string put_symbol = 3 [json_name = "putSymbol"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_put_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.StrikePriceInfo.put_symbol"));
        } else
          goto handle_unusual;
        continue;
      // bool standard = 4 [json_name = "standard"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _impl_.standard_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* StrikePriceInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.StrikePriceInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StrikePriceInfo.price");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_price(), target);
  }

  // string call_symbol = 2 [json_name = "callSymbol"];
  if (!this->_internal_call_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_call_symbol().data(), static_cast<int>(this->_internal_call_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StrikePriceInfo.call_symbol");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_call_symbol(), target);
  }

  // string put_symbol = 3 [json_name = "putSymbol"];
  if (!this->_internal_put_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_put_symbol().data(), static_cast<int>(this->_internal_put_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StrikePriceInfo.put_symbol");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_put_symbol(), target);
  }

  // bool standard = 4 [json_name = "standard"];
  if (this->_internal_standard() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(4, this->_internal_standard(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.StrikePriceInfo)
  return target;
}

size_t StrikePriceInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.StrikePriceInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // string call_symbol = 2 [json_name = "callSymbol"];
  if (!this->_internal_call_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_call_symbol());
  }

  // string put_symbol = 3 [json_name = "putSymbol"];
  if (!this->_internal_put_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_put_symbol());
  }

  // bool standard = 4 [json_name = "standard"];
  if (this->_internal_standard() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData StrikePriceInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    StrikePriceInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*StrikePriceInfo::GetClassData() const { return &_class_data_; }


void StrikePriceInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<StrikePriceInfo*>(&to_msg);
  auto& from = static_cast<const StrikePriceInfo&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.StrikePriceInfo)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _this->_internal_set_price(from._internal_price());
  }
  if (!from._internal_call_symbol().empty()) {
    _this->_internal_set_call_symbol(from._internal_call_symbol());
  }
  if (!from._internal_put_symbol().empty()) {
    _this->_internal_set_put_symbol(from._internal_put_symbol());
  }
  if (from._internal_standard() != 0) {
    _this->_internal_set_standard(from._internal_standard());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void StrikePriceInfo::CopyFrom(const StrikePriceInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.StrikePriceInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool StrikePriceInfo::IsInitialized() const {
  return true;
}

void StrikePriceInfo::InternalSwap(StrikePriceInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.price_, lhs_arena,
      &other->_impl_.price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.call_symbol_, lhs_arena,
      &other->_impl_.call_symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.put_symbol_, lhs_arena,
      &other->_impl_.put_symbol_, rhs_arena
  );
  swap(_impl_.standard_, other->_impl_.standard_);
}

::PROTOBUF_NAMESPACE_ID::Metadata StrikePriceInfo::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[31]);
}

// ===================================================================

class IssuerInfoResponse::_Internal {
 public:
};

IssuerInfoResponse::IssuerInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.IssuerInfoResponse)
}
IssuerInfoResponse::IssuerInfoResponse(const IssuerInfoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  IssuerInfoResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.issuer_info_){from._impl_.issuer_info_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.IssuerInfoResponse)
}

inline void IssuerInfoResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.issuer_info_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

IssuerInfoResponse::~IssuerInfoResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.IssuerInfoResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void IssuerInfoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.issuer_info_.~RepeatedPtrField();
}

void IssuerInfoResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void IssuerInfoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.IssuerInfoResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.issuer_info_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* IssuerInfoResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.IssuerInfo issuer_info = 1 [json_name = "issuerInfo"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_issuer_info(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* IssuerInfoResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.IssuerInfoResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.IssuerInfo issuer_info = 1 [json_name = "issuerInfo"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_issuer_info_size()); i < n; i++) {
    const auto& repfield = this->_internal_issuer_info(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.IssuerInfoResponse)
  return target;
}

size_t IssuerInfoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.IssuerInfoResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.IssuerInfo issuer_info = 1 [json_name = "issuerInfo"];
  total_size += 1UL * this->_internal_issuer_info_size();
  for (const auto& msg : this->_impl_.issuer_info_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IssuerInfoResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    IssuerInfoResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IssuerInfoResponse::GetClassData() const { return &_class_data_; }


void IssuerInfoResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<IssuerInfoResponse*>(&to_msg);
  auto& from = static_cast<const IssuerInfoResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.IssuerInfoResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.issuer_info_.MergeFrom(from._impl_.issuer_info_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void IssuerInfoResponse::CopyFrom(const IssuerInfoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.IssuerInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool IssuerInfoResponse::IsInitialized() const {
  return true;
}

void IssuerInfoResponse::InternalSwap(IssuerInfoResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.issuer_info_.InternalSwap(&other->_impl_.issuer_info_);
}

::PROTOBUF_NAMESPACE_ID::Metadata IssuerInfoResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[32]);
}

// ===================================================================

class IssuerInfo::_Internal {
 public:
};

IssuerInfo::IssuerInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.IssuerInfo)
}
IssuerInfo::IssuerInfo(const IssuerInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  IssuerInfo* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.name_cn_){}
    , decltype(_impl_.name_en_){}
    , decltype(_impl_.name_hk_){}
    , decltype(_impl_.id_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.name_cn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_cn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_cn().empty()) {
    _this->_impl_.name_cn_.Set(from._internal_name_cn(), 
      _this->GetArenaForAllocation());
  }
  _impl_.name_en_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_en_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_en().empty()) {
    _this->_impl_.name_en_.Set(from._internal_name_en(), 
      _this->GetArenaForAllocation());
  }
  _impl_.name_hk_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_hk_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_hk().empty()) {
    _this->_impl_.name_hk_.Set(from._internal_name_hk(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.id_ = from._impl_.id_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.IssuerInfo)
}

inline void IssuerInfo::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.name_cn_){}
    , decltype(_impl_.name_en_){}
    , decltype(_impl_.name_hk_){}
    , decltype(_impl_.id_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.name_cn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_cn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.name_en_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_en_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.name_hk_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_hk_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

IssuerInfo::~IssuerInfo() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.IssuerInfo)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void IssuerInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.name_cn_.Destroy();
  _impl_.name_en_.Destroy();
  _impl_.name_hk_.Destroy();
}

void IssuerInfo::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void IssuerInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.IssuerInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.name_cn_.ClearToEmpty();
  _impl_.name_en_.ClearToEmpty();
  _impl_.name_hk_.ClearToEmpty();
  _impl_.id_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* IssuerInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 id = 1 [json_name = "id"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _impl_.id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name_cn = 2 [json_name = "nameCn"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_name_cn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.IssuerInfo.name_cn"));
        } else
          goto handle_unusual;
        continue;
      // string name_en = 3 [json_name = "nameEn"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_name_en();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.IssuerInfo.name_en"));
        } else
          goto handle_unusual;
        continue;
      // string name_hk = 4 [json_name = "nameHk"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_name_hk();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.IssuerInfo.name_hk"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* IssuerInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.IssuerInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 id = 1 [json_name = "id"];
  if (this->_internal_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_id(), target);
  }

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_cn().data(), static_cast<int>(this->_internal_name_cn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.IssuerInfo.name_cn");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name_cn(), target);
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_en().data(), static_cast<int>(this->_internal_name_en().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.IssuerInfo.name_en");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_name_en(), target);
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_hk().data(), static_cast<int>(this->_internal_name_hk().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.IssuerInfo.name_hk");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_name_hk(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.IssuerInfo)
  return target;
}

size_t IssuerInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.IssuerInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_cn());
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_en());
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_hk());
  }

  // int32 id = 1 [json_name = "id"];
  if (this->_internal_id() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_id());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IssuerInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    IssuerInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IssuerInfo::GetClassData() const { return &_class_data_; }


void IssuerInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<IssuerInfo*>(&to_msg);
  auto& from = static_cast<const IssuerInfo&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.IssuerInfo)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_name_cn().empty()) {
    _this->_internal_set_name_cn(from._internal_name_cn());
  }
  if (!from._internal_name_en().empty()) {
    _this->_internal_set_name_en(from._internal_name_en());
  }
  if (!from._internal_name_hk().empty()) {
    _this->_internal_set_name_hk(from._internal_name_hk());
  }
  if (from._internal_id() != 0) {
    _this->_internal_set_id(from._internal_id());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void IssuerInfo::CopyFrom(const IssuerInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.IssuerInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool IssuerInfo::IsInitialized() const {
  return true;
}

void IssuerInfo::InternalSwap(IssuerInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_cn_, lhs_arena,
      &other->_impl_.name_cn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_en_, lhs_arena,
      &other->_impl_.name_en_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_hk_, lhs_arena,
      &other->_impl_.name_hk_, rhs_arena
  );
  swap(_impl_.id_, other->_impl_.id_);
}

::PROTOBUF_NAMESPACE_ID::Metadata IssuerInfo::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[33]);
}

// ===================================================================

class WarrantFilterListRequest::_Internal {
 public:
  static const ::longbridgeapp::quote::v1::FilterConfig& filter_config(const WarrantFilterListRequest* msg);
};

const ::longbridgeapp::quote::v1::FilterConfig&
WarrantFilterListRequest::_Internal::filter_config(const WarrantFilterListRequest* msg) {
  return *msg->_impl_.filter_config_;
}
WarrantFilterListRequest::WarrantFilterListRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.WarrantFilterListRequest)
}
WarrantFilterListRequest::WarrantFilterListRequest(const WarrantFilterListRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  WarrantFilterListRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.filter_config_){nullptr}
    , decltype(_impl_.language_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_filter_config()) {
    _this->_impl_.filter_config_ = new ::longbridgeapp::quote::v1::FilterConfig(*from._impl_.filter_config_);
  }
  _this->_impl_.language_ = from._impl_.language_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.WarrantFilterListRequest)
}

inline void WarrantFilterListRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.filter_config_){nullptr}
    , decltype(_impl_.language_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

WarrantFilterListRequest::~WarrantFilterListRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.WarrantFilterListRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void WarrantFilterListRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
  if (this != internal_default_instance()) delete _impl_.filter_config_;
}

void WarrantFilterListRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void WarrantFilterListRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.WarrantFilterListRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && _impl_.filter_config_ != nullptr) {
    delete _impl_.filter_config_;
  }
  _impl_.filter_config_ = nullptr;
  _impl_.language_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantFilterListRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantFilterListRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.FilterConfig filter_config = 2 [json_name = "filterConfig"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_filter_config(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 language = 3 [json_name = "language"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _impl_.language_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantFilterListRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.WarrantFilterListRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantFilterListRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // .longbridgeapp.quote.v1.FilterConfig filter_config = 2 [json_name = "filterConfig"];
  if (this->_internal_has_filter_config()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, _Internal::filter_config(this),
        _Internal::filter_config(this).GetCachedSize(), target, stream);
  }

  // int32 language = 3 [json_name = "language"];
  if (this->_internal_language() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_language(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.WarrantFilterListRequest)
  return target;
}

size_t WarrantFilterListRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.WarrantFilterListRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // .longbridgeapp.quote.v1.FilterConfig filter_config = 2 [json_name = "filterConfig"];
  if (this->_internal_has_filter_config()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.filter_config_);
  }

  // int32 language = 3 [json_name = "language"];
  if (this->_internal_language() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_language());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantFilterListRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    WarrantFilterListRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantFilterListRequest::GetClassData() const { return &_class_data_; }


void WarrantFilterListRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<WarrantFilterListRequest*>(&to_msg);
  auto& from = static_cast<const WarrantFilterListRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.WarrantFilterListRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_has_filter_config()) {
    _this->_internal_mutable_filter_config()->::longbridgeapp::quote::v1::FilterConfig::MergeFrom(
        from._internal_filter_config());
  }
  if (from._internal_language() != 0) {
    _this->_internal_set_language(from._internal_language());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantFilterListRequest::CopyFrom(const WarrantFilterListRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.WarrantFilterListRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantFilterListRequest::IsInitialized() const {
  return true;
}

void WarrantFilterListRequest::InternalSwap(WarrantFilterListRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(WarrantFilterListRequest, _impl_.language_)
      + sizeof(WarrantFilterListRequest::_impl_.language_)
      - PROTOBUF_FIELD_OFFSET(WarrantFilterListRequest, _impl_.filter_config_)>(
          reinterpret_cast<char*>(&_impl_.filter_config_),
          reinterpret_cast<char*>(&other->_impl_.filter_config_));
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantFilterListRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[34]);
}

// ===================================================================

class FilterConfig::_Internal {
 public:
};

FilterConfig::FilterConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.FilterConfig)
}
FilterConfig::FilterConfig(const FilterConfig& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  FilterConfig* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){from._impl_.type_}
    , /*decltype(_impl_._type_cached_byte_size_)*/{0}
    , decltype(_impl_.issuer_){from._impl_.issuer_}
    , /*decltype(_impl_._issuer_cached_byte_size_)*/{0}
    , decltype(_impl_.expiry_date_){from._impl_.expiry_date_}
    , /*decltype(_impl_._expiry_date_cached_byte_size_)*/{0}
    , decltype(_impl_.price_type_){from._impl_.price_type_}
    , /*decltype(_impl_._price_type_cached_byte_size_)*/{0}
    , decltype(_impl_.status_){from._impl_.status_}
    , /*decltype(_impl_._status_cached_byte_size_)*/{0}
    , decltype(_impl_.sort_by_){}
    , decltype(_impl_.sort_order_){}
    , decltype(_impl_.sort_offset_){}
    , decltype(_impl_.sort_count_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.sort_by_, &from._impl_.sort_by_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.sort_count_) -
    reinterpret_cast<char*>(&_impl_.sort_by_)) + sizeof(_impl_.sort_count_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.FilterConfig)
}

inline void FilterConfig::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.type_){arena}
    , /*decltype(_impl_._type_cached_byte_size_)*/{0}
    , decltype(_impl_.issuer_){arena}
    , /*decltype(_impl_._issuer_cached_byte_size_)*/{0}
    , decltype(_impl_.expiry_date_){arena}
    , /*decltype(_impl_._expiry_date_cached_byte_size_)*/{0}
    , decltype(_impl_.price_type_){arena}
    , /*decltype(_impl_._price_type_cached_byte_size_)*/{0}
    , decltype(_impl_.status_){arena}
    , /*decltype(_impl_._status_cached_byte_size_)*/{0}
    , decltype(_impl_.sort_by_){0}
    , decltype(_impl_.sort_order_){0}
    , decltype(_impl_.sort_offset_){0}
    , decltype(_impl_.sort_count_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

FilterConfig::~FilterConfig() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.FilterConfig)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void FilterConfig::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.type_.~RepeatedField();
  _impl_.issuer_.~RepeatedField();
  _impl_.expiry_date_.~RepeatedField();
  _impl_.price_type_.~RepeatedField();
  _impl_.status_.~RepeatedField();
}

void FilterConfig::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void FilterConfig::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.FilterConfig)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.type_.Clear();
  _impl_.issuer_.Clear();
  _impl_.expiry_date_.Clear();
  _impl_.price_type_.Clear();
  _impl_.status_.Clear();
  ::memset(&_impl_.sort_by_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.sort_count_) -
      reinterpret_cast<char*>(&_impl_.sort_by_)) + sizeof(_impl_.sort_count_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FilterConfig::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 sort_by = 1 [json_name = "sortBy"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _impl_.sort_by_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 sort_order = 2 [json_name = "sortOrder"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.sort_order_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 sort_offset = 3 [json_name = "sortOffset"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _impl_.sort_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 sort_count = 4 [json_name = "sortCount"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _impl_.sort_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 type = 5 [json_name = "type"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 40) {
          _internal_add_type(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 issuer = 6 [json_name = "issuer"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_issuer(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 48) {
          _internal_add_issuer(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 expiry_date = 7 [json_name = "expiryDate"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_expiry_date(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 56) {
          _internal_add_expiry_date(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 price_type = 8 [json_name = "priceType"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_price_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 64) {
          _internal_add_price_type(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 status = 9 [json_name = "status"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_status(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 72) {
          _internal_add_status(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* FilterConfig::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.FilterConfig)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 sort_by = 1 [json_name = "sortBy"];
  if (this->_internal_sort_by() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_sort_by(), target);
  }

  // int32 sort_order = 2 [json_name = "sortOrder"];
  if (this->_internal_sort_order() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_sort_order(), target);
  }

  // int32 sort_offset = 3 [json_name = "sortOffset"];
  if (this->_internal_sort_offset() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_sort_offset(), target);
  }

  // int32 sort_count = 4 [json_name = "sortCount"];
  if (this->_internal_sort_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(4, this->_internal_sort_count(), target);
  }

  // repeated int32 type = 5 [json_name = "type"];
  {
    int byte_size = _impl_._type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          5, _internal_type(), byte_size, target);
    }
  }

  // repeated int32 issuer = 6 [json_name = "issuer"];
  {
    int byte_size = _impl_._issuer_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          6, _internal_issuer(), byte_size, target);
    }
  }

  // repeated int32 expiry_date = 7 [json_name = "expiryDate"];
  {
    int byte_size = _impl_._expiry_date_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          7, _internal_expiry_date(), byte_size, target);
    }
  }

  // repeated int32 price_type = 8 [json_name = "priceType"];
  {
    int byte_size = _impl_._price_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          8, _internal_price_type(), byte_size, target);
    }
  }

  // repeated int32 status = 9 [json_name = "status"];
  {
    int byte_size = _impl_._status_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          9, _internal_status(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.FilterConfig)
  return target;
}

size_t FilterConfig::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.FilterConfig)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 type = 5 [json_name = "type"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.type_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 issuer = 6 [json_name = "issuer"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.issuer_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._issuer_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 expiry_date = 7 [json_name = "expiryDate"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.expiry_date_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._expiry_date_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 price_type = 8 [json_name = "priceType"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.price_type_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._price_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 status = 9 [json_name = "status"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.status_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._status_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // int32 sort_by = 1 [json_name = "sortBy"];
  if (this->_internal_sort_by() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_sort_by());
  }

  // int32 sort_order = 2 [json_name = "sortOrder"];
  if (this->_internal_sort_order() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_sort_order());
  }

  // int32 sort_offset = 3 [json_name = "sortOffset"];
  if (this->_internal_sort_offset() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_sort_offset());
  }

  // int32 sort_count = 4 [json_name = "sortCount"];
  if (this->_internal_sort_count() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_sort_count());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FilterConfig::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    FilterConfig::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FilterConfig::GetClassData() const { return &_class_data_; }


void FilterConfig::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<FilterConfig*>(&to_msg);
  auto& from = static_cast<const FilterConfig&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.FilterConfig)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.type_.MergeFrom(from._impl_.type_);
  _this->_impl_.issuer_.MergeFrom(from._impl_.issuer_);
  _this->_impl_.expiry_date_.MergeFrom(from._impl_.expiry_date_);
  _this->_impl_.price_type_.MergeFrom(from._impl_.price_type_);
  _this->_impl_.status_.MergeFrom(from._impl_.status_);
  if (from._internal_sort_by() != 0) {
    _this->_internal_set_sort_by(from._internal_sort_by());
  }
  if (from._internal_sort_order() != 0) {
    _this->_internal_set_sort_order(from._internal_sort_order());
  }
  if (from._internal_sort_offset() != 0) {
    _this->_internal_set_sort_offset(from._internal_sort_offset());
  }
  if (from._internal_sort_count() != 0) {
    _this->_internal_set_sort_count(from._internal_sort_count());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void FilterConfig::CopyFrom(const FilterConfig& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.FilterConfig)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FilterConfig::IsInitialized() const {
  return true;
}

void FilterConfig::InternalSwap(FilterConfig* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.type_.InternalSwap(&other->_impl_.type_);
  _impl_.issuer_.InternalSwap(&other->_impl_.issuer_);
  _impl_.expiry_date_.InternalSwap(&other->_impl_.expiry_date_);
  _impl_.price_type_.InternalSwap(&other->_impl_.price_type_);
  _impl_.status_.InternalSwap(&other->_impl_.status_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FilterConfig, _impl_.sort_count_)
      + sizeof(FilterConfig::_impl_.sort_count_)
      - PROTOBUF_FIELD_OFFSET(FilterConfig, _impl_.sort_by_)>(
          reinterpret_cast<char*>(&_impl_.sort_by_),
          reinterpret_cast<char*>(&other->_impl_.sort_by_));
}

::PROTOBUF_NAMESPACE_ID::Metadata FilterConfig::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[35]);
}

// ===================================================================

class WarrantFilterListResponse::_Internal {
 public:
};

WarrantFilterListResponse::WarrantFilterListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.WarrantFilterListResponse)
}
WarrantFilterListResponse::WarrantFilterListResponse(const WarrantFilterListResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  WarrantFilterListResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.warrant_list_){from._impl_.warrant_list_}
    , decltype(_impl_.total_count_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.total_count_ = from._impl_.total_count_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.WarrantFilterListResponse)
}

inline void WarrantFilterListResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.warrant_list_){arena}
    , decltype(_impl_.total_count_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

WarrantFilterListResponse::~WarrantFilterListResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.WarrantFilterListResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void WarrantFilterListResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.warrant_list_.~RepeatedPtrField();
}

void WarrantFilterListResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void WarrantFilterListResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.WarrantFilterListResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.warrant_list_.Clear();
  _impl_.total_count_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantFilterListResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.FilterWarrant warrant_list = 1 [json_name = "warrantList"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_warrant_list(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // int32 total_count = 2 [json_name = "totalCount"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.total_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantFilterListResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.WarrantFilterListResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.FilterWarrant warrant_list = 1 [json_name = "warrantList"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_warrant_list_size()); i < n; i++) {
    const auto& repfield = this->_internal_warrant_list(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  // int32 total_count = 2 [json_name = "totalCount"];
  if (this->_internal_total_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_total_count(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.WarrantFilterListResponse)
  return target;
}

size_t WarrantFilterListResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.WarrantFilterListResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.FilterWarrant warrant_list = 1 [json_name = "warrantList"];
  total_size += 1UL * this->_internal_warrant_list_size();
  for (const auto& msg : this->_impl_.warrant_list_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // int32 total_count = 2 [json_name = "totalCount"];
  if (this->_internal_total_count() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_total_count());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantFilterListResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    WarrantFilterListResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantFilterListResponse::GetClassData() const { return &_class_data_; }


void WarrantFilterListResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<WarrantFilterListResponse*>(&to_msg);
  auto& from = static_cast<const WarrantFilterListResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.WarrantFilterListResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.warrant_list_.MergeFrom(from._impl_.warrant_list_);
  if (from._internal_total_count() != 0) {
    _this->_internal_set_total_count(from._internal_total_count());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantFilterListResponse::CopyFrom(const WarrantFilterListResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.WarrantFilterListResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantFilterListResponse::IsInitialized() const {
  return true;
}

void WarrantFilterListResponse::InternalSwap(WarrantFilterListResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.warrant_list_.InternalSwap(&other->_impl_.warrant_list_);
  swap(_impl_.total_count_, other->_impl_.total_count_);
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantFilterListResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[36]);
}

// ===================================================================

class FilterWarrant::_Internal {
 public:
};

FilterWarrant::FilterWarrant(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.FilterWarrant)
}
FilterWarrant::FilterWarrant(const FilterWarrant& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  FilterWarrant* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.name_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.change_rate_){}
    , decltype(_impl_.change_val_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.expiry_date_){}
    , decltype(_impl_.strike_price_){}
    , decltype(_impl_.upper_strike_price_){}
    , decltype(_impl_.lower_strike_price_){}
    , decltype(_impl_.outstanding_qty_){}
    , decltype(_impl_.outstanding_ratio_){}
    , decltype(_impl_.premium_){}
    , decltype(_impl_.itm_otm_){}
    , decltype(_impl_.implied_volatility_){}
    , decltype(_impl_.delta_){}
    , decltype(_impl_.call_price_){}
    , decltype(_impl_.to_call_price_){}
    , decltype(_impl_.effective_leverage_){}
    , decltype(_impl_.leverage_ratio_){}
    , decltype(_impl_.conversion_ratio_){}
    , decltype(_impl_.balance_point_){}
    , decltype(_impl_.state_){}
    , decltype(_impl_.volume_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    _this->_impl_.name_.Set(from._internal_name(), 
      _this->GetArenaForAllocation());
  }
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    _this->_impl_.last_done_.Set(from._internal_last_done(), 
      _this->GetArenaForAllocation());
  }
  _impl_.change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_change_rate().empty()) {
    _this->_impl_.change_rate_.Set(from._internal_change_rate(), 
      _this->GetArenaForAllocation());
  }
  _impl_.change_val_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.change_val_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_change_val().empty()) {
    _this->_impl_.change_val_.Set(from._internal_change_val(), 
      _this->GetArenaForAllocation());
  }
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    _this->_impl_.turnover_.Set(from._internal_turnover(), 
      _this->GetArenaForAllocation());
  }
  _impl_.expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    _this->_impl_.expiry_date_.Set(from._internal_expiry_date(), 
      _this->GetArenaForAllocation());
  }
  _impl_.strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_strike_price().empty()) {
    _this->_impl_.strike_price_.Set(from._internal_strike_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.upper_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.upper_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_upper_strike_price().empty()) {
    _this->_impl_.upper_strike_price_.Set(from._internal_upper_strike_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.lower_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.lower_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_lower_strike_price().empty()) {
    _this->_impl_.lower_strike_price_.Set(from._internal_lower_strike_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.outstanding_qty_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.outstanding_qty_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_outstanding_qty().empty()) {
    _this->_impl_.outstanding_qty_.Set(from._internal_outstanding_qty(), 
      _this->GetArenaForAllocation());
  }
  _impl_.outstanding_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.outstanding_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_outstanding_ratio().empty()) {
    _this->_impl_.outstanding_ratio_.Set(from._internal_outstanding_ratio(), 
      _this->GetArenaForAllocation());
  }
  _impl_.premium_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.premium_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_premium().empty()) {
    _this->_impl_.premium_.Set(from._internal_premium(), 
      _this->GetArenaForAllocation());
  }
  _impl_.itm_otm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.itm_otm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_itm_otm().empty()) {
    _this->_impl_.itm_otm_.Set(from._internal_itm_otm(), 
      _this->GetArenaForAllocation());
  }
  _impl_.implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_implied_volatility().empty()) {
    _this->_impl_.implied_volatility_.Set(from._internal_implied_volatility(), 
      _this->GetArenaForAllocation());
  }
  _impl_.delta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.delta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_delta().empty()) {
    _this->_impl_.delta_.Set(from._internal_delta(), 
      _this->GetArenaForAllocation());
  }
  _impl_.call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_call_price().empty()) {
    _this->_impl_.call_price_.Set(from._internal_call_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.to_call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.to_call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_to_call_price().empty()) {
    _this->_impl_.to_call_price_.Set(from._internal_to_call_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.effective_leverage_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.effective_leverage_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_effective_leverage().empty()) {
    _this->_impl_.effective_leverage_.Set(from._internal_effective_leverage(), 
      _this->GetArenaForAllocation());
  }
  _impl_.leverage_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.leverage_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_leverage_ratio().empty()) {
    _this->_impl_.leverage_ratio_.Set(from._internal_leverage_ratio(), 
      _this->GetArenaForAllocation());
  }
  _impl_.conversion_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.conversion_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_conversion_ratio().empty()) {
    _this->_impl_.conversion_ratio_.Set(from._internal_conversion_ratio(), 
      _this->GetArenaForAllocation());
  }
  _impl_.balance_point_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.balance_point_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_balance_point().empty()) {
    _this->_impl_.balance_point_.Set(from._internal_balance_point(), 
      _this->GetArenaForAllocation());
  }
  _impl_.state_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.state_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_state().empty()) {
    _this->_impl_.state_.Set(from._internal_state(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.volume_ = from._impl_.volume_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.FilterWarrant)
}

inline void FilterWarrant::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.name_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.change_rate_){}
    , decltype(_impl_.change_val_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.expiry_date_){}
    , decltype(_impl_.strike_price_){}
    , decltype(_impl_.upper_strike_price_){}
    , decltype(_impl_.lower_strike_price_){}
    , decltype(_impl_.outstanding_qty_){}
    , decltype(_impl_.outstanding_ratio_){}
    , decltype(_impl_.premium_){}
    , decltype(_impl_.itm_otm_){}
    , decltype(_impl_.implied_volatility_){}
    , decltype(_impl_.delta_){}
    , decltype(_impl_.call_price_){}
    , decltype(_impl_.to_call_price_){}
    , decltype(_impl_.effective_leverage_){}
    , decltype(_impl_.leverage_ratio_){}
    , decltype(_impl_.conversion_ratio_){}
    , decltype(_impl_.balance_point_){}
    , decltype(_impl_.state_){}
    , decltype(_impl_.volume_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.change_val_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.change_val_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.upper_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.upper_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.lower_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.lower_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.outstanding_qty_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.outstanding_qty_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.outstanding_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.outstanding_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.premium_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.premium_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.itm_otm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.itm_otm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.delta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.delta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.to_call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.to_call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.effective_leverage_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.effective_leverage_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.leverage_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.leverage_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.conversion_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.conversion_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.balance_point_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.balance_point_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.state_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.state_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

FilterWarrant::~FilterWarrant() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.FilterWarrant)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void FilterWarrant::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
  _impl_.name_.Destroy();
  _impl_.last_done_.Destroy();
  _impl_.change_rate_.Destroy();
  _impl_.change_val_.Destroy();
  _impl_.turnover_.Destroy();
  _impl_.expiry_date_.Destroy();
  _impl_.strike_price_.Destroy();
  _impl_.upper_strike_price_.Destroy();
  _impl_.lower_strike_price_.Destroy();
  _impl_.outstanding_qty_.Destroy();
  _impl_.outstanding_ratio_.Destroy();
  _impl_.premium_.Destroy();
  _impl_.itm_otm_.Destroy();
  _impl_.implied_volatility_.Destroy();
  _impl_.delta_.Destroy();
  _impl_.call_price_.Destroy();
  _impl_.to_call_price_.Destroy();
  _impl_.effective_leverage_.Destroy();
  _impl_.leverage_ratio_.Destroy();
  _impl_.conversion_ratio_.Destroy();
  _impl_.balance_point_.Destroy();
  _impl_.state_.Destroy();
}

void FilterWarrant::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void FilterWarrant::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.FilterWarrant)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  _impl_.name_.ClearToEmpty();
  _impl_.last_done_.ClearToEmpty();
  _impl_.change_rate_.ClearToEmpty();
  _impl_.change_val_.ClearToEmpty();
  _impl_.turnover_.ClearToEmpty();
  _impl_.expiry_date_.ClearToEmpty();
  _impl_.strike_price_.ClearToEmpty();
  _impl_.upper_strike_price_.ClearToEmpty();
  _impl_.lower_strike_price_.ClearToEmpty();
  _impl_.outstanding_qty_.ClearToEmpty();
  _impl_.outstanding_ratio_.ClearToEmpty();
  _impl_.premium_.ClearToEmpty();
  _impl_.itm_otm_.ClearToEmpty();
  _impl_.implied_volatility_.ClearToEmpty();
  _impl_.delta_.ClearToEmpty();
  _impl_.call_price_.ClearToEmpty();
  _impl_.to_call_price_.ClearToEmpty();
  _impl_.effective_leverage_.ClearToEmpty();
  _impl_.leverage_ratio_.ClearToEmpty();
  _impl_.conversion_ratio_.ClearToEmpty();
  _impl_.balance_point_.ClearToEmpty();
  _impl_.state_.ClearToEmpty();
  _impl_.volume_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FilterWarrant::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string name = 2 [json_name = "name"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.name"));
        } else
          goto handle_unusual;
        continue;
      // string last_done = 3 [json_name = "lastDone"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string change_rate = 4 [json_name = "changeRate"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string change_val = 5 [json_name = "changeVal"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_change_val();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.change_val"));
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 6 [json_name = "volume"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          _impl_.volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 7 [json_name = "turnover"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.turnover"));
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 8 [json_name = "expiryDate"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.expiry_date"));
        } else
          goto handle_unusual;
        continue;
      // string strike_price = 9 [json_name = "strikePrice"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string upper_strike_price = 10 [json_name = "upperStrikePrice"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_upper_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.upper_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string lower_strike_price = 11 [json_name = "lowerStrikePrice"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          auto str = _internal_mutable_lower_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.lower_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string outstanding_qty = 12 [json_name = "outstandingQty"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          auto str = _internal_mutable_outstanding_qty();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.outstanding_qty"));
        } else
          goto handle_unusual;
        continue;
      // string outstanding_ratio = 13 [json_name = "outstandingRatio"];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          auto str = _internal_mutable_outstanding_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.outstanding_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string premium = 14 [json_name = "premium"];
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
          auto str = _internal_mutable_premium();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.premium"));
        } else
          goto handle_unusual;
        continue;
      // string itm_otm = 15 [json_name = "itmOtm"];
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          auto str = _internal_mutable_itm_otm();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.itm_otm"));
        } else
          goto handle_unusual;
        continue;
      // string implied_volatility = 16 [json_name = "impliedVolatility"];
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          auto str = _internal_mutable_implied_volatility();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.implied_volatility"));
        } else
          goto handle_unusual;
        continue;
      // string delta = 17 [json_name = "delta"];
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          auto str = _internal_mutable_delta();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.delta"));
        } else
          goto handle_unusual;
        continue;
      // string call_price = 18 [json_name = "callPrice"];
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 146)) {
          auto str = _internal_mutable_call_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.call_price"));
        } else
          goto handle_unusual;
        continue;
      // string to_call_price = 19 [json_name = "toCallPrice"];
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 154)) {
          auto str = _internal_mutable_to_call_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.to_call_price"));
        } else
          goto handle_unusual;
        continue;
      // string effective_leverage = 20 [json_name = "effectiveLeverage"];
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 162)) {
          auto str = _internal_mutable_effective_leverage();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.effective_leverage"));
        } else
          goto handle_unusual;
        continue;
      // string leverage_ratio = 21 [json_name = "leverageRatio"];
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
          auto str = _internal_mutable_leverage_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.leverage_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string conversion_ratio = 22 [json_name = "conversionRatio"];
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 178)) {
          auto str = _internal_mutable_conversion_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.conversion_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string balance_point = 23 [json_name = "balancePoint"];
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
          auto str = _internal_mutable_balance_point();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.balance_point"));
        } else
          goto handle_unusual;
        continue;
      // string state = 24 [json_name = "state"];
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 194)) {
          auto str = _internal_mutable_state();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.state"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* FilterWarrant::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.FilterWarrant)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string name = 2 [json_name = "name"];
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.name");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name(), target);
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.last_done");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_last_done(), target);
  }

  // string change_rate = 4 [json_name = "changeRate"];
  if (!this->_internal_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_change_rate().data(), static_cast<int>(this->_internal_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.change_rate");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_change_rate(), target);
  }

  // string change_val = 5 [json_name = "changeVal"];
  if (!this->_internal_change_val().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_change_val().data(), static_cast<int>(this->_internal_change_val().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.change_val");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_change_val(), target);
  }

  // int64 volume = 6 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(6, this->_internal_volume(), target);
  }

  // string turnover = 7 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.turnover");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_turnover(), target);
  }

  // string expiry_date = 8 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.expiry_date");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_expiry_date(), target);
  }

  // string strike_price = 9 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_strike_price().data(), static_cast<int>(this->_internal_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.strike_price");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_strike_price(), target);
  }

  // string upper_strike_price = 10 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_upper_strike_price().data(), static_cast<int>(this->_internal_upper_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.upper_strike_price");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_upper_strike_price(), target);
  }

  // string lower_strike_price = 11 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_lower_strike_price().data(), static_cast<int>(this->_internal_lower_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.lower_strike_price");
    target = stream->WriteStringMaybeAliased(
        11, this->_internal_lower_strike_price(), target);
  }

  // string outstanding_qty = 12 [json_name = "outstandingQty"];
  if (!this->_internal_outstanding_qty().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_outstanding_qty().data(), static_cast<int>(this->_internal_outstanding_qty().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.outstanding_qty");
    target = stream->WriteStringMaybeAliased(
        12, this->_internal_outstanding_qty(), target);
  }

  // string outstanding_ratio = 13 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_outstanding_ratio().data(), static_cast<int>(this->_internal_outstanding_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.outstanding_ratio");
    target = stream->WriteStringMaybeAliased(
        13, this->_internal_outstanding_ratio(), target);
  }

  // string premium = 14 [json_name = "premium"];
  if (!this->_internal_premium().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_premium().data(), static_cast<int>(this->_internal_premium().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.premium");
    target = stream->WriteStringMaybeAliased(
        14, this->_internal_premium(), target);
  }

  // string itm_otm = 15 [json_name = "itmOtm"];
  if (!this->_internal_itm_otm().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_itm_otm().data(), static_cast<int>(this->_internal_itm_otm().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.itm_otm");
    target = stream->WriteStringMaybeAliased(
        15, this->_internal_itm_otm(), target);
  }

  // string implied_volatility = 16 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_implied_volatility().data(), static_cast<int>(this->_internal_implied_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.implied_volatility");
    target = stream->WriteStringMaybeAliased(
        16, this->_internal_implied_volatility(), target);
  }

  // string delta = 17 [json_name = "delta"];
  if (!this->_internal_delta().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_delta().data(), static_cast<int>(this->_internal_delta().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.delta");
    target = stream->WriteStringMaybeAliased(
        17, this->_internal_delta(), target);
  }

  // string call_price = 18 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_call_price().data(), static_cast<int>(this->_internal_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.call_price");
    target = stream->WriteStringMaybeAliased(
        18, this->_internal_call_price(), target);
  }

  // string to_call_price = 19 [json_name = "toCallPrice"];
  if (!this->_internal_to_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_to_call_price().data(), static_cast<int>(this->_internal_to_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.to_call_price");
    target = stream->WriteStringMaybeAliased(
        19, this->_internal_to_call_price(), target);
  }

  // string effective_leverage = 20 [json_name = "effectiveLeverage"];
  if (!this->_internal_effective_leverage().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_effective_leverage().data(), static_cast<int>(this->_internal_effective_leverage().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.effective_leverage");
    target = stream->WriteStringMaybeAliased(
        20, this->_internal_effective_leverage(), target);
  }

  // string leverage_ratio = 21 [json_name = "leverageRatio"];
  if (!this->_internal_leverage_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_leverage_ratio().data(), static_cast<int>(this->_internal_leverage_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.leverage_ratio");
    target = stream->WriteStringMaybeAliased(
        21, this->_internal_leverage_ratio(), target);
  }

  // string conversion_ratio = 22 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_conversion_ratio().data(), static_cast<int>(this->_internal_conversion_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.conversion_ratio");
    target = stream->WriteStringMaybeAliased(
        22, this->_internal_conversion_ratio(), target);
  }

  // string balance_point = 23 [json_name = "balancePoint"];
  if (!this->_internal_balance_point().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_balance_point().data(), static_cast<int>(this->_internal_balance_point().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.balance_point");
    target = stream->WriteStringMaybeAliased(
        23, this->_internal_balance_point(), target);
  }

  // string state = 24 [json_name = "state"];
  if (!this->_internal_state().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_state().data(), static_cast<int>(this->_internal_state().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.state");
    target = stream->WriteStringMaybeAliased(
        24, this->_internal_state(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.FilterWarrant)
  return target;
}

size_t FilterWarrant::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.FilterWarrant)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string name = 2 [json_name = "name"];
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string change_rate = 4 [json_name = "changeRate"];
  if (!this->_internal_change_rate().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_change_rate());
  }

  // string change_val = 5 [json_name = "changeVal"];
  if (!this->_internal_change_val().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_change_val());
  }

  // string turnover = 7 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string expiry_date = 8 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  // string strike_price = 9 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_strike_price());
  }

  // string upper_strike_price = 10 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_upper_strike_price());
  }

  // string lower_strike_price = 11 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_lower_strike_price());
  }

  // string outstanding_qty = 12 [json_name = "outstandingQty"];
  if (!this->_internal_outstanding_qty().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_outstanding_qty());
  }

  // string outstanding_ratio = 13 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_outstanding_ratio());
  }

  // string premium = 14 [json_name = "premium"];
  if (!this->_internal_premium().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_premium());
  }

  // string itm_otm = 15 [json_name = "itmOtm"];
  if (!this->_internal_itm_otm().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_itm_otm());
  }

  // string implied_volatility = 16 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_implied_volatility());
  }

  // string delta = 17 [json_name = "delta"];
  if (!this->_internal_delta().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_delta());
  }

  // string call_price = 18 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_call_price());
  }

  // string to_call_price = 19 [json_name = "toCallPrice"];
  if (!this->_internal_to_call_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_to_call_price());
  }

  // string effective_leverage = 20 [json_name = "effectiveLeverage"];
  if (!this->_internal_effective_leverage().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_effective_leverage());
  }

  // string leverage_ratio = 21 [json_name = "leverageRatio"];
  if (!this->_internal_leverage_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_leverage_ratio());
  }

  // string conversion_ratio = 22 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_conversion_ratio());
  }

  // string balance_point = 23 [json_name = "balancePoint"];
  if (!this->_internal_balance_point().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_balance_point());
  }

  // string state = 24 [json_name = "state"];
  if (!this->_internal_state().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_state());
  }

  // int64 volume = 6 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FilterWarrant::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    FilterWarrant::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FilterWarrant::GetClassData() const { return &_class_data_; }


void FilterWarrant::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<FilterWarrant*>(&to_msg);
  auto& from = static_cast<const FilterWarrant&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.FilterWarrant)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_name().empty()) {
    _this->_internal_set_name(from._internal_name());
  }
  if (!from._internal_last_done().empty()) {
    _this->_internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_change_rate().empty()) {
    _this->_internal_set_change_rate(from._internal_change_rate());
  }
  if (!from._internal_change_val().empty()) {
    _this->_internal_set_change_val(from._internal_change_val());
  }
  if (!from._internal_turnover().empty()) {
    _this->_internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_expiry_date().empty()) {
    _this->_internal_set_expiry_date(from._internal_expiry_date());
  }
  if (!from._internal_strike_price().empty()) {
    _this->_internal_set_strike_price(from._internal_strike_price());
  }
  if (!from._internal_upper_strike_price().empty()) {
    _this->_internal_set_upper_strike_price(from._internal_upper_strike_price());
  }
  if (!from._internal_lower_strike_price().empty()) {
    _this->_internal_set_lower_strike_price(from._internal_lower_strike_price());
  }
  if (!from._internal_outstanding_qty().empty()) {
    _this->_internal_set_outstanding_qty(from._internal_outstanding_qty());
  }
  if (!from._internal_outstanding_ratio().empty()) {
    _this->_internal_set_outstanding_ratio(from._internal_outstanding_ratio());
  }
  if (!from._internal_premium().empty()) {
    _this->_internal_set_premium(from._internal_premium());
  }
  if (!from._internal_itm_otm().empty()) {
    _this->_internal_set_itm_otm(from._internal_itm_otm());
  }
  if (!from._internal_implied_volatility().empty()) {
    _this->_internal_set_implied_volatility(from._internal_implied_volatility());
  }
  if (!from._internal_delta().empty()) {
    _this->_internal_set_delta(from._internal_delta());
  }
  if (!from._internal_call_price().empty()) {
    _this->_internal_set_call_price(from._internal_call_price());
  }
  if (!from._internal_to_call_price().empty()) {
    _this->_internal_set_to_call_price(from._internal_to_call_price());
  }
  if (!from._internal_effective_leverage().empty()) {
    _this->_internal_set_effective_leverage(from._internal_effective_leverage());
  }
  if (!from._internal_leverage_ratio().empty()) {
    _this->_internal_set_leverage_ratio(from._internal_leverage_ratio());
  }
  if (!from._internal_conversion_ratio().empty()) {
    _this->_internal_set_conversion_ratio(from._internal_conversion_ratio());
  }
  if (!from._internal_balance_point().empty()) {
    _this->_internal_set_balance_point(from._internal_balance_point());
  }
  if (!from._internal_state().empty()) {
    _this->_internal_set_state(from._internal_state());
  }
  if (from._internal_volume() != 0) {
    _this->_internal_set_volume(from._internal_volume());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void FilterWarrant::CopyFrom(const FilterWarrant& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.FilterWarrant)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FilterWarrant::IsInitialized() const {
  return true;
}

void FilterWarrant::InternalSwap(FilterWarrant* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_, lhs_arena,
      &other->_impl_.name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.last_done_, lhs_arena,
      &other->_impl_.last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.change_rate_, lhs_arena,
      &other->_impl_.change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.change_val_, lhs_arena,
      &other->_impl_.change_val_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.turnover_, lhs_arena,
      &other->_impl_.turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.expiry_date_, lhs_arena,
      &other->_impl_.expiry_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.strike_price_, lhs_arena,
      &other->_impl_.strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.upper_strike_price_, lhs_arena,
      &other->_impl_.upper_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.lower_strike_price_, lhs_arena,
      &other->_impl_.lower_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.outstanding_qty_, lhs_arena,
      &other->_impl_.outstanding_qty_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.outstanding_ratio_, lhs_arena,
      &other->_impl_.outstanding_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.premium_, lhs_arena,
      &other->_impl_.premium_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.itm_otm_, lhs_arena,
      &other->_impl_.itm_otm_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.implied_volatility_, lhs_arena,
      &other->_impl_.implied_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.delta_, lhs_arena,
      &other->_impl_.delta_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.call_price_, lhs_arena,
      &other->_impl_.call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.to_call_price_, lhs_arena,
      &other->_impl_.to_call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.effective_leverage_, lhs_arena,
      &other->_impl_.effective_leverage_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.leverage_ratio_, lhs_arena,
      &other->_impl_.leverage_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.conversion_ratio_, lhs_arena,
      &other->_impl_.conversion_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.balance_point_, lhs_arena,
      &other->_impl_.balance_point_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.state_, lhs_arena,
      &other->_impl_.state_, rhs_arena
  );
  swap(_impl_.volume_, other->_impl_.volume_);
}

::PROTOBUF_NAMESPACE_ID::Metadata FilterWarrant::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[37]);
}

// ===================================================================

class MarketTradePeriodResponse::_Internal {
 public:
};

MarketTradePeriodResponse::MarketTradePeriodResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.MarketTradePeriodResponse)
}
MarketTradePeriodResponse::MarketTradePeriodResponse(const MarketTradePeriodResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MarketTradePeriodResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.market_trade_session_){from._impl_.market_trade_session_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.MarketTradePeriodResponse)
}

inline void MarketTradePeriodResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.market_trade_session_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MarketTradePeriodResponse::~MarketTradePeriodResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void MarketTradePeriodResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.market_trade_session_.~RepeatedPtrField();
}

void MarketTradePeriodResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MarketTradePeriodResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.market_trade_session_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradePeriodResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.MarketTradePeriod market_trade_session = 1 [json_name = "marketTradeSession"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_market_trade_session(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradePeriodResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.MarketTradePeriod market_trade_session = 1 [json_name = "marketTradeSession"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_market_trade_session_size()); i < n; i++) {
    const auto& repfield = this->_internal_market_trade_session(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  return target;
}

size_t MarketTradePeriodResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.MarketTradePeriod market_trade_session = 1 [json_name = "marketTradeSession"];
  total_size += 1UL * this->_internal_market_trade_session_size();
  for (const auto& msg : this->_impl_.market_trade_session_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradePeriodResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MarketTradePeriodResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradePeriodResponse::GetClassData() const { return &_class_data_; }


void MarketTradePeriodResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MarketTradePeriodResponse*>(&to_msg);
  auto& from = static_cast<const MarketTradePeriodResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.market_trade_session_.MergeFrom(from._impl_.market_trade_session_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradePeriodResponse::CopyFrom(const MarketTradePeriodResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradePeriodResponse::IsInitialized() const {
  return true;
}

void MarketTradePeriodResponse::InternalSwap(MarketTradePeriodResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.market_trade_session_.InternalSwap(&other->_impl_.market_trade_session_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradePeriodResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[38]);
}

// ===================================================================

class MarketTradePeriod::_Internal {
 public:
};

MarketTradePeriod::MarketTradePeriod(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.MarketTradePeriod)
}
MarketTradePeriod::MarketTradePeriod(const MarketTradePeriod& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MarketTradePeriod* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.trade_session_){from._impl_.trade_session_}
    , decltype(_impl_.market_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.market_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.market_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_market().empty()) {
    _this->_impl_.market_.Set(from._internal_market(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.MarketTradePeriod)
}

inline void MarketTradePeriod::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.trade_session_){arena}
    , decltype(_impl_.market_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.market_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.market_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

MarketTradePeriod::~MarketTradePeriod() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.MarketTradePeriod)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void MarketTradePeriod::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.trade_session_.~RepeatedPtrField();
  _impl_.market_.Destroy();
}

void MarketTradePeriod::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MarketTradePeriod::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.MarketTradePeriod)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.trade_session_.Clear();
  _impl_.market_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradePeriod::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string market = 1 [json_name = "market"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_market();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradePeriod.market"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.TradePeriod trade_session = 2 [json_name = "tradeSession"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_trade_session(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradePeriod::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.MarketTradePeriod)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_market().data(), static_cast<int>(this->_internal_market().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradePeriod.market");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_market(), target);
  }

  // repeated .longbridgeapp.quote.v1.TradePeriod trade_session = 2 [json_name = "tradeSession"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_trade_session_size()); i < n; i++) {
    const auto& repfield = this->_internal_trade_session(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.MarketTradePeriod)
  return target;
}

size_t MarketTradePeriod::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.MarketTradePeriod)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.TradePeriod trade_session = 2 [json_name = "tradeSession"];
  total_size += 1UL * this->_internal_trade_session_size();
  for (const auto& msg : this->_impl_.trade_session_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_market());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradePeriod::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MarketTradePeriod::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradePeriod::GetClassData() const { return &_class_data_; }


void MarketTradePeriod::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MarketTradePeriod*>(&to_msg);
  auto& from = static_cast<const MarketTradePeriod&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.MarketTradePeriod)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.trade_session_.MergeFrom(from._impl_.trade_session_);
  if (!from._internal_market().empty()) {
    _this->_internal_set_market(from._internal_market());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradePeriod::CopyFrom(const MarketTradePeriod& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.MarketTradePeriod)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradePeriod::IsInitialized() const {
  return true;
}

void MarketTradePeriod::InternalSwap(MarketTradePeriod* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.trade_session_.InternalSwap(&other->_impl_.trade_session_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.market_, lhs_arena,
      &other->_impl_.market_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradePeriod::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[39]);
}

// ===================================================================

class TradePeriod::_Internal {
 public:
};

TradePeriod::TradePeriod(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.TradePeriod)
}
TradePeriod::TradePeriod(const TradePeriod& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  TradePeriod* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.beg_time_){}
    , decltype(_impl_.end_time_){}
    , decltype(_impl_.trade_session_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.beg_time_, &from._impl_.beg_time_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.trade_session_) -
    reinterpret_cast<char*>(&_impl_.beg_time_)) + sizeof(_impl_.trade_session_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.TradePeriod)
}

inline void TradePeriod::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.beg_time_){0}
    , decltype(_impl_.end_time_){0}
    , decltype(_impl_.trade_session_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

TradePeriod::~TradePeriod() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.TradePeriod)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void TradePeriod::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void TradePeriod::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void TradePeriod::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.TradePeriod)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&_impl_.beg_time_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.trade_session_) -
      reinterpret_cast<char*>(&_impl_.beg_time_)) + sizeof(_impl_.trade_session_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* TradePeriod::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 beg_time = 1 [json_name = "begTime"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _impl_.beg_time_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 end_time = 2 [json_name = "endTime"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.end_time_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeSession trade_session = 3 [json_name = "tradeSession"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_session(static_cast<::longbridgeapp::quote::v1::TradeSession>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* TradePeriod::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.TradePeriod)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 beg_time = 1 [json_name = "begTime"];
  if (this->_internal_beg_time() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_beg_time(), target);
  }

  // int32 end_time = 2 [json_name = "endTime"];
  if (this->_internal_end_time() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_end_time(), target);
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 3 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      3, this->_internal_trade_session(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.TradePeriod)
  return target;
}

size_t TradePeriod::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.TradePeriod)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 beg_time = 1 [json_name = "begTime"];
  if (this->_internal_beg_time() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_beg_time());
  }

  // int32 end_time = 2 [json_name = "endTime"];
  if (this->_internal_end_time() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_end_time());
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 3 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_session());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData TradePeriod::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    TradePeriod::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*TradePeriod::GetClassData() const { return &_class_data_; }


void TradePeriod::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<TradePeriod*>(&to_msg);
  auto& from = static_cast<const TradePeriod&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.TradePeriod)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_beg_time() != 0) {
    _this->_internal_set_beg_time(from._internal_beg_time());
  }
  if (from._internal_end_time() != 0) {
    _this->_internal_set_end_time(from._internal_end_time());
  }
  if (from._internal_trade_session() != 0) {
    _this->_internal_set_trade_session(from._internal_trade_session());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void TradePeriod::CopyFrom(const TradePeriod& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.TradePeriod)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool TradePeriod::IsInitialized() const {
  return true;
}

void TradePeriod::InternalSwap(TradePeriod* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TradePeriod, _impl_.trade_session_)
      + sizeof(TradePeriod::_impl_.trade_session_)
      - PROTOBUF_FIELD_OFFSET(TradePeriod, _impl_.beg_time_)>(
          reinterpret_cast<char*>(&_impl_.beg_time_),
          reinterpret_cast<char*>(&other->_impl_.beg_time_));
}

::PROTOBUF_NAMESPACE_ID::Metadata TradePeriod::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[40]);
}

// ===================================================================

class SubscriptionRequest::_Internal {
 public:
};

SubscriptionRequest::SubscriptionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SubscriptionRequest)
}
SubscriptionRequest::SubscriptionRequest(const SubscriptionRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  SubscriptionRequest* const _this = this; (void)_this;
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SubscriptionRequest)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubscriptionRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubscriptionRequest::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata SubscriptionRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[41]);
}

// ===================================================================

class SubscriptionResponse::_Internal {
 public:
};

SubscriptionResponse::SubscriptionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SubscriptionResponse)
}
SubscriptionResponse::SubscriptionResponse(const SubscriptionResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SubscriptionResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.sub_list_){from._impl_.sub_list_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SubscriptionResponse)
}

inline void SubscriptionResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.sub_list_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

SubscriptionResponse::~SubscriptionResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SubscriptionResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SubscriptionResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.sub_list_.~RepeatedPtrField();
}

void SubscriptionResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SubscriptionResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SubscriptionResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.sub_list_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubscriptionResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.SubTypeList sub_list = 1 [json_name = "subList"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_sub_list(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubscriptionResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SubscriptionResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SubTypeList sub_list = 1 [json_name = "subList"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_sub_list_size()); i < n; i++) {
    const auto& repfield = this->_internal_sub_list(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SubscriptionResponse)
  return target;
}

size_t SubscriptionResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SubscriptionResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SubTypeList sub_list = 1 [json_name = "subList"];
  total_size += 1UL * this->_internal_sub_list_size();
  for (const auto& msg : this->_impl_.sub_list_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubscriptionResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SubscriptionResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubscriptionResponse::GetClassData() const { return &_class_data_; }


void SubscriptionResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SubscriptionResponse*>(&to_msg);
  auto& from = static_cast<const SubscriptionResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SubscriptionResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.sub_list_.MergeFrom(from._impl_.sub_list_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubscriptionResponse::CopyFrom(const SubscriptionResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SubscriptionResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscriptionResponse::IsInitialized() const {
  return true;
}

void SubscriptionResponse::InternalSwap(SubscriptionResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.sub_list_.InternalSwap(&other->_impl_.sub_list_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SubscriptionResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[42]);
}

// ===================================================================

class SubTypeList::_Internal {
 public:
};

SubTypeList::SubTypeList(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SubTypeList)
}
SubTypeList::SubTypeList(const SubTypeList& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SubTypeList* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.sub_type_){from._impl_.sub_type_}
    , /*decltype(_impl_._sub_type_cached_byte_size_)*/{0}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SubTypeList)
}

inline void SubTypeList::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.sub_type_){arena}
    , /*decltype(_impl_._sub_type_cached_byte_size_)*/{0}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SubTypeList::~SubTypeList() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SubTypeList)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SubTypeList::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.sub_type_.~RepeatedField();
  _impl_.symbol_.Destroy();
}

void SubTypeList::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SubTypeList::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SubTypeList)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.sub_type_.Clear();
  _impl_.symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubTypeList::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SubTypeList.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_sub_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_sub_type(static_cast<::longbridgeapp::quote::v1::SubType>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubTypeList::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SubTypeList)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SubTypeList.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    int byte_size = _impl_._sub_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          2, _impl_.sub_type_, byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SubTypeList)
  return target;
}

size_t SubTypeList::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SubTypeList)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_sub_type_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::_pbi::WireFormatLite::EnumSize(
        this->_internal_sub_type(static_cast<int>(i)));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._sub_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubTypeList::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SubTypeList::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubTypeList::GetClassData() const { return &_class_data_; }


void SubTypeList::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SubTypeList*>(&to_msg);
  auto& from = static_cast<const SubTypeList&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SubTypeList)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.sub_type_.MergeFrom(from._impl_.sub_type_);
  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubTypeList::CopyFrom(const SubTypeList& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SubTypeList)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubTypeList::IsInitialized() const {
  return true;
}

void SubTypeList::InternalSwap(SubTypeList* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.sub_type_.InternalSwap(&other->_impl_.sub_type_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SubTypeList::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[43]);
}

// ===================================================================

class SubscribeRequest::_Internal {
 public:
};

SubscribeRequest::SubscribeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SubscribeRequest)
}
SubscribeRequest::SubscribeRequest(const SubscribeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SubscribeRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){from._impl_.symbol_}
    , decltype(_impl_.sub_type_){from._impl_.sub_type_}
    , /*decltype(_impl_._sub_type_cached_byte_size_)*/{0}
    , decltype(_impl_.is_first_push_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.is_first_push_ = from._impl_.is_first_push_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SubscribeRequest)
}

inline void SubscribeRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){arena}
    , decltype(_impl_.sub_type_){arena}
    , /*decltype(_impl_._sub_type_cached_byte_size_)*/{0}
    , decltype(_impl_.is_first_push_){false}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

SubscribeRequest::~SubscribeRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SubscribeRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SubscribeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.~RepeatedPtrField();
  _impl_.sub_type_.~RepeatedField();
}

void SubscribeRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SubscribeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SubscribeRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.Clear();
  _impl_.sub_type_.Clear();
  _impl_.is_first_push_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubscribeRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_symbol();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SubscribeRequest.symbol"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_sub_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_sub_type(static_cast<::longbridgeapp::quote::v1::SubType>(val));
        } else
          goto handle_unusual;
        continue;
      // bool is_first_push = 3 [json_name = "isFirstPush"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _impl_.is_first_push_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubscribeRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SubscribeRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  for (int i = 0, n = this->_internal_symbol_size(); i < n; i++) {
    const auto& s = this->_internal_symbol(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SubscribeRequest.symbol");
    target = stream->WriteString(1, s, target);
  }

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    int byte_size = _impl_._sub_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          2, _impl_.sub_type_, byte_size, target);
    }
  }

  // bool is_first_push = 3 [json_name = "isFirstPush"];
  if (this->_internal_is_first_push() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(3, this->_internal_is_first_push(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SubscribeRequest)
  return target;
}

size_t SubscribeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SubscribeRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.symbol_.size());
  for (int i = 0, n = _impl_.symbol_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.symbol_.Get(i));
  }

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_sub_type_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::_pbi::WireFormatLite::EnumSize(
        this->_internal_sub_type(static_cast<int>(i)));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._sub_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // bool is_first_push = 3 [json_name = "isFirstPush"];
  if (this->_internal_is_first_push() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubscribeRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SubscribeRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubscribeRequest::GetClassData() const { return &_class_data_; }


void SubscribeRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SubscribeRequest*>(&to_msg);
  auto& from = static_cast<const SubscribeRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SubscribeRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.symbol_.MergeFrom(from._impl_.symbol_);
  _this->_impl_.sub_type_.MergeFrom(from._impl_.sub_type_);
  if (from._internal_is_first_push() != 0) {
    _this->_internal_set_is_first_push(from._internal_is_first_push());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubscribeRequest::CopyFrom(const SubscribeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SubscribeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscribeRequest::IsInitialized() const {
  return true;
}

void SubscribeRequest::InternalSwap(SubscribeRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.symbol_.InternalSwap(&other->_impl_.symbol_);
  _impl_.sub_type_.InternalSwap(&other->_impl_.sub_type_);
  swap(_impl_.is_first_push_, other->_impl_.is_first_push_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SubscribeRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[44]);
}

// ===================================================================

class UnsubscribeRequest::_Internal {
 public:
};

UnsubscribeRequest::UnsubscribeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.UnsubscribeRequest)
}
UnsubscribeRequest::UnsubscribeRequest(const UnsubscribeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  UnsubscribeRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){from._impl_.symbol_}
    , decltype(_impl_.sub_type_){from._impl_.sub_type_}
    , /*decltype(_impl_._sub_type_cached_byte_size_)*/{0}
    , decltype(_impl_.unsub_all_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.unsub_all_ = from._impl_.unsub_all_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.UnsubscribeRequest)
}

inline void UnsubscribeRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){arena}
    , decltype(_impl_.sub_type_){arena}
    , /*decltype(_impl_._sub_type_cached_byte_size_)*/{0}
    , decltype(_impl_.unsub_all_){false}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

UnsubscribeRequest::~UnsubscribeRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.UnsubscribeRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void UnsubscribeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.~RepeatedPtrField();
  _impl_.sub_type_.~RepeatedField();
}

void UnsubscribeRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void UnsubscribeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.UnsubscribeRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.Clear();
  _impl_.sub_type_.Clear();
  _impl_.unsub_all_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UnsubscribeRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_symbol();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.UnsubscribeRequest.symbol"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_sub_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_sub_type(static_cast<::longbridgeapp::quote::v1::SubType>(val));
        } else
          goto handle_unusual;
        continue;
      // bool unsub_all = 3 [json_name = "unsubAll"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _impl_.unsub_all_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* UnsubscribeRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.UnsubscribeRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  for (int i = 0, n = this->_internal_symbol_size(); i < n; i++) {
    const auto& s = this->_internal_symbol(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.UnsubscribeRequest.symbol");
    target = stream->WriteString(1, s, target);
  }

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    int byte_size = _impl_._sub_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          2, _impl_.sub_type_, byte_size, target);
    }
  }

  // bool unsub_all = 3 [json_name = "unsubAll"];
  if (this->_internal_unsub_all() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(3, this->_internal_unsub_all(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.UnsubscribeRequest)
  return target;
}

size_t UnsubscribeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.UnsubscribeRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.symbol_.size());
  for (int i = 0, n = _impl_.symbol_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.symbol_.Get(i));
  }

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_sub_type_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::_pbi::WireFormatLite::EnumSize(
        this->_internal_sub_type(static_cast<int>(i)));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._sub_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // bool unsub_all = 3 [json_name = "unsubAll"];
  if (this->_internal_unsub_all() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UnsubscribeRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    UnsubscribeRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UnsubscribeRequest::GetClassData() const { return &_class_data_; }


void UnsubscribeRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<UnsubscribeRequest*>(&to_msg);
  auto& from = static_cast<const UnsubscribeRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.UnsubscribeRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.symbol_.MergeFrom(from._impl_.symbol_);
  _this->_impl_.sub_type_.MergeFrom(from._impl_.sub_type_);
  if (from._internal_unsub_all() != 0) {
    _this->_internal_set_unsub_all(from._internal_unsub_all());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void UnsubscribeRequest::CopyFrom(const UnsubscribeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.UnsubscribeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UnsubscribeRequest::IsInitialized() const {
  return true;
}

void UnsubscribeRequest::InternalSwap(UnsubscribeRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.symbol_.InternalSwap(&other->_impl_.symbol_);
  _impl_.sub_type_.InternalSwap(&other->_impl_.sub_type_);
  swap(_impl_.unsub_all_, other->_impl_.unsub_all_);
}

::PROTOBUF_NAMESPACE_ID::Metadata UnsubscribeRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[45]);
}

// ===================================================================

class UnsubscribeResponse::_Internal {
 public:
};

UnsubscribeResponse::UnsubscribeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.UnsubscribeResponse)
}
UnsubscribeResponse::UnsubscribeResponse(const UnsubscribeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  UnsubscribeResponse* const _this = this; (void)_this;
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.UnsubscribeResponse)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UnsubscribeResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UnsubscribeResponse::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata UnsubscribeResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[46]);
}

// ===================================================================

class PushQuote::_Internal {
 public:
};

PushQuote::PushQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.PushQuote)
}
PushQuote::PushQuote(const PushQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  PushQuote* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.open_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.current_turnover_){}
    , decltype(_impl_.sequence_){}
    , decltype(_impl_.timestamp_){}
    , decltype(_impl_.volume_){}
    , decltype(_impl_.trade_status_){}
    , decltype(_impl_.trade_session_){}
    , decltype(_impl_.current_volume_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    _this->_impl_.last_done_.Set(from._internal_last_done(), 
      _this->GetArenaForAllocation());
  }
  _impl_.open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    _this->_impl_.open_.Set(from._internal_open(), 
      _this->GetArenaForAllocation());
  }
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    _this->_impl_.high_.Set(from._internal_high(), 
      _this->GetArenaForAllocation());
  }
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    _this->_impl_.low_.Set(from._internal_low(), 
      _this->GetArenaForAllocation());
  }
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    _this->_impl_.turnover_.Set(from._internal_turnover(), 
      _this->GetArenaForAllocation());
  }
  _impl_.current_turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.current_turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_current_turnover().empty()) {
    _this->_impl_.current_turnover_.Set(from._internal_current_turnover(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.sequence_, &from._impl_.sequence_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.current_volume_) -
    reinterpret_cast<char*>(&_impl_.sequence_)) + sizeof(_impl_.current_volume_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.PushQuote)
}

inline void PushQuote::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.open_){}
    , decltype(_impl_.high_){}
    , decltype(_impl_.low_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.current_turnover_){}
    , decltype(_impl_.sequence_){int64_t{0}}
    , decltype(_impl_.timestamp_){int64_t{0}}
    , decltype(_impl_.volume_){int64_t{0}}
    , decltype(_impl_.trade_status_){0}
    , decltype(_impl_.trade_session_){0}
    , decltype(_impl_.current_volume_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.current_turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.current_turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

PushQuote::~PushQuote() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.PushQuote)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
  _impl_.last_done_.Destroy();
  _impl_.open_.Destroy();
  _impl_.high_.Destroy();
  _impl_.low_.Destroy();
  _impl_.turnover_.Destroy();
  _impl_.current_turnover_.Destroy();
}

void PushQuote::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.PushQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  _impl_.last_done_.ClearToEmpty();
  _impl_.open_.ClearToEmpty();
  _impl_.high_.ClearToEmpty();
  _impl_.low_.ClearToEmpty();
  _impl_.turnover_.ClearToEmpty();
  _impl_.current_turnover_.ClearToEmpty();
  ::memset(&_impl_.sequence_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.current_volume_) -
      reinterpret_cast<char*>(&_impl_.sequence_)) + sizeof(_impl_.current_volume_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushQuote::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string last_done = 3 [json_name = "lastDone"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.open"));
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.high"));
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.low"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          _impl_.timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _impl_.volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.turnover"));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridgeapp::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeSession trade_session = 11 [json_name = "tradeSession"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_session(static_cast<::longbridgeapp::quote::v1::TradeSession>(val));
        } else
          goto handle_unusual;
        continue;
      // int64 current_volume = 12 [json_name = "currentVolume"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
          _impl_.current_volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string current_turnover = 13 [json_name = "currentTurnover"];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          auto str = _internal_mutable_current_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.current_turnover"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.PushQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_last_done(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 11 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      11, this->_internal_trade_session(), target);
  }

  // int64 current_volume = 12 [json_name = "currentVolume"];
  if (this->_internal_current_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(12, this->_internal_current_volume(), target);
  }

  // string current_turnover = 13 [json_name = "currentTurnover"];
  if (!this->_internal_current_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_current_turnover().data(), static_cast<int>(this->_internal_current_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.current_turnover");
    target = stream->WriteStringMaybeAliased(
        13, this->_internal_current_turnover(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.PushQuote)
  return target;
}

size_t PushQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.PushQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string current_turnover = 13 [json_name = "currentTurnover"];
  if (!this->_internal_current_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_current_turnover());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 11 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_session());
  }

  // int64 current_volume = 12 [json_name = "currentVolume"];
  if (this->_internal_current_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_current_volume());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    PushQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushQuote::GetClassData() const { return &_class_data_; }


void PushQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<PushQuote*>(&to_msg);
  auto& from = static_cast<const PushQuote&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.PushQuote)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _this->_internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_open().empty()) {
    _this->_internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _this->_internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _this->_internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _this->_internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_current_turnover().empty()) {
    _this->_internal_set_current_turnover(from._internal_current_turnover());
  }
  if (from._internal_sequence() != 0) {
    _this->_internal_set_sequence(from._internal_sequence());
  }
  if (from._internal_timestamp() != 0) {
    _this->_internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _this->_internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _this->_internal_set_trade_status(from._internal_trade_status());
  }
  if (from._internal_trade_session() != 0) {
    _this->_internal_set_trade_session(from._internal_trade_session());
  }
  if (from._internal_current_volume() != 0) {
    _this->_internal_set_current_volume(from._internal_current_volume());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushQuote::CopyFrom(const PushQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.PushQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushQuote::IsInitialized() const {
  return true;
}

void PushQuote::InternalSwap(PushQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.last_done_, lhs_arena,
      &other->_impl_.last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.open_, lhs_arena,
      &other->_impl_.open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.high_, lhs_arena,
      &other->_impl_.high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.low_, lhs_arena,
      &other->_impl_.low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.turnover_, lhs_arena,
      &other->_impl_.turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.current_turnover_, lhs_arena,
      &other->_impl_.current_turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PushQuote, _impl_.current_volume_)
      + sizeof(PushQuote::_impl_.current_volume_)
      - PROTOBUF_FIELD_OFFSET(PushQuote, _impl_.sequence_)>(
          reinterpret_cast<char*>(&_impl_.sequence_),
          reinterpret_cast<char*>(&other->_impl_.sequence_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PushQuote::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[47]);
}

// ===================================================================

class PushDepth::_Internal {
 public:
};

PushDepth::PushDepth(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.PushDepth)
}
PushDepth::PushDepth(const PushDepth& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  PushDepth* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.ask_){from._impl_.ask_}
    , decltype(_impl_.bid_){from._impl_.bid_}
    , decltype(_impl_.symbol_){}
    , decltype(_impl_.sequence_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.sequence_ = from._impl_.sequence_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.PushDepth)
}

inline void PushDepth::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.ask_){arena}
    , decltype(_impl_.bid_){arena}
    , decltype(_impl_.symbol_){}
    , decltype(_impl_.sequence_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

PushDepth::~PushDepth() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.PushDepth)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushDepth::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.ask_.~RepeatedPtrField();
  _impl_.bid_.~RepeatedPtrField();
  _impl_.symbol_.Destroy();
}

void PushDepth::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushDepth::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.PushDepth)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.ask_.Clear();
  _impl_.bid_.Clear();
  _impl_.symbol_.ClearToEmpty();
  _impl_.sequence_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushDepth::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PushDepth.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Depth ask = 3 [json_name = "ask"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Depth bid = 4 [json_name = "bid"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushDepth::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.PushDepth)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushDepth.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // repeated .longbridgeapp.quote.v1.Depth ask = 3 [json_name = "ask"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_ask_size()); i < n; i++) {
    const auto& repfield = this->_internal_ask(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .longbridgeapp.quote.v1.Depth bid = 4 [json_name = "bid"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_bid_size()); i < n; i++) {
    const auto& repfield = this->_internal_bid(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(4, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.PushDepth)
  return target;
}

size_t PushDepth::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.PushDepth)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Depth ask = 3 [json_name = "ask"];
  total_size += 1UL * this->_internal_ask_size();
  for (const auto& msg : this->_impl_.ask_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridgeapp.quote.v1.Depth bid = 4 [json_name = "bid"];
  total_size += 1UL * this->_internal_bid_size();
  for (const auto& msg : this->_impl_.bid_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushDepth::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    PushDepth::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushDepth::GetClassData() const { return &_class_data_; }


void PushDepth::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<PushDepth*>(&to_msg);
  auto& from = static_cast<const PushDepth&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.PushDepth)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.ask_.MergeFrom(from._impl_.ask_);
  _this->_impl_.bid_.MergeFrom(from._impl_.bid_);
  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_sequence() != 0) {
    _this->_internal_set_sequence(from._internal_sequence());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushDepth::CopyFrom(const PushDepth& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.PushDepth)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushDepth::IsInitialized() const {
  return true;
}

void PushDepth::InternalSwap(PushDepth* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.ask_.InternalSwap(&other->_impl_.ask_);
  _impl_.bid_.InternalSwap(&other->_impl_.bid_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  swap(_impl_.sequence_, other->_impl_.sequence_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PushDepth::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[48]);
}

// ===================================================================

class PushBrokers::_Internal {
 public:
};

PushBrokers::PushBrokers(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.PushBrokers)
}
PushBrokers::PushBrokers(const PushBrokers& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  PushBrokers* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.ask_brokers_){from._impl_.ask_brokers_}
    , decltype(_impl_.bid_brokers_){from._impl_.bid_brokers_}
    , decltype(_impl_.symbol_){}
    , decltype(_impl_.sequence_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.sequence_ = from._impl_.sequence_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.PushBrokers)
}

inline void PushBrokers::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.ask_brokers_){arena}
    , decltype(_impl_.bid_brokers_){arena}
    , decltype(_impl_.symbol_){}
    , decltype(_impl_.sequence_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

PushBrokers::~PushBrokers() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.PushBrokers)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushBrokers::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.ask_brokers_.~RepeatedPtrField();
  _impl_.bid_brokers_.~RepeatedPtrField();
  _impl_.symbol_.Destroy();
}

void PushBrokers::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushBrokers::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.PushBrokers)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.ask_brokers_.Clear();
  _impl_.bid_brokers_.Clear();
  _impl_.symbol_.ClearToEmpty();
  _impl_.sequence_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushBrokers::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PushBrokers.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 3 [json_name = "askBrokers"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 4 [json_name = "bidBrokers"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushBrokers::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.PushBrokers)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushBrokers.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 3 [json_name = "askBrokers"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_ask_brokers_size()); i < n; i++) {
    const auto& repfield = this->_internal_ask_brokers(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 4 [json_name = "bidBrokers"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_bid_brokers_size()); i < n; i++) {
    const auto& repfield = this->_internal_bid_brokers(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(4, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.PushBrokers)
  return target;
}

size_t PushBrokers::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.PushBrokers)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 3 [json_name = "askBrokers"];
  total_size += 1UL * this->_internal_ask_brokers_size();
  for (const auto& msg : this->_impl_.ask_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 4 [json_name = "bidBrokers"];
  total_size += 1UL * this->_internal_bid_brokers_size();
  for (const auto& msg : this->_impl_.bid_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushBrokers::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    PushBrokers::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushBrokers::GetClassData() const { return &_class_data_; }


void PushBrokers::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<PushBrokers*>(&to_msg);
  auto& from = static_cast<const PushBrokers&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.PushBrokers)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.ask_brokers_.MergeFrom(from._impl_.ask_brokers_);
  _this->_impl_.bid_brokers_.MergeFrom(from._impl_.bid_brokers_);
  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_sequence() != 0) {
    _this->_internal_set_sequence(from._internal_sequence());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushBrokers::CopyFrom(const PushBrokers& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.PushBrokers)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushBrokers::IsInitialized() const {
  return true;
}

void PushBrokers::InternalSwap(PushBrokers* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.ask_brokers_.InternalSwap(&other->_impl_.ask_brokers_);
  _impl_.bid_brokers_.InternalSwap(&other->_impl_.bid_brokers_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  swap(_impl_.sequence_, other->_impl_.sequence_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PushBrokers::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[49]);
}

// ===================================================================

class PushTrade::_Internal {
 public:
};

PushTrade::PushTrade(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.PushTrade)
}
PushTrade::PushTrade(const PushTrade& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  PushTrade* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.trade_){from._impl_.trade_}
    , decltype(_impl_.symbol_){}
    , decltype(_impl_.sequence_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.sequence_ = from._impl_.sequence_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.PushTrade)
}

inline void PushTrade::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.trade_){arena}
    , decltype(_impl_.symbol_){}
    , decltype(_impl_.sequence_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

PushTrade::~PushTrade() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.PushTrade)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushTrade::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.trade_.~RepeatedPtrField();
  _impl_.symbol_.Destroy();
}

void PushTrade::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void PushTrade::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.PushTrade)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.trade_.Clear();
  _impl_.symbol_.ClearToEmpty();
  _impl_.sequence_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushTrade::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.PushTrade.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Trade trade = 3 [json_name = "trade"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_trade(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushTrade::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.PushTrade)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushTrade.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // repeated .longbridgeapp.quote.v1.Trade trade = 3 [json_name = "trade"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_trade_size()); i < n; i++) {
    const auto& repfield = this->_internal_trade(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.PushTrade)
  return target;
}

size_t PushTrade::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.PushTrade)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Trade trade = 3 [json_name = "trade"];
  total_size += 1UL * this->_internal_trade_size();
  for (const auto& msg : this->_impl_.trade_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushTrade::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    PushTrade::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushTrade::GetClassData() const { return &_class_data_; }


void PushTrade::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<PushTrade*>(&to_msg);
  auto& from = static_cast<const PushTrade&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.PushTrade)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.trade_.MergeFrom(from._impl_.trade_);
  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_sequence() != 0) {
    _this->_internal_set_sequence(from._internal_sequence());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushTrade::CopyFrom(const PushTrade& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.PushTrade)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushTrade::IsInitialized() const {
  return true;
}

void PushTrade::InternalSwap(PushTrade* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.trade_.InternalSwap(&other->_impl_.trade_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  swap(_impl_.sequence_, other->_impl_.sequence_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PushTrade::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[50]);
}

// ===================================================================

class MarketTradeDayRequest::_Internal {
 public:
};

MarketTradeDayRequest::MarketTradeDayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.MarketTradeDayRequest)
}
MarketTradeDayRequest::MarketTradeDayRequest(const MarketTradeDayRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MarketTradeDayRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.market_){}
    , decltype(_impl_.beg_day_){}
    , decltype(_impl_.end_day_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.market_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.market_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_market().empty()) {
    _this->_impl_.market_.Set(from._internal_market(), 
      _this->GetArenaForAllocation());
  }
  _impl_.beg_day_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.beg_day_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_beg_day().empty()) {
    _this->_impl_.beg_day_.Set(from._internal_beg_day(), 
      _this->GetArenaForAllocation());
  }
  _impl_.end_day_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.end_day_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_end_day().empty()) {
    _this->_impl_.end_day_.Set(from._internal_end_day(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.MarketTradeDayRequest)
}

inline void MarketTradeDayRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.market_){}
    , decltype(_impl_.beg_day_){}
    , decltype(_impl_.end_day_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.market_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.market_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.beg_day_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.beg_day_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.end_day_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.end_day_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

MarketTradeDayRequest::~MarketTradeDayRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.MarketTradeDayRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void MarketTradeDayRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.market_.Destroy();
  _impl_.beg_day_.Destroy();
  _impl_.end_day_.Destroy();
}

void MarketTradeDayRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MarketTradeDayRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.MarketTradeDayRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.market_.ClearToEmpty();
  _impl_.beg_day_.ClearToEmpty();
  _impl_.end_day_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradeDayRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string market = 1 [json_name = "market"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_market();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradeDayRequest.market"));
        } else
          goto handle_unusual;
        continue;
      // string beg_day = 2 [json_name = "begDay"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_beg_day();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradeDayRequest.beg_day"));
        } else
          goto handle_unusual;
        continue;
      // string end_day = 3 [json_name = "endDay"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_end_day();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradeDayRequest.end_day"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradeDayRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.MarketTradeDayRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_market().data(), static_cast<int>(this->_internal_market().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradeDayRequest.market");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_market(), target);
  }

  // string beg_day = 2 [json_name = "begDay"];
  if (!this->_internal_beg_day().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_beg_day().data(), static_cast<int>(this->_internal_beg_day().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradeDayRequest.beg_day");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_beg_day(), target);
  }

  // string end_day = 3 [json_name = "endDay"];
  if (!this->_internal_end_day().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_end_day().data(), static_cast<int>(this->_internal_end_day().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradeDayRequest.end_day");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_end_day(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.MarketTradeDayRequest)
  return target;
}

size_t MarketTradeDayRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.MarketTradeDayRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_market());
  }

  // string beg_day = 2 [json_name = "begDay"];
  if (!this->_internal_beg_day().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_beg_day());
  }

  // string end_day = 3 [json_name = "endDay"];
  if (!this->_internal_end_day().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_end_day());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradeDayRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MarketTradeDayRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradeDayRequest::GetClassData() const { return &_class_data_; }


void MarketTradeDayRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MarketTradeDayRequest*>(&to_msg);
  auto& from = static_cast<const MarketTradeDayRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.MarketTradeDayRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_market().empty()) {
    _this->_internal_set_market(from._internal_market());
  }
  if (!from._internal_beg_day().empty()) {
    _this->_internal_set_beg_day(from._internal_beg_day());
  }
  if (!from._internal_end_day().empty()) {
    _this->_internal_set_end_day(from._internal_end_day());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradeDayRequest::CopyFrom(const MarketTradeDayRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.MarketTradeDayRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradeDayRequest::IsInitialized() const {
  return true;
}

void MarketTradeDayRequest::InternalSwap(MarketTradeDayRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.market_, lhs_arena,
      &other->_impl_.market_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.beg_day_, lhs_arena,
      &other->_impl_.beg_day_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.end_day_, lhs_arena,
      &other->_impl_.end_day_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradeDayRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[51]);
}

// ===================================================================

class MarketTradeDayResponse::_Internal {
 public:
};

MarketTradeDayResponse::MarketTradeDayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.MarketTradeDayResponse)
}
MarketTradeDayResponse::MarketTradeDayResponse(const MarketTradeDayResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MarketTradeDayResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.trade_day_){from._impl_.trade_day_}
    , decltype(_impl_.half_trade_day_){from._impl_.half_trade_day_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.MarketTradeDayResponse)
}

inline void MarketTradeDayResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.trade_day_){arena}
    , decltype(_impl_.half_trade_day_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MarketTradeDayResponse::~MarketTradeDayResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.MarketTradeDayResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void MarketTradeDayResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.trade_day_.~RepeatedPtrField();
  _impl_.half_trade_day_.~RepeatedPtrField();
}

void MarketTradeDayResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MarketTradeDayResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.MarketTradeDayResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.trade_day_.Clear();
  _impl_.half_trade_day_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradeDayResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string trade_day = 1 [json_name = "tradeDay"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_trade_day();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradeDayResponse.trade_day"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated string half_trade_day = 2 [json_name = "halfTradeDay"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_half_trade_day();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradeDayResponse.half_trade_day"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradeDayResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.MarketTradeDayResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string trade_day = 1 [json_name = "tradeDay"];
  for (int i = 0, n = this->_internal_trade_day_size(); i < n; i++) {
    const auto& s = this->_internal_trade_day(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradeDayResponse.trade_day");
    target = stream->WriteString(1, s, target);
  }

  // repeated string half_trade_day = 2 [json_name = "halfTradeDay"];
  for (int i = 0, n = this->_internal_half_trade_day_size(); i < n; i++) {
    const auto& s = this->_internal_half_trade_day(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradeDayResponse.half_trade_day");
    target = stream->WriteString(2, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.MarketTradeDayResponse)
  return target;
}

size_t MarketTradeDayResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.MarketTradeDayResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string trade_day = 1 [json_name = "tradeDay"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.trade_day_.size());
  for (int i = 0, n = _impl_.trade_day_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.trade_day_.Get(i));
  }

  // repeated string half_trade_day = 2 [json_name = "halfTradeDay"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.half_trade_day_.size());
  for (int i = 0, n = _impl_.half_trade_day_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.half_trade_day_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradeDayResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MarketTradeDayResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradeDayResponse::GetClassData() const { return &_class_data_; }


void MarketTradeDayResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MarketTradeDayResponse*>(&to_msg);
  auto& from = static_cast<const MarketTradeDayResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.MarketTradeDayResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.trade_day_.MergeFrom(from._impl_.trade_day_);
  _this->_impl_.half_trade_day_.MergeFrom(from._impl_.half_trade_day_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradeDayResponse::CopyFrom(const MarketTradeDayResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.MarketTradeDayResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradeDayResponse::IsInitialized() const {
  return true;
}

void MarketTradeDayResponse::InternalSwap(MarketTradeDayResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.trade_day_.InternalSwap(&other->_impl_.trade_day_);
  _impl_.half_trade_day_.InternalSwap(&other->_impl_.half_trade_day_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradeDayResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[52]);
}

// ===================================================================

class CapitalFlowIntradayRequest::_Internal {
 public:
};

CapitalFlowIntradayRequest::CapitalFlowIntradayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.CapitalFlowIntradayRequest)
}
CapitalFlowIntradayRequest::CapitalFlowIntradayRequest(const CapitalFlowIntradayRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CapitalFlowIntradayRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.CapitalFlowIntradayRequest)
}

inline void CapitalFlowIntradayRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CapitalFlowIntradayRequest::~CapitalFlowIntradayRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.CapitalFlowIntradayRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CapitalFlowIntradayRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
}

void CapitalFlowIntradayRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CapitalFlowIntradayRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.CapitalFlowIntradayRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CapitalFlowIntradayRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.CapitalFlowIntradayRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CapitalFlowIntradayRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.CapitalFlowIntradayRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.CapitalFlowIntradayRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.CapitalFlowIntradayRequest)
  return target;
}

size_t CapitalFlowIntradayRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.CapitalFlowIntradayRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CapitalFlowIntradayRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CapitalFlowIntradayRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CapitalFlowIntradayRequest::GetClassData() const { return &_class_data_; }


void CapitalFlowIntradayRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CapitalFlowIntradayRequest*>(&to_msg);
  auto& from = static_cast<const CapitalFlowIntradayRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.CapitalFlowIntradayRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CapitalFlowIntradayRequest::CopyFrom(const CapitalFlowIntradayRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.CapitalFlowIntradayRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CapitalFlowIntradayRequest::IsInitialized() const {
  return true;
}

void CapitalFlowIntradayRequest::InternalSwap(CapitalFlowIntradayRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata CapitalFlowIntradayRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[53]);
}

// ===================================================================

class CapitalFlowIntradayResponse_CapitalFlowLine::_Internal {
 public:
};

CapitalFlowIntradayResponse_CapitalFlowLine::CapitalFlowIntradayResponse_CapitalFlowLine(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
}
CapitalFlowIntradayResponse_CapitalFlowLine::CapitalFlowIntradayResponse_CapitalFlowLine(const CapitalFlowIntradayResponse_CapitalFlowLine& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CapitalFlowIntradayResponse_CapitalFlowLine* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.inflow_){}
    , decltype(_impl_.timestamp_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.inflow_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.inflow_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_inflow().empty()) {
    _this->_impl_.inflow_.Set(from._internal_inflow(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.timestamp_ = from._impl_.timestamp_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
}

inline void CapitalFlowIntradayResponse_CapitalFlowLine::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.inflow_){}
    , decltype(_impl_.timestamp_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.inflow_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.inflow_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CapitalFlowIntradayResponse_CapitalFlowLine::~CapitalFlowIntradayResponse_CapitalFlowLine() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CapitalFlowIntradayResponse_CapitalFlowLine::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.inflow_.Destroy();
}

void CapitalFlowIntradayResponse_CapitalFlowLine::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CapitalFlowIntradayResponse_CapitalFlowLine::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.inflow_.ClearToEmpty();
  _impl_.timestamp_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CapitalFlowIntradayResponse_CapitalFlowLine::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string inflow = 1 [json_name = "inflow"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_inflow();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine.inflow"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 2 [json_name = "timestamp"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CapitalFlowIntradayResponse_CapitalFlowLine::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string inflow = 1 [json_name = "inflow"];
  if (!this->_internal_inflow().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_inflow().data(), static_cast<int>(this->_internal_inflow().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine.inflow");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_inflow(), target);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_timestamp(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  return target;
}

size_t CapitalFlowIntradayResponse_CapitalFlowLine::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string inflow = 1 [json_name = "inflow"];
  if (!this->_internal_inflow().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_inflow());
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CapitalFlowIntradayResponse_CapitalFlowLine::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CapitalFlowIntradayResponse_CapitalFlowLine::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CapitalFlowIntradayResponse_CapitalFlowLine::GetClassData() const { return &_class_data_; }


void CapitalFlowIntradayResponse_CapitalFlowLine::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CapitalFlowIntradayResponse_CapitalFlowLine*>(&to_msg);
  auto& from = static_cast<const CapitalFlowIntradayResponse_CapitalFlowLine&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_inflow().empty()) {
    _this->_internal_set_inflow(from._internal_inflow());
  }
  if (from._internal_timestamp() != 0) {
    _this->_internal_set_timestamp(from._internal_timestamp());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CapitalFlowIntradayResponse_CapitalFlowLine::CopyFrom(const CapitalFlowIntradayResponse_CapitalFlowLine& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CapitalFlowIntradayResponse_CapitalFlowLine::IsInitialized() const {
  return true;
}

void CapitalFlowIntradayResponse_CapitalFlowLine::InternalSwap(CapitalFlowIntradayResponse_CapitalFlowLine* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.inflow_, lhs_arena,
      &other->_impl_.inflow_, rhs_arena
  );
  swap(_impl_.timestamp_, other->_impl_.timestamp_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CapitalFlowIntradayResponse_CapitalFlowLine::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[54]);
}

// ===================================================================

class CapitalFlowIntradayResponse::_Internal {
 public:
};

CapitalFlowIntradayResponse::CapitalFlowIntradayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.CapitalFlowIntradayResponse)
}
CapitalFlowIntradayResponse::CapitalFlowIntradayResponse(const CapitalFlowIntradayResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CapitalFlowIntradayResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.capital_flow_lines_){from._impl_.capital_flow_lines_}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.CapitalFlowIntradayResponse)
}

inline void CapitalFlowIntradayResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.capital_flow_lines_){arena}
    , decltype(_impl_.symbol_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CapitalFlowIntradayResponse::~CapitalFlowIntradayResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.CapitalFlowIntradayResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CapitalFlowIntradayResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.capital_flow_lines_.~RepeatedPtrField();
  _impl_.symbol_.Destroy();
}

void CapitalFlowIntradayResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CapitalFlowIntradayResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.CapitalFlowIntradayResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.capital_flow_lines_.Clear();
  _impl_.symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CapitalFlowIntradayResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.CapitalFlowIntradayResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine capital_flow_lines = 2 [json_name = "capitalFlowLines"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_capital_flow_lines(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CapitalFlowIntradayResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.CapitalFlowIntradayResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.CapitalFlowIntradayResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine capital_flow_lines = 2 [json_name = "capitalFlowLines"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_capital_flow_lines_size()); i < n; i++) {
    const auto& repfield = this->_internal_capital_flow_lines(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.CapitalFlowIntradayResponse)
  return target;
}

size_t CapitalFlowIntradayResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.CapitalFlowIntradayResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine capital_flow_lines = 2 [json_name = "capitalFlowLines"];
  total_size += 1UL * this->_internal_capital_flow_lines_size();
  for (const auto& msg : this->_impl_.capital_flow_lines_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CapitalFlowIntradayResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CapitalFlowIntradayResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CapitalFlowIntradayResponse::GetClassData() const { return &_class_data_; }


void CapitalFlowIntradayResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CapitalFlowIntradayResponse*>(&to_msg);
  auto& from = static_cast<const CapitalFlowIntradayResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.CapitalFlowIntradayResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.capital_flow_lines_.MergeFrom(from._impl_.capital_flow_lines_);
  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CapitalFlowIntradayResponse::CopyFrom(const CapitalFlowIntradayResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.CapitalFlowIntradayResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CapitalFlowIntradayResponse::IsInitialized() const {
  return true;
}

void CapitalFlowIntradayResponse::InternalSwap(CapitalFlowIntradayResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.capital_flow_lines_.InternalSwap(&other->_impl_.capital_flow_lines_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata CapitalFlowIntradayResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[55]);
}

// ===================================================================

class CapitalDistributionResponse_CapitalDistribution::_Internal {
 public:
};

CapitalDistributionResponse_CapitalDistribution::CapitalDistributionResponse_CapitalDistribution(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution)
}
CapitalDistributionResponse_CapitalDistribution::CapitalDistributionResponse_CapitalDistribution(const CapitalDistributionResponse_CapitalDistribution& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CapitalDistributionResponse_CapitalDistribution* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.large_){}
    , decltype(_impl_.medium_){}
    , decltype(_impl_.small_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.large_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.large_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_large().empty()) {
    _this->_impl_.large_.Set(from._internal_large(), 
      _this->GetArenaForAllocation());
  }
  _impl_.medium_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.medium_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_medium().empty()) {
    _this->_impl_.medium_.Set(from._internal_medium(), 
      _this->GetArenaForAllocation());
  }
  _impl_.small_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.small_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_small().empty()) {
    _this->_impl_.small_.Set(from._internal_small(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution)
}

inline void CapitalDistributionResponse_CapitalDistribution::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.large_){}
    , decltype(_impl_.medium_){}
    , decltype(_impl_.small_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.large_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.large_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.medium_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.medium_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.small_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.small_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CapitalDistributionResponse_CapitalDistribution::~CapitalDistributionResponse_CapitalDistribution() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CapitalDistributionResponse_CapitalDistribution::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.large_.Destroy();
  _impl_.medium_.Destroy();
  _impl_.small_.Destroy();
}

void CapitalDistributionResponse_CapitalDistribution::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CapitalDistributionResponse_CapitalDistribution::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.large_.ClearToEmpty();
  _impl_.medium_.ClearToEmpty();
  _impl_.small_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CapitalDistributionResponse_CapitalDistribution::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string large = 1 [json_name = "large"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_large();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution.large"));
        } else
          goto handle_unusual;
        continue;
      // string medium = 2 [json_name = "medium"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_medium();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution.medium"));
        } else
          goto handle_unusual;
        continue;
      // string small = 3 [json_name = "small"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_small();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution.small"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CapitalDistributionResponse_CapitalDistribution::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string large = 1 [json_name = "large"];
  if (!this->_internal_large().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_large().data(), static_cast<int>(this->_internal_large().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution.large");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_large(), target);
  }

  // string medium = 2 [json_name = "medium"];
  if (!this->_internal_medium().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_medium().data(), static_cast<int>(this->_internal_medium().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution.medium");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_medium(), target);
  }

  // string small = 3 [json_name = "small"];
  if (!this->_internal_small().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_small().data(), static_cast<int>(this->_internal_small().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution.small");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_small(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  return target;
}

size_t CapitalDistributionResponse_CapitalDistribution::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string large = 1 [json_name = "large"];
  if (!this->_internal_large().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_large());
  }

  // string medium = 2 [json_name = "medium"];
  if (!this->_internal_medium().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_medium());
  }

  // string small = 3 [json_name = "small"];
  if (!this->_internal_small().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_small());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CapitalDistributionResponse_CapitalDistribution::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CapitalDistributionResponse_CapitalDistribution::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CapitalDistributionResponse_CapitalDistribution::GetClassData() const { return &_class_data_; }


void CapitalDistributionResponse_CapitalDistribution::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CapitalDistributionResponse_CapitalDistribution*>(&to_msg);
  auto& from = static_cast<const CapitalDistributionResponse_CapitalDistribution&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_large().empty()) {
    _this->_internal_set_large(from._internal_large());
  }
  if (!from._internal_medium().empty()) {
    _this->_internal_set_medium(from._internal_medium());
  }
  if (!from._internal_small().empty()) {
    _this->_internal_set_small(from._internal_small());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CapitalDistributionResponse_CapitalDistribution::CopyFrom(const CapitalDistributionResponse_CapitalDistribution& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CapitalDistributionResponse_CapitalDistribution::IsInitialized() const {
  return true;
}

void CapitalDistributionResponse_CapitalDistribution::InternalSwap(CapitalDistributionResponse_CapitalDistribution* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.large_, lhs_arena,
      &other->_impl_.large_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.medium_, lhs_arena,
      &other->_impl_.medium_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.small_, lhs_arena,
      &other->_impl_.small_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata CapitalDistributionResponse_CapitalDistribution::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[56]);
}

// ===================================================================

class CapitalDistributionResponse::_Internal {
 public:
  static const ::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution& capital_in(const CapitalDistributionResponse* msg);
  static const ::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution& capital_out(const CapitalDistributionResponse* msg);
};

const ::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution&
CapitalDistributionResponse::_Internal::capital_in(const CapitalDistributionResponse* msg) {
  return *msg->_impl_.capital_in_;
}
const ::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution&
CapitalDistributionResponse::_Internal::capital_out(const CapitalDistributionResponse* msg) {
  return *msg->_impl_.capital_out_;
}
CapitalDistributionResponse::CapitalDistributionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.CapitalDistributionResponse)
}
CapitalDistributionResponse::CapitalDistributionResponse(const CapitalDistributionResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CapitalDistributionResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.capital_in_){nullptr}
    , decltype(_impl_.capital_out_){nullptr}
    , decltype(_impl_.timestamp_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_capital_in()) {
    _this->_impl_.capital_in_ = new ::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution(*from._impl_.capital_in_);
  }
  if (from._internal_has_capital_out()) {
    _this->_impl_.capital_out_ = new ::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution(*from._impl_.capital_out_);
  }
  _this->_impl_.timestamp_ = from._impl_.timestamp_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.CapitalDistributionResponse)
}

inline void CapitalDistributionResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.capital_in_){nullptr}
    , decltype(_impl_.capital_out_){nullptr}
    , decltype(_impl_.timestamp_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CapitalDistributionResponse::~CapitalDistributionResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.CapitalDistributionResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CapitalDistributionResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
  if (this != internal_default_instance()) delete _impl_.capital_in_;
  if (this != internal_default_instance()) delete _impl_.capital_out_;
}

void CapitalDistributionResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CapitalDistributionResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.CapitalDistributionResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && _impl_.capital_in_ != nullptr) {
    delete _impl_.capital_in_;
  }
  _impl_.capital_in_ = nullptr;
  if (GetArenaForAllocation() == nullptr && _impl_.capital_out_ != nullptr) {
    delete _impl_.capital_out_;
  }
  _impl_.capital_out_ = nullptr;
  _impl_.timestamp_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CapitalDistributionResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.CapitalDistributionResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 2 [json_name = "timestamp"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_in = 3 [json_name = "capitalIn"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_capital_in(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_out = 4 [json_name = "capitalOut"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_capital_out(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CapitalDistributionResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.CapitalDistributionResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.CapitalDistributionResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_timestamp(), target);
  }

  // .longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_in = 3 [json_name = "capitalIn"];
  if (this->_internal_has_capital_in()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, _Internal::capital_in(this),
        _Internal::capital_in(this).GetCachedSize(), target, stream);
  }

  // .longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_out = 4 [json_name = "capitalOut"];
  if (this->_internal_has_capital_out()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(4, _Internal::capital_out(this),
        _Internal::capital_out(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.CapitalDistributionResponse)
  return target;
}

size_t CapitalDistributionResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.CapitalDistributionResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // .longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_in = 3 [json_name = "capitalIn"];
  if (this->_internal_has_capital_in()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.capital_in_);
  }

  // .longbridgeapp.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_out = 4 [json_name = "capitalOut"];
  if (this->_internal_has_capital_out()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.capital_out_);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CapitalDistributionResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CapitalDistributionResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CapitalDistributionResponse::GetClassData() const { return &_class_data_; }


void CapitalDistributionResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CapitalDistributionResponse*>(&to_msg);
  auto& from = static_cast<const CapitalDistributionResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.CapitalDistributionResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_has_capital_in()) {
    _this->_internal_mutable_capital_in()->::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution::MergeFrom(
        from._internal_capital_in());
  }
  if (from._internal_has_capital_out()) {
    _this->_internal_mutable_capital_out()->::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution::MergeFrom(
        from._internal_capital_out());
  }
  if (from._internal_timestamp() != 0) {
    _this->_internal_set_timestamp(from._internal_timestamp());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CapitalDistributionResponse::CopyFrom(const CapitalDistributionResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.CapitalDistributionResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CapitalDistributionResponse::IsInitialized() const {
  return true;
}

void CapitalDistributionResponse::InternalSwap(CapitalDistributionResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CapitalDistributionResponse, _impl_.timestamp_)
      + sizeof(CapitalDistributionResponse::_impl_.timestamp_)
      - PROTOBUF_FIELD_OFFSET(CapitalDistributionResponse, _impl_.capital_in_)>(
          reinterpret_cast<char*>(&_impl_.capital_in_),
          reinterpret_cast<char*>(&other->_impl_.capital_in_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CapitalDistributionResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[57]);
}

// ===================================================================

class SecurityCalcQuoteRequest::_Internal {
 public:
};

SecurityCalcQuoteRequest::SecurityCalcQuoteRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityCalcQuoteRequest)
}
SecurityCalcQuoteRequest::SecurityCalcQuoteRequest(const SecurityCalcQuoteRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityCalcQuoteRequest* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbols_){from._impl_.symbols_}
    , decltype(_impl_.calc_index_){from._impl_.calc_index_}
    , /*decltype(_impl_._calc_index_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityCalcQuoteRequest)
}

inline void SecurityCalcQuoteRequest::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbols_){arena}
    , decltype(_impl_.calc_index_){arena}
    , /*decltype(_impl_._calc_index_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

SecurityCalcQuoteRequest::~SecurityCalcQuoteRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityCalcQuoteRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityCalcQuoteRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbols_.~RepeatedPtrField();
  _impl_.calc_index_.~RepeatedField();
}

void SecurityCalcQuoteRequest::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityCalcQuoteRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityCalcQuoteRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbols_.Clear();
  _impl_.calc_index_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCalcQuoteRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string symbols = 1 [json_name = "symbols"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_symbols();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcQuoteRequest.symbols"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.CalcIndex calc_index = 2 [json_name = "calcIndex"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_calc_index(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_calc_index(static_cast<::longbridgeapp::quote::v1::CalcIndex>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCalcQuoteRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityCalcQuoteRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string symbols = 1 [json_name = "symbols"];
  for (int i = 0, n = this->_internal_symbols_size(); i < n; i++) {
    const auto& s = this->_internal_symbols(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcQuoteRequest.symbols");
    target = stream->WriteString(1, s, target);
  }

  // repeated .longbridgeapp.quote.v1.CalcIndex calc_index = 2 [json_name = "calcIndex"];
  {
    int byte_size = _impl_._calc_index_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          2, _impl_.calc_index_, byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityCalcQuoteRequest)
  return target;
}

size_t SecurityCalcQuoteRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityCalcQuoteRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string symbols = 1 [json_name = "symbols"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.symbols_.size());
  for (int i = 0, n = _impl_.symbols_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.symbols_.Get(i));
  }

  // repeated .longbridgeapp.quote.v1.CalcIndex calc_index = 2 [json_name = "calcIndex"];
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_calc_index_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::_pbi::WireFormatLite::EnumSize(
        this->_internal_calc_index(static_cast<int>(i)));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._calc_index_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCalcQuoteRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityCalcQuoteRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCalcQuoteRequest::GetClassData() const { return &_class_data_; }


void SecurityCalcQuoteRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityCalcQuoteRequest*>(&to_msg);
  auto& from = static_cast<const SecurityCalcQuoteRequest&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityCalcQuoteRequest)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.symbols_.MergeFrom(from._impl_.symbols_);
  _this->_impl_.calc_index_.MergeFrom(from._impl_.calc_index_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCalcQuoteRequest::CopyFrom(const SecurityCalcQuoteRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityCalcQuoteRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCalcQuoteRequest::IsInitialized() const {
  return true;
}

void SecurityCalcQuoteRequest::InternalSwap(SecurityCalcQuoteRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.symbols_.InternalSwap(&other->_impl_.symbols_);
  _impl_.calc_index_.InternalSwap(&other->_impl_.calc_index_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCalcQuoteRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[58]);
}

// ===================================================================

class SecurityCalcIndex::_Internal {
 public:
};

SecurityCalcIndex::SecurityCalcIndex(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityCalcIndex)
}
SecurityCalcIndex::SecurityCalcIndex(const SecurityCalcIndex& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityCalcIndex* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.change_val_){}
    , decltype(_impl_.change_rate_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.ytd_change_rate_){}
    , decltype(_impl_.turnover_rate_){}
    , decltype(_impl_.total_market_value_){}
    , decltype(_impl_.capital_flow_){}
    , decltype(_impl_.amplitude_){}
    , decltype(_impl_.volume_ratio_){}
    , decltype(_impl_.pe_ttm_ratio_){}
    , decltype(_impl_.pb_ratio_){}
    , decltype(_impl_.dividend_ratio_ttm_){}
    , decltype(_impl_.five_day_change_rate_){}
    , decltype(_impl_.ten_day_change_rate_){}
    , decltype(_impl_.half_year_change_rate_){}
    , decltype(_impl_.five_minutes_change_rate_){}
    , decltype(_impl_.expiry_date_){}
    , decltype(_impl_.strike_price_){}
    , decltype(_impl_.upper_strike_price_){}
    , decltype(_impl_.lower_strike_price_){}
    , decltype(_impl_.outstanding_ratio_){}
    , decltype(_impl_.premium_){}
    , decltype(_impl_.itm_otm_){}
    , decltype(_impl_.implied_volatility_){}
    , decltype(_impl_.warrant_delta_){}
    , decltype(_impl_.call_price_){}
    , decltype(_impl_.to_call_price_){}
    , decltype(_impl_.effective_leverage_){}
    , decltype(_impl_.leverage_ratio_){}
    , decltype(_impl_.conversion_ratio_){}
    , decltype(_impl_.balance_point_){}
    , decltype(_impl_.delta_){}
    , decltype(_impl_.gamma_){}
    , decltype(_impl_.theta_){}
    , decltype(_impl_.vega_){}
    , decltype(_impl_.rho_){}
    , decltype(_impl_.volume_){}
    , decltype(_impl_.outstanding_qty_){}
    , decltype(_impl_.open_interest_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    _this->_impl_.symbol_.Set(from._internal_symbol(), 
      _this->GetArenaForAllocation());
  }
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    _this->_impl_.last_done_.Set(from._internal_last_done(), 
      _this->GetArenaForAllocation());
  }
  _impl_.change_val_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.change_val_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_change_val().empty()) {
    _this->_impl_.change_val_.Set(from._internal_change_val(), 
      _this->GetArenaForAllocation());
  }
  _impl_.change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_change_rate().empty()) {
    _this->_impl_.change_rate_.Set(from._internal_change_rate(), 
      _this->GetArenaForAllocation());
  }
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    _this->_impl_.turnover_.Set(from._internal_turnover(), 
      _this->GetArenaForAllocation());
  }
  _impl_.ytd_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.ytd_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_ytd_change_rate().empty()) {
    _this->_impl_.ytd_change_rate_.Set(from._internal_ytd_change_rate(), 
      _this->GetArenaForAllocation());
  }
  _impl_.turnover_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover_rate().empty()) {
    _this->_impl_.turnover_rate_.Set(from._internal_turnover_rate(), 
      _this->GetArenaForAllocation());
  }
  _impl_.total_market_value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.total_market_value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_total_market_value().empty()) {
    _this->_impl_.total_market_value_.Set(from._internal_total_market_value(), 
      _this->GetArenaForAllocation());
  }
  _impl_.capital_flow_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.capital_flow_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_capital_flow().empty()) {
    _this->_impl_.capital_flow_.Set(from._internal_capital_flow(), 
      _this->GetArenaForAllocation());
  }
  _impl_.amplitude_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.amplitude_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_amplitude().empty()) {
    _this->_impl_.amplitude_.Set(from._internal_amplitude(), 
      _this->GetArenaForAllocation());
  }
  _impl_.volume_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.volume_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_volume_ratio().empty()) {
    _this->_impl_.volume_ratio_.Set(from._internal_volume_ratio(), 
      _this->GetArenaForAllocation());
  }
  _impl_.pe_ttm_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.pe_ttm_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_pe_ttm_ratio().empty()) {
    _this->_impl_.pe_ttm_ratio_.Set(from._internal_pe_ttm_ratio(), 
      _this->GetArenaForAllocation());
  }
  _impl_.pb_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.pb_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_pb_ratio().empty()) {
    _this->_impl_.pb_ratio_.Set(from._internal_pb_ratio(), 
      _this->GetArenaForAllocation());
  }
  _impl_.dividend_ratio_ttm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.dividend_ratio_ttm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_dividend_ratio_ttm().empty()) {
    _this->_impl_.dividend_ratio_ttm_.Set(from._internal_dividend_ratio_ttm(), 
      _this->GetArenaForAllocation());
  }
  _impl_.five_day_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.five_day_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_five_day_change_rate().empty()) {
    _this->_impl_.five_day_change_rate_.Set(from._internal_five_day_change_rate(), 
      _this->GetArenaForAllocation());
  }
  _impl_.ten_day_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.ten_day_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_ten_day_change_rate().empty()) {
    _this->_impl_.ten_day_change_rate_.Set(from._internal_ten_day_change_rate(), 
      _this->GetArenaForAllocation());
  }
  _impl_.half_year_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.half_year_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_half_year_change_rate().empty()) {
    _this->_impl_.half_year_change_rate_.Set(from._internal_half_year_change_rate(), 
      _this->GetArenaForAllocation());
  }
  _impl_.five_minutes_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.five_minutes_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_five_minutes_change_rate().empty()) {
    _this->_impl_.five_minutes_change_rate_.Set(from._internal_five_minutes_change_rate(), 
      _this->GetArenaForAllocation());
  }
  _impl_.expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    _this->_impl_.expiry_date_.Set(from._internal_expiry_date(), 
      _this->GetArenaForAllocation());
  }
  _impl_.strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_strike_price().empty()) {
    _this->_impl_.strike_price_.Set(from._internal_strike_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.upper_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.upper_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_upper_strike_price().empty()) {
    _this->_impl_.upper_strike_price_.Set(from._internal_upper_strike_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.lower_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.lower_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_lower_strike_price().empty()) {
    _this->_impl_.lower_strike_price_.Set(from._internal_lower_strike_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.outstanding_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.outstanding_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_outstanding_ratio().empty()) {
    _this->_impl_.outstanding_ratio_.Set(from._internal_outstanding_ratio(), 
      _this->GetArenaForAllocation());
  }
  _impl_.premium_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.premium_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_premium().empty()) {
    _this->_impl_.premium_.Set(from._internal_premium(), 
      _this->GetArenaForAllocation());
  }
  _impl_.itm_otm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.itm_otm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_itm_otm().empty()) {
    _this->_impl_.itm_otm_.Set(from._internal_itm_otm(), 
      _this->GetArenaForAllocation());
  }
  _impl_.implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_implied_volatility().empty()) {
    _this->_impl_.implied_volatility_.Set(from._internal_implied_volatility(), 
      _this->GetArenaForAllocation());
  }
  _impl_.warrant_delta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.warrant_delta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_warrant_delta().empty()) {
    _this->_impl_.warrant_delta_.Set(from._internal_warrant_delta(), 
      _this->GetArenaForAllocation());
  }
  _impl_.call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_call_price().empty()) {
    _this->_impl_.call_price_.Set(from._internal_call_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.to_call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.to_call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_to_call_price().empty()) {
    _this->_impl_.to_call_price_.Set(from._internal_to_call_price(), 
      _this->GetArenaForAllocation());
  }
  _impl_.effective_leverage_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.effective_leverage_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_effective_leverage().empty()) {
    _this->_impl_.effective_leverage_.Set(from._internal_effective_leverage(), 
      _this->GetArenaForAllocation());
  }
  _impl_.leverage_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.leverage_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_leverage_ratio().empty()) {
    _this->_impl_.leverage_ratio_.Set(from._internal_leverage_ratio(), 
      _this->GetArenaForAllocation());
  }
  _impl_.conversion_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.conversion_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_conversion_ratio().empty()) {
    _this->_impl_.conversion_ratio_.Set(from._internal_conversion_ratio(), 
      _this->GetArenaForAllocation());
  }
  _impl_.balance_point_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.balance_point_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_balance_point().empty()) {
    _this->_impl_.balance_point_.Set(from._internal_balance_point(), 
      _this->GetArenaForAllocation());
  }
  _impl_.delta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.delta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_delta().empty()) {
    _this->_impl_.delta_.Set(from._internal_delta(), 
      _this->GetArenaForAllocation());
  }
  _impl_.gamma_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.gamma_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_gamma().empty()) {
    _this->_impl_.gamma_.Set(from._internal_gamma(), 
      _this->GetArenaForAllocation());
  }
  _impl_.theta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.theta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_theta().empty()) {
    _this->_impl_.theta_.Set(from._internal_theta(), 
      _this->GetArenaForAllocation());
  }
  _impl_.vega_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.vega_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_vega().empty()) {
    _this->_impl_.vega_.Set(from._internal_vega(), 
      _this->GetArenaForAllocation());
  }
  _impl_.rho_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.rho_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_rho().empty()) {
    _this->_impl_.rho_.Set(from._internal_rho(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.volume_, &from._impl_.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.open_interest_) -
    reinterpret_cast<char*>(&_impl_.volume_)) + sizeof(_impl_.open_interest_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityCalcIndex)
}

inline void SecurityCalcIndex::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.symbol_){}
    , decltype(_impl_.last_done_){}
    , decltype(_impl_.change_val_){}
    , decltype(_impl_.change_rate_){}
    , decltype(_impl_.turnover_){}
    , decltype(_impl_.ytd_change_rate_){}
    , decltype(_impl_.turnover_rate_){}
    , decltype(_impl_.total_market_value_){}
    , decltype(_impl_.capital_flow_){}
    , decltype(_impl_.amplitude_){}
    , decltype(_impl_.volume_ratio_){}
    , decltype(_impl_.pe_ttm_ratio_){}
    , decltype(_impl_.pb_ratio_){}
    , decltype(_impl_.dividend_ratio_ttm_){}
    , decltype(_impl_.five_day_change_rate_){}
    , decltype(_impl_.ten_day_change_rate_){}
    , decltype(_impl_.half_year_change_rate_){}
    , decltype(_impl_.five_minutes_change_rate_){}
    , decltype(_impl_.expiry_date_){}
    , decltype(_impl_.strike_price_){}
    , decltype(_impl_.upper_strike_price_){}
    , decltype(_impl_.lower_strike_price_){}
    , decltype(_impl_.outstanding_ratio_){}
    , decltype(_impl_.premium_){}
    , decltype(_impl_.itm_otm_){}
    , decltype(_impl_.implied_volatility_){}
    , decltype(_impl_.warrant_delta_){}
    , decltype(_impl_.call_price_){}
    , decltype(_impl_.to_call_price_){}
    , decltype(_impl_.effective_leverage_){}
    , decltype(_impl_.leverage_ratio_){}
    , decltype(_impl_.conversion_ratio_){}
    , decltype(_impl_.balance_point_){}
    , decltype(_impl_.delta_){}
    , decltype(_impl_.gamma_){}
    , decltype(_impl_.theta_){}
    , decltype(_impl_.vega_){}
    , decltype(_impl_.rho_){}
    , decltype(_impl_.volume_){int64_t{0}}
    , decltype(_impl_.outstanding_qty_){int64_t{0}}
    , decltype(_impl_.open_interest_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.change_val_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.change_val_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.ytd_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.ytd_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.turnover_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.turnover_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.total_market_value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.total_market_value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.capital_flow_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.capital_flow_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.amplitude_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.amplitude_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.volume_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.volume_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.pe_ttm_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.pe_ttm_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.pb_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.pb_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.dividend_ratio_ttm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.dividend_ratio_ttm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.five_day_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.five_day_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.ten_day_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.ten_day_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.half_year_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.half_year_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.five_minutes_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.five_minutes_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.upper_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.upper_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.lower_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.lower_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.outstanding_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.outstanding_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.premium_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.premium_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.itm_otm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.itm_otm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.warrant_delta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.warrant_delta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.to_call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.to_call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.effective_leverage_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.effective_leverage_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.leverage_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.leverage_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.conversion_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.conversion_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.balance_point_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.balance_point_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.delta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.delta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.gamma_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.gamma_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.theta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.theta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.vega_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.vega_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.rho_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.rho_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityCalcIndex::~SecurityCalcIndex() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityCalcIndex)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityCalcIndex::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.symbol_.Destroy();
  _impl_.last_done_.Destroy();
  _impl_.change_val_.Destroy();
  _impl_.change_rate_.Destroy();
  _impl_.turnover_.Destroy();
  _impl_.ytd_change_rate_.Destroy();
  _impl_.turnover_rate_.Destroy();
  _impl_.total_market_value_.Destroy();
  _impl_.capital_flow_.Destroy();
  _impl_.amplitude_.Destroy();
  _impl_.volume_ratio_.Destroy();
  _impl_.pe_ttm_ratio_.Destroy();
  _impl_.pb_ratio_.Destroy();
  _impl_.dividend_ratio_ttm_.Destroy();
  _impl_.five_day_change_rate_.Destroy();
  _impl_.ten_day_change_rate_.Destroy();
  _impl_.half_year_change_rate_.Destroy();
  _impl_.five_minutes_change_rate_.Destroy();
  _impl_.expiry_date_.Destroy();
  _impl_.strike_price_.Destroy();
  _impl_.upper_strike_price_.Destroy();
  _impl_.lower_strike_price_.Destroy();
  _impl_.outstanding_ratio_.Destroy();
  _impl_.premium_.Destroy();
  _impl_.itm_otm_.Destroy();
  _impl_.implied_volatility_.Destroy();
  _impl_.warrant_delta_.Destroy();
  _impl_.call_price_.Destroy();
  _impl_.to_call_price_.Destroy();
  _impl_.effective_leverage_.Destroy();
  _impl_.leverage_ratio_.Destroy();
  _impl_.conversion_ratio_.Destroy();
  _impl_.balance_point_.Destroy();
  _impl_.delta_.Destroy();
  _impl_.gamma_.Destroy();
  _impl_.theta_.Destroy();
  _impl_.vega_.Destroy();
  _impl_.rho_.Destroy();
}

void SecurityCalcIndex::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityCalcIndex::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityCalcIndex)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.symbol_.ClearToEmpty();
  _impl_.last_done_.ClearToEmpty();
  _impl_.change_val_.ClearToEmpty();
  _impl_.change_rate_.ClearToEmpty();
  _impl_.turnover_.ClearToEmpty();
  _impl_.ytd_change_rate_.ClearToEmpty();
  _impl_.turnover_rate_.ClearToEmpty();
  _impl_.total_market_value_.ClearToEmpty();
  _impl_.capital_flow_.ClearToEmpty();
  _impl_.amplitude_.ClearToEmpty();
  _impl_.volume_ratio_.ClearToEmpty();
  _impl_.pe_ttm_ratio_.ClearToEmpty();
  _impl_.pb_ratio_.ClearToEmpty();
  _impl_.dividend_ratio_ttm_.ClearToEmpty();
  _impl_.five_day_change_rate_.ClearToEmpty();
  _impl_.ten_day_change_rate_.ClearToEmpty();
  _impl_.half_year_change_rate_.ClearToEmpty();
  _impl_.five_minutes_change_rate_.ClearToEmpty();
  _impl_.expiry_date_.ClearToEmpty();
  _impl_.strike_price_.ClearToEmpty();
  _impl_.upper_strike_price_.ClearToEmpty();
  _impl_.lower_strike_price_.ClearToEmpty();
  _impl_.outstanding_ratio_.ClearToEmpty();
  _impl_.premium_.ClearToEmpty();
  _impl_.itm_otm_.ClearToEmpty();
  _impl_.implied_volatility_.ClearToEmpty();
  _impl_.warrant_delta_.ClearToEmpty();
  _impl_.call_price_.ClearToEmpty();
  _impl_.to_call_price_.ClearToEmpty();
  _impl_.effective_leverage_.ClearToEmpty();
  _impl_.leverage_ratio_.ClearToEmpty();
  _impl_.conversion_ratio_.ClearToEmpty();
  _impl_.balance_point_.ClearToEmpty();
  _impl_.delta_.ClearToEmpty();
  _impl_.gamma_.ClearToEmpty();
  _impl_.theta_.ClearToEmpty();
  _impl_.vega_.ClearToEmpty();
  _impl_.rho_.ClearToEmpty();
  ::memset(&_impl_.volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.open_interest_) -
      reinterpret_cast<char*>(&_impl_.volume_)) + sizeof(_impl_.open_interest_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCalcIndex::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string last_done = 2 [json_name = "lastDone"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string change_val = 3 [json_name = "changeVal"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_change_val();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.change_val"));
        } else
          goto handle_unusual;
        continue;
      // string change_rate = 4 [json_name = "changeRate"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.change_rate"));
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 5 [json_name = "volume"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          _impl_.volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 6 [json_name = "turnover"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.turnover"));
        } else
          goto handle_unusual;
        continue;
      // string ytd_change_rate = 7 [json_name = "ytdChangeRate"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_ytd_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.ytd_change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string turnover_rate = 8 [json_name = "turnoverRate"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_turnover_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.turnover_rate"));
        } else
          goto handle_unusual;
        continue;
      // string total_market_value = 9 [json_name = "totalMarketValue"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_total_market_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.total_market_value"));
        } else
          goto handle_unusual;
        continue;
      // string capital_flow = 10 [json_name = "capitalFlow"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_capital_flow();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.capital_flow"));
        } else
          goto handle_unusual;
        continue;
      // string amplitude = 11 [json_name = "amplitude"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          auto str = _internal_mutable_amplitude();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.amplitude"));
        } else
          goto handle_unusual;
        continue;
      // string volume_ratio = 12 [json_name = "volumeRatio"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          auto str = _internal_mutable_volume_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.volume_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string pe_ttm_ratio = 13 [json_name = "peTtmRatio"];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          auto str = _internal_mutable_pe_ttm_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.pe_ttm_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string pb_ratio = 14 [json_name = "pbRatio"];
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
          auto str = _internal_mutable_pb_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.pb_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string dividend_ratio_ttm = 15 [json_name = "dividendRatioTtm"];
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          auto str = _internal_mutable_dividend_ratio_ttm();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.dividend_ratio_ttm"));
        } else
          goto handle_unusual;
        continue;
      // string five_day_change_rate = 16 [json_name = "fiveDayChangeRate"];
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          auto str = _internal_mutable_five_day_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.five_day_change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string ten_day_change_rate = 17 [json_name = "tenDayChangeRate"];
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          auto str = _internal_mutable_ten_day_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.ten_day_change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string half_year_change_rate = 18 [json_name = "halfYearChangeRate"];
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 146)) {
          auto str = _internal_mutable_half_year_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.half_year_change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string five_minutes_change_rate = 19 [json_name = "fiveMinutesChangeRate"];
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 154)) {
          auto str = _internal_mutable_five_minutes_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.five_minutes_change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 20 [json_name = "expiryDate"];
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 162)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.expiry_date"));
        } else
          goto handle_unusual;
        continue;
      // string strike_price = 21 [json_name = "strikePrice"];
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
          auto str = _internal_mutable_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string upper_strike_price = 22 [json_name = "upperStrikePrice"];
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 178)) {
          auto str = _internal_mutable_upper_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.upper_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string lower_strike_price = 23 [json_name = "lowerStrikePrice"];
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
          auto str = _internal_mutable_lower_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.lower_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // int64 outstanding_qty = 24 [json_name = "outstandingQty"];
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 192)) {
          _impl_.outstanding_qty_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string outstanding_ratio = 25 [json_name = "outstandingRatio"];
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 202)) {
          auto str = _internal_mutable_outstanding_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.outstanding_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string premium = 26 [json_name = "premium"];
      case 26:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 210)) {
          auto str = _internal_mutable_premium();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.premium"));
        } else
          goto handle_unusual;
        continue;
      // string itm_otm = 27 [json_name = "itmOtm"];
      case 27:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 218)) {
          auto str = _internal_mutable_itm_otm();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.itm_otm"));
        } else
          goto handle_unusual;
        continue;
      // string implied_volatility = 28 [json_name = "impliedVolatility"];
      case 28:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 226)) {
          auto str = _internal_mutable_implied_volatility();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.implied_volatility"));
        } else
          goto handle_unusual;
        continue;
      // string warrant_delta = 29 [json_name = "warrantDelta"];
      case 29:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 234)) {
          auto str = _internal_mutable_warrant_delta();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.warrant_delta"));
        } else
          goto handle_unusual;
        continue;
      // string call_price = 30 [json_name = "callPrice"];
      case 30:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 242)) {
          auto str = _internal_mutable_call_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.call_price"));
        } else
          goto handle_unusual;
        continue;
      // string to_call_price = 31 [json_name = "toCallPrice"];
      case 31:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 250)) {
          auto str = _internal_mutable_to_call_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.to_call_price"));
        } else
          goto handle_unusual;
        continue;
      // string effective_leverage = 32 [json_name = "effectiveLeverage"];
      case 32:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 2)) {
          auto str = _internal_mutable_effective_leverage();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.effective_leverage"));
        } else
          goto handle_unusual;
        continue;
      // string leverage_ratio = 33 [json_name = "leverageRatio"];
      case 33:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_leverage_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.leverage_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string conversion_ratio = 34 [json_name = "conversionRatio"];
      case 34:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_conversion_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.conversion_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string balance_point = 35 [json_name = "balancePoint"];
      case 35:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_balance_point();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.balance_point"));
        } else
          goto handle_unusual;
        continue;
      // int64 open_interest = 36 [json_name = "openInterest"];
      case 36:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _impl_.open_interest_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string delta = 37 [json_name = "delta"];
      case 37:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_delta();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.delta"));
        } else
          goto handle_unusual;
        continue;
      // string gamma = 38 [json_name = "gamma"];
      case 38:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_gamma();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.gamma"));
        } else
          goto handle_unusual;
        continue;
      // string theta = 39 [json_name = "theta"];
      case 39:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_theta();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.theta"));
        } else
          goto handle_unusual;
        continue;
      // string vega = 40 [json_name = "vega"];
      case 40:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_vega();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.vega"));
        } else
          goto handle_unusual;
        continue;
      // string rho = 41 [json_name = "rho"];
      case 41:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_rho();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCalcIndex.rho"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCalcIndex::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityCalcIndex)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.last_done");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_last_done(), target);
  }

  // string change_val = 3 [json_name = "changeVal"];
  if (!this->_internal_change_val().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_change_val().data(), static_cast<int>(this->_internal_change_val().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.change_val");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_change_val(), target);
  }

  // string change_rate = 4 [json_name = "changeRate"];
  if (!this->_internal_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_change_rate().data(), static_cast<int>(this->_internal_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.change_rate");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_change_rate(), target);
  }

  // int64 volume = 5 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(5, this->_internal_volume(), target);
  }

  // string turnover = 6 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.turnover");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_turnover(), target);
  }

  // string ytd_change_rate = 7 [json_name = "ytdChangeRate"];
  if (!this->_internal_ytd_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_ytd_change_rate().data(), static_cast<int>(this->_internal_ytd_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.ytd_change_rate");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_ytd_change_rate(), target);
  }

  // string turnover_rate = 8 [json_name = "turnoverRate"];
  if (!this->_internal_turnover_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover_rate().data(), static_cast<int>(this->_internal_turnover_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.turnover_rate");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_turnover_rate(), target);
  }

  // string total_market_value = 9 [json_name = "totalMarketValue"];
  if (!this->_internal_total_market_value().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_total_market_value().data(), static_cast<int>(this->_internal_total_market_value().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.total_market_value");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_total_market_value(), target);
  }

  // string capital_flow = 10 [json_name = "capitalFlow"];
  if (!this->_internal_capital_flow().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_capital_flow().data(), static_cast<int>(this->_internal_capital_flow().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.capital_flow");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_capital_flow(), target);
  }

  // string amplitude = 11 [json_name = "amplitude"];
  if (!this->_internal_amplitude().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_amplitude().data(), static_cast<int>(this->_internal_amplitude().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.amplitude");
    target = stream->WriteStringMaybeAliased(
        11, this->_internal_amplitude(), target);
  }

  // string volume_ratio = 12 [json_name = "volumeRatio"];
  if (!this->_internal_volume_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_volume_ratio().data(), static_cast<int>(this->_internal_volume_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.volume_ratio");
    target = stream->WriteStringMaybeAliased(
        12, this->_internal_volume_ratio(), target);
  }

  // string pe_ttm_ratio = 13 [json_name = "peTtmRatio"];
  if (!this->_internal_pe_ttm_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_pe_ttm_ratio().data(), static_cast<int>(this->_internal_pe_ttm_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.pe_ttm_ratio");
    target = stream->WriteStringMaybeAliased(
        13, this->_internal_pe_ttm_ratio(), target);
  }

  // string pb_ratio = 14 [json_name = "pbRatio"];
  if (!this->_internal_pb_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_pb_ratio().data(), static_cast<int>(this->_internal_pb_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.pb_ratio");
    target = stream->WriteStringMaybeAliased(
        14, this->_internal_pb_ratio(), target);
  }

  // string dividend_ratio_ttm = 15 [json_name = "dividendRatioTtm"];
  if (!this->_internal_dividend_ratio_ttm().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_dividend_ratio_ttm().data(), static_cast<int>(this->_internal_dividend_ratio_ttm().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.dividend_ratio_ttm");
    target = stream->WriteStringMaybeAliased(
        15, this->_internal_dividend_ratio_ttm(), target);
  }

  // string five_day_change_rate = 16 [json_name = "fiveDayChangeRate"];
  if (!this->_internal_five_day_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_five_day_change_rate().data(), static_cast<int>(this->_internal_five_day_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.five_day_change_rate");
    target = stream->WriteStringMaybeAliased(
        16, this->_internal_five_day_change_rate(), target);
  }

  // string ten_day_change_rate = 17 [json_name = "tenDayChangeRate"];
  if (!this->_internal_ten_day_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_ten_day_change_rate().data(), static_cast<int>(this->_internal_ten_day_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.ten_day_change_rate");
    target = stream->WriteStringMaybeAliased(
        17, this->_internal_ten_day_change_rate(), target);
  }

  // string half_year_change_rate = 18 [json_name = "halfYearChangeRate"];
  if (!this->_internal_half_year_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_half_year_change_rate().data(), static_cast<int>(this->_internal_half_year_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.half_year_change_rate");
    target = stream->WriteStringMaybeAliased(
        18, this->_internal_half_year_change_rate(), target);
  }

  // string five_minutes_change_rate = 19 [json_name = "fiveMinutesChangeRate"];
  if (!this->_internal_five_minutes_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_five_minutes_change_rate().data(), static_cast<int>(this->_internal_five_minutes_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.five_minutes_change_rate");
    target = stream->WriteStringMaybeAliased(
        19, this->_internal_five_minutes_change_rate(), target);
  }

  // string expiry_date = 20 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.expiry_date");
    target = stream->WriteStringMaybeAliased(
        20, this->_internal_expiry_date(), target);
  }

  // string strike_price = 21 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_strike_price().data(), static_cast<int>(this->_internal_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.strike_price");
    target = stream->WriteStringMaybeAliased(
        21, this->_internal_strike_price(), target);
  }

  // string upper_strike_price = 22 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_upper_strike_price().data(), static_cast<int>(this->_internal_upper_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.upper_strike_price");
    target = stream->WriteStringMaybeAliased(
        22, this->_internal_upper_strike_price(), target);
  }

  // string lower_strike_price = 23 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_lower_strike_price().data(), static_cast<int>(this->_internal_lower_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.lower_strike_price");
    target = stream->WriteStringMaybeAliased(
        23, this->_internal_lower_strike_price(), target);
  }

  // int64 outstanding_qty = 24 [json_name = "outstandingQty"];
  if (this->_internal_outstanding_qty() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(24, this->_internal_outstanding_qty(), target);
  }

  // string outstanding_ratio = 25 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_outstanding_ratio().data(), static_cast<int>(this->_internal_outstanding_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.outstanding_ratio");
    target = stream->WriteStringMaybeAliased(
        25, this->_internal_outstanding_ratio(), target);
  }

  // string premium = 26 [json_name = "premium"];
  if (!this->_internal_premium().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_premium().data(), static_cast<int>(this->_internal_premium().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.premium");
    target = stream->WriteStringMaybeAliased(
        26, this->_internal_premium(), target);
  }

  // string itm_otm = 27 [json_name = "itmOtm"];
  if (!this->_internal_itm_otm().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_itm_otm().data(), static_cast<int>(this->_internal_itm_otm().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.itm_otm");
    target = stream->WriteStringMaybeAliased(
        27, this->_internal_itm_otm(), target);
  }

  // string implied_volatility = 28 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_implied_volatility().data(), static_cast<int>(this->_internal_implied_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.implied_volatility");
    target = stream->WriteStringMaybeAliased(
        28, this->_internal_implied_volatility(), target);
  }

  // string warrant_delta = 29 [json_name = "warrantDelta"];
  if (!this->_internal_warrant_delta().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_warrant_delta().data(), static_cast<int>(this->_internal_warrant_delta().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.warrant_delta");
    target = stream->WriteStringMaybeAliased(
        29, this->_internal_warrant_delta(), target);
  }

  // string call_price = 30 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_call_price().data(), static_cast<int>(this->_internal_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.call_price");
    target = stream->WriteStringMaybeAliased(
        30, this->_internal_call_price(), target);
  }

  // string to_call_price = 31 [json_name = "toCallPrice"];
  if (!this->_internal_to_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_to_call_price().data(), static_cast<int>(this->_internal_to_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.to_call_price");
    target = stream->WriteStringMaybeAliased(
        31, this->_internal_to_call_price(), target);
  }

  // string effective_leverage = 32 [json_name = "effectiveLeverage"];
  if (!this->_internal_effective_leverage().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_effective_leverage().data(), static_cast<int>(this->_internal_effective_leverage().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.effective_leverage");
    target = stream->WriteStringMaybeAliased(
        32, this->_internal_effective_leverage(), target);
  }

  // string leverage_ratio = 33 [json_name = "leverageRatio"];
  if (!this->_internal_leverage_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_leverage_ratio().data(), static_cast<int>(this->_internal_leverage_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.leverage_ratio");
    target = stream->WriteStringMaybeAliased(
        33, this->_internal_leverage_ratio(), target);
  }

  // string conversion_ratio = 34 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_conversion_ratio().data(), static_cast<int>(this->_internal_conversion_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.conversion_ratio");
    target = stream->WriteStringMaybeAliased(
        34, this->_internal_conversion_ratio(), target);
  }

  // string balance_point = 35 [json_name = "balancePoint"];
  if (!this->_internal_balance_point().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_balance_point().data(), static_cast<int>(this->_internal_balance_point().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.balance_point");
    target = stream->WriteStringMaybeAliased(
        35, this->_internal_balance_point(), target);
  }

  // int64 open_interest = 36 [json_name = "openInterest"];
  if (this->_internal_open_interest() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(36, this->_internal_open_interest(), target);
  }

  // string delta = 37 [json_name = "delta"];
  if (!this->_internal_delta().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_delta().data(), static_cast<int>(this->_internal_delta().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.delta");
    target = stream->WriteStringMaybeAliased(
        37, this->_internal_delta(), target);
  }

  // string gamma = 38 [json_name = "gamma"];
  if (!this->_internal_gamma().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_gamma().data(), static_cast<int>(this->_internal_gamma().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.gamma");
    target = stream->WriteStringMaybeAliased(
        38, this->_internal_gamma(), target);
  }

  // string theta = 39 [json_name = "theta"];
  if (!this->_internal_theta().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_theta().data(), static_cast<int>(this->_internal_theta().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.theta");
    target = stream->WriteStringMaybeAliased(
        39, this->_internal_theta(), target);
  }

  // string vega = 40 [json_name = "vega"];
  if (!this->_internal_vega().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_vega().data(), static_cast<int>(this->_internal_vega().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.vega");
    target = stream->WriteStringMaybeAliased(
        40, this->_internal_vega(), target);
  }

  // string rho = 41 [json_name = "rho"];
  if (!this->_internal_rho().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_rho().data(), static_cast<int>(this->_internal_rho().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCalcIndex.rho");
    target = stream->WriteStringMaybeAliased(
        41, this->_internal_rho(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityCalcIndex)
  return target;
}

size_t SecurityCalcIndex::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityCalcIndex)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string change_val = 3 [json_name = "changeVal"];
  if (!this->_internal_change_val().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_change_val());
  }

  // string change_rate = 4 [json_name = "changeRate"];
  if (!this->_internal_change_rate().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_change_rate());
  }

  // string turnover = 6 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string ytd_change_rate = 7 [json_name = "ytdChangeRate"];
  if (!this->_internal_ytd_change_rate().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_ytd_change_rate());
  }

  // string turnover_rate = 8 [json_name = "turnoverRate"];
  if (!this->_internal_turnover_rate().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover_rate());
  }

  // string total_market_value = 9 [json_name = "totalMarketValue"];
  if (!this->_internal_total_market_value().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_total_market_value());
  }

  // string capital_flow = 10 [json_name = "capitalFlow"];
  if (!this->_internal_capital_flow().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_capital_flow());
  }

  // string amplitude = 11 [json_name = "amplitude"];
  if (!this->_internal_amplitude().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_amplitude());
  }

  // string volume_ratio = 12 [json_name = "volumeRatio"];
  if (!this->_internal_volume_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_volume_ratio());
  }

  // string pe_ttm_ratio = 13 [json_name = "peTtmRatio"];
  if (!this->_internal_pe_ttm_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_pe_ttm_ratio());
  }

  // string pb_ratio = 14 [json_name = "pbRatio"];
  if (!this->_internal_pb_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_pb_ratio());
  }

  // string dividend_ratio_ttm = 15 [json_name = "dividendRatioTtm"];
  if (!this->_internal_dividend_ratio_ttm().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_dividend_ratio_ttm());
  }

  // string five_day_change_rate = 16 [json_name = "fiveDayChangeRate"];
  if (!this->_internal_five_day_change_rate().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_five_day_change_rate());
  }

  // string ten_day_change_rate = 17 [json_name = "tenDayChangeRate"];
  if (!this->_internal_ten_day_change_rate().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_ten_day_change_rate());
  }

  // string half_year_change_rate = 18 [json_name = "halfYearChangeRate"];
  if (!this->_internal_half_year_change_rate().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_half_year_change_rate());
  }

  // string five_minutes_change_rate = 19 [json_name = "fiveMinutesChangeRate"];
  if (!this->_internal_five_minutes_change_rate().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_five_minutes_change_rate());
  }

  // string expiry_date = 20 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  // string strike_price = 21 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_strike_price());
  }

  // string upper_strike_price = 22 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_upper_strike_price());
  }

  // string lower_strike_price = 23 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_lower_strike_price());
  }

  // string outstanding_ratio = 25 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_outstanding_ratio());
  }

  // string premium = 26 [json_name = "premium"];
  if (!this->_internal_premium().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_premium());
  }

  // string itm_otm = 27 [json_name = "itmOtm"];
  if (!this->_internal_itm_otm().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_itm_otm());
  }

  // string implied_volatility = 28 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_implied_volatility());
  }

  // string warrant_delta = 29 [json_name = "warrantDelta"];
  if (!this->_internal_warrant_delta().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_warrant_delta());
  }

  // string call_price = 30 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_call_price());
  }

  // string to_call_price = 31 [json_name = "toCallPrice"];
  if (!this->_internal_to_call_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_to_call_price());
  }

  // string effective_leverage = 32 [json_name = "effectiveLeverage"];
  if (!this->_internal_effective_leverage().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_effective_leverage());
  }

  // string leverage_ratio = 33 [json_name = "leverageRatio"];
  if (!this->_internal_leverage_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_leverage_ratio());
  }

  // string conversion_ratio = 34 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_conversion_ratio());
  }

  // string balance_point = 35 [json_name = "balancePoint"];
  if (!this->_internal_balance_point().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_balance_point());
  }

  // string delta = 37 [json_name = "delta"];
  if (!this->_internal_delta().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_delta());
  }

  // string gamma = 38 [json_name = "gamma"];
  if (!this->_internal_gamma().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_gamma());
  }

  // string theta = 39 [json_name = "theta"];
  if (!this->_internal_theta().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_theta());
  }

  // string vega = 40 [json_name = "vega"];
  if (!this->_internal_vega().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_vega());
  }

  // string rho = 41 [json_name = "rho"];
  if (!this->_internal_rho().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_rho());
  }

  // int64 volume = 5 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int64 outstanding_qty = 24 [json_name = "outstandingQty"];
  if (this->_internal_outstanding_qty() != 0) {
    total_size += 2 +
      ::_pbi::WireFormatLite::Int64Size(
        this->_internal_outstanding_qty());
  }

  // int64 open_interest = 36 [json_name = "openInterest"];
  if (this->_internal_open_interest() != 0) {
    total_size += 2 +
      ::_pbi::WireFormatLite::Int64Size(
        this->_internal_open_interest());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCalcIndex::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityCalcIndex::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCalcIndex::GetClassData() const { return &_class_data_; }


void SecurityCalcIndex::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityCalcIndex*>(&to_msg);
  auto& from = static_cast<const SecurityCalcIndex&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityCalcIndex)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _this->_internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _this->_internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_change_val().empty()) {
    _this->_internal_set_change_val(from._internal_change_val());
  }
  if (!from._internal_change_rate().empty()) {
    _this->_internal_set_change_rate(from._internal_change_rate());
  }
  if (!from._internal_turnover().empty()) {
    _this->_internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_ytd_change_rate().empty()) {
    _this->_internal_set_ytd_change_rate(from._internal_ytd_change_rate());
  }
  if (!from._internal_turnover_rate().empty()) {
    _this->_internal_set_turnover_rate(from._internal_turnover_rate());
  }
  if (!from._internal_total_market_value().empty()) {
    _this->_internal_set_total_market_value(from._internal_total_market_value());
  }
  if (!from._internal_capital_flow().empty()) {
    _this->_internal_set_capital_flow(from._internal_capital_flow());
  }
  if (!from._internal_amplitude().empty()) {
    _this->_internal_set_amplitude(from._internal_amplitude());
  }
  if (!from._internal_volume_ratio().empty()) {
    _this->_internal_set_volume_ratio(from._internal_volume_ratio());
  }
  if (!from._internal_pe_ttm_ratio().empty()) {
    _this->_internal_set_pe_ttm_ratio(from._internal_pe_ttm_ratio());
  }
  if (!from._internal_pb_ratio().empty()) {
    _this->_internal_set_pb_ratio(from._internal_pb_ratio());
  }
  if (!from._internal_dividend_ratio_ttm().empty()) {
    _this->_internal_set_dividend_ratio_ttm(from._internal_dividend_ratio_ttm());
  }
  if (!from._internal_five_day_change_rate().empty()) {
    _this->_internal_set_five_day_change_rate(from._internal_five_day_change_rate());
  }
  if (!from._internal_ten_day_change_rate().empty()) {
    _this->_internal_set_ten_day_change_rate(from._internal_ten_day_change_rate());
  }
  if (!from._internal_half_year_change_rate().empty()) {
    _this->_internal_set_half_year_change_rate(from._internal_half_year_change_rate());
  }
  if (!from._internal_five_minutes_change_rate().empty()) {
    _this->_internal_set_five_minutes_change_rate(from._internal_five_minutes_change_rate());
  }
  if (!from._internal_expiry_date().empty()) {
    _this->_internal_set_expiry_date(from._internal_expiry_date());
  }
  if (!from._internal_strike_price().empty()) {
    _this->_internal_set_strike_price(from._internal_strike_price());
  }
  if (!from._internal_upper_strike_price().empty()) {
    _this->_internal_set_upper_strike_price(from._internal_upper_strike_price());
  }
  if (!from._internal_lower_strike_price().empty()) {
    _this->_internal_set_lower_strike_price(from._internal_lower_strike_price());
  }
  if (!from._internal_outstanding_ratio().empty()) {
    _this->_internal_set_outstanding_ratio(from._internal_outstanding_ratio());
  }
  if (!from._internal_premium().empty()) {
    _this->_internal_set_premium(from._internal_premium());
  }
  if (!from._internal_itm_otm().empty()) {
    _this->_internal_set_itm_otm(from._internal_itm_otm());
  }
  if (!from._internal_implied_volatility().empty()) {
    _this->_internal_set_implied_volatility(from._internal_implied_volatility());
  }
  if (!from._internal_warrant_delta().empty()) {
    _this->_internal_set_warrant_delta(from._internal_warrant_delta());
  }
  if (!from._internal_call_price().empty()) {
    _this->_internal_set_call_price(from._internal_call_price());
  }
  if (!from._internal_to_call_price().empty()) {
    _this->_internal_set_to_call_price(from._internal_to_call_price());
  }
  if (!from._internal_effective_leverage().empty()) {
    _this->_internal_set_effective_leverage(from._internal_effective_leverage());
  }
  if (!from._internal_leverage_ratio().empty()) {
    _this->_internal_set_leverage_ratio(from._internal_leverage_ratio());
  }
  if (!from._internal_conversion_ratio().empty()) {
    _this->_internal_set_conversion_ratio(from._internal_conversion_ratio());
  }
  if (!from._internal_balance_point().empty()) {
    _this->_internal_set_balance_point(from._internal_balance_point());
  }
  if (!from._internal_delta().empty()) {
    _this->_internal_set_delta(from._internal_delta());
  }
  if (!from._internal_gamma().empty()) {
    _this->_internal_set_gamma(from._internal_gamma());
  }
  if (!from._internal_theta().empty()) {
    _this->_internal_set_theta(from._internal_theta());
  }
  if (!from._internal_vega().empty()) {
    _this->_internal_set_vega(from._internal_vega());
  }
  if (!from._internal_rho().empty()) {
    _this->_internal_set_rho(from._internal_rho());
  }
  if (from._internal_volume() != 0) {
    _this->_internal_set_volume(from._internal_volume());
  }
  if (from._internal_outstanding_qty() != 0) {
    _this->_internal_set_outstanding_qty(from._internal_outstanding_qty());
  }
  if (from._internal_open_interest() != 0) {
    _this->_internal_set_open_interest(from._internal_open_interest());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCalcIndex::CopyFrom(const SecurityCalcIndex& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityCalcIndex)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCalcIndex::IsInitialized() const {
  return true;
}

void SecurityCalcIndex::InternalSwap(SecurityCalcIndex* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.symbol_, lhs_arena,
      &other->_impl_.symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.last_done_, lhs_arena,
      &other->_impl_.last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.change_val_, lhs_arena,
      &other->_impl_.change_val_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.change_rate_, lhs_arena,
      &other->_impl_.change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.turnover_, lhs_arena,
      &other->_impl_.turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.ytd_change_rate_, lhs_arena,
      &other->_impl_.ytd_change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.turnover_rate_, lhs_arena,
      &other->_impl_.turnover_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.total_market_value_, lhs_arena,
      &other->_impl_.total_market_value_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.capital_flow_, lhs_arena,
      &other->_impl_.capital_flow_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.amplitude_, lhs_arena,
      &other->_impl_.amplitude_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.volume_ratio_, lhs_arena,
      &other->_impl_.volume_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.pe_ttm_ratio_, lhs_arena,
      &other->_impl_.pe_ttm_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.pb_ratio_, lhs_arena,
      &other->_impl_.pb_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.dividend_ratio_ttm_, lhs_arena,
      &other->_impl_.dividend_ratio_ttm_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.five_day_change_rate_, lhs_arena,
      &other->_impl_.five_day_change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.ten_day_change_rate_, lhs_arena,
      &other->_impl_.ten_day_change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.half_year_change_rate_, lhs_arena,
      &other->_impl_.half_year_change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.five_minutes_change_rate_, lhs_arena,
      &other->_impl_.five_minutes_change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.expiry_date_, lhs_arena,
      &other->_impl_.expiry_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.strike_price_, lhs_arena,
      &other->_impl_.strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.upper_strike_price_, lhs_arena,
      &other->_impl_.upper_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.lower_strike_price_, lhs_arena,
      &other->_impl_.lower_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.outstanding_ratio_, lhs_arena,
      &other->_impl_.outstanding_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.premium_, lhs_arena,
      &other->_impl_.premium_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.itm_otm_, lhs_arena,
      &other->_impl_.itm_otm_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.implied_volatility_, lhs_arena,
      &other->_impl_.implied_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.warrant_delta_, lhs_arena,
      &other->_impl_.warrant_delta_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.call_price_, lhs_arena,
      &other->_impl_.call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.to_call_price_, lhs_arena,
      &other->_impl_.to_call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.effective_leverage_, lhs_arena,
      &other->_impl_.effective_leverage_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.leverage_ratio_, lhs_arena,
      &other->_impl_.leverage_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.conversion_ratio_, lhs_arena,
      &other->_impl_.conversion_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.balance_point_, lhs_arena,
      &other->_impl_.balance_point_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.delta_, lhs_arena,
      &other->_impl_.delta_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.gamma_, lhs_arena,
      &other->_impl_.gamma_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.theta_, lhs_arena,
      &other->_impl_.theta_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.vega_, lhs_arena,
      &other->_impl_.vega_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.rho_, lhs_arena,
      &other->_impl_.rho_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SecurityCalcIndex, _impl_.open_interest_)
      + sizeof(SecurityCalcIndex::_impl_.open_interest_)
      - PROTOBUF_FIELD_OFFSET(SecurityCalcIndex, _impl_.volume_)>(
          reinterpret_cast<char*>(&_impl_.volume_),
          reinterpret_cast<char*>(&other->_impl_.volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCalcIndex::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[59]);
}

// ===================================================================

class SecurityCalcQuoteResponse::_Internal {
 public:
};

SecurityCalcQuoteResponse::SecurityCalcQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityCalcQuoteResponse)
}
SecurityCalcQuoteResponse::SecurityCalcQuoteResponse(const SecurityCalcQuoteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SecurityCalcQuoteResponse* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.security_calc_index_){from._impl_.security_calc_index_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityCalcQuoteResponse)
}

inline void SecurityCalcQuoteResponse::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.security_calc_index_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

SecurityCalcQuoteResponse::~SecurityCalcQuoteResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityCalcQuoteResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityCalcQuoteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.security_calc_index_.~RepeatedPtrField();
}

void SecurityCalcQuoteResponse::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SecurityCalcQuoteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityCalcQuoteResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.security_calc_index_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCalcQuoteResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.SecurityCalcIndex security_calc_index = 1 [json_name = "securityCalcIndex"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_security_calc_index(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCalcQuoteResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityCalcQuoteResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SecurityCalcIndex security_calc_index = 1 [json_name = "securityCalcIndex"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_security_calc_index_size()); i < n; i++) {
    const auto& repfield = this->_internal_security_calc_index(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityCalcQuoteResponse)
  return target;
}

size_t SecurityCalcQuoteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityCalcQuoteResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SecurityCalcIndex security_calc_index = 1 [json_name = "securityCalcIndex"];
  total_size += 1UL * this->_internal_security_calc_index_size();
  for (const auto& msg : this->_impl_.security_calc_index_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCalcQuoteResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SecurityCalcQuoteResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCalcQuoteResponse::GetClassData() const { return &_class_data_; }


void SecurityCalcQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SecurityCalcQuoteResponse*>(&to_msg);
  auto& from = static_cast<const SecurityCalcQuoteResponse&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityCalcQuoteResponse)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.security_calc_index_.MergeFrom(from._impl_.security_calc_index_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCalcQuoteResponse::CopyFrom(const SecurityCalcQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityCalcQuoteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCalcQuoteResponse::IsInitialized() const {
  return true;
}

void SecurityCalcQuoteResponse::InternalSwap(SecurityCalcQuoteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.security_calc_index_.InternalSwap(&other->_impl_.security_calc_index_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCalcQuoteResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[60]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace quote
}  // namespace longbridgeapp
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::MultiSecurityRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::MultiSecurityRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::MultiSecurityRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityStaticInfoResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityStaticInfoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityStaticInfoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::StaticInfo*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::StaticInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::StaticInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityQuoteResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityQuoteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityQuoteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityQuote*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::PrePostQuote*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::PrePostQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::PrePostQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionQuoteResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionQuoteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionQuoteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionQuote*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionExtend*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionExtend >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionExtend >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::WarrantQuoteResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::WarrantQuoteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::WarrantQuoteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::WarrantQuote*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::WarrantQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::WarrantQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::WarrantExtend*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::WarrantExtend >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::WarrantExtend >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityDepthResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityDepthResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityDepthResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::Depth*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::Depth >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::Depth >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityBrokersResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityBrokersResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityBrokersResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::Brokers*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::Brokers >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::Brokers >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::ParticipantInfo*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::ParticipantInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::ParticipantInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityTradeRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityTradeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityTradeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityTradeResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityTradeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityTradeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::Trade*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::Trade >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::Trade >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityIntradayRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityIntradayRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityIntradayRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityIntradayResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityIntradayResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityIntradayResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::Line*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::Line >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::Line >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityCandlestickRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityCandlestickRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityCandlestickRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityCandlestickResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityCandlestickResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityCandlestickResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::Candlestick*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::Candlestick >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::Candlestick >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionChainDateListResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionChainDateListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionChainDateListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::StrikePriceInfo*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::StrikePriceInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::StrikePriceInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::IssuerInfoResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::IssuerInfoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::IssuerInfoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::IssuerInfo*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::IssuerInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::IssuerInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::WarrantFilterListRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::WarrantFilterListRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::WarrantFilterListRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::FilterConfig*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::FilterConfig >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::FilterConfig >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::WarrantFilterListResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::WarrantFilterListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::WarrantFilterListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::FilterWarrant*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::FilterWarrant >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::FilterWarrant >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::MarketTradePeriodResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::MarketTradePeriodResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::MarketTradePeriodResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::MarketTradePeriod*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::MarketTradePeriod >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::MarketTradePeriod >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::TradePeriod*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::TradePeriod >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::TradePeriod >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SubscriptionRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SubscriptionRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SubscriptionRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SubscriptionResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SubscriptionResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SubscriptionResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SubTypeList*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SubTypeList >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SubTypeList >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SubscribeRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SubscribeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SubscribeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::UnsubscribeRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::UnsubscribeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::UnsubscribeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::UnsubscribeResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::UnsubscribeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::UnsubscribeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::PushQuote*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::PushQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::PushQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::PushDepth*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::PushDepth >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::PushDepth >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::PushBrokers*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::PushBrokers >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::PushBrokers >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::PushTrade*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::PushTrade >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::PushTrade >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::MarketTradeDayRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::MarketTradeDayRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::MarketTradeDayRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::MarketTradeDayResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::MarketTradeDayResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::MarketTradeDayResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::CapitalFlowIntradayRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::CapitalFlowIntradayRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::CapitalFlowIntradayRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::CapitalFlowIntradayResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::CapitalFlowIntradayResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::CapitalFlowIntradayResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::CapitalDistributionResponse_CapitalDistribution >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::CapitalDistributionResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::CapitalDistributionResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::CapitalDistributionResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityCalcQuoteRequest*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityCalcQuoteRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityCalcQuoteRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityCalcIndex*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityCalcIndex >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityCalcIndex >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityCalcQuoteResponse*
Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityCalcQuoteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityCalcQuoteResponse >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
