diff --git a/cmd/cmd_temp.go b/cmd/cmd_temp.go
index ccba459..ec69c95 100644
--- a/cmd/cmd_temp.go
+++ b/cmd/cmd_temp.go
@@ -3,6 +3,7 @@ package cmd
import (
"context"
"log"
+ "os"
"time"
"github.com/hiddify/hiddify-core/v2/hcommon"
@@ -16,26 +17,29 @@ const (
)
func init() {
- conn, err := grpc.Dial(address, grpc.WithInsecure())
- if err != nil {
- log.Fatalf("did not connect: %v", err)
- }
- defer conn.Close()
- c := hcore.NewCoreClient(conn)
+ if os.Args[1] == "test" {
+ conn, err := grpc.Dial(address, grpc.WithInsecure())
+ if err != nil {
+ log.Fatalf("did not connect: %v", err)
+ }
+ defer conn.Close()
+ c := hcore.NewCoreClient(conn)
- ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
- defer cancel()
+ // ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
+ // defer cancel()
+ ctx := context.Background()
- // SayHello
- stream, err := c.OutboundsInfo(ctx, &hcommon.Empty{})
+ // SayHello
+ stream, err := c.OutboundsInfo(ctx, &hcommon.Empty{})
- for {
- r, err := stream.Recv()
- if err != nil {
- log.Fatalf("could not receive: %v", err)
- }
- log.Printf("Received1: %s", r.String())
+ for {
+ r, err := stream.Recv()
+ if err != nil {
+ log.Fatalf("could not receive: %v", err)
+ }
+ log.Printf("Received1: %s", r.String())
- time.Sleep(1 * time.Second)
+ time.Sleep(1 * time.Second)
+ }
}
}
diff --git a/docs/hiddifyrpc.md b/docs/hiddifyrpc.md
index f74c2c1..6141dbb 100644
--- a/docs/hiddifyrpc.md
+++ b/docs/hiddifyrpc.md
@@ -9,6 +9,7 @@
- [GenerateConfigRequest](#hcore-GenerateConfigRequest)
- [GenerateConfigResponse](#hcore-GenerateConfigResponse)
- [GenerateWarpConfigRequest](#hcore-GenerateWarpConfigRequest)
+ - [IpInfo](#hcore-IpInfo)
- [LogMessage](#hcore-LogMessage)
- [OutboundGroup](#hcore-OutboundGroup)
- [OutboundGroupList](#hcore-OutboundGroupList)
@@ -192,6 +193,29 @@
+
+
+### IpInfo
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| ip | [string](#string) | | The IP address. |
+| country_code | [string](#string) | | The country code. |
+| region | [string](#string) | | The region (optional). |
+| city | [string](#string) | | The city (optional). |
+| asn | [int32](#int32) | | The Autonomous System Number (optional). |
+| org | [string](#string) | | The organization (optional). |
+| latitude | [double](#double) | | The latitude (optional). |
+| longitude | [double](#double) | | The longitude (optional). |
+| postal_code | [string](#string) | | The postal code (optional). |
+
+
+
+
+
+
### LogMessage
@@ -257,6 +281,7 @@
| type | [string](#string) | | |
| url_test_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | |
| url_test_delay | [int32](#int32) | | |
+| ipinfo | [IpInfo](#hcore-IpInfo) | | |
diff --git a/go.mod b/go.mod
index bf8e721..9586b4c 100644
--- a/go.mod
+++ b/go.mod
@@ -302,7 +302,7 @@ require (
lukechampine.com/blake3 v1.3.0 // indirect
)
-replace github.com/sagernet/sing-box => github.com/hiddify/hiddify-sing-box v1.8.9-0.20241020064059-08c71ee5f82f
+replace github.com/sagernet/sing-box => github.com/hiddify/hiddify-sing-box v1.8.9-0.20241020111745-22b807080fe7
replace github.com/xtls/xray-core => github.com/hiddify/xray-core v0.0.0-20241019134126-3f94892df016
diff --git a/go.sum b/go.sum
index 793db88..85bd3c5 100644
--- a/go.sum
+++ b/go.sum
@@ -242,8 +242,8 @@ github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE
github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
github.com/hectane/go-acl v0.0.0-20230122075934-ca0b05cb1adb h1:PGufWXXDq9yaev6xX1YQauaO1MV90e6Mpoq1I7Lz/VM=
github.com/hectane/go-acl v0.0.0-20230122075934-ca0b05cb1adb/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E=
-github.com/hiddify/hiddify-sing-box v1.8.9-0.20241020064059-08c71ee5f82f h1:UYYtEiK8bx2sBzUkr1YV9HhAvBMjb+4Dm0Uc0OvnUfY=
-github.com/hiddify/hiddify-sing-box v1.8.9-0.20241020064059-08c71ee5f82f/go.mod h1:6apAGQPqJIb58BIYsr66tu49S5UcCNyuv1lVX+72eQA=
+github.com/hiddify/hiddify-sing-box v1.8.9-0.20241020111745-22b807080fe7 h1:+eeJtla199xUya0DonMvsMhpr/rsQrM5ePFTgfJZunI=
+github.com/hiddify/hiddify-sing-box v1.8.9-0.20241020111745-22b807080fe7/go.mod h1:6apAGQPqJIb58BIYsr66tu49S5UcCNyuv1lVX+72eQA=
github.com/hiddify/ray2sing v0.0.0-20240928221833-190b549d5222 h1:+MFxFxoWCA44WhqIixqL/Zkt4DwnqhQvafS0Dm4+dKM=
github.com/hiddify/ray2sing v0.0.0-20240928221833-190b549d5222/go.mod h1:cFEg1b0eBgL9kBgIPAD71lHO1Q5g20PZL4dUGhQpAO8=
github.com/hiddify/warp-plus v0.0.0-20240717223357-4f3122e0d11d h1:vRGKh9ou+/vQGfVYa8MczhbIVjHxlP52OWwrDWO77RA=
diff --git a/v2/hcore/hcore.pb.go b/v2/hcore/hcore.pb.go
index f18b994..b6889e6 100644
--- a/v2/hcore/hcore.pb.go
+++ b/v2/hcore/hcore.pb.go
@@ -596,6 +596,7 @@ type OutboundInfo struct {
Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
UrlTestTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=url_test_time,json=urlTestTime,proto3" json:"url_test_time,omitempty"`
UrlTestDelay int32 `protobuf:"varint,4,opt,name=url_test_delay,json=urlTestDelay,proto3" json:"url_test_delay,omitempty"`
+ Ipinfo *IpInfo `protobuf:"bytes,5,opt,name=ipinfo,proto3" json:"ipinfo,omitempty"`
}
func (x *OutboundInfo) Reset() {
@@ -658,6 +659,124 @@ func (x *OutboundInfo) GetUrlTestDelay() int32 {
return 0
}
+func (x *OutboundInfo) GetIpinfo() *IpInfo {
+ if x != nil {
+ return x.Ipinfo
+ }
+ return nil
+}
+
+type IpInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"` // The IP address.
+ CountryCode string `protobuf:"bytes,2,opt,name=country_code,proto3" json:"country_code,omitempty"` // The country code.
+ Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"` // The region (optional).
+ City string `protobuf:"bytes,4,opt,name=city,proto3" json:"city,omitempty"` // The city (optional).
+ Asn int32 `protobuf:"varint,5,opt,name=asn,proto3" json:"asn,omitempty"` // The Autonomous System Number (optional).
+ Org string `protobuf:"bytes,6,opt,name=org,proto3" json:"org,omitempty"` // The organization (optional).
+ Latitude float64 `protobuf:"fixed64,7,opt,name=latitude,proto3" json:"latitude,omitempty"` // The latitude (optional).
+ Longitude float64 `protobuf:"fixed64,8,opt,name=longitude,proto3" json:"longitude,omitempty"` // The longitude (optional).
+ PostalCode string `protobuf:"bytes,9,opt,name=postal_code,proto3" json:"postal_code,omitempty"` // The postal code (optional).
+}
+
+func (x *IpInfo) Reset() {
+ *x = IpInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_v2_hcore_hcore_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *IpInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*IpInfo) ProtoMessage() {}
+
+func (x *IpInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_v2_hcore_hcore_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use IpInfo.ProtoReflect.Descriptor instead.
+func (*IpInfo) Descriptor() ([]byte, []int) {
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *IpInfo) GetIp() string {
+ if x != nil {
+ return x.Ip
+ }
+ return ""
+}
+
+func (x *IpInfo) GetCountryCode() string {
+ if x != nil {
+ return x.CountryCode
+ }
+ return ""
+}
+
+func (x *IpInfo) GetRegion() string {
+ if x != nil {
+ return x.Region
+ }
+ return ""
+}
+
+func (x *IpInfo) GetCity() string {
+ if x != nil {
+ return x.City
+ }
+ return ""
+}
+
+func (x *IpInfo) GetAsn() int32 {
+ if x != nil {
+ return x.Asn
+ }
+ return 0
+}
+
+func (x *IpInfo) GetOrg() string {
+ if x != nil {
+ return x.Org
+ }
+ return ""
+}
+
+func (x *IpInfo) GetLatitude() float64 {
+ if x != nil {
+ return x.Latitude
+ }
+ return 0
+}
+
+func (x *IpInfo) GetLongitude() float64 {
+ if x != nil {
+ return x.Longitude
+ }
+ return 0
+}
+
+func (x *IpInfo) GetPostalCode() string {
+ if x != nil {
+ return x.PostalCode
+ }
+ return ""
+}
+
type OutboundGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -674,7 +793,7 @@ type OutboundGroup struct {
func (x *OutboundGroup) Reset() {
*x = OutboundGroup{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[5]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -687,7 +806,7 @@ func (x *OutboundGroup) String() string {
func (*OutboundGroup) ProtoMessage() {}
func (x *OutboundGroup) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[5]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -700,7 +819,7 @@ func (x *OutboundGroup) ProtoReflect() protoreflect.Message {
// Deprecated: Use OutboundGroup.ProtoReflect.Descriptor instead.
func (*OutboundGroup) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{5}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{6}
}
func (x *OutboundGroup) GetTag() string {
@@ -756,7 +875,7 @@ type OutboundGroupList struct {
func (x *OutboundGroupList) Reset() {
*x = OutboundGroupList{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[6]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -769,7 +888,7 @@ func (x *OutboundGroupList) String() string {
func (*OutboundGroupList) ProtoMessage() {}
func (x *OutboundGroupList) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[6]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -782,7 +901,7 @@ func (x *OutboundGroupList) ProtoReflect() protoreflect.Message {
// Deprecated: Use OutboundGroupList.ProtoReflect.Descriptor instead.
func (*OutboundGroupList) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{6}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{7}
}
func (x *OutboundGroupList) GetItems() []*OutboundGroup {
@@ -804,7 +923,7 @@ type WarpAccount struct {
func (x *WarpAccount) Reset() {
*x = WarpAccount{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[7]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -817,7 +936,7 @@ func (x *WarpAccount) String() string {
func (*WarpAccount) ProtoMessage() {}
func (x *WarpAccount) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[7]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -830,7 +949,7 @@ func (x *WarpAccount) ProtoReflect() protoreflect.Message {
// Deprecated: Use WarpAccount.ProtoReflect.Descriptor instead.
func (*WarpAccount) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{7}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{8}
}
func (x *WarpAccount) GetAccountId() string {
@@ -862,7 +981,7 @@ type WarpWireguardConfig struct {
func (x *WarpWireguardConfig) Reset() {
*x = WarpWireguardConfig{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[8]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -875,7 +994,7 @@ func (x *WarpWireguardConfig) String() string {
func (*WarpWireguardConfig) ProtoMessage() {}
func (x *WarpWireguardConfig) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[8]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -888,7 +1007,7 @@ func (x *WarpWireguardConfig) ProtoReflect() protoreflect.Message {
// Deprecated: Use WarpWireguardConfig.ProtoReflect.Descriptor instead.
func (*WarpWireguardConfig) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{8}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{9}
}
func (x *WarpWireguardConfig) GetPrivateKey() string {
@@ -939,7 +1058,7 @@ type WarpGenerationResponse struct {
func (x *WarpGenerationResponse) Reset() {
*x = WarpGenerationResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[9]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -952,7 +1071,7 @@ func (x *WarpGenerationResponse) String() string {
func (*WarpGenerationResponse) ProtoMessage() {}
func (x *WarpGenerationResponse) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[9]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -965,7 +1084,7 @@ func (x *WarpGenerationResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use WarpGenerationResponse.ProtoReflect.Descriptor instead.
func (*WarpGenerationResponse) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{9}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{10}
}
func (x *WarpGenerationResponse) GetAccount() *WarpAccount {
@@ -1001,7 +1120,7 @@ type SystemProxyStatus struct {
func (x *SystemProxyStatus) Reset() {
*x = SystemProxyStatus{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[10]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1014,7 +1133,7 @@ func (x *SystemProxyStatus) String() string {
func (*SystemProxyStatus) ProtoMessage() {}
func (x *SystemProxyStatus) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[10]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1027,7 +1146,7 @@ func (x *SystemProxyStatus) ProtoReflect() protoreflect.Message {
// Deprecated: Use SystemProxyStatus.ProtoReflect.Descriptor instead.
func (*SystemProxyStatus) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{10}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{11}
}
func (x *SystemProxyStatus) GetAvailable() bool {
@@ -1058,7 +1177,7 @@ type ParseRequest struct {
func (x *ParseRequest) Reset() {
*x = ParseRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[11]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1071,7 +1190,7 @@ func (x *ParseRequest) String() string {
func (*ParseRequest) ProtoMessage() {}
func (x *ParseRequest) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[11]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1084,7 +1203,7 @@ func (x *ParseRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ParseRequest.ProtoReflect.Descriptor instead.
func (*ParseRequest) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{11}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{12}
}
func (x *ParseRequest) GetContent() string {
@@ -1128,7 +1247,7 @@ type ParseResponse struct {
func (x *ParseResponse) Reset() {
*x = ParseResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[12]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1141,7 +1260,7 @@ func (x *ParseResponse) String() string {
func (*ParseResponse) ProtoMessage() {}
func (x *ParseResponse) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[12]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1154,7 +1273,7 @@ func (x *ParseResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ParseResponse.ProtoReflect.Descriptor instead.
func (*ParseResponse) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{12}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{13}
}
func (x *ParseResponse) GetResponseCode() hcommon.ResponseCode {
@@ -1189,7 +1308,7 @@ type ChangeHiddifySettingsRequest struct {
func (x *ChangeHiddifySettingsRequest) Reset() {
*x = ChangeHiddifySettingsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[13]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1202,7 +1321,7 @@ func (x *ChangeHiddifySettingsRequest) String() string {
func (*ChangeHiddifySettingsRequest) ProtoMessage() {}
func (x *ChangeHiddifySettingsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[13]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1215,7 +1334,7 @@ func (x *ChangeHiddifySettingsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ChangeHiddifySettingsRequest.ProtoReflect.Descriptor instead.
func (*ChangeHiddifySettingsRequest) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{13}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{14}
}
func (x *ChangeHiddifySettingsRequest) GetHiddifySettingsJson() string {
@@ -1238,7 +1357,7 @@ type GenerateConfigRequest struct {
func (x *GenerateConfigRequest) Reset() {
*x = GenerateConfigRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[14]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1251,7 +1370,7 @@ func (x *GenerateConfigRequest) String() string {
func (*GenerateConfigRequest) ProtoMessage() {}
func (x *GenerateConfigRequest) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[14]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1264,7 +1383,7 @@ func (x *GenerateConfigRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GenerateConfigRequest.ProtoReflect.Descriptor instead.
func (*GenerateConfigRequest) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{14}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{15}
}
func (x *GenerateConfigRequest) GetPath() string {
@@ -1299,7 +1418,7 @@ type GenerateConfigResponse struct {
func (x *GenerateConfigResponse) Reset() {
*x = GenerateConfigResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[15]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1312,7 +1431,7 @@ func (x *GenerateConfigResponse) String() string {
func (*GenerateConfigResponse) ProtoMessage() {}
func (x *GenerateConfigResponse) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[15]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1325,7 +1444,7 @@ func (x *GenerateConfigResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GenerateConfigResponse.ProtoReflect.Descriptor instead.
func (*GenerateConfigResponse) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{15}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{16}
}
func (x *GenerateConfigResponse) GetConfigContent() string {
@@ -1347,7 +1466,7 @@ type SelectOutboundRequest struct {
func (x *SelectOutboundRequest) Reset() {
*x = SelectOutboundRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[16]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1360,7 +1479,7 @@ func (x *SelectOutboundRequest) String() string {
func (*SelectOutboundRequest) ProtoMessage() {}
func (x *SelectOutboundRequest) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[16]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1373,7 +1492,7 @@ func (x *SelectOutboundRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SelectOutboundRequest.ProtoReflect.Descriptor instead.
func (*SelectOutboundRequest) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{16}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{17}
}
func (x *SelectOutboundRequest) GetGroupTag() string {
@@ -1401,7 +1520,7 @@ type UrlTestRequest struct {
func (x *UrlTestRequest) Reset() {
*x = UrlTestRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[17]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1414,7 +1533,7 @@ func (x *UrlTestRequest) String() string {
func (*UrlTestRequest) ProtoMessage() {}
func (x *UrlTestRequest) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[17]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1427,7 +1546,7 @@ func (x *UrlTestRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use UrlTestRequest.ProtoReflect.Descriptor instead.
func (*UrlTestRequest) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{17}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{18}
}
func (x *UrlTestRequest) GetGroupTag() string {
@@ -1450,7 +1569,7 @@ type GenerateWarpConfigRequest struct {
func (x *GenerateWarpConfigRequest) Reset() {
*x = GenerateWarpConfigRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[18]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1463,7 +1582,7 @@ func (x *GenerateWarpConfigRequest) String() string {
func (*GenerateWarpConfigRequest) ProtoMessage() {}
func (x *GenerateWarpConfigRequest) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[18]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1476,7 +1595,7 @@ func (x *GenerateWarpConfigRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GenerateWarpConfigRequest.ProtoReflect.Descriptor instead.
func (*GenerateWarpConfigRequest) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{18}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{19}
}
func (x *GenerateWarpConfigRequest) GetLicenseKey() string {
@@ -1511,7 +1630,7 @@ type SetSystemProxyEnabledRequest struct {
func (x *SetSystemProxyEnabledRequest) Reset() {
*x = SetSystemProxyEnabledRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[19]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1524,7 +1643,7 @@ func (x *SetSystemProxyEnabledRequest) String() string {
func (*SetSystemProxyEnabledRequest) ProtoMessage() {}
func (x *SetSystemProxyEnabledRequest) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[19]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1537,7 +1656,7 @@ func (x *SetSystemProxyEnabledRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetSystemProxyEnabledRequest.ProtoReflect.Descriptor instead.
func (*SetSystemProxyEnabledRequest) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{19}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{20}
}
func (x *SetSystemProxyEnabledRequest) GetIsEnabled() bool {
@@ -1561,7 +1680,7 @@ type LogMessage struct {
func (x *LogMessage) Reset() {
*x = LogMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[20]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1574,7 +1693,7 @@ func (x *LogMessage) String() string {
func (*LogMessage) ProtoMessage() {}
func (x *LogMessage) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[20]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1587,7 +1706,7 @@ func (x *LogMessage) ProtoReflect() protoreflect.Message {
// Deprecated: Use LogMessage.ProtoReflect.Descriptor instead.
func (*LogMessage) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{20}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{21}
}
func (x *LogMessage) GetLevel() LogLevel {
@@ -1627,7 +1746,7 @@ type StopRequest struct {
func (x *StopRequest) Reset() {
*x = StopRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_v2_hcore_hcore_proto_msgTypes[21]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1640,7 +1759,7 @@ func (x *StopRequest) String() string {
func (*StopRequest) ProtoMessage() {}
func (x *StopRequest) ProtoReflect() protoreflect.Message {
- mi := &file_v2_hcore_hcore_proto_msgTypes[21]
+ mi := &file_v2_hcore_hcore_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1653,7 +1772,7 @@ func (x *StopRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StopRequest.ProtoReflect.Descriptor instead.
func (*StopRequest) Descriptor() ([]byte, []int) {
- return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{21}
+ return file_v2_hcore_hcore_proto_rawDescGZIP(), []int{22}
}
var File_v2_hcore_hcore_proto protoreflect.FileDescriptor
@@ -1718,7 +1837,7 @@ var file_v2_hcore_hcore_proto_rawDesc = []byte{
0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x6f,
0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01,
0x28, 0x03, 0x52, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x6f, 0x74, 0x61,
- 0x6c, 0x22, 0x9a, 0x01, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e,
+ 0x6c, 0x22, 0xc1, 0x01, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x74, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x75, 0x72, 0x6c, 0x5f,
@@ -1727,156 +1846,173 @@ var file_v2_hcore_hcore_proto_rawDesc = []byte{
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x75, 0x72, 0x6c,
0x54, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x72, 0x6c, 0x5f,
0x74, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
- 0x52, 0x0c, 0x75, 0x72, 0x6c, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xb9,
- 0x01, 0x0a, 0x0d, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70,
- 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74,
- 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
- 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
- 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x49, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x12,
- 0x29, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13,
- 0x2e, 0x68, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49,
- 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3f, 0x0a, 0x11, 0x4f, 0x75,
- 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12,
- 0x2a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14,
- 0x2e, 0x68, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x47,
- 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x4f, 0x0a, 0x0b, 0x57,
- 0x61, 0x72, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63,
- 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
- 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63,
- 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xdf, 0x01, 0x0a,
- 0x13, 0x57, 0x61, 0x72, 0x70, 0x57, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x43, 0x6f,
- 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f,
- 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61,
- 0x74, 0x65, 0x2d, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f,
- 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
- 0x73, 0x2d, 0x69, 0x70, 0x76, 0x34, 0x12, 0x2e, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f,
- 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
- 0x73, 0x2d, 0x69, 0x70, 0x76, 0x36, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x70,
- 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0f, 0x70, 0x65, 0x65, 0x72, 0x2d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x6b, 0x65, 0x79,
- 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x69, 0x64, 0x22, 0x8c,
- 0x01, 0x0a, 0x16, 0x57, 0x61, 0x72, 0x70, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x63, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x68, 0x63, 0x6f,
- 0x72, 0x65, 0x2e, 0x57, 0x61, 0x72, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07,
- 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x6f, 0x6e,
- 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x63, 0x6f, 0x72,
- 0x65, 0x2e, 0x57, 0x61, 0x72, 0x70, 0x57, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x43,
- 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4b, 0x0a,
- 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
- 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x7c, 0x0a, 0x0c, 0x50, 0x61,
- 0x72, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
- 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e,
- 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x70,
- 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x70, 0x61,
- 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x50, 0x61,
- 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x22, 0x7f, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x73,
- 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x72, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
- 0x32, 0x15, 0x2e, 0x68, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12,
- 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x52, 0x0a, 0x1c, 0x43, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x48, 0x69, 0x64, 0x64, 0x69, 0x66, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
- 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x68, 0x69, 0x64,
- 0x64, 0x69, 0x66, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x6a, 0x73,
- 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x68, 0x69, 0x64, 0x64, 0x69, 0x66,
- 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x22, 0x5e, 0x0a,
- 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65,
- 0x6d, 0x70, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,
- 0x65, 0x6d, 0x70, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x22, 0x3f, 0x0a,
- 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x57,
- 0x0a, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70,
- 0x5f, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75,
- 0x70, 0x54, 0x61, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64,
- 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x62,
- 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x61, 0x67, 0x22, 0x2d, 0x0a, 0x0e, 0x55, 0x72, 0x6c, 0x54, 0x65,
- 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f,
+ 0x52, 0x0c, 0x75, 0x72, 0x6c, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x25,
+ 0x0a, 0x06, 0x69, 0x70, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d,
+ 0x2e, 0x68, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x69,
+ 0x70, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xe8, 0x01, 0x0a, 0x06, 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f,
+ 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70,
+ 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f,
+ 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04,
+ 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79,
+ 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61,
+ 0x73, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65,
+ 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x08, 0x20,
+ 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x20,
+ 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65,
+ 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x72, 0x6f,
+ 0x75, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x74, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x49, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e,
+ 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x45, 0x78, 0x70, 0x61, 0x6e,
+ 0x64, 0x12, 0x29, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x13, 0x2e, 0x68, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e,
+ 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3f, 0x0a, 0x11,
+ 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73,
+ 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x14, 0x2e, 0x68, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e,
+ 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x4f, 0x0a,
+ 0x0b, 0x57, 0x61, 0x72, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61,
+ 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xdf,
+ 0x01, 0x0a, 0x13, 0x57, 0x61, 0x72, 0x70, 0x57, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74,
+ 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x69,
+ 0x76, 0x61, 0x74, 0x65, 0x2d, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61,
+ 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x64, 0x64, 0x72,
+ 0x65, 0x73, 0x73, 0x2d, 0x69, 0x70, 0x76, 0x34, 0x12, 0x2e, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61,
+ 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x64, 0x64, 0x72,
+ 0x65, 0x73, 0x73, 0x2d, 0x69, 0x70, 0x76, 0x36, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x65, 0x65, 0x72,
+ 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0f, 0x70, 0x65, 0x65, 0x72, 0x2d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x6b,
+ 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x69, 0x64,
+ 0x22, 0x8c, 0x01, 0x0a, 0x16, 0x57, 0x61, 0x72, 0x70, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x61,
+ 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x68,
+ 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x61, 0x72, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x32, 0x0a, 0x06, 0x63,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x63,
+ 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x61, 0x72, 0x70, 0x57, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72,
+ 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22,
+ 0x4b, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62,
+ 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x7c, 0x0a, 0x0c,
+ 0x50, 0x61, 0x72, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07,
+ 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
+ 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x5f,
+ 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70,
+ 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x22, 0x7f, 0x0a, 0x0d, 0x50, 0x61,
+ 0x72, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x72,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x68, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
+ 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
+ 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x52, 0x0a, 0x1c, 0x43,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x64, 0x64, 0x69, 0x66, 0x79, 0x53, 0x65, 0x74, 0x74,
+ 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x68,
+ 0x69, 0x64, 0x64, 0x69, 0x66, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f,
+ 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x68, 0x69, 0x64, 0x64,
+ 0x69, 0x66, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x22,
+ 0x5e, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09,
+ 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x74, 0x65, 0x6d, 0x70, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62,
+ 0x75, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x22,
+ 0x3f, 0x0a, 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
+ 0x22, 0x57, 0x0a, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75,
+ 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72,
- 0x6f, 0x75, 0x70, 0x54, 0x61, 0x67, 0x22, 0x7e, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61,
- 0x74, 0x65, 0x57, 0x61, 0x72, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x5f, 0x6b,
- 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73,
- 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f,
- 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f,
- 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73,
- 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3d, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x53, 0x79, 0x73,
- 0x74, 0x65, 0x6d, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61,
- 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e,
- 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x68, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x4c,
- 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x04, 0x74,
- 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x68, 0x63, 0x6f, 0x72,
- 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
- 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d,
- 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
- 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x53, 0x74, 0x6f,
- 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2a, 0x42, 0x0a, 0x0a, 0x43, 0x6f, 0x72, 0x65,
- 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45,
- 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10,
- 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0c,
- 0x0a, 0x08, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x2a, 0xe2, 0x02, 0x0a,
- 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05,
- 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4d, 0x50, 0x54, 0x59,
- 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01,
- 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e,
- 0x44, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x52,
- 0x45, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x03, 0x12, 0x11,
- 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10,
- 0x04, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f,
- 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x4c, 0x52, 0x45, 0x41,
- 0x44, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f,
- 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10,
- 0x07, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4e, 0x4f,
- 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x53,
- 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45,
- 0x44, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f,
- 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x19, 0x0a,
- 0x15, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x49, 0x4e, 0x47, 0x5f,
- 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x0b, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x52, 0x52, 0x4f,
- 0x52, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47,
- 0x10, 0x0c, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44,
- 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f,
- 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x10,
- 0x0e, 0x2a, 0x42, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x09, 0x0a,
- 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f,
- 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12,
- 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x41,
- 0x54, 0x41, 0x4c, 0x10, 0x04, 0x2a, 0x2c, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65,
- 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x52, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45,
- 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4e, 0x46, 0x49,
- 0x47, 0x10, 0x02, 0x42, 0x2a, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
- 0x6d, 0x2f, 0x68, 0x69, 0x64, 0x64, 0x69, 0x66, 0x79, 0x2f, 0x68, 0x69, 0x64, 0x64, 0x69, 0x66,
- 0x79, 0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x68, 0x63, 0x6f, 0x72, 0x65, 0x62,
- 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x6f, 0x75, 0x70, 0x54, 0x61, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75,
+ 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x75,
+ 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x61, 0x67, 0x22, 0x2d, 0x0a, 0x0e, 0x55, 0x72, 0x6c,
+ 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x67,
+ 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x67, 0x22, 0x7e, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65,
+ 0x72, 0x61, 0x74, 0x65, 0x57, 0x61, 0x72, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65,
+ 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x63, 0x65,
+ 0x6e, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f,
+ 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f,
+ 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63,
+ 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3d, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x53,
+ 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
+ 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65,
+ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73,
+ 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x68, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x6f,
+ 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, 0x0a,
+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x68, 0x63,
+ 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,
+ 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x74,
+ 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
+ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x53,
+ 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2a, 0x42, 0x0a, 0x0a, 0x43, 0x6f,
+ 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50,
+ 0x50, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e,
+ 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02,
+ 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x2a, 0xe2,
+ 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09,
+ 0x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4d, 0x50,
+ 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e,
+ 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x4d,
+ 0x41, 0x4e, 0x44, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e,
+ 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x03,
+ 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43,
+ 0x45, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x45,
+ 0x44, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x4c, 0x52,
+ 0x45, 0x41, 0x44, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x06, 0x12, 0x13,
+ 0x0a, 0x0f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45,
+ 0x44, 0x10, 0x07, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f,
+ 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x49,
+ 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x50,
+ 0x50, 0x45, 0x44, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43,
+ 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x0a, 0x12,
+ 0x19, 0x0a, 0x15, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x49, 0x4e,
+ 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x0b, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x52,
+ 0x52, 0x4f, 0x52, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46,
+ 0x49, 0x47, 0x10, 0x0c, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45,
+ 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x0d, 0x12, 0x13,
+ 0x0a, 0x0f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f,
+ 0x4e, 0x10, 0x0e, 0x2a, 0x42, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12,
+ 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e,
+ 0x46, 0x4f, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10,
+ 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05,
+ 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x04, 0x2a, 0x2c, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x54, 0x79,
+ 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x52, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
+ 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4e,
+ 0x46, 0x49, 0x47, 0x10, 0x02, 0x42, 0x2a, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x69, 0x64, 0x64, 0x69, 0x66, 0x79, 0x2f, 0x68, 0x69, 0x64, 0x64,
+ 0x69, 0x66, 0x79, 0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x68, 0x63, 0x6f, 0x72,
+ 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1892,7 +2028,7 @@ func file_v2_hcore_hcore_proto_rawDescGZIP() []byte {
}
var file_v2_hcore_hcore_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_v2_hcore_hcore_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
+var file_v2_hcore_hcore_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_v2_hcore_hcore_proto_goTypes = []any{
(CoreStates)(0), // 0: hcore.CoreStates
(MessageType)(0), // 1: hcore.MessageType
@@ -1903,43 +2039,45 @@ var file_v2_hcore_hcore_proto_goTypes = []any{
(*SetupRequest)(nil), // 6: hcore.SetupRequest
(*SystemInfo)(nil), // 7: hcore.SystemInfo
(*OutboundInfo)(nil), // 8: hcore.OutboundInfo
- (*OutboundGroup)(nil), // 9: hcore.OutboundGroup
- (*OutboundGroupList)(nil), // 10: hcore.OutboundGroupList
- (*WarpAccount)(nil), // 11: hcore.WarpAccount
- (*WarpWireguardConfig)(nil), // 12: hcore.WarpWireguardConfig
- (*WarpGenerationResponse)(nil), // 13: hcore.WarpGenerationResponse
- (*SystemProxyStatus)(nil), // 14: hcore.SystemProxyStatus
- (*ParseRequest)(nil), // 15: hcore.ParseRequest
- (*ParseResponse)(nil), // 16: hcore.ParseResponse
- (*ChangeHiddifySettingsRequest)(nil), // 17: hcore.ChangeHiddifySettingsRequest
- (*GenerateConfigRequest)(nil), // 18: hcore.GenerateConfigRequest
- (*GenerateConfigResponse)(nil), // 19: hcore.GenerateConfigResponse
- (*SelectOutboundRequest)(nil), // 20: hcore.SelectOutboundRequest
- (*UrlTestRequest)(nil), // 21: hcore.UrlTestRequest
- (*GenerateWarpConfigRequest)(nil), // 22: hcore.GenerateWarpConfigRequest
- (*SetSystemProxyEnabledRequest)(nil), // 23: hcore.SetSystemProxyEnabledRequest
- (*LogMessage)(nil), // 24: hcore.LogMessage
- (*StopRequest)(nil), // 25: hcore.StopRequest
- (*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp
- (hcommon.ResponseCode)(0), // 27: hcommon.ResponseCode
+ (*IpInfo)(nil), // 9: hcore.IpInfo
+ (*OutboundGroup)(nil), // 10: hcore.OutboundGroup
+ (*OutboundGroupList)(nil), // 11: hcore.OutboundGroupList
+ (*WarpAccount)(nil), // 12: hcore.WarpAccount
+ (*WarpWireguardConfig)(nil), // 13: hcore.WarpWireguardConfig
+ (*WarpGenerationResponse)(nil), // 14: hcore.WarpGenerationResponse
+ (*SystemProxyStatus)(nil), // 15: hcore.SystemProxyStatus
+ (*ParseRequest)(nil), // 16: hcore.ParseRequest
+ (*ParseResponse)(nil), // 17: hcore.ParseResponse
+ (*ChangeHiddifySettingsRequest)(nil), // 18: hcore.ChangeHiddifySettingsRequest
+ (*GenerateConfigRequest)(nil), // 19: hcore.GenerateConfigRequest
+ (*GenerateConfigResponse)(nil), // 20: hcore.GenerateConfigResponse
+ (*SelectOutboundRequest)(nil), // 21: hcore.SelectOutboundRequest
+ (*UrlTestRequest)(nil), // 22: hcore.UrlTestRequest
+ (*GenerateWarpConfigRequest)(nil), // 23: hcore.GenerateWarpConfigRequest
+ (*SetSystemProxyEnabledRequest)(nil), // 24: hcore.SetSystemProxyEnabledRequest
+ (*LogMessage)(nil), // 25: hcore.LogMessage
+ (*StopRequest)(nil), // 26: hcore.StopRequest
+ (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp
+ (hcommon.ResponseCode)(0), // 28: hcommon.ResponseCode
}
var file_v2_hcore_hcore_proto_depIdxs = []int32{
0, // 0: hcore.CoreInfoResponse.core_state:type_name -> hcore.CoreStates
1, // 1: hcore.CoreInfoResponse.message_type:type_name -> hcore.MessageType
- 26, // 2: hcore.OutboundInfo.url_test_time:type_name -> google.protobuf.Timestamp
- 8, // 3: hcore.OutboundGroup.items:type_name -> hcore.OutboundInfo
- 9, // 4: hcore.OutboundGroupList.items:type_name -> hcore.OutboundGroup
- 11, // 5: hcore.WarpGenerationResponse.account:type_name -> hcore.WarpAccount
- 12, // 6: hcore.WarpGenerationResponse.config:type_name -> hcore.WarpWireguardConfig
- 27, // 7: hcore.ParseResponse.response_code:type_name -> hcommon.ResponseCode
- 2, // 8: hcore.LogMessage.level:type_name -> hcore.LogLevel
- 3, // 9: hcore.LogMessage.type:type_name -> hcore.LogType
- 26, // 10: hcore.LogMessage.time:type_name -> google.protobuf.Timestamp
- 11, // [11:11] is the sub-list for method output_type
- 11, // [11:11] is the sub-list for method input_type
- 11, // [11:11] is the sub-list for extension type_name
- 11, // [11:11] is the sub-list for extension extendee
- 0, // [0:11] is the sub-list for field type_name
+ 27, // 2: hcore.OutboundInfo.url_test_time:type_name -> google.protobuf.Timestamp
+ 9, // 3: hcore.OutboundInfo.ipinfo:type_name -> hcore.IpInfo
+ 8, // 4: hcore.OutboundGroup.items:type_name -> hcore.OutboundInfo
+ 10, // 5: hcore.OutboundGroupList.items:type_name -> hcore.OutboundGroup
+ 12, // 6: hcore.WarpGenerationResponse.account:type_name -> hcore.WarpAccount
+ 13, // 7: hcore.WarpGenerationResponse.config:type_name -> hcore.WarpWireguardConfig
+ 28, // 8: hcore.ParseResponse.response_code:type_name -> hcommon.ResponseCode
+ 2, // 9: hcore.LogMessage.level:type_name -> hcore.LogLevel
+ 3, // 10: hcore.LogMessage.type:type_name -> hcore.LogType
+ 27, // 11: hcore.LogMessage.time:type_name -> google.protobuf.Timestamp
+ 12, // [12:12] is the sub-list for method output_type
+ 12, // [12:12] is the sub-list for method input_type
+ 12, // [12:12] is the sub-list for extension type_name
+ 12, // [12:12] is the sub-list for extension extendee
+ 0, // [0:12] is the sub-list for field type_name
}
func init() { file_v2_hcore_hcore_proto_init() }
@@ -2009,7 +2147,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*OutboundGroup); i {
+ switch v := v.(*IpInfo); i {
case 0:
return &v.state
case 1:
@@ -2021,7 +2159,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*OutboundGroupList); i {
+ switch v := v.(*OutboundGroup); i {
case 0:
return &v.state
case 1:
@@ -2033,7 +2171,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*WarpAccount); i {
+ switch v := v.(*OutboundGroupList); i {
case 0:
return &v.state
case 1:
@@ -2045,7 +2183,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*WarpWireguardConfig); i {
+ switch v := v.(*WarpAccount); i {
case 0:
return &v.state
case 1:
@@ -2057,7 +2195,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*WarpGenerationResponse); i {
+ switch v := v.(*WarpWireguardConfig); i {
case 0:
return &v.state
case 1:
@@ -2069,7 +2207,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*SystemProxyStatus); i {
+ switch v := v.(*WarpGenerationResponse); i {
case 0:
return &v.state
case 1:
@@ -2081,7 +2219,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*ParseRequest); i {
+ switch v := v.(*SystemProxyStatus); i {
case 0:
return &v.state
case 1:
@@ -2093,7 +2231,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*ParseResponse); i {
+ switch v := v.(*ParseRequest); i {
case 0:
return &v.state
case 1:
@@ -2105,7 +2243,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeHiddifySettingsRequest); i {
+ switch v := v.(*ParseResponse); i {
case 0:
return &v.state
case 1:
@@ -2117,7 +2255,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*GenerateConfigRequest); i {
+ switch v := v.(*ChangeHiddifySettingsRequest); i {
case 0:
return &v.state
case 1:
@@ -2129,7 +2267,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*GenerateConfigResponse); i {
+ switch v := v.(*GenerateConfigRequest); i {
case 0:
return &v.state
case 1:
@@ -2141,7 +2279,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[16].Exporter = func(v any, i int) any {
- switch v := v.(*SelectOutboundRequest); i {
+ switch v := v.(*GenerateConfigResponse); i {
case 0:
return &v.state
case 1:
@@ -2153,7 +2291,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[17].Exporter = func(v any, i int) any {
- switch v := v.(*UrlTestRequest); i {
+ switch v := v.(*SelectOutboundRequest); i {
case 0:
return &v.state
case 1:
@@ -2165,7 +2303,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[18].Exporter = func(v any, i int) any {
- switch v := v.(*GenerateWarpConfigRequest); i {
+ switch v := v.(*UrlTestRequest); i {
case 0:
return &v.state
case 1:
@@ -2177,7 +2315,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[19].Exporter = func(v any, i int) any {
- switch v := v.(*SetSystemProxyEnabledRequest); i {
+ switch v := v.(*GenerateWarpConfigRequest); i {
case 0:
return &v.state
case 1:
@@ -2189,7 +2327,7 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[20].Exporter = func(v any, i int) any {
- switch v := v.(*LogMessage); i {
+ switch v := v.(*SetSystemProxyEnabledRequest); i {
case 0:
return &v.state
case 1:
@@ -2201,6 +2339,18 @@ func file_v2_hcore_hcore_proto_init() {
}
}
file_v2_hcore_hcore_proto_msgTypes[21].Exporter = func(v any, i int) any {
+ switch v := v.(*LogMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_v2_hcore_hcore_proto_msgTypes[22].Exporter = func(v any, i int) any {
switch v := v.(*StopRequest); i {
case 0:
return &v.state
@@ -2219,7 +2369,7 @@ func file_v2_hcore_hcore_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_v2_hcore_hcore_proto_rawDesc,
NumEnums: 4,
- NumMessages: 22,
+ NumMessages: 23,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/v2/hcore/hcore.proto b/v2/hcore/hcore.proto
index 42d6226..8dd2d5e 100644
--- a/v2/hcore/hcore.proto
+++ b/v2/hcore/hcore.proto
@@ -70,8 +70,20 @@ message OutboundInfo {
string type = 2;
google.protobuf.Timestamp url_test_time = 3;
int32 url_test_delay = 4;
+ IpInfo ipinfo = 5;
}
+message IpInfo {
+ string ip = 1 [json_name = "ip"]; // The IP address.
+ string country_code = 2 [json_name = "country_code"]; // The country code.
+ string region = 3 [json_name = "region"]; // The region (optional).
+ string city = 4 [json_name = "city"]; // The city (optional).
+ int32 asn = 5 [json_name = "asn"]; // The Autonomous System Number (optional).
+ string org = 6 [json_name = "org"]; // The organization (optional).
+ double latitude = 7 [json_name = "latitude"]; // The latitude (optional).
+ double longitude = 8 [json_name = "longitude"]; // The longitude (optional).
+ string postal_code = 9 [json_name = "postal_code"]; // The postal code (optional).
+}
message OutboundGroup {
string tag = 1;
string type = 2;
diff --git a/v2/hcore/proxy_info.go b/v2/hcore/proxy_info.go
index afa9893..fb91c62 100644
--- a/v2/hcore/proxy_info.go
+++ b/v2/hcore/proxy_info.go
@@ -22,6 +22,19 @@ func GetProxyInfo(detour adapter.Outbound) *OutboundInfo {
if url_test_history != nil {
out.UrlTestTime = timestamppb.New(url_test_history.Time)
out.UrlTestDelay = int32(url_test_history.Delay)
+ if url_test_history.IpInfo != nil {
+ out.Ipinfo = &IpInfo{
+ Ip: url_test_history.IpInfo.IP,
+ CountryCode: url_test_history.IpInfo.CountryCode,
+ Region: url_test_history.IpInfo.Region,
+ City: url_test_history.IpInfo.City,
+ Asn: int32(url_test_history.IpInfo.ASN),
+ Org: url_test_history.IpInfo.Org,
+ Latitude: url_test_history.IpInfo.Latitude,
+ Longitude: url_test_history.IpInfo.Longitude,
+ PostalCode: url_test_history.IpInfo.PostalCode,
+ }
+ }
}
return out
@@ -87,6 +100,7 @@ func AllProxiesInfoStream(stream grpc.ServerStreamingServer[OutboundGroupList],
if err != nil {
return err
}
+ stream.Send(GetAllProxiesInfo(onlyMain))
for {
select {
case <-stream.Context().Done():