You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by sh...@apache.org on 2022/09/12 07:15:41 UTC

[pulsar-client-go] branch master updated: Update proto file latest (#841)

This is an automated email from the ASF dual-hosted git repository.

shoothzj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar-client-go.git


The following commit(s) were added to refs/heads/master by this push:
     new 649d992  Update proto file latest (#841)
649d992 is described below

commit 649d992f26349835d7dc1e7632d60e399bd4eaa5
Author: Lan <gc...@gmail.com>
AuthorDate: Mon Sep 12 15:15:34 2022 +0800

    Update proto file latest (#841)
---
 pulsar/internal/pulsar_proto/PulsarApi.pb.go | 11285 +++++++++++++++----------
 pulsar/internal/pulsar_proto/PulsarApi.proto |   156 +-
 2 files changed, 6892 insertions(+), 4549 deletions(-)

diff --git a/pulsar/internal/pulsar_proto/PulsarApi.pb.go b/pulsar/internal/pulsar_proto/PulsarApi.pb.go
index ea37b13..a0e45c7 100644
--- a/pulsar/internal/pulsar_proto/PulsarApi.pb.go
+++ b/pulsar/internal/pulsar_proto/PulsarApi.pb.go
@@ -76,21 +76,24 @@ func (CompressionType) EnumDescriptor() ([]byte, []int) {
 type ProducerAccessMode int32
 
 const (
-	ProducerAccessMode_Shared           ProducerAccessMode = 0
-	ProducerAccessMode_Exclusive        ProducerAccessMode = 1
-	ProducerAccessMode_WaitForExclusive ProducerAccessMode = 2
+	ProducerAccessMode_Shared               ProducerAccessMode = 0
+	ProducerAccessMode_Exclusive            ProducerAccessMode = 1
+	ProducerAccessMode_WaitForExclusive     ProducerAccessMode = 2
+	ProducerAccessMode_ExclusiveWithFencing ProducerAccessMode = 3
 )
 
 var ProducerAccessMode_name = map[int32]string{
 	0: "Shared",
 	1: "Exclusive",
 	2: "WaitForExclusive",
+	3: "ExclusiveWithFencing",
 }
 
 var ProducerAccessMode_value = map[string]int32{
-	"Shared":           0,
-	"Exclusive":        1,
-	"WaitForExclusive": 2,
+	"Shared":               0,
+	"Exclusive":            1,
+	"WaitForExclusive":     2,
+	"ExclusiveWithFencing": 3,
 }
 
 func (x ProducerAccessMode) Enum() *ProducerAccessMode {
@@ -909,6 +912,10 @@ const (
 	BaseCommand_END_TXN_ON_SUBSCRIPTION_RESPONSE BaseCommand_Type = 61
 	BaseCommand_TC_CLIENT_CONNECT_REQUEST        BaseCommand_Type = 62
 	BaseCommand_TC_CLIENT_CONNECT_RESPONSE       BaseCommand_Type = 63
+	BaseCommand_WATCH_TOPIC_LIST                 BaseCommand_Type = 64
+	BaseCommand_WATCH_TOPIC_LIST_SUCCESS         BaseCommand_Type = 65
+	BaseCommand_WATCH_TOPIC_UPDATE               BaseCommand_Type = 66
+	BaseCommand_WATCH_TOPIC_LIST_CLOSE           BaseCommand_Type = 67
 )
 
 var BaseCommand_Type_name = map[int32]string{
@@ -965,6 +972,10 @@ var BaseCommand_Type_name = map[int32]string{
 	61: "END_TXN_ON_SUBSCRIPTION_RESPONSE",
 	62: "TC_CLIENT_CONNECT_REQUEST",
 	63: "TC_CLIENT_CONNECT_RESPONSE",
+	64: "WATCH_TOPIC_LIST",
+	65: "WATCH_TOPIC_LIST_SUCCESS",
+	66: "WATCH_TOPIC_UPDATE",
+	67: "WATCH_TOPIC_LIST_CLOSE",
 }
 
 var BaseCommand_Type_value = map[string]int32{
@@ -1021,6 +1032,10 @@ var BaseCommand_Type_value = map[string]int32{
 	"END_TXN_ON_SUBSCRIPTION_RESPONSE":  61,
 	"TC_CLIENT_CONNECT_REQUEST":         62,
 	"TC_CLIENT_CONNECT_RESPONSE":        63,
+	"WATCH_TOPIC_LIST":                  64,
+	"WATCH_TOPIC_LIST_SUCCESS":          65,
+	"WATCH_TOPIC_UPDATE":                66,
+	"WATCH_TOPIC_LIST_CLOSE":            67,
 }
 
 func (x BaseCommand_Type) Enum() *BaseCommand_Type {
@@ -1043,7 +1058,7 @@ func (x *BaseCommand_Type) UnmarshalJSON(data []byte) error {
 }
 
 func (BaseCommand_Type) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_39529ba7ad9caeb8, []int{66, 0}
+	return fileDescriptor_39529ba7ad9caeb8, []int{70, 0}
 }
 
 type Schema struct {
@@ -1118,15 +1133,17 @@ func (m *Schema) GetProperties() []*KeyValue {
 }
 
 type MessageIdData struct {
-	LedgerId             *uint64  `protobuf:"varint,1,req,name=ledgerId" json:"ledgerId,omitempty"`
-	EntryId              *uint64  `protobuf:"varint,2,req,name=entryId" json:"entryId,omitempty"`
-	Partition            *int32   `protobuf:"varint,3,opt,name=partition,def=-1" json:"partition,omitempty"`
-	BatchIndex           *int32   `protobuf:"varint,4,opt,name=batch_index,json=batchIndex,def=-1" json:"batch_index,omitempty"`
-	AckSet               []int64  `protobuf:"varint,5,rep,name=ack_set,json=ackSet" json:"ack_set,omitempty"`
-	BatchSize            *int32   `protobuf:"varint,6,opt,name=batch_size,json=batchSize" json:"batch_size,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	LedgerId   *uint64 `protobuf:"varint,1,req,name=ledgerId" json:"ledgerId,omitempty"`
+	EntryId    *uint64 `protobuf:"varint,2,req,name=entryId" json:"entryId,omitempty"`
+	Partition  *int32  `protobuf:"varint,3,opt,name=partition,def=-1" json:"partition,omitempty"`
+	BatchIndex *int32  `protobuf:"varint,4,opt,name=batch_index,json=batchIndex,def=-1" json:"batch_index,omitempty"`
+	AckSet     []int64 `protobuf:"varint,5,rep,name=ack_set,json=ackSet" json:"ack_set,omitempty"`
+	BatchSize  *int32  `protobuf:"varint,6,opt,name=batch_size,json=batchSize" json:"batch_size,omitempty"`
+	// For the chunk message id, we need to specify the first chunk message id.
+	FirstChunkMessageId  *MessageIdData `protobuf:"bytes,7,opt,name=first_chunk_message_id,json=firstChunkMessageId" json:"first_chunk_message_id,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
+	XXX_unrecognized     []byte         `json:"-"`
+	XXX_sizecache        int32          `json:"-"`
 }
 
 func (m *MessageIdData) Reset()         { *m = MessageIdData{} }
@@ -1207,6 +1224,13 @@ func (m *MessageIdData) GetBatchSize() int32 {
 	return 0
 }
 
+func (m *MessageIdData) GetFirstChunkMessageId() *MessageIdData {
+	if m != nil {
+		return m.FirstChunkMessageId
+	}
+	return nil
+}
+
 type KeyValue struct {
 	Key                  *string  `protobuf:"bytes,1,req,name=key" json:"key,omitempty"`
 	Value                *string  `protobuf:"bytes,2,req,name=value" json:"value,omitempty"`
@@ -2049,6 +2073,8 @@ func (m *CommandConnect) GetFeatureFlags() *FeatureFlags {
 type FeatureFlags struct {
 	SupportsAuthRefresh         *bool    `protobuf:"varint,1,opt,name=supports_auth_refresh,json=supportsAuthRefresh,def=0" json:"supports_auth_refresh,omitempty"`
 	SupportsBrokerEntryMetadata *bool    `protobuf:"varint,2,opt,name=supports_broker_entry_metadata,json=supportsBrokerEntryMetadata,def=0" json:"supports_broker_entry_metadata,omitempty"`
+	SupportsPartialProducer     *bool    `protobuf:"varint,3,opt,name=supports_partial_producer,json=supportsPartialProducer,def=0" json:"supports_partial_producer,omitempty"`
+	SupportsTopicWatchers       *bool    `protobuf:"varint,4,opt,name=supports_topic_watchers,json=supportsTopicWatchers,def=0" json:"supports_topic_watchers,omitempty"`
 	XXX_NoUnkeyedLiteral        struct{} `json:"-"`
 	XXX_unrecognized            []byte   `json:"-"`
 	XXX_sizecache               int32    `json:"-"`
@@ -2089,6 +2115,8 @@ var xxx_messageInfo_FeatureFlags proto.InternalMessageInfo
 
 const Default_FeatureFlags_SupportsAuthRefresh bool = false
 const Default_FeatureFlags_SupportsBrokerEntryMetadata bool = false
+const Default_FeatureFlags_SupportsPartialProducer bool = false
+const Default_FeatureFlags_SupportsTopicWatchers bool = false
 
 func (m *FeatureFlags) GetSupportsAuthRefresh() bool {
 	if m != nil && m.SupportsAuthRefresh != nil {
@@ -2104,13 +2132,28 @@ func (m *FeatureFlags) GetSupportsBrokerEntryMetadata() bool {
 	return Default_FeatureFlags_SupportsBrokerEntryMetadata
 }
 
+func (m *FeatureFlags) GetSupportsPartialProducer() bool {
+	if m != nil && m.SupportsPartialProducer != nil {
+		return *m.SupportsPartialProducer
+	}
+	return Default_FeatureFlags_SupportsPartialProducer
+}
+
+func (m *FeatureFlags) GetSupportsTopicWatchers() bool {
+	if m != nil && m.SupportsTopicWatchers != nil {
+		return *m.SupportsTopicWatchers
+	}
+	return Default_FeatureFlags_SupportsTopicWatchers
+}
+
 type CommandConnected struct {
-	ServerVersion        *string  `protobuf:"bytes,1,req,name=server_version,json=serverVersion" json:"server_version,omitempty"`
-	ProtocolVersion      *int32   `protobuf:"varint,2,opt,name=protocol_version,json=protocolVersion,def=0" json:"protocol_version,omitempty"`
-	MaxMessageSize       *int32   `protobuf:"varint,3,opt,name=max_message_size,json=maxMessageSize" json:"max_message_size,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	ServerVersion        *string       `protobuf:"bytes,1,req,name=server_version,json=serverVersion" json:"server_version,omitempty"`
+	ProtocolVersion      *int32        `protobuf:"varint,2,opt,name=protocol_version,json=protocolVersion,def=0" json:"protocol_version,omitempty"`
+	MaxMessageSize       *int32        `protobuf:"varint,3,opt,name=max_message_size,json=maxMessageSize" json:"max_message_size,omitempty"`
+	FeatureFlags         *FeatureFlags `protobuf:"bytes,4,opt,name=feature_flags,json=featureFlags" json:"feature_flags,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
+	XXX_unrecognized     []byte        `json:"-"`
+	XXX_sizecache        int32         `json:"-"`
 }
 
 func (m *CommandConnected) Reset()         { *m = CommandConnected{} }
@@ -2169,6 +2212,13 @@ func (m *CommandConnected) GetMaxMessageSize() int32 {
 	return 0
 }
 
+func (m *CommandConnected) GetFeatureFlags() *FeatureFlags {
+	if m != nil {
+		return m.FeatureFlags
+	}
+	return nil
+}
+
 type CommandAuthResponse struct {
 	ClientVersion        *string   `protobuf:"bytes,1,opt,name=client_version,json=clientVersion" json:"client_version,omitempty"`
 	Response             *AuthData `protobuf:"bytes,2,opt,name=response" json:"response,omitempty"`
@@ -2457,9 +2507,11 @@ type CommandSubscribe struct {
 	StartMessageRollbackDurationSec *uint64        `protobuf:"varint,16,opt,name=start_message_rollback_duration_sec,json=startMessageRollbackDurationSec,def=0" json:"start_message_rollback_duration_sec,omitempty"`
 	KeySharedMeta                   *KeySharedMeta `protobuf:"bytes,17,opt,name=keySharedMeta" json:"keySharedMeta,omitempty"`
 	SubscriptionProperties          []*KeyValue    `protobuf:"bytes,18,rep,name=subscription_properties,json=subscriptionProperties" json:"subscription_properties,omitempty"`
-	XXX_NoUnkeyedLiteral            struct{}       `json:"-"`
-	XXX_unrecognized                []byte         `json:"-"`
-	XXX_sizecache                   int32          `json:"-"`
+	// The consumer epoch, when exclusive and failover consumer redeliver unack message will increase the epoch
+	ConsumerEpoch        *uint64  `protobuf:"varint,19,opt,name=consumer_epoch,json=consumerEpoch" json:"consumer_epoch,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
 func (m *CommandSubscribe) Reset()         { *m = CommandSubscribe{} }
@@ -2626,6 +2678,13 @@ func (m *CommandSubscribe) GetSubscriptionProperties() []*KeyValue {
 	return nil
 }
 
+func (m *CommandSubscribe) GetConsumerEpoch() uint64 {
+	if m != nil && m.ConsumerEpoch != nil {
+		return *m.ConsumerEpoch
+	}
+	return 0
+}
+
 type CommandPartitionedTopicMetadata struct {
 	Topic     *string `protobuf:"bytes,1,req,name=topic" json:"topic,omitempty"`
 	RequestId *uint64 `protobuf:"varint,2,req,name=request_id,json=requestId" json:"request_id,omitempty"`
@@ -3028,11 +3087,16 @@ type CommandProducer struct {
 	// broker on the CommandProducerSuccess. The first time, the client will
 	// leave it empty and then it will always carry the same epoch number on
 	// the subsequent reconnections.
-	TopicEpoch           *uint64  `protobuf:"varint,11,opt,name=topic_epoch,json=topicEpoch" json:"topic_epoch,omitempty"`
-	TxnEnabled           *bool    `protobuf:"varint,12,opt,name=txn_enabled,json=txnEnabled,def=0" json:"txn_enabled,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	TopicEpoch *uint64 `protobuf:"varint,11,opt,name=topic_epoch,json=topicEpoch" json:"topic_epoch,omitempty"`
+	TxnEnabled *bool   `protobuf:"varint,12,opt,name=txn_enabled,json=txnEnabled,def=0" json:"txn_enabled,omitempty"`
+	// Name of the initial subscription of the topic.
+	// If this field is not set, the initial subscription will not be created.
+	// If this field is set but the broker's `allowAutoSubscriptionCreation`
+	// is disabled, the producer will fail to be created.
+	InitialSubscriptionName *string  `protobuf:"bytes,13,opt,name=initial_subscription_name,json=initialSubscriptionName" json:"initial_subscription_name,omitempty"`
+	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
+	XXX_unrecognized        []byte   `json:"-"`
+	XXX_sizecache           int32    `json:"-"`
 }
 
 func (m *CommandProducer) Reset()         { *m = CommandProducer{} }
@@ -3158,6 +3222,13 @@ func (m *CommandProducer) GetTxnEnabled() bool {
 	return Default_CommandProducer_TxnEnabled
 }
 
+func (m *CommandProducer) GetInitialSubscriptionName() string {
+	if m != nil && m.InitialSubscriptionName != nil {
+		return *m.InitialSubscriptionName
+	}
+	return ""
+}
+
 type CommandSend struct {
 	ProducerId     *uint64 `protobuf:"varint,1,req,name=producer_id,json=producerId" json:"producer_id,omitempty"`
 	SequenceId     *uint64 `protobuf:"varint,2,req,name=sequence_id,json=sequenceId" json:"sequence_id,omitempty"`
@@ -3168,10 +3239,12 @@ type CommandSend struct {
 	HighestSequenceId *uint64 `protobuf:"varint,6,opt,name=highest_sequence_id,json=highestSequenceId,def=0" json:"highest_sequence_id,omitempty"`
 	IsChunk           *bool   `protobuf:"varint,7,opt,name=is_chunk,json=isChunk,def=0" json:"is_chunk,omitempty"`
 	// Specify if the message being published is a Pulsar marker or not
-	Marker               *bool    `protobuf:"varint,8,opt,name=marker,def=0" json:"marker,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Marker *bool `protobuf:"varint,8,opt,name=marker,def=0" json:"marker,omitempty"`
+	// Message id of this message, currently is used in replicator for shadow topic.
+	MessageId            *MessageIdData `protobuf:"bytes,9,opt,name=message_id,json=messageId" json:"message_id,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
+	XXX_unrecognized     []byte         `json:"-"`
+	XXX_sizecache        int32          `json:"-"`
 }
 
 func (m *CommandSend) Reset()         { *m = CommandSend{} }
@@ -3270,6 +3343,13 @@ func (m *CommandSend) GetMarker() bool {
 	return Default_CommandSend_Marker
 }
 
+func (m *CommandSend) GetMessageId() *MessageIdData {
+	if m != nil {
+		return m.MessageId
+	}
+	return nil
+}
+
 type CommandSendReceipt struct {
 	ProducerId           *uint64        `protobuf:"varint,1,req,name=producer_id,json=producerId" json:"producer_id,omitempty"`
 	SequenceId           *uint64        `protobuf:"varint,2,req,name=sequence_id,json=sequenceId" json:"sequence_id,omitempty"`
@@ -3419,6 +3499,7 @@ type CommandMessage struct {
 	MessageId            *MessageIdData `protobuf:"bytes,2,req,name=message_id,json=messageId" json:"message_id,omitempty"`
 	RedeliveryCount      *uint32        `protobuf:"varint,3,opt,name=redelivery_count,json=redeliveryCount,def=0" json:"redelivery_count,omitempty"`
 	AckSet               []int64        `protobuf:"varint,4,rep,name=ack_set,json=ackSet" json:"ack_set,omitempty"`
+	ConsumerEpoch        *uint64        `protobuf:"varint,5,opt,name=consumer_epoch,json=consumerEpoch" json:"consumer_epoch,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -3487,6 +3568,13 @@ func (m *CommandMessage) GetAckSet() []int64 {
 	return nil
 }
 
+func (m *CommandMessage) GetConsumerEpoch() uint64 {
+	if m != nil && m.ConsumerEpoch != nil {
+		return *m.ConsumerEpoch
+	}
+	return 0
+}
+
 type CommandAck struct {
 	ConsumerId *uint64             `protobuf:"varint,1,req,name=consumer_id,json=consumerId" json:"consumer_id,omitempty"`
 	AckType    *CommandAck_AckType `protobuf:"varint,2,req,name=ack_type,json=ackType,enum=pulsar.proto.CommandAck_AckType" json:"ack_type,omitempty"`
@@ -4089,6 +4177,7 @@ func (m *CommandCloseConsumer) GetRequestId() uint64 {
 type CommandRedeliverUnacknowledgedMessages struct {
 	ConsumerId           *uint64          `protobuf:"varint,1,req,name=consumer_id,json=consumerId" json:"consumer_id,omitempty"`
 	MessageIds           []*MessageIdData `protobuf:"bytes,2,rep,name=message_ids,json=messageIds" json:"message_ids,omitempty"`
+	ConsumerEpoch        *uint64          `protobuf:"varint,3,opt,name=consumer_epoch,json=consumerEpoch" json:"consumer_epoch,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -4143,6 +4232,13 @@ func (m *CommandRedeliverUnacknowledgedMessages) GetMessageIds() []*MessageIdDat
 	return nil
 }
 
+func (m *CommandRedeliverUnacknowledgedMessages) GetConsumerEpoch() uint64 {
+	if m != nil && m.ConsumerEpoch != nil {
+		return *m.ConsumerEpoch
+	}
+	return 0
+}
+
 type CommandSuccess struct {
 	RequestId            *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
 	Schema               *Schema  `protobuf:"bytes,2,opt,name=schema" json:"schema,omitempty"`
@@ -4524,7 +4620,9 @@ type CommandConsumerStatsResponse struct {
 	/// Total rate of messages expired on this subscription. msg/s
 	MsgRateExpired *float64 `protobuf:"fixed64,14,opt,name=msgRateExpired" json:"msgRateExpired,omitempty"`
 	/// Number of messages in the subscription backlog
-	MsgBacklog           *uint64  `protobuf:"varint,15,opt,name=msgBacklog" json:"msgBacklog,omitempty"`
+	MsgBacklog *uint64 `protobuf:"varint,15,opt,name=msgBacklog" json:"msgBacklog,omitempty"`
+	/// Total rate of messages ack. msg/s
+	MessageAckRate       *float64 `protobuf:"fixed64,16,opt,name=messageAckRate" json:"messageAckRate,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4668,6 +4766,13 @@ func (m *CommandConsumerStatsResponse) GetMsgBacklog() uint64 {
 	return 0
 }
 
+func (m *CommandConsumerStatsResponse) GetMessageAckRate() float64 {
+	if m != nil && m.MessageAckRate != nil {
+		return *m.MessageAckRate
+	}
+	return 0
+}
+
 type CommandGetLastMessageId struct {
 	ConsumerId           *uint64  `protobuf:"varint,1,req,name=consumer_id,json=consumerId" json:"consumer_id,omitempty"`
 	RequestId            *uint64  `protobuf:"varint,2,req,name=request_id,json=requestId" json:"request_id,omitempty"`
@@ -4790,6 +4895,8 @@ type CommandGetTopicsOfNamespace struct {
 	RequestId            *uint64                           `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
 	Namespace            *string                           `protobuf:"bytes,2,req,name=namespace" json:"namespace,omitempty"`
 	Mode                 *CommandGetTopicsOfNamespace_Mode `protobuf:"varint,3,opt,name=mode,enum=pulsar.proto.CommandGetTopicsOfNamespace_Mode,def=0" json:"mode,omitempty"`
+	TopicsPattern        *string                           `protobuf:"bytes,4,opt,name=topics_pattern,json=topicsPattern" json:"topics_pattern,omitempty"`
+	TopicsHash           *string                           `protobuf:"bytes,5,opt,name=topics_hash,json=topicsHash" json:"topics_hash,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
 	XXX_unrecognized     []byte                            `json:"-"`
 	XXX_sizecache        int32                             `json:"-"`
@@ -4851,9 +4958,29 @@ func (m *CommandGetTopicsOfNamespace) GetMode() CommandGetTopicsOfNamespace_Mode
 	return Default_CommandGetTopicsOfNamespace_Mode
 }
 
+func (m *CommandGetTopicsOfNamespace) GetTopicsPattern() string {
+	if m != nil && m.TopicsPattern != nil {
+		return *m.TopicsPattern
+	}
+	return ""
+}
+
+func (m *CommandGetTopicsOfNamespace) GetTopicsHash() string {
+	if m != nil && m.TopicsHash != nil {
+		return *m.TopicsHash
+	}
+	return ""
+}
+
 type CommandGetTopicsOfNamespaceResponse struct {
-	RequestId            *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	Topics               []string `protobuf:"bytes,2,rep,name=topics" json:"topics,omitempty"`
+	RequestId *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	Topics    []string `protobuf:"bytes,2,rep,name=topics" json:"topics,omitempty"`
+	// true iff the topic list was filtered by the pattern supplied by the client
+	Filtered *bool `protobuf:"varint,3,opt,name=filtered,def=0" json:"filtered,omitempty"`
+	// hash computed from the names of matching topics
+	TopicsHash *string `protobuf:"bytes,4,opt,name=topics_hash,json=topicsHash" json:"topics_hash,omitempty"`
+	// if false, topics is empty and the list of matching topics has not changed
+	Changed              *bool    `protobuf:"varint,5,opt,name=changed,def=1" json:"changed,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4892,6 +5019,9 @@ func (m *CommandGetTopicsOfNamespaceResponse) XXX_DiscardUnknown() {
 
 var xxx_messageInfo_CommandGetTopicsOfNamespaceResponse proto.InternalMessageInfo
 
+const Default_CommandGetTopicsOfNamespaceResponse_Filtered bool = false
+const Default_CommandGetTopicsOfNamespaceResponse_Changed bool = true
+
 func (m *CommandGetTopicsOfNamespaceResponse) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
@@ -4906,27 +5036,51 @@ func (m *CommandGetTopicsOfNamespaceResponse) GetTopics() []string {
 	return nil
 }
 
-type CommandGetSchema struct {
-	RequestId            *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	Topic                *string  `protobuf:"bytes,2,req,name=topic" json:"topic,omitempty"`
-	SchemaVersion        []byte   `protobuf:"bytes,3,opt,name=schema_version,json=schemaVersion" json:"schema_version,omitempty"`
+func (m *CommandGetTopicsOfNamespaceResponse) GetFiltered() bool {
+	if m != nil && m.Filtered != nil {
+		return *m.Filtered
+	}
+	return Default_CommandGetTopicsOfNamespaceResponse_Filtered
+}
+
+func (m *CommandGetTopicsOfNamespaceResponse) GetTopicsHash() string {
+	if m != nil && m.TopicsHash != nil {
+		return *m.TopicsHash
+	}
+	return ""
+}
+
+func (m *CommandGetTopicsOfNamespaceResponse) GetChanged() bool {
+	if m != nil && m.Changed != nil {
+		return *m.Changed
+	}
+	return Default_CommandGetTopicsOfNamespaceResponse_Changed
+}
+
+type CommandWatchTopicList struct {
+	RequestId     *uint64 `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	WatcherId     *uint64 `protobuf:"varint,2,req,name=watcher_id,json=watcherId" json:"watcher_id,omitempty"`
+	Namespace     *string `protobuf:"bytes,3,req,name=namespace" json:"namespace,omitempty"`
+	TopicsPattern *string `protobuf:"bytes,4,req,name=topics_pattern,json=topicsPattern" json:"topics_pattern,omitempty"`
+	// Only present when the client reconnects:
+	TopicsHash           *string  `protobuf:"bytes,5,opt,name=topics_hash,json=topicsHash" json:"topics_hash,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *CommandGetSchema) Reset()         { *m = CommandGetSchema{} }
-func (m *CommandGetSchema) String() string { return proto.CompactTextString(m) }
-func (*CommandGetSchema) ProtoMessage()    {}
-func (*CommandGetSchema) Descriptor() ([]byte, []int) {
+func (m *CommandWatchTopicList) Reset()         { *m = CommandWatchTopicList{} }
+func (m *CommandWatchTopicList) String() string { return proto.CompactTextString(m) }
+func (*CommandWatchTopicList) ProtoMessage()    {}
+func (*CommandWatchTopicList) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{47}
 }
-func (m *CommandGetSchema) XXX_Unmarshal(b []byte) error {
+func (m *CommandWatchTopicList) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandGetSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandWatchTopicList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandGetSchema.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandWatchTopicList.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -4936,62 +5090,75 @@ func (m *CommandGetSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, er
 		return b[:n], nil
 	}
 }
-func (m *CommandGetSchema) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandGetSchema.Merge(m, src)
+func (m *CommandWatchTopicList) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandWatchTopicList.Merge(m, src)
 }
-func (m *CommandGetSchema) XXX_Size() int {
+func (m *CommandWatchTopicList) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandGetSchema) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandGetSchema.DiscardUnknown(m)
+func (m *CommandWatchTopicList) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandWatchTopicList.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandGetSchema proto.InternalMessageInfo
+var xxx_messageInfo_CommandWatchTopicList proto.InternalMessageInfo
 
-func (m *CommandGetSchema) GetRequestId() uint64 {
+func (m *CommandWatchTopicList) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandGetSchema) GetTopic() string {
-	if m != nil && m.Topic != nil {
-		return *m.Topic
+func (m *CommandWatchTopicList) GetWatcherId() uint64 {
+	if m != nil && m.WatcherId != nil {
+		return *m.WatcherId
+	}
+	return 0
+}
+
+func (m *CommandWatchTopicList) GetNamespace() string {
+	if m != nil && m.Namespace != nil {
+		return *m.Namespace
 	}
 	return ""
 }
 
-func (m *CommandGetSchema) GetSchemaVersion() []byte {
-	if m != nil {
-		return m.SchemaVersion
+func (m *CommandWatchTopicList) GetTopicsPattern() string {
+	if m != nil && m.TopicsPattern != nil {
+		return *m.TopicsPattern
 	}
-	return nil
+	return ""
 }
 
-type CommandGetSchemaResponse struct {
-	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	ErrorCode            *ServerError `protobuf:"varint,2,opt,name=error_code,json=errorCode,enum=pulsar.proto.ServerError" json:"error_code,omitempty"`
-	ErrorMessage         *string      `protobuf:"bytes,3,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
-	Schema               *Schema      `protobuf:"bytes,4,opt,name=schema" json:"schema,omitempty"`
-	SchemaVersion        []byte       `protobuf:"bytes,5,opt,name=schema_version,json=schemaVersion" json:"schema_version,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
+func (m *CommandWatchTopicList) GetTopicsHash() string {
+	if m != nil && m.TopicsHash != nil {
+		return *m.TopicsHash
+	}
+	return ""
 }
 
-func (m *CommandGetSchemaResponse) Reset()         { *m = CommandGetSchemaResponse{} }
-func (m *CommandGetSchemaResponse) String() string { return proto.CompactTextString(m) }
-func (*CommandGetSchemaResponse) ProtoMessage()    {}
-func (*CommandGetSchemaResponse) Descriptor() ([]byte, []int) {
+type CommandWatchTopicListSuccess struct {
+	RequestId            *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	WatcherId            *uint64  `protobuf:"varint,2,req,name=watcher_id,json=watcherId" json:"watcher_id,omitempty"`
+	Topic                []string `protobuf:"bytes,3,rep,name=topic" json:"topic,omitempty"`
+	TopicsHash           *string  `protobuf:"bytes,4,req,name=topics_hash,json=topicsHash" json:"topics_hash,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *CommandWatchTopicListSuccess) Reset()         { *m = CommandWatchTopicListSuccess{} }
+func (m *CommandWatchTopicListSuccess) String() string { return proto.CompactTextString(m) }
+func (*CommandWatchTopicListSuccess) ProtoMessage()    {}
+func (*CommandWatchTopicListSuccess) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{48}
 }
-func (m *CommandGetSchemaResponse) XXX_Unmarshal(b []byte) error {
+func (m *CommandWatchTopicListSuccess) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandGetSchemaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandWatchTopicListSuccess) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandGetSchemaResponse.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandWatchTopicListSuccess.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5001,74 +5168,68 @@ func (m *CommandGetSchemaResponse) XXX_Marshal(b []byte, deterministic bool) ([]
 		return b[:n], nil
 	}
 }
-func (m *CommandGetSchemaResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandGetSchemaResponse.Merge(m, src)
+func (m *CommandWatchTopicListSuccess) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandWatchTopicListSuccess.Merge(m, src)
 }
-func (m *CommandGetSchemaResponse) XXX_Size() int {
+func (m *CommandWatchTopicListSuccess) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandGetSchemaResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandGetSchemaResponse.DiscardUnknown(m)
+func (m *CommandWatchTopicListSuccess) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandWatchTopicListSuccess.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandGetSchemaResponse proto.InternalMessageInfo
+var xxx_messageInfo_CommandWatchTopicListSuccess proto.InternalMessageInfo
 
-func (m *CommandGetSchemaResponse) GetRequestId() uint64 {
+func (m *CommandWatchTopicListSuccess) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandGetSchemaResponse) GetErrorCode() ServerError {
-	if m != nil && m.ErrorCode != nil {
-		return *m.ErrorCode
-	}
-	return ServerError_UnknownError
-}
-
-func (m *CommandGetSchemaResponse) GetErrorMessage() string {
-	if m != nil && m.ErrorMessage != nil {
-		return *m.ErrorMessage
+func (m *CommandWatchTopicListSuccess) GetWatcherId() uint64 {
+	if m != nil && m.WatcherId != nil {
+		return *m.WatcherId
 	}
-	return ""
+	return 0
 }
 
-func (m *CommandGetSchemaResponse) GetSchema() *Schema {
+func (m *CommandWatchTopicListSuccess) GetTopic() []string {
 	if m != nil {
-		return m.Schema
+		return m.Topic
 	}
 	return nil
 }
 
-func (m *CommandGetSchemaResponse) GetSchemaVersion() []byte {
-	if m != nil {
-		return m.SchemaVersion
+func (m *CommandWatchTopicListSuccess) GetTopicsHash() string {
+	if m != nil && m.TopicsHash != nil {
+		return *m.TopicsHash
 	}
-	return nil
+	return ""
 }
 
-type CommandGetOrCreateSchema struct {
-	RequestId            *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	Topic                *string  `protobuf:"bytes,2,req,name=topic" json:"topic,omitempty"`
-	Schema               *Schema  `protobuf:"bytes,3,req,name=schema" json:"schema,omitempty"`
+type CommandWatchTopicUpdate struct {
+	WatcherId            *uint64  `protobuf:"varint,1,req,name=watcher_id,json=watcherId" json:"watcher_id,omitempty"`
+	NewTopics            []string `protobuf:"bytes,2,rep,name=new_topics,json=newTopics" json:"new_topics,omitempty"`
+	DeletedTopics        []string `protobuf:"bytes,3,rep,name=deleted_topics,json=deletedTopics" json:"deleted_topics,omitempty"`
+	TopicsHash           *string  `protobuf:"bytes,4,req,name=topics_hash,json=topicsHash" json:"topics_hash,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *CommandGetOrCreateSchema) Reset()         { *m = CommandGetOrCreateSchema{} }
-func (m *CommandGetOrCreateSchema) String() string { return proto.CompactTextString(m) }
-func (*CommandGetOrCreateSchema) ProtoMessage()    {}
-func (*CommandGetOrCreateSchema) Descriptor() ([]byte, []int) {
+func (m *CommandWatchTopicUpdate) Reset()         { *m = CommandWatchTopicUpdate{} }
+func (m *CommandWatchTopicUpdate) String() string { return proto.CompactTextString(m) }
+func (*CommandWatchTopicUpdate) ProtoMessage()    {}
+func (*CommandWatchTopicUpdate) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{49}
 }
-func (m *CommandGetOrCreateSchema) XXX_Unmarshal(b []byte) error {
+func (m *CommandWatchTopicUpdate) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandGetOrCreateSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandWatchTopicUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandGetOrCreateSchema.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandWatchTopicUpdate.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5078,61 +5239,66 @@ func (m *CommandGetOrCreateSchema) XXX_Marshal(b []byte, deterministic bool) ([]
 		return b[:n], nil
 	}
 }
-func (m *CommandGetOrCreateSchema) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandGetOrCreateSchema.Merge(m, src)
+func (m *CommandWatchTopicUpdate) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandWatchTopicUpdate.Merge(m, src)
 }
-func (m *CommandGetOrCreateSchema) XXX_Size() int {
+func (m *CommandWatchTopicUpdate) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandGetOrCreateSchema) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandGetOrCreateSchema.DiscardUnknown(m)
+func (m *CommandWatchTopicUpdate) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandWatchTopicUpdate.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandGetOrCreateSchema proto.InternalMessageInfo
+var xxx_messageInfo_CommandWatchTopicUpdate proto.InternalMessageInfo
 
-func (m *CommandGetOrCreateSchema) GetRequestId() uint64 {
-	if m != nil && m.RequestId != nil {
-		return *m.RequestId
+func (m *CommandWatchTopicUpdate) GetWatcherId() uint64 {
+	if m != nil && m.WatcherId != nil {
+		return *m.WatcherId
 	}
 	return 0
 }
 
-func (m *CommandGetOrCreateSchema) GetTopic() string {
-	if m != nil && m.Topic != nil {
-		return *m.Topic
+func (m *CommandWatchTopicUpdate) GetNewTopics() []string {
+	if m != nil {
+		return m.NewTopics
 	}
-	return ""
+	return nil
 }
 
-func (m *CommandGetOrCreateSchema) GetSchema() *Schema {
+func (m *CommandWatchTopicUpdate) GetDeletedTopics() []string {
 	if m != nil {
-		return m.Schema
+		return m.DeletedTopics
 	}
 	return nil
 }
 
-type CommandGetOrCreateSchemaResponse struct {
-	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	ErrorCode            *ServerError `protobuf:"varint,2,opt,name=error_code,json=errorCode,enum=pulsar.proto.ServerError" json:"error_code,omitempty"`
-	ErrorMessage         *string      `protobuf:"bytes,3,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
-	SchemaVersion        []byte       `protobuf:"bytes,4,opt,name=schema_version,json=schemaVersion" json:"schema_version,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
+func (m *CommandWatchTopicUpdate) GetTopicsHash() string {
+	if m != nil && m.TopicsHash != nil {
+		return *m.TopicsHash
+	}
+	return ""
 }
 
-func (m *CommandGetOrCreateSchemaResponse) Reset()         { *m = CommandGetOrCreateSchemaResponse{} }
-func (m *CommandGetOrCreateSchemaResponse) String() string { return proto.CompactTextString(m) }
-func (*CommandGetOrCreateSchemaResponse) ProtoMessage()    {}
-func (*CommandGetOrCreateSchemaResponse) Descriptor() ([]byte, []int) {
+type CommandWatchTopicListClose struct {
+	RequestId            *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	WatcherId            *uint64  `protobuf:"varint,2,req,name=watcher_id,json=watcherId" json:"watcher_id,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *CommandWatchTopicListClose) Reset()         { *m = CommandWatchTopicListClose{} }
+func (m *CommandWatchTopicListClose) String() string { return proto.CompactTextString(m) }
+func (*CommandWatchTopicListClose) ProtoMessage()    {}
+func (*CommandWatchTopicListClose) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{50}
 }
-func (m *CommandGetOrCreateSchemaResponse) XXX_Unmarshal(b []byte) error {
+func (m *CommandWatchTopicListClose) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandGetOrCreateSchemaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandWatchTopicListClose) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandGetOrCreateSchemaResponse.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandWatchTopicListClose.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5142,66 +5308,53 @@ func (m *CommandGetOrCreateSchemaResponse) XXX_Marshal(b []byte, deterministic b
 		return b[:n], nil
 	}
 }
-func (m *CommandGetOrCreateSchemaResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandGetOrCreateSchemaResponse.Merge(m, src)
+func (m *CommandWatchTopicListClose) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandWatchTopicListClose.Merge(m, src)
 }
-func (m *CommandGetOrCreateSchemaResponse) XXX_Size() int {
+func (m *CommandWatchTopicListClose) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandGetOrCreateSchemaResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandGetOrCreateSchemaResponse.DiscardUnknown(m)
+func (m *CommandWatchTopicListClose) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandWatchTopicListClose.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandGetOrCreateSchemaResponse proto.InternalMessageInfo
+var xxx_messageInfo_CommandWatchTopicListClose proto.InternalMessageInfo
 
-func (m *CommandGetOrCreateSchemaResponse) GetRequestId() uint64 {
+func (m *CommandWatchTopicListClose) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandGetOrCreateSchemaResponse) GetErrorCode() ServerError {
-	if m != nil && m.ErrorCode != nil {
-		return *m.ErrorCode
-	}
-	return ServerError_UnknownError
-}
-
-func (m *CommandGetOrCreateSchemaResponse) GetErrorMessage() string {
-	if m != nil && m.ErrorMessage != nil {
-		return *m.ErrorMessage
-	}
-	return ""
-}
-
-func (m *CommandGetOrCreateSchemaResponse) GetSchemaVersion() []byte {
-	if m != nil {
-		return m.SchemaVersion
+func (m *CommandWatchTopicListClose) GetWatcherId() uint64 {
+	if m != nil && m.WatcherId != nil {
+		return *m.WatcherId
 	}
-	return nil
+	return 0
 }
 
-type CommandTcClientConnectRequest struct {
+type CommandGetSchema struct {
 	RequestId            *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	TcId                 *uint64  `protobuf:"varint,2,req,name=tc_id,json=tcId,def=0" json:"tc_id,omitempty"`
+	Topic                *string  `protobuf:"bytes,2,req,name=topic" json:"topic,omitempty"`
+	SchemaVersion        []byte   `protobuf:"bytes,3,opt,name=schema_version,json=schemaVersion" json:"schema_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *CommandTcClientConnectRequest) Reset()         { *m = CommandTcClientConnectRequest{} }
-func (m *CommandTcClientConnectRequest) String() string { return proto.CompactTextString(m) }
-func (*CommandTcClientConnectRequest) ProtoMessage()    {}
-func (*CommandTcClientConnectRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_39529ba7ad9caeb8, []int{51}
+func (m *CommandGetSchema) Reset()         { *m = CommandGetSchema{} }
+func (m *CommandGetSchema) String() string { return proto.CompactTextString(m) }
+func (*CommandGetSchema) ProtoMessage()    {}
+func (*CommandGetSchema) Descriptor() ([]byte, []int) {
+	return fileDescriptor_39529ba7ad9caeb8, []int{51}
 }
-func (m *CommandTcClientConnectRequest) XXX_Unmarshal(b []byte) error {
+func (m *CommandGetSchema) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandTcClientConnectRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandGetSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandTcClientConnectRequest.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandGetSchema.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5211,55 +5364,62 @@ func (m *CommandTcClientConnectRequest) XXX_Marshal(b []byte, deterministic bool
 		return b[:n], nil
 	}
 }
-func (m *CommandTcClientConnectRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandTcClientConnectRequest.Merge(m, src)
+func (m *CommandGetSchema) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandGetSchema.Merge(m, src)
 }
-func (m *CommandTcClientConnectRequest) XXX_Size() int {
+func (m *CommandGetSchema) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandTcClientConnectRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandTcClientConnectRequest.DiscardUnknown(m)
+func (m *CommandGetSchema) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandGetSchema.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandTcClientConnectRequest proto.InternalMessageInfo
-
-const Default_CommandTcClientConnectRequest_TcId uint64 = 0
+var xxx_messageInfo_CommandGetSchema proto.InternalMessageInfo
 
-func (m *CommandTcClientConnectRequest) GetRequestId() uint64 {
+func (m *CommandGetSchema) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandTcClientConnectRequest) GetTcId() uint64 {
-	if m != nil && m.TcId != nil {
-		return *m.TcId
+func (m *CommandGetSchema) GetTopic() string {
+	if m != nil && m.Topic != nil {
+		return *m.Topic
 	}
-	return Default_CommandTcClientConnectRequest_TcId
+	return ""
 }
 
-type CommandTcClientConnectResponse struct {
+func (m *CommandGetSchema) GetSchemaVersion() []byte {
+	if m != nil {
+		return m.SchemaVersion
+	}
+	return nil
+}
+
+type CommandGetSchemaResponse struct {
 	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	Error                *ServerError `protobuf:"varint,2,opt,name=error,enum=pulsar.proto.ServerError" json:"error,omitempty"`
-	Message              *string      `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
+	ErrorCode            *ServerError `protobuf:"varint,2,opt,name=error_code,json=errorCode,enum=pulsar.proto.ServerError" json:"error_code,omitempty"`
+	ErrorMessage         *string      `protobuf:"bytes,3,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
+	Schema               *Schema      `protobuf:"bytes,4,opt,name=schema" json:"schema,omitempty"`
+	SchemaVersion        []byte       `protobuf:"bytes,5,opt,name=schema_version,json=schemaVersion" json:"schema_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
 }
 
-func (m *CommandTcClientConnectResponse) Reset()         { *m = CommandTcClientConnectResponse{} }
-func (m *CommandTcClientConnectResponse) String() string { return proto.CompactTextString(m) }
-func (*CommandTcClientConnectResponse) ProtoMessage()    {}
-func (*CommandTcClientConnectResponse) Descriptor() ([]byte, []int) {
+func (m *CommandGetSchemaResponse) Reset()         { *m = CommandGetSchemaResponse{} }
+func (m *CommandGetSchemaResponse) String() string { return proto.CompactTextString(m) }
+func (*CommandGetSchemaResponse) ProtoMessage()    {}
+func (*CommandGetSchemaResponse) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{52}
 }
-func (m *CommandTcClientConnectResponse) XXX_Unmarshal(b []byte) error {
+func (m *CommandGetSchemaResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandTcClientConnectResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandGetSchemaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandTcClientConnectResponse.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandGetSchemaResponse.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5269,60 +5429,74 @@ func (m *CommandTcClientConnectResponse) XXX_Marshal(b []byte, deterministic boo
 		return b[:n], nil
 	}
 }
-func (m *CommandTcClientConnectResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandTcClientConnectResponse.Merge(m, src)
+func (m *CommandGetSchemaResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandGetSchemaResponse.Merge(m, src)
 }
-func (m *CommandTcClientConnectResponse) XXX_Size() int {
+func (m *CommandGetSchemaResponse) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandTcClientConnectResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandTcClientConnectResponse.DiscardUnknown(m)
+func (m *CommandGetSchemaResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandGetSchemaResponse.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandTcClientConnectResponse proto.InternalMessageInfo
+var xxx_messageInfo_CommandGetSchemaResponse proto.InternalMessageInfo
 
-func (m *CommandTcClientConnectResponse) GetRequestId() uint64 {
+func (m *CommandGetSchemaResponse) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandTcClientConnectResponse) GetError() ServerError {
-	if m != nil && m.Error != nil {
-		return *m.Error
+func (m *CommandGetSchemaResponse) GetErrorCode() ServerError {
+	if m != nil && m.ErrorCode != nil {
+		return *m.ErrorCode
 	}
 	return ServerError_UnknownError
 }
 
-func (m *CommandTcClientConnectResponse) GetMessage() string {
-	if m != nil && m.Message != nil {
-		return *m.Message
+func (m *CommandGetSchemaResponse) GetErrorMessage() string {
+	if m != nil && m.ErrorMessage != nil {
+		return *m.ErrorMessage
 	}
 	return ""
 }
 
-type CommandNewTxn struct {
+func (m *CommandGetSchemaResponse) GetSchema() *Schema {
+	if m != nil {
+		return m.Schema
+	}
+	return nil
+}
+
+func (m *CommandGetSchemaResponse) GetSchemaVersion() []byte {
+	if m != nil {
+		return m.SchemaVersion
+	}
+	return nil
+}
+
+type CommandGetOrCreateSchema struct {
 	RequestId            *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	TxnTtlSeconds        *uint64  `protobuf:"varint,2,opt,name=txn_ttl_seconds,json=txnTtlSeconds,def=0" json:"txn_ttl_seconds,omitempty"`
-	TcId                 *uint64  `protobuf:"varint,3,opt,name=tc_id,json=tcId,def=0" json:"tc_id,omitempty"`
+	Topic                *string  `protobuf:"bytes,2,req,name=topic" json:"topic,omitempty"`
+	Schema               *Schema  `protobuf:"bytes,3,req,name=schema" json:"schema,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *CommandNewTxn) Reset()         { *m = CommandNewTxn{} }
-func (m *CommandNewTxn) String() string { return proto.CompactTextString(m) }
-func (*CommandNewTxn) ProtoMessage()    {}
-func (*CommandNewTxn) Descriptor() ([]byte, []int) {
+func (m *CommandGetOrCreateSchema) Reset()         { *m = CommandGetOrCreateSchema{} }
+func (m *CommandGetOrCreateSchema) String() string { return proto.CompactTextString(m) }
+func (*CommandGetOrCreateSchema) ProtoMessage()    {}
+func (*CommandGetOrCreateSchema) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{53}
 }
-func (m *CommandNewTxn) XXX_Unmarshal(b []byte) error {
+func (m *CommandGetOrCreateSchema) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandNewTxn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandGetOrCreateSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandNewTxn.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandGetOrCreateSchema.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5332,65 +5506,61 @@ func (m *CommandNewTxn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
 		return b[:n], nil
 	}
 }
-func (m *CommandNewTxn) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandNewTxn.Merge(m, src)
+func (m *CommandGetOrCreateSchema) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandGetOrCreateSchema.Merge(m, src)
 }
-func (m *CommandNewTxn) XXX_Size() int {
+func (m *CommandGetOrCreateSchema) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandNewTxn) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandNewTxn.DiscardUnknown(m)
+func (m *CommandGetOrCreateSchema) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandGetOrCreateSchema.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandNewTxn proto.InternalMessageInfo
-
-const Default_CommandNewTxn_TxnTtlSeconds uint64 = 0
-const Default_CommandNewTxn_TcId uint64 = 0
+var xxx_messageInfo_CommandGetOrCreateSchema proto.InternalMessageInfo
 
-func (m *CommandNewTxn) GetRequestId() uint64 {
+func (m *CommandGetOrCreateSchema) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandNewTxn) GetTxnTtlSeconds() uint64 {
-	if m != nil && m.TxnTtlSeconds != nil {
-		return *m.TxnTtlSeconds
+func (m *CommandGetOrCreateSchema) GetTopic() string {
+	if m != nil && m.Topic != nil {
+		return *m.Topic
 	}
-	return Default_CommandNewTxn_TxnTtlSeconds
+	return ""
 }
 
-func (m *CommandNewTxn) GetTcId() uint64 {
-	if m != nil && m.TcId != nil {
-		return *m.TcId
+func (m *CommandGetOrCreateSchema) GetSchema() *Schema {
+	if m != nil {
+		return m.Schema
 	}
-	return Default_CommandNewTxn_TcId
+	return nil
 }
 
-type CommandNewTxnResponse struct {
+type CommandGetOrCreateSchemaResponse struct {
 	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	TxnidLeastBits       *uint64      `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
-	TxnidMostBits        *uint64      `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
-	Error                *ServerError `protobuf:"varint,4,opt,name=error,enum=pulsar.proto.ServerError" json:"error,omitempty"`
-	Message              *string      `protobuf:"bytes,5,opt,name=message" json:"message,omitempty"`
+	ErrorCode            *ServerError `protobuf:"varint,2,opt,name=error_code,json=errorCode,enum=pulsar.proto.ServerError" json:"error_code,omitempty"`
+	ErrorMessage         *string      `protobuf:"bytes,3,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
+	SchemaVersion        []byte       `protobuf:"bytes,4,opt,name=schema_version,json=schemaVersion" json:"schema_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
 }
 
-func (m *CommandNewTxnResponse) Reset()         { *m = CommandNewTxnResponse{} }
-func (m *CommandNewTxnResponse) String() string { return proto.CompactTextString(m) }
-func (*CommandNewTxnResponse) ProtoMessage()    {}
-func (*CommandNewTxnResponse) Descriptor() ([]byte, []int) {
+func (m *CommandGetOrCreateSchemaResponse) Reset()         { *m = CommandGetOrCreateSchemaResponse{} }
+func (m *CommandGetOrCreateSchemaResponse) String() string { return proto.CompactTextString(m) }
+func (*CommandGetOrCreateSchemaResponse) ProtoMessage()    {}
+func (*CommandGetOrCreateSchemaResponse) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{54}
 }
-func (m *CommandNewTxnResponse) XXX_Unmarshal(b []byte) error {
+func (m *CommandGetOrCreateSchemaResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandNewTxnResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandGetOrCreateSchemaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandNewTxnResponse.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandGetOrCreateSchemaResponse.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5400,78 +5570,66 @@ func (m *CommandNewTxnResponse) XXX_Marshal(b []byte, deterministic bool) ([]byt
 		return b[:n], nil
 	}
 }
-func (m *CommandNewTxnResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandNewTxnResponse.Merge(m, src)
+func (m *CommandGetOrCreateSchemaResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandGetOrCreateSchemaResponse.Merge(m, src)
 }
-func (m *CommandNewTxnResponse) XXX_Size() int {
+func (m *CommandGetOrCreateSchemaResponse) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandNewTxnResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandNewTxnResponse.DiscardUnknown(m)
+func (m *CommandGetOrCreateSchemaResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandGetOrCreateSchemaResponse.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandNewTxnResponse proto.InternalMessageInfo
-
-const Default_CommandNewTxnResponse_TxnidLeastBits uint64 = 0
-const Default_CommandNewTxnResponse_TxnidMostBits uint64 = 0
+var xxx_messageInfo_CommandGetOrCreateSchemaResponse proto.InternalMessageInfo
 
-func (m *CommandNewTxnResponse) GetRequestId() uint64 {
+func (m *CommandGetOrCreateSchemaResponse) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandNewTxnResponse) GetTxnidLeastBits() uint64 {
-	if m != nil && m.TxnidLeastBits != nil {
-		return *m.TxnidLeastBits
-	}
-	return Default_CommandNewTxnResponse_TxnidLeastBits
-}
-
-func (m *CommandNewTxnResponse) GetTxnidMostBits() uint64 {
-	if m != nil && m.TxnidMostBits != nil {
-		return *m.TxnidMostBits
+func (m *CommandGetOrCreateSchemaResponse) GetErrorCode() ServerError {
+	if m != nil && m.ErrorCode != nil {
+		return *m.ErrorCode
 	}
-	return Default_CommandNewTxnResponse_TxnidMostBits
+	return ServerError_UnknownError
 }
 
-func (m *CommandNewTxnResponse) GetError() ServerError {
-	if m != nil && m.Error != nil {
-		return *m.Error
+func (m *CommandGetOrCreateSchemaResponse) GetErrorMessage() string {
+	if m != nil && m.ErrorMessage != nil {
+		return *m.ErrorMessage
 	}
-	return ServerError_UnknownError
+	return ""
 }
 
-func (m *CommandNewTxnResponse) GetMessage() string {
-	if m != nil && m.Message != nil {
-		return *m.Message
+func (m *CommandGetOrCreateSchemaResponse) GetSchemaVersion() []byte {
+	if m != nil {
+		return m.SchemaVersion
 	}
-	return ""
+	return nil
 }
 
-type CommandAddPartitionToTxn struct {
+type CommandTcClientConnectRequest struct {
 	RequestId            *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	TxnidLeastBits       *uint64  `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
-	TxnidMostBits        *uint64  `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
-	Partitions           []string `protobuf:"bytes,4,rep,name=partitions" json:"partitions,omitempty"`
+	TcId                 *uint64  `protobuf:"varint,2,req,name=tc_id,json=tcId,def=0" json:"tc_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *CommandAddPartitionToTxn) Reset()         { *m = CommandAddPartitionToTxn{} }
-func (m *CommandAddPartitionToTxn) String() string { return proto.CompactTextString(m) }
-func (*CommandAddPartitionToTxn) ProtoMessage()    {}
-func (*CommandAddPartitionToTxn) Descriptor() ([]byte, []int) {
+func (m *CommandTcClientConnectRequest) Reset()         { *m = CommandTcClientConnectRequest{} }
+func (m *CommandTcClientConnectRequest) String() string { return proto.CompactTextString(m) }
+func (*CommandTcClientConnectRequest) ProtoMessage()    {}
+func (*CommandTcClientConnectRequest) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{55}
 }
-func (m *CommandAddPartitionToTxn) XXX_Unmarshal(b []byte) error {
+func (m *CommandTcClientConnectRequest) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandAddPartitionToTxn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandTcClientConnectRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandAddPartitionToTxn.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandTcClientConnectRequest.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5481,72 +5639,55 @@ func (m *CommandAddPartitionToTxn) XXX_Marshal(b []byte, deterministic bool) ([]
 		return b[:n], nil
 	}
 }
-func (m *CommandAddPartitionToTxn) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandAddPartitionToTxn.Merge(m, src)
+func (m *CommandTcClientConnectRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandTcClientConnectRequest.Merge(m, src)
 }
-func (m *CommandAddPartitionToTxn) XXX_Size() int {
+func (m *CommandTcClientConnectRequest) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandAddPartitionToTxn) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandAddPartitionToTxn.DiscardUnknown(m)
+func (m *CommandTcClientConnectRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandTcClientConnectRequest.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandAddPartitionToTxn proto.InternalMessageInfo
+var xxx_messageInfo_CommandTcClientConnectRequest proto.InternalMessageInfo
 
-const Default_CommandAddPartitionToTxn_TxnidLeastBits uint64 = 0
-const Default_CommandAddPartitionToTxn_TxnidMostBits uint64 = 0
+const Default_CommandTcClientConnectRequest_TcId uint64 = 0
 
-func (m *CommandAddPartitionToTxn) GetRequestId() uint64 {
+func (m *CommandTcClientConnectRequest) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandAddPartitionToTxn) GetTxnidLeastBits() uint64 {
-	if m != nil && m.TxnidLeastBits != nil {
-		return *m.TxnidLeastBits
-	}
-	return Default_CommandAddPartitionToTxn_TxnidLeastBits
-}
-
-func (m *CommandAddPartitionToTxn) GetTxnidMostBits() uint64 {
-	if m != nil && m.TxnidMostBits != nil {
-		return *m.TxnidMostBits
-	}
-	return Default_CommandAddPartitionToTxn_TxnidMostBits
-}
-
-func (m *CommandAddPartitionToTxn) GetPartitions() []string {
-	if m != nil {
-		return m.Partitions
+func (m *CommandTcClientConnectRequest) GetTcId() uint64 {
+	if m != nil && m.TcId != nil {
+		return *m.TcId
 	}
-	return nil
+	return Default_CommandTcClientConnectRequest_TcId
 }
 
-type CommandAddPartitionToTxnResponse struct {
+type CommandTcClientConnectResponse struct {
 	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	TxnidLeastBits       *uint64      `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
-	TxnidMostBits        *uint64      `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
-	Error                *ServerError `protobuf:"varint,4,opt,name=error,enum=pulsar.proto.ServerError" json:"error,omitempty"`
-	Message              *string      `protobuf:"bytes,5,opt,name=message" json:"message,omitempty"`
+	Error                *ServerError `protobuf:"varint,2,opt,name=error,enum=pulsar.proto.ServerError" json:"error,omitempty"`
+	Message              *string      `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
 }
 
-func (m *CommandAddPartitionToTxnResponse) Reset()         { *m = CommandAddPartitionToTxnResponse{} }
-func (m *CommandAddPartitionToTxnResponse) String() string { return proto.CompactTextString(m) }
-func (*CommandAddPartitionToTxnResponse) ProtoMessage()    {}
-func (*CommandAddPartitionToTxnResponse) Descriptor() ([]byte, []int) {
+func (m *CommandTcClientConnectResponse) Reset()         { *m = CommandTcClientConnectResponse{} }
+func (m *CommandTcClientConnectResponse) String() string { return proto.CompactTextString(m) }
+func (*CommandTcClientConnectResponse) ProtoMessage()    {}
+func (*CommandTcClientConnectResponse) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{56}
 }
-func (m *CommandAddPartitionToTxnResponse) XXX_Unmarshal(b []byte) error {
+func (m *CommandTcClientConnectResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandAddPartitionToTxnResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandTcClientConnectResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandAddPartitionToTxnResponse.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandTcClientConnectResponse.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5556,133 +5697,60 @@ func (m *CommandAddPartitionToTxnResponse) XXX_Marshal(b []byte, deterministic b
 		return b[:n], nil
 	}
 }
-func (m *CommandAddPartitionToTxnResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandAddPartitionToTxnResponse.Merge(m, src)
+func (m *CommandTcClientConnectResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandTcClientConnectResponse.Merge(m, src)
 }
-func (m *CommandAddPartitionToTxnResponse) XXX_Size() int {
+func (m *CommandTcClientConnectResponse) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandAddPartitionToTxnResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandAddPartitionToTxnResponse.DiscardUnknown(m)
+func (m *CommandTcClientConnectResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandTcClientConnectResponse.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandAddPartitionToTxnResponse proto.InternalMessageInfo
-
-const Default_CommandAddPartitionToTxnResponse_TxnidLeastBits uint64 = 0
-const Default_CommandAddPartitionToTxnResponse_TxnidMostBits uint64 = 0
+var xxx_messageInfo_CommandTcClientConnectResponse proto.InternalMessageInfo
 
-func (m *CommandAddPartitionToTxnResponse) GetRequestId() uint64 {
+func (m *CommandTcClientConnectResponse) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandAddPartitionToTxnResponse) GetTxnidLeastBits() uint64 {
-	if m != nil && m.TxnidLeastBits != nil {
-		return *m.TxnidLeastBits
-	}
-	return Default_CommandAddPartitionToTxnResponse_TxnidLeastBits
-}
-
-func (m *CommandAddPartitionToTxnResponse) GetTxnidMostBits() uint64 {
-	if m != nil && m.TxnidMostBits != nil {
-		return *m.TxnidMostBits
-	}
-	return Default_CommandAddPartitionToTxnResponse_TxnidMostBits
-}
-
-func (m *CommandAddPartitionToTxnResponse) GetError() ServerError {
+func (m *CommandTcClientConnectResponse) GetError() ServerError {
 	if m != nil && m.Error != nil {
 		return *m.Error
 	}
 	return ServerError_UnknownError
 }
 
-func (m *CommandAddPartitionToTxnResponse) GetMessage() string {
+func (m *CommandTcClientConnectResponse) GetMessage() string {
 	if m != nil && m.Message != nil {
 		return *m.Message
 	}
 	return ""
 }
 
-type Subscription struct {
-	Topic                *string  `protobuf:"bytes,1,req,name=topic" json:"topic,omitempty"`
-	Subscription         *string  `protobuf:"bytes,2,req,name=subscription" json:"subscription,omitempty"`
+type CommandNewTxn struct {
+	RequestId            *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	TxnTtlSeconds        *uint64  `protobuf:"varint,2,opt,name=txn_ttl_seconds,json=txnTtlSeconds,def=0" json:"txn_ttl_seconds,omitempty"`
+	TcId                 *uint64  `protobuf:"varint,3,opt,name=tc_id,json=tcId,def=0" json:"tc_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *Subscription) Reset()         { *m = Subscription{} }
-func (m *Subscription) String() string { return proto.CompactTextString(m) }
-func (*Subscription) ProtoMessage()    {}
-func (*Subscription) Descriptor() ([]byte, []int) {
+func (m *CommandNewTxn) Reset()         { *m = CommandNewTxn{} }
+func (m *CommandNewTxn) String() string { return proto.CompactTextString(m) }
+func (*CommandNewTxn) ProtoMessage()    {}
+func (*CommandNewTxn) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{57}
 }
-func (m *Subscription) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *Subscription) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_Subscription.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalToSizedBuffer(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *Subscription) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Subscription.Merge(m, src)
-}
-func (m *Subscription) XXX_Size() int {
-	return m.Size()
-}
-func (m *Subscription) XXX_DiscardUnknown() {
-	xxx_messageInfo_Subscription.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Subscription proto.InternalMessageInfo
-
-func (m *Subscription) GetTopic() string {
-	if m != nil && m.Topic != nil {
-		return *m.Topic
-	}
-	return ""
-}
-
-func (m *Subscription) GetSubscription() string {
-	if m != nil && m.Subscription != nil {
-		return *m.Subscription
-	}
-	return ""
-}
-
-type CommandAddSubscriptionToTxn struct {
-	RequestId            *uint64         `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	TxnidLeastBits       *uint64         `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
-	TxnidMostBits        *uint64         `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
-	Subscription         []*Subscription `protobuf:"bytes,4,rep,name=subscription" json:"subscription,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
-	XXX_unrecognized     []byte          `json:"-"`
-	XXX_sizecache        int32           `json:"-"`
-}
-
-func (m *CommandAddSubscriptionToTxn) Reset()         { *m = CommandAddSubscriptionToTxn{} }
-func (m *CommandAddSubscriptionToTxn) String() string { return proto.CompactTextString(m) }
-func (*CommandAddSubscriptionToTxn) ProtoMessage()    {}
-func (*CommandAddSubscriptionToTxn) Descriptor() ([]byte, []int) {
-	return fileDescriptor_39529ba7ad9caeb8, []int{58}
-}
-func (m *CommandAddSubscriptionToTxn) XXX_Unmarshal(b []byte) error {
+func (m *CommandNewTxn) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandAddSubscriptionToTxn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandNewTxn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandAddSubscriptionToTxn.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandNewTxn.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5692,50 +5760,43 @@ func (m *CommandAddSubscriptionToTxn) XXX_Marshal(b []byte, deterministic bool)
 		return b[:n], nil
 	}
 }
-func (m *CommandAddSubscriptionToTxn) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandAddSubscriptionToTxn.Merge(m, src)
+func (m *CommandNewTxn) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandNewTxn.Merge(m, src)
 }
-func (m *CommandAddSubscriptionToTxn) XXX_Size() int {
+func (m *CommandNewTxn) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandAddSubscriptionToTxn) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandAddSubscriptionToTxn.DiscardUnknown(m)
+func (m *CommandNewTxn) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandNewTxn.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandAddSubscriptionToTxn proto.InternalMessageInfo
+var xxx_messageInfo_CommandNewTxn proto.InternalMessageInfo
 
-const Default_CommandAddSubscriptionToTxn_TxnidLeastBits uint64 = 0
-const Default_CommandAddSubscriptionToTxn_TxnidMostBits uint64 = 0
+const Default_CommandNewTxn_TxnTtlSeconds uint64 = 0
+const Default_CommandNewTxn_TcId uint64 = 0
 
-func (m *CommandAddSubscriptionToTxn) GetRequestId() uint64 {
+func (m *CommandNewTxn) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandAddSubscriptionToTxn) GetTxnidLeastBits() uint64 {
-	if m != nil && m.TxnidLeastBits != nil {
-		return *m.TxnidLeastBits
-	}
-	return Default_CommandAddSubscriptionToTxn_TxnidLeastBits
-}
-
-func (m *CommandAddSubscriptionToTxn) GetTxnidMostBits() uint64 {
-	if m != nil && m.TxnidMostBits != nil {
-		return *m.TxnidMostBits
+func (m *CommandNewTxn) GetTxnTtlSeconds() uint64 {
+	if m != nil && m.TxnTtlSeconds != nil {
+		return *m.TxnTtlSeconds
 	}
-	return Default_CommandAddSubscriptionToTxn_TxnidMostBits
+	return Default_CommandNewTxn_TxnTtlSeconds
 }
 
-func (m *CommandAddSubscriptionToTxn) GetSubscription() []*Subscription {
-	if m != nil {
-		return m.Subscription
+func (m *CommandNewTxn) GetTcId() uint64 {
+	if m != nil && m.TcId != nil {
+		return *m.TcId
 	}
-	return nil
+	return Default_CommandNewTxn_TcId
 }
 
-type CommandAddSubscriptionToTxnResponse struct {
+type CommandNewTxnResponse struct {
 	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
 	TxnidLeastBits       *uint64      `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
 	TxnidMostBits        *uint64      `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
@@ -5746,18 +5807,18 @@ type CommandAddSubscriptionToTxnResponse struct {
 	XXX_sizecache        int32        `json:"-"`
 }
 
-func (m *CommandAddSubscriptionToTxnResponse) Reset()         { *m = CommandAddSubscriptionToTxnResponse{} }
-func (m *CommandAddSubscriptionToTxnResponse) String() string { return proto.CompactTextString(m) }
-func (*CommandAddSubscriptionToTxnResponse) ProtoMessage()    {}
-func (*CommandAddSubscriptionToTxnResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_39529ba7ad9caeb8, []int{59}
+func (m *CommandNewTxnResponse) Reset()         { *m = CommandNewTxnResponse{} }
+func (m *CommandNewTxnResponse) String() string { return proto.CompactTextString(m) }
+func (*CommandNewTxnResponse) ProtoMessage()    {}
+func (*CommandNewTxnResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_39529ba7ad9caeb8, []int{58}
 }
-func (m *CommandAddSubscriptionToTxnResponse) XXX_Unmarshal(b []byte) error {
+func (m *CommandNewTxnResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandAddSubscriptionToTxnResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandNewTxnResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandAddSubscriptionToTxnResponse.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandNewTxnResponse.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5767,78 +5828,78 @@ func (m *CommandAddSubscriptionToTxnResponse) XXX_Marshal(b []byte, deterministi
 		return b[:n], nil
 	}
 }
-func (m *CommandAddSubscriptionToTxnResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandAddSubscriptionToTxnResponse.Merge(m, src)
+func (m *CommandNewTxnResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandNewTxnResponse.Merge(m, src)
 }
-func (m *CommandAddSubscriptionToTxnResponse) XXX_Size() int {
+func (m *CommandNewTxnResponse) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandAddSubscriptionToTxnResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandAddSubscriptionToTxnResponse.DiscardUnknown(m)
+func (m *CommandNewTxnResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandNewTxnResponse.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandAddSubscriptionToTxnResponse proto.InternalMessageInfo
+var xxx_messageInfo_CommandNewTxnResponse proto.InternalMessageInfo
 
-const Default_CommandAddSubscriptionToTxnResponse_TxnidLeastBits uint64 = 0
-const Default_CommandAddSubscriptionToTxnResponse_TxnidMostBits uint64 = 0
+const Default_CommandNewTxnResponse_TxnidLeastBits uint64 = 0
+const Default_CommandNewTxnResponse_TxnidMostBits uint64 = 0
 
-func (m *CommandAddSubscriptionToTxnResponse) GetRequestId() uint64 {
+func (m *CommandNewTxnResponse) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandAddSubscriptionToTxnResponse) GetTxnidLeastBits() uint64 {
+func (m *CommandNewTxnResponse) GetTxnidLeastBits() uint64 {
 	if m != nil && m.TxnidLeastBits != nil {
 		return *m.TxnidLeastBits
 	}
-	return Default_CommandAddSubscriptionToTxnResponse_TxnidLeastBits
+	return Default_CommandNewTxnResponse_TxnidLeastBits
 }
 
-func (m *CommandAddSubscriptionToTxnResponse) GetTxnidMostBits() uint64 {
+func (m *CommandNewTxnResponse) GetTxnidMostBits() uint64 {
 	if m != nil && m.TxnidMostBits != nil {
 		return *m.TxnidMostBits
 	}
-	return Default_CommandAddSubscriptionToTxnResponse_TxnidMostBits
+	return Default_CommandNewTxnResponse_TxnidMostBits
 }
 
-func (m *CommandAddSubscriptionToTxnResponse) GetError() ServerError {
+func (m *CommandNewTxnResponse) GetError() ServerError {
 	if m != nil && m.Error != nil {
 		return *m.Error
 	}
 	return ServerError_UnknownError
 }
 
-func (m *CommandAddSubscriptionToTxnResponse) GetMessage() string {
+func (m *CommandNewTxnResponse) GetMessage() string {
 	if m != nil && m.Message != nil {
 		return *m.Message
 	}
 	return ""
 }
 
-type CommandEndTxn struct {
-	RequestId            *uint64    `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	TxnidLeastBits       *uint64    `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
-	TxnidMostBits        *uint64    `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
-	TxnAction            *TxnAction `protobuf:"varint,4,opt,name=txn_action,json=txnAction,enum=pulsar.proto.TxnAction" json:"txn_action,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
-	XXX_unrecognized     []byte     `json:"-"`
-	XXX_sizecache        int32      `json:"-"`
+type CommandAddPartitionToTxn struct {
+	RequestId            *uint64  `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	TxnidLeastBits       *uint64  `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
+	TxnidMostBits        *uint64  `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
+	Partitions           []string `protobuf:"bytes,4,rep,name=partitions" json:"partitions,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *CommandEndTxn) Reset()         { *m = CommandEndTxn{} }
-func (m *CommandEndTxn) String() string { return proto.CompactTextString(m) }
-func (*CommandEndTxn) ProtoMessage()    {}
-func (*CommandEndTxn) Descriptor() ([]byte, []int) {
-	return fileDescriptor_39529ba7ad9caeb8, []int{60}
+func (m *CommandAddPartitionToTxn) Reset()         { *m = CommandAddPartitionToTxn{} }
+func (m *CommandAddPartitionToTxn) String() string { return proto.CompactTextString(m) }
+func (*CommandAddPartitionToTxn) ProtoMessage()    {}
+func (*CommandAddPartitionToTxn) Descriptor() ([]byte, []int) {
+	return fileDescriptor_39529ba7ad9caeb8, []int{59}
 }
-func (m *CommandEndTxn) XXX_Unmarshal(b []byte) error {
+func (m *CommandAddPartitionToTxn) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandEndTxn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandAddPartitionToTxn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandEndTxn.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandAddPartitionToTxn.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5848,50 +5909,50 @@ func (m *CommandEndTxn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
 		return b[:n], nil
 	}
 }
-func (m *CommandEndTxn) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandEndTxn.Merge(m, src)
+func (m *CommandAddPartitionToTxn) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandAddPartitionToTxn.Merge(m, src)
 }
-func (m *CommandEndTxn) XXX_Size() int {
+func (m *CommandAddPartitionToTxn) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandEndTxn) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandEndTxn.DiscardUnknown(m)
+func (m *CommandAddPartitionToTxn) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandAddPartitionToTxn.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandEndTxn proto.InternalMessageInfo
+var xxx_messageInfo_CommandAddPartitionToTxn proto.InternalMessageInfo
 
-const Default_CommandEndTxn_TxnidLeastBits uint64 = 0
-const Default_CommandEndTxn_TxnidMostBits uint64 = 0
+const Default_CommandAddPartitionToTxn_TxnidLeastBits uint64 = 0
+const Default_CommandAddPartitionToTxn_TxnidMostBits uint64 = 0
 
-func (m *CommandEndTxn) GetRequestId() uint64 {
+func (m *CommandAddPartitionToTxn) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandEndTxn) GetTxnidLeastBits() uint64 {
+func (m *CommandAddPartitionToTxn) GetTxnidLeastBits() uint64 {
 	if m != nil && m.TxnidLeastBits != nil {
 		return *m.TxnidLeastBits
 	}
-	return Default_CommandEndTxn_TxnidLeastBits
+	return Default_CommandAddPartitionToTxn_TxnidLeastBits
 }
 
-func (m *CommandEndTxn) GetTxnidMostBits() uint64 {
+func (m *CommandAddPartitionToTxn) GetTxnidMostBits() uint64 {
 	if m != nil && m.TxnidMostBits != nil {
 		return *m.TxnidMostBits
 	}
-	return Default_CommandEndTxn_TxnidMostBits
+	return Default_CommandAddPartitionToTxn_TxnidMostBits
 }
 
-func (m *CommandEndTxn) GetTxnAction() TxnAction {
-	if m != nil && m.TxnAction != nil {
-		return *m.TxnAction
+func (m *CommandAddPartitionToTxn) GetPartitions() []string {
+	if m != nil {
+		return m.Partitions
 	}
-	return TxnAction_COMMIT
+	return nil
 }
 
-type CommandEndTxnResponse struct {
+type CommandAddPartitionToTxnResponse struct {
 	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
 	TxnidLeastBits       *uint64      `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
 	TxnidMostBits        *uint64      `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
@@ -5902,18 +5963,18 @@ type CommandEndTxnResponse struct {
 	XXX_sizecache        int32        `json:"-"`
 }
 
-func (m *CommandEndTxnResponse) Reset()         { *m = CommandEndTxnResponse{} }
-func (m *CommandEndTxnResponse) String() string { return proto.CompactTextString(m) }
-func (*CommandEndTxnResponse) ProtoMessage()    {}
-func (*CommandEndTxnResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_39529ba7ad9caeb8, []int{61}
+func (m *CommandAddPartitionToTxnResponse) Reset()         { *m = CommandAddPartitionToTxnResponse{} }
+func (m *CommandAddPartitionToTxnResponse) String() string { return proto.CompactTextString(m) }
+func (*CommandAddPartitionToTxnResponse) ProtoMessage()    {}
+func (*CommandAddPartitionToTxnResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_39529ba7ad9caeb8, []int{60}
 }
-func (m *CommandEndTxnResponse) XXX_Unmarshal(b []byte) error {
+func (m *CommandAddPartitionToTxnResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandEndTxnResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandAddPartitionToTxnResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandEndTxnResponse.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandAddPartitionToTxnResponse.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -5923,80 +5984,76 @@ func (m *CommandEndTxnResponse) XXX_Marshal(b []byte, deterministic bool) ([]byt
 		return b[:n], nil
 	}
 }
-func (m *CommandEndTxnResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandEndTxnResponse.Merge(m, src)
+func (m *CommandAddPartitionToTxnResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandAddPartitionToTxnResponse.Merge(m, src)
 }
-func (m *CommandEndTxnResponse) XXX_Size() int {
+func (m *CommandAddPartitionToTxnResponse) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandEndTxnResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandEndTxnResponse.DiscardUnknown(m)
+func (m *CommandAddPartitionToTxnResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandAddPartitionToTxnResponse.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandEndTxnResponse proto.InternalMessageInfo
+var xxx_messageInfo_CommandAddPartitionToTxnResponse proto.InternalMessageInfo
 
-const Default_CommandEndTxnResponse_TxnidLeastBits uint64 = 0
-const Default_CommandEndTxnResponse_TxnidMostBits uint64 = 0
+const Default_CommandAddPartitionToTxnResponse_TxnidLeastBits uint64 = 0
+const Default_CommandAddPartitionToTxnResponse_TxnidMostBits uint64 = 0
 
-func (m *CommandEndTxnResponse) GetRequestId() uint64 {
+func (m *CommandAddPartitionToTxnResponse) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandEndTxnResponse) GetTxnidLeastBits() uint64 {
+func (m *CommandAddPartitionToTxnResponse) GetTxnidLeastBits() uint64 {
 	if m != nil && m.TxnidLeastBits != nil {
 		return *m.TxnidLeastBits
 	}
-	return Default_CommandEndTxnResponse_TxnidLeastBits
+	return Default_CommandAddPartitionToTxnResponse_TxnidLeastBits
 }
 
-func (m *CommandEndTxnResponse) GetTxnidMostBits() uint64 {
+func (m *CommandAddPartitionToTxnResponse) GetTxnidMostBits() uint64 {
 	if m != nil && m.TxnidMostBits != nil {
 		return *m.TxnidMostBits
 	}
-	return Default_CommandEndTxnResponse_TxnidMostBits
+	return Default_CommandAddPartitionToTxnResponse_TxnidMostBits
 }
 
-func (m *CommandEndTxnResponse) GetError() ServerError {
+func (m *CommandAddPartitionToTxnResponse) GetError() ServerError {
 	if m != nil && m.Error != nil {
 		return *m.Error
 	}
 	return ServerError_UnknownError
 }
 
-func (m *CommandEndTxnResponse) GetMessage() string {
+func (m *CommandAddPartitionToTxnResponse) GetMessage() string {
 	if m != nil && m.Message != nil {
 		return *m.Message
 	}
 	return ""
 }
 
-type CommandEndTxnOnPartition struct {
-	RequestId                    *uint64    `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	TxnidLeastBits               *uint64    `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
-	TxnidMostBits                *uint64    `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
-	Topic                        *string    `protobuf:"bytes,4,opt,name=topic" json:"topic,omitempty"`
-	TxnAction                    *TxnAction `protobuf:"varint,5,opt,name=txn_action,json=txnAction,enum=pulsar.proto.TxnAction" json:"txn_action,omitempty"`
-	TxnidLeastBitsOfLowWatermark *uint64    `protobuf:"varint,6,opt,name=txnid_least_bits_of_low_watermark,json=txnidLeastBitsOfLowWatermark" json:"txnid_least_bits_of_low_watermark,omitempty"`
-	XXX_NoUnkeyedLiteral         struct{}   `json:"-"`
-	XXX_unrecognized             []byte     `json:"-"`
-	XXX_sizecache                int32      `json:"-"`
+type Subscription struct {
+	Topic                *string  `protobuf:"bytes,1,req,name=topic" json:"topic,omitempty"`
+	Subscription         *string  `protobuf:"bytes,2,req,name=subscription" json:"subscription,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *CommandEndTxnOnPartition) Reset()         { *m = CommandEndTxnOnPartition{} }
-func (m *CommandEndTxnOnPartition) String() string { return proto.CompactTextString(m) }
-func (*CommandEndTxnOnPartition) ProtoMessage()    {}
-func (*CommandEndTxnOnPartition) Descriptor() ([]byte, []int) {
-	return fileDescriptor_39529ba7ad9caeb8, []int{62}
+func (m *Subscription) Reset()         { *m = Subscription{} }
+func (m *Subscription) String() string { return proto.CompactTextString(m) }
+func (*Subscription) ProtoMessage()    {}
+func (*Subscription) Descriptor() ([]byte, []int) {
+	return fileDescriptor_39529ba7ad9caeb8, []int{61}
 }
-func (m *CommandEndTxnOnPartition) XXX_Unmarshal(b []byte) error {
+func (m *Subscription) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandEndTxnOnPartition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *Subscription) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandEndTxnOnPartition.Marshal(b, m, deterministic)
+		return xxx_messageInfo_Subscription.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -6006,86 +6063,54 @@ func (m *CommandEndTxnOnPartition) XXX_Marshal(b []byte, deterministic bool) ([]
 		return b[:n], nil
 	}
 }
-func (m *CommandEndTxnOnPartition) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandEndTxnOnPartition.Merge(m, src)
+func (m *Subscription) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Subscription.Merge(m, src)
 }
-func (m *CommandEndTxnOnPartition) XXX_Size() int {
+func (m *Subscription) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandEndTxnOnPartition) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandEndTxnOnPartition.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_CommandEndTxnOnPartition proto.InternalMessageInfo
-
-const Default_CommandEndTxnOnPartition_TxnidLeastBits uint64 = 0
-const Default_CommandEndTxnOnPartition_TxnidMostBits uint64 = 0
-
-func (m *CommandEndTxnOnPartition) GetRequestId() uint64 {
-	if m != nil && m.RequestId != nil {
-		return *m.RequestId
-	}
-	return 0
-}
-
-func (m *CommandEndTxnOnPartition) GetTxnidLeastBits() uint64 {
-	if m != nil && m.TxnidLeastBits != nil {
-		return *m.TxnidLeastBits
-	}
-	return Default_CommandEndTxnOnPartition_TxnidLeastBits
+func (m *Subscription) XXX_DiscardUnknown() {
+	xxx_messageInfo_Subscription.DiscardUnknown(m)
 }
 
-func (m *CommandEndTxnOnPartition) GetTxnidMostBits() uint64 {
-	if m != nil && m.TxnidMostBits != nil {
-		return *m.TxnidMostBits
-	}
-	return Default_CommandEndTxnOnPartition_TxnidMostBits
-}
+var xxx_messageInfo_Subscription proto.InternalMessageInfo
 
-func (m *CommandEndTxnOnPartition) GetTopic() string {
+func (m *Subscription) GetTopic() string {
 	if m != nil && m.Topic != nil {
 		return *m.Topic
 	}
 	return ""
 }
 
-func (m *CommandEndTxnOnPartition) GetTxnAction() TxnAction {
-	if m != nil && m.TxnAction != nil {
-		return *m.TxnAction
-	}
-	return TxnAction_COMMIT
-}
-
-func (m *CommandEndTxnOnPartition) GetTxnidLeastBitsOfLowWatermark() uint64 {
-	if m != nil && m.TxnidLeastBitsOfLowWatermark != nil {
-		return *m.TxnidLeastBitsOfLowWatermark
+func (m *Subscription) GetSubscription() string {
+	if m != nil && m.Subscription != nil {
+		return *m.Subscription
 	}
-	return 0
+	return ""
 }
 
-type CommandEndTxnOnPartitionResponse struct {
-	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	TxnidLeastBits       *uint64      `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
-	TxnidMostBits        *uint64      `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
-	Error                *ServerError `protobuf:"varint,4,opt,name=error,enum=pulsar.proto.ServerError" json:"error,omitempty"`
-	Message              *string      `protobuf:"bytes,5,opt,name=message" json:"message,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
+type CommandAddSubscriptionToTxn struct {
+	RequestId            *uint64         `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	TxnidLeastBits       *uint64         `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
+	TxnidMostBits        *uint64         `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
+	Subscription         []*Subscription `protobuf:"bytes,4,rep,name=subscription" json:"subscription,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
+	XXX_unrecognized     []byte          `json:"-"`
+	XXX_sizecache        int32           `json:"-"`
 }
 
-func (m *CommandEndTxnOnPartitionResponse) Reset()         { *m = CommandEndTxnOnPartitionResponse{} }
-func (m *CommandEndTxnOnPartitionResponse) String() string { return proto.CompactTextString(m) }
-func (*CommandEndTxnOnPartitionResponse) ProtoMessage()    {}
-func (*CommandEndTxnOnPartitionResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_39529ba7ad9caeb8, []int{63}
+func (m *CommandAddSubscriptionToTxn) Reset()         { *m = CommandAddSubscriptionToTxn{} }
+func (m *CommandAddSubscriptionToTxn) String() string { return proto.CompactTextString(m) }
+func (*CommandAddSubscriptionToTxn) ProtoMessage()    {}
+func (*CommandAddSubscriptionToTxn) Descriptor() ([]byte, []int) {
+	return fileDescriptor_39529ba7ad9caeb8, []int{62}
 }
-func (m *CommandEndTxnOnPartitionResponse) XXX_Unmarshal(b []byte) error {
+func (m *CommandAddSubscriptionToTxn) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandEndTxnOnPartitionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandAddSubscriptionToTxn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandEndTxnOnPartitionResponse.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandAddSubscriptionToTxn.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -6095,80 +6120,153 @@ func (m *CommandEndTxnOnPartitionResponse) XXX_Marshal(b []byte, deterministic b
 		return b[:n], nil
 	}
 }
-func (m *CommandEndTxnOnPartitionResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandEndTxnOnPartitionResponse.Merge(m, src)
+func (m *CommandAddSubscriptionToTxn) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandAddSubscriptionToTxn.Merge(m, src)
 }
-func (m *CommandEndTxnOnPartitionResponse) XXX_Size() int {
+func (m *CommandAddSubscriptionToTxn) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandEndTxnOnPartitionResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandEndTxnOnPartitionResponse.DiscardUnknown(m)
+func (m *CommandAddSubscriptionToTxn) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandAddSubscriptionToTxn.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandEndTxnOnPartitionResponse proto.InternalMessageInfo
+var xxx_messageInfo_CommandAddSubscriptionToTxn proto.InternalMessageInfo
 
-const Default_CommandEndTxnOnPartitionResponse_TxnidLeastBits uint64 = 0
-const Default_CommandEndTxnOnPartitionResponse_TxnidMostBits uint64 = 0
+const Default_CommandAddSubscriptionToTxn_TxnidLeastBits uint64 = 0
+const Default_CommandAddSubscriptionToTxn_TxnidMostBits uint64 = 0
 
-func (m *CommandEndTxnOnPartitionResponse) GetRequestId() uint64 {
+func (m *CommandAddSubscriptionToTxn) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandEndTxnOnPartitionResponse) GetTxnidLeastBits() uint64 {
+func (m *CommandAddSubscriptionToTxn) GetTxnidLeastBits() uint64 {
 	if m != nil && m.TxnidLeastBits != nil {
 		return *m.TxnidLeastBits
 	}
-	return Default_CommandEndTxnOnPartitionResponse_TxnidLeastBits
+	return Default_CommandAddSubscriptionToTxn_TxnidLeastBits
 }
 
-func (m *CommandEndTxnOnPartitionResponse) GetTxnidMostBits() uint64 {
+func (m *CommandAddSubscriptionToTxn) GetTxnidMostBits() uint64 {
 	if m != nil && m.TxnidMostBits != nil {
 		return *m.TxnidMostBits
 	}
-	return Default_CommandEndTxnOnPartitionResponse_TxnidMostBits
+	return Default_CommandAddSubscriptionToTxn_TxnidMostBits
 }
 
-func (m *CommandEndTxnOnPartitionResponse) GetError() ServerError {
+func (m *CommandAddSubscriptionToTxn) GetSubscription() []*Subscription {
+	if m != nil {
+		return m.Subscription
+	}
+	return nil
+}
+
+type CommandAddSubscriptionToTxnResponse struct {
+	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	TxnidLeastBits       *uint64      `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
+	TxnidMostBits        *uint64      `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
+	Error                *ServerError `protobuf:"varint,4,opt,name=error,enum=pulsar.proto.ServerError" json:"error,omitempty"`
+	Message              *string      `protobuf:"bytes,5,opt,name=message" json:"message,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
+	XXX_unrecognized     []byte       `json:"-"`
+	XXX_sizecache        int32        `json:"-"`
+}
+
+func (m *CommandAddSubscriptionToTxnResponse) Reset()         { *m = CommandAddSubscriptionToTxnResponse{} }
+func (m *CommandAddSubscriptionToTxnResponse) String() string { return proto.CompactTextString(m) }
+func (*CommandAddSubscriptionToTxnResponse) ProtoMessage()    {}
+func (*CommandAddSubscriptionToTxnResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_39529ba7ad9caeb8, []int{63}
+}
+func (m *CommandAddSubscriptionToTxnResponse) XXX_Unmarshal(b []byte) error {
+	return m.Unmarshal(b)
+}
+func (m *CommandAddSubscriptionToTxnResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	if deterministic {
+		return xxx_messageInfo_CommandAddSubscriptionToTxnResponse.Marshal(b, m, deterministic)
+	} else {
+		b = b[:cap(b)]
+		n, err := m.MarshalToSizedBuffer(b)
+		if err != nil {
+			return nil, err
+		}
+		return b[:n], nil
+	}
+}
+func (m *CommandAddSubscriptionToTxnResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandAddSubscriptionToTxnResponse.Merge(m, src)
+}
+func (m *CommandAddSubscriptionToTxnResponse) XXX_Size() int {
+	return m.Size()
+}
+func (m *CommandAddSubscriptionToTxnResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandAddSubscriptionToTxnResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CommandAddSubscriptionToTxnResponse proto.InternalMessageInfo
+
+const Default_CommandAddSubscriptionToTxnResponse_TxnidLeastBits uint64 = 0
+const Default_CommandAddSubscriptionToTxnResponse_TxnidMostBits uint64 = 0
+
+func (m *CommandAddSubscriptionToTxnResponse) GetRequestId() uint64 {
+	if m != nil && m.RequestId != nil {
+		return *m.RequestId
+	}
+	return 0
+}
+
+func (m *CommandAddSubscriptionToTxnResponse) GetTxnidLeastBits() uint64 {
+	if m != nil && m.TxnidLeastBits != nil {
+		return *m.TxnidLeastBits
+	}
+	return Default_CommandAddSubscriptionToTxnResponse_TxnidLeastBits
+}
+
+func (m *CommandAddSubscriptionToTxnResponse) GetTxnidMostBits() uint64 {
+	if m != nil && m.TxnidMostBits != nil {
+		return *m.TxnidMostBits
+	}
+	return Default_CommandAddSubscriptionToTxnResponse_TxnidMostBits
+}
+
+func (m *CommandAddSubscriptionToTxnResponse) GetError() ServerError {
 	if m != nil && m.Error != nil {
 		return *m.Error
 	}
 	return ServerError_UnknownError
 }
 
-func (m *CommandEndTxnOnPartitionResponse) GetMessage() string {
+func (m *CommandAddSubscriptionToTxnResponse) GetMessage() string {
 	if m != nil && m.Message != nil {
 		return *m.Message
 	}
 	return ""
 }
 
-type CommandEndTxnOnSubscription struct {
-	RequestId                    *uint64       `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
-	TxnidLeastBits               *uint64       `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
-	TxnidMostBits                *uint64       `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
-	Subscription                 *Subscription `protobuf:"bytes,4,opt,name=subscription" json:"subscription,omitempty"`
-	TxnAction                    *TxnAction    `protobuf:"varint,5,opt,name=txn_action,json=txnAction,enum=pulsar.proto.TxnAction" json:"txn_action,omitempty"`
-	TxnidLeastBitsOfLowWatermark *uint64       `protobuf:"varint,6,opt,name=txnid_least_bits_of_low_watermark,json=txnidLeastBitsOfLowWatermark" json:"txnid_least_bits_of_low_watermark,omitempty"`
-	XXX_NoUnkeyedLiteral         struct{}      `json:"-"`
-	XXX_unrecognized             []byte        `json:"-"`
-	XXX_sizecache                int32         `json:"-"`
+type CommandEndTxn struct {
+	RequestId            *uint64    `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	TxnidLeastBits       *uint64    `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
+	TxnidMostBits        *uint64    `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
+	TxnAction            *TxnAction `protobuf:"varint,4,opt,name=txn_action,json=txnAction,enum=pulsar.proto.TxnAction" json:"txn_action,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
+	XXX_unrecognized     []byte     `json:"-"`
+	XXX_sizecache        int32      `json:"-"`
 }
 
-func (m *CommandEndTxnOnSubscription) Reset()         { *m = CommandEndTxnOnSubscription{} }
-func (m *CommandEndTxnOnSubscription) String() string { return proto.CompactTextString(m) }
-func (*CommandEndTxnOnSubscription) ProtoMessage()    {}
-func (*CommandEndTxnOnSubscription) Descriptor() ([]byte, []int) {
+func (m *CommandEndTxn) Reset()         { *m = CommandEndTxn{} }
+func (m *CommandEndTxn) String() string { return proto.CompactTextString(m) }
+func (*CommandEndTxn) ProtoMessage()    {}
+func (*CommandEndTxn) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{64}
 }
-func (m *CommandEndTxnOnSubscription) XXX_Unmarshal(b []byte) error {
+func (m *CommandEndTxn) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandEndTxnOnSubscription) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandEndTxn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandEndTxnOnSubscription.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandEndTxn.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -6178,64 +6276,50 @@ func (m *CommandEndTxnOnSubscription) XXX_Marshal(b []byte, deterministic bool)
 		return b[:n], nil
 	}
 }
-func (m *CommandEndTxnOnSubscription) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandEndTxnOnSubscription.Merge(m, src)
+func (m *CommandEndTxn) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandEndTxn.Merge(m, src)
 }
-func (m *CommandEndTxnOnSubscription) XXX_Size() int {
+func (m *CommandEndTxn) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandEndTxnOnSubscription) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandEndTxnOnSubscription.DiscardUnknown(m)
+func (m *CommandEndTxn) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandEndTxn.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandEndTxnOnSubscription proto.InternalMessageInfo
+var xxx_messageInfo_CommandEndTxn proto.InternalMessageInfo
 
-const Default_CommandEndTxnOnSubscription_TxnidLeastBits uint64 = 0
-const Default_CommandEndTxnOnSubscription_TxnidMostBits uint64 = 0
+const Default_CommandEndTxn_TxnidLeastBits uint64 = 0
+const Default_CommandEndTxn_TxnidMostBits uint64 = 0
 
-func (m *CommandEndTxnOnSubscription) GetRequestId() uint64 {
+func (m *CommandEndTxn) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandEndTxnOnSubscription) GetTxnidLeastBits() uint64 {
+func (m *CommandEndTxn) GetTxnidLeastBits() uint64 {
 	if m != nil && m.TxnidLeastBits != nil {
 		return *m.TxnidLeastBits
 	}
-	return Default_CommandEndTxnOnSubscription_TxnidLeastBits
+	return Default_CommandEndTxn_TxnidLeastBits
 }
 
-func (m *CommandEndTxnOnSubscription) GetTxnidMostBits() uint64 {
+func (m *CommandEndTxn) GetTxnidMostBits() uint64 {
 	if m != nil && m.TxnidMostBits != nil {
 		return *m.TxnidMostBits
 	}
-	return Default_CommandEndTxnOnSubscription_TxnidMostBits
-}
-
-func (m *CommandEndTxnOnSubscription) GetSubscription() *Subscription {
-	if m != nil {
-		return m.Subscription
-	}
-	return nil
+	return Default_CommandEndTxn_TxnidMostBits
 }
 
-func (m *CommandEndTxnOnSubscription) GetTxnAction() TxnAction {
+func (m *CommandEndTxn) GetTxnAction() TxnAction {
 	if m != nil && m.TxnAction != nil {
 		return *m.TxnAction
 	}
 	return TxnAction_COMMIT
 }
 
-func (m *CommandEndTxnOnSubscription) GetTxnidLeastBitsOfLowWatermark() uint64 {
-	if m != nil && m.TxnidLeastBitsOfLowWatermark != nil {
-		return *m.TxnidLeastBitsOfLowWatermark
-	}
-	return 0
-}
-
-type CommandEndTxnOnSubscriptionResponse struct {
+type CommandEndTxnResponse struct {
 	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
 	TxnidLeastBits       *uint64      `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
 	TxnidMostBits        *uint64      `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
@@ -6246,18 +6330,18 @@ type CommandEndTxnOnSubscriptionResponse struct {
 	XXX_sizecache        int32        `json:"-"`
 }
 
-func (m *CommandEndTxnOnSubscriptionResponse) Reset()         { *m = CommandEndTxnOnSubscriptionResponse{} }
-func (m *CommandEndTxnOnSubscriptionResponse) String() string { return proto.CompactTextString(m) }
-func (*CommandEndTxnOnSubscriptionResponse) ProtoMessage()    {}
-func (*CommandEndTxnOnSubscriptionResponse) Descriptor() ([]byte, []int) {
+func (m *CommandEndTxnResponse) Reset()         { *m = CommandEndTxnResponse{} }
+func (m *CommandEndTxnResponse) String() string { return proto.CompactTextString(m) }
+func (*CommandEndTxnResponse) ProtoMessage()    {}
+func (*CommandEndTxnResponse) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{65}
 }
-func (m *CommandEndTxnOnSubscriptionResponse) XXX_Unmarshal(b []byte) error {
+func (m *CommandEndTxnResponse) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *CommandEndTxnOnSubscriptionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandEndTxnResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_CommandEndTxnOnSubscriptionResponse.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandEndTxnResponse.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -6267,129 +6351,80 @@ func (m *CommandEndTxnOnSubscriptionResponse) XXX_Marshal(b []byte, deterministi
 		return b[:n], nil
 	}
 }
-func (m *CommandEndTxnOnSubscriptionResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CommandEndTxnOnSubscriptionResponse.Merge(m, src)
+func (m *CommandEndTxnResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandEndTxnResponse.Merge(m, src)
 }
-func (m *CommandEndTxnOnSubscriptionResponse) XXX_Size() int {
+func (m *CommandEndTxnResponse) XXX_Size() int {
 	return m.Size()
 }
-func (m *CommandEndTxnOnSubscriptionResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_CommandEndTxnOnSubscriptionResponse.DiscardUnknown(m)
+func (m *CommandEndTxnResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandEndTxnResponse.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_CommandEndTxnOnSubscriptionResponse proto.InternalMessageInfo
+var xxx_messageInfo_CommandEndTxnResponse proto.InternalMessageInfo
 
-const Default_CommandEndTxnOnSubscriptionResponse_TxnidLeastBits uint64 = 0
-const Default_CommandEndTxnOnSubscriptionResponse_TxnidMostBits uint64 = 0
+const Default_CommandEndTxnResponse_TxnidLeastBits uint64 = 0
+const Default_CommandEndTxnResponse_TxnidMostBits uint64 = 0
 
-func (m *CommandEndTxnOnSubscriptionResponse) GetRequestId() uint64 {
+func (m *CommandEndTxnResponse) GetRequestId() uint64 {
 	if m != nil && m.RequestId != nil {
 		return *m.RequestId
 	}
 	return 0
 }
 
-func (m *CommandEndTxnOnSubscriptionResponse) GetTxnidLeastBits() uint64 {
+func (m *CommandEndTxnResponse) GetTxnidLeastBits() uint64 {
 	if m != nil && m.TxnidLeastBits != nil {
 		return *m.TxnidLeastBits
 	}
-	return Default_CommandEndTxnOnSubscriptionResponse_TxnidLeastBits
+	return Default_CommandEndTxnResponse_TxnidLeastBits
 }
 
-func (m *CommandEndTxnOnSubscriptionResponse) GetTxnidMostBits() uint64 {
+func (m *CommandEndTxnResponse) GetTxnidMostBits() uint64 {
 	if m != nil && m.TxnidMostBits != nil {
 		return *m.TxnidMostBits
 	}
-	return Default_CommandEndTxnOnSubscriptionResponse_TxnidMostBits
+	return Default_CommandEndTxnResponse_TxnidMostBits
 }
 
-func (m *CommandEndTxnOnSubscriptionResponse) GetError() ServerError {
+func (m *CommandEndTxnResponse) GetError() ServerError {
 	if m != nil && m.Error != nil {
 		return *m.Error
 	}
 	return ServerError_UnknownError
 }
 
-func (m *CommandEndTxnOnSubscriptionResponse) GetMessage() string {
+func (m *CommandEndTxnResponse) GetMessage() string {
 	if m != nil && m.Message != nil {
 		return *m.Message
 	}
 	return ""
 }
 
-type BaseCommand struct {
-	Type                            *BaseCommand_Type                        `protobuf:"varint,1,req,name=type,enum=pulsar.proto.BaseCommand_Type" json:"type,omitempty"`
-	Connect                         *CommandConnect                          `protobuf:"bytes,2,opt,name=connect" json:"connect,omitempty"`
-	Connected                       *CommandConnected                        `protobuf:"bytes,3,opt,name=connected" json:"connected,omitempty"`
-	Subscribe                       *CommandSubscribe                        `protobuf:"bytes,4,opt,name=subscribe" json:"subscribe,omitempty"`
-	Producer                        *CommandProducer                         `protobuf:"bytes,5,opt,name=producer" json:"producer,omitempty"`
-	Send                            *CommandSend                             `protobuf:"bytes,6,opt,name=send" json:"send,omitempty"`
-	SendReceipt                     *CommandSendReceipt                      `protobuf:"bytes,7,opt,name=send_receipt,json=sendReceipt" json:"send_receipt,omitempty"`
-	SendError                       *CommandSendError                        `protobuf:"bytes,8,opt,name=send_error,json=sendError" json:"send_error,omitempty"`
-	Message                         *CommandMessage                          `protobuf:"bytes,9,opt,name=message" json:"message,omitempty"`
-	Ack                             *CommandAck                              `protobuf:"bytes,10,opt,name=ack" json:"ack,omitempty"`
-	Flow                            *CommandFlow                             `protobuf:"bytes,11,opt,name=flow" json:"flow,omitempty"`
-	Unsubscribe                     *CommandUnsubscribe                      `protobuf:"bytes,12,opt,name=unsubscribe" json:"unsubscribe,omitempty"`
-	Success                         *CommandSuccess                          `protobuf:"bytes,13,opt,name=success" json:"success,omitempty"`
-	Error                           *CommandError                            `protobuf:"bytes,14,opt,name=error" json:"error,omitempty"`
-	CloseProducer                   *CommandCloseProducer                    `protobuf:"bytes,15,opt,name=close_producer,json=closeProducer" json:"close_producer,omitempty"`
-	CloseConsumer                   *CommandCloseConsumer                    `protobuf:"bytes,16,opt,name=close_consumer,json=closeConsumer" json:"close_consumer,omitempty"`
-	ProducerSuccess                 *CommandProducerSuccess                  `protobuf:"bytes,17,opt,name=producer_success,json=producerSuccess" json:"producer_success,omitempty"`
-	Ping                            *CommandPing                             `protobuf:"bytes,18,opt,name=ping" json:"ping,omitempty"`
-	Pong                            *CommandPong                             `protobuf:"bytes,19,opt,name=pong" json:"pong,omitempty"`
-	RedeliverUnacknowledgedMessages *CommandRedeliverUnacknowledgedMessages  `protobuf:"bytes,20,opt,name=redeliverUnacknowledgedMessages" json:"redeliverUnacknowledgedMessages,omitempty"`
-	PartitionMetadata               *CommandPartitionedTopicMetadata         `protobuf:"bytes,21,opt,name=partitionMetadata" json:"partitionMetadata,omitempty"`
-	PartitionMetadataResponse       *CommandPartitionedTopicMetadataResponse `protobuf:"bytes,22,opt,name=partitionMetadataResponse" json:"partitionMetadataResponse,omitempty"`
-	LookupTopic                     *CommandLookupTopic                      `protobuf:"bytes,23,opt,name=lookupTopic" json:"lookupTopic,omitempty"`
-	LookupTopicResponse             *CommandLookupTopicResponse              `protobuf:"bytes,24,opt,name=lookupTopicResponse" json:"lookupTopicResponse,omitempty"`
-	ConsumerStats                   *CommandConsumerStats                    `protobuf:"bytes,25,opt,name=consumerStats" json:"consumerStats,omitempty"`
-	ConsumerStatsResponse           *CommandConsumerStatsResponse            `protobuf:"bytes,26,opt,name=consumerStatsResponse" json:"consumerStatsResponse,omitempty"`
-	ReachedEndOfTopic               *CommandReachedEndOfTopic                `protobuf:"bytes,27,opt,name=reachedEndOfTopic" json:"reachedEndOfTopic,omitempty"`
-	Seek                            *CommandSeek                             `protobuf:"bytes,28,opt,name=seek" json:"seek,omitempty"`
-	GetLastMessageId                *CommandGetLastMessageId                 `protobuf:"bytes,29,opt,name=getLastMessageId" json:"getLastMessageId,omitempty"`
-	GetLastMessageIdResponse        *CommandGetLastMessageIdResponse         `protobuf:"bytes,30,opt,name=getLastMessageIdResponse" json:"getLastMessageIdResponse,omitempty"`
-	ActiveConsumerChange            *CommandActiveConsumerChange             `protobuf:"bytes,31,opt,name=active_consumer_change,json=activeConsumerChange" json:"active_consumer_change,omitempty"`
-	GetTopicsOfNamespace            *CommandGetTopicsOfNamespace             `protobuf:"bytes,32,opt,name=getTopicsOfNamespace" json:"getTopicsOfNamespace,omitempty"`
-	GetTopicsOfNamespaceResponse    *CommandGetTopicsOfNamespaceResponse     `protobuf:"bytes,33,opt,name=getTopicsOfNamespaceResponse" json:"getTopicsOfNamespaceResponse,omitempty"`
-	GetSchema                       *CommandGetSchema                        `protobuf:"bytes,34,opt,name=getSchema" json:"getSchema,omitempty"`
-	GetSchemaResponse               *CommandGetSchemaResponse                `protobuf:"bytes,35,opt,name=getSchemaResponse" json:"getSchemaResponse,omitempty"`
-	AuthChallenge                   *CommandAuthChallenge                    `protobuf:"bytes,36,opt,name=authChallenge" json:"authChallenge,omitempty"`
-	AuthResponse                    *CommandAuthResponse                     `protobuf:"bytes,37,opt,name=authResponse" json:"authResponse,omitempty"`
-	AckResponse                     *CommandAckResponse                      `protobuf:"bytes,38,opt,name=ackResponse" json:"ackResponse,omitempty"`
-	GetOrCreateSchema               *CommandGetOrCreateSchema                `protobuf:"bytes,39,opt,name=getOrCreateSchema" json:"getOrCreateSchema,omitempty"`
-	GetOrCreateSchemaResponse       *CommandGetOrCreateSchemaResponse        `protobuf:"bytes,40,opt,name=getOrCreateSchemaResponse" json:"getOrCreateSchemaResponse,omitempty"`
-	// transaction related
-	NewTxn                       *CommandNewTxn                       `protobuf:"bytes,50,opt,name=newTxn" json:"newTxn,omitempty"`
-	NewTxnResponse               *CommandNewTxnResponse               `protobuf:"bytes,51,opt,name=newTxnResponse" json:"newTxnResponse,omitempty"`
-	AddPartitionToTxn            *CommandAddPartitionToTxn            `protobuf:"bytes,52,opt,name=addPartitionToTxn" json:"addPartitionToTxn,omitempty"`
-	AddPartitionToTxnResponse    *CommandAddPartitionToTxnResponse    `protobuf:"bytes,53,opt,name=addPartitionToTxnResponse" json:"addPartitionToTxnResponse,omitempty"`
-	AddSubscriptionToTxn         *CommandAddSubscriptionToTxn         `protobuf:"bytes,54,opt,name=addSubscriptionToTxn" json:"addSubscriptionToTxn,omitempty"`
-	AddSubscriptionToTxnResponse *CommandAddSubscriptionToTxnResponse `protobuf:"bytes,55,opt,name=addSubscriptionToTxnResponse" json:"addSubscriptionToTxnResponse,omitempty"`
-	EndTxn                       *CommandEndTxn                       `protobuf:"bytes,56,opt,name=endTxn" json:"endTxn,omitempty"`
-	EndTxnResponse               *CommandEndTxnResponse               `protobuf:"bytes,57,opt,name=endTxnResponse" json:"endTxnResponse,omitempty"`
-	EndTxnOnPartition            *CommandEndTxnOnPartition            `protobuf:"bytes,58,opt,name=endTxnOnPartition" json:"endTxnOnPartition,omitempty"`
-	EndTxnOnPartitionResponse    *CommandEndTxnOnPartitionResponse    `protobuf:"bytes,59,opt,name=endTxnOnPartitionResponse" json:"endTxnOnPartitionResponse,omitempty"`
-	EndTxnOnSubscription         *CommandEndTxnOnSubscription         `protobuf:"bytes,60,opt,name=endTxnOnSubscription" json:"endTxnOnSubscription,omitempty"`
-	EndTxnOnSubscriptionResponse *CommandEndTxnOnSubscriptionResponse `protobuf:"bytes,61,opt,name=endTxnOnSubscriptionResponse" json:"endTxnOnSubscriptionResponse,omitempty"`
-	TcClientConnectRequest       *CommandTcClientConnectRequest       `protobuf:"bytes,62,opt,name=tcClientConnectRequest" json:"tcClientConnectRequest,omitempty"`
-	TcClientConnectResponse      *CommandTcClientConnectResponse      `protobuf:"bytes,63,opt,name=tcClientConnectResponse" json:"tcClientConnectResponse,omitempty"`
-	XXX_NoUnkeyedLiteral         struct{}                             `json:"-"`
-	XXX_unrecognized             []byte                               `json:"-"`
-	XXX_sizecache                int32                                `json:"-"`
+type CommandEndTxnOnPartition struct {
+	RequestId                    *uint64    `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	TxnidLeastBits               *uint64    `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
+	TxnidMostBits                *uint64    `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
+	Topic                        *string    `protobuf:"bytes,4,opt,name=topic" json:"topic,omitempty"`
+	TxnAction                    *TxnAction `protobuf:"varint,5,opt,name=txn_action,json=txnAction,enum=pulsar.proto.TxnAction" json:"txn_action,omitempty"`
+	TxnidLeastBitsOfLowWatermark *uint64    `protobuf:"varint,6,opt,name=txnid_least_bits_of_low_watermark,json=txnidLeastBitsOfLowWatermark" json:"txnid_least_bits_of_low_watermark,omitempty"`
+	XXX_NoUnkeyedLiteral         struct{}   `json:"-"`
+	XXX_unrecognized             []byte     `json:"-"`
+	XXX_sizecache                int32      `json:"-"`
 }
 
-func (m *BaseCommand) Reset()         { *m = BaseCommand{} }
-func (m *BaseCommand) String() string { return proto.CompactTextString(m) }
-func (*BaseCommand) ProtoMessage()    {}
-func (*BaseCommand) Descriptor() ([]byte, []int) {
+func (m *CommandEndTxnOnPartition) Reset()         { *m = CommandEndTxnOnPartition{} }
+func (m *CommandEndTxnOnPartition) String() string { return proto.CompactTextString(m) }
+func (*CommandEndTxnOnPartition) ProtoMessage()    {}
+func (*CommandEndTxnOnPartition) Descriptor() ([]byte, []int) {
 	return fileDescriptor_39529ba7ad9caeb8, []int{66}
 }
-func (m *BaseCommand) XXX_Unmarshal(b []byte) error {
+func (m *CommandEndTxnOnPartition) XXX_Unmarshal(b []byte) error {
 	return m.Unmarshal(b)
 }
-func (m *BaseCommand) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *CommandEndTxnOnPartition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
 	if deterministic {
-		return xxx_messageInfo_BaseCommand.Marshal(b, m, deterministic)
+		return xxx_messageInfo_CommandEndTxnOnPartition.Marshal(b, m, deterministic)
 	} else {
 		b = b[:cap(b)]
 		n, err := m.MarshalToSizedBuffer(b)
@@ -6399,301 +6434,698 @@ func (m *BaseCommand) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
 		return b[:n], nil
 	}
 }
-func (m *BaseCommand) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_BaseCommand.Merge(m, src)
+func (m *CommandEndTxnOnPartition) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandEndTxnOnPartition.Merge(m, src)
 }
-func (m *BaseCommand) XXX_Size() int {
+func (m *CommandEndTxnOnPartition) XXX_Size() int {
 	return m.Size()
 }
-func (m *BaseCommand) XXX_DiscardUnknown() {
-	xxx_messageInfo_BaseCommand.DiscardUnknown(m)
+func (m *CommandEndTxnOnPartition) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandEndTxnOnPartition.DiscardUnknown(m)
 }
 
-var xxx_messageInfo_BaseCommand proto.InternalMessageInfo
+var xxx_messageInfo_CommandEndTxnOnPartition proto.InternalMessageInfo
 
-func (m *BaseCommand) GetType() BaseCommand_Type {
-	if m != nil && m.Type != nil {
-		return *m.Type
+const Default_CommandEndTxnOnPartition_TxnidLeastBits uint64 = 0
+const Default_CommandEndTxnOnPartition_TxnidMostBits uint64 = 0
+
+func (m *CommandEndTxnOnPartition) GetRequestId() uint64 {
+	if m != nil && m.RequestId != nil {
+		return *m.RequestId
 	}
-	return BaseCommand_CONNECT
+	return 0
 }
 
-func (m *BaseCommand) GetConnect() *CommandConnect {
-	if m != nil {
-		return m.Connect
+func (m *CommandEndTxnOnPartition) GetTxnidLeastBits() uint64 {
+	if m != nil && m.TxnidLeastBits != nil {
+		return *m.TxnidLeastBits
 	}
-	return nil
+	return Default_CommandEndTxnOnPartition_TxnidLeastBits
 }
 
-func (m *BaseCommand) GetConnected() *CommandConnected {
-	if m != nil {
-		return m.Connected
+func (m *CommandEndTxnOnPartition) GetTxnidMostBits() uint64 {
+	if m != nil && m.TxnidMostBits != nil {
+		return *m.TxnidMostBits
 	}
-	return nil
+	return Default_CommandEndTxnOnPartition_TxnidMostBits
 }
 
-func (m *BaseCommand) GetSubscribe() *CommandSubscribe {
-	if m != nil {
-		return m.Subscribe
+func (m *CommandEndTxnOnPartition) GetTopic() string {
+	if m != nil && m.Topic != nil {
+		return *m.Topic
 	}
-	return nil
+	return ""
 }
 
-func (m *BaseCommand) GetProducer() *CommandProducer {
-	if m != nil {
-		return m.Producer
+func (m *CommandEndTxnOnPartition) GetTxnAction() TxnAction {
+	if m != nil && m.TxnAction != nil {
+		return *m.TxnAction
 	}
-	return nil
+	return TxnAction_COMMIT
 }
 
-func (m *BaseCommand) GetSend() *CommandSend {
-	if m != nil {
-		return m.Send
+func (m *CommandEndTxnOnPartition) GetTxnidLeastBitsOfLowWatermark() uint64 {
+	if m != nil && m.TxnidLeastBitsOfLowWatermark != nil {
+		return *m.TxnidLeastBitsOfLowWatermark
 	}
-	return nil
+	return 0
 }
 
-func (m *BaseCommand) GetSendReceipt() *CommandSendReceipt {
-	if m != nil {
-		return m.SendReceipt
-	}
-	return nil
+type CommandEndTxnOnPartitionResponse struct {
+	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	TxnidLeastBits       *uint64      `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
+	TxnidMostBits        *uint64      `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
+	Error                *ServerError `protobuf:"varint,4,opt,name=error,enum=pulsar.proto.ServerError" json:"error,omitempty"`
+	Message              *string      `protobuf:"bytes,5,opt,name=message" json:"message,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
+	XXX_unrecognized     []byte       `json:"-"`
+	XXX_sizecache        int32        `json:"-"`
 }
 
-func (m *BaseCommand) GetSendError() *CommandSendError {
-	if m != nil {
-		return m.SendError
+func (m *CommandEndTxnOnPartitionResponse) Reset()         { *m = CommandEndTxnOnPartitionResponse{} }
+func (m *CommandEndTxnOnPartitionResponse) String() string { return proto.CompactTextString(m) }
+func (*CommandEndTxnOnPartitionResponse) ProtoMessage()    {}
+func (*CommandEndTxnOnPartitionResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_39529ba7ad9caeb8, []int{67}
+}
+func (m *CommandEndTxnOnPartitionResponse) XXX_Unmarshal(b []byte) error {
+	return m.Unmarshal(b)
+}
+func (m *CommandEndTxnOnPartitionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	if deterministic {
+		return xxx_messageInfo_CommandEndTxnOnPartitionResponse.Marshal(b, m, deterministic)
+	} else {
+		b = b[:cap(b)]
+		n, err := m.MarshalToSizedBuffer(b)
+		if err != nil {
+			return nil, err
+		}
+		return b[:n], nil
 	}
-	return nil
+}
+func (m *CommandEndTxnOnPartitionResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandEndTxnOnPartitionResponse.Merge(m, src)
+}
+func (m *CommandEndTxnOnPartitionResponse) XXX_Size() int {
+	return m.Size()
+}
+func (m *CommandEndTxnOnPartitionResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandEndTxnOnPartitionResponse.DiscardUnknown(m)
 }
 
-func (m *BaseCommand) GetMessage() *CommandMessage {
-	if m != nil {
-		return m.Message
+var xxx_messageInfo_CommandEndTxnOnPartitionResponse proto.InternalMessageInfo
+
+const Default_CommandEndTxnOnPartitionResponse_TxnidLeastBits uint64 = 0
+const Default_CommandEndTxnOnPartitionResponse_TxnidMostBits uint64 = 0
+
+func (m *CommandEndTxnOnPartitionResponse) GetRequestId() uint64 {
+	if m != nil && m.RequestId != nil {
+		return *m.RequestId
 	}
-	return nil
+	return 0
 }
 
-func (m *BaseCommand) GetAck() *CommandAck {
-	if m != nil {
-		return m.Ack
+func (m *CommandEndTxnOnPartitionResponse) GetTxnidLeastBits() uint64 {
+	if m != nil && m.TxnidLeastBits != nil {
+		return *m.TxnidLeastBits
 	}
-	return nil
+	return Default_CommandEndTxnOnPartitionResponse_TxnidLeastBits
 }
 
-func (m *BaseCommand) GetFlow() *CommandFlow {
-	if m != nil {
-		return m.Flow
+func (m *CommandEndTxnOnPartitionResponse) GetTxnidMostBits() uint64 {
+	if m != nil && m.TxnidMostBits != nil {
+		return *m.TxnidMostBits
 	}
-	return nil
+	return Default_CommandEndTxnOnPartitionResponse_TxnidMostBits
 }
 
-func (m *BaseCommand) GetUnsubscribe() *CommandUnsubscribe {
-	if m != nil {
-		return m.Unsubscribe
+func (m *CommandEndTxnOnPartitionResponse) GetError() ServerError {
+	if m != nil && m.Error != nil {
+		return *m.Error
 	}
-	return nil
+	return ServerError_UnknownError
 }
 
-func (m *BaseCommand) GetSuccess() *CommandSuccess {
-	if m != nil {
-		return m.Success
+func (m *CommandEndTxnOnPartitionResponse) GetMessage() string {
+	if m != nil && m.Message != nil {
+		return *m.Message
 	}
-	return nil
+	return ""
 }
 
-func (m *BaseCommand) GetError() *CommandError {
-	if m != nil {
-		return m.Error
+type CommandEndTxnOnSubscription struct {
+	RequestId                    *uint64       `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	TxnidLeastBits               *uint64       `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
+	TxnidMostBits                *uint64       `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
+	Subscription                 *Subscription `protobuf:"bytes,4,opt,name=subscription" json:"subscription,omitempty"`
+	TxnAction                    *TxnAction    `protobuf:"varint,5,opt,name=txn_action,json=txnAction,enum=pulsar.proto.TxnAction" json:"txn_action,omitempty"`
+	TxnidLeastBitsOfLowWatermark *uint64       `protobuf:"varint,6,opt,name=txnid_least_bits_of_low_watermark,json=txnidLeastBitsOfLowWatermark" json:"txnid_least_bits_of_low_watermark,omitempty"`
+	XXX_NoUnkeyedLiteral         struct{}      `json:"-"`
+	XXX_unrecognized             []byte        `json:"-"`
+	XXX_sizecache                int32         `json:"-"`
+}
+
+func (m *CommandEndTxnOnSubscription) Reset()         { *m = CommandEndTxnOnSubscription{} }
+func (m *CommandEndTxnOnSubscription) String() string { return proto.CompactTextString(m) }
+func (*CommandEndTxnOnSubscription) ProtoMessage()    {}
+func (*CommandEndTxnOnSubscription) Descriptor() ([]byte, []int) {
+	return fileDescriptor_39529ba7ad9caeb8, []int{68}
+}
+func (m *CommandEndTxnOnSubscription) XXX_Unmarshal(b []byte) error {
+	return m.Unmarshal(b)
+}
+func (m *CommandEndTxnOnSubscription) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	if deterministic {
+		return xxx_messageInfo_CommandEndTxnOnSubscription.Marshal(b, m, deterministic)
+	} else {
+		b = b[:cap(b)]
+		n, err := m.MarshalToSizedBuffer(b)
+		if err != nil {
+			return nil, err
+		}
+		return b[:n], nil
 	}
-	return nil
+}
+func (m *CommandEndTxnOnSubscription) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandEndTxnOnSubscription.Merge(m, src)
+}
+func (m *CommandEndTxnOnSubscription) XXX_Size() int {
+	return m.Size()
+}
+func (m *CommandEndTxnOnSubscription) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandEndTxnOnSubscription.DiscardUnknown(m)
 }
 
-func (m *BaseCommand) GetCloseProducer() *CommandCloseProducer {
-	if m != nil {
-		return m.CloseProducer
+var xxx_messageInfo_CommandEndTxnOnSubscription proto.InternalMessageInfo
+
+const Default_CommandEndTxnOnSubscription_TxnidLeastBits uint64 = 0
+const Default_CommandEndTxnOnSubscription_TxnidMostBits uint64 = 0
+
+func (m *CommandEndTxnOnSubscription) GetRequestId() uint64 {
+	if m != nil && m.RequestId != nil {
+		return *m.RequestId
 	}
-	return nil
+	return 0
 }
 
-func (m *BaseCommand) GetCloseConsumer() *CommandCloseConsumer {
-	if m != nil {
-		return m.CloseConsumer
+func (m *CommandEndTxnOnSubscription) GetTxnidLeastBits() uint64 {
+	if m != nil && m.TxnidLeastBits != nil {
+		return *m.TxnidLeastBits
 	}
-	return nil
+	return Default_CommandEndTxnOnSubscription_TxnidLeastBits
 }
 
-func (m *BaseCommand) GetProducerSuccess() *CommandProducerSuccess {
-	if m != nil {
-		return m.ProducerSuccess
+func (m *CommandEndTxnOnSubscription) GetTxnidMostBits() uint64 {
+	if m != nil && m.TxnidMostBits != nil {
+		return *m.TxnidMostBits
 	}
-	return nil
+	return Default_CommandEndTxnOnSubscription_TxnidMostBits
 }
 
-func (m *BaseCommand) GetPing() *CommandPing {
+func (m *CommandEndTxnOnSubscription) GetSubscription() *Subscription {
 	if m != nil {
-		return m.Ping
+		return m.Subscription
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetPong() *CommandPong {
-	if m != nil {
-		return m.Pong
+func (m *CommandEndTxnOnSubscription) GetTxnAction() TxnAction {
+	if m != nil && m.TxnAction != nil {
+		return *m.TxnAction
 	}
-	return nil
+	return TxnAction_COMMIT
 }
 
-func (m *BaseCommand) GetRedeliverUnacknowledgedMessages() *CommandRedeliverUnacknowledgedMessages {
-	if m != nil {
-		return m.RedeliverUnacknowledgedMessages
+func (m *CommandEndTxnOnSubscription) GetTxnidLeastBitsOfLowWatermark() uint64 {
+	if m != nil && m.TxnidLeastBitsOfLowWatermark != nil {
+		return *m.TxnidLeastBitsOfLowWatermark
 	}
-	return nil
+	return 0
 }
 
-func (m *BaseCommand) GetPartitionMetadata() *CommandPartitionedTopicMetadata {
-	if m != nil {
-		return m.PartitionMetadata
-	}
-	return nil
+type CommandEndTxnOnSubscriptionResponse struct {
+	RequestId            *uint64      `protobuf:"varint,1,req,name=request_id,json=requestId" json:"request_id,omitempty"`
+	TxnidLeastBits       *uint64      `protobuf:"varint,2,opt,name=txnid_least_bits,json=txnidLeastBits,def=0" json:"txnid_least_bits,omitempty"`
+	TxnidMostBits        *uint64      `protobuf:"varint,3,opt,name=txnid_most_bits,json=txnidMostBits,def=0" json:"txnid_most_bits,omitempty"`
+	Error                *ServerError `protobuf:"varint,4,opt,name=error,enum=pulsar.proto.ServerError" json:"error,omitempty"`
+	Message              *string      `protobuf:"bytes,5,opt,name=message" json:"message,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
+	XXX_unrecognized     []byte       `json:"-"`
+	XXX_sizecache        int32        `json:"-"`
 }
 
-func (m *BaseCommand) GetPartitionMetadataResponse() *CommandPartitionedTopicMetadataResponse {
-	if m != nil {
-		return m.PartitionMetadataResponse
+func (m *CommandEndTxnOnSubscriptionResponse) Reset()         { *m = CommandEndTxnOnSubscriptionResponse{} }
+func (m *CommandEndTxnOnSubscriptionResponse) String() string { return proto.CompactTextString(m) }
+func (*CommandEndTxnOnSubscriptionResponse) ProtoMessage()    {}
+func (*CommandEndTxnOnSubscriptionResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_39529ba7ad9caeb8, []int{69}
+}
+func (m *CommandEndTxnOnSubscriptionResponse) XXX_Unmarshal(b []byte) error {
+	return m.Unmarshal(b)
+}
+func (m *CommandEndTxnOnSubscriptionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	if deterministic {
+		return xxx_messageInfo_CommandEndTxnOnSubscriptionResponse.Marshal(b, m, deterministic)
+	} else {
+		b = b[:cap(b)]
+		n, err := m.MarshalToSizedBuffer(b)
+		if err != nil {
+			return nil, err
+		}
+		return b[:n], nil
 	}
-	return nil
+}
+func (m *CommandEndTxnOnSubscriptionResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CommandEndTxnOnSubscriptionResponse.Merge(m, src)
+}
+func (m *CommandEndTxnOnSubscriptionResponse) XXX_Size() int {
+	return m.Size()
+}
+func (m *CommandEndTxnOnSubscriptionResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_CommandEndTxnOnSubscriptionResponse.DiscardUnknown(m)
 }
 
-func (m *BaseCommand) GetLookupTopic() *CommandLookupTopic {
-	if m != nil {
-		return m.LookupTopic
+var xxx_messageInfo_CommandEndTxnOnSubscriptionResponse proto.InternalMessageInfo
+
+const Default_CommandEndTxnOnSubscriptionResponse_TxnidLeastBits uint64 = 0
+const Default_CommandEndTxnOnSubscriptionResponse_TxnidMostBits uint64 = 0
+
+func (m *CommandEndTxnOnSubscriptionResponse) GetRequestId() uint64 {
+	if m != nil && m.RequestId != nil {
+		return *m.RequestId
 	}
-	return nil
+	return 0
 }
 
-func (m *BaseCommand) GetLookupTopicResponse() *CommandLookupTopicResponse {
-	if m != nil {
-		return m.LookupTopicResponse
+func (m *CommandEndTxnOnSubscriptionResponse) GetTxnidLeastBits() uint64 {
+	if m != nil && m.TxnidLeastBits != nil {
+		return *m.TxnidLeastBits
 	}
-	return nil
+	return Default_CommandEndTxnOnSubscriptionResponse_TxnidLeastBits
 }
 
-func (m *BaseCommand) GetConsumerStats() *CommandConsumerStats {
-	if m != nil {
-		return m.ConsumerStats
+func (m *CommandEndTxnOnSubscriptionResponse) GetTxnidMostBits() uint64 {
+	if m != nil && m.TxnidMostBits != nil {
+		return *m.TxnidMostBits
 	}
-	return nil
+	return Default_CommandEndTxnOnSubscriptionResponse_TxnidMostBits
 }
 
-func (m *BaseCommand) GetConsumerStatsResponse() *CommandConsumerStatsResponse {
-	if m != nil {
-		return m.ConsumerStatsResponse
+func (m *CommandEndTxnOnSubscriptionResponse) GetError() ServerError {
+	if m != nil && m.Error != nil {
+		return *m.Error
 	}
-	return nil
+	return ServerError_UnknownError
 }
 
-func (m *BaseCommand) GetReachedEndOfTopic() *CommandReachedEndOfTopic {
-	if m != nil {
-		return m.ReachedEndOfTopic
+func (m *CommandEndTxnOnSubscriptionResponse) GetMessage() string {
+	if m != nil && m.Message != nil {
+		return *m.Message
 	}
-	return nil
+	return ""
 }
 
-func (m *BaseCommand) GetSeek() *CommandSeek {
-	if m != nil {
-		return m.Seek
+type BaseCommand struct {
+	Type                            *BaseCommand_Type                        `protobuf:"varint,1,req,name=type,enum=pulsar.proto.BaseCommand_Type" json:"type,omitempty"`
+	Connect                         *CommandConnect                          `protobuf:"bytes,2,opt,name=connect" json:"connect,omitempty"`
+	Connected                       *CommandConnected                        `protobuf:"bytes,3,opt,name=connected" json:"connected,omitempty"`
+	Subscribe                       *CommandSubscribe                        `protobuf:"bytes,4,opt,name=subscribe" json:"subscribe,omitempty"`
+	Producer                        *CommandProducer                         `protobuf:"bytes,5,opt,name=producer" json:"producer,omitempty"`
+	Send                            *CommandSend                             `protobuf:"bytes,6,opt,name=send" json:"send,omitempty"`
+	SendReceipt                     *CommandSendReceipt                      `protobuf:"bytes,7,opt,name=send_receipt,json=sendReceipt" json:"send_receipt,omitempty"`
+	SendError                       *CommandSendError                        `protobuf:"bytes,8,opt,name=send_error,json=sendError" json:"send_error,omitempty"`
+	Message                         *CommandMessage                          `protobuf:"bytes,9,opt,name=message" json:"message,omitempty"`
+	Ack                             *CommandAck                              `protobuf:"bytes,10,opt,name=ack" json:"ack,omitempty"`
+	Flow                            *CommandFlow                             `protobuf:"bytes,11,opt,name=flow" json:"flow,omitempty"`
+	Unsubscribe                     *CommandUnsubscribe                      `protobuf:"bytes,12,opt,name=unsubscribe" json:"unsubscribe,omitempty"`
+	Success                         *CommandSuccess                          `protobuf:"bytes,13,opt,name=success" json:"success,omitempty"`
+	Error                           *CommandError                            `protobuf:"bytes,14,opt,name=error" json:"error,omitempty"`
+	CloseProducer                   *CommandCloseProducer                    `protobuf:"bytes,15,opt,name=close_producer,json=closeProducer" json:"close_producer,omitempty"`
+	CloseConsumer                   *CommandCloseConsumer                    `protobuf:"bytes,16,opt,name=close_consumer,json=closeConsumer" json:"close_consumer,omitempty"`
+	ProducerSuccess                 *CommandProducerSuccess                  `protobuf:"bytes,17,opt,name=producer_success,json=producerSuccess" json:"producer_success,omitempty"`
+	Ping                            *CommandPing                             `protobuf:"bytes,18,opt,name=ping" json:"ping,omitempty"`
+	Pong                            *CommandPong                             `protobuf:"bytes,19,opt,name=pong" json:"pong,omitempty"`
+	RedeliverUnacknowledgedMessages *CommandRedeliverUnacknowledgedMessages  `protobuf:"bytes,20,opt,name=redeliverUnacknowledgedMessages" json:"redeliverUnacknowledgedMessages,omitempty"`
+	PartitionMetadata               *CommandPartitionedTopicMetadata         `protobuf:"bytes,21,opt,name=partitionMetadata" json:"partitionMetadata,omitempty"`
+	PartitionMetadataResponse       *CommandPartitionedTopicMetadataResponse `protobuf:"bytes,22,opt,name=partitionMetadataResponse" json:"partitionMetadataResponse,omitempty"`
+	LookupTopic                     *CommandLookupTopic                      `protobuf:"bytes,23,opt,name=lookupTopic" json:"lookupTopic,omitempty"`
+	LookupTopicResponse             *CommandLookupTopicResponse              `protobuf:"bytes,24,opt,name=lookupTopicResponse" json:"lookupTopicResponse,omitempty"`
+	ConsumerStats                   *CommandConsumerStats                    `protobuf:"bytes,25,opt,name=consumerStats" json:"consumerStats,omitempty"`
+	ConsumerStatsResponse           *CommandConsumerStatsResponse            `protobuf:"bytes,26,opt,name=consumerStatsResponse" json:"consumerStatsResponse,omitempty"`
+	ReachedEndOfTopic               *CommandReachedEndOfTopic                `protobuf:"bytes,27,opt,name=reachedEndOfTopic" json:"reachedEndOfTopic,omitempty"`
+	Seek                            *CommandSeek                             `protobuf:"bytes,28,opt,name=seek" json:"seek,omitempty"`
+	GetLastMessageId                *CommandGetLastMessageId                 `protobuf:"bytes,29,opt,name=getLastMessageId" json:"getLastMessageId,omitempty"`
+	GetLastMessageIdResponse        *CommandGetLastMessageIdResponse         `protobuf:"bytes,30,opt,name=getLastMessageIdResponse" json:"getLastMessageIdResponse,omitempty"`
+	ActiveConsumerChange            *CommandActiveConsumerChange             `protobuf:"bytes,31,opt,name=active_consumer_change,json=activeConsumerChange" json:"active_consumer_change,omitempty"`
+	GetTopicsOfNamespace            *CommandGetTopicsOfNamespace             `protobuf:"bytes,32,opt,name=getTopicsOfNamespace" json:"getTopicsOfNamespace,omitempty"`
+	GetTopicsOfNamespaceResponse    *CommandGetTopicsOfNamespaceResponse     `protobuf:"bytes,33,opt,name=getTopicsOfNamespaceResponse" json:"getTopicsOfNamespaceResponse,omitempty"`
+	GetSchema                       *CommandGetSchema                        `protobuf:"bytes,34,opt,name=getSchema" json:"getSchema,omitempty"`
+	GetSchemaResponse               *CommandGetSchemaResponse                `protobuf:"bytes,35,opt,name=getSchemaResponse" json:"getSchemaResponse,omitempty"`
+	AuthChallenge                   *CommandAuthChallenge                    `protobuf:"bytes,36,opt,name=authChallenge" json:"authChallenge,omitempty"`
+	AuthResponse                    *CommandAuthResponse                     `protobuf:"bytes,37,opt,name=authResponse" json:"authResponse,omitempty"`
+	AckResponse                     *CommandAckResponse                      `protobuf:"bytes,38,opt,name=ackResponse" json:"ackResponse,omitempty"`
+	GetOrCreateSchema               *CommandGetOrCreateSchema                `protobuf:"bytes,39,opt,name=getOrCreateSchema" json:"getOrCreateSchema,omitempty"`
+	GetOrCreateSchemaResponse       *CommandGetOrCreateSchemaResponse        `protobuf:"bytes,40,opt,name=getOrCreateSchemaResponse" json:"getOrCreateSchemaResponse,omitempty"`
+	// transaction related
+	NewTxn                       *CommandNewTxn                       `protobuf:"bytes,50,opt,name=newTxn" json:"newTxn,omitempty"`
+	NewTxnResponse               *CommandNewTxnResponse               `protobuf:"bytes,51,opt,name=newTxnResponse" json:"newTxnResponse,omitempty"`
+	AddPartitionToTxn            *CommandAddPartitionToTxn            `protobuf:"bytes,52,opt,name=addPartitionToTxn" json:"addPartitionToTxn,omitempty"`
+	AddPartitionToTxnResponse    *CommandAddPartitionToTxnResponse    `protobuf:"bytes,53,opt,name=addPartitionToTxnResponse" json:"addPartitionToTxnResponse,omitempty"`
+	AddSubscriptionToTxn         *CommandAddSubscriptionToTxn         `protobuf:"bytes,54,opt,name=addSubscriptionToTxn" json:"addSubscriptionToTxn,omitempty"`
+	AddSubscriptionToTxnResponse *CommandAddSubscriptionToTxnResponse `protobuf:"bytes,55,opt,name=addSubscriptionToTxnResponse" json:"addSubscriptionToTxnResponse,omitempty"`
+	EndTxn                       *CommandEndTxn                       `protobuf:"bytes,56,opt,name=endTxn" json:"endTxn,omitempty"`
+	EndTxnResponse               *CommandEndTxnResponse               `protobuf:"bytes,57,opt,name=endTxnResponse" json:"endTxnResponse,omitempty"`
+	EndTxnOnPartition            *CommandEndTxnOnPartition            `protobuf:"bytes,58,opt,name=endTxnOnPartition" json:"endTxnOnPartition,omitempty"`
+	EndTxnOnPartitionResponse    *CommandEndTxnOnPartitionResponse    `protobuf:"bytes,59,opt,name=endTxnOnPartitionResponse" json:"endTxnOnPartitionResponse,omitempty"`
+	EndTxnOnSubscription         *CommandEndTxnOnSubscription         `protobuf:"bytes,60,opt,name=endTxnOnSubscription" json:"endTxnOnSubscription,omitempty"`
+	EndTxnOnSubscriptionResponse *CommandEndTxnOnSubscriptionResponse `protobuf:"bytes,61,opt,name=endTxnOnSubscriptionResponse" json:"endTxnOnSubscriptionResponse,omitempty"`
+	TcClientConnectRequest       *CommandTcClientConnectRequest       `protobuf:"bytes,62,opt,name=tcClientConnectRequest" json:"tcClientConnectRequest,omitempty"`
+	TcClientConnectResponse      *CommandTcClientConnectResponse      `protobuf:"bytes,63,opt,name=tcClientConnectResponse" json:"tcClientConnectResponse,omitempty"`
+	WatchTopicList               *CommandWatchTopicList               `protobuf:"bytes,64,opt,name=watchTopicList" json:"watchTopicList,omitempty"`
+	WatchTopicListSuccess        *CommandWatchTopicListSuccess        `protobuf:"bytes,65,opt,name=watchTopicListSuccess" json:"watchTopicListSuccess,omitempty"`
+	WatchTopicUpdate             *CommandWatchTopicUpdate             `protobuf:"bytes,66,opt,name=watchTopicUpdate" json:"watchTopicUpdate,omitempty"`
+	WatchTopicListClose          *CommandWatchTopicListClose          `protobuf:"bytes,67,opt,name=watchTopicListClose" json:"watchTopicListClose,omitempty"`
+	XXX_NoUnkeyedLiteral         struct{}                             `json:"-"`
+	XXX_unrecognized             []byte                               `json:"-"`
+	XXX_sizecache                int32                                `json:"-"`
+}
+
+func (m *BaseCommand) Reset()         { *m = BaseCommand{} }
+func (m *BaseCommand) String() string { return proto.CompactTextString(m) }
+func (*BaseCommand) ProtoMessage()    {}
+func (*BaseCommand) Descriptor() ([]byte, []int) {
+	return fileDescriptor_39529ba7ad9caeb8, []int{70}
+}
+func (m *BaseCommand) XXX_Unmarshal(b []byte) error {
+	return m.Unmarshal(b)
+}
+func (m *BaseCommand) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	if deterministic {
+		return xxx_messageInfo_BaseCommand.Marshal(b, m, deterministic)
+	} else {
+		b = b[:cap(b)]
+		n, err := m.MarshalToSizedBuffer(b)
+		if err != nil {
+			return nil, err
+		}
+		return b[:n], nil
 	}
-	return nil
+}
+func (m *BaseCommand) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_BaseCommand.Merge(m, src)
+}
+func (m *BaseCommand) XXX_Size() int {
+	return m.Size()
+}
+func (m *BaseCommand) XXX_DiscardUnknown() {
+	xxx_messageInfo_BaseCommand.DiscardUnknown(m)
 }
 
-func (m *BaseCommand) GetGetLastMessageId() *CommandGetLastMessageId {
-	if m != nil {
-		return m.GetLastMessageId
+var xxx_messageInfo_BaseCommand proto.InternalMessageInfo
+
+func (m *BaseCommand) GetType() BaseCommand_Type {
+	if m != nil && m.Type != nil {
+		return *m.Type
 	}
-	return nil
+	return BaseCommand_CONNECT
 }
 
-func (m *BaseCommand) GetGetLastMessageIdResponse() *CommandGetLastMessageIdResponse {
+func (m *BaseCommand) GetConnect() *CommandConnect {
 	if m != nil {
-		return m.GetLastMessageIdResponse
+		return m.Connect
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetActiveConsumerChange() *CommandActiveConsumerChange {
+func (m *BaseCommand) GetConnected() *CommandConnected {
 	if m != nil {
-		return m.ActiveConsumerChange
+		return m.Connected
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetGetTopicsOfNamespace() *CommandGetTopicsOfNamespace {
+func (m *BaseCommand) GetSubscribe() *CommandSubscribe {
 	if m != nil {
-		return m.GetTopicsOfNamespace
+		return m.Subscribe
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetGetTopicsOfNamespaceResponse() *CommandGetTopicsOfNamespaceResponse {
+func (m *BaseCommand) GetProducer() *CommandProducer {
 	if m != nil {
-		return m.GetTopicsOfNamespaceResponse
+		return m.Producer
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetGetSchema() *CommandGetSchema {
+func (m *BaseCommand) GetSend() *CommandSend {
 	if m != nil {
-		return m.GetSchema
+		return m.Send
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetGetSchemaResponse() *CommandGetSchemaResponse {
+func (m *BaseCommand) GetSendReceipt() *CommandSendReceipt {
 	if m != nil {
-		return m.GetSchemaResponse
+		return m.SendReceipt
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetAuthChallenge() *CommandAuthChallenge {
+func (m *BaseCommand) GetSendError() *CommandSendError {
 	if m != nil {
-		return m.AuthChallenge
+		return m.SendError
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetAuthResponse() *CommandAuthResponse {
+func (m *BaseCommand) GetMessage() *CommandMessage {
 	if m != nil {
-		return m.AuthResponse
+		return m.Message
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetAckResponse() *CommandAckResponse {
+func (m *BaseCommand) GetAck() *CommandAck {
 	if m != nil {
-		return m.AckResponse
+		return m.Ack
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetGetOrCreateSchema() *CommandGetOrCreateSchema {
+func (m *BaseCommand) GetFlow() *CommandFlow {
 	if m != nil {
-		return m.GetOrCreateSchema
+		return m.Flow
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetGetOrCreateSchemaResponse() *CommandGetOrCreateSchemaResponse {
+func (m *BaseCommand) GetUnsubscribe() *CommandUnsubscribe {
 	if m != nil {
-		return m.GetOrCreateSchemaResponse
+		return m.Unsubscribe
 	}
 	return nil
 }
 
-func (m *BaseCommand) GetNewTxn() *CommandNewTxn {
+func (m *BaseCommand) GetSuccess() *CommandSuccess {
 	if m != nil {
-		return m.NewTxn
+		return m.Success
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetError() *CommandError {
+	if m != nil {
+		return m.Error
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetCloseProducer() *CommandCloseProducer {
+	if m != nil {
+		return m.CloseProducer
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetCloseConsumer() *CommandCloseConsumer {
+	if m != nil {
+		return m.CloseConsumer
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetProducerSuccess() *CommandProducerSuccess {
+	if m != nil {
+		return m.ProducerSuccess
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetPing() *CommandPing {
+	if m != nil {
+		return m.Ping
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetPong() *CommandPong {
+	if m != nil {
+		return m.Pong
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetRedeliverUnacknowledgedMessages() *CommandRedeliverUnacknowledgedMessages {
+	if m != nil {
+		return m.RedeliverUnacknowledgedMessages
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetPartitionMetadata() *CommandPartitionedTopicMetadata {
+	if m != nil {
+		return m.PartitionMetadata
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetPartitionMetadataResponse() *CommandPartitionedTopicMetadataResponse {
+	if m != nil {
+		return m.PartitionMetadataResponse
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetLookupTopic() *CommandLookupTopic {
+	if m != nil {
+		return m.LookupTopic
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetLookupTopicResponse() *CommandLookupTopicResponse {
+	if m != nil {
+		return m.LookupTopicResponse
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetConsumerStats() *CommandConsumerStats {
+	if m != nil {
+		return m.ConsumerStats
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetConsumerStatsResponse() *CommandConsumerStatsResponse {
+	if m != nil {
+		return m.ConsumerStatsResponse
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetReachedEndOfTopic() *CommandReachedEndOfTopic {
+	if m != nil {
+		return m.ReachedEndOfTopic
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetSeek() *CommandSeek {
+	if m != nil {
+		return m.Seek
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetGetLastMessageId() *CommandGetLastMessageId {
+	if m != nil {
+		return m.GetLastMessageId
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetGetLastMessageIdResponse() *CommandGetLastMessageIdResponse {
+	if m != nil {
+		return m.GetLastMessageIdResponse
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetActiveConsumerChange() *CommandActiveConsumerChange {
+	if m != nil {
+		return m.ActiveConsumerChange
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetGetTopicsOfNamespace() *CommandGetTopicsOfNamespace {
+	if m != nil {
+		return m.GetTopicsOfNamespace
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetGetTopicsOfNamespaceResponse() *CommandGetTopicsOfNamespaceResponse {
+	if m != nil {
+		return m.GetTopicsOfNamespaceResponse
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetGetSchema() *CommandGetSchema {
+	if m != nil {
+		return m.GetSchema
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetGetSchemaResponse() *CommandGetSchemaResponse {
+	if m != nil {
+		return m.GetSchemaResponse
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetAuthChallenge() *CommandAuthChallenge {
+	if m != nil {
+		return m.AuthChallenge
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetAuthResponse() *CommandAuthResponse {
+	if m != nil {
+		return m.AuthResponse
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetAckResponse() *CommandAckResponse {
+	if m != nil {
+		return m.AckResponse
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetGetOrCreateSchema() *CommandGetOrCreateSchema {
+	if m != nil {
+		return m.GetOrCreateSchema
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetGetOrCreateSchemaResponse() *CommandGetOrCreateSchemaResponse {
+	if m != nil {
+		return m.GetOrCreateSchemaResponse
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetNewTxn() *CommandNewTxn {
+	if m != nil {
+		return m.NewTxn
 	}
 	return nil
 }
@@ -6789,6 +7221,34 @@ func (m *BaseCommand) GetTcClientConnectResponse() *CommandTcClientConnectRespon
 	return nil
 }
 
+func (m *BaseCommand) GetWatchTopicList() *CommandWatchTopicList {
+	if m != nil {
+		return m.WatchTopicList
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetWatchTopicListSuccess() *CommandWatchTopicListSuccess {
+	if m != nil {
+		return m.WatchTopicListSuccess
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetWatchTopicUpdate() *CommandWatchTopicUpdate {
+	if m != nil {
+		return m.WatchTopicUpdate
+	}
+	return nil
+}
+
+func (m *BaseCommand) GetWatchTopicListClose() *CommandWatchTopicListClose {
+	if m != nil {
+		return m.WatchTopicListClose
+	}
+	return nil
+}
+
 func init() {
 	proto.RegisterEnum("pulsar.proto.CompressionType", CompressionType_name, CompressionType_value)
 	proto.RegisterEnum("pulsar.proto.ProducerAccessMode", ProducerAccessMode_name, ProducerAccessMode_value)
@@ -6853,6 +7313,10 @@ func init() {
 	proto.RegisterType((*CommandGetLastMessageIdResponse)(nil), "pulsar.proto.CommandGetLastMessageIdResponse")
 	proto.RegisterType((*CommandGetTopicsOfNamespace)(nil), "pulsar.proto.CommandGetTopicsOfNamespace")
 	proto.RegisterType((*CommandGetTopicsOfNamespaceResponse)(nil), "pulsar.proto.CommandGetTopicsOfNamespaceResponse")
+	proto.RegisterType((*CommandWatchTopicList)(nil), "pulsar.proto.CommandWatchTopicList")
+	proto.RegisterType((*CommandWatchTopicListSuccess)(nil), "pulsar.proto.CommandWatchTopicListSuccess")
+	proto.RegisterType((*CommandWatchTopicUpdate)(nil), "pulsar.proto.CommandWatchTopicUpdate")
+	proto.RegisterType((*CommandWatchTopicListClose)(nil), "pulsar.proto.CommandWatchTopicListClose")
 	proto.RegisterType((*CommandGetSchema)(nil), "pulsar.proto.CommandGetSchema")
 	proto.RegisterType((*CommandGetSchemaResponse)(nil), "pulsar.proto.CommandGetSchemaResponse")
 	proto.RegisterType((*CommandGetOrCreateSchema)(nil), "pulsar.proto.CommandGetOrCreateSchema")
@@ -6878,403 +7342,432 @@ func init() {
 func init() { proto.RegisterFile("PulsarApi.proto", fileDescriptor_39529ba7ad9caeb8) }
 
 var fileDescriptor_39529ba7ad9caeb8 = []byte{
-	// 6335 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x4d, 0x6c, 0x23, 0x47,
-	0x76, 0xf0, 0x34, 0x49, 0x49, 0xe4, 0xa3, 0x48, 0xd5, 0x94, 0x34, 0x33, 0x3d, 0x7f, 0x1a, 0xb9,
-	0xc7, 0x63, 0xcb, 0x63, 0xcf, 0xec, 0x8c, 0x66, 0x3c, 0xb6, 0xc7, 0xde, 0xb5, 0x29, 0x8a, 0x33,
-	0xe6, 0x8e, 0x44, 0xca, 0x4d, 0x6a, 0xfc, 0xd9, 0xdf, 0xee, 0xd7, 0xdb, 0xea, 0x2e, 0x51, 0x0d,
-	0x35, 0xbb, 0xb9, 0xdd, 0x4d, 0x8d, 0x64, 0xe0, 0xcb, 0x21, 0x97, 0x00, 0x01, 0x82, 0x20, 0x87,
-	0xe4, 0xb8, 0x41, 0x6e, 0xb9, 0x06, 0xd8, 0x43, 0x80, 0x0d, 0x12, 0x04, 0xc8, 0x1f, 0x90, 0x4b,
-	0x02, 0x6c, 0x0e, 0x7b, 0x4a, 0xb0, 0xc8, 0xcf, 0x21, 0x08, 0x90, 0x5b, 0x8e, 0x09, 0xea, 0xa7,
-	0xff, 0xc8, 0x26, 0xa9, 0xb1, 0x37, 0xb0, 0xe1, 0x13, 0xbb, 0x5f, 0xbd, 0x7a, 0x5d, 0xf5, 0xde,
-	0xab, 0xf7, 0x57, 0x55, 0x84, 0xa5, 0xdd, 0xa1, 0xed, 0xeb, 0x5e, 0x6d, 0x60, 0xdd, 0x1d, 0x78,
-	0x6e, 0xe0, 0xe2, 0xc5, 0x01, 0x03, 0xf0, 0x37, 0xe5, 0xa7, 0x79, 0x98, 0xef, 0x18, 0x87, 0xa4,
-	0xaf, 0x63, 0x0c, 0x05, 0x47, 0xef, 0x13, 0x59, 0x5a, 0xcb, 0xad, 0x97, 0x54, 0xf6, 0x8c, 0x6f,
-	0x40, 0xd9, 0x67, 0xad, 0x9a, 0xa9, 0x07, 0xba, 0x9c, 0x5f, 0xcb, 0xad, 0x2f, 0xaa, 0xc0, 0x41,
-	0x5b, 0x7a, 0xa0, 0xe3, 0x3b, 0x50, 0x08, 0x4e, 0x07, 0x44, 0x2e, 0xac, 0xe5, 0xd6, 0xab, 0x1b,
-	0x97, 0xef, 0x26, 0x89, 0xdf, 0xe5, 0x84, 0xef, 0x76, 0x4f, 0x07, 0x44, 0x65, 0x68, 0xf8, 0x11,
-	0xc0, 0xc0, 0x73, 0x07, 0xc4, 0x0b, 0x2c, 0xe2, 0xcb, 0x73, 0x6b, 0xf9, 0xf5, 0xf2, 0xc6, 0xc5,
-	0x74, 0xa7, 0x67, 0xe4, 0xf4, 0xb9, 0x6e, 0x0f, 0x89, 0x9a, 0xc0, 0x54, 0x7e, 0x2b, 0x07, 0x05,
-	0x4a, 0x06, 0x17, 0xa1, 0xd0, 0x72, 0x1d, 0x82, 0xce, 0x61, 0x80, 0xf9, 0x4e, 0xe0, 0x59, 0x4e,
-	0x0f, 0x49, 0x14, 0xfa, 0x7d, 0xdf, 0x75, 0x50, 0x0e, 0x2f, 0x42, 0x71, 0x97, 0x92, 0xd9, 0x1f,
-	0x1e, 0xa0, 0x3c, 0x85, 0xd7, 0x8e, 0x3d, 0x17, 0x15, 0xe8, 0xd3, 0xa6, 0xeb, 0xda, 0x68, 0x8e,
-	0x3e, 0x35, 0x9d, 0xe0, 0x5d, 0x34, 0x8f, 0x4b, 0x30, 0xd7, 0x74, 0x82, 0xfb, 0x8f, 0xd0, 0x82,
-	0x78, 0x7c, 0xb0, 0x81, 0x8a, 0xe2, 0xf1, 0xd1, 0x43, 0x54, 0xa2, 0x8f, 0x4f, 0x6c, 0x57, 0x0f,
-	0x10, 0xd0, 0xaf, 0x6d, 0xb9, 0xc3, 0x7d, 0x9b, 0xa0, 0x32, 0xa5, 0xb0, 0xa5, 0x07, 0x04, 0x2d,
-	0xd2, 0xa7, 0xae, 0xd5, 0x27, 0xa8, 0x82, 0x2b, 0x50, 0xa2, 0x4f, 0x7e, 0xa0, 0xf7, 0x07, 0xa8,
-	0x4a, 0x87, 0x11, 0xce, 0x03, 0x2d, 0xe1, 0x32, 0x2c, 0x34, 0x1d, 0x3f, 0xd0, 0x9d, 0x00, 0x21,
-	0x8a, 0xb9, 0xed, 0x1a, 0xba, 0xcd, 0x48, 0x9c, 0x8f, 0x5e, 0x19, 0x1d, 0x8c, 0xcf, 0x43, 0x25,
-	0x6a, 0x65, 0xa0, 0x65, 0x8c, 0xa1, 0x1a, 0x4e, 0xa9, 0xa5, 0x07, 0xd6, 0x31, 0x41, 0x2b, 0xca,
-	0x5f, 0x48, 0x50, 0xd9, 0x21, 0xbe, 0xaf, 0xf7, 0x48, 0xd3, 0x64, 0x82, 0xb8, 0x02, 0x45, 0x9b,
-	0x98, 0x3d, 0xe2, 0x35, 0x4d, 0x26, 0xc1, 0x82, 0x1a, 0xbd, 0x63, 0x19, 0x16, 0x88, 0x13, 0x78,
-	0xa7, 0x4d, 0x53, 0xce, 0xb1, 0xa6, 0xf0, 0x15, 0xaf, 0x41, 0x69, 0xa0, 0x7b, 0x81, 0x15, 0x58,
-	0xae, 0x23, 0xe7, 0xd7, 0xa4, 0xf5, 0xb9, 0xc7, 0xb9, 0x3b, 0xf7, 0xd5, 0x18, 0x88, 0x6f, 0x42,
-	0x79, 0x5f, 0x0f, 0x8c, 0x43, 0xcd, 0x72, 0x4c, 0x72, 0x22, 0x17, 0x22, 0x1c, 0x60, 0xe0, 0x26,
-	0x85, 0xe2, 0x4b, 0xb0, 0xa0, 0x1b, 0x47, 0x9a, 0x4f, 0x02, 0x26, 0xd3, 0xbc, 0x3a, 0xaf, 0x1b,
-	0x47, 0x1d, 0x12, 0xe0, 0xeb, 0xc0, 0xd1, 0x34, 0xdf, 0xfa, 0x82, 0xc8, 0xf3, 0xb4, 0xb3, 0x5a,
-	0x62, 0x90, 0x8e, 0xf5, 0x05, 0x51, 0x36, 0x62, 0x36, 0x61, 0x04, 0xf9, 0x23, 0x72, 0x2a, 0xb4,
-	0x8f, 0x3e, 0xe2, 0x15, 0x98, 0x3b, 0xa6, 0x4d, 0x6c, 0xd0, 0x25, 0x95, 0xbf, 0x28, 0x8f, 0x60,
-	0xf1, 0x19, 0x39, 0xdd, 0x76, 0x9d, 0xde, 0x99, 0xfa, 0x15, 0xc2, 0x7e, 0x1b, 0x50, 0x6c, 0x3a,
-	0x81, 0xaa, 0x3b, 0x3d, 0x42, 0x31, 0xfc, 0x40, 0xf7, 0x02, 0xd6, 0x6b, 0x4e, 0xe5, 0x2f, 0x94,
-	0x12, 0x71, 0x38, 0x8b, 0xe6, 0x54, 0xfa, 0xa8, 0xd8, 0x50, 0x6d, 0x38, 0x86, 0x77, 0x3a, 0xa0,
-	0xac, 0x78, 0x46, 0x4e, 0xfd, 0x59, 0x5f, 0x5b, 0x14, 0x5f, 0xc3, 0x1b, 0x50, 0xec, 0x93, 0x40,
-	0x17, 0xab, 0x66, 0x9a, 0x9a, 0x47, 0x78, 0xca, 0xdf, 0x97, 0x60, 0x49, 0x08, 0x75, 0x47, 0xc0,
-	0xf0, 0x4d, 0xa8, 0x0c, 0x3c, 0xd7, 0x1c, 0x1a, 0xc4, 0xd3, 0x12, 0xab, 0x73, 0x31, 0x04, 0xb6,
-	0xc2, 0x55, 0x4a, 0x7e, 0x3c, 0x24, 0x8e, 0x41, 0x34, 0x2b, 0x94, 0x31, 0x84, 0xa0, 0xa6, 0x89,
-	0x5f, 0x81, 0xc5, 0xc1, 0x70, 0xdf, 0xb6, 0xfc, 0x43, 0x2d, 0xb0, 0xfa, 0x84, 0xad, 0xe3, 0x82,
-	0x5a, 0x16, 0x30, 0xaa, 0x67, 0x23, 0x2b, 0xb3, 0x70, 0xd6, 0x95, 0x89, 0x5f, 0x87, 0x25, 0x8f,
-	0x0c, 0x6c, 0xcb, 0xd0, 0x03, 0x62, 0x6a, 0x07, 0x9e, 0xdb, 0x97, 0xe7, 0xd6, 0xa4, 0xf5, 0x92,
-	0x5a, 0x8d, 0xc1, 0x4f, 0x3c, 0xb7, 0xcf, 0x66, 0x12, 0x6a, 0x95, 0x46, 0x79, 0x38, 0xcf, 0xd0,
-	0x16, 0x23, 0xe0, 0x33, 0x72, 0x4a, 0x07, 0x1a, 0x75, 0xd3, 0x02, 0x57, 0x5e, 0x58, 0xcb, 0xaf,
-	0x97, 0xd4, 0x72, 0x04, 0xeb, 0xba, 0xb8, 0x01, 0x65, 0xc3, 0xed, 0x0f, 0x3c, 0xe2, 0xfb, 0x54,
-	0x69, 0x8b, 0x6b, 0xd2, 0x7a, 0x75, 0xe3, 0x7a, 0x7a, 0xa4, 0xf5, 0x18, 0x81, 0x5a, 0x8d, 0xc7,
-	0x85, 0x56, 0xbb, 0xd5, 0x50, 0x93, 0xfd, 0xf0, 0x5d, 0x38, 0x3f, 0x74, 0x42, 0x00, 0x31, 0xb9,
-	0x82, 0x96, 0xd6, 0xa4, 0xf5, 0xca, 0x63, 0xe9, 0x9e, 0x8a, 0x92, 0x6d, 0x54, 0x55, 0xf1, 0x43,
-	0xb8, 0xe0, 0x0c, 0xfb, 0x5a, 0x9f, 0xcb, 0xc7, 0xd7, 0x2c, 0x47, 0x63, 0x7a, 0x2c, 0x97, 0xd9,
-	0x8a, 0x90, 0xee, 0xab, 0xd8, 0x19, 0xf6, 0x85, 0xf8, 0xfc, 0xa6, 0xb3, 0x49, 0x1b, 0xf1, 0x1a,
-	0x00, 0x39, 0x26, 0x4e, 0xc0, 0xd9, 0xbe, 0xb8, 0x26, 0xad, 0x17, 0x28, 0xf9, 0x12, 0x03, 0x32,
-	0xbe, 0x37, 0x60, 0x89, 0x44, 0x2a, 0x46, 0xf9, 0xe2, 0xcb, 0x15, 0xc6, 0xfc, 0x6b, 0xe9, 0x29,
-	0xa5, 0xf5, 0x50, 0xad, 0x92, 0xb4, 0x5e, 0xbe, 0x9e, 0x22, 0xa3, 0xdb, 0x3d, 0x57, 0xae, 0x72,
-	0x31, 0xc4, 0xe0, 0x9a, 0xdd, 0x73, 0xf1, 0x1b, 0x80, 0x12, 0x88, 0x03, 0xdd, 0xd3, 0xfb, 0xf2,
-	0xd2, 0x9a, 0xb4, 0xbe, 0xa8, 0x26, 0x08, 0xec, 0x52, 0x30, 0xbe, 0x05, 0x55, 0x61, 0xfc, 0x8f,
-	0x89, 0xc7, 0x98, 0x8d, 0x18, 0x62, 0x85, 0x43, 0x9f, 0x73, 0x20, 0xfe, 0x08, 0x2e, 0xa7, 0x04,
-	0xab, 0xed, 0x3f, 0x7a, 0xa8, 0x11, 0xc7, 0x70, 0x4d, 0x62, 0xca, 0xe7, 0xd7, 0xa4, 0xf5, 0xe2,
-	0xe3, 0xb9, 0x03, 0xdd, 0xf6, 0x89, 0x7a, 0x31, 0x29, 0xeb, 0xcd, 0x47, 0x0f, 0x1b, 0x1c, 0x89,
-	0x4a, 0xdd, 0xf5, 0x4c, 0x42, 0x8d, 0x39, 0xd3, 0x0c, 0xcc, 0x3e, 0x53, 0x0e, 0x61, 0x54, 0x31,
-	0x5e, 0x83, 0x25, 0x93, 0xd8, 0xd6, 0x31, 0xf1, 0x34, 0x5d, 0x70, 0x73, 0x79, 0x4d, 0x5a, 0xcf,
-	0xab, 0x15, 0x01, 0xae, 0x71, 0x76, 0xde, 0x80, 0x72, 0x5f, 0xf7, 0x8e, 0x88, 0xa7, 0x31, 0xb7,
-	0xb4, 0xc2, 0x2c, 0x0e, 0x70, 0x10, 0x73, 0x20, 0xeb, 0x80, 0x82, 0x13, 0xc7, 0x32, 0x35, 0x9b,
-	0xe8, 0x7e, 0xa0, 0xed, 0x5b, 0x81, 0x2f, 0x5f, 0xa4, 0x72, 0x51, 0xab, 0x0c, 0xbe, 0x4d, 0xc1,
-	0x9b, 0x56, 0xe0, 0xd3, 0x4f, 0x72, 0xcc, 0xbe, 0x1b, 0x22, 0x5e, 0x62, 0x88, 0x15, 0x06, 0xde,
-	0x71, 0x05, 0xde, 0x7d, 0x58, 0x3e, 0xb4, 0x7a, 0x87, 0xc4, 0x0f, 0xb4, 0xe4, 0x2a, 0x94, 0x43,
-	0x61, 0x9f, 0x17, 0xad, 0x9d, 0x78, 0x3d, 0xbe, 0x0a, 0xe0, 0x0c, 0x6d, 0x5b, 0xe3, 0x86, 0xe3,
-	0x72, 0x92, 0x47, 0x25, 0xda, 0xc0, 0x2d, 0x1b, 0x86, 0xc2, 0x70, 0x68, 0x99, 0xf2, 0x15, 0x26,
-	0x48, 0xf6, 0x8c, 0xef, 0xc0, 0x32, 0x55, 0x43, 0xe3, 0x70, 0xe8, 0x1c, 0xf9, 0x6c, 0xb9, 0x69,
-	0x7d, 0xbf, 0x27, 0x5f, 0x65, 0xf3, 0x44, 0xce, 0xb0, 0x5f, 0x67, 0x2d, 0x74, 0xc5, 0xed, 0xf8,
-	0x3d, 0xfc, 0x1d, 0x58, 0x09, 0xdc, 0x40, 0xb7, 0x79, 0x07, 0x8a, 0xca, 0x15, 0xfd, 0x1a, 0xc3,
-	0x3f, 0xcf, 0xda, 0x58, 0x8f, 0x1d, 0xbf, 0xc7, 0xd4, 0xfc, 0x32, 0x14, 0x39, 0xaa, 0x65, 0xca,
-	0xd7, 0x19, 0xd2, 0x02, 0x7b, 0x6f, 0x9a, 0xf8, 0x01, 0x60, 0x36, 0xe8, 0xf4, 0x2a, 0x5e, 0x4d,
-	0x0e, 0x1e, 0x51, 0x84, 0xdd, 0x84, 0x90, 0x95, 0xbf, 0xca, 0xc3, 0x85, 0x8e, 0xe5, 0xf4, 0x6c,
-	0x32, 0x6a, 0xd9, 0xd2, 0x06, 0x47, 0x3a, 0xb3, 0xc1, 0x19, 0xb3, 0x23, 0xb9, 0x6c, 0x3b, 0x32,
-	0xd0, 0x4f, 0x6d, 0x57, 0x17, 0x0b, 0x3b, 0xcf, 0x6c, 0x7a, 0x59, 0xc0, 0xd8, 0x4c, 0x6f, 0x43,
-	0x85, 0x2e, 0x71, 0xdd, 0xa0, 0x76, 0xcb, 0x1d, 0x06, 0xcc, 0xb5, 0x45, 0x33, 0x59, 0x8c, 0xda,
-	0xda, 0xc3, 0x60, 0x64, 0x19, 0xcf, 0x65, 0x2c, 0xe3, 0xa9, 0x8b, 0x60, 0xfe, 0xcb, 0x2c, 0x82,
-	0x85, 0xf1, 0x45, 0x30, 0x62, 0xe7, 0x8b, 0x4c, 0x1b, 0x93, 0x76, 0x3e, 0xad, 0x57, 0xa5, 0x09,
-	0x7a, 0x95, 0x2d, 0x48, 0x98, 0x2e, 0xc8, 0xe7, 0xb0, 0xbc, 0xe9, 0xb9, 0x47, 0xc4, 0x6b, 0xd0,
-	0xd0, 0x21, 0x92, 0xe2, 0x1b, 0x80, 0xf6, 0x19, 0x98, 0xb1, 0x86, 0x85, 0x3f, 0xb2, 0xc4, 0xc6,
-	0xb5, 0xc4, 0xe1, 0x51, 0x54, 0x44, 0x1d, 0x25, 0x8f, 0x21, 0x72, 0xac, 0x9d, 0xbf, 0x28, 0xff,
-	0x9a, 0x87, 0x6a, 0xdd, 0xed, 0xf7, 0x75, 0xc7, 0xac, 0xbb, 0x8e, 0x43, 0x8c, 0x80, 0xda, 0x1d,
-	0xc3, 0xb6, 0x28, 0xbb, 0x43, 0xbb, 0xc3, 0x9d, 0x5e, 0x85, 0x43, 0x43, 0xbb, 0xf3, 0x1e, 0x94,
-	0xf5, 0x61, 0x70, 0xa8, 0xf5, 0x49, 0x70, 0xe8, 0x9a, 0x8c, 0x6a, 0x75, 0x43, 0x4e, 0x6b, 0x50,
-	0x6d, 0x18, 0x1c, 0xee, 0xb0, 0x76, 0x15, 0xf4, 0xe8, 0x99, 0x1a, 0x81, 0x44, 0x57, 0xee, 0x58,
-	0x85, 0xd7, 0x8a, 0xb1, 0x98, 0x6b, 0xbd, 0x0a, 0x25, 0x86, 0x29, 0x1c, 0x39, 0x15, 0x49, 0x91,
-	0x02, 0x58, 0xcc, 0xf5, 0x16, 0x20, 0xf6, 0x19, 0xc3, 0xb5, 0xa3, 0xa1, 0xf2, 0x00, 0x49, 0xba,
-	0xa7, 0x2e, 0x85, 0x4d, 0xe1, 0x78, 0xef, 0xc0, 0xf2, 0xc0, 0x73, 0x4f, 0x4e, 0xb5, 0xc0, 0xd5,
-	0x04, 0xcf, 0x86, 0x9e, 0x2d, 0xdc, 0x20, 0x62, 0x4d, 0x5d, 0x97, 0xf3, 0x78, 0xcf, 0xb3, 0xf1,
-	0x1d, 0xc0, 0xae, 0x67, 0xf5, 0x2c, 0x47, 0xb7, 0xb5, 0x81, 0x67, 0x39, 0x86, 0x35, 0xd0, 0x6d,
-	0xa6, 0x15, 0x25, 0xf5, 0x7c, 0xd8, 0xb2, 0x1b, 0x36, 0xe0, 0xb7, 0x12, 0xe8, 0xf1, 0x88, 0x8b,
-	0x9c, 0x78, 0xd8, 0x52, 0x0b, 0x47, 0x7e, 0x0f, 0x56, 0xd2, 0xd8, 0x82, 0x89, 0x25, 0x86, 0x8f,
-	0x93, 0xf8, 0x82, 0x65, 0x1f, 0x42, 0xe5, 0x80, 0xe8, 0xc1, 0xd0, 0x23, 0xda, 0x81, 0xad, 0xf7,
-	0x7c, 0xa6, 0x2f, 0xe5, 0x8d, 0x2b, 0x69, 0x7e, 0x3f, 0xe1, 0x28, 0x4f, 0x28, 0x86, 0xba, 0x78,
-	0x90, 0x78, 0x53, 0x7e, 0x57, 0x82, 0xc5, 0x64, 0x33, 0x7e, 0x0f, 0x2e, 0xf8, 0xc3, 0xc1, 0xc0,
-	0xf5, 0x02, 0x9f, 0x8f, 0xc1, 0x23, 0x07, 0x1e, 0xf1, 0x0f, 0x99, 0xfe, 0x44, 0x9a, 0xb8, 0x1c,
-	0xe2, 0xd0, 0xb1, 0xa8, 0x1c, 0x03, 0x7f, 0x1f, 0x56, 0xa3, 0xae, 0x82, 0x95, 0x2c, 0xa2, 0xd5,
-	0xa2, 0x98, 0x2b, 0x97, 0xa4, 0x71, 0x35, 0x44, 0xce, 0xd0, 0x60, 0xe5, 0x77, 0x24, 0x40, 0x69,
-	0x05, 0x24, 0x26, 0x73, 0x7d, 0xc4, 0xa3, 0xde, 0x66, 0x44, 0x05, 0x39, 0x34, 0x14, 0x69, 0x96,
-	0x02, 0xe4, 0x26, 0x2a, 0xc0, 0x3a, 0xa0, 0xbe, 0x7e, 0x12, 0x86, 0x10, 0xa1, 0x61, 0xa2, 0x36,
-	0xb6, 0xda, 0xd7, 0x4f, 0x84, 0x7d, 0x64, 0x71, 0xf1, 0x4f, 0x24, 0x58, 0x16, 0x63, 0xe2, 0xd3,
-	0xf6, 0x07, 0xae, 0xe3, 0x93, 0xcc, 0x95, 0x21, 0x8d, 0xaf, 0x8c, 0x0d, 0x28, 0x7a, 0xa2, 0x0b,
-	0x1b, 0xce, 0x98, 0x61, 0x0d, 0xf5, 0x40, 0x8d, 0xf0, 0x32, 0xa7, 0x92, 0x9f, 0x34, 0x15, 0xe5,
-	0x0f, 0x24, 0x58, 0x49, 0x0c, 0xb0, 0x7e, 0xa8, 0xdb, 0x36, 0xa1, 0x91, 0x75, 0x16, 0xe3, 0xa4,
-	0x71, 0xc6, 0x3d, 0x84, 0x92, 0x11, 0xf6, 0x99, 0x31, 0xc4, 0x18, 0xf1, 0x25, 0xc7, 0xf8, 0x09,
-	0x14, 0x23, 0x7d, 0xcf, 0x5a, 0xf0, 0xd2, 0xec, 0x05, 0x9f, 0x4b, 0x2f, 0x78, 0xe5, 0x6f, 0x25,
-	0xa8, 0x3c, 0x23, 0xa7, 0x9d, 0x43, 0xdd, 0x23, 0x26, 0xd5, 0x20, 0x5c, 0x83, 0xca, 0x51, 0x04,
-	0x70, 0x4d, 0x1e, 0x9f, 0x57, 0x37, 0xae, 0x8e, 0x39, 0xb2, 0x18, 0x45, 0x4d, 0xf7, 0xa0, 0x8e,
-	0xf0, 0x50, 0xf7, 0x0f, 0x59, 0x66, 0xe2, 0x67, 0x27, 0x0b, 0x61, 0xe2, 0xa2, 0x26, 0x30, 0xf1,
-	0x87, 0x70, 0x49, 0xb7, 0x6d, 0xf7, 0x45, 0x7b, 0x18, 0xb4, 0x0f, 0xda, 0xd4, 0x4d, 0x6c, 0xf1,
-	0x50, 0xe8, 0x34, 0xed, 0xca, 0x26, 0x61, 0x29, 0x7f, 0x52, 0x8c, 0x34, 0xbf, 0x33, 0xdc, 0xf7,
-	0x0d, 0xcf, 0xda, 0x67, 0xa9, 0x51, 0xe0, 0x0e, 0x2c, 0x43, 0x28, 0x3c, 0x7f, 0xc1, 0x0a, 0x2c,
-	0xfa, 0x1c, 0x85, 0xc5, 0x87, 0x22, 0x23, 0x4b, 0xc1, 0xf0, 0x47, 0xb0, 0xe0, 0x0f, 0xf7, 0x69,
-	0x90, 0xc5, 0xdc, 0x6d, 0x75, 0xe3, 0xb5, 0xb1, 0xa0, 0x3c, 0xf5, 0xa9, 0xbb, 0x1d, 0x8e, 0xad,
-	0x86, 0xdd, 0xa8, 0x7f, 0x33, 0x5c, 0xc7, 0x1f, 0xf6, 0x89, 0x47, 0xfd, 0x5b, 0x81, 0xe7, 0x31,
-	0x21, 0xa8, 0x69, 0xd2, 0x74, 0xd2, 0xa3, 0xde, 0xce, 0x0f, 0x68, 0xfb, 0x1c, 0x6b, 0x2f, 0x09,
-	0x48, 0xd3, 0xa4, 0xa1, 0x41, 0xd4, 0x9f, 0x89, 0x58, 0xa4, 0x18, 0x21, 0x90, 0x09, 0xf8, 0x16,
-	0x54, 0x07, 0x9e, 0xe5, 0x7a, 0x56, 0x70, 0xaa, 0xd9, 0xe4, 0x98, 0x70, 0x9b, 0x3a, 0xa7, 0x56,
-	0x42, 0xe8, 0x36, 0x05, 0xe2, 0x55, 0x58, 0x30, 0x87, 0x9e, 0xbe, 0x6f, 0x13, 0x66, 0x44, 0x8b,
-	0x8f, 0x0b, 0x81, 0x37, 0x24, 0x6a, 0x08, 0xc4, 0x0d, 0x40, 0x2c, 0x6b, 0x8c, 0x96, 0xb3, 0xc5,
-	0xad, 0x67, 0x79, 0x54, 0xf6, 0xa9, 0x34, 0x5d, 0xad, 0xb2, 0x4e, 0x11, 0x2c, 0x95, 0x27, 0xc2,
-	0xd9, 0xf2, 0x44, 0x3a, 0x03, 0x8f, 0xe8, 0xa6, 0x16, 0x85, 0x28, 0x2c, 0x07, 0x29, 0xaa, 0x15,
-	0x0a, 0xad, 0x87, 0x40, 0xfc, 0x16, 0xcc, 0xf3, 0x40, 0x9d, 0xe5, 0x1d, 0xe5, 0x8d, 0x95, 0xac,
-	0xe2, 0x8c, 0x2a, 0x70, 0xf0, 0x8f, 0x60, 0xc9, 0x72, 0xac, 0xc0, 0xd2, 0xed, 0x5d, 0xd7, 0xe7,
-	0xf5, 0x80, 0x0a, 0xf3, 0xa8, 0x77, 0x67, 0x48, 0xb1, 0x99, 0xee, 0xf5, 0x78, 0x7e, 0x5b, 0x0f,
-	0x88, 0x1f, 0xa8, 0xa3, 0xe4, 0xf0, 0x47, 0x70, 0x2d, 0xce, 0xed, 0x92, 0x9a, 0xa3, 0xf9, 0x81,
-	0x1e, 0x10, 0x96, 0xaf, 0x14, 0xd5, 0x2b, 0x11, 0x4e, 0x27, 0x81, 0xd2, 0xa1, 0x18, 0xf8, 0x11,
-	0xac, 0x1c, 0xb8, 0x9e, 0x41, 0x33, 0xc3, 0x81, 0x65, 0x68, 0x86, 0x47, 0x74, 0x36, 0xd0, 0xa5,
-	0x84, 0x80, 0x30, 0xc3, 0xe8, 0x52, 0x84, 0xba, 0x68, 0xc7, 0x6d, 0xb8, 0x99, 0x96, 0x95, 0xe7,
-	0xda, 0xf6, 0xbe, 0x6e, 0x1c, 0x69, 0x54, 0x9a, 0x7c, 0x08, 0xc4, 0x60, 0xd9, 0x0d, 0x8b, 0xeb,
-	0x6e, 0x24, 0x85, 0xa4, 0x0a, 0xdc, 0x2d, 0x81, 0xda, 0x21, 0x46, 0x7a, 0xd5, 0x93, 0x40, 0x67,
-	0x69, 0x4e, 0x79, 0xf2, 0xaa, 0x27, 0x81, 0xae, 0xa6, 0x7b, 0xe0, 0x36, 0x5c, 0x4a, 0xf1, 0x20,
-	0x11, 0x0b, 0xe3, 0xa9, 0x7a, 0x70, 0x31, 0xd9, 0x6d, 0x37, 0x2e, 0x91, 0x6d, 0xc2, 0x82, 0x58,
-	0x50, 0xb8, 0x02, 0xa5, 0xc6, 0x89, 0x61, 0x0f, 0x7d, 0xeb, 0x38, 0xac, 0x94, 0xb1, 0x0f, 0x23,
-	0x09, 0x2f, 0x42, 0xf1, 0x89, 0x6e, 0xd9, 0xee, 0x31, 0xf1, 0x50, 0x0e, 0x57, 0x01, 0x9e, 0x91,
-	0x53, 0x4d, 0xb4, 0xe6, 0x95, 0x37, 0x61, 0x69, 0x44, 0x9c, 0xb4, 0x33, 0x17, 0x28, 0x3a, 0x47,
-	0x3b, 0x37, 0x74, 0xcf, 0xb6, 0xe8, 0x9b, 0xa4, 0xfc, 0x8b, 0x04, 0x37, 0x84, 0x36, 0x44, 0x91,
-	0x22, 0x31, 0x19, 0xe7, 0xa3, 0xf0, 0x30, 0xdb, 0x9a, 0xa4, 0x97, 0x71, 0x6e, 0x74, 0x19, 0x67,
-	0x47, 0x3e, 0xf9, 0x97, 0x8b, 0x7c, 0x0a, 0x2f, 0x19, 0xf9, 0xcc, 0x4d, 0x8a, 0x7c, 0x94, 0x3f,
-	0xce, 0xc1, 0xeb, 0x33, 0xe6, 0x19, 0x39, 0xe8, 0x55, 0x80, 0x28, 0xaa, 0xf6, 0x99, 0x87, 0xa9,
-	0xa8, 0x09, 0xc8, 0xac, 0x99, 0xff, 0x20, 0xe1, 0xb8, 0xf3, 0x6c, 0xf5, 0x7d, 0x94, 0xb9, 0xfa,
-	0x66, 0x8d, 0xe3, 0xee, 0xb6, 0xeb, 0x1e, 0x0d, 0x07, 0xcc, 0xba, 0xc6, 0x2e, 0xfe, 0x3b, 0x30,
-	0x47, 0x3c, 0xcf, 0xf5, 0x18, 0x6f, 0xc6, 0x8b, 0xb5, 0xcc, 0x41, 0x37, 0x28, 0x82, 0xca, 0xf1,
-	0xb0, 0x0c, 0x0b, 0x62, 0xc5, 0x08, 0xf6, 0x84, 0xaf, 0xca, 0x2d, 0x80, 0xf8, 0x13, 0xb8, 0x4c,
-	0x55, 0xcf, 0x30, 0x88, 0xef, 0x73, 0x6d, 0xa3, 0x1a, 0x46, 0xb5, 0x4d, 0xf9, 0xb3, 0x1c, 0x60,
-	0x31, 0x64, 0x81, 0xce, 0xe4, 0xff, 0xa5, 0xb4, 0xe2, 0x4d, 0xa8, 0x50, 0x79, 0x51, 0x13, 0xcd,
-	0xaa, 0xa0, 0x8c, 0x41, 0x91, 0x93, 0x4b, 0xb7, 0x4d, 0x50, 0xa1, 0xc2, 0xcb, 0xa9, 0xd0, 0xdc,
-	0x4b, 0xaa, 0xd0, 0xfc, 0xc4, 0xe0, 0xf9, 0x5d, 0x90, 0x75, 0xf3, 0x98, 0x2e, 0x54, 0x9f, 0x98,
-	0x9a, 0x6d, 0xf9, 0x01, 0x71, 0x42, 0x1f, 0xc5, 0x23, 0xfa, 0x8b, 0x71, 0xfb, 0xb6, 0x68, 0xa6,
-	0xde, 0x4a, 0xf9, 0x45, 0x1e, 0xae, 0x8c, 0x73, 0x30, 0xd2, 0xb7, 0xdb, 0x61, 0xfa, 0x45, 0xa5,
-	0x67, 0x19, 0x64, 0xcf, 0xb3, 0x45, 0x5c, 0x33, 0x06, 0xc7, 0xf7, 0x60, 0x79, 0x14, 0xd6, 0xb5,
-	0x7d, 0x91, 0x3e, 0x67, 0x35, 0xe1, 0xf6, 0x98, 0x3a, 0x3e, 0xc8, 0x54, 0xc7, 0x8c, 0x91, 0x65,
-	0x6b, 0x60, 0x5a, 0xc4, 0x85, 0x99, 0x22, 0x9e, 0x9b, 0x22, 0xe2, 0x48, 0x9b, 0xe7, 0x5f, 0x5e,
-	0x9b, 0x17, 0x52, 0xda, 0xcc, 0x92, 0x77, 0x9e, 0x99, 0x1d, 0x7a, 0xee, 0xb0, 0x77, 0xa8, 0xf9,
-	0x9c, 0x0d, 0x2c, 0x3f, 0x2b, 0xa6, 0x93, 0x77, 0x96, 0xa6, 0x71, 0xb4, 0x98, 0x59, 0xca, 0x83,
-	0xd4, 0x7a, 0x58, 0x84, 0xa2, 0x4a, 0x4c, 0xcb, 0x23, 0x06, 0xb5, 0x9a, 0x65, 0x58, 0x10, 0x89,
-	0x05, 0x92, 0x12, 0xab, 0x23, 0xa7, 0xfc, 0x5e, 0x01, 0x96, 0xc2, 0x05, 0x2d, 0xca, 0xb9, 0x13,
-	0x96, 0xc6, 0x0d, 0x28, 0x47, 0x55, 0xe0, 0xb8, 0xc0, 0x1b, 0x82, 0xc6, 0x02, 0xa3, 0x7c, 0x46,
-	0x60, 0x94, 0xae, 0x22, 0x17, 0x44, 0xcd, 0x24, 0x59, 0x45, 0xbe, 0x09, 0x25, 0x51, 0x01, 0x24,
-	0x66, 0x9a, 0xf3, 0x31, 0x3c, 0x15, 0xaf, 0xcc, 0x9f, 0x31, 0x5e, 0x89, 0x03, 0x91, 0x85, 0x33,
-	0x04, 0x22, 0x97, 0x60, 0x8e, 0x0c, 0x5c, 0xe3, 0x90, 0x97, 0x37, 0xa8, 0x3b, 0xe6, 0xef, 0xb8,
-	0x0e, 0x57, 0x87, 0x3e, 0xf1, 0xa8, 0xa7, 0x3c, 0xb6, 0x4c, 0x62, 0x6a, 0xe9, 0x29, 0x95, 0x12,
-	0x41, 0x80, 0x4c, 0x11, 0x77, 0x05, 0xde, 0x6e, 0x72, 0x92, 0x9f, 0xc3, 0x4a, 0xd4, 0x4d, 0x67,
-	0x26, 0x4b, 0xeb, 0xd3, 0xb0, 0x1d, 0x98, 0x12, 0xad, 0xa5, 0x47, 0x16, 0xf6, 0xac, 0x31, 0x44,
-	0x1a, 0xac, 0x3f, 0x16, 0x9e, 0x54, 0xc5, 0x83, 0xb1, 0x36, 0x2a, 0x25, 0x1e, 0x98, 0xf0, 0xf1,
-	0x97, 0x79, 0x79, 0x86, 0x81, 0x1a, 0x6c, 0x06, 0xaf, 0x41, 0x39, 0x38, 0x71, 0x34, 0xe2, 0xd0,
-	0x08, 0xd2, 0x64, 0x61, 0x59, 0xc4, 0x63, 0x08, 0x4e, 0x9c, 0x06, 0x6f, 0x50, 0xfe, 0x3c, 0x07,
-	0xe5, 0x30, 0xce, 0x22, 0x8e, 0x39, 0x2a, 0x7e, 0x69, 0x4c, 0xfc, 0x33, 0x37, 0x00, 0x5e, 0x85,
-	0xc5, 0x64, 0xf5, 0x3a, 0xcc, 0x9a, 0xee, 0xab, 0xe5, 0x44, 0xd1, 0x1a, 0xbf, 0x99, 0x51, 0x1b,
-	0x2d, 0x84, 0x52, 0x18, 0x2d, 0x8f, 0xbe, 0x31, 0x5e, 0x1e, 0x8d, 0x0a, 0x63, 0x67, 0xab, 0x90,
-	0xce, 0x4f, 0xa9, 0x90, 0xae, 0x41, 0xd1, 0xf2, 0x79, 0xd5, 0x92, 0x69, 0x4d, 0xc4, 0xa7, 0x05,
-	0xcb, 0x67, 0x05, 0x4b, 0x7c, 0x1d, 0xe6, 0x79, 0x59, 0x37, 0xbd, 0x42, 0x05, 0x50, 0xf9, 0x4b,
-	0x29, 0x72, 0x3d, 0x94, 0x87, 0x2a, 0x31, 0x88, 0x35, 0x08, 0x7e, 0x05, 0xac, 0x7c, 0x0c, 0x90,
-	0x08, 0xf9, 0xf3, 0xb3, 0x43, 0xfe, 0x52, 0x3f, 0x8a, 0xf6, 0x27, 0x30, 0xa2, 0x30, 0x99, 0x11,
-	0xca, 0xef, 0xc7, 0xe5, 0x09, 0x3a, 0x0f, 0x66, 0xd1, 0x7e, 0x05, 0xb3, 0x88, 0xac, 0x67, 0x3e,
-	0x73, 0xe3, 0x76, 0xaa, 0xf5, 0x2c, 0x30, 0xd3, 0x14, 0xc5, 0x02, 0x3f, 0x95, 0xa2, 0x0a, 0x9e,
-	0x98, 0xf8, 0x68, 0x22, 0x27, 0x8d, 0x25, 0x72, 0x69, 0x26, 0xd2, 0xe1, 0x9d, 0x9d, 0x89, 0x6f,
-	0x01, 0xf2, 0x88, 0xa8, 0xfa, 0x9f, 0x6a, 0x86, 0x3b, 0x74, 0x02, 0x26, 0x06, 0xb6, 0x71, 0xb3,
-	0x14, 0x37, 0xd5, 0x69, 0x4b, 0x72, 0x6b, 0xb2, 0x90, 0xdc, 0x9a, 0x54, 0xfe, 0xbd, 0x00, 0x10,
-	0x96, 0x30, 0x8c, 0xa3, 0xd9, 0x43, 0x7e, 0x1f, 0x8a, 0x94, 0x10, 0xdb, 0x56, 0xc8, 0x31, 0xa6,
-	0xad, 0x65, 0x3a, 0xc3, 0x9a, 0x71, 0x74, 0xb7, 0x66, 0x1c, 0xf1, 0xcc, 0x56, 0xe7, 0x0f, 0x63,
-	0x4a, 0x93, 0x7f, 0x89, 0xf9, 0x76, 0x00, 0x1d, 0xeb, 0xb6, 0x65, 0xf2, 0x44, 0x25, 0x19, 0xc1,
-	0xad, 0x4f, 0x1c, 0xc0, 0xf3, 0xa8, 0x03, 0x17, 0xe2, 0xd2, 0x71, 0x1a, 0x40, 0x07, 0x34, 0xb6,
-	0x11, 0x7f, 0x65, 0xcc, 0x92, 0x47, 0xbb, 0xac, 0xa9, 0x0a, 0x7c, 0x96, 0x99, 0x98, 0x7f, 0x09,
-	0x33, 0xb1, 0x30, 0xc1, 0x4c, 0xa4, 0x9d, 0x18, 0xaf, 0x6e, 0xc7, 0x4e, 0x4c, 0x79, 0x03, 0x16,
-	0x04, 0x5f, 0x69, 0xde, 0xd2, 0x74, 0x4c, 0xeb, 0xd8, 0x32, 0x87, 0xba, 0x8d, 0xce, 0xd1, 0xf7,
-	0xfa, 0xb0, 0x3f, 0xb4, 0xf9, 0xf6, 0xb8, 0xa4, 0xfc, 0xb6, 0x04, 0x4b, 0x23, 0x2c, 0xc0, 0xab,
-	0x70, 0x65, 0x6f, 0x64, 0x53, 0xaf, 0xee, 0x7a, 0xde, 0x90, 0xe5, 0x51, 0xe8, 0x1c, 0xbe, 0x08,
-	0x78, 0x8b, 0x24, 0x76, 0x08, 0x59, 0x2f, 0x24, 0xe1, 0x15, 0x40, 0xf5, 0x43, 0x62, 0x1c, 0xf9,
-	0xc3, 0xfe, 0x8e, 0xe5, 0xf7, 0xf5, 0xc0, 0x38, 0x44, 0x39, 0x7c, 0x19, 0x2e, 0xb0, 0x1d, 0xbe,
-	0x2d, 0xd2, 0x21, 0x9e, 0xa5, 0xdb, 0xd6, 0x17, 0x84, 0x77, 0xc8, 0xe3, 0x65, 0x58, 0xda, 0x22,
-	0xe1, 0x4e, 0x1a, 0x07, 0x16, 0x94, 0xff, 0x8a, 0xcd, 0x51, 0xcd, 0x38, 0x8a, 0xe2, 0xb7, 0x99,
-	0x5a, 0x97, 0xc5, 0xeb, 0xdc, 0x4b, 0xf0, 0x3a, 0x3f, 0x81, 0xd7, 0xbf, 0xba, 0x5c, 0x60, 0x44,
-	0x6c, 0xf3, 0xa3, 0x62, 0xdb, 0x87, 0xab, 0xd1, 0xc4, 0xa9, 0x78, 0xea, 0x62, 0x72, 0xf5, 0x43,
-	0xb6, 0x15, 0x3f, 0x93, 0x03, 0x0a, 0x94, 0x2c, 0x5f, 0xd3, 0x59, 0xdf, 0x74, 0x59, 0xb7, 0x68,
-	0xf9, 0x9c, 0xa4, 0xf2, 0x3c, 0xf2, 0x97, 0x4f, 0x6c, 0xf7, 0xc5, 0x6c, 0x9a, 0xaf, 0x41, 0x55,
-	0x8c, 0x7e, 0x97, 0x78, 0x7d, 0xce, 0xd3, 0xdc, 0x7a, 0x45, 0x1d, 0x81, 0x2a, 0xdd, 0x48, 0x68,
-	0x7b, 0x8e, 0x1f, 0x95, 0xc8, 0x66, 0x92, 0x9f, 0x9e, 0xc9, 0x28, 0x3f, 0x93, 0x12, 0xee, 0x9d,
-	0x1c, 0x7d, 0x55, 0x7a, 0x5f, 0xc9, 0x23, 0xdd, 0x83, 0x95, 0xb0, 0x6f, 0xea, 0x84, 0x00, 0x73,
-	0x49, 0x2a, 0x0e, 0xf9, 0x11, 0x1f, 0x14, 0x50, 0xde, 0x07, 0x59, 0x0c, 0x5e, 0x25, 0xba, 0x71,
-	0x48, 0xcc, 0x86, 0x63, 0xb6, 0x0f, 0xba, 0x61, 0x9c, 0x3a, 0x75, 0x26, 0xca, 0xf3, 0xa8, 0x6c,
-	0x5c, 0xb7, 0x5d, 0x9f, 0x44, 0x61, 0xef, 0x4c, 0x87, 0x36, 0x83, 0xa5, 0x23, 0x74, 0x43, 0x1d,
-	0xfb, 0xca, 0xa2, 0xfa, 0x0d, 0x09, 0x5e, 0x8b, 0x66, 0x2b, 0x1c, 0xcb, 0x9e, 0xa3, 0x1b, 0x47,
-	0x8e, 0xfb, 0x82, 0x1d, 0xaf, 0x31, 0xa3, 0xe0, 0x69, 0xe6, 0xa7, 0x3e, 0x80, 0x72, 0x2c, 0x26,
-	0xaa, 0x71, 0x33, 0x9d, 0x00, 0x44, 0x72, 0xf2, 0x95, 0x1f, 0x46, 0x4e, 0x56, 0xa4, 0xda, 0x23,
-	0x43, 0x97, 0x46, 0xb5, 0x22, 0x8e, 0xba, 0x73, 0xb3, 0xa3, 0x6e, 0xe5, 0xbf, 0x25, 0xb8, 0x38,
-	0x92, 0x8b, 0x9c, 0xf1, 0x3b, 0x63, 0xb9, 0x45, 0x2e, 0xe3, 0x84, 0xca, 0x5b, 0x80, 0x6c, 0x7d,
-	0x24, 0xea, 0xa1, 0x8a, 0x9a, 0x67, 0x47, 0x89, 0xaa, 0xb4, 0x2d, 0x11, 0xfc, 0x8d, 0x1f, 0x3c,
-	0x28, 0x64, 0x1d, 0x3c, 0x18, 0x89, 0xb7, 0xe7, 0xc6, 0xe2, 0xed, 0x37, 0xa1, 0x1a, 0x0d, 0xcd,
-	0x23, 0xba, 0x79, 0x2a, 0x76, 0x62, 0x79, 0x92, 0x10, 0x0d, 0x5b, 0xa5, 0x4d, 0xca, 0x09, 0x2c,
-	0x0a, 0x06, 0x70, 0x7f, 0x31, 0x63, 0xda, 0x91, 0x01, 0xcd, 0xbd, 0x7c, 0x00, 0x95, 0x4f, 0x07,
-	0x50, 0x95, 0xc8, 0x1c, 0xec, 0x5a, 0x4e, 0x2f, 0xf9, 0xea, 0x3a, 0xbd, 0xa4, 0x6a, 0x0b, 0x5d,
-	0xea, 0x04, 0x7a, 0x30, 0x53, 0x2c, 0xb3, 0x6a, 0xe9, 0xca, 0x7f, 0x16, 0xe0, 0x5a, 0x16, 0x61,
-	0x35, 0x3b, 0x59, 0x1f, 0xfb, 0xc0, 0xbb, 0x00, 0x6c, 0x62, 0x9a, 0x41, 0xf3, 0xa7, 0xdc, 0x2c,
-	0x37, 0x52, 0x62, 0xc8, 0x75, 0x9a, 0x27, 0xdd, 0x84, 0x0a, 0xef, 0x19, 0xf3, 0x83, 0x65, 0xa3,
-	0x0c, 0x18, 0x86, 0x90, 0xab, 0x00, 0x7d, 0xbf, 0xa7, 0xea, 0x01, 0x69, 0x8b, 0xbd, 0x79, 0x49,
-	0x4d, 0x40, 0xf0, 0x6d, 0x40, 0x7d, 0xbf, 0x27, 0x32, 0xf1, 0xc1, 0x30, 0xa0, 0x58, 0x73, 0x0c,
-	0x6b, 0x0c, 0x2e, 0x70, 0x69, 0xcf, 0x68, 0x11, 0x33, 0x4d, 0xe0, 0xb8, 0x29, 0x38, 0x56, 0x20,
-	0xb5, 0x5d, 0x20, 0x4a, 0x05, 0xe9, 0x2d, 0x84, 0xdb, 0x80, 0xf4, 0x63, 0xdd, 0xb2, 0x69, 0xb6,
-	0x16, 0x3a, 0x10, 0x1e, 0xae, 0x8c, 0xc1, 0xf1, 0x3a, 0x2c, 0x0d, 0xa9, 0xc1, 0x88, 0x2d, 0x05,
-	0xcb, 0x54, 0x0b, 0xea, 0x28, 0x18, 0x6f, 0xc2, 0xb5, 0x7d, 0xdb, 0xa5, 0xa0, 0x50, 0x1e, 0x6d,
-	0x67, 0x4f, 0xe0, 0xf8, 0x62, 0xc3, 0xb5, 0xa8, 0x4e, 0xc5, 0xa1, 0x4a, 0xa6, 0x9b, 0x26, 0x8d,
-	0x60, 0x58, 0xfa, 0x59, 0x52, 0xc3, 0x57, 0xea, 0xf2, 0x8c, 0x70, 0x7b, 0xb3, 0x63, 0x39, 0x06,
-	0x3f, 0x8d, 0x54, 0x52, 0x47, 0xa0, 0x18, 0x8b, 0x03, 0x9d, 0x15, 0x7e, 0xe8, 0x84, 0x9d, 0xda,
-	0xa4, 0xee, 0x92, 0xf3, 0xa9, 0x71, 0x32, 0xb0, 0x3c, 0x62, 0xb2, 0x5a, 0xbd, 0xa4, 0x8e, 0x40,
-	0x85, 0xcc, 0x36, 0x75, 0xe3, 0xc8, 0x76, 0x7b, 0xac, 0x2a, 0x5f, 0x50, 0x13, 0x10, 0xe5, 0x33,
-	0xb8, 0x24, 0x34, 0xee, 0x29, 0x09, 0xb6, 0x75, 0x3f, 0xb1, 0x0f, 0xf2, 0x55, 0x0d, 0x75, 0xa2,
-	0x18, 0x3d, 0x4a, 0x3b, 0x52, 0xe8, 0x3a, 0x2c, 0x31, 0x23, 0x94, 0x70, 0x96, 0xd2, 0xec, 0xcc,
-	0xa3, 0x62, 0xa7, 0x06, 0x3a, 0xc3, 0x17, 0xff, 0x3f, 0xb8, 0x1e, 0xcd, 0x83, 0x66, 0xa2, 0x9a,
-	0x49, 0x6c, 0x12, 0x10, 0x6d, 0x10, 0x6e, 0xaa, 0x9c, 0xc1, 0x3d, 0x5f, 0x09, 0x29, 0xec, 0xe8,
-	0xde, 0xd1, 0x16, 0xeb, 0x1f, 0x96, 0xe3, 0x95, 0x7f, 0x94, 0xa2, 0x70, 0xea, 0x29, 0x09, 0x98,
-	0xd7, 0xf5, 0xdb, 0x07, 0x54, 0x2b, 0xfd, 0x81, 0x6e, 0xcc, 0x5c, 0xb4, 0xd7, 0xa0, 0xe4, 0x84,
-	0xb8, 0xc2, 0x50, 0xc7, 0x00, 0xdc, 0x82, 0x02, 0x2b, 0x86, 0xe4, 0xa7, 0x6c, 0xfc, 0x64, 0x7d,
-	0xf5, 0x2e, 0x2b, 0x8d, 0xc0, 0x6e, 0x43, 0xed, 0x34, 0x3b, 0xdd, 0x46, 0xab, 0xab, 0x32, 0x3a,
-	0xca, 0x03, 0x28, 0xb0, 0xc2, 0x48, 0x15, 0x12, 0x6d, 0xe8, 0x1c, 0xc6, 0x50, 0x6d, 0xb5, 0x5b,
-	0x5a, 0x02, 0x26, 0xe1, 0x05, 0xc8, 0xd7, 0xb6, 0xb7, 0x51, 0x4e, 0xf9, 0x01, 0xdc, 0x9c, 0xf2,
-	0xa9, 0xb3, 0x5a, 0xa7, 0x8b, 0x30, 0xcf, 0x1c, 0x01, 0xf7, 0xb3, 0x25, 0x55, 0xbc, 0x29, 0x4e,
-	0x94, 0x4d, 0x3f, 0x25, 0x81, 0x38, 0xf8, 0x3c, 0x83, 0x54, 0x54, 0x92, 0xcb, 0x25, 0x4b, 0x72,
-	0xe3, 0x3e, 0x2a, 0x9f, 0xe1, 0xa3, 0x94, 0xff, 0x90, 0xa2, 0x70, 0x29, 0xfa, 0xe0, 0x37, 0xc4,
-	0xc2, 0xc6, 0x01, 0x42, 0xe1, 0x0c, 0x65, 0xb9, 0xf1, 0xf9, 0xce, 0x65, 0xcd, 0xf7, 0xff, 0x27,
-	0xa7, 0xdb, 0xf6, 0xd8, 0x16, 0x1c, 0xf9, 0x2a, 0x7c, 0x8e, 0x47, 0x99, 0x67, 0x6b, 0x75, 0x7a,
-	0x18, 0xf3, 0xd7, 0x12, 0xac, 0x4d, 0xfa, 0xfe, 0x37, 0x84, 0xed, 0x67, 0x0b, 0x6e, 0x94, 0xe7,
-	0x70, 0x5d, 0x4c, 0xa4, 0x6b, 0xd4, 0xd9, 0xe9, 0x0e, 0x51, 0x44, 0x56, 0xf9, 0x40, 0x67, 0x2f,
-	0x80, 0xb9, 0xc0, 0x88, 0x4c, 0x14, 0xcd, 0x00, 0x0b, 0x81, 0xd1, 0x34, 0x95, 0xdf, 0x94, 0x60,
-	0x75, 0x12, 0xe1, 0xb3, 0xf1, 0x27, 0x11, 0xf9, 0x48, 0x2f, 0x1f, 0xf9, 0xa4, 0xb6, 0x91, 0x7e,
-	0x0c, 0x15, 0x31, 0x96, 0x16, 0x79, 0xd1, 0x3d, 0x71, 0x66, 0x7d, 0x9a, 0x27, 0xb8, 0x5a, 0x10,
-	0xd8, 0x9a, 0x4f, 0x0c, 0xd7, 0x31, 0x13, 0xc9, 0x30, 0x4d, 0x70, 0xbb, 0x81, 0xdd, 0xe1, 0xf0,
-	0x78, 0xfe, 0x51, 0x06, 0xcc, 0xe7, 0xff, 0x0b, 0x09, 0x2e, 0xa4, 0xbe, 0x79, 0xd6, 0x69, 0x7f,
-	0xf3, 0x33, 0x71, 0xe5, 0x8f, 0x62, 0x63, 0x53, 0x33, 0xe3, 0x4d, 0xc2, 0xae, 0x7b, 0x06, 0xd6,
-	0xfe, 0x6f, 0x4d, 0x2f, 0xbd, 0x23, 0x5a, 0x60, 0xc6, 0x38, 0x01, 0x51, 0xfe, 0x39, 0x5e, 0xb1,
-	0x63, 0x63, 0xfe, 0x16, 0x89, 0xe6, 0x63, 0x58, 0x4c, 0x9e, 0x67, 0xf8, 0xf2, 0xc7, 0x6c, 0x94,
-	0x9f, 0xc7, 0x11, 0x40, 0xcd, 0x34, 0x93, 0x44, 0xbf, 0x56, 0x39, 0x7f, 0x6f, 0x64, 0xe8, 0x85,
-	0xac, 0x92, 0x62, 0x72, 0xb4, 0x23, 0xd3, 0xfa, 0x37, 0x29, 0xf2, 0xfb, 0x59, 0xd3, 0xfa, 0x16,
-	0xa9, 0xc2, 0x9f, 0x4a, 0x91, 0xd5, 0x6b, 0x38, 0xe6, 0xd7, 0x28, 0xb2, 0x47, 0x00, 0xd4, 0x9a,
-	0xea, 0x46, 0x10, 0x7a, 0xa1, 0xea, 0xc6, 0xa5, 0xf4, 0xc4, 0xba, 0x27, 0x4e, 0x8d, 0x35, 0xab,
-	0xa5, 0x20, 0x7c, 0x4c, 0x9a, 0x50, 0x3e, 0x81, 0x6f, 0x91, 0x70, 0xfe, 0x30, 0x17, 0x99, 0x50,
-	0x3e, 0xb7, 0xb6, 0x13, 0xd9, 0xa4, 0xaf, 0x6b, 0x7a, 0x91, 0xad, 0xe0, 0xbb, 0xb6, 0xc2, 0x56,
-	0xa4, 0xa5, 0x37, 0x77, 0x56, 0xe9, 0xe1, 0xa7, 0xf0, 0xca, 0xe8, 0x28, 0x35, 0xf7, 0x40, 0xb3,
-	0xdd, 0x17, 0xda, 0x0b, 0x3d, 0x20, 0x1e, 0xcd, 0x5a, 0x44, 0x15, 0xf7, 0x5a, 0x7a, 0xcc, 0xed,
-	0x83, 0x6d, 0xf7, 0xc5, 0xa7, 0x21, 0x4e, 0xd2, 0x72, 0x8f, 0xb1, 0xea, 0x5b, 0xa4, 0x11, 0xff,
-	0x90, 0x8b, 0xec, 0x6d, 0x38, 0xcd, 0x94, 0x25, 0xff, 0xc6, 0xd8, 0x5b, 0xe9, 0x65, 0xec, 0xed,
-	0xd7, 0xaf, 0x3e, 0x09, 0x83, 0x9f, 0xc5, 0xd7, 0x6f, 0x91, 0x06, 0xfd, 0xfc, 0x36, 0x94, 0x37,
-	0x75, 0x9f, 0x88, 0xd9, 0xe2, 0x0d, 0x51, 0x62, 0xe1, 0x47, 0x85, 0x57, 0xd3, 0x94, 0x13, 0x88,
-	0xe9, 0x8b, 0xb3, 0x0b, 0xa2, 0x50, 0x23, 0xca, 0xb9, 0xd7, 0x32, 0xb3, 0xf3, 0x30, 0x94, 0x0f,
-	0x91, 0xf1, 0x07, 0x50, 0x8a, 0x0a, 0x3c, 0xa2, 0xf6, 0xb0, 0x3a, 0xad, 0x27, 0x31, 0xd5, 0xb8,
-	0x03, 0xed, 0x1d, 0x6d, 0x7b, 0x08, 0x0d, 0x5b, 0x9d, 0x7e, 0x1c, 0x54, 0x8d, 0x3b, 0xe0, 0xf7,
-	0xa0, 0x18, 0x96, 0x58, 0x19, 0x4b, 0xca, 0x19, 0xd7, 0xf4, 0x92, 0x05, 0x67, 0x35, 0x42, 0xc7,
-	0x77, 0xa0, 0xe0, 0x13, 0x87, 0xef, 0x26, 0x95, 0x47, 0x99, 0x9f, 0xdc, 0xd6, 0x67, 0x68, 0xb8,
-	0x0e, 0x8b, 0xf4, 0x57, 0xf3, 0xf8, 0x2e, 0xbf, 0x38, 0x67, 0xb2, 0x36, 0xb9, 0x1b, 0xc7, 0x53,
-	0xcb, 0x7e, 0xe2, 0x68, 0xc0, 0x77, 0x01, 0x18, 0x11, 0x2e, 0xf6, 0xe2, 0xb4, 0xd9, 0x86, 0x1b,
-	0xf1, 0x6a, 0xc9, 0x8f, 0xf6, 0xe4, 0x1f, 0xc5, 0xf2, 0x2f, 0x4d, 0x91, 0x50, 0x78, 0xaa, 0x34,
-	0xda, 0x3e, 0xbb, 0x0d, 0x79, 0xdd, 0x38, 0x12, 0xd7, 0x29, 0xe4, 0x49, 0x3b, 0xba, 0x2a, 0x45,
-	0xa2, 0x6c, 0x39, 0xb0, 0xdd, 0x17, 0xac, 0xb6, 0x37, 0x89, 0x2d, 0x4f, 0x6c, 0xf7, 0x85, 0xca,
-	0xd0, 0xf0, 0x26, 0x94, 0x87, 0xf1, 0xbe, 0x95, 0x38, 0x06, 0x9c, 0xcd, 0x95, 0xc4, 0xfe, 0x96,
-	0x9a, 0xec, 0x44, 0xa7, 0xe5, 0xf3, 0x8d, 0x00, 0x56, 0x12, 0x9c, 0x34, 0x2d, 0xb1, 0x59, 0xa0,
-	0x86, 0xc8, 0xf8, 0x5e, 0xb8, 0x7e, 0xaa, 0x59, 0x86, 0x29, 0x59, 0x69, 0x0f, 0x17, 0x50, 0x13,
-	0xaa, 0x86, 0xed, 0xfa, 0x24, 0x3a, 0xd7, 0xc3, 0x2a, 0x88, 0xe5, 0x0d, 0x25, 0x5b, 0x5f, 0x93,
-	0xfb, 0x47, 0x6a, 0xc5, 0x48, 0x6d, 0x27, 0x45, 0xa4, 0xc2, 0x4a, 0x1a, 0x3b, 0xdb, 0x3b, 0x95,
-	0x54, 0x58, 0x4f, 0x15, 0xa4, 0xa2, 0x1d, 0xa4, 0x36, 0xbb, 0x73, 0xc0, 0xf7, 0x10, 0x42, 0x46,
-	0xf0, 0xd3, 0xbe, 0xaf, 0x4e, 0x55, 0xe6, 0x90, 0x21, 0x4b, 0x83, 0x91, 0xed, 0x94, 0x3b, 0x50,
-	0x18, 0x58, 0x4e, 0x8f, 0x5d, 0x72, 0x9c, 0x24, 0xc3, 0x5d, 0xcb, 0xe9, 0xa9, 0x0c, 0x8d, 0xa1,
-	0xbb, 0x4e, 0x8f, 0xdd, 0x76, 0x9c, 0x88, 0xee, 0x32, 0x74, 0xd7, 0xe9, 0xe1, 0x5f, 0x83, 0x1b,
-	0xde, 0xf4, 0x8d, 0x2a, 0x76, 0x27, 0xb2, 0xbc, 0xf1, 0x30, 0x93, 0xd2, 0x8c, 0x4d, 0x2e, 0x75,
-	0x16, 0x71, 0xfc, 0x7f, 0xe1, 0x7c, 0x94, 0xdc, 0x85, 0xa7, 0x52, 0xe5, 0x0b, 0xec, 0x8b, 0x77,
-	0x5e, 0xee, 0x28, 0xeb, 0x38, 0x1d, 0xec, 0x27, 0x2e, 0xd9, 0x8d, 0x1e, 0x79, 0x65, 0x97, 0x38,
-	0xcb, 0x1b, 0x6f, 0x7f, 0xa9, 0xf3, 0xb2, 0xea, 0x64, 0xba, 0x74, 0x11, 0xd9, 0xf1, 0xf9, 0x46,
-	0x76, 0x05, 0x74, 0xd2, 0x22, 0x4a, 0x9e, 0x83, 0x4c, 0x76, 0xc2, 0x9f, 0xc3, 0xb2, 0x3d, 0x7e,
-	0x46, 0x92, 0x5d, 0x11, 0x2d, 0x4f, 0x38, 0xc5, 0x91, 0x71, 0xa6, 0x52, 0xcd, 0x22, 0x82, 0x3f,
-	0x8e, 0x2f, 0x3d, 0xb0, 0xfd, 0x1b, 0x76, 0x9d, 0x74, 0xa2, 0xaa, 0xa7, 0x76, 0x7a, 0xd2, 0x1d,
-	0xf1, 0x8f, 0xe0, 0x82, 0x91, 0xb5, 0x13, 0xc4, 0x2e, 0xa0, 0x96, 0x37, 0x6e, 0x9f, 0x81, 0x62,
-	0x38, 0xd2, 0x6c, 0x42, 0xb8, 0x0b, 0xe7, 0xbd, 0xd1, 0x4d, 0x63, 0x76, 0x77, 0xb5, 0x3c, 0xe1,
-	0xb2, 0xc8, 0xd8, 0x16, 0xb3, 0x3a, 0x4e, 0x80, 0x3b, 0x0b, 0x72, 0xc4, 0x2e, 0xb5, 0x4e, 0x76,
-	0x16, 0xe4, 0x48, 0x65, 0x68, 0xf8, 0x13, 0x40, 0xbd, 0x91, 0x2d, 0x02, 0x76, 0xd5, 0xb5, 0xbc,
-	0x71, 0x6b, 0x52, 0xc5, 0x3b, 0xbd, 0x9f, 0x30, 0xd6, 0x1d, 0x5b, 0x20, 0xf7, 0x26, 0xec, 0x3a,
-	0xb0, 0x0b, 0xb2, 0x93, 0x94, 0x7f, 0xd2, 0x56, 0x85, 0x3a, 0x91, 0x1c, 0xd6, 0xe0, 0x22, 0x3f,
-	0x0b, 0x11, 0xd9, 0x36, 0xcd, 0x60, 0x27, 0x29, 0xe4, 0x1b, 0xec, 0x43, 0x6f, 0x4c, 0xf0, 0x20,
-	0xe3, 0x47, 0x2f, 0xd4, 0x15, 0x3d, 0xeb, 0x40, 0xc6, 0x0f, 0x61, 0xa5, 0x97, 0x51, 0x78, 0x97,
-	0xd7, 0xa6, 0x90, 0xcf, 0xac, 0xd4, 0x67, 0x92, 0xc1, 0x43, 0xb8, 0xd6, 0x9b, 0x52, 0xd7, 0x97,
-	0x5f, 0x61, 0x9f, 0xb9, 0x7f, 0xf6, 0xcf, 0x84, 0x2c, 0x9b, 0x4a, 0x96, 0x46, 0x32, 0xbd, 0xb0,
-	0xfe, 0x2e, 0x2b, 0x53, 0x7c, 0x7b, 0x5c, 0xa5, 0x8f, 0x3b, 0x50, 0xbd, 0xed, 0x8d, 0x56, 0xef,
-	0xe5, 0x9b, 0x53, 0xf4, 0x76, 0xac, 0xd6, 0xaf, 0x8e, 0x13, 0xa0, 0x2b, 0x57, 0x4f, 0x5e, 0x9e,
-	0x93, 0x5f, 0x9d, 0xb2, 0x72, 0x53, 0xd7, 0xec, 0xd4, 0x74, 0x47, 0xdc, 0x80, 0x45, 0x3d, 0x71,
-	0x4f, 0x50, 0xbe, 0xc5, 0x08, 0xbd, 0x32, 0x91, 0x50, 0x34, 0xaa, 0x54, 0x37, 0x6a, 0xea, 0xf4,
-	0xf8, 0x70, 0x92, 0xfc, 0xda, 0x14, 0x53, 0x97, 0x38, 0xc4, 0xa4, 0x26, 0x3b, 0x09, 0x56, 0xa5,
-	0x2b, 0xef, 0xf2, 0xeb, 0xd3, 0x59, 0x35, 0x52, 0xa7, 0x1f, 0x27, 0x80, 0x6d, 0xb8, 0xdc, 0x9b,
-	0x54, 0xcf, 0x97, 0xd7, 0x19, 0xf5, 0xbb, 0x67, 0xa4, 0x1e, 0x99, 0xfc, 0x89, 0x04, 0xf1, 0x03,
-	0x98, 0x77, 0x58, 0x6d, 0x58, 0xde, 0xc8, 0xda, 0xad, 0x4b, 0x97, 0x8f, 0x05, 0x2a, 0x7e, 0x06,
-	0x55, 0x27, 0x55, 0x50, 0x96, 0x1f, 0xb0, 0xce, 0x37, 0xa7, 0x75, 0x0e, 0x07, 0x33, 0xd2, 0x95,
-	0x72, 0x51, 0x1f, 0xad, 0x86, 0xca, 0x0f, 0xa7, 0x70, 0x71, 0xbc, 0x76, 0x3a, 0x4e, 0x80, 0x72,
-	0x51, 0x9f, 0x54, 0x63, 0x95, 0xdf, 0x9e, 0xc2, 0xc5, 0x89, 0x95, 0x59, 0x75, 0x32, 0x41, 0x6a,
-	0x48, 0xf4, 0x8c, 0x4a, 0x9e, 0xfc, 0x68, 0x9a, 0x9d, 0xca, 0x2a, 0xfd, 0x65, 0x92, 0xa1, 0x86,
-	0x44, 0x9f, 0x52, 0x28, 0x94, 0xdf, 0x99, 0x62, 0x48, 0xa6, 0x55, 0x18, 0xd5, 0xa9, 0x64, 0xa9,
-	0x6e, 0x10, 0x96, 0xae, 0xca, 0xef, 0x4e, 0xd1, 0x0d, 0x51, 0x17, 0x13, 0xa8, 0x54, 0x37, 0x48,
-	0xaa, 0x52, 0x26, 0xbf, 0x37, 0x45, 0x37, 0xd2, 0x45, 0x35, 0x75, 0xa4, 0x2b, 0xd5, 0x0d, 0x32,
-	0x5a, 0x6f, 0x91, 0x1f, 0x4f, 0xd1, 0x8d, 0xf1, 0xea, 0xcc, 0x38, 0x01, 0xaa, 0x1b, 0x64, 0x52,
-	0x15, 0x47, 0x7e, 0x7f, 0x8a, 0x6e, 0x4c, 0xac, 0xfd, 0xa8, 0x93, 0x09, 0x52, 0xdd, 0x20, 0x19,
-	0x49, 0xbf, 0xfc, 0xc1, 0x14, 0xdd, 0xc8, 0xac, 0x12, 0x64, 0x92, 0xa1, 0xba, 0x41, 0xa6, 0xd4,
-	0x14, 0xe4, 0xef, 0x4e, 0xd1, 0x8d, 0x69, 0xc5, 0x08, 0x75, 0x2a, 0x59, 0x6c, 0xc0, 0xc5, 0x20,
-	0x73, 0xb3, 0x4e, 0xfe, 0x1e, 0xfb, 0xe0, 0x9b, 0x99, 0x1f, 0xcc, 0xde, 0xdf, 0x53, 0x27, 0x90,
-	0xc2, 0x07, 0x70, 0x29, 0xc8, 0xde, 0xb8, 0x93, 0x3f, 0x64, 0x5f, 0x79, 0xeb, 0x6c, 0x5f, 0x11,
-	0x33, 0x9a, 0x44, 0x4c, 0xf9, 0x49, 0x49, 0xfc, 0xe5, 0x56, 0x19, 0x16, 0xea, 0xed, 0x56, 0xab,
-	0x51, 0xef, 0xa2, 0x1c, 0xae, 0x40, 0x49, 0xbc, 0x34, 0xb6, 0x50, 0x9e, 0xbe, 0x76, 0xf6, 0x36,
-	0x3b, 0x75, 0xb5, 0xb9, 0xd9, 0x40, 0x05, 0xf6, 0xef, 0x5b, 0x6a, 0x7b, 0x6b, 0xaf, 0xde, 0x50,
-	0xf9, 0x3f, 0x6d, 0x75, 0x1a, 0xad, 0x2d, 0x34, 0x8f, 0x11, 0x2c, 0xd2, 0x27, 0x4d, 0x6d, 0xd4,
-	0x1b, 0xcd, 0xdd, 0x2e, 0x5a, 0xc0, 0x55, 0x00, 0x06, 0x69, 0xa8, 0x6a, 0x5b, 0x45, 0x45, 0xfa,
-	0x91, 0x9d, 0x46, 0xa7, 0x53, 0x7b, 0xda, 0x40, 0x25, 0x76, 0x16, 0xa0, 0xfe, 0x0c, 0x01, 0xa5,
-	0xf0, 0x64, 0xbb, 0xfd, 0x29, 0x2a, 0xe3, 0x25, 0x28, 0xef, 0xb5, 0xe2, 0x4f, 0x2d, 0xb2, 0x3b,
-	0x67, 0x7b, 0xf5, 0x7a, 0xa3, 0xd3, 0x41, 0x15, 0x5c, 0x82, 0x39, 0x4e, 0xa8, 0x8a, 0x31, 0x54,
-	0xeb, 0xdb, 0xed, 0x4e, 0x43, 0x8b, 0x06, 0xb2, 0x14, 0xc3, 0xea, 0xed, 0x56, 0x67, 0x6f, 0xa7,
-	0xa1, 0x22, 0x84, 0x57, 0x00, 0x85, 0x18, 0x5a, 0x48, 0xe8, 0x3c, 0xfd, 0xe0, 0x6e, 0xb3, 0xf5,
-	0x14, 0x61, 0xf6, 0xd4, 0x6e, 0x3d, 0x45, 0xcb, 0xf8, 0x16, 0xbc, 0xa2, 0x36, 0xb6, 0x1a, 0xdb,
-	0xcd, 0xe7, 0x0d, 0x55, 0xdb, 0x6b, 0xd5, 0xea, 0xcf, 0x5a, 0xed, 0x4f, 0xb7, 0x1b, 0x5b, 0x4f,
-	0x1b, 0x5b, 0x9a, 0x18, 0x73, 0x07, 0xad, 0x60, 0x19, 0x56, 0x76, 0x6b, 0x6a, 0xb7, 0xd9, 0x6d,
-	0xb6, 0x5b, 0xac, 0xa5, 0x5b, 0xdb, 0xaa, 0x75, 0x6b, 0xe8, 0x02, 0x7e, 0x05, 0xae, 0x67, 0xb5,
-	0x68, 0x6a, 0xa3, 0xb3, 0xdb, 0x6e, 0x75, 0x1a, 0xe8, 0x22, 0xbb, 0x65, 0xd9, 0x6e, 0x3f, 0xdb,
-	0xdb, 0x45, 0x97, 0xf0, 0x32, 0x2c, 0xf1, 0xe7, 0x18, 0x41, 0x66, 0x53, 0x10, 0x83, 0xd7, 0x3a,
-	0xdd, 0x5a, 0xb7, 0x83, 0x2e, 0xe3, 0xab, 0x70, 0x29, 0x0d, 0x8b, 0x3b, 0x5c, 0xa1, 0xc3, 0x51,
-	0x1b, 0xb5, 0xfa, 0xc7, 0x8d, 0x2d, 0x8d, 0xf2, 0xb9, 0xfd, 0x44, 0xeb, 0xb6, 0x77, 0x9b, 0x75,
-	0x74, 0x95, 0x8b, 0xa5, 0xf1, 0x0c, 0x5d, 0xc3, 0x97, 0x60, 0xf9, 0x69, 0xa3, 0xab, 0x6d, 0xd7,
-	0x3a, 0xdd, 0x70, 0x26, 0x5a, 0x73, 0x0b, 0x5d, 0xc7, 0x6b, 0x70, 0x2d, 0xa3, 0x21, 0x26, 0xbf,
-	0x8a, 0xaf, 0xc0, 0xc5, 0x5a, 0xbd, 0xdb, 0x7c, 0x1e, 0xf3, 0x54, 0xab, 0x7f, 0x5c, 0x6b, 0x3d,
-	0x6d, 0xa0, 0x1b, 0x74, 0x5c, 0xb4, 0x37, 0xfb, 0x5e, 0x87, 0x7e, 0xb9, 0x55, 0xdb, 0x69, 0x74,
-	0x76, 0x6b, 0xf5, 0x06, 0x5a, 0xc3, 0xaf, 0xc2, 0xda, 0x84, 0xc6, 0x98, 0xfc, 0x2b, 0x54, 0x3d,
-	0x28, 0x56, 0xa7, 0xfe, 0x71, 0x63, 0xa7, 0x86, 0x94, 0x70, 0xa4, 0xfc, 0x3d, 0x46, 0xbc, 0x49,
-	0xf9, 0x52, 0xdb, 0xeb, 0x7e, 0x4c, 0x3f, 0xbe, 0xbd, 0xdd, 0xa0, 0xdf, 0x7f, 0x15, 0x9f, 0x87,
-	0x0a, 0x83, 0x45, 0x68, 0xb7, 0xa8, 0x02, 0xd6, 0xea, 0xcf, 0x62, 0xc8, 0x6b, 0x94, 0x3f, 0x94,
-	0x62, 0x5b, 0xd5, 0xea, 0x6a, 0xa3, 0xd6, 0x6d, 0x84, 0xdf, 0x7a, 0x9d, 0x8a, 0x2b, 0xab, 0x25,
-	0xee, 0xbc, 0x4e, 0x95, 0xaf, 0xd5, 0xf8, 0x54, 0xeb, 0xfe, 0x9f, 0x16, 0xda, 0xa0, 0x9a, 0x24,
-	0x5e, 0x62, 0x94, 0x07, 0x94, 0x7e, 0x6d, 0x6b, 0x4b, 0x8b, 0x04, 0xaf, 0x75, 0xdb, 0x0c, 0xff,
-	0x21, 0xa5, 0x9f, 0xd5, 0x12, 0x77, 0x7e, 0x9b, 0x72, 0x90, 0xa2, 0x08, 0x7d, 0xdf, 0x4d, 0xf6,
-	0x7f, 0x44, 0x39, 0x38, 0xa1, 0x31, 0x26, 0xf1, 0x0e, 0x1d, 0x22, 0x95, 0x3b, 0xed, 0xf2, 0x2e,
-	0x1d, 0xa2, 0x78, 0x89, 0x51, 0xde, 0xa3, 0x43, 0x0c, 0xa1, 0xed, 0x56, 0x3c, 0x1e, 0xf4, 0x98,
-	0x0e, 0x31, 0xab, 0x25, 0xee, 0xfc, 0x3e, 0x1d, 0x62, 0x02, 0x25, 0x39, 0x18, 0xf4, 0x01, 0x1d,
-	0xe2, 0x84, 0xc6, 0x98, 0xc4, 0x77, 0xf1, 0x75, 0xb8, 0xdc, 0xad, 0x6b, 0xf5, 0xed, 0x66, 0xa3,
-	0xd5, 0xd5, 0x84, 0x55, 0xd1, 0xd4, 0xc6, 0x27, 0x7b, 0x8d, 0x4e, 0x17, 0x7d, 0x0f, 0xaf, 0xc2,
-	0x95, 0xac, 0x66, 0xd1, 0xfd, 0xc3, 0xdb, 0x5b, 0xec, 0xf6, 0x5c, 0xf2, 0x7f, 0xbe, 0xd8, 0xbf,
-	0x03, 0xb6, 0x5b, 0x0d, 0x74, 0x8e, 0x9a, 0x90, 0xed, 0xcf, 0x1f, 0xf2, 0xbf, 0x06, 0xfc, 0x7c,
-	0xbb, 0xb9, 0x89, 0x72, 0xec, 0xa9, 0xd3, 0xa5, 0x56, 0x0b, 0x60, 0xbe, 0xd3, 0xaa, 0xed, 0xee,
-	0x7e, 0x86, 0x0a, 0xb7, 0x1b, 0x80, 0xc7, 0xaf, 0x79, 0x25, 0xae, 0x4c, 0x9f, 0x4b, 0xdf, 0xa6,
-	0x66, 0xf7, 0x01, 0x3e, 0xd5, 0xad, 0xe0, 0x89, 0xeb, 0xc5, 0xd0, 0xdc, 0xed, 0x5f, 0x9f, 0x83,
-	0x72, 0xa2, 0x28, 0x4c, 0x15, 0x6e, 0xcf, 0x39, 0x72, 0xdc, 0x17, 0xe2, 0x06, 0xc0, 0x39, 0xaa,
-	0x95, 0x61, 0x6d, 0x21, 0x71, 0xb5, 0x60, 0x97, 0x78, 0x3e, 0xbb, 0xef, 0x69, 0x88, 0xfb, 0x03,
-	0x39, 0xaa, 0xeb, 0x34, 0x46, 0x27, 0x4e, 0x60, 0x19, 0xf1, 0xfd, 0x05, 0x94, 0xc7, 0x17, 0x01,
-	0xd7, 0xf8, 0x15, 0xc8, 0x2f, 0x12, 0xf0, 0x02, 0xfd, 0x56, 0x98, 0xc3, 0x6d, 0x0e, 0xfd, 0x53,
-	0x34, 0x47, 0x4d, 0x88, 0xb8, 0x9c, 0xd8, 0x72, 0x03, 0x76, 0xbc, 0x15, 0xcd, 0x53, 0x3b, 0x16,
-	0xce, 0x74, 0x93, 0x9f, 0x21, 0xfc, 0x64, 0xe8, 0x06, 0x7a, 0xe3, 0xc4, 0x20, 0xc4, 0x24, 0xbc,
-	0x16, 0x87, 0x16, 0xf0, 0x1b, 0x70, 0x6b, 0x2a, 0xda, 0x89, 0x41, 0xf8, 0x95, 0x89, 0x22, 0x9d,
-	0x52, 0x78, 0x35, 0x82, 0xf7, 0x2e, 0x51, 0xb5, 0xd8, 0x73, 0xc4, 0xdf, 0xad, 0x10, 0x53, 0x1c,
-	0x66, 0xe1, 0x8d, 0x40, 0xf1, 0x59, 0x86, 0xd6, 0x72, 0x83, 0x27, 0xee, 0xd0, 0x31, 0x51, 0x99,
-	0xea, 0x60, 0xd2, 0x95, 0x46, 0x2d, 0x8b, 0xec, 0xde, 0x45, 0x78, 0xe8, 0x32, 0x84, 0x56, 0xe8,
-	0xcc, 0xba, 0xae, 0xbb, 0xa3, 0x3b, 0xa7, 0xc2, 0x1f, 0xfa, 0xa8, 0x4a, 0x89, 0x30, 0xba, 0x5d,
-	0xe2, 0xf5, 0x2d, 0x47, 0x0f, 0xc2, 0xc9, 0x2c, 0x51, 0xd6, 0x44, 0x93, 0xa1, 0xac, 0x61, 0x76,
-	0xbf, 0xe9, 0xb0, 0xdb, 0x30, 0x7c, 0x28, 0x7a, 0x9f, 0xa0, 0xf3, 0x94, 0xb5, 0x4d, 0x76, 0x39,
-	0x44, 0x0f, 0xac, 0x7d, 0x5b, 0xe4, 0x03, 0x08, 0x53, 0x59, 0x84, 0x83, 0xa8, 0xf9, 0xbe, 0xd5,
-	0x13, 0x53, 0x59, 0xc6, 0x0a, 0xac, 0x76, 0x3d, 0xdd, 0xf1, 0xf9, 0xfe, 0x49, 0xdd, 0x75, 0x3d,
-	0x93, 0x7e, 0xd9, 0x8d, 0xc7, 0xba, 0x92, 0xfc, 0xd4, 0x09, 0xfb, 0x07, 0x83, 0xa1, 0x8f, 0x2e,
-	0xd0, 0x19, 0xb4, 0xdc, 0xa0, 0x66, 0xdb, 0xee, 0x8b, 0x70, 0x9c, 0x17, 0xe9, 0x77, 0x52, 0xe4,
-	0x9c, 0x03, 0xdb, 0x32, 0x02, 0x74, 0x69, 0xa4, 0x21, 0x22, 0x2e, 0x8b, 0x7f, 0x85, 0x64, 0x33,
-	0x7b, 0x42, 0xb5, 0xc7, 0x44, 0x97, 0x6f, 0x3f, 0x03, 0x48, 0x5c, 0x3a, 0xa6, 0xa6, 0x31, 0xfe,
-	0x6f, 0x13, 0xfe, 0xa7, 0x99, 0xcb, 0xb0, 0x14, 0xc3, 0x3e, 0x33, 0xf4, 0xe7, 0xf7, 0xb9, 0x1a,
-	0xc6, 0xc0, 0x1a, 0xd5, 0x3c, 0x1f, 0xe5, 0x6e, 0xff, 0x4c, 0x82, 0xa5, 0xdd, 0x91, 0x7f, 0xb0,
-	0x99, 0x87, 0xdc, 0xf1, 0x3d, 0x74, 0x8e, 0xfd, 0xd2, 0x9e, 0xf4, 0x77, 0x03, 0xe5, 0xd8, 0xef,
-	0x03, 0x94, 0x67, 0xbf, 0x0f, 0x51, 0x81, 0xfd, 0xbe, 0x8d, 0xe6, 0xd8, 0xef, 0x23, 0x34, 0xcf,
-	0x7e, 0xdf, 0x41, 0x0b, 0xec, 0xf7, 0x5d, 0x54, 0x64, 0xbf, 0xef, 0x71, 0x47, 0x7f, 0x7c, 0xff,
-	0x1e, 0x02, 0xfe, 0x70, 0x1f, 0x95, 0xf9, 0xc3, 0x06, 0x5a, 0xe4, 0x0f, 0x0f, 0x50, 0x85, 0x3f,
-	0x3c, 0x44, 0x55, 0xfe, 0xf0, 0x36, 0x5a, 0xe2, 0x0f, 0x8f, 0x10, 0xe2, 0x0f, 0xef, 0xa0, 0xf3,
-	0xfc, 0xe1, 0x5d, 0x84, 0xf9, 0xc3, 0x7b, 0x68, 0xf9, 0xf6, 0x9b, 0xc9, 0x3f, 0x6a, 0x11, 0x67,
-	0x10, 0x6b, 0x7b, 0xdd, 0xb6, 0xd6, 0xd9, 0xdd, 0x6e, 0x76, 0xc5, 0x9f, 0x22, 0x74, 0x9b, 0xf5,
-	0x67, 0x9f, 0x21, 0xe9, 0xb6, 0x02, 0xa5, 0x68, 0xaf, 0x8b, 0x36, 0xd4, 0xdb, 0x3b, 0x3b, 0x0c,
-	0xa9, 0x04, 0x73, 0xb5, 0xcd, 0xb6, 0xda, 0x45, 0xd2, 0xe6, 0xc6, 0xdf, 0xfc, 0x72, 0x55, 0xfa,
-	0xbb, 0x5f, 0xae, 0x4a, 0xff, 0xf4, 0xcb, 0x55, 0x09, 0x14, 0xd7, 0xeb, 0xdd, 0xd5, 0x07, 0xba,
-	0x71, 0x48, 0xc2, 0x68, 0xcb, 0x70, 0xfb, 0x7d, 0xd7, 0xb9, 0xab, 0x87, 0x7f, 0xb4, 0xfa, 0x71,
-	0xfe, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x04, 0x04, 0x06, 0xb1, 0x7c, 0x55, 0x00, 0x00,
+	// 6793 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x4d, 0x8c, 0x1b, 0x47,
+	0x76, 0xb0, 0x9a, 0xe4, 0xcc, 0x90, 0x8f, 0x43, 0x4e, 0xa9, 0x66, 0x24, 0xb5, 0xfe, 0x46, 0x23,
+	0xca, 0xb2, 0xc7, 0xb2, 0xa5, 0x95, 0x46, 0xb2, 0x6c, 0xcb, 0xf6, 0xda, 0x1c, 0x0e, 0x25, 0x71,
+	0x35, 0x22, 0xe9, 0x26, 0x47, 0xfa, 0xec, 0xef, 0xdb, 0xaf, 0xb7, 0xd5, 0x5d, 0xc3, 0x69, 0x4c,
+	0xb3, 0x9b, 0xdb, 0xdd, 0x9c, 0x1f, 0x03, 0xc9, 0x21, 0x87, 0x1c, 0x02, 0x04, 0x39, 0x04, 0x48,
+	0x82, 0x1c, 0xb2, 0xc8, 0x29, 0x39, 0x05, 0x08, 0x90, 0x43, 0x80, 0x05, 0x92, 0x5c, 0xf2, 0x03,
+	0xe4, 0x92, 0x2c, 0x92, 0xc3, 0x22, 0x97, 0x60, 0xf3, 0x77, 0x08, 0x72, 0xce, 0x29, 0x48, 0x50,
+	0x3f, 0xfd, 0x47, 0x36, 0xc9, 0x19, 0x7b, 0x03, 0x1b, 0x3e, 0xb1, 0xfb, 0xd5, 0xab, 0xd7, 0x55,
+	0xef, 0xbd, 0x7a, 0xef, 0xd5, 0x7b, 0x55, 0x84, 0xa5, 0xf6, 0xd0, 0xf2, 0x34, 0xb7, 0x3a, 0x30,
+	0xef, 0x0c, 0x5c, 0xc7, 0x77, 0xf0, 0xe2, 0x80, 0x01, 0xf8, 0x5b, 0xe5, 0x8f, 0xb2, 0x30, 0xdf,
+	0xd1, 0xf7, 0x48, 0x5f, 0xc3, 0x18, 0x72, 0xb6, 0xd6, 0x27, 0xb2, 0xb4, 0x96, 0x59, 0x2f, 0x28,
+	0xec, 0x19, 0x5f, 0x83, 0xa2, 0xc7, 0x5a, 0x55, 0x43, 0xf3, 0x35, 0x39, 0xbb, 0x96, 0x59, 0x5f,
+	0x54, 0x80, 0x83, 0xb6, 0x34, 0x5f, 0xc3, 0xb7, 0x21, 0xe7, 0x1f, 0x0f, 0x88, 0x9c, 0x5b, 0xcb,
+	0xac, 0x97, 0x37, 0x2e, 0xde, 0x89, 0x13, 0xbf, 0xc3, 0x09, 0xdf, 0xe9, 0x1e, 0x0f, 0x88, 0xc2,
+	0xd0, 0xf0, 0x43, 0x80, 0x81, 0xeb, 0x0c, 0x88, 0xeb, 0x9b, 0xc4, 0x93, 0xe7, 0xd6, 0xb2, 0xeb,
+	0xc5, 0x8d, 0xf3, 0xc9, 0x4e, 0xcf, 0xc8, 0xf1, 0x0b, 0xcd, 0x1a, 0x12, 0x25, 0x86, 0x59, 0xf9,
+	0xd5, 0x0c, 0xe4, 0x28, 0x19, 0x9c, 0x87, 0x5c, 0xd3, 0xb1, 0x09, 0x3a, 0x83, 0x01, 0xe6, 0x3b,
+	0xbe, 0x6b, 0xda, 0x3d, 0x24, 0x51, 0xe8, 0xf7, 0x3c, 0xc7, 0x46, 0x19, 0xbc, 0x08, 0xf9, 0x36,
+	0x25, 0xf3, 0x6a, 0xb8, 0x8b, 0xb2, 0x14, 0x5e, 0x3d, 0x70, 0x1d, 0x94, 0xa3, 0x4f, 0x9b, 0x8e,
+	0x63, 0xa1, 0x39, 0xfa, 0xd4, 0xb0, 0xfd, 0xf7, 0xd0, 0x3c, 0x2e, 0xc0, 0x5c, 0xc3, 0xf6, 0xef,
+	0x3d, 0x44, 0x0b, 0xe2, 0xf1, 0xfe, 0x06, 0xca, 0x8b, 0xc7, 0x87, 0x0f, 0x50, 0x81, 0x3e, 0x3e,
+	0xb6, 0x1c, 0xcd, 0x47, 0x40, 0xbf, 0xb6, 0xe5, 0x0c, 0x5f, 0x59, 0x04, 0x15, 0x29, 0x85, 0x2d,
+	0xcd, 0x27, 0x68, 0x91, 0x3e, 0x75, 0xcd, 0x3e, 0x41, 0x25, 0x5c, 0x82, 0x02, 0x7d, 0xf2, 0x7c,
+	0xad, 0x3f, 0x40, 0x65, 0x3a, 0x8c, 0x60, 0x1e, 0x68, 0x09, 0x17, 0x61, 0xa1, 0x61, 0x7b, 0xbe,
+	0x66, 0xfb, 0x08, 0x51, 0xcc, 0x6d, 0x47, 0xd7, 0x2c, 0x46, 0xe2, 0x6c, 0xf8, 0xca, 0xe8, 0x60,
+	0x7c, 0x16, 0x4a, 0x61, 0x2b, 0x03, 0x2d, 0x63, 0x0c, 0xe5, 0x60, 0x4a, 0x4d, 0xcd, 0x37, 0x0f,
+	0x08, 0x5a, 0xa9, 0xfc, 0x46, 0x06, 0x4a, 0xcf, 0x89, 0xe7, 0x69, 0x3d, 0xd2, 0x30, 0x98, 0x20,
+	0x2e, 0x41, 0xde, 0x22, 0x46, 0x8f, 0xb8, 0x0d, 0x83, 0x49, 0x30, 0xa7, 0x84, 0xef, 0x58, 0x86,
+	0x05, 0x62, 0xfb, 0xee, 0x71, 0xc3, 0x90, 0x33, 0xac, 0x29, 0x78, 0xc5, 0x6b, 0x50, 0x18, 0x68,
+	0xae, 0x6f, 0xfa, 0xa6, 0x63, 0xcb, 0xd9, 0x35, 0x69, 0x7d, 0xee, 0x51, 0xe6, 0xf6, 0x3d, 0x25,
+	0x02, 0xe2, 0x1b, 0x50, 0x7c, 0xa5, 0xf9, 0xfa, 0x9e, 0x6a, 0xda, 0x06, 0x39, 0x92, 0x73, 0x21,
+	0x0e, 0x30, 0x70, 0x83, 0x42, 0xf1, 0x05, 0x58, 0xd0, 0xf4, 0x7d, 0xd5, 0x23, 0x3e, 0x93, 0x69,
+	0x56, 0x99, 0xd7, 0xf4, 0xfd, 0x0e, 0xf1, 0xf1, 0x55, 0xe0, 0x68, 0xaa, 0x67, 0x7e, 0x41, 0xe4,
+	0x79, 0xda, 0x59, 0x29, 0x30, 0x48, 0xc7, 0xfc, 0x82, 0xe0, 0x36, 0x9c, 0xdf, 0x35, 0x5d, 0xcf,
+	0x57, 0xf5, 0xbd, 0xa1, 0xbd, 0xaf, 0xf6, 0xf9, 0x8c, 0x54, 0xd3, 0x90, 0x17, 0xd6, 0xa4, 0xf5,
+	0xe2, 0xc6, 0xe5, 0xa4, 0x6a, 0x24, 0x66, 0xac, 0x2c, 0xb3, 0xae, 0x35, 0xda, 0x33, 0x6c, 0xa8,
+	0x6c, 0x44, 0x8c, 0xc7, 0x08, 0xb2, 0xfb, 0xe4, 0x58, 0xe8, 0x33, 0x7d, 0xc4, 0x2b, 0x30, 0x77,
+	0x40, 0x9b, 0x18, 0x1b, 0x0a, 0x0a, 0x7f, 0xa9, 0x3c, 0x84, 0xc5, 0x67, 0xe4, 0x78, 0xdb, 0xb1,
+	0x7b, 0x27, 0xea, 0x97, 0x0b, 0xfa, 0x6d, 0x40, 0xbe, 0x61, 0xfb, 0x8a, 0x66, 0xf7, 0x08, 0xc5,
+	0xf0, 0x7c, 0xcd, 0xf5, 0x59, 0xaf, 0x39, 0x85, 0xbf, 0x50, 0x4a, 0xc4, 0xe6, 0x4c, 0x9f, 0x53,
+	0xe8, 0x63, 0xc5, 0x82, 0x72, 0xdd, 0xd6, 0xdd, 0xe3, 0x01, 0x65, 0xee, 0x33, 0x72, 0xec, 0xcd,
+	0xfa, 0xda, 0xa2, 0xf8, 0x1a, 0xde, 0x80, 0x7c, 0x9f, 0xf8, 0x9a, 0x58, 0x87, 0xd3, 0x16, 0x4e,
+	0x88, 0x57, 0xf9, 0xdb, 0x02, 0x2c, 0x09, 0xde, 0x3c, 0x17, 0x30, 0x7c, 0x03, 0x4a, 0x03, 0xd7,
+	0x31, 0x86, 0x3a, 0x71, 0xd5, 0xd8, 0x7a, 0x5f, 0x0c, 0x80, 0xcd, 0x60, 0xdd, 0x93, 0x1f, 0x0e,
+	0x89, 0xad, 0x33, 0x69, 0xf0, 0x69, 0x43, 0x00, 0x6a, 0x18, 0xf8, 0x3a, 0x2c, 0x0e, 0x86, 0xaf,
+	0x2c, 0xd3, 0xdb, 0x53, 0x7d, 0xb3, 0x4f, 0x98, 0x65, 0xc8, 0x29, 0x45, 0x01, 0xa3, 0x9a, 0x3b,
+	0xb2, 0xd6, 0x73, 0x27, 0x5d, 0xeb, 0xf8, 0x0d, 0x58, 0x72, 0xc9, 0xc0, 0x32, 0x75, 0xcd, 0x27,
+	0x86, 0xba, 0xeb, 0x3a, 0x7d, 0x79, 0x6e, 0x4d, 0x5a, 0x2f, 0x28, 0xe5, 0x08, 0xfc, 0xd8, 0x75,
+	0xfa, 0x6c, 0x26, 0x81, 0x9e, 0xaa, 0x94, 0x87, 0xf3, 0x0c, 0x6d, 0x31, 0x04, 0x3e, 0x23, 0xc7,
+	0x74, 0xa0, 0x61, 0x37, 0xd5, 0x77, 0xe4, 0x85, 0xb5, 0xec, 0x7a, 0x41, 0x29, 0x86, 0xb0, 0xae,
+	0x83, 0xeb, 0x50, 0xd4, 0x9d, 0xfe, 0xc0, 0x25, 0x9e, 0x47, 0x97, 0x41, 0x7e, 0x4d, 0x5a, 0x2f,
+	0x6f, 0x5c, 0x4d, 0x8e, 0xb4, 0x16, 0x21, 0x50, 0x3b, 0xf4, 0x28, 0xd7, 0x6c, 0x35, 0xeb, 0x4a,
+	0xbc, 0x1f, 0xbe, 0x03, 0x67, 0x87, 0x76, 0x00, 0x20, 0x06, 0x57, 0xf9, 0xc2, 0x9a, 0xb4, 0x5e,
+	0x7a, 0x24, 0xdd, 0x55, 0x50, 0xbc, 0x8d, 0x29, 0xff, 0x03, 0x38, 0x67, 0x0f, 0xfb, 0x81, 0xd2,
+	0x7b, 0xaa, 0x69, 0xab, 0x6c, 0x65, 0xc8, 0x45, 0xb6, 0xc6, 0xa4, 0x7b, 0x0a, 0xb6, 0x87, 0x7d,
+	0x21, 0x3e, 0xaf, 0x61, 0x6f, 0xd2, 0x46, 0xbc, 0x06, 0x40, 0x0e, 0x88, 0xed, 0x73, 0xb6, 0x2f,
+	0xae, 0x49, 0xeb, 0x39, 0x4a, 0xbe, 0xc0, 0x80, 0x8c, 0xef, 0x75, 0x58, 0x22, 0xa1, 0x8a, 0x51,
+	0xbe, 0x78, 0x72, 0x89, 0x31, 0xff, 0x4a, 0x72, 0x4a, 0x49, 0x3d, 0x54, 0xca, 0x24, 0xa9, 0x97,
+	0x6f, 0x24, 0xc8, 0x68, 0x56, 0xcf, 0x91, 0xcb, 0x5c, 0x0c, 0x11, 0xb8, 0x6a, 0xf5, 0x1c, 0xfc,
+	0x26, 0xa0, 0x18, 0xe2, 0x40, 0x73, 0xb5, 0xbe, 0xbc, 0xb4, 0x26, 0xad, 0x2f, 0x2a, 0x31, 0x02,
+	0x6d, 0x0a, 0xc6, 0x37, 0xa1, 0x2c, 0xdc, 0xc9, 0x01, 0x71, 0x19, 0xb3, 0x11, 0x43, 0x2c, 0x71,
+	0xe8, 0x0b, 0x0e, 0xc4, 0x9f, 0xc0, 0xc5, 0x84, 0x60, 0xd5, 0x57, 0x0f, 0x1f, 0xa8, 0xc4, 0xd6,
+	0x1d, 0x83, 0x18, 0xf2, 0xd9, 0x35, 0x69, 0x3d, 0xff, 0x68, 0x6e, 0x57, 0xb3, 0x3c, 0xa2, 0x9c,
+	0x8f, 0xcb, 0x7a, 0xf3, 0xe1, 0x83, 0x3a, 0x47, 0xa2, 0x52, 0x77, 0x5c, 0x83, 0x50, 0xf7, 0xc0,
+	0x34, 0x03, 0xb3, 0xcf, 0x14, 0x03, 0x18, 0x55, 0x8c, 0xd7, 0x61, 0xc9, 0x20, 0x96, 0x79, 0x40,
+	0x5c, 0x55, 0x13, 0xdc, 0x5c, 0x5e, 0x93, 0xd6, 0xb3, 0x4a, 0x49, 0x80, 0xab, 0x9c, 0x9d, 0xd7,
+	0xa0, 0xd8, 0xd7, 0xdc, 0x7d, 0xe2, 0xaa, 0xcc, 0xd1, 0xad, 0x30, 0x1b, 0x06, 0x1c, 0xc4, 0x5c,
+	0xd2, 0x3a, 0x20, 0xff, 0xc8, 0x36, 0x0d, 0xd5, 0x22, 0x9a, 0xe7, 0xab, 0xaf, 0x4c, 0xdf, 0x93,
+	0xcf, 0x53, 0xb9, 0x28, 0x65, 0x06, 0xdf, 0xa6, 0xe0, 0x4d, 0xd3, 0xf7, 0xe8, 0x27, 0x39, 0x66,
+	0xdf, 0x09, 0x10, 0x2f, 0x30, 0xc4, 0x12, 0x03, 0x3f, 0x77, 0x04, 0xde, 0x3d, 0x58, 0xde, 0x33,
+	0x7b, 0x7b, 0xc4, 0xf3, 0xd5, 0xf8, 0x2a, 0x94, 0x03, 0x61, 0x9f, 0x15, 0xad, 0x9d, 0x68, 0x3d,
+	0xbe, 0x06, 0x60, 0x0f, 0x2d, 0x4b, 0xe5, 0x86, 0xe3, 0x62, 0x9c, 0x47, 0x05, 0xda, 0xc0, 0x2d,
+	0x1b, 0x86, 0xdc, 0x70, 0x68, 0x1a, 0xf2, 0x25, 0x26, 0x48, 0xf6, 0x8c, 0x6f, 0xc3, 0x32, 0x55,
+	0x43, 0x66, 0x81, 0x3d, 0xb6, 0xdc, 0xd4, 0xbe, 0xd7, 0x93, 0x2f, 0xb3, 0x79, 0x22, 0x7b, 0xd8,
+	0x67, 0x16, 0xd6, 0xa3, 0x2b, 0xee, 0xb9, 0xd7, 0xc3, 0xdf, 0x81, 0x15, 0xdf, 0xf1, 0x35, 0x2b,
+	0x30, 0xd9, 0x5e, 0x8f, 0x2b, 0xfa, 0x15, 0x86, 0x7f, 0x96, 0xb5, 0x71, 0x9b, 0xec, 0xf5, 0x98,
+	0x9a, 0x5f, 0x84, 0x3c, 0x47, 0x35, 0x0d, 0xf9, 0x2a, 0x43, 0x5a, 0x60, 0xef, 0x0d, 0x03, 0xdf,
+	0x07, 0xcc, 0x06, 0x9d, 0x5c, 0xc5, 0xab, 0xf1, 0xc1, 0x23, 0x8a, 0xd0, 0x8e, 0x09, 0xb9, 0xf2,
+	0x17, 0x59, 0x38, 0xd7, 0x31, 0xed, 0x9e, 0x45, 0x46, 0x2d, 0x5b, 0xd2, 0xe0, 0x48, 0x27, 0x36,
+	0x38, 0x63, 0x76, 0x24, 0x93, 0x6e, 0x47, 0x06, 0xda, 0xb1, 0xe5, 0x68, 0x62, 0x61, 0x67, 0x99,
+	0x4d, 0x2f, 0x0a, 0x18, 0x9b, 0xe9, 0x2d, 0x28, 0xd1, 0x25, 0xae, 0xe9, 0xd4, 0x6e, 0x39, 0x43,
+	0x9f, 0x39, 0xcb, 0x70, 0x26, 0x8b, 0x61, 0x5b, 0x6b, 0xe8, 0x8f, 0x2c, 0xe3, 0xb9, 0x94, 0x65,
+	0x3c, 0x75, 0x11, 0xcc, 0x7f, 0x99, 0x45, 0xb0, 0x30, 0xbe, 0x08, 0x46, 0xec, 0x7c, 0x9e, 0x69,
+	0x63, 0xdc, 0xce, 0x27, 0xf5, 0xaa, 0x30, 0x41, 0xaf, 0xd2, 0x05, 0x09, 0xd3, 0x05, 0xf9, 0x02,
+	0x96, 0x37, 0x5d, 0x67, 0x9f, 0xb8, 0x75, 0x1a, 0x8c, 0x84, 0x52, 0x7c, 0x13, 0xd0, 0x2b, 0x06,
+	0x66, 0xac, 0x61, 0x01, 0x95, 0x2c, 0xb1, 0x71, 0x2d, 0x71, 0x78, 0x18, 0x67, 0x51, 0x47, 0xc9,
+	0xa3, 0x92, 0x0c, 0x6b, 0xe7, 0x2f, 0x95, 0x7f, 0xcd, 0x42, 0xb9, 0xe6, 0xf4, 0xfb, 0x9a, 0x6d,
+	0xd4, 0x1c, 0xdb, 0x26, 0xba, 0x4f, 0xed, 0x8e, 0x6e, 0x99, 0x94, 0xdd, 0x81, 0xdd, 0xe1, 0x4e,
+	0xaf, 0xc4, 0xa1, 0x81, 0xdd, 0x79, 0x1f, 0x8a, 0xda, 0xd0, 0xdf, 0x53, 0xfb, 0xc4, 0xdf, 0x73,
+	0x0c, 0x46, 0xb5, 0xbc, 0x21, 0x27, 0x35, 0xa8, 0x3a, 0xf4, 0xf7, 0x9e, 0xb3, 0x76, 0x05, 0xb4,
+	0xf0, 0x99, 0x1a, 0x81, 0x58, 0x57, 0xee, 0x58, 0x85, 0xd7, 0x8a, 0xb0, 0x98, 0x6b, 0xbd, 0x0c,
+	0x05, 0x86, 0x29, 0x1c, 0x39, 0x15, 0x49, 0x9e, 0x02, 0x58, 0x14, 0xf7, 0x36, 0x20, 0xf6, 0x19,
+	0xdd, 0xb1, 0xc2, 0xa1, 0xf2, 0x90, 0x4b, 0xba, 0xab, 0x2c, 0x05, 0x4d, 0xc1, 0x78, 0x6f, 0xc3,
+	0xf2, 0xc0, 0x75, 0x8e, 0x8e, 0x55, 0xdf, 0x51, 0x05, 0xcf, 0x86, 0xae, 0x25, 0xdc, 0x20, 0x62,
+	0x4d, 0x5d, 0x87, 0xf3, 0x78, 0xc7, 0xb5, 0xf0, 0x6d, 0xc0, 0x8e, 0x6b, 0xf6, 0x4c, 0x5b, 0xb3,
+	0xd4, 0x81, 0x6b, 0xda, 0xba, 0x39, 0xd0, 0x2c, 0xa6, 0x15, 0x05, 0xe5, 0x6c, 0xd0, 0xd2, 0x0e,
+	0x1a, 0xf0, 0xdb, 0x31, 0xf4, 0x68, 0xc4, 0x79, 0x4e, 0x3c, 0x68, 0xa9, 0x06, 0x23, 0xbf, 0x0b,
+	0x2b, 0x49, 0x6c, 0xc1, 0xc4, 0x02, 0xc3, 0xc7, 0x71, 0x7c, 0xc1, 0xb2, 0x8f, 0xa1, 0xb4, 0x4b,
+	0x34, 0x7f, 0xe8, 0x12, 0x75, 0xd7, 0xd2, 0x7a, 0x1e, 0xd3, 0x97, 0xe2, 0xc6, 0xa5, 0x24, 0xbf,
+	0x1f, 0x73, 0x94, 0xc7, 0x14, 0x43, 0x59, 0xdc, 0x8d, 0xbd, 0x55, 0x7e, 0x33, 0x03, 0x8b, 0xf1,
+	0x66, 0xfc, 0x3e, 0x9c, 0xf3, 0x86, 0x83, 0x81, 0xe3, 0xfa, 0x1e, 0x1f, 0x83, 0x4b, 0x76, 0x5d,
+	0xe2, 0xed, 0x31, 0xfd, 0x09, 0x35, 0x71, 0x39, 0xc0, 0xa1, 0x63, 0x51, 0x38, 0x06, 0xfe, 0x1e,
+	0xac, 0x86, 0x5d, 0x05, 0x2b, 0x59, 0x8c, 0xac, 0x86, 0x31, 0x57, 0x26, 0x4e, 0xe3, 0x72, 0x80,
+	0x9c, 0xa6, 0xc1, 0x55, 0xb8, 0x18, 0xd2, 0x62, 0x2b, 0x82, 0xf1, 0x9b, 0x47, 0x57, 0x4c, 0xe2,
+	0x21, 0x99, 0x0b, 0x01, 0x5e, 0x9b, 0xa3, 0xb5, 0x05, 0x16, 0xfe, 0x08, 0xc2, 0x26, 0xd5, 0x77,
+	0x06, 0xa6, 0xae, 0x1e, 0x52, 0xef, 0x4f, 0x5c, 0x2f, 0x69, 0x54, 0xc2, 0xf9, 0x76, 0x29, 0xd2,
+	0x4b, 0x81, 0x53, 0xf9, 0x89, 0x04, 0x28, 0xb9, 0x04, 0x88, 0xc1, 0x9c, 0x2f, 0x71, 0xa9, 0xbf,
+	0x1b, 0x59, 0x04, 0x1c, 0x1a, 0x28, 0x55, 0x9a, 0x0a, 0x66, 0x26, 0xaa, 0xe0, 0x3a, 0xa0, 0xbe,
+	0x76, 0x14, 0x46, 0xee, 0xc2, 0x34, 0x52, 0x2b, 0x5f, 0xee, 0x6b, 0x47, 0xc2, 0x42, 0x33, 0xeb,
+	0x38, 0x26, 0xee, 0xdc, 0x29, 0xc5, 0xfd, 0x3b, 0x12, 0x2c, 0x8b, 0x49, 0x71, 0xc9, 0x79, 0x03,
+	0xc7, 0xf6, 0x48, 0xea, 0xe2, 0x96, 0xc6, 0x17, 0xf7, 0x06, 0xe4, 0x5d, 0xd1, 0x85, 0xcd, 0x67,
+	0xcc, 0x37, 0x04, 0xaa, 0xac, 0x84, 0x78, 0xa9, 0xbc, 0xc8, 0x4e, 0xe2, 0x45, 0xe5, 0x77, 0x25,
+	0x58, 0x89, 0x0d, 0xb0, 0xb6, 0xa7, 0x59, 0x16, 0xa1, 0x9b, 0x83, 0x34, 0xce, 0x4b, 0xe3, 0x9c,
+	0x7f, 0x00, 0x05, 0x3d, 0xe8, 0x33, 0x63, 0x88, 0x11, 0xe2, 0x29, 0xc7, 0xf8, 0x29, 0xe4, 0xc3,
+	0x25, 0x9b, 0x66, 0xb3, 0xa4, 0xd9, 0x36, 0x2b, 0x93, 0xb4, 0x59, 0x95, 0xbf, 0x96, 0xa0, 0xf4,
+	0x8c, 0x1c, 0x77, 0xf6, 0x34, 0x97, 0x18, 0x74, 0x11, 0xe0, 0x2a, 0x94, 0xf6, 0x43, 0x80, 0x63,
+	0xf0, 0x2d, 0x46, 0x79, 0x74, 0x37, 0xf7, 0x2c, 0x8e, 0xa2, 0x24, 0x7b, 0x50, 0x5f, 0xbe, 0xa7,
+	0x79, 0x7b, 0x6c, 0x73, 0xe5, 0xa5, 0xef, 0x77, 0x82, 0xbd, 0x97, 0x12, 0xc3, 0xc4, 0x1f, 0xc3,
+	0x05, 0xcd, 0xb2, 0x9c, 0xc3, 0xd6, 0xd0, 0x6f, 0xed, 0xb6, 0xa8, 0xa7, 0xdb, 0xe2, 0xd1, 0xdc,
+	0x71, 0x72, 0xe1, 0x4c, 0xc2, 0xaa, 0xfc, 0x53, 0x3e, 0x5c, 0x3a, 0x9d, 0xe1, 0x2b, 0x4f, 0x77,
+	0xcd, 0x57, 0x6c, 0x77, 0xc7, 0x56, 0xa1, 0x58, 0x31, 0xfc, 0x05, 0x57, 0x60, 0xd1, 0xe3, 0x28,
+	0x2c, 0xc4, 0x15, 0x9b, 0xca, 0x04, 0x0c, 0x7f, 0x02, 0x0b, 0xde, 0xf0, 0x15, 0x8d, 0x13, 0x59,
+	0xc4, 0x50, 0xde, 0x78, 0x7d, 0x6c, 0x5f, 0x91, 0xf8, 0xd4, 0x9d, 0x0e, 0xc7, 0x56, 0x82, 0x6e,
+	0xd4, 0x45, 0xeb, 0x8e, 0xed, 0x0d, 0xfb, 0xc4, 0xa5, 0x2e, 0x3a, 0xc7, 0xb7, 0x62, 0x01, 0xa8,
+	0x61, 0xd0, 0x3d, 0xb6, 0x4b, 0x1d, 0xb6, 0xe7, 0xd3, 0xf6, 0x39, 0xd6, 0x5e, 0x10, 0x90, 0x86,
+	0x41, 0xa3, 0x9b, 0xb0, 0x3f, 0x13, 0xb1, 0xd8, 0x25, 0x05, 0x40, 0x26, 0xe0, 0x9b, 0x50, 0x1e,
+	0xb8, 0xa6, 0xe3, 0x9a, 0xfe, 0xb1, 0x6a, 0x91, 0x03, 0xc2, 0xdd, 0xc2, 0x9c, 0x52, 0x0a, 0xa0,
+	0xdb, 0x14, 0x88, 0x57, 0x61, 0xc1, 0x18, 0xba, 0xda, 0x2b, 0x8b, 0x30, 0x3f, 0x90, 0x7f, 0x94,
+	0xf3, 0xdd, 0x21, 0x51, 0x02, 0x20, 0xae, 0x03, 0x62, 0x1b, 0xdf, 0xf8, 0x4e, 0xbe, 0x30, 0x7b,
+	0x27, 0x5f, 0x66, 0x9d, 0x42, 0x58, 0x62, 0xab, 0x0b, 0x27, 0xdb, 0xea, 0xd2, 0x19, 0xb8, 0x44,
+	0x33, 0xd4, 0x30, 0xca, 0x62, 0xdb, 0xa8, 0xbc, 0x52, 0xa2, 0xd0, 0x5a, 0x00, 0xc4, 0x6f, 0xc3,
+	0x3c, 0xdf, 0x6b, 0xb0, 0xad, 0x53, 0x71, 0x63, 0x25, 0x2d, 0x63, 0xa5, 0x08, 0x1c, 0xfc, 0x03,
+	0x58, 0x32, 0x6d, 0x93, 0x59, 0x66, 0xc7, 0xe3, 0x49, 0x92, 0x12, 0x0b, 0x0a, 0xee, 0xcc, 0x90,
+	0x62, 0x23, 0xd9, 0xeb, 0xd1, 0xfc, 0xb6, 0xe6, 0x13, 0xcf, 0x57, 0x46, 0xc9, 0xe1, 0x4f, 0xe0,
+	0x4a, 0xb4, 0x3d, 0x8d, 0x6b, 0x8e, 0xea, 0xf9, 0x9a, 0x4f, 0xd8, 0x96, 0x2b, 0xaf, 0x5c, 0x0a,
+	0x71, 0x3a, 0x31, 0x94, 0x0e, 0xc5, 0xc0, 0x0f, 0x61, 0x65, 0xd7, 0x71, 0x75, 0x22, 0xfc, 0x84,
+	0xee, 0x12, 0x8d, 0x0d, 0x74, 0x29, 0x26, 0x20, 0xcc, 0x30, 0x98, 0x8f, 0xa8, 0x89, 0x76, 0xdc,
+	0x82, 0x1b, 0x49, 0x59, 0xb9, 0x8e, 0x65, 0xbd, 0xd2, 0xf4, 0x7d, 0x95, 0x4a, 0x93, 0x0f, 0x81,
+	0xe8, 0x6c, 0x83, 0xc6, 0x42, 0xd3, 0x6b, 0x71, 0x21, 0x29, 0x02, 0x77, 0x4b, 0xa0, 0x76, 0x88,
+	0x9e, 0x5c, 0xf5, 0xc4, 0xd7, 0xd8, 0x4e, 0xad, 0x38, 0x79, 0xd5, 0x13, 0x5f, 0x53, 0x92, 0x3d,
+	0x70, 0x8b, 0xba, 0xbd, 0x18, 0x0f, 0x62, 0xe1, 0x3c, 0x9e, 0xaa, 0x07, 0xe7, 0xe3, 0xdd, 0xda,
+	0x51, 0x68, 0x4f, 0x7d, 0x43, 0xa0, 0xfc, 0x64, 0xe0, 0xe8, 0x7b, 0x6c, 0x8f, 0x97, 0x53, 0xc2,
+	0x25, 0x51, 0xa7, 0xc0, 0xca, 0x26, 0x2c, 0x88, 0x75, 0x87, 0x4b, 0x50, 0xa8, 0x1f, 0xe9, 0xd6,
+	0xd0, 0x33, 0x0f, 0x82, 0x2c, 0x23, 0x1b, 0x1f, 0x92, 0xf0, 0x22, 0xe4, 0x1f, 0x6b, 0xa6, 0xe5,
+	0x1c, 0x10, 0x17, 0x65, 0x70, 0x19, 0xe0, 0x19, 0x39, 0x56, 0x45, 0x6b, 0xb6, 0xf2, 0x16, 0x2c,
+	0x8d, 0x48, 0x9d, 0x76, 0xe6, 0x72, 0x47, 0x67, 0x68, 0xe7, 0xba, 0xe6, 0x5a, 0x26, 0x7d, 0x93,
+	0x2a, 0xff, 0x22, 0xc1, 0x35, 0xa1, 0x34, 0x61, 0x4c, 0x4c, 0x0c, 0x26, 0xa0, 0x30, 0x8c, 0x48,
+	0x37, 0x3a, 0xc9, 0xd5, 0x9e, 0x19, 0x5d, 0xed, 0xe9, 0x31, 0x5e, 0xf6, 0x74, 0x31, 0x5e, 0xee,
+	0x94, 0x31, 0xde, 0xdc, 0xa4, 0x18, 0xaf, 0xf2, 0xc7, 0x19, 0x78, 0x63, 0xc6, 0x3c, 0x43, 0x3f,
+	0xbe, 0x0a, 0x10, 0xee, 0x1f, 0x3c, 0xe6, 0x88, 0x4a, 0x4a, 0x0c, 0x32, 0x6b, 0xe6, 0xff, 0x2f,
+	0xe6, 0xdf, 0xb3, 0x6c, 0x91, 0x7e, 0x92, 0xba, 0x48, 0x67, 0x8d, 0xe3, 0xce, 0xb6, 0xe3, 0xec,
+	0x0f, 0x07, 0xcc, 0x08, 0x47, 0x91, 0xc0, 0x77, 0x60, 0x8e, 0xb8, 0xae, 0xe3, 0x32, 0xde, 0x8c,
+	0x27, 0xba, 0x99, 0x1f, 0xaf, 0x53, 0x04, 0x85, 0xe3, 0x61, 0x19, 0x16, 0xc4, 0xc2, 0x12, 0xec,
+	0x09, 0x5e, 0x2b, 0x37, 0x01, 0xa2, 0x4f, 0xe0, 0x22, 0x55, 0x3d, 0x5d, 0x27, 0x9e, 0xc7, 0xb5,
+	0x8d, 0x6a, 0x18, 0xd5, 0xb6, 0xca, 0x9f, 0x66, 0x00, 0x8b, 0x21, 0x0b, 0x74, 0x26, 0xff, 0x2f,
+	0xa5, 0x15, 0x6f, 0x41, 0x89, 0xca, 0x8b, 0x5a, 0x72, 0x96, 0x41, 0x4e, 0x46, 0xa1, 0xc9, 0xb6,
+	0x09, 0x2a, 0x94, 0x3b, 0x9d, 0x0a, 0xcd, 0x9d, 0x52, 0x85, 0xe6, 0x27, 0x6e, 0x13, 0xde, 0x03,
+	0x59, 0x33, 0x0e, 0xe8, 0x7a, 0xf6, 0x88, 0xa1, 0x5a, 0xa6, 0xe7, 0x13, 0x3b, 0x70, 0x65, 0x7c,
+	0xef, 0x72, 0x3e, 0x6a, 0xdf, 0x16, 0xcd, 0xd4, 0xa9, 0x55, 0x7e, 0x9a, 0x85, 0x4b, 0xe3, 0x1c,
+	0x0c, 0xf5, 0xed, 0x56, 0xb0, 0xd1, 0xa4, 0xd2, 0x33, 0x75, 0xb2, 0xe3, 0x5a, 0x22, 0xfc, 0x19,
+	0x83, 0xe3, 0xbb, 0xb0, 0x3c, 0x0a, 0xeb, 0x5a, 0x9e, 0x48, 0x14, 0xa4, 0x35, 0xe1, 0xd6, 0x98,
+	0x3a, 0xde, 0x4f, 0x55, 0xc7, 0x94, 0x91, 0xa5, 0x6b, 0x60, 0x52, 0xc4, 0xb9, 0x99, 0x22, 0x9e,
+	0x9b, 0x22, 0xe2, 0x50, 0x9b, 0xe7, 0x4f, 0xaf, 0xcd, 0x0b, 0x09, 0x6d, 0x66, 0x69, 0x0a, 0xbe,
+	0x07, 0xdd, 0x73, 0x9d, 0x61, 0x6f, 0x4f, 0xf5, 0x38, 0x1b, 0xd8, 0x4e, 0x34, 0x9f, 0x4c, 0x53,
+	0xb0, 0x0d, 0x29, 0x47, 0x8b, 0x98, 0x55, 0xb9, 0x9f, 0x58, 0x0f, 0x8b, 0x90, 0x57, 0x88, 0x61,
+	0xba, 0x44, 0xa7, 0x56, 0xb3, 0x08, 0x0b, 0x62, 0x03, 0x83, 0xa4, 0xd8, 0xea, 0xc8, 0x54, 0x7e,
+	0x92, 0x83, 0xa5, 0x60, 0x41, 0x07, 0x9b, 0xa6, 0xf4, 0xa5, 0x71, 0x0d, 0x8a, 0x61, 0xbe, 0x3b,
+	0x4a, 0x65, 0x07, 0xa0, 0xb1, 0xf8, 0x29, 0x9b, 0x12, 0x3f, 0x25, 0xf3, 0xe5, 0x39, 0x91, 0x1d,
+	0x8a, 0xe7, 0xcb, 0x6f, 0x40, 0x41, 0xe4, 0x3a, 0x89, 0x91, 0xe4, 0x7c, 0x04, 0x4f, 0x84, 0x35,
+	0xf3, 0x27, 0x0c, 0x6b, 0xa2, 0x78, 0x65, 0xe1, 0x04, 0xf1, 0xca, 0x05, 0x98, 0xe3, 0x5e, 0x2e,
+	0x1f, 0x78, 0x6d, 0xfe, 0x8e, 0x6b, 0x70, 0x79, 0xe8, 0x11, 0x97, 0x3a, 0xd4, 0x03, 0xd3, 0x20,
+	0x86, 0x9a, 0x9c, 0x52, 0x21, 0x16, 0x2b, 0xc8, 0x14, 0xb1, 0x2d, 0xf0, 0xda, 0xf1, 0x49, 0x7e,
+	0x0e, 0x2b, 0x61, 0x37, 0x8d, 0x99, 0x2c, 0xb5, 0x4f, 0xa3, 0x7b, 0x60, 0x4a, 0xb4, 0x96, 0x1c,
+	0x59, 0xd0, 0xb3, 0xca, 0x10, 0x69, 0x4c, 0xff, 0x48, 0x78, 0x52, 0x05, 0x0f, 0xc6, 0xda, 0xa8,
+	0x94, 0x78, 0xfc, 0xc2, 0xc7, 0x5f, 0xe4, 0x89, 0x28, 0x06, 0x62, 0x2e, 0x1a, 0xbf, 0x0e, 0x45,
+	0xff, 0xc8, 0x56, 0x89, 0x4d, 0x03, 0x4d, 0x83, 0x45, 0x6f, 0x21, 0x8f, 0xc1, 0x3f, 0xb2, 0xeb,
+	0xbc, 0x01, 0x3f, 0x82, 0x8b, 0x22, 0xc6, 0x4a, 0x86, 0x53, 0x6c, 0x9e, 0x25, 0x26, 0xba, 0x0b,
+	0x02, 0x21, 0x1e, 0x4b, 0x31, 0x83, 0xf1, 0x5f, 0x19, 0x28, 0x06, 0xa1, 0x1c, 0xb1, 0x8d, 0x51,
+	0xd5, 0x91, 0xc6, 0x54, 0x67, 0x66, 0x99, 0xe4, 0x35, 0x58, 0x8c, 0xe7, 0xf8, 0x83, 0x8d, 0xd9,
+	0x3d, 0xa5, 0x18, 0x4b, 0xed, 0xe3, 0xb7, 0x52, 0x32, 0xc8, 0xb9, 0x40, 0x82, 0xa3, 0x49, 0xe4,
+	0x37, 0xc7, 0x93, 0xc8, 0x61, 0xfa, 0xf0, 0x64, 0x79, 0xe4, 0xf9, 0x29, 0x79, 0xe4, 0x35, 0xc8,
+	0x9b, 0x1e, 0xcf, 0xed, 0x32, 0x8d, 0x0b, 0x79, 0xbc, 0x60, 0x7a, 0x2c, 0xad, 0x8b, 0xaf, 0xc2,
+	0x3c, 0x4f, 0x7e, 0x27, 0x57, 0xb7, 0x00, 0xe2, 0x47, 0x00, 0xa7, 0x0b, 0xfe, 0x0b, 0xfd, 0xb0,
+	0x78, 0xf7, 0xe7, 0x52, 0xe8, 0xf2, 0x28, 0xff, 0x15, 0xa2, 0x13, 0x73, 0xe0, 0xff, 0x1c, 0xc4,
+	0x90, 0x1c, 0x54, 0xf6, 0x34, 0x83, 0x9a, 0xc4, 0xc4, 0xdc, 0x64, 0x26, 0x56, 0x7e, 0x14, 0xa5,
+	0x5f, 0xe8, 0x3c, 0x98, 0x25, 0xfd, 0x39, 0xcc, 0x22, 0xb4, 0xda, 0xd9, 0xd4, 0x62, 0xfb, 0x54,
+	0xab, 0x9d, 0x63, 0x26, 0x31, 0x8c, 0x41, 0xfe, 0x41, 0x0a, 0x73, 0xa4, 0x62, 0xe2, 0xa3, 0xfb,
+	0x4c, 0x69, 0x6c, 0x9f, 0x99, 0x64, 0x22, 0x1d, 0xde, 0xc9, 0x99, 0xf8, 0x36, 0x20, 0x97, 0x88,
+	0xba, 0xca, 0xb1, 0xaa, 0x3b, 0x43, 0xdb, 0x67, 0x62, 0x60, 0xa5, 0xb1, 0xa5, 0xa8, 0xa9, 0x46,
+	0x5b, 0xe2, 0xe5, 0xe4, 0x5c, 0xa2, 0x9c, 0x3c, 0x1e, 0xce, 0xcf, 0xa5, 0x85, 0xf3, 0xff, 0x9e,
+	0x03, 0x08, 0x12, 0x31, 0xfa, 0xfe, 0xec, 0x99, 0x7d, 0x00, 0x79, 0xfa, 0x3d, 0x56, 0xdf, 0xc9,
+	0x30, 0xde, 0xae, 0xa5, 0xfa, 0xea, 0xaa, 0xbe, 0x7f, 0xa7, 0xaa, 0xef, 0xf3, 0xfd, 0xb9, 0xc6,
+	0x1f, 0xc6, 0x74, 0x2b, 0x7b, 0x0a, 0xb6, 0x74, 0x00, 0x1d, 0x68, 0x96, 0x69, 0xf0, 0xed, 0x56,
+	0x3c, 0xc0, 0x5c, 0x9f, 0x38, 0x80, 0x17, 0x61, 0x07, 0x2e, 0xeb, 0xa5, 0x83, 0x24, 0x80, 0x0e,
+	0x68, 0xec, 0x8c, 0xc5, 0xa5, 0x31, 0x47, 0x13, 0x96, 0xbb, 0x13, 0xa5, 0x90, 0x34, 0x4b, 0x34,
+	0x7f, 0x0a, 0x4b, 0xb4, 0x30, 0xc1, 0x12, 0x25, 0x7d, 0x2c, 0x2f, 0x33, 0x44, 0x3e, 0xb6, 0xf2,
+	0x26, 0x2c, 0x08, 0xbe, 0xd2, 0x6d, 0x55, 0xc3, 0x36, 0xcc, 0x03, 0xd3, 0x18, 0x6a, 0x16, 0x3a,
+	0x43, 0xdf, 0x6b, 0xc3, 0xfe, 0xd0, 0xe2, 0x27, 0x1f, 0xa4, 0xca, 0xaf, 0x49, 0xb0, 0x34, 0xc2,
+	0x02, 0xbc, 0x0a, 0x97, 0x76, 0x46, 0xaa, 0xab, 0x35, 0xc7, 0x75, 0x87, 0xcc, 0xb2, 0xa3, 0x33,
+	0xf8, 0x3c, 0xe0, 0x2d, 0x12, 0x2b, 0xd5, 0xb2, 0x5e, 0x48, 0xc2, 0x2b, 0x80, 0x6a, 0x7b, 0x44,
+	0xdf, 0xf7, 0x86, 0xfd, 0xe7, 0xa6, 0xd7, 0xd7, 0x7c, 0x7d, 0x0f, 0x65, 0xf0, 0x45, 0x38, 0xc7,
+	0x4a, 0xad, 0x5b, 0xa4, 0x43, 0x5c, 0x53, 0xb3, 0xcc, 0x2f, 0x08, 0xef, 0x90, 0xc5, 0xcb, 0xb0,
+	0xb4, 0x45, 0x82, 0x92, 0x26, 0x07, 0xe6, 0x2a, 0xff, 0x19, 0x59, 0xad, 0xaa, 0xbe, 0x1f, 0x86,
+	0x97, 0x33, 0xb5, 0x2e, 0x8d, 0xd7, 0x99, 0x53, 0xf0, 0x3a, 0x3b, 0x81, 0xd7, 0x3f, 0xbf, 0xad,
+	0xca, 0x88, 0xd8, 0xe6, 0x47, 0xc5, 0xf6, 0x0a, 0x2e, 0x87, 0x13, 0xa7, 0xe2, 0xa9, 0x89, 0xc9,
+	0xd5, 0xf6, 0xd8, 0x99, 0x88, 0x99, 0x1c, 0xa8, 0x40, 0xc1, 0xf4, 0x54, 0x8d, 0xf5, 0x4d, 0xe6,
+	0xd7, 0xf3, 0xa6, 0xc7, 0x49, 0x56, 0x5e, 0x84, 0x2e, 0xf9, 0xb1, 0xe5, 0x1c, 0xce, 0xa6, 0xf9,
+	0x3a, 0x94, 0xc5, 0xe8, 0xdb, 0xc4, 0xed, 0x73, 0x9e, 0x66, 0xd6, 0x4b, 0xca, 0x08, 0xb4, 0xd2,
+	0x0d, 0x85, 0xb6, 0x63, 0x7b, 0x61, 0xa2, 0x6f, 0x26, 0xf9, 0xe9, 0x1b, 0xad, 0xca, 0x8f, 0xa5,
+	0x58, 0x04, 0x41, 0xf6, 0xbf, 0x2a, 0xbd, 0xaf, 0xe4, 0xb8, 0xee, 0xc2, 0x4a, 0xd0, 0x37, 0x71,
+	0x54, 0x83, 0x79, 0x2e, 0x05, 0x07, 0xfc, 0x88, 0x4e, 0x6c, 0x54, 0x3e, 0x00, 0x59, 0x0c, 0x5e,
+	0x21, 0x9a, 0xbe, 0x47, 0x8c, 0xba, 0x6d, 0xb4, 0x76, 0xbb, 0x41, 0x18, 0x3d, 0x75, 0x26, 0x95,
+	0x17, 0x61, 0xf2, 0xbb, 0x66, 0x39, 0x1e, 0x09, 0xa3, 0xf2, 0x99, 0x7e, 0x6f, 0x06, 0x4b, 0x47,
+	0xe8, 0x06, 0x3a, 0xf6, 0x95, 0x45, 0xf5, 0x07, 0x12, 0xbc, 0x1e, 0xce, 0x56, 0xf8, 0x9f, 0x1d,
+	0x5b, 0xd3, 0xf7, 0x6d, 0xe7, 0x90, 0x9d, 0x9c, 0x32, 0xc2, 0xf8, 0x6c, 0xe6, 0xa7, 0x3e, 0x84,
+	0x62, 0x24, 0x26, 0xaa, 0x71, 0x33, 0x9d, 0x00, 0x84, 0x72, 0x4a, 0x4b, 0x52, 0x65, 0xd3, 0xbc,
+	0xda, 0xf7, 0x43, 0x97, 0x2d, 0x12, 0x06, 0x23, 0x33, 0x94, 0x46, 0x95, 0x27, 0xda, 0x3b, 0x64,
+	0x66, 0xef, 0x1d, 0x2a, 0xff, 0x2d, 0xc1, 0xf9, 0x91, 0x1d, 0xd5, 0x09, 0xbf, 0x33, 0xb6, 0x43,
+	0xca, 0xa4, 0x9c, 0x28, 0x7a, 0x1b, 0x90, 0xa5, 0x8d, 0xc4, 0x50, 0x74, 0x9a, 0x59, 0x76, 0x98,
+	0xac, 0x4c, 0xdb, 0x62, 0x61, 0xe8, 0xf8, 0x41, 0x91, 0x5c, 0xda, 0x41, 0x91, 0x91, 0x5d, 0xc3,
+	0xdc, 0xd8, 0xae, 0xe1, 0x2d, 0x28, 0x87, 0x43, 0x73, 0x89, 0x66, 0x1c, 0x8b, 0xca, 0x39, 0xdf,
+	0xea, 0x84, 0xc3, 0x56, 0x68, 0x53, 0xe5, 0x08, 0x16, 0x05, 0x03, 0xb8, 0x5b, 0x99, 0x31, 0xed,
+	0xd0, 0xce, 0x66, 0x4e, 0x1f, 0x8e, 0x65, 0x93, 0xe1, 0x58, 0x29, 0xb4, 0x1a, 0x6d, 0xd3, 0xee,
+	0xc5, 0x5f, 0x1d, 0xbb, 0x17, 0x5f, 0x01, 0x42, 0x21, 0x3a, 0xbe, 0xe6, 0xcf, 0x14, 0xcb, 0xac,
+	0xc2, 0x41, 0xe5, 0xb7, 0xe6, 0xe0, 0x4a, 0x1a, 0x61, 0x25, 0x3d, 0xe5, 0x30, 0xf6, 0x81, 0xf7,
+	0x00, 0xd8, 0xc4, 0x54, 0x9d, 0xee, 0x02, 0x33, 0xb3, 0xbc, 0x4d, 0x81, 0x21, 0xd7, 0xe8, 0x6e,
+	0xef, 0x06, 0x94, 0x78, 0xcf, 0x88, 0x1f, 0x6c, 0x4f, 0xcd, 0x80, 0x41, 0x40, 0xba, 0x0a, 0xd0,
+	0xf7, 0x7a, 0x8a, 0xe6, 0x93, 0x96, 0x38, 0x4b, 0x21, 0x29, 0x31, 0x08, 0xbe, 0x05, 0xa8, 0xef,
+	0xf5, 0x44, 0x3e, 0x61, 0x30, 0xf4, 0x29, 0xd6, 0x1c, 0xc3, 0x1a, 0x83, 0x0b, 0x5c, 0xda, 0x33,
+	0x5c, 0xeb, 0x4c, 0x13, 0x38, 0x6e, 0x02, 0x8e, 0x2b, 0x90, 0xa8, 0x8d, 0x88, 0x84, 0x47, 0xb2,
+	0x5e, 0x72, 0x0b, 0x90, 0x76, 0xa0, 0x99, 0x16, 0xdd, 0x73, 0x06, 0x7e, 0x86, 0x47, 0x35, 0x63,
+	0x70, 0xbc, 0x0e, 0x4b, 0x43, 0x6a, 0x57, 0x22, 0x83, 0xc2, 0xb6, 0x45, 0x39, 0x65, 0x14, 0x8c,
+	0x37, 0xe1, 0xca, 0x2b, 0xcb, 0xa1, 0xa0, 0x40, 0x1e, 0x2d, 0x7b, 0x47, 0xe0, 0x78, 0xa2, 0x40,
+	0x9e, 0x57, 0xa6, 0xe2, 0x50, 0x25, 0xd3, 0x0c, 0x83, 0x06, 0x3a, 0x6c, 0x13, 0x5d, 0x50, 0x82,
+	0x57, 0xea, 0x19, 0xf5, 0xa0, 0x18, 0xdc, 0x31, 0x6d, 0x9d, 0x9f, 0x1e, 0x2b, 0x28, 0x23, 0x50,
+	0x8c, 0xc5, 0x91, 0x5e, 0xbe, 0x59, 0xe6, 0xe7, 0x76, 0xa9, 0x57, 0xe5, 0x7c, 0xaa, 0x1f, 0x0d,
+	0x4c, 0x97, 0x18, 0xac, 0x30, 0x21, 0x29, 0x23, 0x50, 0x21, 0xb3, 0x4d, 0x4d, 0xdf, 0xb7, 0x9c,
+	0x1e, 0x2b, 0x41, 0xe4, 0x94, 0x18, 0x24, 0xe6, 0x9d, 0x69, 0xa8, 0xa4, 0xf9, 0x84, 0xd5, 0x17,
+	0x24, 0x65, 0x04, 0x5a, 0xf9, 0x0c, 0x2e, 0x08, 0xcd, 0x7c, 0x42, 0xfc, 0x6d, 0xcd, 0x8b, 0x15,
+	0x87, 0xbe, 0xaa, 0xdd, 0x8f, 0xa5, 0xde, 0x47, 0x69, 0x87, 0x8a, 0x5f, 0x83, 0x25, 0x66, 0xac,
+	0x62, 0xbe, 0x57, 0x9a, 0xbd, 0xdf, 0x29, 0x59, 0x89, 0x81, 0xce, 0x70, 0xed, 0xff, 0x1f, 0xae,
+	0x86, 0xf3, 0xa0, 0x7b, 0x67, 0xd5, 0x20, 0x16, 0xf1, 0x89, 0x3a, 0x08, 0x2a, 0x4d, 0x27, 0xf0,
+	0xf6, 0x97, 0x02, 0x0a, 0xcf, 0x35, 0x77, 0x7f, 0x8b, 0xf5, 0x0f, 0x8a, 0x0f, 0x95, 0xdf, 0xcb,
+	0x84, 0xd1, 0xd9, 0x13, 0xe2, 0x33, 0x27, 0xee, 0xb5, 0x76, 0xa9, 0xf6, 0x7a, 0x03, 0x4d, 0x9f,
+	0xb9, 0xb8, 0xaf, 0x40, 0xc1, 0x0e, 0x70, 0x85, 0x41, 0x8f, 0x00, 0xb8, 0x09, 0x39, 0x96, 0xfa,
+	0xc9, 0x4e, 0xa9, 0x86, 0xa5, 0x7d, 0xf5, 0x0e, 0x4b, 0x04, 0x41, 0xbb, 0xae, 0x74, 0x1a, 0x9d,
+	0x6e, 0xbd, 0xd9, 0x55, 0x18, 0x1d, 0x6a, 0xef, 0x99, 0xd5, 0xf6, 0xd4, 0x81, 0xe6, 0xfb, 0xc4,
+	0xb5, 0x45, 0x96, 0xad, 0xc4, 0xa1, 0x6d, 0x0e, 0x0c, 0xed, 0xbd, 0xa7, 0xee, 0x69, 0xde, 0x9e,
+	0x88, 0x56, 0xb9, 0xbd, 0xf7, 0x9e, 0x6a, 0xde, 0x5e, 0xe5, 0x3e, 0xe4, 0x58, 0x3a, 0xa9, 0x0c,
+	0xb1, 0x6f, 0xa0, 0x33, 0x18, 0x43, 0xb9, 0xd9, 0x6a, 0xaa, 0x31, 0x98, 0x84, 0x17, 0x20, 0x5b,
+	0xdd, 0xde, 0x46, 0x99, 0xca, 0x9f, 0x49, 0x70, 0x63, 0xca, 0x98, 0x4f, 0x6a, 0x0e, 0xcf, 0xc3,
+	0x3c, 0x1f, 0x09, 0xf3, 0xff, 0x05, 0x45, 0xbc, 0xe1, 0xeb, 0x90, 0xdf, 0x35, 0x2d, 0x9f, 0xd0,
+	0x55, 0x93, 0xc8, 0xbb, 0x87, 0xe0, 0xd1, 0x79, 0xe5, 0x46, 0xe7, 0x85, 0x57, 0x61, 0x41, 0x67,
+	0x41, 0x75, 0x90, 0x5d, 0x14, 0x85, 0x57, 0x01, 0xa4, 0x71, 0xe7, 0x39, 0x31, 0x05, 0x76, 0x08,
+	0x84, 0x4d, 0x62, 0xdb, 0xf4, 0xfc, 0x59, 0x83, 0xbe, 0x0a, 0x20, 0x4e, 0x96, 0xc4, 0x94, 0x54,
+	0x40, 0x46, 0xb5, 0x20, 0x3b, 0xaa, 0x05, 0x69, 0x52, 0xcb, 0x7c, 0x09, 0xa9, 0xfd, 0xba, 0x14,
+	0x3a, 0xa2, 0xe4, 0xe8, 0x4f, 0x18, 0x80, 0xcc, 0x98, 0x44, 0x98, 0x17, 0xce, 0x32, 0xb9, 0x44,
+	0x79, 0xe1, 0x24, 0xcf, 0x33, 0x23, 0xa3, 0xfa, 0x91, 0x14, 0x1a, 0xa1, 0x68, 0x54, 0x3b, 0x03,
+	0x43, 0xf3, 0xc9, 0xc8, 0x17, 0xa5, 0xd1, 0x2f, 0x5e, 0x05, 0xb0, 0xc9, 0xa1, 0x9a, 0x50, 0x87,
+	0x82, 0x4d, 0x0e, 0xb9, 0x6e, 0x51, 0xbe, 0xf1, 0xc5, 0x6e, 0x04, 0x28, 0x7c, 0x64, 0x25, 0x01,
+	0x15, 0x68, 0x33, 0x47, 0xf8, 0x79, 0x58, 0xdf, 0x48, 0xb2, 0x8d, 0x05, 0xca, 0x5f, 0x8d, 0x69,
+	0x15, 0x3b, 0x4c, 0x61, 0x3d, 0x21, 0xbe, 0xb8, 0x21, 0x32, 0x83, 0x62, 0xc8, 0xe7, 0x4c, 0x3c,
+	0xff, 0x3e, 0x1e, 0xca, 0x65, 0x53, 0x42, 0xb9, 0xca, 0x7f, 0x48, 0xe1, 0xe6, 0x23, 0xfc, 0xe0,
+	0x37, 0x24, 0x10, 0x89, 0xe2, 0xe8, 0xdc, 0x09, 0x72, 0xf0, 0xe3, 0xf3, 0x9d, 0x4b, 0x9b, 0xef,
+	0x2f, 0xc4, 0xa7, 0xdb, 0x72, 0x59, 0x59, 0x9e, 0x7c, 0x15, 0x3e, 0x47, 0xa3, 0xcc, 0x32, 0x57,
+	0x35, 0x3d, 0xda, 0xff, 0x4b, 0x09, 0xd6, 0x26, 0x7d, 0xff, 0x1b, 0xc2, 0xf6, 0x93, 0xed, 0x01,
+	0x2a, 0x2f, 0xe0, 0xaa, 0x98, 0x48, 0x57, 0xaf, 0xb1, 0x13, 0x5f, 0xa2, 0x62, 0xa4, 0xf0, 0x81,
+	0xce, 0x36, 0xdb, 0x73, 0xbe, 0x1e, 0x2e, 0x81, 0x47, 0xd2, 0x5d, 0x25, 0xe7, 0xeb, 0x0d, 0xa3,
+	0xf2, 0x2b, 0x12, 0xac, 0x4e, 0x22, 0x7c, 0x32, 0xfe, 0xc4, 0x36, 0x08, 0xd2, 0xe9, 0x37, 0x08,
+	0x89, 0x9a, 0xf1, 0x0f, 0xa1, 0x24, 0xc6, 0xd2, 0x24, 0x87, 0xdd, 0x23, 0x7b, 0xd6, 0xa7, 0x79,
+	0xba, 0x48, 0xf5, 0x7d, 0x4b, 0xf5, 0x88, 0xee, 0xd8, 0x46, 0x2c, 0xb5, 0x54, 0xf2, 0x8f, 0xec,
+	0xae, 0x6f, 0x75, 0x38, 0x3c, 0x9a, 0x7f, 0x98, 0x4f, 0xe2, 0xf3, 0xff, 0x69, 0xe4, 0x52, 0xf8,
+	0x37, 0x4f, 0x3a, 0xed, 0x6f, 0x7e, 0x5e, 0xab, 0xf2, 0x87, 0x91, 0xb1, 0xa9, 0x1a, 0xd1, 0x89,
+	0x80, 0xae, 0x73, 0x02, 0xd6, 0xfe, 0x6f, 0x4d, 0x2f, 0x79, 0xfc, 0x21, 0xc7, 0x1c, 0x42, 0x0c,
+	0x52, 0xf9, 0xe7, 0x68, 0xc5, 0x8e, 0x8d, 0xf9, 0x5b, 0x24, 0x9a, 0xa7, 0xb0, 0x18, 0xaf, 0xcb,
+	0x7d, 0xf9, 0xa3, 0x77, 0x95, 0xbf, 0x93, 0xa2, 0xf4, 0xa4, 0x61, 0xc4, 0x89, 0x7e, 0xad, 0x72,
+	0xfe, 0xee, 0xc8, 0xd0, 0x73, 0x69, 0x09, 0xfa, 0xf8, 0x68, 0x47, 0xa6, 0xf5, 0x6f, 0x51, 0xb4,
+	0x9a, 0x36, 0xad, 0x6f, 0x91, 0x2a, 0xfc, 0x89, 0x14, 0x5a, 0xbd, 0xba, 0x6d, 0x7c, 0x8d, 0x22,
+	0x7b, 0x08, 0x40, 0xad, 0xa9, 0xa6, 0xfb, 0x81, 0x17, 0x2a, 0x6f, 0x5c, 0x48, 0x4e, 0xac, 0x7b,
+	0x64, 0x57, 0x59, 0xb3, 0x52, 0xf0, 0x83, 0xc7, 0xb8, 0x09, 0xe5, 0x13, 0xf8, 0x16, 0x09, 0xe7,
+	0xf7, 0x33, 0xa1, 0x09, 0xe5, 0x73, 0x6b, 0xd9, 0xa1, 0x4d, 0xfa, 0xba, 0xa6, 0x17, 0xda, 0x0a,
+	0xbe, 0x81, 0x12, 0xb6, 0x22, 0x29, 0xbd, 0xb9, 0x93, 0x4a, 0x0f, 0x3f, 0x81, 0xeb, 0xa3, 0xa3,
+	0x54, 0x9d, 0x5d, 0xd5, 0x72, 0x0e, 0xd5, 0x43, 0xcd, 0x27, 0x2e, 0xdd, 0xb4, 0x8b, 0x9a, 0xc8,
+	0x95, 0xe4, 0x98, 0x5b, 0xbb, 0xdb, 0xce, 0xe1, 0xcb, 0x00, 0x27, 0x6e, 0xb9, 0xc7, 0x58, 0xf5,
+	0x2d, 0xd2, 0x88, 0xbf, 0x8f, 0x12, 0x0e, 0xc1, 0x34, 0x13, 0x96, 0xfc, 0x1b, 0x63, 0x6f, 0xa5,
+	0xd3, 0xd8, 0xdb, 0xaf, 0x5f, 0x7d, 0x62, 0x06, 0x3f, 0x8d, 0xaf, 0xdf, 0x22, 0x0d, 0xfa, 0xed,
+	0x3b, 0x50, 0xdc, 0xd4, 0x3c, 0x22, 0x66, 0x8b, 0x37, 0x44, 0x26, 0x92, 0x5f, 0x1f, 0x58, 0x4d,
+	0x52, 0x8e, 0x21, 0x26, 0xff, 0x61, 0x60, 0x41, 0xe4, 0x33, 0x45, 0xd5, 0xe3, 0x4a, 0x6a, 0x72,
+	0x2a, 0x08, 0xe5, 0x03, 0x64, 0xfc, 0x21, 0x14, 0xc2, 0x3c, 0xa8, 0x48, 0xbd, 0xad, 0x4e, 0xeb,
+	0x49, 0x0c, 0x25, 0xea, 0x40, 0x7b, 0x87, 0x45, 0x44, 0xa1, 0x61, 0xab, 0xd3, 0x8f, 0x88, 0x2b,
+	0x51, 0x07, 0xfc, 0x3e, 0xe4, 0xc3, 0xfb, 0x41, 0x73, 0xac, 0xf3, 0xd5, 0xf4, 0xa3, 0xab, 0x41,
+	0xb9, 0x22, 0x44, 0xc7, 0xb7, 0x21, 0xe7, 0x11, 0x9b, 0xd7, 0x66, 0x8b, 0xa3, 0xcc, 0x8f, 0x9f,
+	0xa5, 0x61, 0x68, 0xb8, 0x06, 0x8b, 0xf4, 0x57, 0x75, 0xf9, 0xd1, 0x1a, 0x71, 0xa8, 0x6c, 0x6d,
+	0x72, 0x37, 0x8e, 0xa7, 0x14, 0xbd, 0xd8, 0x79, 0x9c, 0x8f, 0x00, 0x18, 0x11, 0x2e, 0xf6, 0xfc,
+	0xb4, 0xd9, 0x06, 0xa7, 0x5f, 0x94, 0x82, 0x17, 0x1e, 0x84, 0x79, 0x18, 0xc9, 0xbf, 0x30, 0x45,
+	0x42, 0xc1, 0x49, 0xf3, 0xb0, 0x18, 0x7d, 0x0b, 0xb2, 0x9a, 0xbe, 0x2f, 0x6e, 0x89, 0xc9, 0x93,
+	0xce, 0x47, 0x28, 0x14, 0x89, 0xb2, 0x65, 0xd7, 0x72, 0x0e, 0x59, 0x0a, 0x7c, 0x12, 0x5b, 0x1e,
+	0x5b, 0xce, 0xa1, 0xc2, 0xd0, 0xf0, 0x26, 0x14, 0x87, 0x51, 0x15, 0x58, 0x5c, 0x0d, 0x48, 0xe7,
+	0x4a, 0xac, 0x5a, 0xac, 0xc4, 0x3b, 0xd1, 0x69, 0x79, 0x3c, 0x5d, 0xc5, 0x32, 0xe7, 0x93, 0xa6,
+	0x25, 0x52, 0x5a, 0x4a, 0x80, 0x8c, 0xef, 0x06, 0xeb, 0xa7, 0x9c, 0x66, 0x98, 0xe2, 0x05, 0xa9,
+	0x60, 0x01, 0x35, 0xa0, 0xac, 0x5b, 0x8e, 0x47, 0xa2, 0x4b, 0x65, 0x4b, 0xac, 0x6b, 0x25, 0x5d,
+	0x5f, 0xe3, 0xd5, 0x58, 0xa5, 0xa4, 0x27, 0x8a, 0xb3, 0x21, 0xa9, 0x20, 0x91, 0xcc, 0xf2, 0xf1,
+	0x53, 0x49, 0x05, 0x65, 0x07, 0x41, 0x2a, 0xac, 0xc7, 0xb6, 0xd8, 0x3d, 0x24, 0x5e, 0x6a, 0x0b,
+	0x18, 0xc1, 0x6f, 0x00, 0xbc, 0x36, 0x55, 0x99, 0x03, 0x86, 0x2c, 0x0d, 0x46, 0xaa, 0x8e, 0xb7,
+	0x21, 0x37, 0x30, 0xed, 0x1e, 0xbb, 0xbb, 0x3d, 0x49, 0x86, 0x6d, 0xd3, 0xee, 0x29, 0x0c, 0x8d,
+	0xa1, 0x3b, 0x76, 0x8f, 0x1d, 0xf0, 0x9f, 0x88, 0xee, 0x30, 0x74, 0xc7, 0xee, 0xe1, 0x5f, 0x84,
+	0x6b, 0xee, 0xf4, 0xb2, 0x2f, 0xbb, 0xea, 0x5d, 0xdc, 0x78, 0x90, 0x4a, 0x69, 0x46, 0xc9, 0x58,
+	0x99, 0x45, 0x1c, 0xff, 0x5f, 0x38, 0x1b, 0x6e, 0xee, 0x82, 0x23, 0xe8, 0xf2, 0x39, 0xf6, 0xc5,
+	0xdb, 0xa7, 0x3b, 0xb7, 0x3e, 0x4e, 0x07, 0x7b, 0xb1, 0xbb, 0xc3, 0xa3, 0xe7, 0xdb, 0xd9, 0xdd,
+	0xf4, 0xe2, 0xc6, 0x3b, 0x5f, 0xea, 0x70, 0xbc, 0x32, 0x99, 0x2e, 0x5d, 0x44, 0x56, 0x74, 0x98,
+	0x99, 0xdd, 0x6c, 0x9f, 0xb4, 0x88, 0xe2, 0x87, 0x9e, 0xe3, 0x9d, 0xf0, 0xe7, 0xb0, 0x6c, 0x8d,
+	0x1f, 0x88, 0x66, 0x37, 0xdf, 0x8b, 0x13, 0xce, 0x44, 0xa5, 0x1c, 0xa0, 0x56, 0xd2, 0x88, 0xe0,
+	0xa7, 0xd1, 0x45, 0x28, 0x56, 0xe6, 0x64, 0xb7, 0xe4, 0x27, 0xaa, 0x7a, 0xa2, 0x20, 0x9a, 0xec,
+	0x88, 0x7f, 0x00, 0xe7, 0xf4, 0xb4, 0x82, 0x29, 0xbb, 0x57, 0x5f, 0xdc, 0xb8, 0x75, 0x02, 0x8a,
+	0xc1, 0x48, 0xd3, 0x09, 0xe1, 0x2e, 0x9c, 0x75, 0x47, 0x8f, 0x60, 0xb0, 0x2b, 0xf9, 0xc5, 0x09,
+	0x17, 0xc8, 0xc6, 0x0e, 0x6c, 0x28, 0xe3, 0x04, 0xb8, 0xb3, 0x20, 0xfb, 0xec, 0xae, 0xfe, 0x64,
+	0x67, 0x41, 0xf6, 0x15, 0x86, 0x86, 0x3f, 0x05, 0xd4, 0x1b, 0xa9, 0x90, 0xb1, 0x1b, 0xfc, 0xc5,
+	0x8d, 0x9b, 0x93, 0x0a, 0x3e, 0xc9, 0x72, 0xda, 0x58, 0x77, 0x6c, 0x82, 0xdc, 0x9b, 0x50, 0x74,
+	0x63, 0xf7, 0xfe, 0x27, 0x29, 0xff, 0xa4, 0x4a, 0x9d, 0x32, 0x91, 0x1c, 0x56, 0xe1, 0x3c, 0x3f,
+	0x59, 0x14, 0xda, 0x36, 0x95, 0x57, 0x4b, 0xe4, 0x6b, 0xec, 0x43, 0x6f, 0x4e, 0xf0, 0x20, 0xe3,
+	0x07, 0x99, 0x94, 0x15, 0x2d, 0xed, 0x78, 0xd3, 0xf7, 0x61, 0xa5, 0x97, 0x52, 0x2e, 0x92, 0xd7,
+	0xa6, 0x90, 0x4f, 0xad, 0x2f, 0xa5, 0x92, 0xc1, 0x43, 0xb8, 0xd2, 0x9b, 0x52, 0x8d, 0x92, 0xaf,
+	0xb3, 0xcf, 0xdc, 0x3b, 0xf9, 0x67, 0x02, 0x96, 0x4d, 0x25, 0x4b, 0x23, 0x99, 0x5e, 0x90, 0x7f,
+	0x97, 0x2b, 0x53, 0x7c, 0x7b, 0x94, 0xa5, 0x8f, 0x3a, 0x50, 0xbd, 0xed, 0x8d, 0x66, 0xef, 0xe5,
+	0x1b, 0x53, 0xf4, 0x76, 0x2c, 0xd7, 0xaf, 0x8c, 0x13, 0xa0, 0x2b, 0x57, 0x8b, 0x5f, 0xa8, 0x95,
+	0x5f, 0x9b, 0xb2, 0x72, 0x13, 0x57, 0x6f, 0x95, 0x64, 0x47, 0x5c, 0x87, 0x45, 0x2d, 0x76, 0x77,
+	0x58, 0xbe, 0xc9, 0x08, 0x5d, 0x9f, 0x48, 0x28, 0x1c, 0x55, 0xa2, 0x1b, 0x35, 0x75, 0x5a, 0x74,
+	0xd4, 0x4f, 0x7e, 0x7d, 0x8a, 0xa9, 0x8b, 0x1d, 0x09, 0x54, 0xe2, 0x9d, 0x04, 0xab, 0x92, 0x99,
+	0x77, 0xf9, 0x8d, 0xe9, 0xac, 0x1a, 0xc9, 0xd3, 0x8f, 0x13, 0xc0, 0x16, 0x5c, 0xec, 0x4d, 0xca,
+	0xe7, 0xcb, 0xeb, 0x8c, 0xfa, 0x9d, 0x13, 0x52, 0x0f, 0x4d, 0xfe, 0x44, 0x82, 0xf8, 0x3e, 0xcc,
+	0xdb, 0x2c, 0x37, 0x2c, 0x6f, 0xa4, 0x15, 0xab, 0x93, 0xe9, 0x63, 0x81, 0x8a, 0x9f, 0x41, 0xd9,
+	0x4e, 0x24, 0x94, 0xe5, 0xfb, 0xac, 0xf3, 0x8d, 0x69, 0x9d, 0x83, 0xc1, 0x8c, 0x74, 0xa5, 0x5c,
+	0xd4, 0x46, 0xb3, 0xa1, 0xf2, 0x83, 0x29, 0x5c, 0x1c, 0xcf, 0x9d, 0x8e, 0x13, 0xa0, 0x5c, 0xd4,
+	0x26, 0xe5, 0x58, 0xe5, 0x77, 0xa6, 0x70, 0x71, 0x62, 0x66, 0x56, 0x99, 0x4c, 0x90, 0x1a, 0x12,
+	0x2d, 0x25, 0x93, 0x27, 0x3f, 0x9c, 0x66, 0xa7, 0xd2, 0x52, 0x7f, 0xa9, 0x64, 0xa8, 0x21, 0xd1,
+	0xa6, 0x24, 0x0a, 0xe5, 0x77, 0xa7, 0x18, 0x92, 0x69, 0x19, 0x46, 0x65, 0x2a, 0x59, 0xaa, 0x1b,
+	0x84, 0x6d, 0x57, 0xe5, 0xf7, 0xa6, 0xe8, 0x86, 0xc8, 0x8b, 0x09, 0x54, 0xaa, 0x1b, 0x24, 0x91,
+	0x29, 0x93, 0xdf, 0x9f, 0xa2, 0x1b, 0xc9, 0xa4, 0x9a, 0x32, 0xd2, 0x95, 0xea, 0x06, 0x19, 0xcd,
+	0xb7, 0xc8, 0x8f, 0xa6, 0xe8, 0xc6, 0x78, 0x76, 0x66, 0x9c, 0x00, 0xd5, 0x0d, 0x32, 0x29, 0x8b,
+	0x23, 0x7f, 0x30, 0x45, 0x37, 0x26, 0xe6, 0x7e, 0x94, 0xc9, 0x04, 0xa9, 0x6e, 0x90, 0x94, 0x4d,
+	0xbf, 0xfc, 0xe1, 0x14, 0xdd, 0x48, 0xcd, 0x12, 0xa4, 0x92, 0xa1, 0xba, 0x41, 0xa6, 0xe4, 0x14,
+	0xe4, 0x8f, 0xa6, 0xe8, 0xc6, 0xb4, 0x64, 0x84, 0x32, 0x95, 0x2c, 0xd6, 0xe1, 0xbc, 0x9f, 0x5a,
+	0xac, 0x93, 0xbf, 0xcb, 0x3e, 0xf8, 0x56, 0xea, 0x07, 0xd3, 0xeb, 0x7b, 0xca, 0x04, 0x52, 0x78,
+	0x17, 0x2e, 0xf8, 0xe9, 0x85, 0x3b, 0xf9, 0x63, 0xf6, 0x95, 0xb7, 0x4f, 0xf6, 0x15, 0x31, 0xa3,
+	0x49, 0xc4, 0xa8, 0xce, 0x1e, 0x26, 0xca, 0xef, 0xf2, 0x27, 0x53, 0x74, 0x36, 0x59, 0xa9, 0x57,
+	0x46, 0xba, 0xd2, 0xd0, 0xf2, 0x30, 0xed, 0x08, 0x84, 0x5c, 0x9d, 0x12, 0x5a, 0xa6, 0x1e, 0x9a,
+	0x50, 0xd2, 0x09, 0xd1, 0xa8, 0xee, 0x70, 0xe4, 0x38, 0x83, 0xbc, 0x39, 0x25, 0xaa, 0x1b, 0x3d,
+	0xfb, 0xa0, 0x8c, 0x75, 0xa7, 0x51, 0xfb, 0xe1, 0xf8, 0x01, 0x04, 0xb9, 0x36, 0x25, 0x6a, 0x4f,
+	0x39, 0xb0, 0xa0, 0xa4, 0x11, 0xa9, 0xfc, 0x32, 0x88, 0x7f, 0x7e, 0x2c, 0xc2, 0x42, 0xad, 0xd5,
+	0x6c, 0xd6, 0x6b, 0x5d, 0x94, 0xc1, 0x25, 0x28, 0x88, 0x97, 0xfa, 0x16, 0xca, 0xd2, 0xd7, 0xce,
+	0xce, 0x66, 0xa7, 0xa6, 0x34, 0x36, 0xeb, 0x28, 0xc7, 0xfe, 0x04, 0x52, 0x69, 0x6d, 0xed, 0xd4,
+	0xea, 0x0a, 0xff, 0xc3, 0xc7, 0x4e, 0xbd, 0xb9, 0x85, 0xe6, 0x31, 0x82, 0x45, 0xfa, 0xa4, 0x2a,
+	0xf5, 0x5a, 0xbd, 0xd1, 0xee, 0xa2, 0x05, 0x5c, 0x06, 0x60, 0x90, 0xba, 0xa2, 0xb4, 0x14, 0x94,
+	0xa7, 0x1f, 0x79, 0x5e, 0xef, 0x74, 0xaa, 0x4f, 0xea, 0xa8, 0xc0, 0x0e, 0x08, 0xd5, 0x9e, 0x21,
+	0xa0, 0x14, 0x1e, 0x6f, 0xb7, 0x5e, 0xa2, 0x22, 0x5e, 0x82, 0xe2, 0x4e, 0x33, 0xfa, 0xd4, 0x22,
+	0xbb, 0xbe, 0xbb, 0x53, 0xab, 0xd5, 0x3b, 0x1d, 0x54, 0xc2, 0x05, 0x98, 0xe3, 0x84, 0xca, 0x18,
+	0x43, 0xb9, 0xb6, 0xdd, 0xea, 0xd4, 0xd5, 0x70, 0x20, 0x4b, 0x11, 0xac, 0xd6, 0x6a, 0x76, 0x76,
+	0x9e, 0xd7, 0x15, 0x84, 0xf0, 0x0a, 0xa0, 0x00, 0x43, 0x0d, 0x08, 0x9d, 0xa5, 0x1f, 0x6c, 0x37,
+	0x9a, 0x4f, 0x10, 0x66, 0x4f, 0xad, 0xe6, 0x13, 0xb4, 0x8c, 0x6f, 0xc2, 0x75, 0xa5, 0xbe, 0x55,
+	0xdf, 0x6e, 0xbc, 0xa8, 0x2b, 0xea, 0x4e, 0xb3, 0x5a, 0x7b, 0xd6, 0x6c, 0xbd, 0xdc, 0xae, 0x6f,
+	0x3d, 0xa9, 0x6f, 0xa9, 0x62, 0xcc, 0x1d, 0xb4, 0x82, 0x65, 0x58, 0x69, 0x57, 0x95, 0x6e, 0xa3,
+	0xdb, 0x68, 0x35, 0x59, 0x4b, 0xb7, 0xba, 0x55, 0xed, 0x56, 0xd1, 0x39, 0x7c, 0x1d, 0xae, 0xa6,
+	0xb5, 0xa8, 0x4a, 0xbd, 0xd3, 0x6e, 0x35, 0x3b, 0x75, 0x74, 0x9e, 0x5d, 0x58, 0x6f, 0xb5, 0x9e,
+	0xed, 0xb4, 0xd1, 0x05, 0xbc, 0x0c, 0x4b, 0xfc, 0x39, 0x42, 0x90, 0xd9, 0x14, 0xc4, 0xe0, 0xd5,
+	0x4e, 0xb7, 0xda, 0xed, 0xa0, 0x8b, 0xf8, 0x32, 0x5c, 0x48, 0xc2, 0xa2, 0x0e, 0x97, 0xe8, 0x70,
+	0x94, 0x7a, 0xb5, 0xf6, 0xb4, 0xbe, 0xa5, 0x52, 0x3e, 0xb7, 0x1e, 0xab, 0xdd, 0x56, 0xbb, 0x51,
+	0x43, 0x97, 0xb9, 0x58, 0xea, 0xcf, 0xd0, 0x15, 0x7c, 0x01, 0x96, 0x9f, 0xd4, 0xbb, 0xea, 0x76,
+	0xb5, 0xd3, 0x0d, 0x66, 0xa2, 0x36, 0xb6, 0xd0, 0x55, 0xbc, 0x06, 0x57, 0x52, 0x1a, 0x22, 0xf2,
+	0xab, 0xf8, 0x12, 0x9c, 0xaf, 0xd6, 0xba, 0x8d, 0x17, 0x11, 0x4f, 0xd5, 0xda, 0xd3, 0x6a, 0xf3,
+	0x49, 0x1d, 0x5d, 0xa3, 0xe3, 0xa2, 0xbd, 0xd9, 0xf7, 0x3a, 0xf4, 0xcb, 0xcd, 0xea, 0xf3, 0x7a,
+	0xa7, 0x5d, 0xad, 0xd5, 0xd1, 0x1a, 0x7e, 0x0d, 0xd6, 0x26, 0x34, 0x46, 0xe4, 0xaf, 0x53, 0xf5,
+	0xa0, 0x58, 0x9d, 0xda, 0xd3, 0xfa, 0xf3, 0x2a, 0xaa, 0x04, 0x23, 0xe5, 0xef, 0x11, 0xe2, 0x0d,
+	0xca, 0x97, 0xea, 0x4e, 0xf7, 0x29, 0xfd, 0xf8, 0xf6, 0x76, 0x9d, 0x7e, 0xff, 0x35, 0x7c, 0x16,
+	0x4a, 0x0c, 0x16, 0xa2, 0xdd, 0xa4, 0x0a, 0x58, 0xad, 0x3d, 0x8b, 0x20, 0xaf, 0x53, 0xfe, 0x50,
+	0x8a, 0x2d, 0x45, 0xad, 0x29, 0xf5, 0x6a, 0xb7, 0x1e, 0x7c, 0xeb, 0x0d, 0x2a, 0xae, 0xb4, 0x96,
+	0xa8, 0xf3, 0x3a, 0x55, 0xbe, 0x66, 0xfd, 0xa5, 0xda, 0xfd, 0x3f, 0x4d, 0xb4, 0x41, 0x35, 0x49,
+	0xbc, 0x44, 0x28, 0xf7, 0x29, 0xfd, 0xea, 0xd6, 0x96, 0x1a, 0x0a, 0x5e, 0xed, 0xb6, 0x18, 0xfe,
+	0x03, 0x4a, 0x3f, 0xad, 0x25, 0xea, 0xfc, 0x0e, 0xe5, 0x20, 0x45, 0x11, 0xfa, 0xde, 0x8e, 0xf7,
+	0x7f, 0x48, 0x39, 0x38, 0xa1, 0x31, 0x22, 0xf1, 0x2e, 0x1d, 0x22, 0x95, 0x3b, 0xed, 0xf2, 0x1e,
+	0x1d, 0xa2, 0x78, 0x89, 0x50, 0xde, 0xa7, 0x43, 0x0c, 0xa0, 0xad, 0x66, 0x34, 0x1e, 0xf4, 0x88,
+	0x0e, 0x31, 0xad, 0x25, 0xea, 0xfc, 0x01, 0x1d, 0x62, 0x0c, 0x25, 0x3e, 0x18, 0xf4, 0x21, 0x1d,
+	0xe2, 0x84, 0xc6, 0x88, 0xc4, 0x47, 0xf8, 0x2a, 0x5c, 0xec, 0xd6, 0xd4, 0xda, 0x76, 0xa3, 0xde,
+	0xec, 0xaa, 0xc2, 0xaa, 0xa8, 0x4a, 0xfd, 0xd3, 0x9d, 0x7a, 0xa7, 0x8b, 0xbe, 0x8b, 0x57, 0xe1,
+	0x52, 0x5a, 0xb3, 0xe8, 0xfe, 0x31, 0x9d, 0xd4, 0xcb, 0x6a, 0xb7, 0xf6, 0x94, 0xeb, 0x92, 0xba,
+	0xdd, 0xe8, 0x74, 0xd1, 0x27, 0xf8, 0x0a, 0xc8, 0xa3, 0xd0, 0x70, 0x7d, 0x57, 0xf1, 0x79, 0xc0,
+	0xf1, 0xd6, 0x9d, 0xf6, 0x56, 0xb5, 0x5b, 0x47, 0x9b, 0x54, 0x9d, 0xc7, 0x7a, 0x31, 0x93, 0x81,
+	0x6a, 0xb7, 0xb6, 0xd8, 0x85, 0xe7, 0xf8, 0x9f, 0x50, 0xb2, 0x3f, 0xc3, 0x6d, 0x35, 0xeb, 0xe8,
+	0x0c, 0x35, 0x55, 0xdb, 0x9f, 0x3f, 0xe0, 0xff, 0x84, 0xfb, 0xf9, 0x76, 0x63, 0x13, 0x65, 0xd8,
+	0x53, 0xa7, 0x4b, 0xad, 0x23, 0xc0, 0x7c, 0xa7, 0x59, 0x6d, 0xb7, 0x3f, 0x43, 0xb9, 0x5b, 0x2a,
+	0xe0, 0xf1, 0x9b, 0xb9, 0xb1, 0x7f, 0xb9, 0x38, 0x93, 0xfc, 0x03, 0x0c, 0x76, 0x47, 0xea, 0xa5,
+	0x66, 0xfa, 0x8f, 0x1d, 0x37, 0x82, 0x66, 0x98, 0xcc, 0x82, 0xd7, 0x97, 0xa6, 0xbf, 0xf7, 0x98,
+	0xd8, 0xba, 0x69, 0xf7, 0x50, 0xf6, 0xd6, 0x2f, 0xcd, 0x41, 0x31, 0x96, 0xf4, 0xa7, 0x2a, 0xbf,
+	0x63, 0xef, 0xdb, 0xce, 0xa1, 0xb8, 0x2f, 0x75, 0x86, 0xae, 0x8b, 0x20, 0x77, 0x14, 0xbb, 0x88,
+	0xd5, 0x26, 0xae, 0xc7, 0x2e, 0xef, 0xeb, 0xe2, 0xb6, 0x55, 0x86, 0xae, 0x36, 0xba, 0x07, 0x23,
+	0xb6, 0x6f, 0xea, 0xd1, 0x6d, 0x2f, 0x94, 0xa5, 0xec, 0xab, 0xf2, 0xfb, 0xec, 0x5f, 0xc4, 0xe0,
+	0x39, 0xfa, 0xad, 0x60, 0x8f, 0xbe, 0x39, 0xf4, 0x8e, 0xd1, 0x1c, 0x35, 0x62, 0xe2, 0xa6, 0x79,
+	0xd3, 0xf1, 0xd9, 0x29, 0x7f, 0x34, 0x4f, 0x2d, 0x69, 0xc0, 0x83, 0x4d, 0x7e, 0x94, 0xfa, 0xd3,
+	0xa1, 0xe3, 0x6b, 0xf5, 0x23, 0x9d, 0x10, 0x83, 0xf0, 0x5c, 0x2b, 0x5a, 0xc0, 0x6f, 0xc2, 0xcd,
+	0xa9, 0x68, 0x47, 0x3a, 0xe1, 0x17, 0xcc, 0xf2, 0x74, 0x4a, 0xc1, 0x45, 0x32, 0xde, 0xbb, 0x40,
+	0x15, 0x73, 0xc7, 0x16, 0xff, 0xce, 0x45, 0x0c, 0x71, 0x58, 0x89, 0x37, 0x02, 0xc5, 0x67, 0x6e,
+	0xae, 0xe9, 0xf8, 0x8f, 0x9d, 0xa1, 0x6d, 0xa0, 0x22, 0xe5, 0x68, 0xe2, 0x3e, 0x72, 0xd0, 0xb2,
+	0xc8, 0x6e, 0xa9, 0x05, 0x67, 0xcf, 0x03, 0x68, 0x89, 0xce, 0xac, 0xeb, 0x38, 0xcf, 0x35, 0xfb,
+	0x58, 0xc4, 0x3b, 0x1e, 0x2a, 0x53, 0x22, 0x8c, 0x6e, 0x97, 0xb8, 0x7d, 0xd3, 0xd6, 0xfc, 0x60,
+	0x32, 0x4b, 0x94, 0x35, 0xe1, 0x64, 0x28, 0x6b, 0x98, 0xe7, 0x69, 0xd8, 0xec, 0xee, 0x20, 0x1f,
+	0x8a, 0xd6, 0x27, 0xe8, 0x2c, 0x65, 0x6d, 0x83, 0x5d, 0xa5, 0xd3, 0x7c, 0xf3, 0x95, 0x25, 0xf6,
+	0x7b, 0x08, 0x53, 0x59, 0x04, 0x83, 0xa8, 0x7a, 0x9e, 0xd9, 0x13, 0x53, 0x59, 0xc6, 0x15, 0x58,
+	0xed, 0xba, 0x9a, 0xed, 0xf1, 0xfa, 0x58, 0xcd, 0x71, 0x5c, 0x83, 0x7e, 0xd9, 0x89, 0xc6, 0xba,
+	0x12, 0xff, 0xd4, 0x11, 0xfb, 0xd7, 0x9a, 0xa1, 0x87, 0xce, 0xd1, 0x19, 0x34, 0x1d, 0xbf, 0x6a,
+	0x59, 0xce, 0x61, 0x30, 0xce, 0xf3, 0xf4, 0x3b, 0x09, 0x72, 0xf6, 0xae, 0x65, 0xea, 0x3e, 0xba,
+	0x30, 0xd2, 0x10, 0x12, 0x97, 0xc5, 0xdf, 0x23, 0xb3, 0x99, 0x51, 0x2d, 0x24, 0x06, 0xba, 0x78,
+	0xeb, 0x19, 0x40, 0xec, 0x1f, 0x24, 0xa8, 0x71, 0x8e, 0xfe, 0xcf, 0x8a, 0xff, 0x7b, 0xf4, 0x32,
+	0x2c, 0x45, 0xb0, 0xcf, 0x74, 0xed, 0xc5, 0x3d, 0xae, 0x86, 0x11, 0xb0, 0x4a, 0x35, 0xcf, 0x43,
+	0x99, 0x5b, 0x3f, 0x96, 0x60, 0xa9, 0x3d, 0xf2, 0xb7, 0x67, 0xf3, 0x90, 0x39, 0xb8, 0x8b, 0xce,
+	0xb0, 0x5f, 0xda, 0x93, 0xfe, 0x6e, 0xa0, 0x0c, 0xfb, 0xbd, 0x8f, 0xb2, 0xec, 0xf7, 0x01, 0xca,
+	0xb1, 0xdf, 0x77, 0xd0, 0x1c, 0xfb, 0x7d, 0x88, 0xe6, 0xd9, 0xef, 0xbb, 0x68, 0x81, 0xfd, 0xbe,
+	0x87, 0xf2, 0xec, 0xf7, 0x7d, 0x1e, 0x6a, 0x1c, 0xdc, 0xbb, 0x8b, 0x80, 0x3f, 0xdc, 0x43, 0x45,
+	0xfe, 0xb0, 0x81, 0x16, 0xf9, 0xc3, 0x7d, 0x54, 0xe2, 0x0f, 0x0f, 0x50, 0x99, 0x3f, 0xbc, 0x83,
+	0x96, 0xf8, 0xc3, 0x43, 0x84, 0xf8, 0xc3, 0xbb, 0xe8, 0x2c, 0x7f, 0x78, 0x0f, 0x61, 0xfe, 0xf0,
+	0x3e, 0x5a, 0xbe, 0xf5, 0x56, 0xfc, 0xcf, 0xb9, 0xc4, 0xd1, 0xe8, 0xea, 0x4e, 0xb7, 0xa5, 0x76,
+	0xda, 0xdb, 0x8d, 0xae, 0xf8, 0x87, 0x9b, 0x6e, 0xa3, 0xf6, 0xec, 0x33, 0x24, 0xdd, 0xaa, 0x40,
+	0x21, 0xac, 0x65, 0xd2, 0x86, 0x5a, 0xeb, 0xf9, 0x73, 0x86, 0x54, 0x80, 0xb9, 0xea, 0x66, 0x4b,
+	0xe9, 0x22, 0x69, 0x73, 0xe3, 0xaf, 0x7e, 0xb6, 0x2a, 0xfd, 0xcd, 0xcf, 0x56, 0xa5, 0x7f, 0xfc,
+	0xd9, 0xaa, 0x04, 0x15, 0xc7, 0xed, 0xdd, 0xd1, 0x06, 0x9a, 0xbe, 0x47, 0x82, 0x38, 0x4f, 0x77,
+	0xfa, 0x7d, 0xc7, 0xbe, 0xa3, 0x05, 0xff, 0x38, 0xfe, 0x34, 0xfb, 0x3f, 0x01, 0x00, 0x00, 0xff,
+	0xff, 0x26, 0x1b, 0xd5, 0x18, 0x85, 0x5c, 0x00, 0x00,
 }
 
 func (m *Schema) Marshal() (dAtA []byte, err error) {
@@ -7367,6 +7860,18 @@ func (m *MessageIdData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
+	if m.FirstChunkMessageId != nil {
+		{
+			size, err := m.FirstChunkMessageId.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintPulsarApi(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x3a
+	}
 	if m.BatchSize != nil {
 		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.BatchSize))
 		i--
@@ -8121,6 +8626,26 @@ func (m *FeatureFlags) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
+	if m.SupportsTopicWatchers != nil {
+		i--
+		if *m.SupportsTopicWatchers {
+			dAtA[i] = 1
+		} else {
+			dAtA[i] = 0
+		}
+		i--
+		dAtA[i] = 0x20
+	}
+	if m.SupportsPartialProducer != nil {
+		i--
+		if *m.SupportsPartialProducer {
+			dAtA[i] = 1
+		} else {
+			dAtA[i] = 0
+		}
+		i--
+		dAtA[i] = 0x18
+	}
 	if m.SupportsBrokerEntryMetadata != nil {
 		i--
 		if *m.SupportsBrokerEntryMetadata {
@@ -8168,6 +8693,18 @@ func (m *CommandConnected) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
+	if m.FeatureFlags != nil {
+		{
+			size, err := m.FeatureFlags.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintPulsarApi(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x22
+	}
 	if m.MaxMessageSize != nil {
 		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.MaxMessageSize))
 		i--
@@ -8415,8 +8952,15 @@ func (m *CommandSubscribe) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
-	if len(m.SubscriptionProperties) > 0 {
-		for iNdEx := len(m.SubscriptionProperties) - 1; iNdEx >= 0; iNdEx-- {
+	if m.ConsumerEpoch != nil {
+		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.ConsumerEpoch))
+		i--
+		dAtA[i] = 0x1
+		i--
+		dAtA[i] = 0x98
+	}
+	if len(m.SubscriptionProperties) > 0 {
+		for iNdEx := len(m.SubscriptionProperties) - 1; iNdEx >= 0; iNdEx-- {
 			{
 				size, err := m.SubscriptionProperties[iNdEx].MarshalToSizedBuffer(dAtA[:i])
 				if err != nil {
@@ -8899,6 +9443,13 @@ func (m *CommandProducer) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
+	if m.InitialSubscriptionName != nil {
+		i -= len(*m.InitialSubscriptionName)
+		copy(dAtA[i:], *m.InitialSubscriptionName)
+		i = encodeVarintPulsarApi(dAtA, i, uint64(len(*m.InitialSubscriptionName)))
+		i--
+		dAtA[i] = 0x6a
+	}
 	if m.TxnEnabled != nil {
 		i--
 		if *m.TxnEnabled {
@@ -9027,6 +9578,18 @@ func (m *CommandSend) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
+	if m.MessageId != nil {
+		{
+			size, err := m.MessageId.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintPulsarApi(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x4a
+	}
 	if m.Marker != nil {
 		i--
 		if *m.Marker {
@@ -9223,6 +9786,11 @@ func (m *CommandMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
+	if m.ConsumerEpoch != nil {
+		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.ConsumerEpoch))
+		i--
+		dAtA[i] = 0x28
+	}
 	if len(m.AckSet) > 0 {
 		for iNdEx := len(m.AckSet) - 1; iNdEx >= 0; iNdEx-- {
 			i = encodeVarintPulsarApi(dAtA, i, uint64(m.AckSet[iNdEx]))
@@ -9733,6 +10301,11 @@ func (m *CommandRedeliverUnacknowledgedMessages) MarshalToSizedBuffer(dAtA []byt
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
+	if m.ConsumerEpoch != nil {
+		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.ConsumerEpoch))
+		i--
+		dAtA[i] = 0x18
+	}
 	if len(m.MessageIds) > 0 {
 		for iNdEx := len(m.MessageIds) - 1; iNdEx >= 0; iNdEx-- {
 			{
@@ -10042,6 +10615,14 @@ func (m *CommandConsumerStatsResponse) MarshalToSizedBuffer(dAtA []byte) (int, e
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
+	if m.MessageAckRate != nil {
+		i -= 8
+		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.MessageAckRate))))
+		i--
+		dAtA[i] = 0x1
+		i--
+		dAtA[i] = 0x81
+	}
 	if m.MsgBacklog != nil {
 		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.MsgBacklog))
 		i--
@@ -10266,6 +10847,20 @@ func (m *CommandGetTopicsOfNamespace) MarshalToSizedBuffer(dAtA []byte) (int, er
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
+	if m.TopicsHash != nil {
+		i -= len(*m.TopicsHash)
+		copy(dAtA[i:], *m.TopicsHash)
+		i = encodeVarintPulsarApi(dAtA, i, uint64(len(*m.TopicsHash)))
+		i--
+		dAtA[i] = 0x2a
+	}
+	if m.TopicsPattern != nil {
+		i -= len(*m.TopicsPattern)
+		copy(dAtA[i:], *m.TopicsPattern)
+		i = encodeVarintPulsarApi(dAtA, i, uint64(len(*m.TopicsPattern)))
+		i--
+		dAtA[i] = 0x22
+	}
 	if m.Mode != nil {
 		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.Mode))
 		i--
@@ -10314,6 +10909,33 @@ func (m *CommandGetTopicsOfNamespaceResponse) MarshalToSizedBuffer(dAtA []byte)
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
+	if m.Changed != nil {
+		i--
+		if *m.Changed {
+			dAtA[i] = 1
+		} else {
+			dAtA[i] = 0
+		}
+		i--
+		dAtA[i] = 0x28
+	}
+	if m.TopicsHash != nil {
+		i -= len(*m.TopicsHash)
+		copy(dAtA[i:], *m.TopicsHash)
+		i = encodeVarintPulsarApi(dAtA, i, uint64(len(*m.TopicsHash)))
+		i--
+		dAtA[i] = 0x22
+	}
+	if m.Filtered != nil {
+		i--
+		if *m.Filtered {
+			dAtA[i] = 1
+		} else {
+			dAtA[i] = 0
+		}
+		i--
+		dAtA[i] = 0x18
+	}
 	if len(m.Topics) > 0 {
 		for iNdEx := len(m.Topics) - 1; iNdEx >= 0; iNdEx-- {
 			i -= len(m.Topics[iNdEx])
@@ -10333,6 +10955,233 @@ func (m *CommandGetTopicsOfNamespaceResponse) MarshalToSizedBuffer(dAtA []byte)
 	return len(dAtA) - i, nil
 }
 
+func (m *CommandWatchTopicList) Marshal() (dAtA []byte, err error) {
+	size := m.Size()
+	dAtA = make([]byte, size)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
+	if err != nil {
+		return nil, err
+	}
+	return dAtA[:n], nil
+}
+
+func (m *CommandWatchTopicList) MarshalTo(dAtA []byte) (int, error) {
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *CommandWatchTopicList) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
+	_ = i
+	var l int
+	_ = l
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
+	if m.TopicsHash != nil {
+		i -= len(*m.TopicsHash)
+		copy(dAtA[i:], *m.TopicsHash)
+		i = encodeVarintPulsarApi(dAtA, i, uint64(len(*m.TopicsHash)))
+		i--
+		dAtA[i] = 0x2a
+	}
+	if m.TopicsPattern == nil {
+		return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("topics_pattern")
+	} else {
+		i -= len(*m.TopicsPattern)
+		copy(dAtA[i:], *m.TopicsPattern)
+		i = encodeVarintPulsarApi(dAtA, i, uint64(len(*m.TopicsPattern)))
+		i--
+		dAtA[i] = 0x22
+	}
+	if m.Namespace == nil {
+		return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("namespace")
+	} else {
+		i -= len(*m.Namespace)
+		copy(dAtA[i:], *m.Namespace)
+		i = encodeVarintPulsarApi(dAtA, i, uint64(len(*m.Namespace)))
+		i--
+		dAtA[i] = 0x1a
+	}
+	if m.WatcherId == nil {
+		return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("watcher_id")
+	} else {
+		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.WatcherId))
+		i--
+		dAtA[i] = 0x10
+	}
+	if m.RequestId == nil {
+		return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("request_id")
+	} else {
+		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.RequestId))
+		i--
+		dAtA[i] = 0x8
+	}
+	return len(dAtA) - i, nil
+}
+
+func (m *CommandWatchTopicListSuccess) Marshal() (dAtA []byte, err error) {
+	size := m.Size()
+	dAtA = make([]byte, size)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
+	if err != nil {
+		return nil, err
+	}
+	return dAtA[:n], nil
+}
+
+func (m *CommandWatchTopicListSuccess) MarshalTo(dAtA []byte) (int, error) {
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *CommandWatchTopicListSuccess) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
+	_ = i
+	var l int
+	_ = l
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
+	if m.TopicsHash == nil {
+		return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("topics_hash")
+	} else {
+		i -= len(*m.TopicsHash)
+		copy(dAtA[i:], *m.TopicsHash)
+		i = encodeVarintPulsarApi(dAtA, i, uint64(len(*m.TopicsHash)))
+		i--
+		dAtA[i] = 0x22
+	}
+	if len(m.Topic) > 0 {
+		for iNdEx := len(m.Topic) - 1; iNdEx >= 0; iNdEx-- {
+			i -= len(m.Topic[iNdEx])
+			copy(dAtA[i:], m.Topic[iNdEx])
+			i = encodeVarintPulsarApi(dAtA, i, uint64(len(m.Topic[iNdEx])))
+			i--
+			dAtA[i] = 0x1a
+		}
+	}
+	if m.WatcherId == nil {
+		return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("watcher_id")
+	} else {
+		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.WatcherId))
+		i--
+		dAtA[i] = 0x10
+	}
+	if m.RequestId == nil {
+		return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("request_id")
+	} else {
+		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.RequestId))
+		i--
+		dAtA[i] = 0x8
+	}
+	return len(dAtA) - i, nil
+}
+
+func (m *CommandWatchTopicUpdate) Marshal() (dAtA []byte, err error) {
+	size := m.Size()
+	dAtA = make([]byte, size)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
+	if err != nil {
+		return nil, err
+	}
+	return dAtA[:n], nil
+}
+
+func (m *CommandWatchTopicUpdate) MarshalTo(dAtA []byte) (int, error) {
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *CommandWatchTopicUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
+	_ = i
+	var l int
+	_ = l
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
+	if m.TopicsHash == nil {
+		return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("topics_hash")
+	} else {
+		i -= len(*m.TopicsHash)
+		copy(dAtA[i:], *m.TopicsHash)
+		i = encodeVarintPulsarApi(dAtA, i, uint64(len(*m.TopicsHash)))
+		i--
+		dAtA[i] = 0x22
+	}
+	if len(m.DeletedTopics) > 0 {
+		for iNdEx := len(m.DeletedTopics) - 1; iNdEx >= 0; iNdEx-- {
+			i -= len(m.DeletedTopics[iNdEx])
+			copy(dAtA[i:], m.DeletedTopics[iNdEx])
+			i = encodeVarintPulsarApi(dAtA, i, uint64(len(m.DeletedTopics[iNdEx])))
+			i--
+			dAtA[i] = 0x1a
+		}
+	}
+	if len(m.NewTopics) > 0 {
+		for iNdEx := len(m.NewTopics) - 1; iNdEx >= 0; iNdEx-- {
+			i -= len(m.NewTopics[iNdEx])
+			copy(dAtA[i:], m.NewTopics[iNdEx])
+			i = encodeVarintPulsarApi(dAtA, i, uint64(len(m.NewTopics[iNdEx])))
+			i--
+			dAtA[i] = 0x12
+		}
+	}
+	if m.WatcherId == nil {
+		return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("watcher_id")
+	} else {
+		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.WatcherId))
+		i--
+		dAtA[i] = 0x8
+	}
+	return len(dAtA) - i, nil
+}
+
+func (m *CommandWatchTopicListClose) Marshal() (dAtA []byte, err error) {
+	size := m.Size()
+	dAtA = make([]byte, size)
+	n, err := m.MarshalToSizedBuffer(dAtA[:size])
+	if err != nil {
+		return nil, err
+	}
+	return dAtA[:n], nil
+}
+
+func (m *CommandWatchTopicListClose) MarshalTo(dAtA []byte) (int, error) {
+	size := m.Size()
+	return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *CommandWatchTopicListClose) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+	i := len(dAtA)
+	_ = i
+	var l int
+	_ = l
+	if m.XXX_unrecognized != nil {
+		i -= len(m.XXX_unrecognized)
+		copy(dAtA[i:], m.XXX_unrecognized)
+	}
+	if m.WatcherId == nil {
+		return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("watcher_id")
+	} else {
+		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.WatcherId))
+		i--
+		dAtA[i] = 0x10
+	}
+	if m.RequestId == nil {
+		return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("request_id")
+	} else {
+		i = encodeVarintPulsarApi(dAtA, i, uint64(*m.RequestId))
+		i--
+		dAtA[i] = 0x8
+	}
+	return len(dAtA) - i, nil
+}
+
 func (m *CommandGetSchema) Marshal() (dAtA []byte, err error) {
 	size := m.Size()
 	dAtA = make([]byte, size)
@@ -11381,9 +12230,9 @@ func (m *BaseCommand) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 		i -= len(m.XXX_unrecognized)
 		copy(dAtA[i:], m.XXX_unrecognized)
 	}
-	if m.TcClientConnectResponse != nil {
+	if m.WatchTopicListClose != nil {
 		{
-			size, err := m.TcClientConnectResponse.MarshalToSizedBuffer(dAtA[:i])
+			size, err := m.WatchTopicListClose.MarshalToSizedBuffer(dAtA[:i])
 			if err != nil {
 				return 0, err
 			}
@@ -11391,13 +12240,13 @@ func (m *BaseCommand) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 			i = encodeVarintPulsarApi(dAtA, i, uint64(size))
 		}
 		i--
-		dAtA[i] = 0x3
+		dAtA[i] = 0x4
 		i--
-		dAtA[i] = 0xfa
+		dAtA[i] = 0x9a
 	}
-	if m.TcClientConnectRequest != nil {
+	if m.WatchTopicUpdate != nil {
 		{
-			size, err := m.TcClientConnectRequest.MarshalToSizedBuffer(dAtA[:i])
+			size, err := m.WatchTopicUpdate.MarshalToSizedBuffer(dAtA[:i])
 			if err != nil {
 				return 0, err
 			}
@@ -11405,13 +12254,13 @@ func (m *BaseCommand) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 			i = encodeVarintPulsarApi(dAtA, i, uint64(size))
 		}
 		i--
-		dAtA[i] = 0x3
+		dAtA[i] = 0x4
 		i--
-		dAtA[i] = 0xf2
+		dAtA[i] = 0x92
 	}
-	if m.EndTxnOnSubscriptionResponse != nil {
+	if m.WatchTopicListSuccess != nil {
 		{
-			size, err := m.EndTxnOnSubscriptionResponse.MarshalToSizedBuffer(dAtA[:i])
+			size, err := m.WatchTopicListSuccess.MarshalToSizedBuffer(dAtA[:i])
 			if err != nil {
 				return 0, err
 			}
@@ -11419,13 +12268,13 @@ func (m *BaseCommand) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 			i = encodeVarintPulsarApi(dAtA, i, uint64(size))
 		}
 		i--
-		dAtA[i] = 0x3
+		dAtA[i] = 0x4
 		i--
-		dAtA[i] = 0xea
+		dAtA[i] = 0x8a
 	}
-	if m.EndTxnOnSubscription != nil {
+	if m.WatchTopicList != nil {
 		{
-			size, err := m.EndTxnOnSubscription.MarshalToSizedBuffer(dAtA[:i])
+			size, err := m.WatchTopicList.MarshalToSizedBuffer(dAtA[:i])
 			if err != nil {
 				return 0, err
 			}
@@ -11433,13 +12282,13 @@ func (m *BaseCommand) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 			i = encodeVarintPulsarApi(dAtA, i, uint64(size))
 		}
 		i--
-		dAtA[i] = 0x3
+		dAtA[i] = 0x4
 		i--
-		dAtA[i] = 0xe2
+		dAtA[i] = 0x82
 	}
-	if m.EndTxnOnPartitionResponse != nil {
+	if m.TcClientConnectResponse != nil {
 		{
-			size, err := m.EndTxnOnPartitionResponse.MarshalToSizedBuffer(dAtA[:i])
+			size, err := m.TcClientConnectResponse.MarshalToSizedBuffer(dAtA[:i])
 			if err != nil {
 				return 0, err
 			}
@@ -11449,11 +12298,67 @@ func (m *BaseCommand) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 		i--
 		dAtA[i] = 0x3
 		i--
-		dAtA[i] = 0xda
+		dAtA[i] = 0xfa
 	}
-	if m.EndTxnOnPartition != nil {
+	if m.TcClientConnectRequest != nil {
 		{
-			size, err := m.EndTxnOnPartition.MarshalToSizedBuffer(dAtA[:i])
+			size, err := m.TcClientConnectRequest.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintPulsarApi(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x3
+		i--
+		dAtA[i] = 0xf2
+	}
+	if m.EndTxnOnSubscriptionResponse != nil {
+		{
+			size, err := m.EndTxnOnSubscriptionResponse.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintPulsarApi(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x3
+		i--
+		dAtA[i] = 0xea
+	}
+	if m.EndTxnOnSubscription != nil {
+		{
+			size, err := m.EndTxnOnSubscription.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintPulsarApi(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x3
+		i--
+		dAtA[i] = 0xe2
+	}
+	if m.EndTxnOnPartitionResponse != nil {
+		{
+			size, err := m.EndTxnOnPartitionResponse.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintPulsarApi(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x3
+		i--
+		dAtA[i] = 0xda
+	}
+	if m.EndTxnOnPartition != nil {
+		{
+			size, err := m.EndTxnOnPartition.MarshalToSizedBuffer(dAtA[:i])
 			if err != nil {
 				return 0, err
 			}
@@ -12171,6 +13076,10 @@ func (m *MessageIdData) Size() (n int) {
 	if m.BatchSize != nil {
 		n += 1 + sovPulsarApi(uint64(*m.BatchSize))
 	}
+	if m.FirstChunkMessageId != nil {
+		l = m.FirstChunkMessageId.Size()
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
 	if m.XXX_unrecognized != nil {
 		n += len(m.XXX_unrecognized)
 	}
@@ -12500,6 +13409,12 @@ func (m *FeatureFlags) Size() (n int) {
 	if m.SupportsBrokerEntryMetadata != nil {
 		n += 2
 	}
+	if m.SupportsPartialProducer != nil {
+		n += 2
+	}
+	if m.SupportsTopicWatchers != nil {
+		n += 2
+	}
 	if m.XXX_unrecognized != nil {
 		n += len(m.XXX_unrecognized)
 	}
@@ -12522,6 +13437,10 @@ func (m *CommandConnected) Size() (n int) {
 	if m.MaxMessageSize != nil {
 		n += 1 + sovPulsarApi(uint64(*m.MaxMessageSize))
 	}
+	if m.FeatureFlags != nil {
+		l = m.FeatureFlags.Size()
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
 	if m.XXX_unrecognized != nil {
 		n += len(m.XXX_unrecognized)
 	}
@@ -12690,6 +13609,9 @@ func (m *CommandSubscribe) Size() (n int) {
 			n += 2 + l + sovPulsarApi(uint64(l))
 		}
 	}
+	if m.ConsumerEpoch != nil {
+		n += 2 + sovPulsarApi(uint64(*m.ConsumerEpoch))
+	}
 	if m.XXX_unrecognized != nil {
 		n += len(m.XXX_unrecognized)
 	}
@@ -12880,6 +13802,10 @@ func (m *CommandProducer) Size() (n int) {
 	if m.TxnEnabled != nil {
 		n += 2
 	}
+	if m.InitialSubscriptionName != nil {
+		l = len(*m.InitialSubscriptionName)
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
 	if m.XXX_unrecognized != nil {
 		n += len(m.XXX_unrecognized)
 	}
@@ -12916,6 +13842,10 @@ func (m *CommandSend) Size() (n int) {
 	if m.Marker != nil {
 		n += 2
 	}
+	if m.MessageId != nil {
+		l = m.MessageId.Size()
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
 	if m.XXX_unrecognized != nil {
 		n += len(m.XXX_unrecognized)
 	}
@@ -12993,6 +13923,9 @@ func (m *CommandMessage) Size() (n int) {
 			n += 1 + sovPulsarApi(uint64(e))
 		}
 	}
+	if m.ConsumerEpoch != nil {
+		n += 1 + sovPulsarApi(uint64(*m.ConsumerEpoch))
+	}
 	if m.XXX_unrecognized != nil {
 		n += len(m.XXX_unrecognized)
 	}
@@ -13217,6 +14150,9 @@ func (m *CommandRedeliverUnacknowledgedMessages) Size() (n int) {
 			n += 1 + l + sovPulsarApi(uint64(l))
 		}
 	}
+	if m.ConsumerEpoch != nil {
+		n += 1 + sovPulsarApi(uint64(*m.ConsumerEpoch))
+	}
 	if m.XXX_unrecognized != nil {
 		n += len(m.XXX_unrecognized)
 	}
@@ -13394,6 +14330,9 @@ func (m *CommandConsumerStatsResponse) Size() (n int) {
 	if m.MsgBacklog != nil {
 		n += 1 + sovPulsarApi(uint64(*m.MsgBacklog))
 	}
+	if m.MessageAckRate != nil {
+		n += 10
+	}
 	if m.XXX_unrecognized != nil {
 		n += len(m.XXX_unrecognized)
 	}
@@ -13457,6 +14396,14 @@ func (m *CommandGetTopicsOfNamespace) Size() (n int) {
 	if m.Mode != nil {
 		n += 1 + sovPulsarApi(uint64(*m.Mode))
 	}
+	if m.TopicsPattern != nil {
+		l = len(*m.TopicsPattern)
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
+	if m.TopicsHash != nil {
+		l = len(*m.TopicsHash)
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
 	if m.XXX_unrecognized != nil {
 		n += len(m.XXX_unrecognized)
 	}
@@ -13478,6 +14425,123 @@ func (m *CommandGetTopicsOfNamespaceResponse) Size() (n int) {
 			n += 1 + l + sovPulsarApi(uint64(l))
 		}
 	}
+	if m.Filtered != nil {
+		n += 2
+	}
+	if m.TopicsHash != nil {
+		l = len(*m.TopicsHash)
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
+	if m.Changed != nil {
+		n += 2
+	}
+	if m.XXX_unrecognized != nil {
+		n += len(m.XXX_unrecognized)
+	}
+	return n
+}
+
+func (m *CommandWatchTopicList) Size() (n int) {
+	if m == nil {
+		return 0
+	}
+	var l int
+	_ = l
+	if m.RequestId != nil {
+		n += 1 + sovPulsarApi(uint64(*m.RequestId))
+	}
+	if m.WatcherId != nil {
+		n += 1 + sovPulsarApi(uint64(*m.WatcherId))
+	}
+	if m.Namespace != nil {
+		l = len(*m.Namespace)
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
+	if m.TopicsPattern != nil {
+		l = len(*m.TopicsPattern)
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
+	if m.TopicsHash != nil {
+		l = len(*m.TopicsHash)
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
+	if m.XXX_unrecognized != nil {
+		n += len(m.XXX_unrecognized)
+	}
+	return n
+}
+
+func (m *CommandWatchTopicListSuccess) Size() (n int) {
+	if m == nil {
+		return 0
+	}
+	var l int
+	_ = l
+	if m.RequestId != nil {
+		n += 1 + sovPulsarApi(uint64(*m.RequestId))
+	}
+	if m.WatcherId != nil {
+		n += 1 + sovPulsarApi(uint64(*m.WatcherId))
+	}
+	if len(m.Topic) > 0 {
+		for _, s := range m.Topic {
+			l = len(s)
+			n += 1 + l + sovPulsarApi(uint64(l))
+		}
+	}
+	if m.TopicsHash != nil {
+		l = len(*m.TopicsHash)
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
+	if m.XXX_unrecognized != nil {
+		n += len(m.XXX_unrecognized)
+	}
+	return n
+}
+
+func (m *CommandWatchTopicUpdate) Size() (n int) {
+	if m == nil {
+		return 0
+	}
+	var l int
+	_ = l
+	if m.WatcherId != nil {
+		n += 1 + sovPulsarApi(uint64(*m.WatcherId))
+	}
+	if len(m.NewTopics) > 0 {
+		for _, s := range m.NewTopics {
+			l = len(s)
+			n += 1 + l + sovPulsarApi(uint64(l))
+		}
+	}
+	if len(m.DeletedTopics) > 0 {
+		for _, s := range m.DeletedTopics {
+			l = len(s)
+			n += 1 + l + sovPulsarApi(uint64(l))
+		}
+	}
+	if m.TopicsHash != nil {
+		l = len(*m.TopicsHash)
+		n += 1 + l + sovPulsarApi(uint64(l))
+	}
+	if m.XXX_unrecognized != nil {
+		n += len(m.XXX_unrecognized)
+	}
+	return n
+}
+
+func (m *CommandWatchTopicListClose) Size() (n int) {
+	if m == nil {
+		return 0
+	}
+	var l int
+	_ = l
+	if m.RequestId != nil {
+		n += 1 + sovPulsarApi(uint64(*m.RequestId))
+	}
+	if m.WatcherId != nil {
+		n += 1 + sovPulsarApi(uint64(*m.WatcherId))
+	}
 	if m.XXX_unrecognized != nil {
 		n += len(m.XXX_unrecognized)
 	}
@@ -14192,23 +15256,996 @@ func (m *BaseCommand) Size() (n int) {
 		l = m.TcClientConnectRequest.Size()
 		n += 2 + l + sovPulsarApi(uint64(l))
 	}
-	if m.TcClientConnectResponse != nil {
-		l = m.TcClientConnectResponse.Size()
-		n += 2 + l + sovPulsarApi(uint64(l))
+	if m.TcClientConnectResponse != nil {
+		l = m.TcClientConnectResponse.Size()
+		n += 2 + l + sovPulsarApi(uint64(l))
+	}
+	if m.WatchTopicList != nil {
+		l = m.WatchTopicList.Size()
+		n += 2 + l + sovPulsarApi(uint64(l))
+	}
+	if m.WatchTopicListSuccess != nil {
+		l = m.WatchTopicListSuccess.Size()
+		n += 2 + l + sovPulsarApi(uint64(l))
+	}
+	if m.WatchTopicUpdate != nil {
+		l = m.WatchTopicUpdate.Size()
+		n += 2 + l + sovPulsarApi(uint64(l))
+	}
+	if m.WatchTopicListClose != nil {
+		l = m.WatchTopicListClose.Size()
+		n += 2 + l + sovPulsarApi(uint64(l))
+	}
+	if m.XXX_unrecognized != nil {
+		n += len(m.XXX_unrecognized)
+	}
+	return n
+}
+
+func sovPulsarApi(x uint64) (n int) {
+	return (math_bits.Len64(x|1) + 6) / 7
+}
+func sozPulsarApi(x uint64) (n int) {
+	return sovPulsarApi(uint64((x << 1) ^ uint64((int64(x) >> 63))))
+}
+func (m *Schema) Unmarshal(dAtA []byte) error {
+	var hasFields [1]uint64
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: Schema: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: Schema: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+			}
+			var stringLen uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				stringLen |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.Name = &s
+			iNdEx = postIndex
+			hasFields[0] |= uint64(0x00000001)
+		case 3:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field SchemaData", wireType)
+			}
+			var byteLen int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				byteLen |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			if byteLen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + byteLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.SchemaData = append(m.SchemaData[:0], dAtA[iNdEx:postIndex]...)
+			if m.SchemaData == nil {
+				m.SchemaData = []byte{}
+			}
+			iNdEx = postIndex
+			hasFields[0] |= uint64(0x00000002)
+		case 4:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
+			}
+			var v Schema_Type
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= Schema_Type(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.Type = &v
+			hasFields[0] |= uint64(0x00000004)
+		case 5:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Properties", wireType)
+			}
+			var msglen int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				msglen |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			if msglen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.Properties = append(m.Properties, &KeyValue{})
+			if err := m.Properties[len(m.Properties)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
+			iNdEx = postIndex
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+	if hasFields[0]&uint64(0x00000001) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("name")
+	}
+	if hasFields[0]&uint64(0x00000002) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("schema_data")
+	}
+	if hasFields[0]&uint64(0x00000004) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("type")
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *MessageIdData) Unmarshal(dAtA []byte) error {
+	var hasFields [1]uint64
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: MessageIdData: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: MessageIdData: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field LedgerId", wireType)
+			}
+			var v uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.LedgerId = &v
+			hasFields[0] |= uint64(0x00000001)
+		case 2:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field EntryId", wireType)
+			}
+			var v uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.EntryId = &v
+			hasFields[0] |= uint64(0x00000002)
+		case 3:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Partition", wireType)
+			}
+			var v int32
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int32(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.Partition = &v
+		case 4:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field BatchIndex", wireType)
+			}
+			var v int32
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int32(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.BatchIndex = &v
+		case 5:
+			if wireType == 0 {
+				var v int64
+				for shift := uint(0); ; shift += 7 {
+					if shift >= 64 {
+						return ErrIntOverflowPulsarApi
+					}
+					if iNdEx >= l {
+						return io.ErrUnexpectedEOF
+					}
+					b := dAtA[iNdEx]
+					iNdEx++
+					v |= int64(b&0x7F) << shift
+					if b < 0x80 {
+						break
+					}
+				}
+				m.AckSet = append(m.AckSet, v)
+			} else if wireType == 2 {
+				var packedLen int
+				for shift := uint(0); ; shift += 7 {
+					if shift >= 64 {
+						return ErrIntOverflowPulsarApi
+					}
+					if iNdEx >= l {
+						return io.ErrUnexpectedEOF
+					}
+					b := dAtA[iNdEx]
+					iNdEx++
+					packedLen |= int(b&0x7F) << shift
+					if b < 0x80 {
+						break
+					}
+				}
+				if packedLen < 0 {
+					return ErrInvalidLengthPulsarApi
+				}
+				postIndex := iNdEx + packedLen
+				if postIndex < 0 {
+					return ErrInvalidLengthPulsarApi
+				}
+				if postIndex > l {
+					return io.ErrUnexpectedEOF
+				}
+				var elementCount int
+				var count int
+				for _, integer := range dAtA[iNdEx:postIndex] {
+					if integer < 128 {
+						count++
+					}
+				}
+				elementCount = count
+				if elementCount != 0 && len(m.AckSet) == 0 {
+					m.AckSet = make([]int64, 0, elementCount)
+				}
+				for iNdEx < postIndex {
+					var v int64
+					for shift := uint(0); ; shift += 7 {
+						if shift >= 64 {
+							return ErrIntOverflowPulsarApi
+						}
+						if iNdEx >= l {
+							return io.ErrUnexpectedEOF
+						}
+						b := dAtA[iNdEx]
+						iNdEx++
+						v |= int64(b&0x7F) << shift
+						if b < 0x80 {
+							break
+						}
+					}
+					m.AckSet = append(m.AckSet, v)
+				}
+			} else {
+				return fmt.Errorf("proto: wrong wireType = %d for field AckSet", wireType)
+			}
+		case 6:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field BatchSize", wireType)
+			}
+			var v int32
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int32(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.BatchSize = &v
+		case 7:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field FirstChunkMessageId", wireType)
+			}
+			var msglen int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				msglen |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			if msglen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			if m.FirstChunkMessageId == nil {
+				m.FirstChunkMessageId = &MessageIdData{}
+			}
+			if err := m.FirstChunkMessageId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
+			iNdEx = postIndex
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+	if hasFields[0]&uint64(0x00000001) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("ledgerId")
+	}
+	if hasFields[0]&uint64(0x00000002) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("entryId")
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *KeyValue) Unmarshal(dAtA []byte) error {
+	var hasFields [1]uint64
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: KeyValue: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: KeyValue: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
+			}
+			var stringLen uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				stringLen |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.Key = &s
+			iNdEx = postIndex
+			hasFields[0] |= uint64(0x00000001)
+		case 2:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
+			}
+			var stringLen uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				stringLen |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.Value = &s
+			iNdEx = postIndex
+			hasFields[0] |= uint64(0x00000002)
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+	if hasFields[0]&uint64(0x00000001) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("key")
+	}
+	if hasFields[0]&uint64(0x00000002) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("value")
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *KeyLongValue) Unmarshal(dAtA []byte) error {
+	var hasFields [1]uint64
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: KeyLongValue: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: KeyLongValue: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
+			}
+			var stringLen uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				stringLen |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.Key = &s
+			iNdEx = postIndex
+			hasFields[0] |= uint64(0x00000001)
+		case 2:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
+			}
+			var v uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.Value = &v
+			hasFields[0] |= uint64(0x00000002)
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+	if hasFields[0]&uint64(0x00000001) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("key")
+	}
+	if hasFields[0]&uint64(0x00000002) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("value")
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *IntRange) Unmarshal(dAtA []byte) error {
+	var hasFields [1]uint64
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: IntRange: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: IntRange: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType)
+			}
+			var v int32
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int32(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.Start = &v
+			hasFields[0] |= uint64(0x00000001)
+		case 2:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field End", wireType)
+			}
+			var v int32
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int32(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.End = &v
+			hasFields[0] |= uint64(0x00000002)
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+	if hasFields[0]&uint64(0x00000001) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("start")
+	}
+	if hasFields[0]&uint64(0x00000002) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("end")
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *EncryptionKeys) Unmarshal(dAtA []byte) error {
+	var hasFields [1]uint64
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: EncryptionKeys: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: EncryptionKeys: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
+			}
+			var stringLen uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				stringLen |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.Key = &s
+			iNdEx = postIndex
+			hasFields[0] |= uint64(0x00000001)
+		case 2:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
+			}
+			var byteLen int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				byteLen |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			if byteLen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + byteLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...)
+			if m.Value == nil {
+				m.Value = []byte{}
+			}
+			iNdEx = postIndex
+			hasFields[0] |= uint64(0x00000002)
+		case 3:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
+			}
+			var msglen int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				msglen |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			if msglen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.Metadata = append(m.Metadata, &KeyValue{})
+			if err := m.Metadata[len(m.Metadata)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
+			iNdEx = postIndex
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+	if hasFields[0]&uint64(0x00000001) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("key")
 	}
-	if m.XXX_unrecognized != nil {
-		n += len(m.XXX_unrecognized)
+	if hasFields[0]&uint64(0x00000002) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("value")
 	}
-	return n
-}
 
-func sovPulsarApi(x uint64) (n int) {
-	return (math_bits.Len64(x|1) + 6) / 7
-}
-func sozPulsarApi(x uint64) (n int) {
-	return sovPulsarApi(uint64((x << 1) ^ uint64((int64(x) >> 63))))
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
 }
-func (m *Schema) Unmarshal(dAtA []byte) error {
+func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 	var hasFields [1]uint64
 	l := len(dAtA)
 	iNdEx := 0
@@ -14232,15 +16269,15 @@ func (m *Schema) Unmarshal(dAtA []byte) error {
 		fieldNum := int32(wire >> 3)
 		wireType := int(wire & 0x7)
 		if wireType == 4 {
-			return fmt.Errorf("proto: Schema: wiretype end group for non-group")
+			return fmt.Errorf("proto: MessageMetadata: wiretype end group for non-group")
 		}
 		if fieldNum <= 0 {
-			return fmt.Errorf("proto: Schema: illegal tag %d (wire type %d)", fieldNum, wire)
+			return fmt.Errorf("proto: MessageMetadata: illegal tag %d (wire type %d)", fieldNum, wire)
 		}
 		switch fieldNum {
 		case 1:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ProducerName", wireType)
 			}
 			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
@@ -14269,14 +16306,56 @@ func (m *Schema) Unmarshal(dAtA []byte) error {
 				return io.ErrUnexpectedEOF
 			}
 			s := string(dAtA[iNdEx:postIndex])
-			m.Name = &s
+			m.ProducerName = &s
 			iNdEx = postIndex
 			hasFields[0] |= uint64(0x00000001)
+		case 2:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field SequenceId", wireType)
+			}
+			var v uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.SequenceId = &v
+			hasFields[0] |= uint64(0x00000002)
 		case 3:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field PublishTime", wireType)
+			}
+			var v uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.PublishTime = &v
+			hasFields[0] |= uint64(0x00000004)
+		case 4:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field SchemaData", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field Properties", wireType)
 			}
-			var byteLen int
+			var msglen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14286,32 +16365,64 @@ func (m *Schema) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				byteLen |= int(b&0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if byteLen < 0 {
+			if msglen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.Properties = append(m.Properties, &KeyValue{})
+			if err := m.Properties[len(m.Properties)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
+			iNdEx = postIndex
+		case 5:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field ReplicatedFrom", wireType)
+			}
+			var stringLen uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				stringLen |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + byteLen
+			postIndex := iNdEx + intStringLen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			m.SchemaData = append(m.SchemaData[:0], dAtA[iNdEx:postIndex]...)
-			if m.SchemaData == nil {
-				m.SchemaData = []byte{}
-			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.ReplicatedFrom = &s
 			iNdEx = postIndex
-			hasFields[0] |= uint64(0x00000002)
-		case 4:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
+		case 6:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field PartitionKey", wireType)
 			}
-			var v Schema_Type
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14321,18 +16432,30 @@ func (m *Schema) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= Schema_Type(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.Type = &v
-			hasFields[0] |= uint64(0x00000004)
-		case 5:
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.PartitionKey = &s
+			iNdEx = postIndex
+		case 7:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Properties", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ReplicateTo", wireType)
 			}
-			var msglen int
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14342,92 +16465,29 @@ func (m *Schema) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= int(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if msglen < 0 {
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + msglen
+			postIndex := iNdEx + intStringLen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			m.Properties = append(m.Properties, &KeyValue{})
-			if err := m.Properties[len(m.Properties)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
+			m.ReplicateTo = append(m.ReplicateTo, string(dAtA[iNdEx:postIndex]))
 			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipPulsarApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if (skippy < 0) || (iNdEx+skippy) < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
-			iNdEx += skippy
-		}
-	}
-	if hasFields[0]&uint64(0x00000001) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("name")
-	}
-	if hasFields[0]&uint64(0x00000002) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("schema_data")
-	}
-	if hasFields[0]&uint64(0x00000004) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("type")
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MessageIdData) Unmarshal(dAtA []byte) error {
-	var hasFields [1]uint64
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowPulsarApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MessageIdData: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MessageIdData: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
+		case 8:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field LedgerId", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field Compression", wireType)
 			}
-			var v uint64
+			var v CompressionType
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14437,18 +16497,17 @@ func (m *MessageIdData) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= uint64(b&0x7F) << shift
+				v |= CompressionType(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.LedgerId = &v
-			hasFields[0] |= uint64(0x00000001)
-		case 2:
+			m.Compression = &v
+		case 9:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field EntryId", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field UncompressedSize", wireType)
 			}
-			var v uint64
+			var v uint32
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14458,16 +16517,15 @@ func (m *MessageIdData) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= uint64(b&0x7F) << shift
+				v |= uint32(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.EntryId = &v
-			hasFields[0] |= uint64(0x00000002)
-		case 3:
+			m.UncompressedSize = &v
+		case 11:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Partition", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field NumMessagesInBatch", wireType)
 			}
 			var v int32
 			for shift := uint(0); ; shift += 7 {
@@ -14484,12 +16542,12 @@ func (m *MessageIdData) Unmarshal(dAtA []byte) error {
 					break
 				}
 			}
-			m.Partition = &v
-		case 4:
+			m.NumMessagesInBatch = &v
+		case 12:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field BatchIndex", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field EventTime", wireType)
 			}
-			var v int32
+			var v uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14499,93 +16557,51 @@ func (m *MessageIdData) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int32(b&0x7F) << shift
+				v |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.BatchIndex = &v
-		case 5:
-			if wireType == 0 {
-				var v int64
-				for shift := uint(0); ; shift += 7 {
-					if shift >= 64 {
-						return ErrIntOverflowPulsarApi
-					}
-					if iNdEx >= l {
-						return io.ErrUnexpectedEOF
-					}
-					b := dAtA[iNdEx]
-					iNdEx++
-					v |= int64(b&0x7F) << shift
-					if b < 0x80 {
-						break
-					}
-				}
-				m.AckSet = append(m.AckSet, v)
-			} else if wireType == 2 {
-				var packedLen int
-				for shift := uint(0); ; shift += 7 {
-					if shift >= 64 {
-						return ErrIntOverflowPulsarApi
-					}
-					if iNdEx >= l {
-						return io.ErrUnexpectedEOF
-					}
-					b := dAtA[iNdEx]
-					iNdEx++
-					packedLen |= int(b&0x7F) << shift
-					if b < 0x80 {
-						break
-					}
-				}
-				if packedLen < 0 {
-					return ErrInvalidLengthPulsarApi
-				}
-				postIndex := iNdEx + packedLen
-				if postIndex < 0 {
-					return ErrInvalidLengthPulsarApi
+			m.EventTime = &v
+		case 13:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field EncryptionKeys", wireType)
+			}
+			var msglen int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
 				}
-				if postIndex > l {
+				if iNdEx >= l {
 					return io.ErrUnexpectedEOF
 				}
-				var elementCount int
-				var count int
-				for _, integer := range dAtA[iNdEx:postIndex] {
-					if integer < 128 {
-						count++
-					}
-				}
-				elementCount = count
-				if elementCount != 0 && len(m.AckSet) == 0 {
-					m.AckSet = make([]int64, 0, elementCount)
-				}
-				for iNdEx < postIndex {
-					var v int64
-					for shift := uint(0); ; shift += 7 {
-						if shift >= 64 {
-							return ErrIntOverflowPulsarApi
-						}
-						if iNdEx >= l {
-							return io.ErrUnexpectedEOF
-						}
-						b := dAtA[iNdEx]
-						iNdEx++
-						v |= int64(b&0x7F) << shift
-						if b < 0x80 {
-							break
-						}
-					}
-					m.AckSet = append(m.AckSet, v)
+				b := dAtA[iNdEx]
+				iNdEx++
+				msglen |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
 				}
-			} else {
-				return fmt.Errorf("proto: wrong wireType = %d for field AckSet", wireType)
 			}
-		case 6:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field BatchSize", wireType)
+			if msglen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.EncryptionKeys = append(m.EncryptionKeys, &EncryptionKeys{})
+			if err := m.EncryptionKeys[len(m.EncryptionKeys)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
+			iNdEx = postIndex
+		case 14:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field EncryptionAlgo", wireType)
 			}
-			var v int32
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14595,75 +16611,30 @@ func (m *MessageIdData) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int32(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.BatchSize = &v
-		default:
-			iNdEx = preIndex
-			skippy, err := skipPulsarApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if (skippy < 0) || (iNdEx+skippy) < 0 {
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
-			iNdEx += skippy
-		}
-	}
-	if hasFields[0]&uint64(0x00000001) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("ledgerId")
-	}
-	if hasFields[0]&uint64(0x00000002) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("entryId")
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *KeyValue) Unmarshal(dAtA []byte) error {
-	var hasFields [1]uint64
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowPulsarApi
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
 			}
-			if iNdEx >= l {
+			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: KeyValue: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: KeyValue: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
+			s := string(dAtA[iNdEx:postIndex])
+			m.EncryptionAlgo = &s
+			iNdEx = postIndex
+		case 15:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field EncryptionParam", wireType)
 			}
-			var stringLen uint64
+			var byteLen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14673,31 +16644,31 @@ func (m *KeyValue) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
+				byteLen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
+			if byteLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + intStringLen
+			postIndex := iNdEx + byteLen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.Key = &s
+			m.EncryptionParam = append(m.EncryptionParam[:0], dAtA[iNdEx:postIndex]...)
+			if m.EncryptionParam == nil {
+				m.EncryptionParam = []byte{}
+			}
 			iNdEx = postIndex
-			hasFields[0] |= uint64(0x00000001)
-		case 2:
+		case 16:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field SchemaVersion", wireType)
 			}
-			var stringLen uint64
+			var byteLen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14707,89 +16678,106 @@ func (m *KeyValue) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
+				byteLen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
+			if byteLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + intStringLen
+			postIndex := iNdEx + byteLen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.Value = &s
+			m.SchemaVersion = append(m.SchemaVersion[:0], dAtA[iNdEx:postIndex]...)
+			if m.SchemaVersion == nil {
+				m.SchemaVersion = []byte{}
+			}
 			iNdEx = postIndex
-			hasFields[0] |= uint64(0x00000002)
-		default:
-			iNdEx = preIndex
-			skippy, err := skipPulsarApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
+		case 17:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field PartitionKeyB64Encoded", wireType)
 			}
-			if (skippy < 0) || (iNdEx+skippy) < 0 {
+			var v int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			b := bool(v != 0)
+			m.PartitionKeyB64Encoded = &b
+		case 18:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field OrderingKey", wireType)
+			}
+			var byteLen int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				byteLen |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			if byteLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			if (iNdEx + skippy) > l {
+			postIndex := iNdEx + byteLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
-			iNdEx += skippy
-		}
-	}
-	if hasFields[0]&uint64(0x00000001) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("key")
-	}
-	if hasFields[0]&uint64(0x00000002) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("value")
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *KeyLongValue) Unmarshal(dAtA []byte) error {
-	var hasFields [1]uint64
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowPulsarApi
+			m.OrderingKey = append(m.OrderingKey[:0], dAtA[iNdEx:postIndex]...)
+			if m.OrderingKey == nil {
+				m.OrderingKey = []byte{}
 			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
+			iNdEx = postIndex
+		case 19:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field DeliverAtTime", wireType)
 			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
+			var v int64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
 			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: KeyLongValue: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: KeyLongValue: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
+			m.DeliverAtTime = &v
+		case 20:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field MarkerType", wireType)
 			}
-			var stringLen uint64
+			var v int32
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14799,29 +16787,35 @@ func (m *KeyLongValue) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
+				v |= int32(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.MarkerType = &v
+		case 22:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field TxnidLeastBits", wireType)
+			}
+			var v uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.Key = &s
-			iNdEx = postIndex
-			hasFields[0] |= uint64(0x00000001)
-		case 2:
+			m.TxnidLeastBits = &v
+		case 23:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field TxnidMostBits", wireType)
 			}
 			var v uint64
 			for shift := uint(0); ; shift += 7 {
@@ -14838,71 +16832,12 @@ func (m *KeyLongValue) Unmarshal(dAtA []byte) error {
 					break
 				}
 			}
-			m.Value = &v
-			hasFields[0] |= uint64(0x00000002)
-		default:
-			iNdEx = preIndex
-			skippy, err := skipPulsarApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if (skippy < 0) || (iNdEx+skippy) < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
-			iNdEx += skippy
-		}
-	}
-	if hasFields[0]&uint64(0x00000001) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("key")
-	}
-	if hasFields[0]&uint64(0x00000002) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("value")
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *IntRange) Unmarshal(dAtA []byte) error {
-	var hasFields [1]uint64
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowPulsarApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: IntRange: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: IntRange: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
+			m.TxnidMostBits = &v
+		case 24:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field HighestSequenceId", wireType)
 			}
-			var v int32
+			var v uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14912,18 +16847,17 @@ func (m *IntRange) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int32(b&0x7F) << shift
+				v |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.Start = &v
-			hasFields[0] |= uint64(0x00000001)
-		case 2:
+			m.HighestSequenceId = &v
+		case 25:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field End", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field NullValue", wireType)
 			}
-			var v int32
+			var v int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -14933,74 +16867,16 @@ func (m *IntRange) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int32(b&0x7F) << shift
+				v |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.End = &v
-			hasFields[0] |= uint64(0x00000002)
-		default:
-			iNdEx = preIndex
-			skippy, err := skipPulsarApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if (skippy < 0) || (iNdEx+skippy) < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
-			iNdEx += skippy
-		}
-	}
-	if hasFields[0]&uint64(0x00000001) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("start")
-	}
-	if hasFields[0]&uint64(0x00000002) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("end")
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *EncryptionKeys) Unmarshal(dAtA []byte) error {
-	var hasFields [1]uint64
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowPulsarApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: EncryptionKeys: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: EncryptionKeys: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
+			b := bool(v != 0)
+			m.NullValue = &b
+		case 26:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field Uuid", wireType)
 			}
 			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
@@ -15029,14 +16905,13 @@ func (m *EncryptionKeys) Unmarshal(dAtA []byte) error {
 				return io.ErrUnexpectedEOF
 			}
 			s := string(dAtA[iNdEx:postIndex])
-			m.Key = &s
+			m.Uuid = &s
 			iNdEx = postIndex
-			hasFields[0] |= uint64(0x00000001)
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
+		case 27:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field NumChunksFromMsg", wireType)
 			}
-			var byteLen int
+			var v int32
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15046,32 +16921,17 @@ func (m *EncryptionKeys) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				byteLen |= int(b&0x7F) << shift
+				v |= int32(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if byteLen < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...)
-			if m.Value == nil {
-				m.Value = []byte{}
-			}
-			iNdEx = postIndex
-			hasFields[0] |= uint64(0x00000002)
-		case 3:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
+			m.NumChunksFromMsg = &v
+		case 28:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalChunkMsgSize", wireType)
 			}
-			var msglen int
+			var v int32
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15081,26 +16941,53 @@ func (m *EncryptionKeys) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= int(b&0x7F) << shift
+				v |= int32(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if msglen < 0 {
-				return ErrInvalidLengthPulsarApi
+			m.TotalChunkMsgSize = &v
+		case 29:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field ChunkId", wireType)
 			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthPulsarApi
+			var v int32
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int32(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
 			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
+			m.ChunkId = &v
+		case 30:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field NullPartitionKey", wireType)
 			}
-			m.Metadata = append(m.Metadata, &KeyValue{})
-			if err := m.Metadata[len(m.Metadata)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
+			var v int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
 			}
-			iNdEx = postIndex
+			b := bool(v != 0)
+			m.NullPartitionKey = &b
 		default:
 			iNdEx = preIndex
 			skippy, err := skipPulsarApi(dAtA[iNdEx:])
@@ -15118,10 +17005,13 @@ func (m *EncryptionKeys) Unmarshal(dAtA []byte) error {
 		}
 	}
 	if hasFields[0]&uint64(0x00000001) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("key")
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("producer_name")
 	}
 	if hasFields[0]&uint64(0x00000002) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("value")
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("sequence_id")
+	}
+	if hasFields[0]&uint64(0x00000004) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("publish_time")
 	}
 
 	if iNdEx > l {
@@ -15129,7 +17019,7 @@ func (m *EncryptionKeys) Unmarshal(dAtA []byte) error {
 	}
 	return nil
 }
-func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
+func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
 	var hasFields [1]uint64
 	l := len(dAtA)
 	iNdEx := 0
@@ -15153,15 +17043,49 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 		fieldNum := int32(wire >> 3)
 		wireType := int(wire & 0x7)
 		if wireType == 4 {
-			return fmt.Errorf("proto: MessageMetadata: wiretype end group for non-group")
+			return fmt.Errorf("proto: SingleMessageMetadata: wiretype end group for non-group")
 		}
 		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MessageMetadata: illegal tag %d (wire type %d)", fieldNum, wire)
+			return fmt.Errorf("proto: SingleMessageMetadata: illegal tag %d (wire type %d)", fieldNum, wire)
 		}
 		switch fieldNum {
 		case 1:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProducerName", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field Properties", wireType)
+			}
+			var msglen int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				msglen |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			if msglen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.Properties = append(m.Properties, &KeyValue{})
+			if err := m.Properties[len(m.Properties)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
+			iNdEx = postIndex
+		case 2:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field PartitionKey", wireType)
 			}
 			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
@@ -15190,14 +17114,34 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				return io.ErrUnexpectedEOF
 			}
 			s := string(dAtA[iNdEx:postIndex])
-			m.ProducerName = &s
+			m.PartitionKey = &s
 			iNdEx = postIndex
+		case 3:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field PayloadSize", wireType)
+			}
+			var v int32
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int32(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.PayloadSize = &v
 			hasFields[0] |= uint64(0x00000001)
-		case 2:
+		case 4:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field SequenceId", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field CompactedOut", wireType)
 			}
-			var v uint64
+			var v int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15207,16 +17151,16 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= uint64(b&0x7F) << shift
+				v |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.SequenceId = &v
-			hasFields[0] |= uint64(0x00000002)
-		case 3:
+			b := bool(v != 0)
+			m.CompactedOut = &b
+		case 5:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field PublishTime", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field EventTime", wireType)
 			}
 			var v uint64
 			for shift := uint(0); ; shift += 7 {
@@ -15233,13 +17177,33 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 					break
 				}
 			}
-			m.PublishTime = &v
-			hasFields[0] |= uint64(0x00000004)
-		case 4:
+			m.EventTime = &v
+		case 6:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field PartitionKeyB64Encoded", wireType)
+			}
+			var v int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			b := bool(v != 0)
+			m.PartitionKeyB64Encoded = &b
+		case 7:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Properties", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field OrderingKey", wireType)
 			}
-			var msglen int
+			var byteLen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15249,31 +17213,31 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= int(b&0x7F) << shift
+				byteLen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if msglen < 0 {
+			if byteLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + msglen
+			postIndex := iNdEx + byteLen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			m.Properties = append(m.Properties, &KeyValue{})
-			if err := m.Properties[len(m.Properties)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
+			m.OrderingKey = append(m.OrderingKey[:0], dAtA[iNdEx:postIndex]...)
+			if m.OrderingKey == nil {
+				m.OrderingKey = []byte{}
 			}
 			iNdEx = postIndex
-		case 5:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ReplicatedFrom", wireType)
+		case 8:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field SequenceId", wireType)
 			}
-			var stringLen uint64
+			var v uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15283,30 +17247,133 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
+				v |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
-				return ErrInvalidLengthPulsarApi
+			m.SequenceId = &v
+		case 9:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field NullValue", wireType)
 			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
+			var v int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			b := bool(v != 0)
+			m.NullValue = &b
+		case 10:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field NullPartitionKey", wireType)
+			}
+			var v int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			b := bool(v != 0)
+			m.NullPartitionKey = &b
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			if postIndex > l {
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+	if hasFields[0]&uint64(0x00000001) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("payload_size")
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *BrokerEntryMetadata) Unmarshal(dAtA []byte) error {
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
+			}
+			if iNdEx >= l {
 				return io.ErrUnexpectedEOF
 			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.ReplicatedFrom = &s
-			iNdEx = postIndex
-		case 6:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field PartitionKey", wireType)
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: BrokerEntryMetadata: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: BrokerEntryMetadata: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field BrokerTimestamp", wireType)
+			}
+			var v uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.BrokerTimestamp = &v
+		case 2:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
 			}
-			var stringLen uint64
+			var v uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15316,28 +17383,67 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
+				v |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
-				return ErrInvalidLengthPulsarApi
+			m.Index = &v
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
 			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			if postIndex > l {
+			if (iNdEx + skippy) > l {
 				return io.ErrUnexpectedEOF
 			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.PartitionKey = &s
-			iNdEx = postIndex
-		case 7:
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *CommandConnect) Unmarshal(dAtA []byte) error {
+	var hasFields [1]uint64
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: CommandConnect: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: CommandConnect: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ReplicateTo", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ClientVersion", wireType)
 			}
 			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
@@ -15365,13 +17471,15 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			m.ReplicateTo = append(m.ReplicateTo, string(dAtA[iNdEx:postIndex]))
+			s := string(dAtA[iNdEx:postIndex])
+			m.ClientVersion = &s
 			iNdEx = postIndex
-		case 8:
+			hasFields[0] |= uint64(0x00000001)
+		case 2:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Compression", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field AuthMethod", wireType)
 			}
-			var v CompressionType
+			var v AuthMethod
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15381,17 +17489,17 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= CompressionType(b&0x7F) << shift
+				v |= AuthMethod(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.Compression = &v
-		case 9:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field UncompressedSize", wireType)
+			m.AuthMethod = &v
+		case 3:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field AuthData", wireType)
 			}
-			var v uint32
+			var byteLen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15401,57 +17509,31 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= uint32(b&0x7F) << shift
+				byteLen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.UncompressedSize = &v
-		case 11:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field NumMessagesInBatch", wireType)
+			if byteLen < 0 {
+				return ErrInvalidLengthPulsarApi
 			}
-			var v int32
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowPulsarApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				v |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
+			postIndex := iNdEx + byteLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
 			}
-			m.NumMessagesInBatch = &v
-		case 12:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field EventTime", wireType)
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
 			}
-			var v uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowPulsarApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				v |= uint64(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
+			m.AuthData = append(m.AuthData[:0], dAtA[iNdEx:postIndex]...)
+			if m.AuthData == nil {
+				m.AuthData = []byte{}
 			}
-			m.EventTime = &v
-		case 13:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field EncryptionKeys", wireType)
+			iNdEx = postIndex
+		case 4:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field ProtocolVersion", wireType)
 			}
-			var msglen int
+			var v int32
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15461,29 +17543,15 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= int(b&0x7F) << shift
+				v |= int32(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if msglen < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.EncryptionKeys = append(m.EncryptionKeys, &EncryptionKeys{})
-			if err := m.EncryptionKeys[len(m.EncryptionKeys)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 14:
+			m.ProtocolVersion = &v
+		case 5:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field EncryptionAlgo", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field AuthMethodName", wireType)
 			}
 			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
@@ -15512,13 +17580,13 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				return io.ErrUnexpectedEOF
 			}
 			s := string(dAtA[iNdEx:postIndex])
-			m.EncryptionAlgo = &s
+			m.AuthMethodName = &s
 			iNdEx = postIndex
-		case 15:
+		case 6:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field EncryptionParam", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ProxyToBrokerUrl", wireType)
 			}
-			var byteLen int
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15528,31 +17596,30 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				byteLen |= int(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if byteLen < 0 {
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + byteLen
+			postIndex := iNdEx + intStringLen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			m.EncryptionParam = append(m.EncryptionParam[:0], dAtA[iNdEx:postIndex]...)
-			if m.EncryptionParam == nil {
-				m.EncryptionParam = []byte{}
-			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.ProxyToBrokerUrl = &s
 			iNdEx = postIndex
-		case 16:
+		case 7:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field SchemaVersion", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field OriginalPrincipal", wireType)
 			}
-			var byteLen int
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15562,52 +17629,30 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				byteLen |= int(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if byteLen < 0 {
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + byteLen
+			postIndex := iNdEx + intStringLen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			m.SchemaVersion = append(m.SchemaVersion[:0], dAtA[iNdEx:postIndex]...)
-			if m.SchemaVersion == nil {
-				m.SchemaVersion = []byte{}
-			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.OriginalPrincipal = &s
 			iNdEx = postIndex
-		case 17:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field PartitionKeyB64Encoded", wireType)
-			}
-			var v int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowPulsarApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				v |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			b := bool(v != 0)
-			m.PartitionKeyB64Encoded = &b
-		case 18:
+		case 8:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field OrderingKey", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field OriginalAuthData", wireType)
 			}
-			var byteLen int
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15617,31 +17662,30 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				byteLen |= int(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if byteLen < 0 {
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + byteLen
+			postIndex := iNdEx + intStringLen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.OrderingKey = append(m.OrderingKey[:0], dAtA[iNdEx:postIndex]...)
-			if m.OrderingKey == nil {
-				m.OrderingKey = []byte{}
+				return io.ErrUnexpectedEOF
 			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.OriginalAuthData = &s
 			iNdEx = postIndex
-		case 19:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field DeliverAtTime", wireType)
+		case 9:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field OriginalAuthMethod", wireType)
 			}
-			var v int64
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15651,17 +17695,30 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int64(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.DeliverAtTime = &v
-		case 20:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field MarkerType", wireType)
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
+				return ErrInvalidLengthPulsarApi
 			}
-			var v int32
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.OriginalAuthMethod = &s
+			iNdEx = postIndex
+		case 10:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field FeatureFlags", wireType)
+			}
+			var msglen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15671,17 +17728,87 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int32(b&0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.MarkerType = &v
-		case 22:
+			if msglen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			if m.FeatureFlags == nil {
+				m.FeatureFlags = &FeatureFlags{}
+			}
+			if err := m.FeatureFlags.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
+			iNdEx = postIndex
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+	if hasFields[0]&uint64(0x00000001) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("client_version")
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *FeatureFlags) Unmarshal(dAtA []byte) error {
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: FeatureFlags: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: FeatureFlags: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field TxnidLeastBits", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field SupportsAuthRefresh", wireType)
 			}
-			var v uint64
+			var v int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15691,17 +17818,18 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= uint64(b&0x7F) << shift
+				v |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.TxnidLeastBits = &v
-		case 23:
+			b := bool(v != 0)
+			m.SupportsAuthRefresh = &b
+		case 2:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field TxnidMostBits", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field SupportsBrokerEntryMetadata", wireType)
 			}
-			var v uint64
+			var v int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15711,17 +17839,18 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= uint64(b&0x7F) << shift
+				v |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.TxnidMostBits = &v
-		case 24:
+			b := bool(v != 0)
+			m.SupportsBrokerEntryMetadata = &b
+		case 3:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field HighestSequenceId", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field SupportsPartialProducer", wireType)
 			}
-			var v uint64
+			var v int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15731,15 +17860,16 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= uint64(b&0x7F) << shift
+				v |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.HighestSequenceId = &v
-		case 25:
+			b := bool(v != 0)
+			m.SupportsPartialProducer = &b
+		case 4:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field NullValue", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field SupportsTopicWatchers", wireType)
 			}
 			var v int
 			for shift := uint(0); ; shift += 7 {
@@ -15757,10 +17887,62 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 			}
 			b := bool(v != 0)
-			m.NullValue = &b
-		case 26:
+			m.SupportsTopicWatchers = &b
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *CommandConnected) Unmarshal(dAtA []byte) error {
+	var hasFields [1]uint64
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: CommandConnected: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: CommandConnected: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Uuid", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ServerVersion", wireType)
 			}
 			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
@@ -15789,11 +17971,12 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				return io.ErrUnexpectedEOF
 			}
 			s := string(dAtA[iNdEx:postIndex])
-			m.Uuid = &s
+			m.ServerVersion = &s
 			iNdEx = postIndex
-		case 27:
+			hasFields[0] |= uint64(0x00000001)
+		case 2:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field NumChunksFromMsg", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ProtocolVersion", wireType)
 			}
 			var v int32
 			for shift := uint(0); ; shift += 7 {
@@ -15810,10 +17993,10 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 					break
 				}
 			}
-			m.NumChunksFromMsg = &v
-		case 28:
+			m.ProtocolVersion = &v
+		case 3:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalChunkMsgSize", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field MaxMessageSize", wireType)
 			}
 			var v int32
 			for shift := uint(0); ; shift += 7 {
@@ -15830,12 +18013,12 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 					break
 				}
 			}
-			m.TotalChunkMsgSize = &v
-		case 29:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ChunkId", wireType)
+			m.MaxMessageSize = &v
+		case 4:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field FeatureFlags", wireType)
 			}
-			var v int32
+			var msglen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15845,33 +18028,28 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int32(b&0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.ChunkId = &v
-		case 30:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field NullPartitionKey", wireType)
+			if msglen < 0 {
+				return ErrInvalidLengthPulsarApi
 			}
-			var v int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowPulsarApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				v |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
+			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			if m.FeatureFlags == nil {
+				m.FeatureFlags = &FeatureFlags{}
+			}
+			if err := m.FeatureFlags.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
 			}
-			b := bool(v != 0)
-			m.NullPartitionKey = &b
+			iNdEx = postIndex
 		default:
 			iNdEx = preIndex
 			skippy, err := skipPulsarApi(dAtA[iNdEx:])
@@ -15889,13 +18067,7 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 		}
 	}
 	if hasFields[0]&uint64(0x00000001) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("producer_name")
-	}
-	if hasFields[0]&uint64(0x00000002) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("sequence_id")
-	}
-	if hasFields[0]&uint64(0x00000004) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("publish_time")
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("server_version")
 	}
 
 	if iNdEx > l {
@@ -15903,8 +18075,7 @@ func (m *MessageMetadata) Unmarshal(dAtA []byte) error {
 	}
 	return nil
 }
-func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
-	var hasFields [1]uint64
+func (m *CommandAuthResponse) Unmarshal(dAtA []byte) error {
 	l := len(dAtA)
 	iNdEx := 0
 	for iNdEx < l {
@@ -15927,17 +18098,17 @@ func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
 		fieldNum := int32(wire >> 3)
 		wireType := int(wire & 0x7)
 		if wireType == 4 {
-			return fmt.Errorf("proto: SingleMessageMetadata: wiretype end group for non-group")
+			return fmt.Errorf("proto: CommandAuthResponse: wiretype end group for non-group")
 		}
 		if fieldNum <= 0 {
-			return fmt.Errorf("proto: SingleMessageMetadata: illegal tag %d (wire type %d)", fieldNum, wire)
+			return fmt.Errorf("proto: CommandAuthResponse: illegal tag %d (wire type %d)", fieldNum, wire)
 		}
 		switch fieldNum {
 		case 1:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Properties", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ClientVersion", wireType)
 			}
-			var msglen int
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15947,31 +18118,30 @@ func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= int(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if msglen < 0 {
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + msglen
+			postIndex := iNdEx + intStringLen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			m.Properties = append(m.Properties, &KeyValue{})
-			if err := m.Properties[len(m.Properties)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.ClientVersion = &s
 			iNdEx = postIndex
 		case 2:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field PartitionKey", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field Response", wireType)
 			}
-			var stringLen uint64
+			var msglen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -15981,28 +18151,31 @@ func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
+			if msglen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + intStringLen
+			postIndex := iNdEx + msglen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.PartitionKey = &s
+			if m.Response == nil {
+				m.Response = &AuthData{}
+			}
+			if err := m.Response.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
 			iNdEx = postIndex
 		case 3:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field PayloadSize", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ProtocolVersion", wireType)
 			}
 			var v int32
 			for shift := uint(0); ; shift += 7 {
@@ -16019,54 +18192,63 @@ func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
 					break
 				}
 			}
-			m.PayloadSize = &v
-			hasFields[0] |= uint64(0x00000001)
-		case 4:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field CompactedOut", wireType)
+			m.ProtocolVersion = &v
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
 			}
-			var v int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowPulsarApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				v |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
+				return ErrInvalidLengthPulsarApi
 			}
-			b := bool(v != 0)
-			m.CompactedOut = &b
-		case 5:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field EventTime", wireType)
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
 			}
-			var v uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowPulsarApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				v |= uint64(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *CommandAuthChallenge) Unmarshal(dAtA []byte) error {
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
 			}
-			m.EventTime = &v
-		case 6:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field PartitionKeyB64Encoded", wireType)
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
 			}
-			var v int
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: CommandAuthChallenge: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: CommandAuthChallenge: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field ServerVersion", wireType)
+			}
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16076,18 +18258,30 @@ func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			b := bool(v != 0)
-			m.PartitionKeyB64Encoded = &b
-		case 7:
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.ServerVersion = &s
+			iNdEx = postIndex
+		case 2:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field OrderingKey", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field Challenge", wireType)
 			}
-			var byteLen int
+			var msglen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16097,31 +18291,33 @@ func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				byteLen |= int(b&0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if byteLen < 0 {
+			if msglen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + byteLen
+			postIndex := iNdEx + msglen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			m.OrderingKey = append(m.OrderingKey[:0], dAtA[iNdEx:postIndex]...)
-			if m.OrderingKey == nil {
-				m.OrderingKey = []byte{}
+			if m.Challenge == nil {
+				m.Challenge = &AuthData{}
+			}
+			if err := m.Challenge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
 			}
 			iNdEx = postIndex
-		case 8:
+		case 3:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field SequenceId", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ProtocolVersion", wireType)
 			}
-			var v uint64
+			var v int32
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16131,17 +18327,68 @@ func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= uint64(b&0x7F) << shift
+				v |= int32(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.SequenceId = &v
-		case 9:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field NullValue", wireType)
+			m.ProtocolVersion = &v
+		default:
+			iNdEx = preIndex
+			skippy, err := skipPulsarApi(dAtA[iNdEx:])
+			if err != nil {
+				return err
+			}
+			if (skippy < 0) || (iNdEx+skippy) < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if (iNdEx + skippy) > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+			iNdEx += skippy
+		}
+	}
+
+	if iNdEx > l {
+		return io.ErrUnexpectedEOF
+	}
+	return nil
+}
+func (m *AuthData) Unmarshal(dAtA []byte) error {
+	l := len(dAtA)
+	iNdEx := 0
+	for iNdEx < l {
+		preIndex := iNdEx
+		var wire uint64
+		for shift := uint(0); ; shift += 7 {
+			if shift >= 64 {
+				return ErrIntOverflowPulsarApi
+			}
+			if iNdEx >= l {
+				return io.ErrUnexpectedEOF
+			}
+			b := dAtA[iNdEx]
+			iNdEx++
+			wire |= uint64(b&0x7F) << shift
+			if b < 0x80 {
+				break
+			}
+		}
+		fieldNum := int32(wire >> 3)
+		wireType := int(wire & 0x7)
+		if wireType == 4 {
+			return fmt.Errorf("proto: AuthData: wiretype end group for non-group")
+		}
+		if fieldNum <= 0 {
+			return fmt.Errorf("proto: AuthData: illegal tag %d (wire type %d)", fieldNum, wire)
+		}
+		switch fieldNum {
+		case 1:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field AuthMethodName", wireType)
 			}
-			var v int
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16151,18 +18398,30 @@ func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			b := bool(v != 0)
-			m.NullValue = &b
-		case 10:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field NullPartitionKey", wireType)
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
+				return ErrInvalidLengthPulsarApi
 			}
-			var v int
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.AuthMethodName = &s
+			iNdEx = postIndex
+		case 2:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field AuthData", wireType)
+			}
+			var byteLen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16172,13 +18431,26 @@ func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int(b&0x7F) << shift
+				byteLen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			b := bool(v != 0)
-			m.NullPartitionKey = &b
+			if byteLen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + byteLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.AuthData = append(m.AuthData[:0], dAtA[iNdEx:postIndex]...)
+			if m.AuthData == nil {
+				m.AuthData = []byte{}
+			}
+			iNdEx = postIndex
 		default:
 			iNdEx = preIndex
 			skippy, err := skipPulsarApi(dAtA[iNdEx:])
@@ -16195,16 +18467,14 @@ func (m *SingleMessageMetadata) Unmarshal(dAtA []byte) error {
 			iNdEx += skippy
 		}
 	}
-	if hasFields[0]&uint64(0x00000001) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("payload_size")
-	}
 
 	if iNdEx > l {
 		return io.ErrUnexpectedEOF
 	}
 	return nil
 }
-func (m *BrokerEntryMetadata) Unmarshal(dAtA []byte) error {
+func (m *KeySharedMeta) Unmarshal(dAtA []byte) error {
+	var hasFields [1]uint64
 	l := len(dAtA)
 	iNdEx := 0
 	for iNdEx < l {
@@ -16227,17 +18497,17 @@ func (m *BrokerEntryMetadata) Unmarshal(dAtA []byte) error {
 		fieldNum := int32(wire >> 3)
 		wireType := int(wire & 0x7)
 		if wireType == 4 {
-			return fmt.Errorf("proto: BrokerEntryMetadata: wiretype end group for non-group")
+			return fmt.Errorf("proto: KeySharedMeta: wiretype end group for non-group")
 		}
 		if fieldNum <= 0 {
-			return fmt.Errorf("proto: BrokerEntryMetadata: illegal tag %d (wire type %d)", fieldNum, wire)
+			return fmt.Errorf("proto: KeySharedMeta: illegal tag %d (wire type %d)", fieldNum, wire)
 		}
 		switch fieldNum {
 		case 1:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field BrokerTimestamp", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field KeySharedMode", wireType)
 			}
-			var v uint64
+			var v KeySharedMode
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16247,17 +18517,52 @@ func (m *BrokerEntryMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= uint64(b&0x7F) << shift
+				v |= KeySharedMode(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.BrokerTimestamp = &v
-		case 2:
+			m.KeySharedMode = &v
+			hasFields[0] |= uint64(0x00000001)
+		case 3:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field HashRanges", wireType)
+			}
+			var msglen int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				msglen |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			if msglen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.HashRanges = append(m.HashRanges, &IntRange{})
+			if err := m.HashRanges[len(m.HashRanges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
+			iNdEx = postIndex
+		case 4:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field AllowOutOfOrderDelivery", wireType)
 			}
-			var v uint64
+			var v int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16267,12 +18572,13 @@ func (m *BrokerEntryMetadata) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= uint64(b&0x7F) << shift
+				v |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.Index = &v
+			b := bool(v != 0)
+			m.AllowOutOfOrderDelivery = &b
 		default:
 			iNdEx = preIndex
 			skippy, err := skipPulsarApi(dAtA[iNdEx:])
@@ -16289,13 +18595,16 @@ func (m *BrokerEntryMetadata) Unmarshal(dAtA []byte) error {
 			iNdEx += skippy
 		}
 	}
+	if hasFields[0]&uint64(0x00000001) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("keySharedMode")
+	}
 
 	if iNdEx > l {
 		return io.ErrUnexpectedEOF
 	}
 	return nil
 }
-func (m *CommandConnect) Unmarshal(dAtA []byte) error {
+func (m *CommandSubscribe) Unmarshal(dAtA []byte) error {
 	var hasFields [1]uint64
 	l := len(dAtA)
 	iNdEx := 0
@@ -16319,15 +18628,15 @@ func (m *CommandConnect) Unmarshal(dAtA []byte) error {
 		fieldNum := int32(wire >> 3)
 		wireType := int(wire & 0x7)
 		if wireType == 4 {
-			return fmt.Errorf("proto: CommandConnect: wiretype end group for non-group")
+			return fmt.Errorf("proto: CommandSubscribe: wiretype end group for non-group")
 		}
 		if fieldNum <= 0 {
-			return fmt.Errorf("proto: CommandConnect: illegal tag %d (wire type %d)", fieldNum, wire)
+			return fmt.Errorf("proto: CommandSubscribe: illegal tag %d (wire type %d)", fieldNum, wire)
 		}
 		switch fieldNum {
 		case 1:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ClientVersion", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType)
 			}
 			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
@@ -16356,14 +18665,14 @@ func (m *CommandConnect) Unmarshal(dAtA []byte) error {
 				return io.ErrUnexpectedEOF
 			}
 			s := string(dAtA[iNdEx:postIndex])
-			m.ClientVersion = &s
+			m.Topic = &s
 			iNdEx = postIndex
 			hasFields[0] |= uint64(0x00000001)
 		case 2:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field AuthMethod", wireType)
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Subscription", wireType)
 			}
-			var v AuthMethod
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16373,17 +18682,31 @@ func (m *CommandConnect) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= AuthMethod(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.AuthMethod = &v
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.Subscription = &s
+			iNdEx = postIndex
+			hasFields[0] |= uint64(0x00000002)
 		case 3:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field AuthData", wireType)
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field SubType", wireType)
 			}
-			var byteLen int
+			var v CommandSubscribe_SubType
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16393,31 +18716,18 @@ func (m *CommandConnect) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				byteLen |= int(b&0x7F) << shift
+				v |= CommandSubscribe_SubType(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if byteLen < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.AuthData = append(m.AuthData[:0], dAtA[iNdEx:postIndex]...)
-			if m.AuthData == nil {
-				m.AuthData = []byte{}
-			}
-			iNdEx = postIndex
+			m.SubType = &v
+			hasFields[0] |= uint64(0x00000004)
 		case 4:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProtocolVersion", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ConsumerId", wireType)
 			}
-			var v int32
+			var v uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16427,17 +18737,18 @@ func (m *CommandConnect) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int32(b&0x7F) << shift
+				v |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.ProtocolVersion = &v
+			m.ConsumerId = &v
+			hasFields[0] |= uint64(0x00000008)
 		case 5:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field AuthMethodName", wireType)
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field RequestId", wireType)
 			}
-			var stringLen uint64
+			var v uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16447,28 +18758,16 @@ func (m *CommandConnect) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
+				v |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.AuthMethodName = &s
-			iNdEx = postIndex
+			m.RequestId = &v
+			hasFields[0] |= uint64(0x00000010)
 		case 6:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProxyToBrokerUrl", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ConsumerName", wireType)
 			}
 			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
@@ -16497,13 +18796,13 @@ func (m *CommandConnect) Unmarshal(dAtA []byte) error {
 				return io.ErrUnexpectedEOF
 			}
 			s := string(dAtA[iNdEx:postIndex])
-			m.ProxyToBrokerUrl = &s
+			m.ConsumerName = &s
 			iNdEx = postIndex
 		case 7:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field OriginalPrincipal", wireType)
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field PriorityLevel", wireType)
 			}
-			var stringLen uint64
+			var v int32
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16513,30 +18812,17 @@ func (m *CommandConnect) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
+				v |= int32(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.OriginalPrincipal = &s
-			iNdEx = postIndex
+			m.PriorityLevel = &v
 		case 8:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field OriginalAuthData", wireType)
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Durable", wireType)
 			}
-			var stringLen uint64
+			var v int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16546,30 +18832,18 @@ func (m *CommandConnect) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
+				v |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
 			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.OriginalAuthData = &s
-			iNdEx = postIndex
+			b := bool(v != 0)
+			m.Durable = &b
 		case 9:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field OriginalAuthMethod", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field StartMessageId", wireType)
 			}
-			var stringLen uint64
+			var msglen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16579,28 +18853,31 @@ func (m *CommandConnect) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
+			if msglen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + intStringLen
+			postIndex := iNdEx + msglen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.OriginalAuthMethod = &s
+			if m.StartMessageId == nil {
+				m.StartMessageId = &MessageIdData{}
+			}
+			if err := m.StartMessageId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
 			iNdEx = postIndex
 		case 10:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field FeatureFlags", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
 			}
 			var msglen int
 			for shift := uint(0); ; shift += 7 {
@@ -16627,70 +18904,14 @@ func (m *CommandConnect) Unmarshal(dAtA []byte) error {
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			if m.FeatureFlags == nil {
-				m.FeatureFlags = &FeatureFlags{}
-			}
-			if err := m.FeatureFlags.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+			m.Metadata = append(m.Metadata, &KeyValue{})
+			if err := m.Metadata[len(m.Metadata)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
 				return err
 			}
 			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipPulsarApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if (skippy < 0) || (iNdEx+skippy) < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
-			iNdEx += skippy
-		}
-	}
-	if hasFields[0]&uint64(0x00000001) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("client_version")
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *FeatureFlags) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowPulsarApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: FeatureFlags: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: FeatureFlags: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
+		case 11:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field SupportsAuthRefresh", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ReadCompacted", wireType)
 			}
 			var v int
 			for shift := uint(0); ; shift += 7 {
@@ -16708,12 +18929,12 @@ func (m *FeatureFlags) Unmarshal(dAtA []byte) error {
 				}
 			}
 			b := bool(v != 0)
-			m.SupportsAuthRefresh = &b
-		case 2:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field SupportsBrokerEntryMetadata", wireType)
+			m.ReadCompacted = &b
+		case 12:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Schema", wireType)
 			}
-			var v int
+			var msglen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16723,70 +18944,33 @@ func (m *FeatureFlags) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int(b&0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			b := bool(v != 0)
-			m.SupportsBrokerEntryMetadata = &b
-		default:
-			iNdEx = preIndex
-			skippy, err := skipPulsarApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
+			if msglen < 0 {
+				return ErrInvalidLengthPulsarApi
 			}
-			if (skippy < 0) || (iNdEx+skippy) < 0 {
+			postIndex := iNdEx + msglen
+			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			if (iNdEx + skippy) > l {
+			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *CommandConnected) Unmarshal(dAtA []byte) error {
-	var hasFields [1]uint64
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowPulsarApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
+			if m.Schema == nil {
+				m.Schema = &Schema{}
 			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
+			if err := m.Schema.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
 			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: CommandConnected: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: CommandConnected: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ServerVersion", wireType)
+			iNdEx = postIndex
+		case 13:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field InitialPosition", wireType)
 			}
-			var stringLen uint64
+			var v CommandSubscribe_InitialPosition
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16796,31 +18980,17 @@ func (m *CommandConnected) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
+				v |= CommandSubscribe_InitialPosition(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.ServerVersion = &s
-			iNdEx = postIndex
-			hasFields[0] |= uint64(0x00000001)
-		case 2:
+			m.InitialPosition = &v
+		case 14:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProtocolVersion", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ReplicateSubscriptionState", wireType)
 			}
-			var v int32
+			var v int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16830,17 +19000,18 @@ func (m *CommandConnected) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int32(b&0x7F) << shift
+				v |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.ProtocolVersion = &v
-		case 3:
+			b := bool(v != 0)
+			m.ReplicateSubscriptionState = &b
+		case 15:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field MaxMessageSize", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ForceTopicCreation", wireType)
 			}
-			var v int32
+			var v int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16850,71 +19021,38 @@ func (m *CommandConnected) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int32(b&0x7F) << shift
+				v |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.MaxMessageSize = &v
-		default:
-			iNdEx = preIndex
-			skippy, err := skipPulsarApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if (skippy < 0) || (iNdEx+skippy) < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
-			iNdEx += skippy
-		}
-	}
-	if hasFields[0]&uint64(0x00000001) == 0 {
-		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("server_version")
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *CommandAuthResponse) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowPulsarApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
+			b := bool(v != 0)
+			m.ForceTopicCreation = &b
+		case 16:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field StartMessageRollbackDurationSec", wireType)
 			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
+			var v uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
 			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: CommandAuthResponse: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: CommandAuthResponse: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
+			m.StartMessageRollbackDurationSec = &v
+		case 17:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ClientVersion", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field KeySharedMeta", wireType)
 			}
-			var stringLen uint64
+			var msglen int
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16924,28 +19062,31 @@ func (m *CommandAuthResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				stringLen |= uint64(b&0x7F) << shift
+				msglen |= int(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			intStringLen := int(stringLen)
-			if intStringLen < 0 {
+			if msglen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + intStringLen
+			postIndex := iNdEx + msglen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			s := string(dAtA[iNdEx:postIndex])
-			m.ClientVersion = &s
+			if m.KeySharedMeta == nil {
+				m.KeySharedMeta = &KeySharedMeta{}
+			}
+			if err := m.KeySharedMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
 			iNdEx = postIndex
-		case 2:
+		case 18:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Response", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field SubscriptionProperties", wireType)
 			}
 			var msglen int
 			for shift := uint(0); ; shift += 7 {
@@ -16972,18 +19113,16 @@ func (m *CommandAuthResponse) Unmarshal(dAtA []byte) error {
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			if m.Response == nil {
-				m.Response = &AuthData{}
-			}
-			if err := m.Response.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+			m.SubscriptionProperties = append(m.SubscriptionProperties, &KeyValue{})
+			if err := m.SubscriptionProperties[len(m.SubscriptionProperties)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
 				return err
 			}
 			iNdEx = postIndex
-		case 3:
+		case 19:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProtocolVersion", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field ConsumerEpoch", wireType)
 			}
-			var v int32
+			var v uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -16993,12 +19132,12 @@ func (m *CommandAuthResponse) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int32(b&0x7F) << shift
+				v |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.ProtocolVersion = &v
+			m.ConsumerEpoch = &v
 		default:
 			iNdEx = preIndex
 			skippy, err := skipPulsarApi(dAtA[iNdEx:])
@@ -17015,13 +19154,29 @@ func (m *CommandAuthResponse) Unmarshal(dAtA []byte) error {
 			iNdEx += skippy
 		}
 	}
+	if hasFields[0]&uint64(0x00000001) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("topic")
+	}
+	if hasFields[0]&uint64(0x00000002) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("subscription")
+	}
+	if hasFields[0]&uint64(0x00000004) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("subType")
+	}
+	if hasFields[0]&uint64(0x00000008) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("consumer_id")
+	}
+	if hasFields[0]&uint64(0x00000010) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("request_id")
+	}
 
 	if iNdEx > l {
 		return io.ErrUnexpectedEOF
 	}
 	return nil
 }
-func (m *CommandAuthChallenge) Unmarshal(dAtA []byte) error {
+func (m *CommandPartitionedTopicMetadata) Unmarshal(dAtA []byte) error {
+	var hasFields [1]uint64
 	l := len(dAtA)
 	iNdEx := 0
 	for iNdEx < l {
@@ -17044,15 +19199,15 @@ func (m *CommandAuthChallenge) Unmarshal(dAtA []byte) error {
 		fieldNum := int32(wire >> 3)
 		wireType := int(wire & 0x7)
 		if wireType == 4 {
-			return fmt.Errorf("proto: CommandAuthChallenge: wiretype end group for non-group")
+			return fmt.Errorf("proto: CommandPartitionedTopicMetadata: wiretype end group for non-group")
 		}
 		if fieldNum <= 0 {
-			return fmt.Errorf("proto: CommandAuthChallenge: illegal tag %d (wire type %d)", fieldNum, wire)
+			return fmt.Errorf("proto: CommandPartitionedTopicMetadata: illegal tag %d (wire type %d)", fieldNum, wire)
 		}
 		switch fieldNum {
 		case 1:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ServerVersion", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType)
 			}
 			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
@@ -17081,13 +19236,14 @@ func (m *CommandAuthChallenge) Unmarshal(dAtA []byte) error {
 				return io.ErrUnexpectedEOF
 			}
 			s := string(dAtA[iNdEx:postIndex])
-			m.ServerVersion = &s
+			m.Topic = &s
 			iNdEx = postIndex
+			hasFields[0] |= uint64(0x00000001)
 		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Challenge", wireType)
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field RequestId", wireType)
 			}
-			var msglen int
+			var v uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -17097,33 +19253,18 @@ func (m *CommandAuthChallenge) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= int(b&0x7F) << shift
+				v |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if msglen < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Challenge == nil {
-				m.Challenge = &AuthData{}
-			}
-			if err := m.Challenge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
+			m.RequestId = &v
+			hasFields[0] |= uint64(0x00000002)
 		case 3:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProtocolVersion", wireType)
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field OriginalPrincipal", wireType)
 			}
-			var v int32
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -17133,66 +19274,28 @@ func (m *CommandAuthChallenge) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= int32(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.ProtocolVersion = &v
-		default:
-			iNdEx = preIndex
-			skippy, err := skipPulsarApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if (skippy < 0) || (iNdEx+skippy) < 0 {
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *AuthData) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowPulsarApi
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthPulsarApi
 			}
-			if iNdEx >= l {
+			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: AuthData: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: AuthData: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
+			s := string(dAtA[iNdEx:postIndex])
+			m.OriginalPrincipal = &s
+			iNdEx = postIndex
+		case 4:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field AuthMethodName", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field OriginalAuthData", wireType)
 			}
 			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
@@ -17221,13 +19324,13 @@ func (m *AuthData) Unmarshal(dAtA []byte) error {
 				return io.ErrUnexpectedEOF
 			}
 			s := string(dAtA[iNdEx:postIndex])
-			m.AuthMethodName = &s
+			m.OriginalAuthData = &s
 			iNdEx = postIndex
-		case 2:
+		case 5:
 			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field AuthData", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field OriginalAuthMethod", wireType)
 			}
-			var byteLen int
+			var stringLen uint64
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -17237,25 +19340,24 @@ func (m *AuthData) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				byteLen |= int(b&0x7F) << shift
+				stringLen |= uint64(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if byteLen < 0 {
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
-			postIndex := iNdEx + byteLen
+			postIndex := iNdEx + intStringLen
 			if postIndex < 0 {
 				return ErrInvalidLengthPulsarApi
 			}
 			if postIndex > l {
 				return io.ErrUnexpectedEOF
 			}
-			m.AuthData = append(m.AuthData[:0], dAtA[iNdEx:postIndex]...)
-			if m.AuthData == nil {
-				m.AuthData = []byte{}
-			}
+			s := string(dAtA[iNdEx:postIndex])
+			m.OriginalAuthMethod = &s
 			iNdEx = postIndex
 		default:
 			iNdEx = preIndex
@@ -17273,13 +19375,19 @@ func (m *AuthData) Unmarshal(dAtA []byte) error {
 			iNdEx += skippy
 		}
 	}
+	if hasFields[0]&uint64(0x00000001) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("topic")
+	}
+	if hasFields[0]&uint64(0x00000002) == 0 {
+		return github_com_gogo_protobuf_proto.NewRequiredNotSetError("request_id")
+	}
 
 	if iNdEx > l {
 		return io.ErrUnexpectedEOF
 	}
 	return nil
 }
-func (m *KeySharedMeta) Unmarshal(dAtA []byte) error {
+func (m *CommandPartitionedTopicMetadataResponse) Unmarshal(dAtA []byte) error {
 	var hasFields [1]uint64
 	l := len(dAtA)
 	iNdEx := 0
@@ -17303,17 +19411,58 @@ func (m *KeySharedMeta) Unmarshal(dAtA []byte) error {
 		fieldNum := int32(wire >> 3)
 		wireType := int(wire & 0x7)
 		if wireType == 4 {
-			return fmt.Errorf("proto: KeySharedMeta: wiretype end group for non-group")
+			return fmt.Errorf("proto: CommandPartitionedTopicMetadataResponse: wiretype end group for non-group")
 		}
 		if fieldNum <= 0 {
-			return fmt.Errorf("proto: KeySharedMeta: illegal tag %d (wire type %d)", fieldNum, wire)
+			return fmt.Errorf("proto: CommandPartitionedTopicMetadataResponse: illegal tag %d (wire type %d)", fieldNum, wire)
 		}
 		switch fieldNum {
 		case 1:
 			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field KeySharedMode", wireType)
+				return fmt.Errorf("proto: wrong wireType = %d for field Partitions", wireType)
+			}
+			var v uint32
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= uint32(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.Partitions = &v
+		case 2:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field RequestId", wireType)
+			}
+			var v uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowPulsarApi
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				v |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			m.RequestId = &v
+			hasFields[0] |= uint64(0x00000001)
+		case 3:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Response", wireType)
 			}
-			var v KeySharedMode
+			var v CommandPartitionedTopicMetadataResponse_LookupType
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -17323,18 +19472,17 @@ func (m *KeySharedMeta) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				v |= KeySharedMode(b&0x7F) << shift
+				v |= CommandPartitionedTopicMetadataResponse_LookupType(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			m.KeySharedMode = &v
-			hasFields[0] |= uint64(0x00000001)
-		case 3:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field HashRanges", wireType)
+			m.Response = &v
+		case 4:
+			if wireType != 0 {
+				return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
 			}
-			var msglen int
+			var v ServerError
 			for shift := uint(0); ; shift += 7 {
 				if shift >= 64 {
 					return ErrIntOverflowPulsarApi
@@ -17344,31 +19492,17 @@ func (m *KeySharedMeta) Unmarshal(dAtA []byte) error {
 				}
 				b := dAtA[iNdEx]
 				iNdEx++
-				msglen |= int(b&0x7F) << shift
+				v |= ServerError(b&0x7F) << shift
 				if b < 0x80 {
 					break
 				}
 			}
-			if msglen < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthPulsarApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.HashRanges = append(m.HashRanges, &IntRange{})
-			if err := m.HashRanges[len(m.HashRanges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 4:
... 6222 lines suppressed ...