diff --git a/Assets/Scripts/Generate/NetworkProtocol/ActivityMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/ActivityMessage.cs deleted file mode 100644 index b63f5ca3c..000000000 --- a/Assets/Scripts/Generate/NetworkProtocol/ActivityMessage.cs +++ /dev/null @@ -1,12 +0,0 @@ -using ProtoBuf; - -using System.Collections.Generic; -using Fantasy; -using NBC; -using NBC.Network.Interface; -using NBC.Serialize; -#pragma warning disable CS8618 - -namespace NBC -{ -} diff --git a/Assets/Scripts/Generate/NetworkProtocol/ChatMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/ChatMessage.cs index 4a6dde589..b691be955 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/ChatMessage.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/ChatMessage.cs @@ -252,6 +252,52 @@ namespace NBC public uint ErrorCode { get; set; } } /// + /// 获取离线时的未读私聊 + /// + [ProtoContract] + public partial class C2Chat_GetOfflineMessageRequest : AMessage, ICustomRouteRequest, IProto + { + public static C2Chat_GetOfflineMessageRequest Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + [ProtoIgnore] + public Caht2C_GetOfflineMessageResponse ResponseType { get; set; } + public uint OpCode() { return OuterOpcode.C2Chat_GetOfflineMessageRequest; } + [ProtoIgnore] + public int RouteType => Fantasy.RouteType.ChatRoute; + } + /// + /// 发送聊天响应 + /// + [ProtoContract] + public partial class Caht2C_GetOfflineMessageResponse : AMessage, ICustomRouteResponse, IProto + { + public static Caht2C_GetOfflineMessageResponse Create(Scene scene) + { + return scene.MessagePoolComponent.Rent(); + } + public override void Dispose() + { + ErrorCode = default; + Message.Clear(); +#if FANTASY_NET || FANTASY_UNITY + GetScene().MessagePoolComponent.Return(this); +#endif + } + public uint OpCode() { return OuterOpcode.Caht2C_GetOfflineMessageResponse; } + [ProtoMember(1)] + public List Message = new List(); + [ProtoMember(2)] + public uint ErrorCode { get; set; } + } + /// /// 推送消息 /// [ProtoContract] diff --git a/Assets/Scripts/Generate/NetworkProtocol/ChatMessage.cs.meta b/Assets/Scripts/Generate/NetworkProtocol/ChatMessage.cs.meta new file mode 100644 index 000000000..de3ba81bd --- /dev/null +++ b/Assets/Scripts/Generate/NetworkProtocol/ChatMessage.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d7ddd93076e86d249a0cd3f37f357e31 \ No newline at end of file diff --git a/Assets/Scripts/Generate/NetworkProtocol/ClubMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/ClubMessage.cs deleted file mode 100644 index fa41044ce..000000000 --- a/Assets/Scripts/Generate/NetworkProtocol/ClubMessage.cs +++ /dev/null @@ -1,468 +0,0 @@ -using ProtoBuf; - -using System.Collections.Generic; -using Fantasy; -using NBC; -using NBC.Network.Interface; -using NBC.Serialize; -#pragma warning disable CS8618 - -namespace NBC -{ - [ProtoContract] - public partial class ClubInfo : AMessage, IProto - { - public static ClubInfo Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - Id = default; - Name = default; - CreateTime = default; - OwnerId = default; - MemberCount = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - [ProtoMember(1)] - public long Id { get; set; } - [ProtoMember(2)] - public string Name { get; set; } - [ProtoMember(3)] - public long CreateTime { get; set; } - [ProtoMember(4)] - public long OwnerId { get; set; } - [ProtoMember(5)] - public int MemberCount { get; set; } - } - /// - /// 请求创建工会 - /// - [ProtoContract] - public partial class C2Club_CreateRequest : AMessage, ICustomRouteRequest, IProto - { - public static C2Club_CreateRequest Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - Name = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - [ProtoIgnore] - public Caht2C_GetChatRecordResponse ResponseType { get; set; } - public uint OpCode() { return OuterOpcode.C2Club_CreateRequest; } - [ProtoIgnore] - public int RouteType => Fantasy.RouteType.ClubRoute; - [ProtoMember(1)] - public string Name { get; set; } - } - /// - /// 创建工会响应 - /// - [ProtoContract] - public partial class Club2C_CreateResponse : AMessage, ICustomRouteResponse, IProto - { - public static Club2C_CreateResponse Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ErrorCode = default; - Club = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - public uint OpCode() { return OuterOpcode.Club2C_CreateResponse; } - [ProtoMember(1)] - public ClubInfo Club { get; set; } - [ProtoMember(2)] - public uint ErrorCode { get; set; } - } - /// - /// 请求工会信息 - /// - [ProtoContract] - public partial class C2Club_GetClubInfoRequest : AMessage, ICustomRouteRequest, IProto - { - public static C2Club_GetClubInfoRequest Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ClubId = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - [ProtoIgnore] - public Club2C_GetClubInfoResponse ResponseType { get; set; } - public uint OpCode() { return OuterOpcode.C2Club_GetClubInfoRequest; } - [ProtoIgnore] - public int RouteType => Fantasy.RouteType.ClubRoute; - [ProtoMember(1)] - public long ClubId { get; set; } - } - /// - /// 响应工会信息 - /// - [ProtoContract] - public partial class Club2C_GetClubInfoResponse : AMessage, ICustomRouteResponse, IProto - { - public static Club2C_GetClubInfoResponse Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ErrorCode = default; - Name = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - public uint OpCode() { return OuterOpcode.Club2C_GetClubInfoResponse; } - [ProtoMember(1)] - public string Name { get; set; } - [ProtoMember(2)] - public uint ErrorCode { get; set; } - } - /// - /// 请求工会成员列表 - /// - [ProtoContract] - public partial class C2Club_GetMemberListRequest : AMessage, ICustomRouteRequest, IProto - { - public static C2Club_GetMemberListRequest Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ClubId = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - [ProtoIgnore] - public Club2C_GetMemberListResponse ResponseType { get; set; } - public uint OpCode() { return OuterOpcode.C2Club_GetMemberListRequest; } - [ProtoIgnore] - public int RouteType => Fantasy.RouteType.ClubRoute; - [ProtoMember(1)] - public long ClubId { get; set; } - } - /// - /// 响应工会成员列表 - /// - [ProtoContract] - public partial class Club2C_GetMemberListResponse : AMessage, ICustomRouteResponse, IProto - { - public static Club2C_GetMemberListResponse Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ErrorCode = default; - Members.Clear(); -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - public uint OpCode() { return OuterOpcode.Club2C_GetMemberListResponse; } - [ProtoMember(1)] - public List Members = new List(); - [ProtoMember(2)] - public uint ErrorCode { get; set; } - } - /// - /// 获取工会列表请求 - /// - [ProtoContract] - public partial class C2Club_GetClubListRequest : AMessage, ICustomRouteRequest, IProto - { - public static C2Club_GetClubListRequest Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - [ProtoIgnore] - public Club2C_GetClubListResponse ResponseType { get; set; } - public uint OpCode() { return OuterOpcode.C2Club_GetClubListRequest; } - [ProtoIgnore] - public int RouteType => Fantasy.RouteType.ClubRoute; - } - /// - /// 获取工会列表响应 - /// - [ProtoContract] - public partial class Club2C_GetClubListResponse : AMessage, ICustomRouteResponse, IProto - { - public static Club2C_GetClubListResponse Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ErrorCode = default; - Clubs.Clear(); -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - public uint OpCode() { return OuterOpcode.Club2C_GetClubListResponse; } - [ProtoMember(1)] - public List Clubs = new List(); - [ProtoMember(2)] - public uint ErrorCode { get; set; } - } - /// - /// 请求加入工会 - /// - [ProtoContract] - public partial class C2Club_JoinClubRequest : AMessage, ICustomRouteRequest, IProto - { - public static C2Club_JoinClubRequest Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ClubId = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - [ProtoIgnore] - public Club2C_JoinClubResponse ResponseType { get; set; } - public uint OpCode() { return OuterOpcode.C2Club_JoinClubRequest; } - [ProtoIgnore] - public int RouteType => Fantasy.RouteType.ClubRoute; - [ProtoMember(1)] - public long ClubId { get; set; } - } - /// - /// 响应加入工会 - /// - [ProtoContract] - public partial class Club2C_JoinClubResponse : AMessage, ICustomRouteResponse, IProto - { - public static Club2C_JoinClubResponse Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ErrorCode = default; - Club = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - public uint OpCode() { return OuterOpcode.Club2C_JoinClubResponse; } - [ProtoMember(1)] - public ClubInfo Club { get; set; } - [ProtoMember(2)] - public uint ErrorCode { get; set; } - } - /// - /// 请求退出工会 - /// - [ProtoContract] - public partial class C2Club_LeaveClubRequest : AMessage, ICustomRouteRequest, IProto - { - public static C2Club_LeaveClubRequest Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ClubId = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - [ProtoIgnore] - public Club2C_LeaveClubResponse ResponseType { get; set; } - public uint OpCode() { return OuterOpcode.C2Club_LeaveClubRequest; } - [ProtoIgnore] - public int RouteType => Fantasy.RouteType.ClubRoute; - [ProtoMember(1)] - public long ClubId { get; set; } - } - /// - /// 响应退出工会 - /// - [ProtoContract] - public partial class Club2C_LeaveClubResponse : AMessage, ICustomRouteResponse, IProto - { - public static Club2C_LeaveClubResponse Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ErrorCode = default; - ClubId = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - public uint OpCode() { return OuterOpcode.Club2C_LeaveClubResponse; } - [ProtoMember(1)] - public long ClubId { get; set; } - [ProtoMember(2)] - public uint ErrorCode { get; set; } - } - /// - /// 请求解散工会 - /// - [ProtoContract] - public partial class C2Club_DissolveClubRequest : AMessage, ICustomRouteRequest, IProto - { - public static C2Club_DissolveClubRequest Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ClubId = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - [ProtoIgnore] - public Club2C_DissolveClubResponse ResponseType { get; set; } - public uint OpCode() { return OuterOpcode.C2Club_DissolveClubRequest; } - [ProtoIgnore] - public int RouteType => Fantasy.RouteType.ClubRoute; - [ProtoMember(1)] - public long ClubId { get; set; } - } - /// - /// 响应解散工会 - /// - [ProtoContract] - public partial class Club2C_DissolveClubResponse : AMessage, ICustomRouteResponse, IProto - { - public static Club2C_DissolveClubResponse Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ErrorCode = default; - ClubId = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - public uint OpCode() { return OuterOpcode.Club2C_DissolveClubResponse; } - [ProtoMember(1)] - public long ClubId { get; set; } - [ProtoMember(2)] - public uint ErrorCode { get; set; } - } - /// - /// 请求操作申请 - /// - [ProtoContract] - public partial class C2Club_DisposeJoinRequest : AMessage, ICustomRouteRequest, IProto - { - public static C2Club_DisposeJoinRequest Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ClubId = default; - ApplicantId = default; - Agree = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - [ProtoIgnore] - public Club2C_DisposeJoinResponse ResponseType { get; set; } - public uint OpCode() { return OuterOpcode.C2Club_DisposeJoinRequest; } - [ProtoIgnore] - public int RouteType => Fantasy.RouteType.ClubRoute; - [ProtoMember(1)] - public long ClubId { get; set; } - [ProtoMember(2)] - public long ApplicantId { get; set; } - [ProtoMember(3)] - public int Agree { get; set; } - } - /// - /// 响应操作申请 - /// - [ProtoContract] - public partial class Club2C_DisposeJoinResponse : AMessage, ICustomRouteResponse, IProto - { - public static Club2C_DisposeJoinResponse Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - ErrorCode = default; - ClubId = default; - ApplicantId = default; - Agree = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - public uint OpCode() { return OuterOpcode.Club2C_DisposeJoinResponse; } - [ProtoMember(1)] - public long ClubId { get; set; } - [ProtoMember(2)] - public long ApplicantId { get; set; } - [ProtoMember(3)] - public int Agree { get; set; } - [ProtoMember(4)] - public uint ErrorCode { get; set; } - } - /// - /// 推送消息 - /// - [ProtoContract] - public partial class Club2C_ClubChange : AMessage, ICustomRouteMessage, IProto - { - public static Club2C_ClubChange Create(Scene scene) - { - return scene.MessagePoolComponent.Rent(); - } - public override void Dispose() - { - Club = default; - ChangeType = default; -#if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); -#endif - } - public uint OpCode() { return OuterOpcode.Club2C_ClubChange; } - [ProtoIgnore] - public int RouteType => Fantasy.RouteType.ClubRoute; - [ProtoMember(1)] - public ClubInfo Club { get; set; } - [ProtoMember(2)] - public int ChangeType { get; set; } - } -} diff --git a/Assets/Scripts/Generate/NetworkProtocol/GlobalData.cs b/Assets/Scripts/Generate/NetworkProtocol/GlobalData.cs index 13a49d332..1b60e9bac 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/GlobalData.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/GlobalData.cs @@ -49,7 +49,7 @@ namespace NBC [ProtoMember(1)] public int Type { get; set; } [ProtoMember(2)] - public int Source { get; set; } + public long Source { get; set; } [ProtoMember(3)] public ChatUserInfo Trigger { get; set; } [ProtoMember(4)] diff --git a/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs b/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs index cdfadff07..82a8453ab 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs @@ -12,32 +12,34 @@ namespace Fantasy public const uint Caht2C_JoinChannelResponse = 2415929107; public const uint C2Chat_SendMessageRequest = 2281711380; public const uint Caht2C_SendMessageResponse = 2415929108; + public const uint C2Chat_GetOfflineMessageRequest = 2281711381; + public const uint Caht2C_GetOfflineMessageResponse = 2415929109; public const uint Chat2C_Message = 2147493651; - public const uint C2Chat_GetChatRecordRequest = 2281711381; - public const uint Caht2C_GetChatRecordResponse = 2415929109; + public const uint C2Chat_GetChatRecordRequest = 2281711382; + public const uint Caht2C_GetChatRecordResponse = 2415929110; public const uint C2A_LoginRequest = 268445457; public const uint A2C_LoginResponse = 402663185; public const uint C2G_LoginRequest = 268445458; public const uint G2C_LoginResponse = 402663186; public const uint G2C_RepeatLogin = 134227729; - public const uint C2Game_GetRoleInfoRequest = 2281711382; - public const uint Game2C_GetRoleInfoResponse = 2415929110; - public const uint C2S_CreateRequest = 2281711383; - public const uint S2C_CreateResponse = 2415929111; - public const uint C2S_GetClubInfoRequest = 2281711384; - public const uint S2C_GetClubInfoResponse = 2415929112; - public const uint C2S_GetMemberListRequest = 2281711385; - public const uint S2C_GetMemberListResponse = 2415929113; - public const uint C2S_GetClubListRequest = 2281711386; - public const uint S2C_GetClubListResponse = 2415929114; - public const uint C2S_JoinClubRequest = 2281711387; - public const uint S2C_JoinClubResponse = 2415929115; - public const uint C2S_LeaveClubRequest = 2281711388; - public const uint S2C_LeaveClubResponse = 2415929116; - public const uint C2S_DissolveClubRequest = 2281711389; - public const uint S2C_DissolveClubResponse = 2415929117; - public const uint C2S_DisposeJoinRequest = 2281711390; - public const uint S2C_DisposeJoinResponse = 2415929118; + public const uint C2Game_GetRoleInfoRequest = 2281711383; + public const uint Game2C_GetRoleInfoResponse = 2415929111; + public const uint C2S_CreateClubRequest = 2281711384; + public const uint S2C_CreateClubResponse = 2415929112; + public const uint C2S_GetClubInfoRequest = 2281711385; + public const uint S2C_GetClubInfoResponse = 2415929113; + public const uint C2S_GetMemberListRequest = 2281711386; + public const uint S2C_GetMemberListResponse = 2415929114; + public const uint C2S_GetClubListRequest = 2281711387; + public const uint S2C_GetClubListResponse = 2415929115; + public const uint C2S_JoinClubRequest = 2281711388; + public const uint S2C_JoinClubResponse = 2415929116; + public const uint C2S_LeaveClubRequest = 2281711389; + public const uint S2C_LeaveClubResponse = 2415929117; + public const uint C2S_DissolveClubRequest = 2281711390; + public const uint S2C_DissolveClubResponse = 2415929118; + public const uint C2S_DisposeJoinRequest = 2281711391; + public const uint S2C_DisposeJoinResponse = 2415929119; public const uint S2C_ClubChange = 2147493652; } } diff --git a/Assets/Scripts/Generate/NetworkProtocol/ShopMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/ShopMessage.cs deleted file mode 100644 index b63f5ca3c..000000000 --- a/Assets/Scripts/Generate/NetworkProtocol/ShopMessage.cs +++ /dev/null @@ -1,12 +0,0 @@ -using ProtoBuf; - -using System.Collections.Generic; -using Fantasy; -using NBC; -using NBC.Network.Interface; -using NBC.Serialize; -#pragma warning disable CS8618 - -namespace NBC -{ -} diff --git a/Assets/Scripts/Generate/NetworkProtocol/SocialMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/SocialMessage.cs index 1e31a5f98..bef5b03f3 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/SocialMessage.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/SocialMessage.cs @@ -42,22 +42,22 @@ namespace NBC /// 请求创建工会 /// [ProtoContract] - public partial class C2S_CreateRequest : AMessage, ICustomRouteRequest, IProto + public partial class C2S_CreateClubRequest : AMessage, ICustomRouteRequest, IProto { - public static C2S_CreateRequest Create(Scene scene) + public static C2S_CreateClubRequest Create(Scene scene) { - return scene.MessagePoolComponent.Rent(); + return scene.MessagePoolComponent.Rent(); } public override void Dispose() { Name = default; #if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); + GetScene().MessagePoolComponent.Return(this); #endif } [ProtoIgnore] - public Caht2C_GetChatRecordResponse ResponseType { get; set; } - public uint OpCode() { return OuterOpcode.C2S_CreateRequest; } + public S2C_CreateClubResponse ResponseType { get; set; } + public uint OpCode() { return OuterOpcode.C2S_CreateClubRequest; } [ProtoIgnore] public int RouteType => Fantasy.RouteType.SocialRoute; [ProtoMember(1)] @@ -67,21 +67,21 @@ namespace NBC /// 创建工会响应 /// [ProtoContract] - public partial class S2C_CreateResponse : AMessage, ICustomRouteResponse, IProto + public partial class S2C_CreateClubResponse : AMessage, ICustomRouteResponse, IProto { - public static S2C_CreateResponse Create(Scene scene) + public static S2C_CreateClubResponse Create(Scene scene) { - return scene.MessagePoolComponent.Rent(); + return scene.MessagePoolComponent.Rent(); } public override void Dispose() { ErrorCode = default; Club = default; #if FANTASY_NET || FANTASY_UNITY - GetScene().MessagePoolComponent.Return(this); + GetScene().MessagePoolComponent.Return(this); #endif } - public uint OpCode() { return OuterOpcode.S2C_CreateResponse; } + public uint OpCode() { return OuterOpcode.S2C_CreateClubResponse; } [ProtoMember(1)] public ClubInfo Club { get; set; } [ProtoMember(2)] diff --git a/Assets/Scripts/Generate/NetworkProtocol/SocialMessage.cs.meta b/Assets/Scripts/Generate/NetworkProtocol/SocialMessage.cs.meta new file mode 100644 index 000000000..d3017b3d0 --- /dev/null +++ b/Assets/Scripts/Generate/NetworkProtocol/SocialMessage.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 08db1b30625cd6a43864fb852261885f \ No newline at end of file