From aa8506985892252a0b7f82f46306b19976d3a649 Mon Sep 17 00:00:00 2001 From: Andrei Mihu Date: Tue, 11 Dec 2018 19:25:35 +0000 Subject: [PATCH] Rename descriptor to subcontext and import to sync. --- CHANGELOG.md | 3 + api/api.pb.go | 423 +++++++++++++++++------------------ api/api.proto | 4 +- apigrpc/apigrpc.swagger.json | 4 +- rtapi/realtime.pb.go | 34 +-- rtapi/realtime.proto | 4 +- runtime/runtime.go | 18 +- server/api_authenticate.go | 2 +- server/api_link.go | 2 +- server/core_channel.go | 34 +-- server/pipeline_channel.go | 8 +- server/runtime_go_nakama.go | 76 +++---- server/runtime_lua_nakama.go | 98 ++++---- server/tracker.go | 10 +- 14 files changed, 361 insertions(+), 359 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3390d33d..10d107d12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr - Clients sending data to an invalid match ID will now receive an uncollated error. ### Changed +- Rename stream 'descriptor' field to 'subcontext' to avoid protocol naming conflict. +- Rename Facebook authentication and link 'import' field to avoid language keyword conflict. - Rejoining a match the user is already part of will now return the match label. - Allow tournament joins before the start of the tournament active period. - Authoritative matches now complete their stop phase faster to avoid unnecessary processing. @@ -28,6 +30,7 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr - Tournament end runtime callbacks now receive the correct end time. - Leaderboard and tournament runtime callbacks no longer trigger twice when time delays are observed. - Check group max allowed user when promoting a user. +- Correct Lua runtime decoding of stream identifying parameters. ## [2.2.1] - 2018-11-20 ### Added diff --git a/api/api.pb.go b/api/api.pb.go index 895d6348f..cdb217302 100644 --- a/api/api.pb.go +++ b/api/api.pb.go @@ -5,11 +5,10 @@ package api import ( fmt "fmt" - math "math" - proto "github.com/golang/protobuf/proto" timestamp "github.com/golang/protobuf/ptypes/timestamp" wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. @@ -844,7 +843,7 @@ type AuthenticateFacebookRequest struct { // Set the username on the account at register. Must be unique. Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` // Import Facebook friends for the user. - Import *wrappers.BoolValue `protobuf:"bytes,4,opt,name=import,proto3" json:"import,omitempty"` + Sync *wrappers.BoolValue `protobuf:"bytes,4,opt,name=sync,proto3" json:"sync,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -896,9 +895,9 @@ func (m *AuthenticateFacebookRequest) GetUsername() string { return "" } -func (m *AuthenticateFacebookRequest) GetImport() *wrappers.BoolValue { +func (m *AuthenticateFacebookRequest) GetSync() *wrappers.BoolValue { if m != nil { - return m.Import + return m.Sync } return nil } @@ -2519,7 +2518,7 @@ type LinkFacebookRequest struct { // The Facebook account details. Account *AccountFacebook `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // Import Facebook friends for the user. - Import *wrappers.BoolValue `protobuf:"bytes,4,opt,name=import,proto3" json:"import,omitempty"` + Sync *wrappers.BoolValue `protobuf:"bytes,4,opt,name=sync,proto3" json:"sync,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2557,9 +2556,9 @@ func (m *LinkFacebookRequest) GetAccount() *AccountFacebook { return nil } -func (m *LinkFacebookRequest) GetImport() *wrappers.BoolValue { +func (m *LinkFacebookRequest) GetSync() *wrappers.BoolValue { if m != nil { - return m.Import + return m.Sync } return nil } @@ -5377,208 +5376,208 @@ func init() { proto.RegisterFile("api/api.proto", fileDescriptor_1b40cafcd423478 var fileDescriptor_1b40cafcd4234784 = []byte{ // 3273 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3a, 0x5b, 0x8f, 0x1b, 0x49, - 0xd5, 0xdb, 0xbe, 0xfb, 0x78, 0x3c, 0xe3, 0xe9, 0x5c, 0x3e, 0x8f, 0x73, 0xdd, 0x4e, 0xf6, 0x4b, - 0x56, 0xfb, 0x7d, 0x93, 0xdd, 0xc9, 0xb7, 0x5f, 0x02, 0x0b, 0xd9, 0xcc, 0xc5, 0x89, 0xbc, 0x49, - 0x26, 0xa1, 0x67, 0x26, 0x20, 0x78, 0xf0, 0xd6, 0x74, 0xd7, 0x78, 0x9a, 0x69, 0x77, 0x7b, 0xbb, - 0xdb, 0x73, 0x59, 0x09, 0x09, 0x10, 0x12, 0xfb, 0x84, 0x10, 0x4f, 0xbc, 0x00, 0x2b, 0x84, 0xd0, - 0x2e, 0x48, 0xfc, 0x02, 0xde, 0x79, 0x47, 0x02, 0xed, 0x1b, 0xf0, 0x88, 0xc4, 0x3f, 0x40, 0x42, - 0xa8, 0x4e, 0x55, 0x77, 0x57, 0xb7, 0xed, 0xb1, 0x9d, 0x99, 0xec, 0x4a, 0xbc, 0x58, 0x5d, 0xa7, - 0xce, 0xa9, 0x3a, 0x75, 0xea, 0xdc, 0xcb, 0x50, 0x25, 0x3d, 0xeb, 0x16, 0xe9, 0x59, 0x8b, 0x3d, - 0xcf, 0x0d, 0x5c, 0x15, 0x1c, 0xb2, 0x47, 0xba, 0x64, 0x91, 0xf4, 0xac, 0xc6, 0x95, 0x8e, 0xeb, - 0x76, 0x6c, 0x7a, 0x0b, 0x67, 0xb6, 0xfb, 0x3b, 0xb7, 0x02, 0xab, 0x4b, 0xfd, 0x80, 0x74, 0x7b, - 0x1c, 0xb9, 0x71, 0x39, 0x8d, 0x70, 0xe0, 0x91, 0x5e, 0x8f, 0x7a, 0x3e, 0x9f, 0xd7, 0xfe, 0xa1, - 0x40, 0x71, 0xd9, 0x30, 0xdc, 0xbe, 0x13, 0xa8, 0xd7, 0x21, 0xd7, 0xf7, 0xa9, 0x57, 0x57, 0xae, - 0x2a, 0x37, 0x2b, 0x4b, 0xb5, 0xc5, 0x78, 0x9f, 0xc5, 0x2d, 0x9f, 0x7a, 0x3a, 0xce, 0xaa, 0xe7, - 0xa1, 0x70, 0x40, 0x6c, 0x9b, 0x06, 0xf5, 0xcc, 0x55, 0xe5, 0x66, 0x59, 0x17, 0x23, 0xf5, 0x2c, - 0xe4, 0x69, 0x97, 0x58, 0x76, 0x3d, 0x8b, 0x60, 0x3e, 0x50, 0x6f, 0x43, 0xd1, 0xa4, 0xfb, 0x96, - 0x41, 0xfd, 0x7a, 0xee, 0x6a, 0xf6, 0x66, 0x65, 0x69, 0x41, 0x5e, 0x56, 0xec, 0xbc, 0x86, 0x18, - 0x7a, 0x88, 0xa9, 0x5e, 0x80, 0xb2, 0xd1, 0xf7, 0x03, 0xb7, 0xdb, 0xb6, 0xcc, 0x7a, 0x1e, 0x97, - 0x2b, 0x71, 0x40, 0xcb, 0x54, 0xdf, 0x81, 0xca, 0x3e, 0xf5, 0xac, 0x9d, 0xa3, 0x36, 0x3b, 0x6b, - 0xbd, 0x80, 0xcc, 0x36, 0x16, 0xf9, 0x39, 0x17, 0xc3, 0x73, 0x2e, 0x6e, 0x86, 0x82, 0xd0, 0x81, - 0xa3, 0x33, 0x80, 0x76, 0x05, 0xaa, 0x62, 0xcf, 0x55, 0x5c, 0x4f, 0x9d, 0x85, 0x8c, 0x65, 0xe2, - 0x89, 0xcb, 0x7a, 0xc6, 0x32, 0x25, 0x04, 0xce, 0xd4, 0x00, 0xc2, 0x7d, 0x98, 0x11, 0x08, 0x4d, - 0x3c, 0x60, 0x74, 0x6c, 0x45, 0x3e, 0x76, 0x03, 0x4a, 0x3d, 0xe2, 0xfb, 0x07, 0xae, 0x67, 0x0a, - 0x31, 0x45, 0x63, 0xed, 0x06, 0xcc, 0x89, 0x15, 0x1e, 0x10, 0x83, 0x6e, 0xbb, 0xee, 0x1e, 0x5b, - 0x24, 0x70, 0xf7, 0xa8, 0x13, 0x2e, 0x82, 0x03, 0xed, 0x8f, 0x0a, 0xcc, 0x0b, 0xcc, 0x87, 0xa4, - 0x4b, 0x57, 0xa9, 0x13, 0x50, 0x8f, 0x09, 0xa7, 0x67, 0x93, 0x23, 0xea, 0xb5, 0x23, 0xbe, 0x4a, - 0x1c, 0xd0, 0x32, 0xd9, 0xe4, 0x76, 0xdf, 0x31, 0x6d, 0xca, 0x26, 0xc5, 0xc6, 0x1c, 0xd0, 0x32, - 0xd5, 0x37, 0x60, 0x3e, 0x52, 0x8f, 0xb6, 0x4f, 0x0d, 0xd7, 0x31, 0x7d, 0xbc, 0xad, 0xac, 0x5e, - 0x8b, 0x26, 0x36, 0x38, 0x5c, 0x55, 0x21, 0xe7, 0x13, 0x3b, 0xa8, 0xe7, 0x70, 0x11, 0xfc, 0x56, - 0x2f, 0x42, 0xd9, 0xb7, 0x3a, 0x0e, 0x09, 0xfa, 0x1e, 0x15, 0xf7, 0x12, 0x03, 0xd4, 0xeb, 0x30, - 0xdb, 0xeb, 0x6f, 0xdb, 0x96, 0xd1, 0xde, 0xa3, 0x47, 0xed, 0xbe, 0x67, 0xe3, 0xdd, 0x94, 0xf5, - 0x19, 0x0e, 0x7d, 0x44, 0x8f, 0xb6, 0x3c, 0x5b, 0x7b, 0x2d, 0x12, 0xf0, 0x43, 0xbc, 0xb1, 0x11, - 0x67, 0xbf, 0x1e, 0x89, 0x79, 0x23, 0xa0, 0xa4, 0x3b, 0x02, 0x6b, 0x15, 0xe6, 0x97, 0x4d, 0xf3, - 0x81, 0x67, 0x51, 0xc7, 0xf4, 0x75, 0xfa, 0x41, 0x9f, 0xfa, 0x81, 0x5a, 0x83, 0xac, 0x65, 0xfa, - 0x75, 0xe5, 0x6a, 0xf6, 0x66, 0x59, 0x67, 0x9f, 0x8c, 0x6f, 0xa6, 0xba, 0x0e, 0xe9, 0x52, 0xbf, - 0x9e, 0x41, 0x78, 0x0c, 0xd0, 0x1e, 0xc3, 0xd9, 0x65, 0xd3, 0x7c, 0xe8, 0xb9, 0xfd, 0x1e, 0x53, - 0xf3, 0x68, 0x9d, 0x05, 0x28, 0x75, 0x18, 0x30, 0x96, 0x73, 0x11, 0xc7, 0x2d, 0x93, 0x4d, 0x31, - 0xfa, 0x36, 0xdb, 0x87, 0xaf, 0x57, 0x64, 0xe3, 0x96, 0xe9, 0x6b, 0x1f, 0x2b, 0xb0, 0xb0, 0xdc, - 0x0f, 0x76, 0xa9, 0x13, 0x58, 0x06, 0x09, 0x28, 0xd7, 0xb3, 0x70, 0xcd, 0xdb, 0x50, 0x24, 0xfc, - 0x58, 0xc2, 0xca, 0x86, 0x99, 0x83, 0x20, 0x09, 0x31, 0xd5, 0x25, 0x28, 0x18, 0x1e, 0x25, 0x01, - 0xc5, 0x1b, 0x1d, 0xa6, 0xec, 0x2b, 0xae, 0x6b, 0x3f, 0x27, 0x76, 0x9f, 0xea, 0x02, 0x93, 0x29, - 0x60, 0x78, 0x42, 0x61, 0x90, 0xd1, 0x78, 0x80, 0x45, 0x61, 0x7e, 0xd3, 0xb0, 0x18, 0x5a, 0xec, - 0xcb, 0x62, 0xf1, 0xe7, 0x0a, 0xd4, 0x65, 0x16, 0xd1, 0xd6, 0x42, 0x0e, 0x97, 0xd2, 0x1c, 0xd6, - 0x87, 0x70, 0xc8, 0x29, 0x5e, 0x1a, 0x83, 0x9f, 0x29, 0x70, 0x41, 0x66, 0x30, 0x34, 0xe5, 0x90, - 0xc7, 0xb7, 0xd3, 0x3c, 0x5e, 0x18, 0xc2, 0x63, 0x44, 0xf4, 0xb2, 0xd8, 0x64, 0xeb, 0x59, 0xdd, - 0x9e, 0xeb, 0x71, 0x3b, 0x1e, 0xb3, 0x1e, 0xc7, 0xd4, 0x3e, 0x51, 0xe0, 0x92, 0x7c, 0xb4, 0xd8, - 0xf7, 0x84, 0x87, 0xbb, 0x93, 0x3e, 0xdc, 0xa5, 0x21, 0x87, 0x93, 0xc8, 0x3e, 0x37, 0x4d, 0xe6, - 0x2e, 0x65, 0x2a, 0x4d, 0x16, 0x24, 0x9f, 0x9b, 0x26, 0xa3, 0x3b, 0x9b, 0x4a, 0x93, 0x39, 0xc5, - 0x4b, 0x63, 0xb0, 0x09, 0x67, 0x56, 0x6c, 0xd7, 0xd8, 0x3b, 0xa1, 0x17, 0xfd, 0x28, 0x0b, 0xb3, - 0xab, 0xbb, 0xc4, 0x71, 0xa8, 0xfd, 0x84, 0xfa, 0x3e, 0xe9, 0x50, 0xf5, 0x12, 0x80, 0xc1, 0x21, - 0xb1, 0x0b, 0x2d, 0x0b, 0x48, 0xcb, 0x64, 0xd3, 0x5d, 0x8e, 0x19, 0x07, 0xab, 0xb2, 0x80, 0xb4, - 0x4c, 0xf5, 0x16, 0xe4, 0x0c, 0xd7, 0xe4, 0xfc, 0x32, 0xf3, 0x49, 0x9f, 0xb2, 0xe5, 0x04, 0xb7, - 0x97, 0xf8, 0x31, 0x11, 0x91, 0xc5, 0x3e, 0x9f, 0x3a, 0x26, 0x0f, 0x8c, 0x3c, 0x6c, 0x95, 0x38, - 0xa0, 0x65, 0x26, 0x24, 0x90, 0x4f, 0x19, 0x49, 0x1d, 0x8a, 0x86, 0xeb, 0x04, 0xd4, 0x09, 0x44, - 0xc4, 0x0a, 0x87, 0x2c, 0xd7, 0xe0, 0x12, 0xe4, 0xb9, 0x46, 0x71, 0x7c, 0xae, 0xc1, 0xd1, 0x19, - 0x80, 0x11, 0xf7, 0x7b, 0x66, 0x44, 0x5c, 0x1a, 0x4f, 0xcc, 0xd1, 0x91, 0xf8, 0xcb, 0x00, 0x2c, - 0x4b, 0xb3, 0x7c, 0x64, 0xab, 0x3c, 0xf6, 0xa6, 0x25, 0x6c, 0xed, 0x47, 0x0a, 0xa8, 0xc9, 0xab, - 0x78, 0x6c, 0xf9, 0x81, 0xfa, 0xff, 0x50, 0x12, 0xd2, 0xe5, 0xd7, 0xca, 0x16, 0x94, 0xb4, 0x2d, - 0x49, 0xa1, 0x47, 0xb8, 0xea, 0x15, 0xa8, 0x38, 0xf4, 0x30, 0x68, 0x1b, 0x7d, 0xcf, 0x77, 0x3d, - 0x71, 0x51, 0xc0, 0x40, 0xab, 0x08, 0x61, 0x08, 0x3d, 0x8f, 0xee, 0x87, 0x08, 0x5c, 0xc1, 0x80, - 0x81, 0x38, 0x82, 0xf6, 0x53, 0xc6, 0x10, 0x0a, 0x06, 0xa3, 0x6c, 0xa8, 0x62, 0x2a, 0xe4, 0xf0, - 0x3e, 0xb8, 0x66, 0xe0, 0xb7, 0x7a, 0x15, 0x2a, 0x26, 0xf5, 0x0d, 0xcf, 0xea, 0x05, 0x96, 0xeb, - 0x88, 0xcd, 0x64, 0x10, 0x8b, 0xbd, 0x36, 0x71, 0x3a, 0xed, 0x80, 0x74, 0xc4, 0x56, 0x45, 0x36, - 0xde, 0x24, 0x1d, 0xa6, 0x51, 0x64, 0x9f, 0x04, 0xc4, 0xc3, 0xec, 0x83, 0xab, 0x40, 0x99, 0x43, - 0xb6, 0x3c, 0x9b, 0xed, 0xe7, 0xf6, 0xa8, 0x83, 0xf7, 0x5f, 0xd2, 0xf1, 0x5b, 0x7b, 0x00, 0x67, - 0xd7, 0xa8, 0x4d, 0x03, 0x7a, 0x42, 0xf5, 0xbf, 0x05, 0x2a, 0x5f, 0x27, 0x71, 0xc2, 0xd1, 0x29, - 0x84, 0xf6, 0x10, 0x2e, 0x73, 0x82, 0xc7, 0x94, 0x98, 0xd4, 0xdb, 0x76, 0x89, 0x67, 0xea, 0xd4, - 0x70, 0xd9, 0x2f, 0x27, 0x7e, 0x0d, 0x66, 0xed, 0x78, 0x2e, 0x5e, 0xa2, 0x2a, 0x41, 0x5b, 0xa6, - 0xb6, 0x08, 0x0d, 0xbe, 0xd0, 0xba, 0x1b, 0x58, 0x3b, 0xcc, 0xc7, 0x58, 0xae, 0x33, 0xfa, 0x1c, - 0x9a, 0x01, 0xe7, 0x38, 0xfe, 0x46, 0xe0, 0x7a, 0xa4, 0x43, 0x9f, 0x6e, 0x7f, 0x9b, 0x1a, 0x41, - 0xcb, 0x54, 0x2f, 0x03, 0x18, 0xae, 0x6d, 0x53, 0x03, 0x25, 0xcf, 0xf7, 0x92, 0x20, 0x6c, 0xa9, - 0x3d, 0x7a, 0x24, 0xae, 0x84, 0x7d, 0x32, 0xc3, 0xd9, 0x67, 0x6a, 0xe7, 0x3a, 0xe1, 0x4d, 0x88, - 0xa1, 0xd6, 0x86, 0x0b, 0x43, 0x36, 0x89, 0xb8, 0xba, 0x0f, 0xe0, 0x22, 0xa4, 0x1d, 0x32, 0x57, - 0x59, 0x7a, 0x55, 0x56, 0xc6, 0xa1, 0x1c, 0xea, 0x65, 0x57, 0x7c, 0xf9, 0xda, 0xa7, 0x0a, 0x14, - 0xf8, 0x95, 0x4d, 0x58, 0xb6, 0xbc, 0x05, 0x79, 0x3f, 0x88, 0xbd, 0xe6, 0xb1, 0xfe, 0x84, 0x63, - 0x6a, 0x0f, 0x20, 0xbf, 0xc1, 0x3e, 0x54, 0x80, 0xc2, 0x03, 0xbd, 0xd5, 0x5c, 0x5f, 0xab, 0xbd, - 0xa2, 0xce, 0x41, 0xa5, 0xb5, 0xfe, 0xbc, 0xb5, 0xd9, 0x6c, 0x6f, 0x34, 0xd7, 0x37, 0x6b, 0x8a, - 0x7a, 0x06, 0xe6, 0x04, 0x40, 0x6f, 0xae, 0x36, 0x5b, 0xcf, 0x9b, 0x6b, 0xb5, 0x8c, 0x5a, 0x81, - 0xe2, 0xca, 0xe3, 0xa7, 0xab, 0x8f, 0x9a, 0x6b, 0xb5, 0xac, 0x76, 0x07, 0x8a, 0x42, 0xbb, 0xd4, - 0xff, 0x81, 0xe2, 0x0e, 0xff, 0x14, 0xa7, 0x56, 0x65, 0x76, 0x39, 0x96, 0x1e, 0xa2, 0x68, 0x26, - 0xcc, 0x3d, 0xa4, 0x41, 0x22, 0x29, 0x9d, 0x52, 0x2f, 0xd5, 0x57, 0x61, 0x66, 0x47, 0x64, 0x19, - 0x28, 0xeb, 0x2c, 0x22, 0x54, 0x42, 0x18, 0x13, 0xe5, 0x27, 0x59, 0xc8, 0xa3, 0xd6, 0xa6, 0x6b, - 0x1d, 0x74, 0xe0, 0xcc, 0x6c, 0x5d, 0x4f, 0xf2, 0xd0, 0x02, 0xd2, 0x32, 0x23, 0xfb, 0xcd, 0x8e, - 0xb6, 0xdf, 0xdc, 0xf1, 0xf6, 0x9b, 0x4f, 0xda, 0x6f, 0x83, 0x79, 0xa8, 0x80, 0x98, 0x24, 0x20, - 0xc2, 0x13, 0x47, 0xe3, 0x94, 0x6d, 0x17, 0xd3, 0xb6, 0xbd, 0x28, 0x6c, 0xbb, 0x34, 0xd6, 0x53, - 0x22, 0x1e, 0x5b, 0x8e, 0x9a, 0x1d, 0xda, 0xe6, 0xc1, 0x97, 0xf9, 0xd7, 0xbc, 0x5e, 0x66, 0x90, - 0x55, 0x0c, 0xb2, 0x17, 0xa0, 0xdc, 0x25, 0x87, 0x62, 0x16, 0x70, 0xb6, 0xd4, 0x25, 0x87, 0x7c, - 0x32, 0x15, 0x15, 0x2a, 0x27, 0x89, 0x0a, 0x33, 0xd3, 0x44, 0x05, 0x6d, 0x1d, 0xca, 0x78, 0x53, - 0xe8, 0xcf, 0x5f, 0x87, 0x02, 0x3a, 0x93, 0x50, 0x95, 0xe6, 0x65, 0x55, 0xe2, 0x6e, 0x48, 0x20, - 0xb0, 0x9a, 0x3d, 0xe1, 0xbd, 0xc5, 0x48, 0xfb, 0x97, 0x02, 0xd5, 0xa8, 0xf0, 0xc1, 0x45, 0xd7, - 0xa0, 0xc2, 0x3d, 0x16, 0x53, 0xa1, 0x70, 0xe5, 0x6b, 0x03, 0x2b, 0x87, 0xf8, 0xf1, 0x48, 0x87, - 0x4e, 0x54, 0x41, 0x35, 0x7e, 0xad, 0x08, 0x46, 0xd9, 0xf0, 0xe5, 0x19, 0xe8, 0xfd, 0xd0, 0x40, - 0x67, 0x01, 0x36, 0xb6, 0x9e, 0x35, 0xf5, 0xe5, 0xb5, 0x27, 0xad, 0xf5, 0xda, 0x2b, 0x6a, 0x19, - 0xf2, 0xfc, 0x53, 0x61, 0xb6, 0xfb, 0xa4, 0xf9, 0x64, 0xa5, 0xa9, 0xd7, 0x32, 0x6a, 0x0d, 0x66, - 0xde, 0x7b, 0xda, 0x5a, 0x6f, 0xeb, 0xcd, 0xaf, 0x6d, 0x35, 0x37, 0x36, 0x6b, 0x59, 0xed, 0x87, - 0x0a, 0x5c, 0x6c, 0x61, 0xda, 0x1b, 0xe6, 0xe2, 0xa9, 0x38, 0xf0, 0x82, 0x79, 0xfc, 0x9b, 0x90, - 0xf7, 0xa8, 0x2f, 0x7a, 0x24, 0xc7, 0xeb, 0x23, 0x47, 0xd4, 0xfe, 0x17, 0x6a, 0xef, 0xb9, 0x96, - 0x33, 0x69, 0xf8, 0xf8, 0x0a, 0x9c, 0x63, 0xe8, 0x9b, 0x6e, 0x1f, 0x0d, 0xdd, 0x09, 0x42, 0x9a, - 0x6b, 0x50, 0x0d, 0x22, 0x60, 0x4c, 0x38, 0x13, 0x03, 0x5b, 0xa6, 0xf6, 0x04, 0xce, 0x3d, 0xb2, - 0x8c, 0xbd, 0xd3, 0xaa, 0x79, 0xff, 0x9e, 0x85, 0xf9, 0x81, 0x30, 0x36, 0x61, 0xfc, 0x62, 0xeb, - 0xba, 0x07, 0x0e, 0x95, 0x5c, 0x4c, 0x11, 0xc7, 0x2d, 0x53, 0xbd, 0x9b, 0x4a, 0x5b, 0x2b, 0x4b, - 0x17, 0x07, 0x04, 0xb9, 0x11, 0x78, 0x96, 0xd3, 0xe1, 0xa2, 0x8c, 0x53, 0xba, 0xb3, 0x90, 0xf7, - 0x0d, 0xd7, 0xa3, 0xe8, 0x80, 0xb2, 0x3a, 0x1f, 0x30, 0xff, 0xe2, 0xf7, 0xb7, 0xf9, 0x44, 0x1e, - 0x27, 0xa2, 0x31, 0xb3, 0x78, 0xa7, 0xdf, 0x6d, 0xf3, 0xc9, 0x02, 0xb7, 0x78, 0xa7, 0xdf, 0xdd, - 0x08, 0x09, 0x23, 0xc7, 0x54, 0x4c, 0x39, 0xa6, 0x94, 0x37, 0x28, 0x9d, 0xc4, 0x1b, 0x94, 0xa7, - 0xca, 0x11, 0xdf, 0x81, 0x0a, 0x3d, 0xec, 0x59, 0x9e, 0xe8, 0x84, 0xc1, 0x78, 0x62, 0x8e, 0x8e, - 0xc4, 0x2a, 0xe4, 0x3c, 0xe2, 0xec, 0xa1, 0xf7, 0xca, 0xea, 0xf8, 0xad, 0x6a, 0x50, 0x65, 0x5e, - 0x2f, 0x96, 0x03, 0xf3, 0x4e, 0x55, 0xbd, 0xd2, 0x25, 0x87, 0xeb, 0x42, 0x14, 0xda, 0x9f, 0x15, - 0x38, 0x37, 0x70, 0xd7, 0xe8, 0x3a, 0xee, 0x40, 0xd1, 0xc3, 0x51, 0xe8, 0x36, 0x12, 0x55, 0xe1, - 0x60, 0x9a, 0x13, 0x62, 0xab, 0x2b, 0x50, 0xe5, 0x1a, 0x10, 0x92, 0x67, 0x26, 0x21, 0x9f, 0x41, - 0x1a, 0x5d, 0xac, 0x91, 0x4a, 0x52, 0xb3, 0xe3, 0x92, 0xd4, 0xdc, 0x40, 0x92, 0xba, 0x88, 0x3a, - 0xbc, 0x3f, 0x71, 0x02, 0xf7, 0x5d, 0x05, 0xce, 0x3c, 0xb6, 0x9c, 0xbd, 0xd3, 0xab, 0xfc, 0xa7, - 0xae, 0xd4, 0x7f, 0xaf, 0x40, 0x83, 0x89, 0x3e, 0x99, 0xba, 0x47, 0xc6, 0x3c, 0xa6, 0xfe, 0x7a, - 0x0b, 0xf2, 0xb6, 0xd5, 0xb5, 0x82, 0x89, 0x1c, 0x2e, 0x62, 0xaa, 0xff, 0x07, 0xc5, 0x1d, 0xd7, - 0x3b, 0x20, 0x9e, 0x29, 0xec, 0xf1, 0x38, 0x2e, 0x43, 0x54, 0x29, 0xfa, 0xe4, 0x12, 0xd1, 0xc7, - 0x83, 0x79, 0xc6, 0x3d, 0x0a, 0xdc, 0x3f, 0xae, 0x28, 0x18, 0x11, 0xbe, 0xe2, 0x13, 0x64, 0x27, - 0x3d, 0x81, 0xb6, 0x04, 0xe7, 0xa2, 0x3d, 0x27, 0xf4, 0x7c, 0xda, 0xc7, 0x0a, 0xdc, 0x64, 0x44, - 0x03, 0x3a, 0xe8, 0x2f, 0x7b, 0x6e, 0xdf, 0x31, 0x9f, 0x72, 0x45, 0x9c, 0x26, 0x6b, 0x57, 0x97, - 0x92, 0xc2, 0x1f, 0xf4, 0x6b, 0x5b, 0x83, 0xd2, 0x97, 0x3d, 0x65, 0x36, 0xe1, 0x29, 0xb5, 0xdf, - 0x29, 0x70, 0x69, 0x38, 0x8b, 0x53, 0xf2, 0x75, 0x01, 0xca, 0xe1, 0x1e, 0xa1, 0x9b, 0x2f, 0x89, - 0x4d, 0xfc, 0x17, 0x90, 0xf7, 0xc8, 0xbb, 0xff, 0x5b, 0x06, 0x54, 0xc6, 0xf0, 0x13, 0x12, 0x18, - 0xbb, 0xb1, 0xca, 0x46, 0x3b, 0x28, 0x13, 0xef, 0x70, 0x1f, 0xaa, 0xa4, 0x1f, 0xec, 0xba, 0x9e, - 0x15, 0x90, 0xc0, 0xda, 0x9f, 0xa4, 0x2d, 0x92, 0x24, 0xc0, 0xbb, 0x20, 0xdb, 0xd4, 0x9e, 0x28, - 0xc6, 0x70, 0x54, 0x2c, 0xa6, 0x2d, 0xa7, 0xed, 0x5b, 0x1f, 0x52, 0x61, 0xb0, 0xc7, 0xf2, 0x5a, - 0xec, 0x5a, 0xce, 0x86, 0xf5, 0x21, 0x45, 0x3a, 0x72, 0xc8, 0xe9, 0xf2, 0x93, 0xd0, 0x91, 0x43, - 0xa4, 0x5b, 0x82, 0xfc, 0x07, 0x7d, 0xea, 0x1d, 0x89, 0xf7, 0x8e, 0x31, 0x3c, 0x22, 0xaa, 0x76, - 0x08, 0x75, 0x26, 0xe2, 0xa1, 0x75, 0xe1, 0x0b, 0x08, 0xfa, 0x75, 0xa8, 0x19, 0xc4, 0xd8, 0xa5, - 0x64, 0xdb, 0xa6, 0xc9, 0x66, 0xc0, 0x5c, 0x04, 0x17, 0xbe, 0xf4, 0x17, 0x0a, 0x2c, 0xb0, 0xad, - 0x87, 0x57, 0x7f, 0xff, 0x05, 0x45, 0x91, 0x49, 0x08, 0x1d, 0x2c, 0xf0, 0x44, 0x22, 0x55, 0x81, - 0x66, 0x06, 0x2a, 0xd0, 0x53, 0xd4, 0xbf, 0x9f, 0x29, 0x70, 0x83, 0x71, 0x28, 0x27, 0x50, 0xa3, - 0x4c, 0x7a, 0x92, 0x94, 0xea, 0xb4, 0x0d, 0xfa, 0xb7, 0x0a, 0x5c, 0x1c, 0xca, 0xdf, 0x54, 0x4c, - 0x7d, 0x5e, 0xd6, 0xfc, 0x97, 0x0c, 0x9c, 0x4f, 0x72, 0x1b, 0xf1, 0xb9, 0x0a, 0xb3, 0x06, 0x09, - 0x68, 0xc7, 0xf5, 0x8e, 0xda, 0x7e, 0x40, 0xbc, 0x50, 0xe3, 0x8e, 0x17, 0x50, 0x35, 0xa4, 0xd9, - 0x60, 0x24, 0xea, 0xbb, 0x30, 0x13, 0x2d, 0x42, 0x1d, 0x73, 0x22, 0x19, 0x57, 0x42, 0x8a, 0xa6, - 0x63, 0xaa, 0xef, 0x00, 0xe0, 0xe6, 0x3c, 0x53, 0xca, 0x4e, 0x40, 0x5e, 0x46, 0x7c, 0x4c, 0x95, - 0xee, 0x40, 0x89, 0x3a, 0x26, 0x27, 0xcd, 0x4d, 0x40, 0x5a, 0xa4, 0x8e, 0x89, 0x84, 0x91, 0x84, - 0x0b, 0x2f, 0x20, 0xe1, 0x52, 0x42, 0xc2, 0x6f, 0xf2, 0xb8, 0xc5, 0x42, 0x56, 0x32, 0x5e, 0x8e, - 0x32, 0x26, 0xed, 0xc7, 0x0a, 0xe4, 0xd1, 0xbb, 0x32, 0x35, 0xeb, 0xb2, 0x0f, 0x29, 0xb4, 0xe1, - 0xb8, 0x65, 0xaa, 0xd7, 0x87, 0x39, 0xcf, 0xd2, 0x69, 0x38, 0x48, 0x15, 0x72, 0x91, 0x73, 0xcc, - 0xeb, 0xf8, 0xad, 0xdd, 0x85, 0x32, 0x72, 0x84, 0xe9, 0xe2, 0x1b, 0xc0, 0xb9, 0xa0, 0x43, 0xeb, - 0x57, 0xc4, 0xd3, 0x43, 0x0c, 0xed, 0xaf, 0x0a, 0xcc, 0xc8, 0x7e, 0x6c, 0xa0, 0x55, 0x51, 0x87, - 0xa2, 0xdf, 0x47, 0x37, 0x13, 0x16, 0x11, 0x62, 0x28, 0x77, 0x77, 0xb3, 0xc9, 0xee, 0xae, 0x2a, - 0x3a, 0xcc, 0x82, 0xc5, 0xc1, 0x26, 0x72, 0x3e, 0xd5, 0x44, 0x4e, 0xa5, 0xfa, 0x85, 0xa9, 0x52, - 0xfd, 0xcb, 0x89, 0x8e, 0x6e, 0x11, 0xe5, 0x2c, 0x77, 0x6d, 0xbf, 0x03, 0x35, 0xf9, 0x84, 0x28, - 0xa3, 0x7b, 0x50, 0x75, 0x64, 0xef, 0x2d, 0x24, 0x95, 0x78, 0x25, 0x90, 0x89, 0xf4, 0x24, 0xfa, - 0x34, 0x2e, 0xfb, 0x19, 0xd4, 0x9f, 0x79, 0x6e, 0xd7, 0x15, 0x1d, 0xcc, 0x53, 0xa8, 0x0a, 0xdf, - 0x87, 0x33, 0x3a, 0x25, 0xe6, 0xc9, 0xdb, 0x8c, 0x92, 0x8a, 0x67, 0x13, 0x2a, 0xfe, 0x2d, 0x58, - 0x18, 0xd8, 0x21, 0x62, 0xfa, 0xde, 0x90, 0x1e, 0xe3, 0x15, 0x59, 0x70, 0x43, 0x98, 0x93, 0x3b, - 0x8c, 0xef, 0x41, 0x56, 0xef, 0x19, 0xc3, 0x14, 0xad, 0x47, 0x8e, 0x6c, 0x97, 0x44, 0xd5, 0xaa, - 0x18, 0x32, 0x51, 0xec, 0x06, 0x41, 0xaf, 0xcd, 0xb8, 0x17, 0x9a, 0xc6, 0xc6, 0x8f, 0xe8, 0x91, - 0xf6, 0x1c, 0x8a, 0x1b, 0xd4, 0xf7, 0xd9, 0xf1, 0x98, 0x3a, 0xa2, 0x52, 0xf0, 0x45, 0x4b, 0x7a, - 0x38, 0x8c, 0x9f, 0xb8, 0x33, 0xd2, 0x13, 0x37, 0x53, 0xc8, 0xbe, 0xd9, 0x6b, 0xf3, 0x99, 0xf0, - 0xed, 0xc6, 0xec, 0x6d, 0xe2, 0xfb, 0xf7, 0x67, 0x19, 0xa8, 0x26, 0x8e, 0x70, 0x8a, 0xd2, 0x65, - 0xfc, 0xec, 0x33, 0x8b, 0x16, 0xbe, 0x9e, 0x0f, 0xe4, 0x9e, 0x6f, 0x3e, 0xd1, 0xf3, 0x55, 0x6f, - 0xc0, 0x5c, 0x8f, 0x7a, 0x5d, 0x0b, 0xcf, 0xd9, 0xf6, 0x28, 0x31, 0x45, 0x1d, 0x3d, 0x1b, 0x83, - 0x99, 0xcc, 0x99, 0x56, 0x4a, 0x88, 0x07, 0x9e, 0x15, 0xf0, 0xa7, 0x95, 0xbc, 0x2e, 0x2d, 0xf0, - 0x75, 0x06, 0xfe, 0xe2, 0x8a, 0x6b, 0xed, 0x00, 0x6a, 0x09, 0xc9, 0x2e, 0x1b, 0x7b, 0xa7, 0xd9, - 0x21, 0x97, 0xc5, 0x9e, 0x4b, 0x28, 0x75, 0x13, 0xe6, 0xd3, 0x1b, 0xfb, 0xea, 0x9b, 0x90, 0x23, - 0xc6, 0x5e, 0xa8, 0xc6, 0x17, 0x65, 0x35, 0x4e, 0x23, 0xeb, 0x88, 0xa9, 0x35, 0x61, 0x36, 0x69, - 0x17, 0xea, 0x6d, 0x28, 0x72, 0xed, 0x0e, 0x97, 0x59, 0x18, 0xb9, 0x8c, 0x1e, 0x62, 0x6a, 0xef, - 0xa7, 0xb8, 0x41, 0xb7, 0xf4, 0x22, 0x2b, 0x8d, 0xec, 0x41, 0xfe, 0x2a, 0x07, 0x10, 0xe7, 0x0d, - 0x03, 0xf6, 0xc6, 0xac, 0xc2, 0x0a, 0x6c, 0x1a, 0x59, 0x05, 0x1b, 0xa4, 0xdb, 0xcc, 0xd9, 0xc1, - 0x36, 0x73, 0x03, 0x4a, 0x61, 0x02, 0x80, 0x02, 0xae, 0xea, 0xd1, 0x98, 0x15, 0xc6, 0xbe, 0xeb, - 0x05, 0x6d, 0xd7, 0x33, 0xa9, 0x87, 0x6a, 0x5c, 0xd5, 0xcb, 0x0c, 0xf2, 0x94, 0x01, 0xa2, 0xd0, - 0x55, 0xc0, 0x09, 0xfc, 0xe6, 0x31, 0x54, 0xe4, 0xed, 0x45, 0x84, 0x47, 0xa9, 0xf9, 0x40, 0xd7, - 0xa4, 0x34, 0xd0, 0x35, 0xc1, 0x7f, 0x34, 0x11, 0xa7, 0x8d, 0xcf, 0xe1, 0xa8, 0x88, 0x25, 0xc6, - 0x8e, 0xd3, 0xc4, 0x7f, 0xf4, 0x5c, 0x02, 0x60, 0xf9, 0x05, 0x31, 0x30, 0x02, 0x03, 0x67, 0x87, - 0x3a, 0xe6, 0x32, 0x02, 0xd8, 0x34, 0xb6, 0x36, 0x78, 0x43, 0xb1, 0xc2, 0xa7, 0x19, 0x44, 0x67, - 0x80, 0x44, 0x6f, 0x6a, 0xe6, 0xf8, 0xde, 0x54, 0x75, 0x2a, 0xf3, 0xf9, 0x52, 0x22, 0x67, 0x9a, - 0x1d, 0x4b, 0x2b, 0x65, 0x4c, 0x6f, 0x4b, 0x19, 0xd3, 0xdc, 0x58, 0xc2, 0x28, 0x5f, 0x6a, 0x40, - 0xc9, 0xec, 0x7b, 0x18, 0xbb, 0xea, 0x35, 0x7e, 0x67, 0xe1, 0x58, 0xdb, 0x86, 0xd9, 0x58, 0x4b, - 0x50, 0x0b, 0xef, 0x42, 0x25, 0x4e, 0x76, 0x43, 0x4d, 0x3c, 0x2f, 0x6b, 0xa2, 0x94, 0x3c, 0xcb, - 0xa8, 0x23, 0x55, 0xf1, 0x4f, 0x0a, 0x9c, 0x4d, 0x27, 0xdc, 0xff, 0x09, 0xad, 0xad, 0x7f, 0x66, - 0xe0, 0xec, 0x16, 0xba, 0x36, 0xd1, 0x7e, 0x0a, 0x63, 0xa4, 0xdc, 0x60, 0x55, 0xa6, 0x6a, 0xb0, - 0xbe, 0x0b, 0x33, 0xa6, 0xe5, 0xf7, 0x6c, 0x72, 0xd4, 0x46, 0xea, 0xcc, 0x04, 0xd4, 0x15, 0x41, - 0xb1, 0x4e, 0xd0, 0x39, 0xcb, 0xef, 0x39, 0x93, 0x24, 0x96, 0xd2, 0x6b, 0xcf, 0x1d, 0xe9, 0x0d, - 0x29, 0x37, 0x01, 0x69, 0xf4, 0xc2, 0x74, 0x17, 0x4a, 0xb6, 0xcb, 0xb3, 0x23, 0x51, 0x7e, 0x8f, - 0x39, 0x70, 0x88, 0xcd, 0x28, 0x99, 0x3a, 0x7f, 0xe8, 0x3a, 0x74, 0xa2, 0x1a, 0x3c, 0xc2, 0xd6, - 0xfe, 0x90, 0x01, 0x95, 0x4b, 0x7f, 0xc2, 0xd6, 0x22, 0xf3, 0xf6, 0x13, 0x0b, 0x95, 0x77, 0xc8, - 0xee, 0x0d, 0xfa, 0xc3, 0xf1, 0xb7, 0x21, 0x79, 0xcb, 0x17, 0x16, 0x68, 0xf2, 0x1a, 0xf3, 0xd3, - 0x5d, 0x63, 0xf8, 0x68, 0x57, 0x98, 0xec, 0xd1, 0x4e, 0xfb, 0x49, 0x0e, 0x72, 0xf8, 0xa2, 0x94, - 0x0e, 0x12, 0xf2, 0xbf, 0x3b, 0x32, 0xa9, 0x7f, 0x77, 0xbc, 0x9a, 0xd2, 0xd4, 0x30, 0x56, 0x48, - 0xba, 0x38, 0xe6, 0x7f, 0x03, 0xc7, 0xbf, 0x58, 0x46, 0xfa, 0x24, 0x5e, 0x2c, 0x23, 0x8d, 0x69, - 0x48, 0x1a, 0x23, 0x1e, 0x0d, 0xc2, 0x71, 0xc2, 0x69, 0x97, 0x52, 0x4e, 0xfb, 0x0a, 0x54, 0xa4, - 0x27, 0x5b, 0x8c, 0x16, 0x65, 0x1d, 0xe2, 0x17, 0x5b, 0x16, 0x4c, 0xb8, 0xa4, 0xd8, 0x34, 0x70, - 0x6a, 0x0e, 0x68, 0x99, 0xea, 0x35, 0xa8, 0x76, 0x48, 0x97, 0x1a, 0x18, 0x6a, 0x18, 0x42, 0x85, - 0xf7, 0x05, 0x62, 0x20, 0xcf, 0xda, 0xfd, 0x80, 0x12, 0xfc, 0x7f, 0xed, 0x8c, 0x28, 0x97, 0xd8, - 0xb8, 0x85, 0xcd, 0x5a, 0xd7, 0xb1, 0x2d, 0x87, 0x47, 0x8b, 0x92, 0x2e, 0x46, 0xa9, 0x07, 0xd3, - 0xd9, 0xf4, 0x83, 0x69, 0x2a, 0xd2, 0xcc, 0x9d, 0x24, 0x51, 0xab, 0x4d, 0x95, 0xa8, 0x7d, 0x2f, - 0x03, 0xd5, 0xa8, 0x2c, 0x0e, 0xdf, 0x30, 0x31, 0xb5, 0x4a, 0xbc, 0x8e, 0x5e, 0x4b, 0x3f, 0x3b, - 0x46, 0xf8, 0xf1, 0x48, 0x87, 0x7e, 0x54, 0x5f, 0x37, 0x3e, 0x55, 0xa0, 0x1c, 0xcd, 0xa8, 0x37, - 0x20, 0x8f, 0xcb, 0x09, 0x37, 0x39, 0xe4, 0xad, 0x95, 0xcf, 0x7f, 0x31, 0xcf, 0x98, 0xb7, 0x20, - 0x8f, 0x05, 0x9b, 0xfa, 0xdf, 0x90, 0x97, 0x1f, 0x6e, 0x07, 0xdf, 0x5a, 0xf9, 0xb4, 0xf6, 0x51, - 0x06, 0x2e, 0x61, 0x86, 0x7d, 0xc2, 0x7f, 0x9f, 0xa8, 0xdf, 0x80, 0x02, 0x0f, 0x6d, 0xe2, 0xbc, - 0xf7, 0xe5, 0x1d, 0x8f, 0xdd, 0x61, 0x30, 0xee, 0x21, 0xba, 0x2e, 0xd6, 0x6b, 0xec, 0xc0, 0xf9, - 0xe1, 0x18, 0xf1, 0xe3, 0x9e, 0x32, 0xea, 0x71, 0x2f, 0x93, 0x7a, 0xdc, 0x93, 0xcd, 0x2d, 0x9b, - 0x34, 0x37, 0xed, 0x07, 0x19, 0x50, 0x71, 0xdd, 0x93, 0x16, 0x52, 0x51, 0xbd, 0x94, 0x1d, 0x51, - 0x2f, 0xe5, 0x92, 0x15, 0xc0, 0xda, 0x60, 0xbd, 0x34, 0x41, 0x47, 0x38, 0x5d, 0x4c, 0x3d, 0x18, - 0x52, 0x4c, 0x4d, 0xd0, 0x6e, 0x4a, 0x57, 0x5a, 0xda, 0x73, 0x68, 0x0c, 0x4a, 0xc1, 0x8f, 0x13, - 0x85, 0x54, 0xc6, 0x7f, 0x79, 0xe0, 0x9e, 0x47, 0x14, 0x10, 0xdf, 0xcf, 0xc0, 0x45, 0x9c, 0x4f, - 0x27, 0x56, 0x53, 0x35, 0x32, 0x9f, 0xa7, 0xd4, 0xec, 0xde, 0xc0, 0xf6, 0x23, 0x96, 0x5f, 0x4c, - 0xc3, 0x93, 0x4a, 0x46, 0xe1, 0xdc, 0x50, 0x84, 0xd3, 0xd5, 0xb1, 0x95, 0xaf, 0xc2, 0x82, 0xe1, - 0x76, 0x17, 0x77, 0xa9, 0xe7, 0x5a, 0x86, 0x4d, 0xb6, 0x7d, 0x89, 0xfd, 0x95, 0xf2, 0x3a, 0x7e, - 0x2f, 0xf7, 0xac, 0x67, 0xca, 0x37, 0xb3, 0xa4, 0x67, 0xfd, 0x32, 0x93, 0x5b, 0x7f, 0xf4, 0x6c, - 0xe5, 0x37, 0x99, 0x02, 0x9f, 0xd9, 0x2e, 0xe0, 0x0d, 0xde, 0xfe, 0x77, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x94, 0xce, 0xfb, 0xd8, 0x09, 0x32, 0x00, 0x00, + 0xd5, 0xdb, 0xbe, 0xfb, 0x78, 0x3c, 0xe3, 0x54, 0x2e, 0x9f, 0xe3, 0x5c, 0xb7, 0x93, 0xfd, 0x92, + 0xd5, 0x7e, 0xdf, 0x64, 0x77, 0xf2, 0xed, 0x97, 0xc0, 0x42, 0x36, 0x73, 0x71, 0x22, 0x6f, 0x92, + 0x49, 0xe8, 0x99, 0x09, 0x08, 0x1e, 0xbc, 0x35, 0xdd, 0x35, 0x9e, 0x66, 0xda, 0xdd, 0xde, 0xee, + 0xf6, 0x5c, 0x56, 0xf0, 0x00, 0x42, 0x62, 0x9f, 0x10, 0xe2, 0x89, 0x17, 0x60, 0x85, 0x10, 0xda, + 0x05, 0x89, 0x5f, 0xc0, 0x3b, 0xef, 0x08, 0x10, 0x6f, 0xc0, 0x23, 0x12, 0xff, 0x00, 0x09, 0xa1, + 0x3a, 0x55, 0xdd, 0xae, 0x6e, 0xdb, 0x33, 0x76, 0x66, 0xb2, 0x2b, 0xf1, 0x62, 0x75, 0x9d, 0x3a, + 0xa7, 0xea, 0xd4, 0xa9, 0x73, 0x2f, 0x43, 0x95, 0xf6, 0xec, 0x5b, 0xb4, 0x67, 0xcf, 0xf7, 0x7c, + 0x2f, 0xf4, 0x08, 0xb8, 0x74, 0x87, 0x76, 0xe9, 0x3c, 0xed, 0xd9, 0x8d, 0x2b, 0x1d, 0xcf, 0xeb, + 0x38, 0xec, 0x16, 0xce, 0x6c, 0xf6, 0xb7, 0x6e, 0x85, 0x76, 0x97, 0x05, 0x21, 0xed, 0xf6, 0x04, + 0x72, 0xe3, 0x72, 0x1a, 0x61, 0xcf, 0xa7, 0xbd, 0x1e, 0xf3, 0x03, 0x31, 0xaf, 0xff, 0x43, 0x83, + 0xe2, 0xa2, 0x69, 0x7a, 0x7d, 0x37, 0x24, 0xd7, 0x21, 0xd7, 0x0f, 0x98, 0x5f, 0xd7, 0xae, 0x6a, + 0x37, 0x2b, 0x0b, 0xb5, 0xf9, 0xc1, 0x3e, 0xf3, 0x1b, 0x01, 0xf3, 0x0d, 0x9c, 0x25, 0xe7, 0xa0, + 0xb0, 0x47, 0x1d, 0x87, 0x85, 0xf5, 0xcc, 0x55, 0xed, 0x66, 0xd9, 0x90, 0x23, 0x72, 0x06, 0xf2, + 0xac, 0x4b, 0x6d, 0xa7, 0x9e, 0x45, 0xb0, 0x18, 0x90, 0xdb, 0x50, 0xb4, 0xd8, 0xae, 0x6d, 0xb2, + 0xa0, 0x9e, 0xbb, 0x9a, 0xbd, 0x59, 0x59, 0x38, 0xaf, 0x2e, 0x2b, 0x77, 0x5e, 0x41, 0x0c, 0x23, + 0xc2, 0x24, 0x17, 0xa0, 0x6c, 0xf6, 0x83, 0xd0, 0xeb, 0xb6, 0x6d, 0xab, 0x9e, 0xc7, 0xe5, 0x4a, + 0x02, 0xd0, 0xb2, 0xc8, 0x3b, 0x50, 0xd9, 0x65, 0xbe, 0xbd, 0x75, 0xd0, 0xe6, 0x67, 0xad, 0x17, + 0x90, 0xd9, 0xc6, 0xbc, 0x38, 0xe7, 0x7c, 0x74, 0xce, 0xf9, 0xf5, 0x48, 0x10, 0x06, 0x08, 0x74, + 0x0e, 0xd0, 0xaf, 0x40, 0x55, 0xee, 0xb9, 0x8c, 0xeb, 0x91, 0x59, 0xc8, 0xd8, 0x16, 0x9e, 0xb8, + 0x6c, 0x64, 0x6c, 0x4b, 0x41, 0x10, 0x4c, 0x0d, 0x21, 0xdc, 0x87, 0x19, 0x89, 0xd0, 0xc4, 0x03, + 0xc6, 0xc7, 0xd6, 0xd4, 0x63, 0x37, 0xa0, 0xd4, 0xa3, 0x41, 0xb0, 0xe7, 0xf9, 0x96, 0x14, 0x53, + 0x3c, 0xd6, 0x6f, 0xc0, 0x9c, 0x5c, 0xe1, 0x01, 0x35, 0xd9, 0xa6, 0xe7, 0xed, 0xf0, 0x45, 0x42, + 0x6f, 0x87, 0xb9, 0xd1, 0x22, 0x38, 0xd0, 0x7f, 0xaf, 0xc1, 0x29, 0x89, 0xf9, 0x90, 0x76, 0xd9, + 0x32, 0x73, 0x43, 0xe6, 0x73, 0xe1, 0xf4, 0x1c, 0x7a, 0xc0, 0xfc, 0x76, 0xcc, 0x57, 0x49, 0x00, + 0x5a, 0x16, 0x9f, 0xdc, 0xec, 0xbb, 0x96, 0xc3, 0xf8, 0xa4, 0xdc, 0x58, 0x00, 0x5a, 0x16, 0x79, + 0x03, 0x4e, 0xc5, 0xea, 0xd1, 0x0e, 0x98, 0xe9, 0xb9, 0x56, 0x80, 0xb7, 0x95, 0x35, 0x6a, 0xf1, + 0xc4, 0x9a, 0x80, 0x13, 0x02, 0xb9, 0x80, 0x3a, 0x61, 0x3d, 0x87, 0x8b, 0xe0, 0x37, 0xb9, 0x08, + 0xe5, 0xc0, 0xee, 0xb8, 0x34, 0xec, 0xfb, 0x4c, 0xde, 0xcb, 0x00, 0x40, 0xae, 0xc3, 0x6c, 0xaf, + 0xbf, 0xe9, 0xd8, 0x66, 0x7b, 0x87, 0x1d, 0xb4, 0xfb, 0xbe, 0x83, 0x77, 0x53, 0x36, 0x66, 0x04, + 0xf4, 0x11, 0x3b, 0xd8, 0xf0, 0x1d, 0xfd, 0xb5, 0x58, 0xc0, 0x0f, 0xf1, 0xc6, 0xc6, 0x9c, 0xfd, + 0x7a, 0x2c, 0xe6, 0xb5, 0x90, 0xd1, 0xee, 0x18, 0xac, 0x65, 0x38, 0xb5, 0x68, 0x59, 0x0f, 0x7c, + 0x9b, 0xb9, 0x56, 0x60, 0xb0, 0x0f, 0xfa, 0x2c, 0x08, 0x49, 0x0d, 0xb2, 0xb6, 0x15, 0xd4, 0xb5, + 0xab, 0xd9, 0x9b, 0x65, 0x83, 0x7f, 0x72, 0xbe, 0xb9, 0xea, 0xba, 0xb4, 0xcb, 0x82, 0x7a, 0x06, + 0xe1, 0x03, 0x80, 0xfe, 0x18, 0xce, 0x2c, 0x5a, 0xd6, 0x43, 0xdf, 0xeb, 0xf7, 0xb8, 0x9a, 0xc7, + 0xeb, 0x9c, 0x87, 0x52, 0x87, 0x03, 0x07, 0x72, 0x2e, 0xe2, 0xb8, 0x65, 0xf1, 0x29, 0x4e, 0xdf, + 0xe6, 0xfb, 0x88, 0xf5, 0x8a, 0x7c, 0xdc, 0xb2, 0x02, 0xfd, 0x63, 0x0d, 0xce, 0x2f, 0xf6, 0xc3, + 0x6d, 0xe6, 0x86, 0xb6, 0x49, 0x43, 0x26, 0xf4, 0x2c, 0x5a, 0xf3, 0x36, 0x14, 0xa9, 0x38, 0x96, + 0xb4, 0xb2, 0x51, 0xe6, 0x20, 0x49, 0x22, 0x4c, 0xb2, 0x00, 0x05, 0xd3, 0x67, 0x34, 0x64, 0x78, + 0xa3, 0xa3, 0x94, 0x7d, 0xc9, 0xf3, 0x9c, 0xe7, 0xd4, 0xe9, 0x33, 0x43, 0x62, 0x72, 0x05, 0x8c, + 0x4e, 0x28, 0x0d, 0x32, 0x1e, 0x0f, 0xb1, 0x28, 0xcd, 0x6f, 0x1a, 0x16, 0x23, 0x8b, 0x7d, 0x59, + 0x2c, 0xfe, 0x54, 0x83, 0xba, 0xca, 0x22, 0xda, 0x5a, 0xc4, 0xe1, 0x42, 0x9a, 0xc3, 0xfa, 0x08, + 0x0e, 0x05, 0xc5, 0x4b, 0x63, 0xf0, 0x0f, 0x1a, 0x5c, 0x50, 0x19, 0x8c, 0x4c, 0x39, 0xe2, 0xf1, + 0xed, 0x34, 0x8f, 0x17, 0x46, 0xf0, 0x18, 0x13, 0xbd, 0x2c, 0x36, 0xc9, 0x3c, 0xe4, 0x82, 0x03, + 0xd7, 0x44, 0x2b, 0x3e, 0x7c, 0x35, 0xc4, 0xd3, 0x3f, 0xd1, 0xe0, 0x92, 0x7a, 0xac, 0x81, 0xdf, + 0x89, 0x0e, 0x76, 0x27, 0x7d, 0xb0, 0x4b, 0x23, 0x0e, 0xa6, 0x90, 0x7d, 0x66, 0x5a, 0x2c, 0xdc, + 0xc9, 0x54, 0x5a, 0x2c, 0x49, 0x3e, 0x33, 0x2d, 0x46, 0x57, 0x36, 0x95, 0x16, 0x0b, 0x8a, 0x97, + 0xc6, 0x60, 0x13, 0x4e, 0x2f, 0x39, 0x9e, 0xb9, 0x73, 0x4c, 0x0f, 0xfa, 0x51, 0x16, 0x66, 0x97, + 0xb7, 0xa9, 0xeb, 0x32, 0xe7, 0x09, 0x0b, 0x02, 0xda, 0x61, 0xe4, 0x12, 0x80, 0x29, 0x20, 0x03, + 0xf7, 0x59, 0x96, 0x90, 0x96, 0xc5, 0xa7, 0xbb, 0x02, 0x73, 0x10, 0xa8, 0xca, 0x12, 0xd2, 0xb2, + 0xc8, 0x2d, 0xc8, 0x99, 0x9e, 0x25, 0xf8, 0xe5, 0xa6, 0x93, 0x3e, 0x65, 0xcb, 0x0d, 0x6f, 0x2f, + 0x48, 0xbd, 0xe5, 0x88, 0x3c, 0xee, 0x05, 0xcc, 0xb5, 0x44, 0x50, 0x14, 0x21, 0xab, 0x24, 0x00, + 0x2d, 0x2b, 0x21, 0x81, 0x7c, 0xca, 0x40, 0xea, 0x50, 0x34, 0x3d, 0x37, 0x64, 0x6e, 0x28, 0xa3, + 0x55, 0x34, 0xe4, 0x79, 0x86, 0x90, 0xa0, 0xc8, 0x33, 0x8a, 0x47, 0xe7, 0x19, 0x02, 0x9d, 0x03, + 0x38, 0x71, 0xbf, 0x67, 0xc5, 0xc4, 0xa5, 0xa3, 0x89, 0x05, 0x3a, 0x12, 0x7f, 0x11, 0x80, 0x67, + 0x68, 0x76, 0x80, 0x6c, 0x95, 0x8f, 0xbc, 0x69, 0x05, 0x5b, 0xff, 0x81, 0x06, 0x24, 0x79, 0x15, + 0x8f, 0xed, 0x20, 0x24, 0xff, 0x0f, 0x25, 0x29, 0x5d, 0x71, 0xad, 0x7c, 0x41, 0x45, 0xdb, 0x92, + 0x14, 0x46, 0x8c, 0x4b, 0xae, 0x40, 0xc5, 0x65, 0xfb, 0x61, 0xdb, 0xec, 0xfb, 0x81, 0xe7, 0xcb, + 0x8b, 0x02, 0x0e, 0x5a, 0x46, 0x08, 0x47, 0xe8, 0xf9, 0x6c, 0x37, 0x42, 0x10, 0x0a, 0x06, 0x1c, + 0x24, 0x10, 0xf4, 0x1f, 0x73, 0x86, 0x50, 0x30, 0x18, 0x61, 0x23, 0x15, 0x23, 0x90, 0xc3, 0xfb, + 0x10, 0x9a, 0x81, 0xdf, 0xe4, 0x2a, 0x54, 0x2c, 0x16, 0x98, 0xbe, 0xdd, 0x0b, 0x6d, 0xcf, 0x95, + 0x9b, 0xa9, 0x20, 0x1e, 0x77, 0x1d, 0xea, 0x76, 0xda, 0x21, 0xed, 0xc8, 0xad, 0x8a, 0x7c, 0xbc, + 0x4e, 0x3b, 0x5c, 0xa3, 0xe8, 0x2e, 0x0d, 0xa9, 0x8f, 0x99, 0x87, 0x50, 0x81, 0xb2, 0x80, 0x6c, + 0xf8, 0x0e, 0xdf, 0xcf, 0xeb, 0x31, 0x17, 0xef, 0xbf, 0x64, 0xe0, 0xb7, 0xfe, 0x00, 0xce, 0xac, + 0x30, 0x87, 0x85, 0xec, 0x98, 0xea, 0x7f, 0x0b, 0x88, 0x58, 0x27, 0x71, 0xc2, 0xf1, 0xe9, 0x83, + 0xfe, 0x10, 0x2e, 0x0b, 0x82, 0xc7, 0x8c, 0x5a, 0xcc, 0xdf, 0xf4, 0xa8, 0x6f, 0x19, 0xcc, 0xf4, + 0xf8, 0xaf, 0x20, 0x7e, 0x0d, 0x66, 0x9d, 0xc1, 0xdc, 0x60, 0x89, 0xaa, 0x02, 0x6d, 0x59, 0xfa, + 0x3c, 0x34, 0xc4, 0x42, 0xab, 0x5e, 0x68, 0x6f, 0x71, 0x1f, 0x63, 0x7b, 0xee, 0xf8, 0x73, 0xe8, + 0x26, 0x9c, 0x15, 0xf8, 0x6b, 0xa1, 0xe7, 0xd3, 0x0e, 0x7b, 0xba, 0xf9, 0x4d, 0x66, 0x86, 0x2d, + 0x8b, 0x5c, 0x06, 0x30, 0x3d, 0xc7, 0x61, 0x26, 0x4a, 0x5e, 0xec, 0xa5, 0x40, 0xf8, 0x52, 0x3b, + 0xec, 0x40, 0x5e, 0x09, 0xff, 0xe4, 0x86, 0xb3, 0xcb, 0xd5, 0xce, 0x73, 0xa3, 0x9b, 0x90, 0x43, + 0xbd, 0x0d, 0x17, 0x46, 0x6c, 0x12, 0x73, 0x75, 0x1f, 0xc0, 0x43, 0x48, 0x3b, 0x62, 0xae, 0xb2, + 0xf0, 0xaa, 0xaa, 0x8c, 0x23, 0x39, 0x34, 0xca, 0x9e, 0xfc, 0x0a, 0xf4, 0x4f, 0x35, 0x28, 0x88, + 0x2b, 0x9b, 0xb0, 0x64, 0x79, 0x0b, 0xf2, 0x41, 0x38, 0xf0, 0x9a, 0x87, 0xfa, 0x13, 0x81, 0xa9, + 0x3f, 0x80, 0xfc, 0x1a, 0xff, 0x20, 0x00, 0x85, 0x07, 0x46, 0xab, 0xb9, 0xba, 0x52, 0x7b, 0x85, + 0xcc, 0x41, 0xa5, 0xb5, 0xfa, 0xbc, 0xb5, 0xde, 0x6c, 0xaf, 0x35, 0x57, 0xd7, 0x6b, 0x1a, 0x39, + 0x0d, 0x73, 0x12, 0x60, 0x34, 0x97, 0x9b, 0xad, 0xe7, 0xcd, 0x95, 0x5a, 0x86, 0x54, 0xa0, 0xb8, + 0xf4, 0xf8, 0xe9, 0xf2, 0xa3, 0xe6, 0x4a, 0x2d, 0xab, 0xdf, 0x81, 0xa2, 0xd4, 0x2e, 0xf2, 0x3f, + 0x50, 0xdc, 0x12, 0x9f, 0xf2, 0xd4, 0x44, 0x65, 0x57, 0x60, 0x19, 0x11, 0x8a, 0x6e, 0xc1, 0xdc, + 0x43, 0x16, 0x26, 0x12, 0xd2, 0x29, 0xf5, 0x92, 0xbc, 0x0a, 0x33, 0x5b, 0x32, 0xc3, 0x40, 0x59, + 0x67, 0x11, 0xa1, 0x12, 0xc1, 0xb8, 0x28, 0x3f, 0xc9, 0x42, 0x1e, 0xb5, 0x36, 0x5d, 0xe7, 0xa0, + 0x03, 0xe7, 0x66, 0xeb, 0xf9, 0x8a, 0x87, 0x96, 0x90, 0x96, 0x15, 0xdb, 0x6f, 0x76, 0xbc, 0xfd, + 0xe6, 0x0e, 0xb7, 0xdf, 0x7c, 0xd2, 0x7e, 0x1b, 0xdc, 0x43, 0x85, 0xd4, 0xa2, 0x21, 0x95, 0x9e, + 0x38, 0x1e, 0xa7, 0x6c, 0xbb, 0x98, 0xb6, 0xed, 0x79, 0x69, 0xdb, 0xa5, 0xa3, 0x93, 0x1c, 0x8e, + 0xc7, 0x97, 0x63, 0x56, 0x87, 0xb5, 0x45, 0xf0, 0xe5, 0xfe, 0x35, 0x6f, 0x94, 0x39, 0x64, 0x19, + 0x83, 0xec, 0x05, 0x28, 0x77, 0xe9, 0xbe, 0x9c, 0x05, 0x9c, 0x2d, 0x75, 0xe9, 0xbe, 0x98, 0x4c, + 0x45, 0x85, 0xca, 0x71, 0xa2, 0xc2, 0xcc, 0x34, 0x51, 0x41, 0x5f, 0x85, 0x32, 0xde, 0x14, 0xfa, + 0xf3, 0xd7, 0xa1, 0x80, 0xce, 0x24, 0x52, 0xa5, 0x53, 0xaa, 0x2a, 0x09, 0x37, 0x24, 0x11, 0x78, + 0xbd, 0x9e, 0xf0, 0xde, 0x72, 0xa4, 0xff, 0x4b, 0x83, 0x6a, 0x5c, 0xf4, 0xe0, 0xa2, 0x2b, 0x50, + 0x11, 0x1e, 0x8b, 0xab, 0x50, 0xb4, 0xf2, 0xb5, 0xa1, 0x95, 0x23, 0xfc, 0xc1, 0xc8, 0x80, 0x4e, + 0x5c, 0x3d, 0x35, 0x7e, 0xa9, 0x49, 0x46, 0xf9, 0xf0, 0xe5, 0x19, 0xe8, 0xfd, 0xc8, 0x40, 0x67, + 0x01, 0xd6, 0x36, 0x9e, 0x35, 0x8d, 0xc5, 0x95, 0x27, 0xad, 0xd5, 0xda, 0x2b, 0xa4, 0x0c, 0x79, + 0xf1, 0xa9, 0x71, 0xdb, 0x7d, 0xd2, 0x7c, 0xb2, 0xd4, 0x34, 0x6a, 0x19, 0x52, 0x83, 0x99, 0xf7, + 0x9e, 0xb6, 0x56, 0xdb, 0x46, 0xf3, 0x2b, 0x1b, 0xcd, 0xb5, 0xf5, 0x5a, 0x56, 0xff, 0xbe, 0x06, + 0x17, 0x5b, 0xdd, 0x9e, 0xe7, 0xc7, 0x79, 0x78, 0x2a, 0x0e, 0xbc, 0x60, 0x0e, 0xff, 0x26, 0xe4, + 0x7d, 0x16, 0xc8, 0xfe, 0xc8, 0xe1, 0xfa, 0x28, 0x10, 0xf5, 0xff, 0x85, 0xda, 0x7b, 0x9e, 0xed, + 0x4e, 0x1a, 0x3e, 0xbe, 0x04, 0x67, 0x39, 0xfa, 0xba, 0xd7, 0x47, 0x43, 0x77, 0xc3, 0x88, 0xe6, + 0x1a, 0x54, 0xc3, 0x18, 0x38, 0x20, 0x9c, 0x19, 0x00, 0x5b, 0x96, 0xfe, 0x04, 0xce, 0x3e, 0xb2, + 0xcd, 0x9d, 0x93, 0xaa, 0x77, 0xff, 0x9e, 0x85, 0x53, 0x43, 0x61, 0x6c, 0xc2, 0xf8, 0xc5, 0xd7, + 0xf5, 0xf6, 0x5c, 0xa6, 0xb8, 0x98, 0x22, 0x8e, 0x5b, 0x16, 0xb9, 0x9b, 0x4a, 0x5b, 0x2b, 0x0b, + 0x17, 0x87, 0x04, 0xb9, 0x16, 0xfa, 0xb6, 0xdb, 0x11, 0xa2, 0x1c, 0xa4, 0x74, 0x67, 0x20, 0x1f, + 0x98, 0x9e, 0xcf, 0xd0, 0x01, 0x65, 0x0d, 0x31, 0xe0, 0xfe, 0x25, 0xe8, 0x6f, 0x8a, 0x89, 0x3c, + 0x4e, 0xc4, 0x63, 0x6e, 0xf1, 0x6e, 0xbf, 0xdb, 0x16, 0x93, 0x05, 0x61, 0xf1, 0x6e, 0xbf, 0xbb, + 0x16, 0x11, 0xc6, 0x8e, 0xa9, 0x98, 0x72, 0x4c, 0x29, 0x6f, 0x50, 0x3a, 0x8e, 0x37, 0x28, 0x4f, + 0x95, 0x23, 0xbe, 0x03, 0x15, 0xb6, 0xdf, 0xb3, 0x7d, 0xd9, 0x05, 0x83, 0xa3, 0x89, 0x05, 0x3a, + 0x12, 0x13, 0xc8, 0xf9, 0xd4, 0xdd, 0x41, 0xef, 0x95, 0x35, 0xf0, 0x9b, 0xe8, 0x50, 0xe5, 0x5e, + 0x6f, 0x20, 0x07, 0xee, 0x9d, 0xaa, 0x46, 0xa5, 0x4b, 0xf7, 0x57, 0xa5, 0x28, 0xf4, 0x3f, 0x69, + 0x70, 0x76, 0xe8, 0xae, 0xd1, 0x75, 0xdc, 0x81, 0xa2, 0x8f, 0xa3, 0xc8, 0x6d, 0x24, 0xaa, 0xc2, + 0xe1, 0x34, 0x27, 0xc2, 0x26, 0x4b, 0x50, 0x15, 0x1a, 0x10, 0x91, 0x67, 0x26, 0x21, 0x9f, 0x41, + 0x1a, 0x43, 0xae, 0x91, 0x4a, 0x52, 0xb3, 0x47, 0x25, 0xa9, 0xb9, 0xa1, 0x24, 0x75, 0x1e, 0x75, + 0x78, 0x77, 0xe2, 0x04, 0xee, 0x5b, 0x70, 0xfa, 0xb1, 0xed, 0xee, 0x9c, 0x50, 0xd1, 0x3f, 0x6d, + 0x91, 0xfe, 0x5b, 0x0d, 0x1a, 0x5c, 0xea, 0xc9, 0xac, 0x3d, 0xb6, 0xe3, 0x23, 0x4a, 0xaf, 0xb7, + 0x20, 0xef, 0xd8, 0x5d, 0x3b, 0x9c, 0xc8, 0xd7, 0x22, 0x26, 0xf9, 0x3f, 0x28, 0x6e, 0x79, 0xfe, + 0x1e, 0xf5, 0x2d, 0x69, 0x8a, 0x87, 0xf1, 0x18, 0xa1, 0x2a, 0x81, 0x27, 0x97, 0x08, 0x3c, 0x3e, + 0x9c, 0xe2, 0xdc, 0xa3, 0xac, 0x83, 0xc3, 0xea, 0x81, 0x31, 0x91, 0x6b, 0x70, 0x82, 0xec, 0xa4, + 0x27, 0xd0, 0x17, 0xe0, 0x6c, 0xbc, 0xe7, 0x84, 0x4e, 0x4f, 0xff, 0x58, 0x83, 0x9b, 0x9c, 0x68, + 0x48, 0xfd, 0x82, 0x45, 0xdf, 0xeb, 0xbb, 0xd6, 0x53, 0xa1, 0x83, 0xd3, 0x24, 0xec, 0x64, 0x21, + 0x29, 0xfc, 0x61, 0x97, 0xb6, 0x31, 0x2c, 0x7d, 0xd5, 0x49, 0x66, 0x13, 0x4e, 0x52, 0xff, 0x8d, + 0x06, 0x97, 0x46, 0xb3, 0x38, 0x25, 0x5f, 0x17, 0xa0, 0x1c, 0xed, 0x11, 0x79, 0xf8, 0x92, 0xdc, + 0x24, 0x78, 0x01, 0x79, 0x8f, 0xbd, 0xfb, 0xbf, 0x65, 0x80, 0x70, 0x86, 0x9f, 0xd0, 0xd0, 0xdc, + 0x1e, 0xa8, 0x6c, 0xbc, 0x83, 0x36, 0xf1, 0x0e, 0xf7, 0xa1, 0x4a, 0xfb, 0xe1, 0xb6, 0xe7, 0xdb, + 0x21, 0x0d, 0xed, 0xdd, 0x49, 0x3a, 0x22, 0x49, 0x02, 0xbc, 0x0b, 0xba, 0xc9, 0x9c, 0x89, 0xc2, + 0x8b, 0x40, 0xc5, 0x3a, 0xda, 0x76, 0xdb, 0x81, 0xfd, 0x21, 0x93, 0xe6, 0x7a, 0x28, 0xaf, 0xc5, + 0xae, 0xed, 0xae, 0xd9, 0x1f, 0x32, 0xa4, 0xa3, 0xfb, 0x82, 0x2e, 0x3f, 0x09, 0x1d, 0xdd, 0x47, + 0xba, 0x05, 0xc8, 0x7f, 0xd0, 0x67, 0xfe, 0x81, 0x7c, 0xe6, 0x38, 0x82, 0x47, 0x44, 0xd5, 0xf7, + 0xa1, 0xce, 0x45, 0x3c, 0xb2, 0x24, 0x7c, 0x01, 0x41, 0xbf, 0x0e, 0x35, 0x93, 0x9a, 0xdb, 0x8c, + 0x6e, 0x3a, 0x2c, 0xd9, 0x07, 0x98, 0x8b, 0xe1, 0xd2, 0x8d, 0xfe, 0x4c, 0x83, 0xf3, 0x7c, 0xeb, + 0xd1, 0x85, 0xdf, 0x7f, 0x41, 0x51, 0x26, 0x11, 0x52, 0x07, 0x0b, 0x22, 0x87, 0x48, 0x15, 0x9f, + 0x99, 0xa1, 0xe2, 0xf3, 0x04, 0xf5, 0xef, 0x27, 0x1a, 0xdc, 0xe0, 0x1c, 0xaa, 0xb9, 0xd3, 0x38, + 0x93, 0x9e, 0x24, 0x9b, 0x3a, 0x69, 0x83, 0xfe, 0xb5, 0x06, 0x17, 0x47, 0xf2, 0x37, 0x15, 0x53, + 0x9f, 0x95, 0x35, 0xff, 0x25, 0x03, 0xe7, 0x92, 0xdc, 0xc6, 0x7c, 0x2e, 0xc3, 0xac, 0x49, 0x43, + 0xd6, 0xf1, 0xfc, 0x83, 0x76, 0x10, 0x52, 0x3f, 0xd2, 0xb8, 0xc3, 0x05, 0x54, 0x8d, 0x68, 0xd6, + 0x38, 0x09, 0x79, 0x17, 0x66, 0xe2, 0x45, 0x98, 0x6b, 0x4d, 0x24, 0xe3, 0x4a, 0x44, 0xd1, 0x74, + 0x2d, 0xf2, 0x0e, 0x00, 0x6e, 0x2e, 0x92, 0xa4, 0xec, 0x04, 0xe4, 0x65, 0xc4, 0xc7, 0x2c, 0xe9, + 0x0e, 0x94, 0x98, 0x6b, 0x09, 0xd2, 0xdc, 0x04, 0xa4, 0x45, 0xe6, 0x5a, 0x48, 0x18, 0x4b, 0xb8, + 0xf0, 0x02, 0x12, 0x2e, 0x25, 0x24, 0xfc, 0xa6, 0x88, 0x5b, 0x3c, 0x64, 0x25, 0xe3, 0xe5, 0x38, + 0x63, 0xd2, 0x7f, 0xa8, 0x41, 0x1e, 0xbd, 0x2b, 0x57, 0xb3, 0x2e, 0xff, 0x50, 0x42, 0x1b, 0x8e, + 0x5b, 0x16, 0xb9, 0x3e, 0xca, 0x79, 0x96, 0x4e, 0xc2, 0x41, 0x12, 0xc8, 0xc5, 0xce, 0x31, 0x6f, + 0xe0, 0xb7, 0x7e, 0x17, 0xca, 0xc8, 0x11, 0x66, 0x8a, 0x6f, 0x80, 0xe0, 0x82, 0x8d, 0x2c, 0x5d, + 0x11, 0xcf, 0x88, 0x30, 0xf4, 0xbf, 0x6a, 0x30, 0xa3, 0xfa, 0xb1, 0xa1, 0x2e, 0x45, 0x1d, 0x8a, + 0x41, 0x1f, 0xdd, 0x4c, 0x54, 0x3f, 0xc8, 0xa1, 0xda, 0xd8, 0xcd, 0x26, 0x1b, 0xbb, 0x44, 0x36, + 0x97, 0x25, 0x8b, 0xc3, 0xfd, 0xe3, 0x7c, 0xaa, 0x7f, 0x9c, 0xca, 0xf2, 0x0b, 0x53, 0x65, 0xf9, + 0x97, 0x13, 0xcd, 0xdc, 0x22, 0xca, 0x59, 0x6d, 0xd8, 0x7e, 0x1b, 0x6a, 0xea, 0x09, 0x51, 0x46, + 0xf7, 0xa0, 0xea, 0xaa, 0xde, 0x5b, 0x4a, 0x2a, 0xf1, 0x40, 0xa0, 0x12, 0x19, 0x49, 0xf4, 0x69, + 0x5c, 0xf6, 0x33, 0xa8, 0x3f, 0xf3, 0xbd, 0xae, 0x27, 0x9b, 0x97, 0x27, 0x50, 0x10, 0xbe, 0x0f, + 0xa7, 0x0d, 0x46, 0xad, 0xe3, 0x77, 0x18, 0x15, 0x15, 0xcf, 0x26, 0x54, 0xfc, 0x1b, 0x70, 0x7e, + 0x68, 0x87, 0x98, 0xe9, 0x7b, 0x23, 0xda, 0x8b, 0x57, 0x54, 0xc1, 0x8d, 0x60, 0x4e, 0x6d, 0x2e, + 0xbe, 0x07, 0x59, 0xa3, 0x67, 0x8e, 0x52, 0xb4, 0x1e, 0x3d, 0x70, 0x3c, 0x1a, 0x17, 0xaa, 0x72, + 0xc8, 0x45, 0xb1, 0x1d, 0x86, 0xbd, 0x36, 0xe7, 0x5e, 0x6a, 0x1a, 0x1f, 0x3f, 0x62, 0x07, 0xfa, + 0x73, 0x28, 0xae, 0xb1, 0x20, 0xe0, 0xc7, 0xe3, 0xea, 0x88, 0x4a, 0x21, 0x16, 0x2d, 0x19, 0xd1, + 0x70, 0xf0, 0xb2, 0x9d, 0x51, 0x5e, 0xb6, 0xb9, 0x42, 0xf6, 0xad, 0x5e, 0x5b, 0xcc, 0x44, 0xcf, + 0x36, 0x56, 0x6f, 0x1d, 0x9f, 0xbd, 0xff, 0x9c, 0x81, 0x6a, 0xe2, 0x08, 0x27, 0x28, 0x5d, 0xce, + 0xcf, 0x2e, 0xb7, 0x68, 0xe9, 0xeb, 0xc5, 0x40, 0x6d, 0xf7, 0xe6, 0x13, 0xed, 0x5e, 0x72, 0x03, + 0xe6, 0x7a, 0xcc, 0xef, 0xda, 0x78, 0xce, 0xb6, 0xcf, 0xa8, 0x25, 0x4b, 0xe8, 0xd9, 0x01, 0x98, + 0xcb, 0x9c, 0x6b, 0xa5, 0x82, 0xb8, 0xe7, 0xdb, 0xa1, 0x78, 0x55, 0xc9, 0x1b, 0xca, 0x02, 0x5f, + 0xe5, 0xe0, 0xcf, 0xaf, 0xae, 0xd6, 0xf7, 0xa0, 0x96, 0x90, 0xec, 0xa2, 0xb9, 0x73, 0x92, 0xcd, + 0x71, 0x55, 0xec, 0xb9, 0x84, 0x52, 0x37, 0xe1, 0x54, 0x7a, 0xe3, 0x80, 0xbc, 0x09, 0x39, 0x6a, + 0xee, 0x44, 0x6a, 0x7c, 0x51, 0x55, 0xe3, 0x34, 0xb2, 0x81, 0x98, 0x7a, 0x13, 0x66, 0x93, 0x76, + 0x41, 0x6e, 0x43, 0x51, 0x68, 0x77, 0xb4, 0xcc, 0xf9, 0xb1, 0xcb, 0x18, 0x11, 0xa6, 0xfe, 0x7e, + 0x8a, 0x1b, 0x74, 0x4b, 0x2f, 0xb2, 0xd2, 0xd8, 0xf6, 0xe3, 0x2f, 0x72, 0x00, 0x83, 0xbc, 0x61, + 0xc8, 0xde, 0xb8, 0x55, 0xd8, 0xa1, 0xc3, 0x62, 0xab, 0xe0, 0x83, 0x74, 0x87, 0x39, 0x3b, 0xdc, + 0x61, 0x6e, 0x40, 0x29, 0x4a, 0x00, 0x50, 0xc0, 0x55, 0x23, 0x1e, 0xf3, 0xc2, 0x38, 0xf0, 0xfc, + 0xb0, 0xed, 0xf9, 0x16, 0xf3, 0x51, 0x8d, 0xab, 0x46, 0x99, 0x43, 0x9e, 0x72, 0x40, 0x1c, 0xba, + 0x0a, 0x38, 0x81, 0xdf, 0x22, 0x86, 0xca, 0xbc, 0xbd, 0x88, 0xf0, 0x38, 0x35, 0x1f, 0x6a, 0x98, + 0x94, 0x86, 0x1a, 0x26, 0xf8, 0x47, 0x26, 0xea, 0xb6, 0xf1, 0x25, 0x1c, 0x15, 0xb1, 0xc4, 0xd9, + 0x71, 0x9b, 0xf8, 0x47, 0x9e, 0x4b, 0x00, 0x3c, 0xbf, 0xa0, 0x26, 0x46, 0x60, 0x10, 0xec, 0x30, + 0xd7, 0x5a, 0x44, 0x00, 0x9f, 0xc6, 0xae, 0x86, 0xe8, 0x25, 0x56, 0xc4, 0x34, 0x87, 0x18, 0x1c, + 0x90, 0x68, 0x4b, 0xcd, 0x1c, 0xde, 0x96, 0xaa, 0x4e, 0x65, 0x3e, 0x5f, 0x48, 0xe4, 0x4c, 0xb3, + 0x47, 0xd2, 0x2a, 0x19, 0xd3, 0xdb, 0x4a, 0xc6, 0x34, 0x77, 0x24, 0x61, 0x9c, 0x2f, 0x35, 0xa0, + 0x64, 0xf5, 0x7d, 0x8c, 0x5d, 0xf5, 0x9a, 0xb8, 0xb3, 0x68, 0xac, 0x6f, 0xc2, 0xec, 0x40, 0x4b, + 0x50, 0x0b, 0xef, 0x42, 0x65, 0x90, 0xec, 0x46, 0x9a, 0x78, 0x4e, 0xd5, 0x44, 0x25, 0x79, 0x56, + 0x51, 0xc7, 0xaa, 0xe2, 0x1f, 0x35, 0x38, 0x93, 0x4e, 0xb8, 0xff, 0x13, 0xba, 0x5a, 0xff, 0xcc, + 0xc0, 0x99, 0x0d, 0x74, 0x6d, 0xb2, 0xf5, 0x14, 0xc5, 0x48, 0xb5, 0xb7, 0xaa, 0x4d, 0xd5, 0x5b, + 0x7d, 0x17, 0x66, 0x2c, 0x3b, 0xe8, 0x39, 0xf4, 0xa0, 0x8d, 0xd4, 0x99, 0x09, 0xa8, 0x2b, 0x92, + 0x62, 0x95, 0xa2, 0x73, 0x56, 0x9f, 0x72, 0x26, 0x49, 0x2c, 0x95, 0x87, 0x9e, 0x3b, 0xca, 0xf3, + 0x51, 0x6e, 0x02, 0xd2, 0xf8, 0x71, 0xe9, 0x2e, 0x94, 0x1c, 0x4f, 0x64, 0x47, 0xb2, 0xfc, 0x3e, + 0xe2, 0xc0, 0x11, 0x36, 0xa7, 0xe4, 0xea, 0xfc, 0xa1, 0xe7, 0xb2, 0x89, 0x6a, 0xf0, 0x18, 0x5b, + 0xff, 0x5d, 0x06, 0x88, 0x90, 0xfe, 0x84, 0x5d, 0x45, 0xee, 0xed, 0x27, 0x16, 0xaa, 0xe8, 0x90, + 0xdd, 0x1b, 0xf6, 0x87, 0x47, 0xdf, 0x86, 0xe2, 0x2d, 0x5f, 0x58, 0xa0, 0xc9, 0x6b, 0xcc, 0x4f, + 0x77, 0x8d, 0xd1, 0x7b, 0x5d, 0x61, 0xb2, 0xf7, 0x3a, 0xfd, 0x47, 0x39, 0xc8, 0xe1, 0x63, 0x52, + 0x3a, 0x48, 0xa8, 0x7f, 0xec, 0xc8, 0xa4, 0xfe, 0xd8, 0xf1, 0x6a, 0x4a, 0x53, 0xa3, 0x58, 0xa1, + 0xe8, 0xe2, 0x11, 0x7f, 0x19, 0x38, 0xfc, 0xb1, 0x32, 0xd6, 0x27, 0xf9, 0x58, 0x19, 0x6b, 0x4c, + 0x43, 0xd1, 0x18, 0xf9, 0x5e, 0x10, 0x8d, 0x13, 0x4e, 0xbb, 0x94, 0x72, 0xda, 0x57, 0xa0, 0xa2, + 0xbc, 0xd6, 0x62, 0xb4, 0x28, 0x1b, 0x30, 0x78, 0xac, 0xe5, 0xc1, 0x44, 0x48, 0x8a, 0x4f, 0x83, + 0xa0, 0x16, 0x80, 0x96, 0x45, 0xae, 0x41, 0xb5, 0x43, 0xbb, 0xcc, 0xc4, 0x50, 0xc3, 0x11, 0x2a, + 0xa2, 0x2f, 0x30, 0x00, 0x8a, 0xac, 0x3d, 0x08, 0x19, 0xc5, 0xbf, 0xd5, 0xce, 0xc8, 0x72, 0x89, + 0x8f, 0x5b, 0xd8, 0xac, 0xf5, 0x5c, 0xc7, 0x76, 0x45, 0xb4, 0x28, 0x19, 0x72, 0x94, 0x7a, 0x2b, + 0x9d, 0x4d, 0xbf, 0x95, 0xa6, 0x22, 0xcd, 0xdc, 0x71, 0x12, 0xb5, 0xda, 0x54, 0x89, 0xda, 0x77, + 0x32, 0x50, 0x8d, 0xcb, 0xe2, 0xe8, 0xf9, 0x12, 0x53, 0xab, 0xc4, 0xc3, 0xe8, 0xb5, 0xf4, 0x8b, + 0x63, 0x8c, 0x3f, 0x18, 0x19, 0xd0, 0x8f, 0xeb, 0xeb, 0xc6, 0xa7, 0x1a, 0x94, 0xe3, 0x19, 0x72, + 0x03, 0xf2, 0xb8, 0x9c, 0x74, 0x93, 0x23, 0x9e, 0x59, 0xc5, 0xfc, 0xe7, 0xf3, 0x82, 0x79, 0x0b, + 0xf2, 0x58, 0xb0, 0x91, 0xff, 0x86, 0xbc, 0xfa, 0x66, 0x3b, 0xfc, 0xcc, 0x2a, 0xa6, 0xf5, 0x8f, + 0x32, 0x70, 0x09, 0x33, 0xec, 0x63, 0xfe, 0xf1, 0x84, 0x7c, 0x0d, 0x0a, 0x22, 0xb4, 0xc9, 0xf3, + 0xde, 0x57, 0x77, 0x3c, 0x74, 0x87, 0xe1, 0xb8, 0x87, 0xe8, 0x86, 0x5c, 0xaf, 0xb1, 0x05, 0xe7, + 0x46, 0x63, 0x0c, 0xde, 0xf5, 0xb4, 0x71, 0xef, 0x7a, 0x99, 0xd4, 0xbb, 0x9e, 0x6a, 0x6e, 0xd9, + 0xa4, 0xb9, 0xe9, 0xdf, 0xcb, 0x00, 0xc1, 0x75, 0x8f, 0x5b, 0x48, 0xc5, 0xf5, 0x52, 0x76, 0x4c, + 0xbd, 0x94, 0x4b, 0x56, 0x00, 0x2b, 0xc3, 0xf5, 0xd2, 0x04, 0x1d, 0xe1, 0x74, 0x31, 0xf5, 0x60, + 0x44, 0x31, 0x35, 0x41, 0xbb, 0x29, 0x5d, 0x69, 0xe9, 0xcf, 0xa1, 0x31, 0x2c, 0x85, 0x60, 0x90, + 0x28, 0xa4, 0x32, 0xfe, 0xcb, 0x43, 0xf7, 0x3c, 0xa6, 0x80, 0xf8, 0x6e, 0x06, 0x2e, 0xe2, 0x7c, + 0x3a, 0xb1, 0x9a, 0xaa, 0x91, 0xf9, 0x3c, 0xa5, 0x66, 0xf7, 0x86, 0xb6, 0x1f, 0xb3, 0xfc, 0x7c, + 0x1a, 0x9e, 0x54, 0x32, 0x06, 0x67, 0x47, 0x22, 0x9c, 0xac, 0x8e, 0x2d, 0x7d, 0x19, 0xce, 0x9b, + 0x5e, 0x77, 0x7e, 0x9b, 0xf9, 0x9e, 0x6d, 0x3a, 0x74, 0x33, 0x50, 0xd8, 0x5f, 0x2a, 0xaf, 0xe2, + 0xf7, 0x62, 0xcf, 0x7e, 0xa6, 0x7d, 0x3d, 0x4b, 0x7b, 0xf6, 0xcf, 0x33, 0xb9, 0xd5, 0x47, 0xcf, + 0x96, 0x7e, 0x95, 0x29, 0x88, 0x99, 0xcd, 0x02, 0xde, 0xe0, 0xed, 0x7f, 0x07, 0x00, 0x00, 0xff, + 0xff, 0xfe, 0x68, 0x64, 0x13, 0x00, 0x32, 0x00, 0x00, } diff --git a/api/api.proto b/api/api.proto index df350782e..e32e714c4 100644 --- a/api/api.proto +++ b/api/api.proto @@ -159,7 +159,7 @@ message AuthenticateFacebookRequest { // Set the username on the account at register. Must be unique. string username = 3; // Import Facebook friends for the user. - google.protobuf.BoolValue import = 4; + google.protobuf.BoolValue sync = 4; } // Authenticate against the server with Apple's Game Center. @@ -465,7 +465,7 @@ message LinkFacebookRequest { // The Facebook account details. AccountFacebook account = 1; // Import Facebook friends for the user. - google.protobuf.BoolValue import = 4; + google.protobuf.BoolValue sync = 4; } // List a channel's message history. diff --git a/apigrpc/apigrpc.swagger.json b/apigrpc/apigrpc.swagger.json index c2e5bb378..bec7d1fc4 100644 --- a/apigrpc/apigrpc.swagger.json +++ b/apigrpc/apigrpc.swagger.json @@ -261,7 +261,7 @@ "type": "string" }, { - "name": "import", + "name": "sync", "description": "Import Facebook friends for the user.", "in": "query", "required": false, @@ -527,7 +527,7 @@ } }, { - "name": "import", + "name": "sync", "description": "Import Facebook friends for the user.", "in": "query", "required": false, diff --git a/rtapi/realtime.pb.go b/rtapi/realtime.pb.go index 0ca8664bf..d1e0ce877 100644 --- a/rtapi/realtime.pb.go +++ b/rtapi/realtime.pb.go @@ -2878,8 +2878,8 @@ type Stream struct { Mode int32 `protobuf:"varint,1,opt,name=mode,proto3" json:"mode,omitempty"` // Subject is the primary identifier, if any. Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` - // Descriptor is a secondary identifier, if any. - Descriptor_ string `protobuf:"bytes,3,opt,name=descriptor,proto3" json:"descriptor,omitempty"` + // Subcontext is a secondary identifier, if any. + Subcontext string `protobuf:"bytes,3,opt,name=subcontext,proto3" json:"subcontext,omitempty"` // The label is an arbitrary identifying string, if the stream has one. Label string `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -2926,9 +2926,9 @@ func (m *Stream) GetSubject() string { return "" } -func (m *Stream) GetDescriptor_() string { +func (m *Stream) GetSubcontext() string { if m != nil { - return m.Descriptor_ + return m.Subcontext } return "" } @@ -3181,7 +3181,7 @@ func init() { func init() { proto.RegisterFile("rtapi/realtime.proto", fileDescriptor_0163624496220f8c) } var fileDescriptor_0163624496220f8c = []byte{ - // 2156 bytes of a gzipped FileDescriptorProto + // 2153 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x73, 0xe3, 0x48, 0x15, 0xb7, 0xfc, 0x95, 0xf8, 0x25, 0x4e, 0x9c, 0x8e, 0x27, 0xd1, 0x3a, 0x3b, 0x99, 0x41, 0xb3, 0x14, 0xc3, 0x52, 0x38, 0x35, 0x1f, 0x5b, 0x05, 0x33, 0x30, 0x55, 0x89, 0xad, 0xc4, 0x1e, 0xd6, @@ -3305,16 +3305,16 @@ var fileDescriptor_0163624496220f8c = []byte{ 0xec, 0x2e, 0x78, 0x05, 0xf9, 0xa0, 0xb7, 0xc2, 0xf7, 0x60, 0x2b, 0xfe, 0x64, 0xb2, 0x6c, 0xc3, 0xcd, 0xe0, 0xdb, 0x78, 0xc3, 0xf3, 0x3c, 0x7c, 0x6c, 0x12, 0x6e, 0x51, 0xd5, 0x71, 0xac, 0x34, 0x26, 0x86, 0x76, 0xb1, 0x66, 0x91, 0xb2, 0xc3, 0x8a, 0x14, 0xf5, 0x16, 0x2f, 0xea, 0xbd, 0xe9, - 0xf9, 0x57, 0x58, 0x0f, 0xdb, 0x2e, 0x3e, 0x44, 0x87, 0x00, 0x06, 0xf6, 0x74, 0xd7, 0x9c, 0xf8, - 0x8e, 0xcb, 0x6f, 0x9e, 0x88, 0x84, 0x78, 0x22, 0x2b, 0x31, 0x59, 0xd3, 0xca, 0x06, 0xd2, 0x6f, - 0x04, 0x80, 0xd9, 0x33, 0x0c, 0x3a, 0x22, 0x5b, 0x26, 0x23, 0xbe, 0xe5, 0xfd, 0x94, 0x97, 0x16, - 0x85, 0xc3, 0x88, 0x5d, 0x3d, 0x6c, 0x1b, 0xd8, 0xbd, 0x5d, 0x19, 0xc7, 0xc1, 0xb1, 0x8a, 0xaa, - 0xc4, 0x6b, 0xb5, 0xbf, 0xd2, 0xf3, 0x9e, 0x7b, 0xb0, 0xb9, 0xfb, 0x9e, 0x3e, 0xa4, 0x83, 0xfc, - 0x5d, 0x80, 0xcd, 0xe8, 0x04, 0x29, 0x22, 0xb9, 0x7f, 0x04, 0x11, 0xc9, 0xdc, 0x83, 0xf4, 0x8d, - 0x1e, 0xf6, 0x3c, 0xd3, 0xb1, 0x23, 0xfd, 0x26, 0x97, 0xb4, 0x8d, 0xd8, 0xb3, 0x42, 0x2e, 0xf1, - 0xac, 0xf0, 0x30, 0xfe, 0xbe, 0x93, 0xa7, 0x1d, 0x44, 0xec, 0x0d, 0x67, 0xe6, 0x6a, 0x85, 0xdb, - 0xbb, 0xda, 0xc9, 0x29, 0x1c, 0xe8, 0x8e, 0x55, 0x9f, 0xfd, 0xa9, 0x17, 0x7e, 0xb3, 0xaf, 0x4d, - 0xcc, 0x93, 0xad, 0x2e, 0x1d, 0x29, 0xdc, 0x00, 0x7d, 0xe1, 0x4d, 0x81, 0x4e, 0xfc, 0x29, 0x9b, - 0xef, 0xfe, 0xa4, 0x7f, 0xf2, 0xe7, 0x6c, 0x91, 0x01, 0xce, 0x8b, 0x74, 0x95, 0x67, 0xff, 0x0b, - 0x00, 0x00, 0xff, 0xff, 0x82, 0x5d, 0x4f, 0x51, 0x92, 0x1c, 0x00, 0x00, + 0xf9, 0x57, 0x58, 0x0f, 0xdb, 0x2e, 0x3e, 0x44, 0x87, 0x00, 0xde, 0xf4, 0x7c, 0x56, 0xd7, 0x93, + 0xc9, 0x88, 0x84, 0x78, 0x22, 0x2b, 0x31, 0x59, 0xd3, 0xca, 0x06, 0xd2, 0x6f, 0x04, 0x80, 0xd9, + 0x33, 0x0c, 0x3a, 0x22, 0x5b, 0x26, 0x23, 0xbe, 0xe5, 0xfd, 0x94, 0x97, 0x16, 0x85, 0xc3, 0x88, + 0x5d, 0x3d, 0x6c, 0x1b, 0xd8, 0xbd, 0x5d, 0x19, 0xc7, 0xc1, 0xb1, 0x8a, 0xaa, 0xc4, 0x6b, 0xb5, + 0xbf, 0xd2, 0xf3, 0x9e, 0x7b, 0xb0, 0xb9, 0xfb, 0x9e, 0x3e, 0xa4, 0x83, 0xfc, 0x5d, 0x80, 0xcd, + 0xe8, 0x04, 0x29, 0x22, 0xb9, 0x7f, 0x04, 0x11, 0xc9, 0xdc, 0x83, 0xf4, 0x8d, 0x1e, 0xf6, 0x3c, + 0xd3, 0xb1, 0x23, 0xfd, 0x26, 0x97, 0xb4, 0x8d, 0xd8, 0xb3, 0x42, 0x2e, 0xf1, 0xac, 0xf0, 0x30, + 0xfe, 0xbe, 0x93, 0xa7, 0x1d, 0x44, 0xec, 0x0d, 0x67, 0xe6, 0x6a, 0x85, 0xdb, 0xbb, 0xda, 0xc9, + 0x29, 0x1c, 0xe8, 0x8e, 0x55, 0x9f, 0xfd, 0xa9, 0x17, 0x7e, 0xb3, 0xaf, 0x4d, 0xcc, 0x93, 0xad, + 0x2e, 0x1d, 0x29, 0xdc, 0x00, 0x7d, 0xe1, 0x4d, 0x81, 0x4e, 0xfc, 0x29, 0x9b, 0xef, 0xfe, 0xa4, + 0x7f, 0xf2, 0xe7, 0x6c, 0x91, 0x01, 0xce, 0x8b, 0x74, 0x95, 0x67, 0xff, 0x0b, 0x00, 0x00, 0xff, + 0xff, 0x49, 0xe0, 0x91, 0x17, 0x92, 0x1c, 0x00, 0x00, } diff --git a/rtapi/realtime.proto b/rtapi/realtime.proto index 3858727d8..216c114a2 100644 --- a/rtapi/realtime.proto +++ b/rtapi/realtime.proto @@ -391,8 +391,8 @@ message Stream { int32 mode = 1; // Subject is the primary identifier, if any. string subject = 2; - // Descriptor is a secondary identifier, if any. - string descriptor = 3; + // Subcontext is a secondary identifier, if any. + string subcontext = 3; // The label is an arbitrary identifying string, if the stream has one. string label = 4; } diff --git a/runtime/runtime.go b/runtime/runtime.go index 49b143333..1b4ae467f 100644 --- a/runtime/runtime.go +++ b/runtime/runtime.go @@ -301,15 +301,15 @@ type NakamaModule interface { UsersBanId(ctx context.Context, userIDs []string) error UsersUnbanId(ctx context.Context, userIDs []string) error - StreamUserList(mode uint8, subject, descriptor, label string, includeHidden, includeNotHidden bool) ([]Presence, error) - StreamUserGet(mode uint8, subject, descriptor, label, userID, sessionID string) (PresenceMeta, error) - StreamUserJoin(mode uint8, subject, descriptor, label, userID, sessionID string, hidden, persistence bool, status string) (bool, error) - StreamUserUpdate(mode uint8, subject, descriptor, label, userID, sessionID string, hidden, persistence bool, status string) error - StreamUserLeave(mode uint8, subject, descriptor, label, userID, sessionID string) error - StreamCount(mode uint8, subject, descriptor, label string) (int, error) - StreamClose(mode uint8, subject, descriptor, label string) error - StreamSend(mode uint8, subject, descriptor, label, data string) error - StreamSendRaw(mode uint8, subject, descriptor, label string, msg *rtapi.Envelope) error + StreamUserList(mode uint8, subject, subcontext, label string, includeHidden, includeNotHidden bool) ([]Presence, error) + StreamUserGet(mode uint8, subject, subcontext, label, userID, sessionID string) (PresenceMeta, error) + StreamUserJoin(mode uint8, subject, subcontext, label, userID, sessionID string, hidden, persistence bool, status string) (bool, error) + StreamUserUpdate(mode uint8, subject, subcontext, label, userID, sessionID string, hidden, persistence bool, status string) error + StreamUserLeave(mode uint8, subject, subcontext, label, userID, sessionID string) error + StreamCount(mode uint8, subject, subcontext, label string) (int, error) + StreamClose(mode uint8, subject, subcontext, label string) error + StreamSend(mode uint8, subject, subcontext, label, data string) error + StreamSendRaw(mode uint8, subject, subcontext, label string, msg *rtapi.Envelope) error MatchCreate(ctx context.Context, module string, params map[string]interface{}) (string, error) MatchList(ctx context.Context, limit int, authoritative bool, label string, minSize, maxSize int, query string) ([]*api.Match, error) diff --git a/server/api_authenticate.go b/server/api_authenticate.go index e8775b171..0c1fb0959 100644 --- a/server/api_authenticate.go +++ b/server/api_authenticate.go @@ -319,7 +319,7 @@ func (s *ApiServer) AuthenticateFacebook(ctx context.Context, in *api.Authentica } // Import friends if requested. - if in.Import == nil || in.Import.Value { + if in.Sync == nil || in.Sync.Value { importFacebookFriends(ctx, s.logger, s.db, s.router, s.socialClient, uuid.FromStringOrNil(dbUserID), dbUsername, in.Account.Token, false) } diff --git a/server/api_link.go b/server/api_link.go index 69f8f86b3..695acf766 100644 --- a/server/api_link.go +++ b/server/api_link.go @@ -355,7 +355,7 @@ AND (NOT EXISTS } // Import friends if requested. - if in.Import == nil || in.Import.Value { + if in.Sync == nil || in.Sync.Value { importFacebookFriends(ctx, s.logger, s.db, s.router, s.socialClient, userID.(uuid.UUID), ctx.Value(ctxUsernameKey{}).(string), in.Account.Token, false) } diff --git a/server/core_channel.go b/server/core_channel.go index 75b632ef9..08bc68100 100644 --- a/server/core_channel.go +++ b/server/core_channel.go @@ -47,7 +47,7 @@ type ChannelIdToStreamResult struct { type channelMessageListCursor struct { StreamMode uint8 StreamSubject string - StreamDescriptor string + StreamSubcontext string StreamLabel string CreateTime int64 Id string @@ -76,8 +76,8 @@ func ChannelMessagesList(ctx context.Context, logger *zap.Logger, db *sql.DB, ca } else if stream.Subject.String() != incomingCursor.StreamSubject { // Stream subject does not match. return nil, ErrChannelCursorInvalid - } else if stream.Descriptor.String() != incomingCursor.StreamDescriptor { - // Stream descriptor does not match. + } else if stream.Subcontext.String() != incomingCursor.StreamSubcontext { + // Stream subcontext does not match. return nil, ErrChannelCursorInvalid } else if stream.Label != incomingCursor.StreamLabel { // Stream label does not match. @@ -113,7 +113,7 @@ WHERE stream_mode = $1 AND stream_subject = $2::UUID AND stream_descriptor = $3: } } query += " LIMIT $5" - params := []interface{}{stream.Mode, stream.Subject, stream.Descriptor, stream.Label, limit + 1} + params := []interface{}{stream.Mode, stream.Subject, stream.Subcontext, stream.Label, limit + 1} if incomingCursor != nil { params = append(params, time.Unix(incomingCursor.CreateTime, 0).UTC(), incomingCursor.Id) } @@ -140,7 +140,7 @@ WHERE stream_mode = $1 AND stream_subject = $2::UUID AND stream_descriptor = $3: nextCursor = &channelMessageListCursor{ StreamMode: stream.Mode, StreamSubject: stream.Subject.String(), - StreamDescriptor: stream.Descriptor.String(), + StreamSubcontext: stream.Subcontext.String(), StreamLabel: stream.Label, CreateTime: dbCreateTime.Time.Unix(), Id: dbId, @@ -173,7 +173,7 @@ WHERE stream_mode = $1 AND stream_subject = $2::UUID AND stream_descriptor = $3: prevCursor = &channelMessageListCursor{ StreamMode: stream.Mode, StreamSubject: stream.Subject.String(), - StreamDescriptor: stream.Descriptor.String(), + StreamSubcontext: stream.Subcontext.String(), StreamLabel: stream.Label, CreateTime: dbCreateTime.Time.Unix(), Id: dbId, @@ -233,13 +233,13 @@ func GetChannelMessages(ctx context.Context, logger *zap.Logger, db *sql.DB, use var dbUsername string var dbStreamMode uint8 var dbStreamSubject string - var dbStreamDescriptor string + var dbStreamSubcontext string var dbStreamLabel string var dbContent string var dbCreateTime pq.NullTime var dbUpdateTime pq.NullTime for rows.Next() { - err = rows.Scan(&dbId, &dbCode, &dbUsername, &dbStreamMode, &dbStreamSubject, &dbStreamDescriptor, &dbStreamLabel, &dbContent, &dbCreateTime, &dbUpdateTime) + err = rows.Scan(&dbId, &dbCode, &dbUsername, &dbStreamMode, &dbStreamSubject, &dbStreamSubcontext, &dbStreamLabel, &dbContent, &dbCreateTime, &dbUpdateTime) if err != nil { logger.Error("Error parsing listed channel messages for user", zap.String("user_id", userID.String()), zap.Error(err)) return nil, err @@ -248,7 +248,7 @@ func GetChannelMessages(ctx context.Context, logger *zap.Logger, db *sql.DB, use channelId, err := StreamToChannelId(PresenceStream{ Mode: dbStreamMode, Subject: uuid.FromStringOrNil(dbStreamSubject), - Descriptor: uuid.FromStringOrNil(dbStreamDescriptor), + Subcontext: uuid.FromStringOrNil(dbStreamSubcontext), Label: dbStreamLabel, }) if err != nil { @@ -290,7 +290,7 @@ func ChannelIdToStream(channelId string) (*ChannelIdToStreamResult, error) { switch components[0] { case "2": // StreamModeChannel. - // Expect no subject or descriptor. + // Expect no subject or subcontext. if components[1] != "" || components[2] != "" { return nil, ErrChannelIdInvalid } @@ -300,7 +300,7 @@ func ChannelIdToStream(channelId string) (*ChannelIdToStreamResult, error) { } stream.Label = components[3] case "3": - // Expect no descriptor or label. + // Expect no subcontext or label. if components[2] != "" || components[3] != "" { return nil, ErrChannelIdInvalid } @@ -325,9 +325,9 @@ func ChannelIdToStream(channelId string) (*ChannelIdToStreamResult, error) { return nil, ErrChannelIdInvalid } } - // Descriptor. + // Subcontext. if components[2] != "" { - if stream.Descriptor, err = uuid.FromString(components[2]); err != nil { + if stream.Subcontext, err = uuid.FromString(components[2]); err != nil { return nil, ErrChannelIdInvalid } } @@ -349,10 +349,10 @@ func StreamToChannelId(stream PresenceStream) (string, error) { if stream.Subject != uuid.Nil { subject = stream.Subject.String() } - descriptor := "" - if stream.Descriptor != uuid.Nil { - descriptor = stream.Descriptor.String() + subcontext := "" + if stream.Subcontext != uuid.Nil { + subcontext = stream.Subcontext.String() } - return fmt.Sprintf("%v.%v.%v.%v", stream.Mode, subject, descriptor, stream.Label), nil + return fmt.Sprintf("%v.%v.%v.%v", stream.Mode, subject, subcontext, stream.Label), nil } diff --git a/server/pipeline_channel.go b/server/pipeline_channel.go index 211b2e1c2..3c886edac 100644 --- a/server/pipeline_channel.go +++ b/server/pipeline_channel.go @@ -137,10 +137,10 @@ func (p *Pipeline) channelJoin(logger *zap.Logger, session Session, envelope *rt // Assign the ID pair in a consistent order. if uid.String() > userID.String() { stream.Subject = userID - stream.Descriptor = uid + stream.Subcontext = uid } else { stream.Subject = uid - stream.Descriptor = userID + stream.Subcontext = userID } stream.Mode = StreamModeDM case int32(rtapi.ChannelJoin_GROUP): @@ -213,7 +213,7 @@ func (p *Pipeline) channelJoin(logger *zap.Logger, session Session, envelope *rt userID := session.UserID() otherUserID := stream.Subject if userID == otherUserID { - otherUserID = stream.Descriptor + otherUserID = stream.Subcontext } otherUserPresent := false @@ -338,7 +338,7 @@ func (p *Pipeline) channelMessageSend(logger *zap.Logger, session Session, envel if meta.Persistence { query := `INSERT INTO message (id, code, sender_id, username, stream_mode, stream_subject, stream_descriptor, stream_label, content, create_time, update_time) VALUES ($1, $2, $3, $4, $5, $6::UUID, $7::UUID, $8, $9, $10, $10)` - _, err := p.db.ExecContext(session.Context(), query, message.MessageId, message.Code.Value, message.SenderId, message.Username, streamConversionResult.Stream.Mode, streamConversionResult.Stream.Subject, streamConversionResult.Stream.Descriptor, streamConversionResult.Stream.Label, message.Content, time.Unix(message.CreateTime.Seconds, 0).UTC()) + _, err := p.db.ExecContext(session.Context(), query, message.MessageId, message.Code.Value, message.SenderId, message.Username, streamConversionResult.Stream.Mode, streamConversionResult.Stream.Subject, streamConversionResult.Stream.Subcontext, streamConversionResult.Stream.Label, message.Content, time.Unix(message.CreateTime.Seconds, 0).UTC()) if err != nil { logger.Error("Error persisting channel message", zap.Error(err)) session.Send(false, 0, &rtapi.Envelope{Cid: envelope.Cid, Message: &rtapi.Envelope_Error{Error: &rtapi.Error{ diff --git a/server/runtime_go_nakama.go b/server/runtime_go_nakama.go index 045de8e18..7e4858331 100644 --- a/server/runtime_go_nakama.go +++ b/server/runtime_go_nakama.go @@ -368,7 +368,7 @@ func (n *RuntimeGoNakamaModule) UsersUnbanId(ctx context.Context, userIDs []stri return UnbanUsers(ctx, n.logger, n.db, userIDs) } -func (n *RuntimeGoNakamaModule) StreamUserList(mode uint8, subject, descriptor, label string, includeHidden, includeNotHidden bool) ([]runtime.Presence, error) { +func (n *RuntimeGoNakamaModule) StreamUserList(mode uint8, subject, subcontext, label string, includeHidden, includeNotHidden bool) ([]runtime.Presence, error) { stream := PresenceStream{ Mode: mode, Label: label, @@ -380,10 +380,10 @@ func (n *RuntimeGoNakamaModule) StreamUserList(mode uint8, subject, descriptor, return nil, errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return nil, errors.New("stream descriptor must be a valid identifier") + return nil, errors.New("stream subcontext must be a valid identifier") } } @@ -395,7 +395,7 @@ func (n *RuntimeGoNakamaModule) StreamUserList(mode uint8, subject, descriptor, return runtimePresences, nil } -func (n *RuntimeGoNakamaModule) StreamUserGet(mode uint8, subject, descriptor, label, userID, sessionID string) (runtime.PresenceMeta, error) { +func (n *RuntimeGoNakamaModule) StreamUserGet(mode uint8, subject, subcontext, label, userID, sessionID string) (runtime.PresenceMeta, error) { uid, err := uuid.FromString(userID) if err != nil { return nil, errors.New("expects valid user id") @@ -416,10 +416,10 @@ func (n *RuntimeGoNakamaModule) StreamUserGet(mode uint8, subject, descriptor, l return nil, errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return nil, errors.New("stream descriptor must be a valid identifier") + return nil, errors.New("stream subcontext must be a valid identifier") } } @@ -429,7 +429,7 @@ func (n *RuntimeGoNakamaModule) StreamUserGet(mode uint8, subject, descriptor, l return nil, nil } -func (n *RuntimeGoNakamaModule) StreamUserJoin(mode uint8, subject, descriptor, label, userID, sessionID string, hidden, persistence bool, status string) (bool, error) { +func (n *RuntimeGoNakamaModule) StreamUserJoin(mode uint8, subject, subcontext, label, userID, sessionID string, hidden, persistence bool, status string) (bool, error) { uid, err := uuid.FromString(userID) if err != nil { return false, errors.New("expects valid user id") @@ -450,10 +450,10 @@ func (n *RuntimeGoNakamaModule) StreamUserJoin(mode uint8, subject, descriptor, return false, errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return false, errors.New("stream descriptor must be a valid identifier") + return false, errors.New("stream subcontext must be a valid identifier") } } @@ -477,7 +477,7 @@ func (n *RuntimeGoNakamaModule) StreamUserJoin(mode uint8, subject, descriptor, return newlyTracked, nil } -func (n *RuntimeGoNakamaModule) StreamUserUpdate(mode uint8, subject, descriptor, label, userID, sessionID string, hidden, persistence bool, status string) error { +func (n *RuntimeGoNakamaModule) StreamUserUpdate(mode uint8, subject, subcontext, label, userID, sessionID string, hidden, persistence bool, status string) error { uid, err := uuid.FromString(userID) if err != nil { return errors.New("expects valid user id") @@ -498,10 +498,10 @@ func (n *RuntimeGoNakamaModule) StreamUserUpdate(mode uint8, subject, descriptor return errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return errors.New("stream descriptor must be a valid identifier") + return errors.New("stream subcontext must be a valid identifier") } } @@ -524,7 +524,7 @@ func (n *RuntimeGoNakamaModule) StreamUserUpdate(mode uint8, subject, descriptor return nil } -func (n *RuntimeGoNakamaModule) StreamUserLeave(mode uint8, subject, descriptor, label, userID, sessionID string) error { +func (n *RuntimeGoNakamaModule) StreamUserLeave(mode uint8, subject, subcontext, label, userID, sessionID string) error { uid, err := uuid.FromString(userID) if err != nil { return errors.New("expects valid user id") @@ -545,10 +545,10 @@ func (n *RuntimeGoNakamaModule) StreamUserLeave(mode uint8, subject, descriptor, return errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return errors.New("stream descriptor must be a valid identifier") + return errors.New("stream subcontext must be a valid identifier") } } @@ -557,7 +557,7 @@ func (n *RuntimeGoNakamaModule) StreamUserLeave(mode uint8, subject, descriptor, return nil } -func (n *RuntimeGoNakamaModule) StreamCount(mode uint8, subject, descriptor, label string) (int, error) { +func (n *RuntimeGoNakamaModule) StreamCount(mode uint8, subject, subcontext, label string) (int, error) { stream := PresenceStream{ Mode: mode, Label: label, @@ -569,17 +569,17 @@ func (n *RuntimeGoNakamaModule) StreamCount(mode uint8, subject, descriptor, lab return 0, errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return 0, errors.New("stream descriptor must be a valid identifier") + return 0, errors.New("stream subcontext must be a valid identifier") } } return n.tracker.CountByStream(stream), nil } -func (n *RuntimeGoNakamaModule) StreamClose(mode uint8, subject, descriptor, label string) error { +func (n *RuntimeGoNakamaModule) StreamClose(mode uint8, subject, subcontext, label string) error { stream := PresenceStream{ Mode: mode, Label: label, @@ -591,10 +591,10 @@ func (n *RuntimeGoNakamaModule) StreamClose(mode uint8, subject, descriptor, lab return errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return errors.New("stream descriptor must be a valid identifier") + return errors.New("stream subcontext must be a valid identifier") } } @@ -603,7 +603,7 @@ func (n *RuntimeGoNakamaModule) StreamClose(mode uint8, subject, descriptor, lab return nil } -func (n *RuntimeGoNakamaModule) StreamSend(mode uint8, subject, descriptor, label, data string) error { +func (n *RuntimeGoNakamaModule) StreamSend(mode uint8, subject, subcontext, label, data string) error { stream := PresenceStream{ Mode: mode, Label: label, @@ -615,10 +615,10 @@ func (n *RuntimeGoNakamaModule) StreamSend(mode uint8, subject, descriptor, labe return errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return errors.New("stream descriptor must be a valid identifier") + return errors.New("stream subcontext must be a valid identifier") } } @@ -629,8 +629,8 @@ func (n *RuntimeGoNakamaModule) StreamSend(mode uint8, subject, descriptor, labe if stream.Subject != uuid.Nil { streamWire.Subject = stream.Subject.String() } - if stream.Descriptor != uuid.Nil { - streamWire.Descriptor_ = stream.Descriptor.String() + if stream.Subcontext != uuid.Nil { + streamWire.Subcontext = stream.Subcontext.String() } msg := &rtapi.Envelope{Message: &rtapi.Envelope_StreamData{StreamData: &rtapi.StreamData{ Stream: streamWire, @@ -642,7 +642,7 @@ func (n *RuntimeGoNakamaModule) StreamSend(mode uint8, subject, descriptor, labe return nil } -func (n *RuntimeGoNakamaModule) StreamSendRaw(mode uint8, subject, descriptor, label string, msg *rtapi.Envelope) error { +func (n *RuntimeGoNakamaModule) StreamSendRaw(mode uint8, subject, subcontext, label string, msg *rtapi.Envelope) error { stream := PresenceStream{ Mode: mode, Label: label, @@ -654,10 +654,10 @@ func (n *RuntimeGoNakamaModule) StreamSendRaw(mode uint8, subject, descriptor, l return errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return errors.New("stream descriptor must be a valid identifier") + return errors.New("stream subcontext must be a valid identifier") } } if msg == nil { diff --git a/server/runtime_lua_nakama.go b/server/runtime_lua_nakama.go index 5d4ded6b0..5a28aa2d6 100644 --- a/server/runtime_lua_nakama.go +++ b/server/runtime_lua_nakama.go @@ -1765,17 +1765,17 @@ func (n *RuntimeLuaNakamaModule) streamUserList(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { - conversionError = "stream descriptor must be a string" + conversionError = "stream subcontext must be a string" return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { - conversionError = "stream descriptor must be a valid identifier" + conversionError = "stream subcontext must be a valid identifier" return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = "stream label must be a string" @@ -1873,19 +1873,19 @@ func (n *RuntimeLuaNakamaModule) streamUserGet(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -1972,19 +1972,19 @@ func (n *RuntimeLuaNakamaModule) streamUserJoin(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2087,19 +2087,19 @@ func (n *RuntimeLuaNakamaModule) streamUserUpdate(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2199,19 +2199,19 @@ func (n *RuntimeLuaNakamaModule) streamUserLeave(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2265,19 +2265,19 @@ func (n *RuntimeLuaNakamaModule) streamCount(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2332,19 +2332,19 @@ func (n *RuntimeLuaNakamaModule) streamClose(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subject = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2398,19 +2398,19 @@ func (n *RuntimeLuaNakamaModule) streamSend(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2434,8 +2434,8 @@ func (n *RuntimeLuaNakamaModule) streamSend(l *lua.LState) int { if stream.Subject != uuid.Nil { streamWire.Subject = stream.Subject.String() } - if stream.Descriptor != uuid.Nil { - streamWire.Descriptor_ = stream.Descriptor.String() + if stream.Subcontext != uuid.Nil { + streamWire.Subcontext = stream.Subcontext.String() } msg := &rtapi.Envelope{Message: &rtapi.Envelope_StreamData{StreamData: &rtapi.StreamData{ Stream: streamWire, @@ -2482,19 +2482,19 @@ func (n *RuntimeLuaNakamaModule) streamSendRaw(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2529,8 +2529,8 @@ func (n *RuntimeLuaNakamaModule) streamSendRaw(l *lua.LState) int { if stream.Subject != uuid.Nil { streamWire.Subject = stream.Subject.String() } - if stream.Descriptor != uuid.Nil { - streamWire.Descriptor_ = stream.Descriptor.String() + if stream.Subcontext != uuid.Nil { + streamWire.Subcontext = stream.Subcontext.String() } n.router.SendToStream(n.logger, stream, envelope) diff --git a/server/tracker.go b/server/tracker.go index b0b3e9a8e..12c435d38 100644 --- a/server/tracker.go +++ b/server/tracker.go @@ -46,7 +46,7 @@ type PresenceID struct { type PresenceStream struct { Mode uint8 Subject uuid.UUID - Descriptor uuid.UUID + Subcontext uuid.UUID Label string } @@ -750,8 +750,8 @@ func (t *LocalTracker) processEvent(e *PresenceEvent) { if stream.Subject != uuid.Nil { streamWire.Subject = stream.Subject.String() } - if stream.Descriptor != uuid.Nil { - streamWire.Descriptor_ = stream.Descriptor.String() + if stream.Subcontext != uuid.Nil { + streamWire.Subcontext = stream.Subcontext.String() } // Find the list of event recipients first so we can skip event encoding work if it's not necessary. @@ -826,8 +826,8 @@ func (t *LocalTracker) processEvent(e *PresenceEvent) { if stream.Subject != uuid.Nil { streamWire.Subject = stream.Subject.String() } - if stream.Descriptor != uuid.Nil { - streamWire.Descriptor_ = stream.Descriptor.String() + if stream.Subcontext != uuid.Nil { + streamWire.Subcontext = stream.Subcontext.String() } // Find the list of event recipients first so we can skip event encoding work if it's not necessary. -- GitLab