Skip to main content

source2_demo_protobufs/
common.rs

1#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2pub struct CMsgProtoBufHeader {
3    #[prost(fixed64, optional, tag = "1")]
4    pub client_steam_id: ::core::option::Option<u64>,
5    #[prost(int32, optional, tag = "2")]
6    pub client_session_id: ::core::option::Option<i32>,
7    #[prost(uint32, optional, tag = "3")]
8    pub source_app_id: ::core::option::Option<u32>,
9    #[prost(fixed64, optional, tag = "10", default = "18446744073709551615")]
10    pub job_id_source: ::core::option::Option<u64>,
11    #[prost(fixed64, optional, tag = "11", default = "18446744073709551615")]
12    pub job_id_target: ::core::option::Option<u64>,
13    #[prost(string, optional, tag = "12")]
14    pub target_job_name: ::core::option::Option<::prost::alloc::string::String>,
15    #[prost(int32, optional, tag = "13", default = "2")]
16    pub eresult: ::core::option::Option<i32>,
17    #[prost(string, optional, tag = "14")]
18    pub error_message: ::core::option::Option<::prost::alloc::string::String>,
19    #[prost(enumeration = "GcProtoBufMsgSrc", optional, tag = "200", default = "Unspecified")]
20    pub gc_msg_src: ::core::option::Option<i32>,
21    #[prost(int32, optional, tag = "201", default = "-1")]
22    pub gc_dir_index_source: ::core::option::Option<i32>,
23}
24#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
25pub struct CGcSystemMsgGetAccountDetails {
26    #[prost(fixed64, optional, tag = "1")]
27    pub steamid: ::core::option::Option<u64>,
28    #[prost(uint32, optional, tag = "2")]
29    pub appid: ::core::option::Option<u32>,
30}
31#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
32pub struct CGcSystemMsgGetAccountDetailsResponse {
33    #[prost(uint32, optional, tag = "1", default = "2")]
34    pub eresult_deprecated: ::core::option::Option<u32>,
35    #[prost(string, optional, tag = "2")]
36    pub account_name: ::core::option::Option<::prost::alloc::string::String>,
37    #[prost(string, optional, tag = "3")]
38    pub persona_name: ::core::option::Option<::prost::alloc::string::String>,
39    #[prost(bool, optional, tag = "26")]
40    pub is_profile_created: ::core::option::Option<bool>,
41    #[prost(bool, optional, tag = "4")]
42    pub is_profile_public: ::core::option::Option<bool>,
43    #[prost(bool, optional, tag = "5")]
44    pub is_inventory_public: ::core::option::Option<bool>,
45    #[prost(bool, optional, tag = "7")]
46    pub is_vac_banned: ::core::option::Option<bool>,
47    #[prost(bool, optional, tag = "8")]
48    pub is_cyber_cafe: ::core::option::Option<bool>,
49    #[prost(bool, optional, tag = "9")]
50    pub is_school_account: ::core::option::Option<bool>,
51    #[prost(bool, optional, tag = "10")]
52    pub is_limited: ::core::option::Option<bool>,
53    #[prost(bool, optional, tag = "11")]
54    pub is_subscribed: ::core::option::Option<bool>,
55    #[prost(uint32, optional, tag = "12")]
56    pub package: ::core::option::Option<u32>,
57    #[prost(bool, optional, tag = "13")]
58    pub is_free_trial_account: ::core::option::Option<bool>,
59    #[prost(uint32, optional, tag = "14")]
60    pub free_trial_expiration: ::core::option::Option<u32>,
61    #[prost(bool, optional, tag = "15")]
62    pub is_low_violence: ::core::option::Option<bool>,
63    #[prost(bool, optional, tag = "16")]
64    pub is_account_locked_down: ::core::option::Option<bool>,
65    #[prost(bool, optional, tag = "17")]
66    pub is_community_banned: ::core::option::Option<bool>,
67    #[prost(bool, optional, tag = "18")]
68    pub is_trade_banned: ::core::option::Option<bool>,
69    #[prost(uint32, optional, tag = "19")]
70    pub trade_ban_expiration: ::core::option::Option<u32>,
71    #[prost(uint32, optional, tag = "20")]
72    pub accountid: ::core::option::Option<u32>,
73    #[prost(uint32, optional, tag = "21")]
74    pub suspension_end_time: ::core::option::Option<u32>,
75    #[prost(string, optional, tag = "22")]
76    pub currency: ::core::option::Option<::prost::alloc::string::String>,
77    #[prost(uint32, optional, tag = "23")]
78    pub steam_level: ::core::option::Option<u32>,
79    #[prost(uint32, optional, tag = "24")]
80    pub friend_count: ::core::option::Option<u32>,
81    #[prost(uint32, optional, tag = "25")]
82    pub account_creation_time: ::core::option::Option<u32>,
83    #[prost(bool, optional, tag = "27")]
84    pub is_steamguard_enabled: ::core::option::Option<bool>,
85    #[prost(bool, optional, tag = "28")]
86    pub is_phone_verified: ::core::option::Option<bool>,
87    #[prost(bool, optional, tag = "29")]
88    pub is_two_factor_auth_enabled: ::core::option::Option<bool>,
89    #[prost(uint32, optional, tag = "30")]
90    pub two_factor_enabled_time: ::core::option::Option<u32>,
91    #[prost(uint32, optional, tag = "31")]
92    pub phone_verification_time: ::core::option::Option<u32>,
93    #[prost(uint64, optional, tag = "33")]
94    pub phone_id: ::core::option::Option<u64>,
95    #[prost(bool, optional, tag = "34")]
96    pub is_phone_identifying: ::core::option::Option<bool>,
97    #[prost(uint32, optional, tag = "35")]
98    pub rt_identity_linked: ::core::option::Option<u32>,
99    #[prost(uint32, optional, tag = "36")]
100    pub rt_birth_date: ::core::option::Option<u32>,
101    #[prost(string, optional, tag = "37")]
102    pub txn_country_code: ::core::option::Option<::prost::alloc::string::String>,
103    #[prost(bool, optional, tag = "38")]
104    pub has_accepted_china_ssa: ::core::option::Option<bool>,
105    #[prost(bool, optional, tag = "39")]
106    pub is_banned_steam_china: ::core::option::Option<bool>,
107}
108#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
109pub struct CIpLocationInfo {
110    #[prost(uint32, optional, tag = "1")]
111    pub ip: ::core::option::Option<u32>,
112    #[prost(float, optional, tag = "2")]
113    pub latitude: ::core::option::Option<f32>,
114    #[prost(float, optional, tag = "3")]
115    pub longitude: ::core::option::Option<f32>,
116    #[prost(string, optional, tag = "4")]
117    pub country: ::core::option::Option<::prost::alloc::string::String>,
118    #[prost(string, optional, tag = "5")]
119    pub state: ::core::option::Option<::prost::alloc::string::String>,
120    #[prost(string, optional, tag = "6")]
121    pub city: ::core::option::Option<::prost::alloc::string::String>,
122}
123#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
124pub struct CGcMsgGetIpLocationResponse {
125    #[prost(message, repeated, tag = "1")]
126    pub infos: ::prost::alloc::vec::Vec<CIpLocationInfo>,
127}
128#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
129#[repr(i32)]
130pub enum EgcPlatform {
131    KEGcPlatformNone = 0,
132    KEGcPlatformPc = 1,
133    KEGcPlatformMac = 2,
134    KEGcPlatformLinux = 3,
135    KEGcPlatformAndroid = 4,
136    KEGcPlatformIOs = 5,
137}
138#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
139#[repr(i32)]
140pub enum GcProtoBufMsgSrc {
141    Unspecified = 0,
142    FromSystem = 1,
143    FromSteamId = 2,
144    FromGc = 3,
145    ReplySystem = 4,
146    SpoofedSteamId = 5,
147}
148#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
149#[repr(i32)]
150pub enum EProtoDebugVisiblity {
151    KEProtoDebugVisibilityAlways = 0,
152    KEProtoDebugVisibilityServer = 70,
153    KEProtoDebugVisibilityValveServer = 80,
154    KEProtoDebugVisibilityGc = 90,
155    KEProtoDebugVisibilityNever = 100,
156}
157#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
158#[repr(i32)]
159pub enum EProtoExecutionSite {
160    KEProtoExecutionSiteUnknown = 0,
161    KEProtoExecutionSiteSteamClient = 3,
162}
163#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
164pub struct CMsgSteamLearnDataSourceDescObject {
165    #[prost(message, repeated, tag = "1")]
166    pub elements: ::prost::alloc::vec::Vec<CMsgSteamLearnDataSourceDescElement>,
167}
168#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
169pub struct CMsgSteamLearnDataSourceDescElement {
170    #[prost(string, optional, tag = "1")]
171    pub name: ::core::option::Option<::prost::alloc::string::String>,
172    #[prost(enumeration = "ESteamLearnDataType", optional, tag = "2", default = "SteamlearnDatatypeInvalid")]
173    pub data_type: ::core::option::Option<i32>,
174    #[prost(message, optional, tag = "3")]
175    pub object: ::core::option::Option<CMsgSteamLearnDataSourceDescObject>,
176    #[prost(uint32, optional, tag = "4")]
177    pub count: ::core::option::Option<u32>,
178}
179#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
180pub struct CMsgSteamLearnDataSource {
181    #[prost(uint32, optional, tag = "1")]
182    pub id: ::core::option::Option<u32>,
183    #[prost(string, optional, tag = "2")]
184    pub name: ::core::option::Option<::prost::alloc::string::String>,
185    #[prost(uint32, optional, tag = "3")]
186    pub version: ::core::option::Option<u32>,
187    #[prost(string, optional, tag = "4")]
188    pub source_description: ::core::option::Option<::prost::alloc::string::String>,
189    #[prost(message, optional, tag = "5")]
190    pub structure: ::core::option::Option<CMsgSteamLearnDataSourceDescObject>,
191    #[prost(uint32, optional, tag = "6")]
192    pub structure_crc: ::core::option::Option<u32>,
193    #[prost(uint32, optional, tag = "7")]
194    pub cache_duration_seconds: ::core::option::Option<u32>,
195}
196#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
197pub struct CMsgSteamLearnDataObject {
198    #[prost(message, repeated, tag = "1")]
199    pub elements: ::prost::alloc::vec::Vec<CMsgSteamLearnDataElement>,
200}
201#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
202pub struct CMsgSteamLearnDataElement {
203    #[prost(string, optional, tag = "1")]
204    pub name: ::core::option::Option<::prost::alloc::string::String>,
205    #[prost(int32, repeated, packed = "false", tag = "20")]
206    pub data_int32s: ::prost::alloc::vec::Vec<i32>,
207    #[prost(float, repeated, packed = "false", tag = "21")]
208    pub data_floats: ::prost::alloc::vec::Vec<f32>,
209    #[prost(bool, repeated, packed = "false", tag = "22")]
210    pub data_bools: ::prost::alloc::vec::Vec<bool>,
211    #[prost(string, repeated, tag = "23")]
212    pub data_strings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
213    #[prost(message, repeated, tag = "24")]
214    pub data_objects: ::prost::alloc::vec::Vec<CMsgSteamLearnDataObject>,
215}
216#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
217pub struct CMsgSteamLearnData {
218    #[prost(uint32, optional, tag = "1")]
219    pub data_source_id: ::core::option::Option<u32>,
220    #[prost(uint64, repeated, packed = "false", tag = "2")]
221    pub keys: ::prost::alloc::vec::Vec<u64>,
222    #[prost(message, optional, tag = "3")]
223    pub data_object: ::core::option::Option<CMsgSteamLearnDataObject>,
224}
225#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
226pub struct CMsgSteamLearnDataList {
227    #[prost(message, repeated, tag = "1")]
228    pub data: ::prost::alloc::vec::Vec<CMsgSteamLearnData>,
229}
230#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
231pub struct CMsgSteamLearnRegisterDataSourceRequest {
232    #[prost(string, optional, tag = "1")]
233    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
234    #[prost(message, optional, tag = "3")]
235    pub data_source: ::core::option::Option<CMsgSteamLearnDataSource>,
236}
237#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
238pub struct CMsgSteamLearnRegisterDataSourceResponse {
239    #[prost(
240        enumeration = "ESteammLearnRegisterDataSourceResult",
241        optional,
242        tag = "1",
243        default = "SteamlearnRegisterDataSourceResultError"
244    )]
245    pub result: ::core::option::Option<i32>,
246    #[prost(message, optional, tag = "2")]
247    pub data_source: ::core::option::Option<CMsgSteamLearnDataSource>,
248}
249#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
250pub struct CMsgSteamLearnCacheDataRequest {
251    #[prost(string, optional, tag = "1")]
252    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
253    #[prost(message, optional, tag = "3")]
254    pub data: ::core::option::Option<CMsgSteamLearnData>,
255}
256#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
257pub struct CMsgSteamLearnCacheDataResponse {
258    #[prost(enumeration = "ESteamLearnCacheDataResult", optional, tag = "1", default = "SteamlearnCacheDataError")]
259    pub cache_data_result: ::core::option::Option<i32>,
260}
261#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
262pub struct CMsgSteamLearnSnapshotProjectRequest {
263    #[prost(string, optional, tag = "1")]
264    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
265    #[prost(uint32, optional, tag = "3")]
266    pub project_id: ::core::option::Option<u32>,
267    #[prost(uint32, optional, tag = "7")]
268    pub published_version: ::core::option::Option<u32>,
269    #[prost(uint64, repeated, packed = "false", tag = "4")]
270    pub keys: ::prost::alloc::vec::Vec<u64>,
271    #[prost(message, repeated, tag = "5")]
272    pub data: ::prost::alloc::vec::Vec<CMsgSteamLearnData>,
273    #[prost(uint32, optional, tag = "6")]
274    pub pending_data_limit_seconds: ::core::option::Option<u32>,
275}
276#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
277pub struct CMsgSteamLearnSnapshotProjectResponse {
278    #[prost(
279        enumeration = "ESteamLearnSnapshotProjectResult",
280        optional,
281        tag = "1",
282        default = "SteamlearnSnapshotProjectError"
283    )]
284    pub snapshot_result: ::core::option::Option<i32>,
285}
286#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
287pub struct CMsgSteamLearnBatchOperationRequest {
288    #[prost(message, repeated, tag = "1")]
289    pub cache_data_requests: ::prost::alloc::vec::Vec<CMsgSteamLearnCacheDataRequest>,
290    #[prost(message, repeated, tag = "2")]
291    pub snapshot_requests: ::prost::alloc::vec::Vec<CMsgSteamLearnSnapshotProjectRequest>,
292    #[prost(message, repeated, tag = "3")]
293    pub inference_requests: ::prost::alloc::vec::Vec<CMsgSteamLearnInferenceRequest>,
294}
295#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
296pub struct CMsgSteamLearnBatchOperationResponse {
297    #[prost(message, repeated, tag = "1")]
298    pub cache_data_responses: ::prost::alloc::vec::Vec<CMsgSteamLearnCacheDataResponse>,
299    #[prost(message, repeated, tag = "2")]
300    pub snapshot_responses: ::prost::alloc::vec::Vec<CMsgSteamLearnSnapshotProjectResponse>,
301    #[prost(message, repeated, tag = "3")]
302    pub inference_responses: ::prost::alloc::vec::Vec<CMsgSteamLearnInferenceResponse>,
303}
304#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
305pub struct CMsgSteamLearnAccessTokens {
306    #[prost(string, optional, tag = "1")]
307    pub register_data_source_access_token: ::core::option::Option<::prost::alloc::string::String>,
308    #[prost(message, repeated, tag = "2")]
309    pub cache_data_access_tokens: ::prost::alloc::vec::Vec<c_msg_steam_learn_access_tokens::CacheDataAccessToken>,
310    #[prost(message, repeated, tag = "3")]
311    pub snapshot_project_access_tokens: ::prost::alloc::vec::Vec<c_msg_steam_learn_access_tokens::SnapshotProjectAccessToken>,
312    #[prost(message, repeated, tag = "4")]
313    pub inference_access_tokens: ::prost::alloc::vec::Vec<c_msg_steam_learn_access_tokens::InferenceAccessToken>,
314}
315pub mod c_msg_steam_learn_access_tokens {
316    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
317    pub struct CacheDataAccessToken {
318        #[prost(uint32, optional, tag = "1")]
319        pub data_source_id: ::core::option::Option<u32>,
320        #[prost(string, optional, tag = "2")]
321        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
322    }
323    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
324    pub struct SnapshotProjectAccessToken {
325        #[prost(uint32, optional, tag = "1")]
326        pub project_id: ::core::option::Option<u32>,
327        #[prost(string, optional, tag = "2")]
328        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
329    }
330    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
331    pub struct InferenceAccessToken {
332        #[prost(uint32, optional, tag = "1")]
333        pub project_id: ::core::option::Option<u32>,
334        #[prost(string, optional, tag = "2")]
335        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
336    }
337}
338#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
339pub struct CMsgSteamLearnGetAccessTokensRequest {
340    #[prost(uint32, optional, tag = "1")]
341    pub appid: ::core::option::Option<u32>,
342}
343#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
344pub struct CMsgSteamLearnGetAccessTokensResponse {
345    #[prost(
346        enumeration = "ESteamLearnGetAccessTokensResult",
347        optional,
348        tag = "1",
349        default = "SteamlearnGetAccessTokensError"
350    )]
351    pub result: ::core::option::Option<i32>,
352    #[prost(message, optional, tag = "2")]
353    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
354}
355#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
356pub struct CMsgInferenceIterateBeamSearch {
357    #[prost(uint32, optional, tag = "1")]
358    pub beam_length: ::core::option::Option<u32>,
359    #[prost(uint32, optional, tag = "2")]
360    pub beam_width: ::core::option::Option<u32>,
361    #[prost(float, optional, tag = "3")]
362    pub item_decay: ::core::option::Option<f32>,
363    #[prost(uint32, optional, tag = "4")]
364    pub next_item_count: ::core::option::Option<u32>,
365    #[prost(message, repeated, tag = "5")]
366    pub item_scalars: ::prost::alloc::vec::Vec<c_msg_inference_iterate_beam_search::CustomItemScalar>,
367    #[prost(uint32, optional, tag = "7")]
368    pub item_sequence_end: ::core::option::Option<u32>,
369    #[prost(float, optional, tag = "8")]
370    pub item_sequence_end_threshold: ::core::option::Option<f32>,
371    #[prost(float, optional, tag = "9")]
372    pub repeat_multiplier: ::core::option::Option<f32>,
373}
374pub mod c_msg_inference_iterate_beam_search {
375    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
376    pub struct CustomItemScalar {
377        #[prost(uint32, optional, tag = "1")]
378        pub item: ::core::option::Option<u32>,
379        #[prost(float, optional, tag = "2")]
380        pub scale: ::core::option::Option<f32>,
381    }
382}
383#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
384pub struct CMsgSteamLearnInferenceRequest {
385    #[prost(string, optional, tag = "1")]
386    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
387    #[prost(uint32, optional, tag = "3")]
388    pub project_id: ::core::option::Option<u32>,
389    #[prost(uint32, optional, tag = "4")]
390    pub published_version: ::core::option::Option<u32>,
391    #[prost(uint32, optional, tag = "5")]
392    pub override_train_id: ::core::option::Option<u32>,
393    #[prost(message, optional, tag = "6")]
394    pub data: ::core::option::Option<CMsgSteamLearnDataList>,
395    #[prost(float, repeated, packed = "false", tag = "7")]
396    pub additional_data: ::prost::alloc::vec::Vec<f32>,
397    #[prost(uint64, repeated, packed = "false", tag = "8")]
398    pub keys: ::prost::alloc::vec::Vec<u64>,
399    #[prost(string, optional, tag = "9")]
400    pub named_inference: ::core::option::Option<::prost::alloc::string::String>,
401    #[prost(message, optional, tag = "13")]
402    pub iterate_beam_search: ::core::option::Option<CMsgInferenceIterateBeamSearch>,
403    #[prost(uint32, optional, tag = "14")]
404    pub debug_spew: ::core::option::Option<u32>,
405}
406#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
407pub struct CMsgSteamLearnInferenceMetadataRequest {
408    #[prost(string, optional, tag = "1")]
409    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
410    #[prost(uint32, optional, tag = "3")]
411    pub project_id: ::core::option::Option<u32>,
412    #[prost(uint32, optional, tag = "4")]
413    pub published_version: ::core::option::Option<u32>,
414    #[prost(uint32, optional, tag = "5")]
415    pub override_train_id: ::core::option::Option<u32>,
416}
417#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
418pub struct CMsgSteamLearnInferenceMetadataBackendRequest {
419    #[prost(uint32, optional, tag = "1")]
420    pub project_id: ::core::option::Option<u32>,
421    #[prost(uint32, optional, tag = "2")]
422    pub fetch_id: ::core::option::Option<u32>,
423}
424#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
425pub struct CMsgSteamLearnInferenceMetadataResponse {
426    #[prost(
427        enumeration = "ESteamLearnInferenceMetadataResult",
428        optional,
429        tag = "1",
430        default = "SteamlearnInferenceMetadataError"
431    )]
432    pub inference_metadata_result: ::core::option::Option<i32>,
433    #[prost(message, optional, tag = "2")]
434    pub row_range: ::core::option::Option<c_msg_steam_learn_inference_metadata_response::RowRange>,
435    #[prost(message, repeated, tag = "3")]
436    pub ranges: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::Range>,
437    #[prost(message, repeated, tag = "4")]
438    pub std_devs: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::StdDev>,
439    #[prost(message, repeated, tag = "5")]
440    pub compact_tables: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::CompactTable>,
441    #[prost(message, repeated, tag = "9")]
442    pub sequence_tables: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::SequenceTable>,
443    #[prost(message, repeated, tag = "6")]
444    pub kmeans: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::KMeans>,
445    #[prost(message, repeated, tag = "8")]
446    pub app_info: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::AppInfoEntry>,
447    #[prost(message, optional, tag = "7")]
448    pub snapshot_histogram: ::core::option::Option<c_msg_steam_learn_inference_metadata_response::SnapshotHistogram>,
449}
450pub mod c_msg_steam_learn_inference_metadata_response {
451    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
452    pub struct RowRange {
453        #[prost(uint64, optional, tag = "1")]
454        pub min_row: ::core::option::Option<u64>,
455        #[prost(uint64, optional, tag = "2")]
456        pub max_row: ::core::option::Option<u64>,
457    }
458    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
459    pub struct Range {
460        #[prost(string, optional, tag = "1")]
461        pub data_element_path: ::core::option::Option<::prost::alloc::string::String>,
462        #[prost(float, optional, tag = "2")]
463        pub min_value: ::core::option::Option<f32>,
464        #[prost(float, optional, tag = "3")]
465        pub max_value: ::core::option::Option<f32>,
466    }
467    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
468    pub struct StdDev {
469        #[prost(string, optional, tag = "1")]
470        pub data_element_path: ::core::option::Option<::prost::alloc::string::String>,
471        #[prost(float, optional, tag = "2")]
472        pub mean: ::core::option::Option<f32>,
473        #[prost(float, optional, tag = "3")]
474        pub std_dev: ::core::option::Option<f32>,
475    }
476    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
477    pub struct CompactTable {
478        #[prost(string, optional, tag = "1")]
479        pub name: ::core::option::Option<::prost::alloc::string::String>,
480        #[prost(message, repeated, tag = "2")]
481        pub map_values: ::prost::alloc::vec::Vec<compact_table::MapValuesEntry>,
482        #[prost(message, repeated, tag = "3")]
483        pub map_mappings: ::prost::alloc::vec::Vec<compact_table::MapMappingsEntry>,
484    }
485    pub mod compact_table {
486        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
487        pub struct Entry {
488            #[prost(uint32, optional, tag = "1")]
489            pub value: ::core::option::Option<u32>,
490            #[prost(uint32, optional, tag = "2")]
491            pub mapping: ::core::option::Option<u32>,
492            #[prost(uint64, optional, tag = "3")]
493            pub count: ::core::option::Option<u64>,
494        }
495        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
496        pub struct MapValuesEntry {
497            #[prost(uint32, optional, tag = "1")]
498            pub key: ::core::option::Option<u32>,
499            #[prost(message, optional, tag = "2")]
500            pub value: ::core::option::Option<Entry>,
501        }
502        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
503        pub struct MapMappingsEntry {
504            #[prost(uint32, optional, tag = "1")]
505            pub key: ::core::option::Option<u32>,
506            #[prost(message, optional, tag = "2")]
507            pub value: ::core::option::Option<Entry>,
508        }
509    }
510    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
511    pub struct SequenceTable {
512        #[prost(string, optional, tag = "1")]
513        pub name: ::core::option::Option<::prost::alloc::string::String>,
514        #[prost(message, repeated, tag = "2")]
515        pub map_values: ::prost::alloc::vec::Vec<sequence_table::MapValuesEntry>,
516        #[prost(message, repeated, tag = "3")]
517        pub map_mappings: ::prost::alloc::vec::Vec<sequence_table::MapMappingsEntry>,
518        #[prost(uint64, optional, tag = "4")]
519        pub total_count: ::core::option::Option<u64>,
520    }
521    pub mod sequence_table {
522        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
523        pub struct Entry {
524            #[prost(uint32, repeated, packed = "false", tag = "1")]
525            pub values: ::prost::alloc::vec::Vec<u32>,
526            #[prost(uint32, optional, tag = "2")]
527            pub crc: ::core::option::Option<u32>,
528            #[prost(uint32, optional, tag = "3")]
529            pub count: ::core::option::Option<u32>,
530        }
531        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
532        pub struct MapValuesEntry {
533            #[prost(uint32, optional, tag = "1")]
534            pub key: ::core::option::Option<u32>,
535            #[prost(message, optional, tag = "2")]
536            pub value: ::core::option::Option<Entry>,
537        }
538        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
539        pub struct MapMappingsEntry {
540            #[prost(string, optional, tag = "1")]
541            pub key: ::core::option::Option<::prost::alloc::string::String>,
542            #[prost(message, optional, tag = "2")]
543            pub value: ::core::option::Option<Entry>,
544        }
545    }
546    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
547    pub struct KMeans {
548        #[prost(string, optional, tag = "1")]
549        pub name: ::core::option::Option<::prost::alloc::string::String>,
550        #[prost(message, repeated, tag = "2")]
551        pub clusters: ::prost::alloc::vec::Vec<k_means::Cluster>,
552    }
553    pub mod k_means {
554        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
555        pub struct Cluster {
556            #[prost(float, optional, tag = "1")]
557            pub x: ::core::option::Option<f32>,
558            #[prost(float, optional, tag = "2")]
559            pub y: ::core::option::Option<f32>,
560            #[prost(float, optional, tag = "3")]
561            pub radius: ::core::option::Option<f32>,
562            #[prost(float, optional, tag = "4")]
563            pub radius_75pct: ::core::option::Option<f32>,
564            #[prost(float, optional, tag = "5")]
565            pub radius_50pct: ::core::option::Option<f32>,
566            #[prost(float, optional, tag = "6")]
567            pub radius_25pct: ::core::option::Option<f32>,
568        }
569    }
570    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
571    pub struct SnapshotHistogram {
572        #[prost(float, optional, tag = "1")]
573        pub min_value: ::core::option::Option<f32>,
574        #[prost(float, optional, tag = "2")]
575        pub max_value: ::core::option::Option<f32>,
576        #[prost(uint32, optional, tag = "3")]
577        pub num_buckets: ::core::option::Option<u32>,
578        #[prost(uint32, repeated, packed = "false", tag = "4")]
579        pub bucket_counts: ::prost::alloc::vec::Vec<u32>,
580    }
581    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
582    pub struct AppInfo {
583        #[prost(string, optional, tag = "1")]
584        pub country_allow: ::core::option::Option<::prost::alloc::string::String>,
585        #[prost(string, optional, tag = "2")]
586        pub country_deny: ::core::option::Option<::prost::alloc::string::String>,
587        #[prost(bool, optional, tag = "3")]
588        pub platform_win: ::core::option::Option<bool>,
589        #[prost(bool, optional, tag = "4")]
590        pub platform_mac: ::core::option::Option<bool>,
591        #[prost(bool, optional, tag = "5")]
592        pub platform_linux: ::core::option::Option<bool>,
593        #[prost(bool, optional, tag = "6")]
594        pub adult_violence: ::core::option::Option<bool>,
595        #[prost(bool, optional, tag = "7")]
596        pub adult_sex: ::core::option::Option<bool>,
597    }
598    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
599    pub struct AppInfoEntry {
600        #[prost(uint32, optional, tag = "1")]
601        pub key: ::core::option::Option<u32>,
602        #[prost(message, optional, tag = "2")]
603        pub value: ::core::option::Option<AppInfo>,
604    }
605}
606#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
607pub struct CMsgSteamLearnInferenceBackendResponse {
608    #[prost(message, repeated, tag = "1")]
609    pub outputs: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_backend_response::Output>,
610}
611pub mod c_msg_steam_learn_inference_backend_response {
612    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
613    pub struct Sequence {
614        #[prost(float, repeated, packed = "false", tag = "1")]
615        pub value: ::prost::alloc::vec::Vec<f32>,
616    }
617    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
618    pub struct RegressionOutput {
619        #[prost(float, optional, tag = "2")]
620        pub value: ::core::option::Option<f32>,
621    }
622    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
623    pub struct NamedInferenceOutput {
624        #[prost(float, repeated, packed = "false", tag = "3")]
625        pub value: ::prost::alloc::vec::Vec<f32>,
626    }
627    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
628    pub struct BinaryCrossEntropyOutput {
629        #[prost(float, optional, tag = "1")]
630        pub value: ::core::option::Option<f32>,
631    }
632    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
633    pub struct MutliBinaryCrossEntropyOutput {
634        #[prost(float, repeated, packed = "false", tag = "1")]
635        pub weight: ::prost::alloc::vec::Vec<f32>,
636        #[prost(float, repeated, packed = "false", tag = "2")]
637        pub value: ::prost::alloc::vec::Vec<f32>,
638        #[prost(message, repeated, tag = "3")]
639        pub value_sequence: ::prost::alloc::vec::Vec<Sequence>,
640    }
641    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
642    pub struct CategoricalCrossEntropyOutput {
643        #[prost(float, repeated, packed = "false", tag = "1")]
644        pub weight: ::prost::alloc::vec::Vec<f32>,
645        #[prost(float, repeated, packed = "false", tag = "2")]
646        pub value: ::prost::alloc::vec::Vec<f32>,
647        #[prost(message, repeated, tag = "3")]
648        pub value_sequence: ::prost::alloc::vec::Vec<Sequence>,
649    }
650    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
651    pub struct Output {
652        #[prost(oneof = "output::ResponseType", tags = "1, 2, 3, 4, 5")]
653        pub response_type: ::core::option::Option<output::ResponseType>,
654    }
655    pub mod output {
656        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Oneof)]
657        pub enum ResponseType {
658            #[prost(message, tag = "1")]
659            BinaryCrossentropy(super::BinaryCrossEntropyOutput),
660            #[prost(message, tag = "2")]
661            CategoricalCrossentropy(super::CategoricalCrossEntropyOutput),
662            #[prost(message, tag = "3")]
663            MultiBinaryCrossentropy(super::MutliBinaryCrossEntropyOutput),
664            #[prost(message, tag = "4")]
665            Regression(super::RegressionOutput),
666            #[prost(message, tag = "5")]
667            NamedInference(super::NamedInferenceOutput),
668        }
669    }
670}
671#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
672pub struct CMsgSteamLearnInferenceResponse {
673    #[prost(enumeration = "ESteamLearnInferenceResult", optional, tag = "1", default = "SteamlearnInferenceError")]
674    pub inference_result: ::core::option::Option<i32>,
675    #[prost(message, optional, tag = "2")]
676    pub backend_response: ::core::option::Option<CMsgSteamLearnInferenceBackendResponse>,
677    #[prost(uint64, repeated, packed = "false", tag = "3")]
678    pub keys: ::prost::alloc::vec::Vec<u64>,
679}
680#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
681#[repr(i32)]
682pub enum ESteamLearnDataType {
683    SteamlearnDatatypeInvalid = 0,
684    SteamlearnDatatypeInt32 = 1,
685    SteamlearnDatatypeFloat32 = 2,
686    SteamlearnDatatypeBool = 3,
687    SteamlearnDatatypeString = 4,
688    SteamlearnDatatypeObject = 5,
689}
690#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
691#[repr(i32)]
692pub enum ESteammLearnRegisterDataSourceResult {
693    SteamlearnRegisterDataSourceResultError = 0,
694    SteamlearnRegisterDataSourceResultSuccessCreated = 1,
695    SteamlearnRegisterDataSourceResultSuccessFound = 2,
696    SteamlearnRegisterDataSourceResultErrorGeneric = 3,
697    SteamlearnRegisterDataSourceResultErrorInvalidName = 4,
698    SteamlearnRegisterDataSourceResultErrorInvalidVersion = 5,
699    SteamlearnRegisterDataSourceResultErrorDataChanged = 6,
700    SteamlearnRegisterDataSourceResultErrorDataInvalid = 7,
701    SteamlearnRegisterDataSourceResultErrorForbidden = 8,
702    SteamlearnRegisterDataSourceResultErrorInvalidTimestamp = 9,
703    SteamlearnRegisterDataSourceResultDisabled = 10,
704}
705#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
706#[repr(i32)]
707pub enum ESteamLearnCacheDataResult {
708    SteamlearnCacheDataError = 0,
709    SteamlearnCacheDataSuccess = 1,
710    SteamlearnCacheDataErrorUnknownDataSource = 2,
711    SteamlearnCacheDataErrorUncachedDataSource = 3,
712    SteamlearnCacheDataErrorInvalidKeys = 4,
713    SteamlearnCacheDataErrorForbidden = 5,
714    SteamlearnCacheDataErrorInvalidTimestamp = 6,
715    SteamlearnCacheDataDisabled = 7,
716}
717#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
718#[repr(i32)]
719pub enum ESteamLearnSnapshotProjectResult {
720    SteamlearnSnapshotProjectError = 0,
721    SteamlearnSnapshotProjectSuccessStored = 1,
722    SteamlearnSnapshotProjectSuccessQueued = 2,
723    SteamlearnSnapshotProjectErrorInvalidProjectId = 3,
724    SteamlearnSnapshotProjectErrorUnknownDataSource = 4,
725    SteamlearnSnapshotProjectErrorInvalidDataSourceKey = 5,
726    SteamlearnSnapshotProjectErrorMissingCacheDuration = 6,
727    SteamlearnSnapshotProjectErrorNoPublishedConfig = 7,
728    SteamlearnSnapshotProjectErrorForbidden = 8,
729    SteamlearnSnapshotProjectErrorInvalidTimestamp = 9,
730    SteamlearnSnapshotProjectErrorInternalDataSourceError = 10,
731    SteamlearnSnapshotProjectDisabled = 11,
732    SteamlearnSnapshotProjectErrorInvalidPublishedVersion = 12,
733}
734#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
735#[repr(i32)]
736pub enum ESteamLearnGetAccessTokensResult {
737    SteamlearnGetAccessTokensError = 0,
738    SteamlearnGetAccessTokensSuccess = 1,
739}
740#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
741#[repr(i32)]
742pub enum ESteamLearnInferenceResult {
743    SteamlearnInferenceError = 0,
744    SteamlearnInferenceSuccess = 1,
745    SteamlearnInferenceErrorInvalidProjectId = 2,
746    SteamlearnInferenceErrorMissingCachedSchemaData = 3,
747    SteamlearnInferenceErrorNoPublishedConfig = 4,
748    SteamlearnInferenceErrorForbidden = 5,
749    SteamlearnInferenceErrorInvalidTimestamp = 6,
750    SteamlearnInferenceErrorInvalidPublishedVersion = 7,
751    SteamlearnInferenceErrorNoFetchIdFound = 8,
752    SteamlearnInferenceErrorTooBusy = 9,
753    SteamlearnInferenceErrorUnsuppliedDataFail = 10,
754    SteamlearnInferenceErrorUnsuppliedDataNoKeys = 11,
755    SteamlearnInferenceDisabled = 12,
756    SteamlearnInferenceErrorNoOutput = 13,
757    SteamlearnInferenceErrorInvalidNamedInference = 14,
758}
759#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
760#[repr(i32)]
761pub enum ESteamLearnInferenceMetadataResult {
762    SteamlearnInferenceMetadataError = 0,
763    SteamlearnInferenceMetadataSuccess = 1,
764    SteamlearnInferenceMetadataErrorInvalidProjectId = 2,
765    SteamlearnInferenceMetadataErrorNoPublishedConfig = 3,
766    SteamlearnInferenceMetadataErrorForbidden = 4,
767    SteamlearnInferenceMetadataErrorInvalidTimestamp = 5,
768    SteamlearnInferenceMetadataErrorInvalidPublishedVersion = 6,
769    SteamlearnInferenceMetadataErrorNoFetchIdFound = 7,
770}
771#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
772pub struct CExtraMsgBlock {
773    #[prost(uint32, optional, tag = "1")]
774    pub msg_type: ::core::option::Option<u32>,
775    #[prost(bytes = "vec", optional, tag = "2")]
776    pub contents: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
777    #[prost(uint64, optional, tag = "3")]
778    pub msg_key: ::core::option::Option<u64>,
779    #[prost(bool, optional, tag = "4")]
780    pub is_compressed: ::core::option::Option<bool>,
781}
782#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
783pub struct CMsgSteamLearnServerInfo {
784    #[prost(message, optional, tag = "4")]
785    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
786    #[prost(message, repeated, tag = "5")]
787    pub project_infos: ::prost::alloc::vec::Vec<c_msg_steam_learn_server_info::ProjectInfo>,
788}
789pub mod c_msg_steam_learn_server_info {
790    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
791    pub struct ProjectInfo {
792        #[prost(uint32, optional, tag = "1")]
793        pub project_id: ::core::option::Option<u32>,
794        #[prost(uint32, optional, tag = "2")]
795        pub snapshot_published_version: ::core::option::Option<u32>,
796        #[prost(uint32, optional, tag = "3")]
797        pub inference_published_version: ::core::option::Option<u32>,
798        #[prost(uint32, optional, tag = "6")]
799        pub snapshot_percentage: ::core::option::Option<u32>,
800        #[prost(bool, optional, tag = "7")]
801        pub snapshot_enabled: ::core::option::Option<bool>,
802    }
803}
804#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
805pub struct CMsgGcAssertJobData {
806    #[prost(string, optional, tag = "1")]
807    pub message_type: ::core::option::Option<::prost::alloc::string::String>,
808    #[prost(bytes = "vec", optional, tag = "2")]
809    pub message_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
810}
811#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
812pub struct CMsgGcConCommand {
813    #[prost(string, optional, tag = "1")]
814    pub command: ::core::option::Option<::prost::alloc::string::String>,
815}
816#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
817pub struct CMsgSdoAssert {
818    #[prost(int32, optional, tag = "1")]
819    pub sdo_type: ::core::option::Option<i32>,
820    #[prost(message, repeated, tag = "2")]
821    pub requests: ::prost::alloc::vec::Vec<c_msg_sdo_assert::Request>,
822}
823pub mod c_msg_sdo_assert {
824    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
825    pub struct Request {
826        #[prost(uint64, repeated, packed = "false", tag = "1")]
827        pub key: ::prost::alloc::vec::Vec<u64>,
828        #[prost(string, optional, tag = "2")]
829        pub requesting_job: ::core::option::Option<::prost::alloc::string::String>,
830    }
831}
832#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
833pub struct CMsgSoidOwner {
834    #[prost(uint32, optional, tag = "1")]
835    pub r#type: ::core::option::Option<u32>,
836    #[prost(uint64, optional, tag = "2")]
837    pub id: ::core::option::Option<u64>,
838}
839#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
840pub struct CMsgSoSingleObject {
841    #[prost(int32, optional, tag = "2")]
842    pub type_id: ::core::option::Option<i32>,
843    #[prost(bytes = "vec", optional, tag = "3")]
844    pub object_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
845    #[prost(fixed64, optional, tag = "4")]
846    pub version: ::core::option::Option<u64>,
847    #[prost(message, optional, tag = "5")]
848    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
849    #[prost(uint32, optional, tag = "6")]
850    pub service_id: ::core::option::Option<u32>,
851}
852#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
853pub struct CMsgSoMultipleObjects {
854    #[prost(message, repeated, tag = "2")]
855    pub objects_modified: ::prost::alloc::vec::Vec<c_msg_so_multiple_objects::SingleObject>,
856    #[prost(fixed64, optional, tag = "3")]
857    pub version: ::core::option::Option<u64>,
858    #[prost(message, repeated, tag = "4")]
859    pub objects_added: ::prost::alloc::vec::Vec<c_msg_so_multiple_objects::SingleObject>,
860    #[prost(message, repeated, tag = "5")]
861    pub objects_removed: ::prost::alloc::vec::Vec<c_msg_so_multiple_objects::SingleObject>,
862    #[prost(message, optional, tag = "6")]
863    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
864    #[prost(uint32, optional, tag = "7")]
865    pub service_id: ::core::option::Option<u32>,
866}
867pub mod c_msg_so_multiple_objects {
868    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
869    pub struct SingleObject {
870        #[prost(int32, optional, tag = "1")]
871        pub type_id: ::core::option::Option<i32>,
872        #[prost(bytes = "vec", optional, tag = "2")]
873        pub object_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
874    }
875}
876#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
877pub struct CMsgSoCacheSubscribed {
878    #[prost(message, repeated, tag = "2")]
879    pub objects: ::prost::alloc::vec::Vec<c_msg_so_cache_subscribed::SubscribedType>,
880    #[prost(fixed64, optional, tag = "3")]
881    pub version: ::core::option::Option<u64>,
882    #[prost(message, optional, tag = "4")]
883    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
884    #[prost(uint32, optional, tag = "5")]
885    pub service_id: ::core::option::Option<u32>,
886    #[prost(uint32, repeated, packed = "false", tag = "6")]
887    pub service_list: ::prost::alloc::vec::Vec<u32>,
888    #[prost(fixed64, optional, tag = "7")]
889    pub sync_version: ::core::option::Option<u64>,
890}
891pub mod c_msg_so_cache_subscribed {
892    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
893    pub struct SubscribedType {
894        #[prost(int32, optional, tag = "1")]
895        pub type_id: ::core::option::Option<i32>,
896        #[prost(bytes = "vec", repeated, tag = "2")]
897        pub object_data: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
898    }
899}
900#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
901pub struct CMsgSoCacheSubscribedUpToDate {
902    #[prost(fixed64, optional, tag = "1")]
903    pub version: ::core::option::Option<u64>,
904    #[prost(message, optional, tag = "2")]
905    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
906    #[prost(uint32, optional, tag = "3")]
907    pub service_id: ::core::option::Option<u32>,
908    #[prost(uint32, repeated, packed = "false", tag = "4")]
909    pub service_list: ::prost::alloc::vec::Vec<u32>,
910    #[prost(fixed64, optional, tag = "5")]
911    pub sync_version: ::core::option::Option<u64>,
912}
913#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
914pub struct CMsgSoCacheUnsubscribed {
915    #[prost(message, optional, tag = "2")]
916    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
917}
918#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
919pub struct CMsgSoCacheSubscriptionCheck {
920    #[prost(fixed64, optional, tag = "2")]
921    pub version: ::core::option::Option<u64>,
922    #[prost(message, optional, tag = "3")]
923    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
924    #[prost(uint32, optional, tag = "4")]
925    pub service_id: ::core::option::Option<u32>,
926    #[prost(uint32, repeated, packed = "false", tag = "5")]
927    pub service_list: ::prost::alloc::vec::Vec<u32>,
928    #[prost(fixed64, optional, tag = "6")]
929    pub sync_version: ::core::option::Option<u64>,
930}
931#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
932pub struct CMsgSoCacheSubscriptionRefresh {
933    #[prost(message, optional, tag = "2")]
934    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
935}
936#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
937pub struct CMsgSoCacheVersion {
938    #[prost(fixed64, optional, tag = "1")]
939    pub version: ::core::option::Option<u64>,
940}
941#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
942pub struct CMsgGcMultiplexMessage {
943    #[prost(uint32, optional, tag = "1")]
944    pub msgtype: ::core::option::Option<u32>,
945    #[prost(bytes = "vec", optional, tag = "2")]
946    pub payload: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
947    #[prost(fixed64, repeated, packed = "false", tag = "3")]
948    pub steamids: ::prost::alloc::vec::Vec<u64>,
949}
950#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
951pub struct CMsgGcToGcSubGcStarting {
952    #[prost(int32, optional, tag = "1", default = "-1")]
953    pub dir_index: ::core::option::Option<i32>,
954}
955#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
956pub struct CGcToGcMsgMasterAck {
957    #[prost(int32, optional, tag = "1", default = "-1")]
958    pub dir_index: ::core::option::Option<i32>,
959    #[prost(string, optional, tag = "3")]
960    pub machine_name: ::core::option::Option<::prost::alloc::string::String>,
961    #[prost(string, optional, tag = "4")]
962    pub process_name: ::core::option::Option<::prost::alloc::string::String>,
963    #[prost(message, repeated, tag = "6")]
964    pub directory: ::prost::alloc::vec::Vec<cgc_to_gc_msg_master_ack::Process>,
965}
966pub mod cgc_to_gc_msg_master_ack {
967    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
968    pub struct Process {
969        #[prost(int32, optional, tag = "1", default = "-1")]
970        pub dir_index: ::core::option::Option<i32>,
971        #[prost(uint32, repeated, packed = "false", tag = "2")]
972        pub type_instances: ::prost::alloc::vec::Vec<u32>,
973    }
974}
975#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
976pub struct CGcToGcMsgMasterAckResponse {
977    #[prost(int32, optional, tag = "1", default = "2")]
978    pub eresult: ::core::option::Option<i32>,
979}
980#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
981pub struct CMsgGcToGcUniverseStartup {
982    #[prost(bool, optional, tag = "1")]
983    pub is_initial_startup: ::core::option::Option<bool>,
984}
985#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
986pub struct CMsgGcToGcUniverseStartupResponse {
987    #[prost(int32, optional, tag = "1")]
988    pub eresult: ::core::option::Option<i32>,
989}
990#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
991pub struct CGcToGcMsgMasterStartupComplete {
992    #[prost(message, repeated, tag = "1")]
993    pub gc_info: ::prost::alloc::vec::Vec<cgc_to_gc_msg_master_startup_complete::GcInfo>,
994}
995pub mod cgc_to_gc_msg_master_startup_complete {
996    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
997    pub struct GcInfo {
998        #[prost(int32, optional, tag = "1", default = "-1")]
999        pub dir_index: ::core::option::Option<i32>,
1000        #[prost(string, optional, tag = "2")]
1001        pub machine_name: ::core::option::Option<::prost::alloc::string::String>,
1002    }
1003}
1004#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1005pub struct CGcToGcMsgRouted {
1006    #[prost(uint32, optional, tag = "1")]
1007    pub msg_type: ::core::option::Option<u32>,
1008    #[prost(fixed64, optional, tag = "2")]
1009    pub sender_id: ::core::option::Option<u64>,
1010    #[prost(bytes = "vec", optional, tag = "3")]
1011    pub net_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1012}
1013#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1014pub struct CGcToGcMsgRoutedReply {
1015    #[prost(uint32, optional, tag = "1")]
1016    pub msg_type: ::core::option::Option<u32>,
1017    #[prost(bytes = "vec", optional, tag = "2")]
1018    pub net_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1019}
1020#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1021pub struct CMsgGcUpdateSubGcSessionInfo {
1022    #[prost(message, repeated, tag = "1")]
1023    pub updates: ::prost::alloc::vec::Vec<c_msg_gc_update_sub_gc_session_info::CMsgUpdate>,
1024}
1025pub mod c_msg_gc_update_sub_gc_session_info {
1026    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1027    pub struct CMsgUpdate {
1028        #[prost(fixed64, optional, tag = "1")]
1029        pub steamid: ::core::option::Option<u64>,
1030        #[prost(fixed32, optional, tag = "2")]
1031        pub ip: ::core::option::Option<u32>,
1032        #[prost(bool, optional, tag = "3")]
1033        pub trusted: ::core::option::Option<bool>,
1034    }
1035}
1036#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1037pub struct CMsgGcRequestSubGcSessionInfo {
1038    #[prost(fixed64, optional, tag = "1")]
1039    pub steamid: ::core::option::Option<u64>,
1040}
1041#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1042pub struct CMsgGcRequestSubGcSessionInfoResponse {
1043    #[prost(fixed32, optional, tag = "1")]
1044    pub ip: ::core::option::Option<u32>,
1045    #[prost(bool, optional, tag = "2")]
1046    pub trusted: ::core::option::Option<bool>,
1047    #[prost(uint32, optional, tag = "3")]
1048    pub port: ::core::option::Option<u32>,
1049    #[prost(bool, optional, tag = "4")]
1050    pub success: ::core::option::Option<bool>,
1051}
1052#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1053pub struct CMsgSoCacheHaveVersion {
1054    #[prost(message, optional, tag = "1")]
1055    pub soid: ::core::option::Option<CMsgSoidOwner>,
1056    #[prost(fixed64, optional, tag = "2")]
1057    pub version: ::core::option::Option<u64>,
1058    #[prost(uint32, optional, tag = "3")]
1059    pub service_id: ::core::option::Option<u32>,
1060    #[prost(uint32, optional, tag = "4")]
1061    pub cached_file_version: ::core::option::Option<u32>,
1062}
1063#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1064pub struct CMsgClientHello {
1065    #[prost(uint32, optional, tag = "1")]
1066    pub version: ::core::option::Option<u32>,
1067    #[prost(message, repeated, tag = "2")]
1068    pub socache_have_versions: ::prost::alloc::vec::Vec<CMsgSoCacheHaveVersion>,
1069    #[prost(uint32, optional, tag = "3")]
1070    pub client_session_need: ::core::option::Option<u32>,
1071    #[prost(enumeration = "PartnerAccountType", optional, tag = "4", default = "PartnerNone")]
1072    pub client_launcher: ::core::option::Option<i32>,
1073    #[prost(string, optional, tag = "5")]
1074    pub secret_key: ::core::option::Option<::prost::alloc::string::String>,
1075    #[prost(uint32, optional, tag = "6")]
1076    pub client_language: ::core::option::Option<u32>,
1077    #[prost(enumeration = "ESourceEngine", optional, tag = "7", default = "KEseSource1")]
1078    pub engine: ::core::option::Option<i32>,
1079    #[prost(bytes = "vec", optional, tag = "8")]
1080    pub steamdatagram_login: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1081    #[prost(uint32, optional, tag = "9")]
1082    pub platform_id: ::core::option::Option<u32>,
1083    #[prost(bytes = "vec", optional, tag = "10")]
1084    pub game_msg: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1085    #[prost(int32, optional, tag = "11")]
1086    pub os_type: ::core::option::Option<i32>,
1087    #[prost(uint32, optional, tag = "12")]
1088    pub render_system: ::core::option::Option<u32>,
1089    #[prost(uint32, optional, tag = "13")]
1090    pub render_system_req: ::core::option::Option<u32>,
1091    #[prost(uint32, optional, tag = "14")]
1092    pub screen_width: ::core::option::Option<u32>,
1093    #[prost(uint32, optional, tag = "15")]
1094    pub screen_height: ::core::option::Option<u32>,
1095    #[prost(uint32, optional, tag = "16")]
1096    pub screen_refresh: ::core::option::Option<u32>,
1097    #[prost(uint32, optional, tag = "17")]
1098    pub render_width: ::core::option::Option<u32>,
1099    #[prost(uint32, optional, tag = "18")]
1100    pub render_height: ::core::option::Option<u32>,
1101    #[prost(uint32, optional, tag = "19")]
1102    pub swap_width: ::core::option::Option<u32>,
1103    #[prost(uint32, optional, tag = "20")]
1104    pub swap_height: ::core::option::Option<u32>,
1105    #[prost(bool, optional, tag = "22")]
1106    pub is_steam_china: ::core::option::Option<bool>,
1107    #[prost(bool, optional, tag = "24")]
1108    pub is_steam_china_client: ::core::option::Option<bool>,
1109    #[prost(string, optional, tag = "23")]
1110    pub platform_name: ::core::option::Option<::prost::alloc::string::String>,
1111}
1112#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1113pub struct CMsgClientWelcome {
1114    #[prost(uint32, optional, tag = "1")]
1115    pub version: ::core::option::Option<u32>,
1116    #[prost(bytes = "vec", optional, tag = "2")]
1117    pub game_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1118    #[prost(message, repeated, tag = "3")]
1119    pub outofdate_subscribed_caches: ::prost::alloc::vec::Vec<CMsgSoCacheSubscribed>,
1120    #[prost(message, repeated, tag = "4")]
1121    pub uptodate_subscribed_caches: ::prost::alloc::vec::Vec<CMsgSoCacheSubscriptionCheck>,
1122    #[prost(message, optional, tag = "5")]
1123    pub location: ::core::option::Option<c_msg_client_welcome::Location>,
1124    #[prost(uint32, optional, tag = "9")]
1125    pub gc_socache_file_version: ::core::option::Option<u32>,
1126    #[prost(string, optional, tag = "10")]
1127    pub txn_country_code: ::core::option::Option<::prost::alloc::string::String>,
1128    #[prost(bytes = "vec", optional, tag = "11")]
1129    pub game_data2: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1130    #[prost(uint32, optional, tag = "12")]
1131    pub rtime32_gc_welcome_timestamp: ::core::option::Option<u32>,
1132    #[prost(uint32, optional, tag = "13")]
1133    pub currency: ::core::option::Option<u32>,
1134    #[prost(uint32, optional, tag = "14")]
1135    pub balance: ::core::option::Option<u32>,
1136    #[prost(string, optional, tag = "15")]
1137    pub balance_url: ::core::option::Option<::prost::alloc::string::String>,
1138    #[prost(bool, optional, tag = "16")]
1139    pub has_accepted_china_ssa: ::core::option::Option<bool>,
1140    #[prost(bool, optional, tag = "17")]
1141    pub is_banned_steam_china: ::core::option::Option<bool>,
1142    #[prost(message, optional, tag = "18")]
1143    pub additional_welcome_msgs: ::core::option::Option<CExtraMsgBlock>,
1144    #[prost(message, optional, tag = "20")]
1145    pub steam_learn_server_info: ::core::option::Option<CMsgSteamLearnServerInfo>,
1146}
1147pub mod c_msg_client_welcome {
1148    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1149    pub struct Location {
1150        #[prost(float, optional, tag = "1")]
1151        pub latitude: ::core::option::Option<f32>,
1152        #[prost(float, optional, tag = "2")]
1153        pub longitude: ::core::option::Option<f32>,
1154        #[prost(string, optional, tag = "3")]
1155        pub country: ::core::option::Option<::prost::alloc::string::String>,
1156    }
1157}
1158#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1159pub struct CMsgConnectionStatus {
1160    #[prost(enumeration = "GcConnectionStatus", optional, tag = "1", default = "HaveSession")]
1161    pub status: ::core::option::Option<i32>,
1162    #[prost(uint32, optional, tag = "2")]
1163    pub client_session_need: ::core::option::Option<u32>,
1164    #[prost(int32, optional, tag = "3")]
1165    pub queue_position: ::core::option::Option<i32>,
1166    #[prost(int32, optional, tag = "4")]
1167    pub queue_size: ::core::option::Option<i32>,
1168    #[prost(int32, optional, tag = "5")]
1169    pub wait_seconds: ::core::option::Option<i32>,
1170    #[prost(int32, optional, tag = "6")]
1171    pub estimated_wait_seconds_remaining: ::core::option::Option<i32>,
1172}
1173#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1174pub struct CMsgGcToGcsoCacheSubscribe {
1175    #[prost(fixed64, optional, tag = "1")]
1176    pub subscriber: ::core::option::Option<u64>,
1177    #[prost(fixed64, optional, tag = "2")]
1178    pub subscribe_to_id: ::core::option::Option<u64>,
1179    #[prost(fixed64, optional, tag = "3")]
1180    pub sync_version: ::core::option::Option<u64>,
1181    #[prost(message, repeated, tag = "4")]
1182    pub have_versions: ::prost::alloc::vec::Vec<c_msg_gc_to_gcso_cache_subscribe::CMsgHaveVersions>,
1183    #[prost(uint32, optional, tag = "5")]
1184    pub subscribe_to_type: ::core::option::Option<u32>,
1185}
1186pub mod c_msg_gc_to_gcso_cache_subscribe {
1187    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1188    pub struct CMsgHaveVersions {
1189        #[prost(uint32, optional, tag = "1")]
1190        pub service_id: ::core::option::Option<u32>,
1191        #[prost(uint64, optional, tag = "2")]
1192        pub version: ::core::option::Option<u64>,
1193    }
1194}
1195#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1196pub struct CMsgGcToGcsoCacheUnsubscribe {
1197    #[prost(fixed64, optional, tag = "1")]
1198    pub subscriber: ::core::option::Option<u64>,
1199    #[prost(fixed64, optional, tag = "2")]
1200    pub unsubscribe_from_id: ::core::option::Option<u64>,
1201    #[prost(uint32, optional, tag = "3")]
1202    pub unsubscribe_from_type: ::core::option::Option<u32>,
1203}
1204#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1205pub struct CMsgGcClientPing {}
1206#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1207pub struct CMsgGcToGcForwardAccountDetails {
1208    #[prost(fixed64, optional, tag = "1")]
1209    pub steamid: ::core::option::Option<u64>,
1210    #[prost(message, optional, tag = "2")]
1211    pub account_details: ::core::option::Option<CGcSystemMsgGetAccountDetailsResponse>,
1212    #[prost(uint32, optional, tag = "3")]
1213    pub age_seconds: ::core::option::Option<u32>,
1214}
1215#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1216pub struct CMsgGcToGcLoadSessionSoCache {
1217    #[prost(uint32, optional, tag = "1")]
1218    pub account_id: ::core::option::Option<u32>,
1219    #[prost(message, optional, tag = "2")]
1220    pub forward_account_details: ::core::option::Option<CMsgGcToGcForwardAccountDetails>,
1221}
1222#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1223pub struct CMsgGcToGcLoadSessionSoCacheResponse {}
1224#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1225pub struct CMsgGcToGcUpdateSessionStats {
1226    #[prost(uint32, optional, tag = "1")]
1227    pub user_sessions: ::core::option::Option<u32>,
1228    #[prost(uint32, optional, tag = "2")]
1229    pub server_sessions: ::core::option::Option<u32>,
1230    #[prost(bool, optional, tag = "3")]
1231    pub in_logon_surge: ::core::option::Option<bool>,
1232}
1233#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1234pub struct CMsgGcToClientRequestDropped {}
1235#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1236pub struct CWorkshopPopulateItemDescriptionsRequest {
1237    #[prost(uint32, optional, tag = "1")]
1238    pub appid: ::core::option::Option<u32>,
1239    #[prost(message, repeated, tag = "2")]
1240    pub languages: ::prost::alloc::vec::Vec<c_workshop_populate_item_descriptions_request::ItemDescriptionsLanguageBlock>,
1241}
1242pub mod c_workshop_populate_item_descriptions_request {
1243    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1244    pub struct SingleItemDescription {
1245        #[prost(uint32, optional, tag = "1")]
1246        pub gameitemid: ::core::option::Option<u32>,
1247        #[prost(string, optional, tag = "2")]
1248        pub item_description: ::core::option::Option<::prost::alloc::string::String>,
1249    }
1250    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1251    pub struct ItemDescriptionsLanguageBlock {
1252        #[prost(string, optional, tag = "1")]
1253        pub language: ::core::option::Option<::prost::alloc::string::String>,
1254        #[prost(message, repeated, tag = "2")]
1255        pub descriptions: ::prost::alloc::vec::Vec<SingleItemDescription>,
1256    }
1257}
1258#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1259pub struct CWorkshopGetContributorsRequest {
1260    #[prost(uint32, optional, tag = "1")]
1261    pub appid: ::core::option::Option<u32>,
1262    #[prost(uint32, optional, tag = "2")]
1263    pub gameitemid: ::core::option::Option<u32>,
1264}
1265#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1266pub struct CWorkshopGetContributorsResponse {
1267    #[prost(fixed64, repeated, packed = "false", tag = "1")]
1268    pub contributors: ::prost::alloc::vec::Vec<u64>,
1269}
1270#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1271pub struct CWorkshopSetItemPaymentRulesRequest {
1272    #[prost(uint32, optional, tag = "1")]
1273    pub appid: ::core::option::Option<u32>,
1274    #[prost(uint32, optional, tag = "2")]
1275    pub gameitemid: ::core::option::Option<u32>,
1276    #[prost(message, repeated, tag = "3")]
1277    pub associated_workshop_files: ::prost::alloc::vec::Vec<c_workshop_set_item_payment_rules_request::WorkshopItemPaymentRule>,
1278    #[prost(message, repeated, tag = "4")]
1279    pub partner_accounts: ::prost::alloc::vec::Vec<c_workshop_set_item_payment_rules_request::PartnerItemPaymentRule>,
1280    #[prost(bool, optional, tag = "5")]
1281    pub validate_only: ::core::option::Option<bool>,
1282    #[prost(bool, optional, tag = "6")]
1283    pub make_workshop_files_subscribable: ::core::option::Option<bool>,
1284    #[prost(message, optional, tag = "7")]
1285    pub associated_workshop_file_for_direct_payments: ::core::option::Option<c_workshop_set_item_payment_rules_request::WorkshopDirectPaymentRule>,
1286}
1287pub mod c_workshop_set_item_payment_rules_request {
1288    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1289    pub struct WorkshopItemPaymentRule {
1290        #[prost(uint64, optional, tag = "1")]
1291        pub workshop_file_id: ::core::option::Option<u64>,
1292        #[prost(float, optional, tag = "2")]
1293        pub revenue_percentage: ::core::option::Option<f32>,
1294        #[prost(string, optional, tag = "3")]
1295        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
1296        #[prost(uint32, optional, tag = "4", default = "1")]
1297        pub rule_type: ::core::option::Option<u32>,
1298    }
1299    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1300    pub struct WorkshopDirectPaymentRule {
1301        #[prost(uint64, optional, tag = "1")]
1302        pub workshop_file_id: ::core::option::Option<u64>,
1303        #[prost(string, optional, tag = "2")]
1304        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
1305    }
1306    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1307    pub struct PartnerItemPaymentRule {
1308        #[prost(uint32, optional, tag = "1")]
1309        pub account_id: ::core::option::Option<u32>,
1310        #[prost(float, optional, tag = "2")]
1311        pub revenue_percentage: ::core::option::Option<f32>,
1312        #[prost(string, optional, tag = "3")]
1313        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
1314    }
1315}
1316#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1317pub struct CWorkshopSetItemPaymentRulesResponse {
1318    #[prost(string, repeated, tag = "1")]
1319    pub validation_errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1320}
1321#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1322pub struct CCommunityClanAnnouncementInfo {
1323    #[prost(uint64, optional, tag = "1")]
1324    pub gid: ::core::option::Option<u64>,
1325    #[prost(uint64, optional, tag = "2")]
1326    pub clanid: ::core::option::Option<u64>,
1327    #[prost(uint64, optional, tag = "3")]
1328    pub posterid: ::core::option::Option<u64>,
1329    #[prost(string, optional, tag = "4")]
1330    pub headline: ::core::option::Option<::prost::alloc::string::String>,
1331    #[prost(uint32, optional, tag = "5")]
1332    pub posttime: ::core::option::Option<u32>,
1333    #[prost(uint32, optional, tag = "6")]
1334    pub updatetime: ::core::option::Option<u32>,
1335    #[prost(string, optional, tag = "7")]
1336    pub body: ::core::option::Option<::prost::alloc::string::String>,
1337    #[prost(int32, optional, tag = "8")]
1338    pub commentcount: ::core::option::Option<i32>,
1339    #[prost(string, repeated, tag = "9")]
1340    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1341    #[prost(int32, optional, tag = "10")]
1342    pub language: ::core::option::Option<i32>,
1343    #[prost(bool, optional, tag = "11")]
1344    pub hidden: ::core::option::Option<bool>,
1345    #[prost(fixed64, optional, tag = "12")]
1346    pub forum_topic_id: ::core::option::Option<u64>,
1347}
1348#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1349pub struct CCommunityGetClanAnnouncementsRequest {
1350    #[prost(uint64, optional, tag = "1")]
1351    pub steamid: ::core::option::Option<u64>,
1352    #[prost(uint32, optional, tag = "2")]
1353    pub offset: ::core::option::Option<u32>,
1354    #[prost(uint32, optional, tag = "3")]
1355    pub count: ::core::option::Option<u32>,
1356    #[prost(uint32, optional, tag = "4")]
1357    pub maxchars: ::core::option::Option<u32>,
1358    #[prost(bool, optional, tag = "5")]
1359    pub strip_html: ::core::option::Option<bool>,
1360    #[prost(string, repeated, tag = "6")]
1361    pub required_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1362    #[prost(bool, optional, tag = "7")]
1363    pub require_no_tags: ::core::option::Option<bool>,
1364    #[prost(uint32, repeated, packed = "false", tag = "8")]
1365    pub language_preference: ::prost::alloc::vec::Vec<u32>,
1366    #[prost(bool, optional, tag = "9")]
1367    pub hidden_only: ::core::option::Option<bool>,
1368    #[prost(bool, optional, tag = "10")]
1369    pub only_gid: ::core::option::Option<bool>,
1370    #[prost(uint32, optional, tag = "11")]
1371    pub rtime_oldest_date: ::core::option::Option<u32>,
1372    #[prost(bool, optional, tag = "12")]
1373    pub include_hidden: ::core::option::Option<bool>,
1374    #[prost(bool, optional, tag = "13")]
1375    pub include_partner_events: ::core::option::Option<bool>,
1376}
1377#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1378pub struct CCommunityGetClanAnnouncementsResponse {
1379    #[prost(uint32, optional, tag = "1")]
1380    pub maxchars: ::core::option::Option<u32>,
1381    #[prost(bool, optional, tag = "2")]
1382    pub strip_html: ::core::option::Option<bool>,
1383    #[prost(message, repeated, tag = "3")]
1384    pub announcements: ::prost::alloc::vec::Vec<CCommunityClanAnnouncementInfo>,
1385}
1386#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1387pub struct CBroadcastPostGameDataFrameRequest {
1388    #[prost(uint32, optional, tag = "1")]
1389    pub appid: ::core::option::Option<u32>,
1390    #[prost(fixed64, optional, tag = "2")]
1391    pub steamid: ::core::option::Option<u64>,
1392    #[prost(fixed64, optional, tag = "3")]
1393    pub broadcast_id: ::core::option::Option<u64>,
1394    #[prost(bytes = "vec", optional, tag = "4")]
1395    pub frame_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1396}
1397#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1398pub struct CMsgSerializedSoCache {
1399    #[prost(uint32, optional, tag = "1")]
1400    pub file_version: ::core::option::Option<u32>,
1401    #[prost(message, repeated, tag = "2")]
1402    pub caches: ::prost::alloc::vec::Vec<c_msg_serialized_so_cache::Cache>,
1403    #[prost(uint32, optional, tag = "3")]
1404    pub gc_socache_file_version: ::core::option::Option<u32>,
1405}
1406pub mod c_msg_serialized_so_cache {
1407    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1408    pub struct TypeCache {
1409        #[prost(uint32, optional, tag = "1")]
1410        pub r#type: ::core::option::Option<u32>,
1411        #[prost(bytes = "vec", repeated, tag = "2")]
1412        pub objects: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
1413        #[prost(uint32, optional, tag = "3")]
1414        pub service_id: ::core::option::Option<u32>,
1415    }
1416    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1417    pub struct Cache {
1418        #[prost(uint32, optional, tag = "1")]
1419        pub r#type: ::core::option::Option<u32>,
1420        #[prost(uint64, optional, tag = "2")]
1421        pub id: ::core::option::Option<u64>,
1422        #[prost(message, repeated, tag = "3")]
1423        pub versions: ::prost::alloc::vec::Vec<cache::Version>,
1424        #[prost(message, repeated, tag = "4")]
1425        pub type_caches: ::prost::alloc::vec::Vec<TypeCache>,
1426    }
1427    pub mod cache {
1428        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1429        pub struct Version {
1430            #[prost(uint32, optional, tag = "1")]
1431            pub service: ::core::option::Option<u32>,
1432            #[prost(uint64, optional, tag = "2")]
1433            pub version: ::core::option::Option<u64>,
1434        }
1435    }
1436}
1437#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1438pub struct CMsgGcToClientPollConvarRequest {
1439    #[prost(string, optional, tag = "1")]
1440    pub convar_name: ::core::option::Option<::prost::alloc::string::String>,
1441    #[prost(uint32, optional, tag = "2")]
1442    pub poll_id: ::core::option::Option<u32>,
1443}
1444#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1445pub struct CMsgGcToClientPollConvarResponse {
1446    #[prost(uint32, optional, tag = "1")]
1447    pub poll_id: ::core::option::Option<u32>,
1448    #[prost(string, optional, tag = "2")]
1449    pub convar_value: ::core::option::Option<::prost::alloc::string::String>,
1450}
1451#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1452pub struct CGcMsgCompressedMsgToClient {
1453    #[prost(uint32, optional, tag = "1")]
1454    pub msg_id: ::core::option::Option<u32>,
1455    #[prost(bytes = "vec", optional, tag = "2")]
1456    pub compressed_msg: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1457}
1458#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1459pub struct CMsgGcToGcMasterBroadcastMessage {
1460    #[prost(uint32, optional, tag = "1")]
1461    pub users_per_second: ::core::option::Option<u32>,
1462    #[prost(bool, optional, tag = "2")]
1463    pub send_to_users: ::core::option::Option<bool>,
1464    #[prost(bool, optional, tag = "3")]
1465    pub send_to_servers: ::core::option::Option<bool>,
1466    #[prost(uint32, optional, tag = "4")]
1467    pub msg_id: ::core::option::Option<u32>,
1468    #[prost(bytes = "vec", optional, tag = "5")]
1469    pub msg_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1470    #[prost(bool, optional, tag = "6")]
1471    pub trusted_servers_only: ::core::option::Option<bool>,
1472}
1473#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1474pub struct CMsgGcToGcMasterSubscribeToCache {
1475    #[prost(uint32, optional, tag = "1")]
1476    pub soid_type: ::core::option::Option<u32>,
1477    #[prost(fixed64, optional, tag = "2")]
1478    pub soid_id: ::core::option::Option<u64>,
1479    #[prost(uint32, repeated, packed = "false", tag = "3")]
1480    pub account_ids: ::prost::alloc::vec::Vec<u32>,
1481    #[prost(fixed64, repeated, packed = "false", tag = "4")]
1482    pub steam_ids: ::prost::alloc::vec::Vec<u64>,
1483}
1484#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1485pub struct CMsgGcToGcMasterSubscribeToCacheResponse {}
1486#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1487pub struct CMsgGcToGcMasterSubscribeToCacheAsync {
1488    #[prost(message, optional, tag = "1")]
1489    pub subscribe_msg: ::core::option::Option<CMsgGcToGcMasterSubscribeToCache>,
1490}
1491#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1492pub struct CMsgGcToGcMasterUnsubscribeFromCache {
1493    #[prost(uint32, optional, tag = "1")]
1494    pub soid_type: ::core::option::Option<u32>,
1495    #[prost(fixed64, optional, tag = "2")]
1496    pub soid_id: ::core::option::Option<u64>,
1497    #[prost(uint32, repeated, packed = "false", tag = "3")]
1498    pub account_ids: ::prost::alloc::vec::Vec<u32>,
1499    #[prost(fixed64, repeated, packed = "false", tag = "4")]
1500    pub steam_ids: ::prost::alloc::vec::Vec<u64>,
1501}
1502#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1503pub struct CMsgGcToGcMasterDestroyCache {
1504    #[prost(uint32, optional, tag = "1")]
1505    pub soid_type: ::core::option::Option<u32>,
1506    #[prost(fixed64, optional, tag = "2")]
1507    pub soid_id: ::core::option::Option<u64>,
1508}
1509#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1510#[repr(i32)]
1511pub enum ESourceEngine {
1512    KEseSource1 = 0,
1513    KEseSource2 = 1,
1514}
1515#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1516#[repr(i32)]
1517pub enum PartnerAccountType {
1518    PartnerNone = 0,
1519    PartnerPerfectWorld = 1,
1520    PartnerInvalid = 3,
1521}
1522#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1523#[repr(i32)]
1524pub enum GcConnectionStatus {
1525    HaveSession = 0,
1526    GcGoingDown = 1,
1527    NoSession = 2,
1528    NoSessionInLogonQueue = 3,
1529    NoSteam = 4,
1530    Suspended = 5,
1531    SteamGoingDown = 6,
1532}
1533#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1534pub struct CGcStorePurchaseInitLineItem {
1535    #[prost(uint32, optional, tag = "1")]
1536    pub item_def_id: ::core::option::Option<u32>,
1537    #[prost(uint32, optional, tag = "2")]
1538    pub quantity: ::core::option::Option<u32>,
1539    #[prost(uint32, optional, tag = "3")]
1540    pub cost_in_local_currency: ::core::option::Option<u32>,
1541    #[prost(uint32, optional, tag = "4")]
1542    pub purchase_type: ::core::option::Option<u32>,
1543    #[prost(uint64, optional, tag = "5")]
1544    pub source_reference_id: ::core::option::Option<u64>,
1545    #[prost(int32, optional, tag = "6")]
1546    pub price_index: ::core::option::Option<i32>,
1547}
1548#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1549pub struct CMsgGcStorePurchaseInit {
1550    #[prost(string, optional, tag = "1")]
1551    pub country: ::core::option::Option<::prost::alloc::string::String>,
1552    #[prost(int32, optional, tag = "2")]
1553    pub language: ::core::option::Option<i32>,
1554    #[prost(int32, optional, tag = "3")]
1555    pub currency: ::core::option::Option<i32>,
1556    #[prost(message, repeated, tag = "4")]
1557    pub line_items: ::prost::alloc::vec::Vec<CGcStorePurchaseInitLineItem>,
1558}
1559#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1560pub struct CMsgGcStorePurchaseInitResponse {
1561    #[prost(int32, optional, tag = "1")]
1562    pub result: ::core::option::Option<i32>,
1563    #[prost(uint64, optional, tag = "2")]
1564    pub txn_id: ::core::option::Option<u64>,
1565}
1566#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1567pub struct CMsgClientPingData {
1568    #[prost(fixed32, repeated, tag = "4")]
1569    pub relay_codes: ::prost::alloc::vec::Vec<u32>,
1570    #[prost(uint32, repeated, tag = "5")]
1571    pub relay_pings: ::prost::alloc::vec::Vec<u32>,
1572    #[prost(uint32, repeated, tag = "8")]
1573    pub region_codes: ::prost::alloc::vec::Vec<u32>,
1574    #[prost(uint32, repeated, tag = "9")]
1575    pub region_pings: ::prost::alloc::vec::Vec<u32>,
1576    #[prost(uint32, optional, tag = "10")]
1577    pub region_ping_failed_bitmask: ::core::option::Option<u32>,
1578}
1579#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1580pub struct CMsgInviteToParty {
1581    #[prost(fixed64, optional, tag = "1")]
1582    pub steam_id: ::core::option::Option<u64>,
1583    #[prost(uint32, optional, tag = "2")]
1584    pub client_version: ::core::option::Option<u32>,
1585    #[prost(uint32, optional, tag = "3")]
1586    pub team_id: ::core::option::Option<u32>,
1587    #[prost(bool, optional, tag = "4")]
1588    pub as_coach: ::core::option::Option<bool>,
1589    #[prost(message, optional, tag = "5")]
1590    pub ping_data: ::core::option::Option<CMsgClientPingData>,
1591}
1592#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1593pub struct CMsgInviteToLobby {
1594    #[prost(fixed64, optional, tag = "1")]
1595    pub steam_id: ::core::option::Option<u64>,
1596    #[prost(uint32, optional, tag = "2")]
1597    pub client_version: ::core::option::Option<u32>,
1598}
1599#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1600pub struct CMsgInvitationCreated {
1601    #[prost(uint64, optional, tag = "1")]
1602    pub group_id: ::core::option::Option<u64>,
1603    #[prost(fixed64, optional, tag = "2")]
1604    pub steam_id: ::core::option::Option<u64>,
1605    #[prost(bool, optional, tag = "3")]
1606    pub user_offline: ::core::option::Option<bool>,
1607}
1608#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1609pub struct CMsgPartyInviteResponse {
1610    #[prost(uint64, optional, tag = "1")]
1611    pub party_id: ::core::option::Option<u64>,
1612    #[prost(bool, optional, tag = "2")]
1613    pub accept: ::core::option::Option<bool>,
1614    #[prost(uint32, optional, tag = "3")]
1615    pub client_version: ::core::option::Option<u32>,
1616    #[prost(message, optional, tag = "8")]
1617    pub ping_data: ::core::option::Option<CMsgClientPingData>,
1618}
1619#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1620pub struct CMsgLobbyInviteResponse {
1621    #[prost(fixed64, optional, tag = "1")]
1622    pub lobby_id: ::core::option::Option<u64>,
1623    #[prost(bool, optional, tag = "2")]
1624    pub accept: ::core::option::Option<bool>,
1625    #[prost(uint32, optional, tag = "3")]
1626    pub client_version: ::core::option::Option<u32>,
1627    #[prost(fixed64, optional, tag = "6")]
1628    pub custom_game_crc: ::core::option::Option<u64>,
1629    #[prost(fixed32, optional, tag = "7")]
1630    pub custom_game_timestamp: ::core::option::Option<u32>,
1631}
1632#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1633pub struct CMsgKickFromParty {
1634    #[prost(fixed64, optional, tag = "1")]
1635    pub steam_id: ::core::option::Option<u64>,
1636}
1637#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1638pub struct CMsgLeaveParty {}
1639#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1640pub struct CMsgCustomGameInstallStatus {
1641    #[prost(
1642        enumeration = "ECustomGameInstallStatus",
1643        optional,
1644        tag = "1",
1645        default = "KECustomGameInstallStatusUnknown"
1646    )]
1647    pub status: ::core::option::Option<i32>,
1648    #[prost(string, optional, tag = "2")]
1649    pub message: ::core::option::Option<::prost::alloc::string::String>,
1650    #[prost(fixed32, optional, tag = "3")]
1651    pub latest_timestamp_from_steam: ::core::option::Option<u32>,
1652}
1653#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1654pub struct CMsgServerAvailable {
1655    #[prost(message, optional, tag = "1")]
1656    pub custom_game_install_status: ::core::option::Option<CMsgCustomGameInstallStatus>,
1657}
1658#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1659pub struct CMsgLanServerAvailable {
1660    #[prost(fixed64, optional, tag = "1")]
1661    pub lobby_id: ::core::option::Option<u64>,
1662}
1663#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1664pub struct CSoEconGameAccountClient {
1665    #[prost(uint32, optional, tag = "1", default = "0")]
1666    pub additional_backpack_slots: ::core::option::Option<u32>,
1667    #[prost(bool, optional, tag = "2", default = "false")]
1668    pub trial_account: ::core::option::Option<bool>,
1669    #[prost(bool, optional, tag = "3", default = "true")]
1670    pub eligible_for_online_play: ::core::option::Option<bool>,
1671    #[prost(bool, optional, tag = "4")]
1672    pub need_to_choose_most_helpful_friend: ::core::option::Option<bool>,
1673    #[prost(bool, optional, tag = "5")]
1674    pub in_coaches_list: ::core::option::Option<bool>,
1675    #[prost(fixed32, optional, tag = "6")]
1676    pub trade_ban_expiration: ::core::option::Option<u32>,
1677    #[prost(fixed32, optional, tag = "7")]
1678    pub duel_ban_expiration: ::core::option::Option<u32>,
1679    #[prost(bool, optional, tag = "9", default = "false")]
1680    pub made_first_purchase: ::core::option::Option<bool>,
1681}
1682#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1683pub struct CMsgApplyStrangePart {
1684    #[prost(uint64, optional, tag = "1")]
1685    pub strange_part_item_id: ::core::option::Option<u64>,
1686    #[prost(uint64, optional, tag = "2")]
1687    pub item_item_id: ::core::option::Option<u64>,
1688}
1689#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1690pub struct CMsgApplyPennantUpgrade {
1691    #[prost(uint64, optional, tag = "1")]
1692    pub upgrade_item_id: ::core::option::Option<u64>,
1693    #[prost(uint64, optional, tag = "2")]
1694    pub pennant_item_id: ::core::option::Option<u64>,
1695}
1696#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1697pub struct CMsgApplyEggEssence {
1698    #[prost(uint64, optional, tag = "1")]
1699    pub essence_item_id: ::core::option::Option<u64>,
1700    #[prost(uint64, optional, tag = "2")]
1701    pub egg_item_id: ::core::option::Option<u64>,
1702}
1703#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1704pub struct CSoEconItemAttribute {
1705    #[prost(uint32, optional, tag = "1", default = "65535")]
1706    pub def_index: ::core::option::Option<u32>,
1707    #[prost(uint32, optional, tag = "2")]
1708    pub value: ::core::option::Option<u32>,
1709    #[prost(bytes = "vec", optional, tag = "3")]
1710    pub value_bytes: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1711}
1712#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1713pub struct CSoEconItemEquipped {
1714    #[prost(uint32, optional, tag = "1")]
1715    pub new_class: ::core::option::Option<u32>,
1716    #[prost(uint32, optional, tag = "2")]
1717    pub new_slot: ::core::option::Option<u32>,
1718}
1719#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1720pub struct CSoEconItem {
1721    #[prost(uint64, optional, tag = "1")]
1722    pub id: ::core::option::Option<u64>,
1723    #[prost(uint32, optional, tag = "2")]
1724    pub account_id: ::core::option::Option<u32>,
1725    #[prost(uint32, optional, tag = "3")]
1726    pub inventory: ::core::option::Option<u32>,
1727    #[prost(uint32, optional, tag = "4")]
1728    pub def_index: ::core::option::Option<u32>,
1729    #[prost(uint32, optional, tag = "5", default = "1")]
1730    pub quantity: ::core::option::Option<u32>,
1731    #[prost(uint32, optional, tag = "6", default = "1")]
1732    pub level: ::core::option::Option<u32>,
1733    #[prost(uint32, optional, tag = "7", default = "4")]
1734    pub quality: ::core::option::Option<u32>,
1735    #[prost(uint32, optional, tag = "8", default = "0")]
1736    pub flags: ::core::option::Option<u32>,
1737    #[prost(uint32, optional, tag = "9", default = "0")]
1738    pub origin: ::core::option::Option<u32>,
1739    #[prost(message, repeated, tag = "12")]
1740    pub attribute: ::prost::alloc::vec::Vec<CSoEconItemAttribute>,
1741    #[prost(message, optional, boxed, tag = "13")]
1742    pub interior_item: ::core::option::Option<::prost::alloc::boxed::Box<CSoEconItem>>,
1743    #[prost(uint32, optional, tag = "15", default = "0")]
1744    pub style: ::core::option::Option<u32>,
1745    #[prost(uint64, optional, tag = "16")]
1746    pub original_id: ::core::option::Option<u64>,
1747    #[prost(message, repeated, tag = "18")]
1748    pub equipped_state: ::prost::alloc::vec::Vec<CSoEconItemEquipped>,
1749}
1750#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1751pub struct CMsgSortItems {
1752    #[prost(uint32, optional, tag = "1")]
1753    pub sort_type: ::core::option::Option<u32>,
1754}
1755#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1756pub struct CMsgItemAcknowledged {
1757    #[prost(uint32, optional, tag = "1")]
1758    pub account_id: ::core::option::Option<u32>,
1759    #[prost(uint32, optional, tag = "2")]
1760    pub inventory: ::core::option::Option<u32>,
1761    #[prost(uint32, optional, tag = "3")]
1762    pub def_index: ::core::option::Option<u32>,
1763    #[prost(uint32, optional, tag = "4")]
1764    pub quality: ::core::option::Option<u32>,
1765    #[prost(uint32, optional, tag = "5")]
1766    pub rarity: ::core::option::Option<u32>,
1767    #[prost(uint32, optional, tag = "6")]
1768    pub origin: ::core::option::Option<u32>,
1769}
1770#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1771pub struct CMsgSetItemPositions {
1772    #[prost(message, repeated, tag = "1")]
1773    pub item_positions: ::prost::alloc::vec::Vec<c_msg_set_item_positions::ItemPosition>,
1774}
1775pub mod c_msg_set_item_positions {
1776    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1777    pub struct ItemPosition {
1778        #[prost(uint64, optional, tag = "1")]
1779        pub item_id: ::core::option::Option<u64>,
1780        #[prost(uint32, optional, tag = "2")]
1781        pub position: ::core::option::Option<u32>,
1782    }
1783}
1784#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1785pub struct CMsgGcStorePurchaseCancel {
1786    #[prost(uint64, optional, tag = "1")]
1787    pub txn_id: ::core::option::Option<u64>,
1788}
1789#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1790pub struct CMsgGcStorePurchaseCancelResponse {
1791    #[prost(uint32, optional, tag = "1")]
1792    pub result: ::core::option::Option<u32>,
1793}
1794#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1795pub struct CMsgGcStorePurchaseFinalize {
1796    #[prost(uint64, optional, tag = "1")]
1797    pub txn_id: ::core::option::Option<u64>,
1798}
1799#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1800pub struct CMsgGcStorePurchaseFinalizeResponse {
1801    #[prost(uint32, optional, tag = "1")]
1802    pub result: ::core::option::Option<u32>,
1803    #[prost(uint64, repeated, packed = "false", tag = "2")]
1804    pub item_ids: ::prost::alloc::vec::Vec<u64>,
1805}
1806#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1807pub struct CMsgGcToGcBannedWordListUpdated {
1808    #[prost(uint32, optional, tag = "1")]
1809    pub group_id: ::core::option::Option<u32>,
1810}
1811#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1812pub struct CMsgGcToGcDirtySdoCache {
1813    #[prost(uint32, optional, tag = "1")]
1814    pub sdo_type: ::core::option::Option<u32>,
1815    #[prost(uint64, optional, tag = "2")]
1816    pub key_uint64: ::core::option::Option<u64>,
1817}
1818#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1819pub struct CMsgSdoNoMemcached {}
1820#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1821pub struct CMsgGcToGcUpdateSqlKeyValue {
1822    #[prost(string, optional, tag = "1")]
1823    pub key_name: ::core::option::Option<::prost::alloc::string::String>,
1824}
1825#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1826pub struct CMsgGcServerVersionUpdated {
1827    #[prost(uint32, optional, tag = "1")]
1828    pub server_version: ::core::option::Option<u32>,
1829}
1830#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1831pub struct CMsgGcClientVersionUpdated {
1832    #[prost(uint32, optional, tag = "1")]
1833    pub client_version: ::core::option::Option<u32>,
1834}
1835#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1836pub struct CMsgGcToGcWebApiAccountChanged {}
1837#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1838pub struct CMsgExtractGems {
1839    #[prost(uint64, optional, tag = "1")]
1840    pub tool_item_id: ::core::option::Option<u64>,
1841    #[prost(uint64, optional, tag = "2")]
1842    pub item_item_id: ::core::option::Option<u64>,
1843    #[prost(uint32, optional, tag = "3", default = "65535")]
1844    pub item_socket_id: ::core::option::Option<u32>,
1845}
1846#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1847pub struct CMsgExtractGemsResponse {
1848    #[prost(uint64, optional, tag = "1")]
1849    pub item_id: ::core::option::Option<u64>,
1850    #[prost(
1851        enumeration = "c_msg_extract_gems_response::EExtractGems",
1852        optional,
1853        tag = "2",
1854        default = "KExtractGemsSucceeded"
1855    )]
1856    pub response: ::core::option::Option<i32>,
1857}
1858pub mod c_msg_extract_gems_response {
1859    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1860    #[repr(i32)]
1861    pub enum EExtractGems {
1862        KExtractGemsSucceeded = 0,
1863        KExtractGemsFailedToolIsInvalid = 1,
1864        KExtractGemsFailedItemIsInvalid = 2,
1865        KExtractGemsFailedToolCannotRemoveGem = 3,
1866        KExtractGemsFailedFailedToRemoveGem = 4,
1867    }
1868}
1869#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1870pub struct CMsgAddSocket {
1871    #[prost(uint64, optional, tag = "1")]
1872    pub tool_item_id: ::core::option::Option<u64>,
1873    #[prost(uint64, optional, tag = "2")]
1874    pub item_item_id: ::core::option::Option<u64>,
1875    #[prost(bool, optional, tag = "3")]
1876    pub unusual: ::core::option::Option<bool>,
1877}
1878#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1879pub struct CMsgAddSocketResponse {
1880    #[prost(uint64, optional, tag = "1")]
1881    pub item_id: ::core::option::Option<u64>,
1882    #[prost(uint32, repeated, packed = "false", tag = "2")]
1883    pub updated_socket_index: ::prost::alloc::vec::Vec<u32>,
1884    #[prost(
1885        enumeration = "c_msg_add_socket_response::EAddSocket",
1886        optional,
1887        tag = "3",
1888        default = "KAddSocketSucceeded"
1889    )]
1890    pub response: ::core::option::Option<i32>,
1891}
1892pub mod c_msg_add_socket_response {
1893    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1894    #[repr(i32)]
1895    pub enum EAddSocket {
1896        KAddSocketSucceeded = 0,
1897        KAddSocketFailedToolIsInvalid = 1,
1898        KAddSocketFailedItemCannotBeSocketed = 2,
1899        KAddSocketFailedFailedToAddSocket = 3,
1900    }
1901}
1902#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1903pub struct CMsgAddItemToSocketData {
1904    #[prost(uint64, optional, tag = "1")]
1905    pub gem_item_id: ::core::option::Option<u64>,
1906    #[prost(uint32, optional, tag = "2", default = "65535")]
1907    pub socket_index: ::core::option::Option<u32>,
1908}
1909#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1910pub struct CMsgAddItemToSocket {
1911    #[prost(uint64, optional, tag = "1")]
1912    pub item_item_id: ::core::option::Option<u64>,
1913    #[prost(message, repeated, tag = "2")]
1914    pub gems_to_socket: ::prost::alloc::vec::Vec<CMsgAddItemToSocketData>,
1915}
1916#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1917pub struct CMsgAddItemToSocketResponse {
1918    #[prost(uint64, optional, tag = "1")]
1919    pub item_item_id: ::core::option::Option<u64>,
1920    #[prost(uint32, repeated, packed = "false", tag = "2")]
1921    pub updated_socket_index: ::prost::alloc::vec::Vec<u32>,
1922    #[prost(
1923        enumeration = "c_msg_add_item_to_socket_response::EAddGem",
1924        optional,
1925        tag = "3",
1926        default = "KAddGemSucceeded"
1927    )]
1928    pub response: ::core::option::Option<i32>,
1929}
1930pub mod c_msg_add_item_to_socket_response {
1931    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1932    #[repr(i32)]
1933    pub enum EAddGem {
1934        KAddGemSucceeded = 0,
1935        KAddGemFailedGemIsInvalid = 1,
1936        KAddGemFailedItemIsInvalid = 2,
1937        KAddGemFailedFailedToAddGem = 3,
1938        KAddGemFailedInvalidGemTypeForSocket = 4,
1939        KAddGemFailedInvalidGemTypeForHero = 5,
1940        KAddGemFailedInvalidGemTypeForSlot = 6,
1941        KAddGemFailedSocketContainsUnremovableGem = 7,
1942    }
1943}
1944#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1945pub struct CMsgResetStrangeGemCount {
1946    #[prost(uint64, optional, tag = "1")]
1947    pub item_item_id: ::core::option::Option<u64>,
1948    #[prost(uint32, optional, tag = "2", default = "65535")]
1949    pub socket_index: ::core::option::Option<u32>,
1950}
1951#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1952pub struct CMsgResetStrangeGemCountResponse {
1953    #[prost(
1954        enumeration = "c_msg_reset_strange_gem_count_response::EResetGem",
1955        optional,
1956        tag = "1",
1957        default = "KResetGemSucceeded"
1958    )]
1959    pub response: ::core::option::Option<i32>,
1960}
1961pub mod c_msg_reset_strange_gem_count_response {
1962    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1963    #[repr(i32)]
1964    pub enum EResetGem {
1965        KResetGemSucceeded = 0,
1966        KResetGemFailedFailedToResetGem = 1,
1967        KResetGemFailedItemIsInvalid = 2,
1968        KResetGemFailedInvalidSocketId = 3,
1969        KResetGemFailedSocketCannotBeReset = 4,
1970    }
1971}
1972#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1973pub struct CMsgGcToClientPollFileRequest {
1974    #[prost(string, optional, tag = "1")]
1975    pub file_name: ::core::option::Option<::prost::alloc::string::String>,
1976    #[prost(uint32, optional, tag = "2")]
1977    pub client_version: ::core::option::Option<u32>,
1978    #[prost(uint32, optional, tag = "3")]
1979    pub poll_id: ::core::option::Option<u32>,
1980}
1981#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1982pub struct CMsgGcToClientPollFileResponse {
1983    #[prost(uint32, optional, tag = "1")]
1984    pub poll_id: ::core::option::Option<u32>,
1985    #[prost(uint32, optional, tag = "2")]
1986    pub file_size: ::core::option::Option<u32>,
1987    #[prost(uint32, optional, tag = "3")]
1988    pub file_crc: ::core::option::Option<u32>,
1989}
1990#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1991pub struct CMsgGcToGcPerformManualOp {
1992    #[prost(uint64, optional, tag = "1")]
1993    pub op_id: ::core::option::Option<u64>,
1994    #[prost(uint32, optional, tag = "2")]
1995    pub group_code: ::core::option::Option<u32>,
1996}
1997#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1998pub struct CMsgGcToGcPerformManualOpCompleted {
1999    #[prost(bool, optional, tag = "1")]
2000    pub success: ::core::option::Option<bool>,
2001    #[prost(int32, optional, tag = "2", default = "-1")]
2002    pub source_gc: ::core::option::Option<i32>,
2003}
2004#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2005pub struct CMsgGcToGcReloadServerRegionSettings {}
2006#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2007pub struct CMsgGcAdditionalWelcomeMsgList {
2008    #[prost(message, repeated, tag = "1")]
2009    pub welcome_messages: ::prost::alloc::vec::Vec<CExtraMsgBlock>,
2010}
2011#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2012pub struct CMsgApplyRemoteConVars {
2013    #[prost(message, repeated, tag = "1")]
2014    pub con_vars: ::prost::alloc::vec::Vec<c_msg_apply_remote_con_vars::ConVar>,
2015}
2016pub mod c_msg_apply_remote_con_vars {
2017    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2018    pub struct ConVar {
2019        #[prost(string, optional, tag = "1")]
2020        pub name: ::core::option::Option<::prost::alloc::string::String>,
2021        #[prost(string, optional, tag = "2")]
2022        pub value: ::core::option::Option<::prost::alloc::string::String>,
2023        #[prost(uint32, optional, tag = "3")]
2024        pub version_min: ::core::option::Option<u32>,
2025        #[prost(uint32, optional, tag = "4")]
2026        pub version_max: ::core::option::Option<u32>,
2027        #[prost(enumeration = "super::EgcPlatform", optional, tag = "5", default = "KEGcPlatformNone")]
2028        pub platform: ::core::option::Option<i32>,
2029    }
2030}
2031#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2032pub struct CMsgGcToClientApplyRemoteConVars {
2033    #[prost(message, optional, tag = "1")]
2034    pub msg: ::core::option::Option<CMsgApplyRemoteConVars>,
2035}
2036#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2037pub struct CMsgGcToServerApplyRemoteConVars {
2038    #[prost(message, optional, tag = "1")]
2039    pub msg: ::core::option::Option<CMsgApplyRemoteConVars>,
2040}
2041#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2042pub struct CMsgClientToGcIntegrityStatus {
2043    #[prost(string, optional, tag = "1")]
2044    pub report: ::core::option::Option<::prost::alloc::string::String>,
2045    #[prost(bool, optional, tag = "2")]
2046    pub secure_allowed: ::core::option::Option<bool>,
2047    #[prost(message, repeated, tag = "3")]
2048    pub diagnostics: ::prost::alloc::vec::Vec<c_msg_client_to_gc_integrity_status::Keyvalue>,
2049}
2050pub mod c_msg_client_to_gc_integrity_status {
2051    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2052    pub struct Keyvalue {
2053        #[prost(uint32, optional, tag = "1")]
2054        pub id: ::core::option::Option<u32>,
2055        #[prost(uint32, optional, tag = "2")]
2056        pub extended: ::core::option::Option<u32>,
2057        #[prost(uint64, optional, tag = "3")]
2058        pub value: ::core::option::Option<u64>,
2059        #[prost(string, optional, tag = "4")]
2060        pub string_value: ::core::option::Option<::prost::alloc::string::String>,
2061    }
2062}
2063#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2064pub struct CMsgClientToGcAggregateMetrics {
2065    #[prost(message, repeated, tag = "1")]
2066    pub metrics: ::prost::alloc::vec::Vec<c_msg_client_to_gc_aggregate_metrics::SingleMetric>,
2067}
2068pub mod c_msg_client_to_gc_aggregate_metrics {
2069    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2070    pub struct SingleMetric {
2071        #[prost(string, optional, tag = "1")]
2072        pub metric_name: ::core::option::Option<::prost::alloc::string::String>,
2073        #[prost(uint32, optional, tag = "2")]
2074        pub metric_count: ::core::option::Option<u32>,
2075    }
2076}
2077#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2078pub struct CMsgGcToClientAggregateMetricsBackoff {
2079    #[prost(float, optional, tag = "1")]
2080    pub upload_rate_modifier: ::core::option::Option<f32>,
2081}
2082#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2083pub struct CMsgGcToServerSteamLearnAccessTokensChanged {
2084    #[prost(message, optional, tag = "1")]
2085    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
2086}
2087#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2088pub struct CMsgGcToServerSteamLearnUseHttp {
2089    #[prost(bool, optional, tag = "1")]
2090    pub use_http: ::core::option::Option<bool>,
2091}
2092#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2093#[repr(i32)]
2094pub enum EgcBaseMsg {
2095    KEMsgGcInviteToParty = 4501,
2096    KEMsgGcInvitationCreated = 4502,
2097    KEMsgGcPartyInviteResponse = 4503,
2098    KEMsgGcKickFromParty = 4504,
2099    KEMsgGcLeaveParty = 4505,
2100    KEMsgGcServerAvailable = 4506,
2101    KEMsgGcClientConnectToServer = 4507,
2102    KEMsgGcGameServerInfo = 4508,
2103    KEMsgGclanServerAvailable = 4511,
2104    KEMsgGcInviteToLobby = 4512,
2105    KEMsgGcLobbyInviteResponse = 4513,
2106    KEMsgGcToClientPollFileRequest = 4514,
2107    KEMsgGcToClientPollFileResponse = 4515,
2108    KEMsgGcToGcPerformManualOp = 4516,
2109    KEMsgGcToGcPerformManualOpCompleted = 4517,
2110    KEMsgGcToGcReloadServerRegionSettings = 4518,
2111    KEMsgGcAdditionalWelcomeMsgList = 4519,
2112    KEMsgGcToClientApplyRemoteConVars = 4520,
2113    KEMsgGcToServerApplyRemoteConVars = 4521,
2114    KEMsgClientToGcIntegrityStatus = 4522,
2115    KEMsgClientToGcAggregateMetrics = 4523,
2116    KEMsgGcToClientAggregateMetricsBackoff = 4524,
2117    KEMsgGcToServerSteamLearnAccessTokensChanged = 4525,
2118    KEMsgGcToServerSteamLearnUseHttp = 4526,
2119}
2120#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2121#[repr(i32)]
2122pub enum ECustomGameInstallStatus {
2123    KECustomGameInstallStatusUnknown = 0,
2124    KECustomGameInstallStatusReady = 1,
2125    KECustomGameInstallStatusBusy = 2,
2126    KECustomGameInstallStatusFailedGeneric = 101,
2127    KECustomGameInstallStatusFailedInternalError = 102,
2128    KECustomGameInstallStatusRequestedTimestampTooOld = 103,
2129    KECustomGameInstallStatusRequestedTimestampTooNew = 104,
2130    KECustomGameInstallStatusCrcMismatch = 105,
2131    KECustomGameInstallStatusFailedSteam = 106,
2132    KECustomGameInstallStatusFailedCanceled = 107,
2133}
2134#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2135pub struct CDemoFileHeader {
2136    #[prost(string, required, tag = "1")]
2137    pub demo_file_stamp: ::prost::alloc::string::String,
2138    #[prost(int32, optional, tag = "2")]
2139    pub patch_version: ::core::option::Option<i32>,
2140    #[prost(string, optional, tag = "3")]
2141    pub server_name: ::core::option::Option<::prost::alloc::string::String>,
2142    #[prost(string, optional, tag = "4")]
2143    pub client_name: ::core::option::Option<::prost::alloc::string::String>,
2144    #[prost(string, optional, tag = "5")]
2145    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
2146    #[prost(string, optional, tag = "6")]
2147    pub game_directory: ::core::option::Option<::prost::alloc::string::String>,
2148    #[prost(int32, optional, tag = "7")]
2149    pub fullpackets_version: ::core::option::Option<i32>,
2150    #[prost(bool, optional, tag = "8")]
2151    pub allow_clientside_entities: ::core::option::Option<bool>,
2152    #[prost(bool, optional, tag = "9")]
2153    pub allow_clientside_particles: ::core::option::Option<bool>,
2154    #[prost(string, optional, tag = "10")]
2155    pub addons: ::core::option::Option<::prost::alloc::string::String>,
2156    #[prost(string, optional, tag = "11")]
2157    pub demo_version_name: ::core::option::Option<::prost::alloc::string::String>,
2158    #[prost(string, optional, tag = "12")]
2159    pub demo_version_guid: ::core::option::Option<::prost::alloc::string::String>,
2160    #[prost(int32, optional, tag = "13")]
2161    pub build_num: ::core::option::Option<i32>,
2162    #[prost(string, optional, tag = "14")]
2163    pub game: ::core::option::Option<::prost::alloc::string::String>,
2164    #[prost(int32, optional, tag = "15")]
2165    pub server_start_tick: ::core::option::Option<i32>,
2166}
2167#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2168pub struct CGameInfo {
2169    #[prost(message, optional, tag = "4")]
2170    pub dota: ::core::option::Option<c_game_info::CDotaGameInfo>,
2171    #[prost(message, optional, tag = "5")]
2172    pub cs: ::core::option::Option<c_game_info::CCsGameInfo>,
2173}
2174pub mod c_game_info {
2175    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2176    pub struct CDotaGameInfo {
2177        #[prost(uint64, optional, tag = "1")]
2178        pub match_id: ::core::option::Option<u64>,
2179        #[prost(int32, optional, tag = "2")]
2180        pub game_mode: ::core::option::Option<i32>,
2181        #[prost(int32, optional, tag = "3")]
2182        pub game_winner: ::core::option::Option<i32>,
2183        #[prost(message, repeated, tag = "4")]
2184        pub player_info: ::prost::alloc::vec::Vec<c_dota_game_info::CPlayerInfo>,
2185        #[prost(uint32, optional, tag = "5")]
2186        pub leagueid: ::core::option::Option<u32>,
2187        #[prost(message, repeated, tag = "6")]
2188        pub picks_bans: ::prost::alloc::vec::Vec<c_dota_game_info::CHeroSelectEvent>,
2189        #[prost(uint32, optional, tag = "7")]
2190        pub radiant_team_id: ::core::option::Option<u32>,
2191        #[prost(uint32, optional, tag = "8")]
2192        pub dire_team_id: ::core::option::Option<u32>,
2193        #[prost(string, optional, tag = "9")]
2194        pub radiant_team_tag: ::core::option::Option<::prost::alloc::string::String>,
2195        #[prost(string, optional, tag = "10")]
2196        pub dire_team_tag: ::core::option::Option<::prost::alloc::string::String>,
2197        #[prost(uint32, optional, tag = "11")]
2198        pub end_time: ::core::option::Option<u32>,
2199    }
2200    pub mod c_dota_game_info {
2201        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2202        pub struct CPlayerInfo {
2203            #[prost(string, optional, tag = "1")]
2204            pub hero_name: ::core::option::Option<::prost::alloc::string::String>,
2205            #[prost(bytes = "vec", optional, tag = "2")]
2206            pub player_name: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2207            #[prost(bool, optional, tag = "3")]
2208            pub is_fake_client: ::core::option::Option<bool>,
2209            #[prost(uint64, optional, tag = "4")]
2210            pub steamid: ::core::option::Option<u64>,
2211            #[prost(int32, optional, tag = "5")]
2212            pub game_team: ::core::option::Option<i32>,
2213        }
2214        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2215        pub struct CHeroSelectEvent {
2216            #[prost(bool, optional, tag = "1")]
2217            pub is_pick: ::core::option::Option<bool>,
2218            #[prost(uint32, optional, tag = "2")]
2219            pub team: ::core::option::Option<u32>,
2220            #[prost(int32, optional, tag = "3")]
2221            pub hero_id: ::core::option::Option<i32>,
2222        }
2223    }
2224    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2225    pub struct CCsGameInfo {
2226        #[prost(int32, repeated, packed = "false", tag = "1")]
2227        pub round_start_ticks: ::prost::alloc::vec::Vec<i32>,
2228    }
2229}
2230#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2231pub struct CDemoFileInfo {
2232    #[prost(float, optional, tag = "1")]
2233    pub playback_time: ::core::option::Option<f32>,
2234    #[prost(int32, optional, tag = "2")]
2235    pub playback_ticks: ::core::option::Option<i32>,
2236    #[prost(int32, optional, tag = "3")]
2237    pub playback_frames: ::core::option::Option<i32>,
2238    #[prost(message, optional, tag = "4")]
2239    pub game_info: ::core::option::Option<CGameInfo>,
2240}
2241#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2242pub struct CDemoPacket {
2243    #[prost(bytes = "vec", optional, tag = "3")]
2244    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2245}
2246#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2247pub struct CDemoFullPacket {
2248    #[prost(message, optional, tag = "1")]
2249    pub string_table: ::core::option::Option<CDemoStringTables>,
2250    #[prost(message, optional, tag = "2")]
2251    pub packet: ::core::option::Option<CDemoPacket>,
2252}
2253#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2254pub struct CDemoSaveGame {
2255    #[prost(bytes = "vec", optional, tag = "1")]
2256    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2257    #[prost(fixed64, optional, tag = "2")]
2258    pub steam_id: ::core::option::Option<u64>,
2259    #[prost(fixed64, optional, tag = "3")]
2260    pub signature: ::core::option::Option<u64>,
2261    #[prost(int32, optional, tag = "4")]
2262    pub version: ::core::option::Option<i32>,
2263}
2264#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2265pub struct CDemoSyncTick {}
2266#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2267pub struct CDemoConsoleCmd {
2268    #[prost(string, optional, tag = "1")]
2269    pub cmdstring: ::core::option::Option<::prost::alloc::string::String>,
2270}
2271#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2272pub struct CDemoSendTables {
2273    #[prost(bytes = "vec", optional, tag = "1")]
2274    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2275}
2276#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2277pub struct CDemoClassInfo {
2278    #[prost(message, repeated, tag = "1")]
2279    pub classes: ::prost::alloc::vec::Vec<c_demo_class_info::ClassT>,
2280}
2281pub mod c_demo_class_info {
2282    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2283    pub struct ClassT {
2284        #[prost(int32, optional, tag = "1")]
2285        pub class_id: ::core::option::Option<i32>,
2286        #[prost(string, optional, tag = "2")]
2287        pub network_name: ::core::option::Option<::prost::alloc::string::String>,
2288        #[prost(string, optional, tag = "3")]
2289        pub table_name: ::core::option::Option<::prost::alloc::string::String>,
2290    }
2291}
2292#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2293pub struct CDemoCustomData {
2294    #[prost(int32, optional, tag = "1")]
2295    pub callback_index: ::core::option::Option<i32>,
2296    #[prost(bytes = "vec", optional, tag = "2")]
2297    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2298}
2299#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2300pub struct CDemoCustomDataCallbacks {
2301    #[prost(string, repeated, tag = "1")]
2302    pub save_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2303}
2304#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2305pub struct CDemoAnimationHeader {
2306    #[prost(sint32, optional, tag = "1")]
2307    pub entity_id: ::core::option::Option<i32>,
2308    #[prost(int32, optional, tag = "2")]
2309    pub tick: ::core::option::Option<i32>,
2310    #[prost(bytes = "vec", optional, tag = "3")]
2311    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2312}
2313#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2314pub struct CDemoAnimationData {
2315    #[prost(sint32, optional, tag = "1")]
2316    pub entity_id: ::core::option::Option<i32>,
2317    #[prost(int32, optional, tag = "2")]
2318    pub start_tick: ::core::option::Option<i32>,
2319    #[prost(int32, optional, tag = "3")]
2320    pub end_tick: ::core::option::Option<i32>,
2321    #[prost(bytes = "vec", optional, tag = "4")]
2322    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2323    #[prost(int64, optional, tag = "5")]
2324    pub data_checksum: ::core::option::Option<i64>,
2325}
2326#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2327pub struct CDemoStringTables {
2328    #[prost(message, repeated, tag = "1")]
2329    pub tables: ::prost::alloc::vec::Vec<c_demo_string_tables::TableT>,
2330}
2331pub mod c_demo_string_tables {
2332    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2333    pub struct ItemsT {
2334        #[prost(string, optional, tag = "1")]
2335        pub str: ::core::option::Option<::prost::alloc::string::String>,
2336        #[prost(bytes = "vec", optional, tag = "2")]
2337        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2338    }
2339    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2340    pub struct TableT {
2341        #[prost(string, optional, tag = "1")]
2342        pub table_name: ::core::option::Option<::prost::alloc::string::String>,
2343        #[prost(message, repeated, tag = "2")]
2344        pub items: ::prost::alloc::vec::Vec<ItemsT>,
2345        #[prost(message, repeated, tag = "3")]
2346        pub items_clientside: ::prost::alloc::vec::Vec<ItemsT>,
2347        #[prost(int32, optional, tag = "4")]
2348        pub table_flags: ::core::option::Option<i32>,
2349    }
2350}
2351#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2352pub struct CDemoStop {}
2353#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2354pub struct CDemoUserCmd {
2355    #[prost(int32, optional, tag = "1")]
2356    pub cmd_number: ::core::option::Option<i32>,
2357    #[prost(bytes = "vec", optional, tag = "2")]
2358    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2359}
2360#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2361pub struct CDemoSpawnGroups {
2362    #[prost(bytes = "vec", repeated, tag = "3")]
2363    pub msgs: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
2364}
2365#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2366pub struct CDemoSpawnGroupsHltvBroadcast {
2367    #[prost(bytes = "vec", optional, tag = "1")]
2368    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2369}
2370#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2371pub struct CDemoRecovery {
2372    #[prost(message, optional, tag = "1")]
2373    pub initial_spawn_group: ::core::option::Option<c_demo_recovery::DemoInitialSpawnGroupEntry>,
2374    #[prost(bytes = "vec", optional, tag = "2")]
2375    pub spawn_group_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2376}
2377pub mod c_demo_recovery {
2378    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2379    pub struct DemoInitialSpawnGroupEntry {
2380        #[prost(uint32, optional, tag = "1")]
2381        pub spawngrouphandle: ::core::option::Option<u32>,
2382        #[prost(bool, optional, tag = "2")]
2383        pub was_created: ::core::option::Option<bool>,
2384    }
2385}
2386#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2387#[repr(i32)]
2388pub enum EDemoCommands {
2389    DemError = -1,
2390    DemStop = 0,
2391    DemFileHeader = 1,
2392    DemFileInfo = 2,
2393    DemSyncTick = 3,
2394    DemSendTables = 4,
2395    DemClassInfo = 5,
2396    DemStringTables = 6,
2397    DemPacket = 7,
2398    DemSignonPacket = 8,
2399    DemConsoleCmd = 9,
2400    DemCustomData = 10,
2401    DemCustomDataCallbacks = 11,
2402    DemUserCmd = 12,
2403    DemFullPacket = 13,
2404    DemSaveGame = 14,
2405    DemSpawnGroups = 15,
2406    DemAnimationData = 16,
2407    DemAnimationHeader = 17,
2408    DemRecovery = 18,
2409    DemMax = 19,
2410    DemIsCompressed = 64,
2411}
2412#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2413#[repr(i32)]
2414pub enum ENetworkDisconnectionReason {
2415    NetworkDisconnectInvalid = 0,
2416    NetworkDisconnectShutdown = 1,
2417    NetworkDisconnectDisconnectByUser = 2,
2418    NetworkDisconnectDisconnectByServer = 3,
2419    NetworkDisconnectLost = 4,
2420    NetworkDisconnectOverflow = 5,
2421    NetworkDisconnectSteamBanned = 6,
2422    NetworkDisconnectSteamInuse = 7,
2423    NetworkDisconnectSteamTicket = 8,
2424    NetworkDisconnectSteamLogon = 9,
2425    NetworkDisconnectSteamAuthcancelled = 10,
2426    NetworkDisconnectSteamAuthalreadyused = 11,
2427    NetworkDisconnectSteamAuthinvalid = 12,
2428    NetworkDisconnectSteamVacbanstate = 13,
2429    NetworkDisconnectSteamLoggedInElsewhere = 14,
2430    NetworkDisconnectSteamVacCheckTimedout = 15,
2431    NetworkDisconnectSteamDropped = 16,
2432    NetworkDisconnectSteamOwnership = 17,
2433    NetworkDisconnectServerinfoOverflow = 18,
2434    NetworkDisconnectTickmsgOverflow = 19,
2435    NetworkDisconnectStringtablemsgOverflow = 20,
2436    NetworkDisconnectDeltaentmsgOverflow = 21,
2437    NetworkDisconnectTempentmsgOverflow = 22,
2438    NetworkDisconnectSoundsmsgOverflow = 23,
2439    NetworkDisconnectSnapshotoverflow = 24,
2440    NetworkDisconnectSnapshoterror = 25,
2441    NetworkDisconnectReliableoverflow = 26,
2442    NetworkDisconnectBaddeltatick = 27,
2443    NetworkDisconnectNomoresplits = 28,
2444    NetworkDisconnectTimedout = 29,
2445    NetworkDisconnectDisconnected = 30,
2446    NetworkDisconnectLeavingsplit = 31,
2447    NetworkDisconnectDifferentclasstables = 32,
2448    NetworkDisconnectBadrelaypassword = 33,
2449    NetworkDisconnectBadspectatorpassword = 34,
2450    NetworkDisconnectHltvrestricted = 35,
2451    NetworkDisconnectNospectators = 36,
2452    NetworkDisconnectHltvunavailable = 37,
2453    NetworkDisconnectHltvstop = 38,
2454    NetworkDisconnectKicked = 39,
2455    NetworkDisconnectBanadded = 40,
2456    NetworkDisconnectKickbanadded = 41,
2457    NetworkDisconnectHltvdirect = 42,
2458    NetworkDisconnectPureserverClientextra = 43,
2459    NetworkDisconnectPureserverMismatch = 44,
2460    NetworkDisconnectUsercmd = 45,
2461    NetworkDisconnectRejectedByGame = 46,
2462    NetworkDisconnectMessageParseError = 47,
2463    NetworkDisconnectInvalidMessageError = 48,
2464    NetworkDisconnectBadServerPassword = 49,
2465    NetworkDisconnectDirectConnectReservation = 50,
2466    NetworkDisconnectConnectionFailure = 51,
2467    NetworkDisconnectNoPeerGroupHandlers = 52,
2468    NetworkDisconnectReconnection = 53,
2469    NetworkDisconnectLoopshutdown = 54,
2470    NetworkDisconnectLoopdeactivate = 55,
2471    NetworkDisconnectHostEndgame = 56,
2472    NetworkDisconnectLoopLevelloadActivate = 57,
2473    NetworkDisconnectCreateServerFailed = 58,
2474    NetworkDisconnectExiting = 59,
2475    NetworkDisconnectRequestHoststateIdle = 60,
2476    NetworkDisconnectRequestHoststateHltvrelay = 61,
2477    NetworkDisconnectClientConsistencyFail = 62,
2478    NetworkDisconnectClientUnableToCrcMap = 63,
2479    NetworkDisconnectClientNoMap = 64,
2480    NetworkDisconnectClientDifferentMap = 65,
2481    NetworkDisconnectServerRequiresSteam = 66,
2482    NetworkDisconnectSteamDenyMisc = 67,
2483    NetworkDisconnectSteamDenyBadAntiCheat = 68,
2484    NetworkDisconnectServerShutdown = 69,
2485    NetworkDisconnectReplayIncompatible = 71,
2486    NetworkDisconnectConnectRequestTimedout = 72,
2487    NetworkDisconnectServerIncompatible = 73,
2488    NetworkDisconnectLocalproblemManyrelays = 74,
2489    NetworkDisconnectLocalproblemHostedserverprimaryrelay = 75,
2490    NetworkDisconnectLocalproblemNetworkconfig = 76,
2491    NetworkDisconnectLocalproblemOther = 77,
2492    NetworkDisconnectRemoteTimeout = 79,
2493    NetworkDisconnectRemoteTimeoutConnecting = 80,
2494    NetworkDisconnectRemoteOther = 81,
2495    NetworkDisconnectRemoteBadcrypt = 82,
2496    NetworkDisconnectRemoteCertnottrusted = 83,
2497    NetworkDisconnectUnusual = 84,
2498    NetworkDisconnectInternalError = 85,
2499    NetworkDisconnectRejectBadchallenge = 128,
2500    NetworkDisconnectRejectNolobby = 129,
2501    NetworkDisconnectRejectBackgroundMap = 130,
2502    NetworkDisconnectRejectSinglePlayer = 131,
2503    NetworkDisconnectRejectHiddenGame = 132,
2504    NetworkDisconnectRejectLanrestrict = 133,
2505    NetworkDisconnectRejectBadpassword = 134,
2506    NetworkDisconnectRejectServerfull = 135,
2507    NetworkDisconnectRejectInvalidreservation = 136,
2508    NetworkDisconnectRejectFailedchannel = 137,
2509    NetworkDisconnectRejectConnectFromLobby = 138,
2510    NetworkDisconnectRejectReservedForLobby = 139,
2511    NetworkDisconnectRejectInvalidkeylength = 140,
2512    NetworkDisconnectRejectOldprotocol = 141,
2513    NetworkDisconnectRejectNewprotocol = 142,
2514    NetworkDisconnectRejectInvalidconnection = 143,
2515    NetworkDisconnectRejectInvalidcertlen = 144,
2516    NetworkDisconnectRejectInvalidsteamcertlen = 145,
2517    NetworkDisconnectRejectSteam = 146,
2518    NetworkDisconnectRejectServerauthdisabled = 147,
2519    NetworkDisconnectRejectServercdkeyauthinvalid = 148,
2520    NetworkDisconnectRejectBanned = 149,
2521    NetworkDisconnectKickedTeamkilling = 150,
2522    NetworkDisconnectKickedTkStart = 151,
2523    NetworkDisconnectKickedUntrustedaccount = 152,
2524    NetworkDisconnectKickedConvictedaccount = 153,
2525    NetworkDisconnectKickedCompetitivecooldown = 154,
2526    NetworkDisconnectKickedTeamhurting = 155,
2527    NetworkDisconnectKickedHostagekilling = 156,
2528    NetworkDisconnectKickedVotedoff = 157,
2529    NetworkDisconnectKickedIdle = 158,
2530    NetworkDisconnectKickedSuicide = 159,
2531    NetworkDisconnectKickedNosteamlogin = 160,
2532    NetworkDisconnectKickedNosteamticket = 161,
2533    NetworkDisconnectKickedInputautomation = 162,
2534    NetworkDisconnectKickedVacnetabnormalbehavior = 163,
2535    NetworkDisconnectKickedInsecureclient = 164,
2536}
2537#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2538pub struct CMsgVector {
2539    #[prost(float, optional, tag = "1")]
2540    pub x: ::core::option::Option<f32>,
2541    #[prost(float, optional, tag = "2")]
2542    pub y: ::core::option::Option<f32>,
2543    #[prost(float, optional, tag = "3")]
2544    pub z: ::core::option::Option<f32>,
2545    #[prost(float, optional, tag = "4")]
2546    pub w: ::core::option::Option<f32>,
2547}
2548#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2549pub struct CMsgVector2D {
2550    #[prost(float, optional, tag = "1")]
2551    pub x: ::core::option::Option<f32>,
2552    #[prost(float, optional, tag = "2")]
2553    pub y: ::core::option::Option<f32>,
2554}
2555#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2556pub struct CMsgQAngle {
2557    #[prost(float, optional, tag = "1")]
2558    pub x: ::core::option::Option<f32>,
2559    #[prost(float, optional, tag = "2")]
2560    pub y: ::core::option::Option<f32>,
2561    #[prost(float, optional, tag = "3")]
2562    pub z: ::core::option::Option<f32>,
2563}
2564#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2565pub struct CMsgQuaternion {
2566    #[prost(float, optional, tag = "1")]
2567    pub x: ::core::option::Option<f32>,
2568    #[prost(float, optional, tag = "2")]
2569    pub y: ::core::option::Option<f32>,
2570    #[prost(float, optional, tag = "3")]
2571    pub z: ::core::option::Option<f32>,
2572    #[prost(float, optional, tag = "4")]
2573    pub w: ::core::option::Option<f32>,
2574}
2575#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2576pub struct CMsgTransform {
2577    #[prost(message, optional, tag = "1")]
2578    pub position: ::core::option::Option<CMsgVector>,
2579    #[prost(float, optional, tag = "2")]
2580    pub scale: ::core::option::Option<f32>,
2581    #[prost(message, optional, tag = "3")]
2582    pub orientation: ::core::option::Option<CMsgQuaternion>,
2583}
2584#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2585pub struct CMsgRgba {
2586    #[prost(int32, optional, tag = "1")]
2587    pub r: ::core::option::Option<i32>,
2588    #[prost(int32, optional, tag = "2")]
2589    pub g: ::core::option::Option<i32>,
2590    #[prost(int32, optional, tag = "3")]
2591    pub b: ::core::option::Option<i32>,
2592    #[prost(int32, optional, tag = "4")]
2593    pub a: ::core::option::Option<i32>,
2594}
2595#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2596pub struct CMsgPlayerInfo {
2597    #[prost(string, optional, tag = "1")]
2598    pub name: ::core::option::Option<::prost::alloc::string::String>,
2599    #[prost(fixed64, optional, tag = "2")]
2600    pub xuid: ::core::option::Option<u64>,
2601    #[prost(int32, optional, tag = "3")]
2602    pub userid: ::core::option::Option<i32>,
2603    #[prost(fixed64, optional, tag = "4")]
2604    pub steamid: ::core::option::Option<u64>,
2605    #[prost(bool, optional, tag = "5")]
2606    pub fakeplayer: ::core::option::Option<bool>,
2607    #[prost(bool, optional, tag = "6")]
2608    pub ishltv: ::core::option::Option<bool>,
2609}
2610#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2611pub struct CEntityMsg {
2612    #[prost(uint32, optional, tag = "1", default = "16777215")]
2613    pub target_entity: ::core::option::Option<u32>,
2614}
2615#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2616pub struct CMsgCVars {
2617    #[prost(message, repeated, tag = "1")]
2618    pub cvars: ::prost::alloc::vec::Vec<c_msg_c_vars::CVar>,
2619}
2620pub mod c_msg_c_vars {
2621    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2622    pub struct CVar {
2623        #[prost(string, optional, tag = "1")]
2624        pub name: ::core::option::Option<::prost::alloc::string::String>,
2625        #[prost(string, optional, tag = "2")]
2626        pub value: ::core::option::Option<::prost::alloc::string::String>,
2627    }
2628}
2629#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2630pub struct CNetMsgNop {}
2631#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2632pub struct CNetMsgSplitScreenUser {
2633    #[prost(int32, optional, tag = "1")]
2634    pub slot: ::core::option::Option<i32>,
2635}
2636#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2637pub struct CNetMsgTick {
2638    #[prost(uint32, optional, tag = "1")]
2639    pub tick: ::core::option::Option<u32>,
2640    #[prost(uint32, optional, tag = "4")]
2641    pub host_computationtime: ::core::option::Option<u32>,
2642    #[prost(uint32, optional, tag = "5")]
2643    pub host_computationtime_std_deviation: ::core::option::Option<u32>,
2644    #[prost(uint32, optional, tag = "7")]
2645    pub legacy_host_loss: ::core::option::Option<u32>,
2646    #[prost(uint32, optional, tag = "8")]
2647    pub host_unfiltered_frametime: ::core::option::Option<u32>,
2648    #[prost(uint32, optional, tag = "9")]
2649    pub hltv_replay_flags: ::core::option::Option<u32>,
2650    #[prost(uint32, optional, tag = "10")]
2651    pub expected_long_tick: ::core::option::Option<u32>,
2652    #[prost(string, optional, tag = "11")]
2653    pub expected_long_tick_reason: ::core::option::Option<::prost::alloc::string::String>,
2654    #[prost(uint32, optional, tag = "12")]
2655    pub host_frame_dropped_pct_x10: ::core::option::Option<u32>,
2656    #[prost(uint32, optional, tag = "13")]
2657    pub host_frame_irregular_arrival_pct_x10: ::core::option::Option<u32>,
2658}
2659#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2660pub struct CNetMsgStringCmd {
2661    #[prost(string, optional, tag = "1")]
2662    pub command: ::core::option::Option<::prost::alloc::string::String>,
2663    #[prost(uint32, optional, tag = "2")]
2664    pub prediction_sync: ::core::option::Option<u32>,
2665}
2666#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2667pub struct CNetMsgSetConVar {
2668    #[prost(message, optional, tag = "1")]
2669    pub convars: ::core::option::Option<CMsgCVars>,
2670}
2671#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2672pub struct CNetMsgSignonState {
2673    #[prost(enumeration = "SignonStateT", optional, tag = "1", default = "SignonstateNone")]
2674    pub signon_state: ::core::option::Option<i32>,
2675    #[prost(uint32, optional, tag = "2")]
2676    pub spawn_count: ::core::option::Option<u32>,
2677    #[prost(uint32, optional, tag = "3")]
2678    pub num_server_players: ::core::option::Option<u32>,
2679    #[prost(string, repeated, tag = "4")]
2680    pub players_networkids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2681    #[prost(string, optional, tag = "5")]
2682    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
2683    #[prost(string, optional, tag = "6")]
2684    pub addons: ::core::option::Option<::prost::alloc::string::String>,
2685}
2686#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2687pub struct CSvcMsgGameEvent {
2688    #[prost(string, optional, tag = "1")]
2689    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
2690    #[prost(int32, optional, tag = "2")]
2691    pub eventid: ::core::option::Option<i32>,
2692    #[prost(message, repeated, tag = "3")]
2693    pub keys: ::prost::alloc::vec::Vec<csvc_msg_game_event::KeyT>,
2694}
2695pub mod csvc_msg_game_event {
2696    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2697    pub struct KeyT {
2698        #[prost(int32, optional, tag = "1")]
2699        pub r#type: ::core::option::Option<i32>,
2700        #[prost(string, optional, tag = "2")]
2701        pub val_string: ::core::option::Option<::prost::alloc::string::String>,
2702        #[prost(float, optional, tag = "3")]
2703        pub val_float: ::core::option::Option<f32>,
2704        #[prost(int32, optional, tag = "4")]
2705        pub val_long: ::core::option::Option<i32>,
2706        #[prost(int32, optional, tag = "5")]
2707        pub val_short: ::core::option::Option<i32>,
2708        #[prost(int32, optional, tag = "6")]
2709        pub val_byte: ::core::option::Option<i32>,
2710        #[prost(bool, optional, tag = "7")]
2711        pub val_bool: ::core::option::Option<bool>,
2712        #[prost(uint64, optional, tag = "8")]
2713        pub val_uint64: ::core::option::Option<u64>,
2714    }
2715}
2716#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2717pub struct CSvcMsgListGameEvents {
2718    #[prost(message, repeated, tag = "1")]
2719    pub events: ::prost::alloc::vec::Vec<csvc_msg_list_game_events::EventT>,
2720}
2721pub mod csvc_msg_list_game_events {
2722    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2723    pub struct EventT {
2724        #[prost(int32, optional, tag = "1")]
2725        pub tick: ::core::option::Option<i32>,
2726        #[prost(message, optional, tag = "2")]
2727        pub event: ::core::option::Option<super::CSvcMsgGameEvent>,
2728    }
2729}
2730#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2731pub struct CNetMsgSpawnGroupLoad {
2732    #[prost(string, optional, tag = "1")]
2733    pub worldname: ::core::option::Option<::prost::alloc::string::String>,
2734    #[prost(string, optional, tag = "2")]
2735    pub entitylumpname: ::core::option::Option<::prost::alloc::string::String>,
2736    #[prost(string, optional, tag = "3")]
2737    pub entityfiltername: ::core::option::Option<::prost::alloc::string::String>,
2738    #[prost(uint32, optional, tag = "4")]
2739    pub spawngrouphandle: ::core::option::Option<u32>,
2740    #[prost(uint32, optional, tag = "5")]
2741    pub spawngroupownerhandle: ::core::option::Option<u32>,
2742    #[prost(message, optional, tag = "6")]
2743    pub world_offset_pos: ::core::option::Option<CMsgVector>,
2744    #[prost(message, optional, tag = "7")]
2745    pub world_offset_angle: ::core::option::Option<CMsgQAngle>,
2746    #[prost(bytes = "vec", optional, tag = "8")]
2747    pub spawngroupmanifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2748    #[prost(uint32, optional, tag = "9")]
2749    pub flags: ::core::option::Option<u32>,
2750    #[prost(int32, optional, tag = "10")]
2751    pub tickcount: ::core::option::Option<i32>,
2752    #[prost(bool, optional, tag = "11")]
2753    pub manifestincomplete: ::core::option::Option<bool>,
2754    #[prost(string, optional, tag = "12")]
2755    pub localnamefixup: ::core::option::Option<::prost::alloc::string::String>,
2756    #[prost(string, optional, tag = "13")]
2757    pub parentnamefixup: ::core::option::Option<::prost::alloc::string::String>,
2758    #[prost(int32, optional, tag = "14")]
2759    pub manifestloadpriority: ::core::option::Option<i32>,
2760    #[prost(uint32, optional, tag = "15")]
2761    pub worldgroupid: ::core::option::Option<u32>,
2762    #[prost(uint32, optional, tag = "16")]
2763    pub creationsequence: ::core::option::Option<u32>,
2764    #[prost(string, optional, tag = "17")]
2765    pub savegamefilename: ::core::option::Option<::prost::alloc::string::String>,
2766    #[prost(uint32, optional, tag = "18")]
2767    pub spawngroupparenthandle: ::core::option::Option<u32>,
2768    #[prost(bool, optional, tag = "19")]
2769    pub leveltransition: ::core::option::Option<bool>,
2770    #[prost(string, optional, tag = "20")]
2771    pub worldgroupname: ::core::option::Option<::prost::alloc::string::String>,
2772}
2773#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2774pub struct CNetMsgSpawnGroupManifestUpdate {
2775    #[prost(uint32, optional, tag = "1")]
2776    pub spawngrouphandle: ::core::option::Option<u32>,
2777    #[prost(bytes = "vec", optional, tag = "2")]
2778    pub spawngroupmanifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2779    #[prost(bool, optional, tag = "3")]
2780    pub manifestincomplete: ::core::option::Option<bool>,
2781}
2782#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2783pub struct CNetMsgSpawnGroupSetCreationTick {
2784    #[prost(uint32, optional, tag = "1")]
2785    pub spawngrouphandle: ::core::option::Option<u32>,
2786    #[prost(int32, optional, tag = "2")]
2787    pub tickcount: ::core::option::Option<i32>,
2788    #[prost(uint32, optional, tag = "3")]
2789    pub creationsequence: ::core::option::Option<u32>,
2790}
2791#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2792pub struct CNetMsgSpawnGroupUnload {
2793    #[prost(uint32, optional, tag = "1")]
2794    pub spawngrouphandle: ::core::option::Option<u32>,
2795    #[prost(uint32, optional, tag = "2")]
2796    pub flags: ::core::option::Option<u32>,
2797    #[prost(int32, optional, tag = "3")]
2798    pub tickcount: ::core::option::Option<i32>,
2799}
2800#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2801pub struct CNetMsgSpawnGroupLoadCompleted {
2802    #[prost(uint32, optional, tag = "1")]
2803    pub spawngrouphandle: ::core::option::Option<u32>,
2804}
2805#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2806pub struct CSvcMsgGameSessionConfiguration {
2807    #[prost(bool, optional, tag = "1")]
2808    pub is_multiplayer: ::core::option::Option<bool>,
2809    #[prost(bool, optional, tag = "2")]
2810    pub is_loadsavegame: ::core::option::Option<bool>,
2811    #[prost(bool, optional, tag = "3")]
2812    pub is_background_map: ::core::option::Option<bool>,
2813    #[prost(bool, optional, tag = "4")]
2814    pub is_headless: ::core::option::Option<bool>,
2815    #[prost(uint32, optional, tag = "5")]
2816    pub min_client_limit: ::core::option::Option<u32>,
2817    #[prost(uint32, optional, tag = "6")]
2818    pub max_client_limit: ::core::option::Option<u32>,
2819    #[prost(uint32, optional, tag = "7")]
2820    pub max_clients: ::core::option::Option<u32>,
2821    #[prost(fixed32, optional, tag = "8")]
2822    pub tick_interval: ::core::option::Option<u32>,
2823    #[prost(string, optional, tag = "9")]
2824    pub hostname: ::core::option::Option<::prost::alloc::string::String>,
2825    #[prost(string, optional, tag = "10")]
2826    pub savegamename: ::core::option::Option<::prost::alloc::string::String>,
2827    #[prost(string, optional, tag = "11")]
2828    pub s1_mapname: ::core::option::Option<::prost::alloc::string::String>,
2829    #[prost(string, optional, tag = "12")]
2830    pub gamemode: ::core::option::Option<::prost::alloc::string::String>,
2831    #[prost(string, optional, tag = "13")]
2832    pub server_ip_address: ::core::option::Option<::prost::alloc::string::String>,
2833    #[prost(bytes = "vec", optional, tag = "14")]
2834    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2835    #[prost(bool, optional, tag = "15")]
2836    pub is_localonly: ::core::option::Option<bool>,
2837    #[prost(bool, optional, tag = "19")]
2838    pub no_steam_server: ::core::option::Option<bool>,
2839    #[prost(bool, optional, tag = "16")]
2840    pub is_transition: ::core::option::Option<bool>,
2841    #[prost(string, optional, tag = "17")]
2842    pub previouslevel: ::core::option::Option<::prost::alloc::string::String>,
2843    #[prost(string, optional, tag = "18")]
2844    pub landmarkname: ::core::option::Option<::prost::alloc::string::String>,
2845}
2846#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2847pub struct CNetMsgDebugOverlay {
2848    #[prost(int32, optional, tag = "1")]
2849    pub etype: ::core::option::Option<i32>,
2850    #[prost(message, repeated, tag = "2")]
2851    pub vectors: ::prost::alloc::vec::Vec<CMsgVector>,
2852    #[prost(message, repeated, tag = "3")]
2853    pub colors: ::prost::alloc::vec::Vec<CMsgRgba>,
2854    #[prost(float, repeated, packed = "false", tag = "4")]
2855    pub dimensions: ::prost::alloc::vec::Vec<f32>,
2856    #[prost(float, repeated, packed = "false", tag = "5")]
2857    pub times: ::prost::alloc::vec::Vec<f32>,
2858    #[prost(bool, repeated, packed = "false", tag = "6")]
2859    pub bools: ::prost::alloc::vec::Vec<bool>,
2860    #[prost(uint64, repeated, packed = "false", tag = "7")]
2861    pub uint64s: ::prost::alloc::vec::Vec<u64>,
2862    #[prost(string, repeated, tag = "8")]
2863    pub strings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2864}
2865#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2866#[repr(i32)]
2867pub enum SignonStateT {
2868    SignonstateNone = 0,
2869    SignonstateChallenge = 1,
2870    SignonstateConnected = 2,
2871    SignonstateNew = 3,
2872    SignonstatePrespawn = 4,
2873    SignonstateSpawn = 5,
2874    SignonstateFull = 6,
2875    SignonstateChangelevel = 7,
2876}
2877#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2878#[repr(i32)]
2879pub enum NetMessages {
2880    NetNop = 0,
2881    NetDisconnectLegacy = 1,
2882    NetSplitScreenUser = 3,
2883    NetTick = 4,
2884    NetStringCmd = 5,
2885    NetSetConVar = 6,
2886    NetSignonState = 7,
2887    NetSpawnGroupLoad = 8,
2888    NetSpawnGroupManifestUpdate = 9,
2889    NetSpawnGroupSetCreationTick = 11,
2890    NetSpawnGroupUnload = 12,
2891    NetSpawnGroupLoadCompleted = 13,
2892    NetDebugOverlay = 15,
2893}
2894#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2895#[repr(i32)]
2896pub enum SpawnGroupFlagsT {
2897    SpawnGroupLoadEntitiesFromSave = 1,
2898    SpawnGroupDontSpawnEntities = 2,
2899    SpawnGroupSynchronousSpawn = 4,
2900    SpawnGroupIsInitialSpawnGroup = 8,
2901    SpawnGroupCreateClientOnlyEntities = 16,
2902    SpawnGroupBlockUntilLoaded = 64,
2903    SpawnGroupLoadStreamingData = 128,
2904    SpawnGroupCreateNewSceneWorld = 256,
2905}
2906#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2907pub struct CMsgVDebugGameSessionIdEvent {
2908    #[prost(int32, optional, tag = "1")]
2909    pub clientid: ::core::option::Option<i32>,
2910    #[prost(string, optional, tag = "2")]
2911    pub gamesessionid: ::core::option::Option<::prost::alloc::string::String>,
2912}
2913#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2914pub struct CMsgPlaceDecalEvent {
2915    #[prost(message, optional, tag = "1")]
2916    pub position: ::core::option::Option<CMsgVector>,
2917    #[prost(message, optional, tag = "2")]
2918    pub normal: ::core::option::Option<CMsgVector>,
2919    #[prost(message, optional, tag = "3")]
2920    pub saxis: ::core::option::Option<CMsgVector>,
2921    #[prost(int32, optional, tag = "4")]
2922    pub boneindex: ::core::option::Option<i32>,
2923    #[prost(int32, optional, tag = "13")]
2924    pub triangleindex: ::core::option::Option<i32>,
2925    #[prost(uint32, optional, tag = "5")]
2926    pub flags: ::core::option::Option<u32>,
2927    #[prost(fixed32, optional, tag = "6")]
2928    pub color: ::core::option::Option<u32>,
2929    #[prost(int32, optional, tag = "7")]
2930    pub random_seed: ::core::option::Option<i32>,
2931    #[prost(uint32, optional, tag = "8")]
2932    pub decal_group_name: ::core::option::Option<u32>,
2933    #[prost(float, optional, tag = "9")]
2934    pub size_override: ::core::option::Option<f32>,
2935    #[prost(uint32, optional, tag = "10", default = "16777215")]
2936    pub entityhandle: ::core::option::Option<u32>,
2937    #[prost(uint64, optional, tag = "11")]
2938    pub material_id: ::core::option::Option<u64>,
2939    #[prost(uint32, optional, tag = "12")]
2940    pub sequence_name: ::core::option::Option<u32>,
2941    #[prost(message, optional, tag = "14")]
2942    pub position_objectspace: ::core::option::Option<CMsgVector>,
2943}
2944#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2945pub struct CMsgClearWorldDecalsEvent {
2946    #[prost(uint32, optional, tag = "1")]
2947    pub flagstoclear: ::core::option::Option<u32>,
2948}
2949#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2950pub struct CMsgClearEntityDecalsEvent {
2951    #[prost(uint32, optional, tag = "1")]
2952    pub flagstoclear: ::core::option::Option<u32>,
2953}
2954#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2955pub struct CMsgClearDecalsForEntityEvent {
2956    #[prost(uint32, optional, tag = "1")]
2957    pub flagstoclear: ::core::option::Option<u32>,
2958    #[prost(uint32, optional, tag = "2", default = "16777215")]
2959    pub entityhandle: ::core::option::Option<u32>,
2960}
2961#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2962pub struct CMsgSource1LegacyGameEventList {
2963    #[prost(message, repeated, tag = "1")]
2964    pub descriptors: ::prost::alloc::vec::Vec<c_msg_source1_legacy_game_event_list::DescriptorT>,
2965}
2966pub mod c_msg_source1_legacy_game_event_list {
2967    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2968    pub struct KeyT {
2969        #[prost(int32, optional, tag = "1")]
2970        pub r#type: ::core::option::Option<i32>,
2971        #[prost(string, optional, tag = "2")]
2972        pub name: ::core::option::Option<::prost::alloc::string::String>,
2973    }
2974    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2975    pub struct DescriptorT {
2976        #[prost(int32, optional, tag = "1")]
2977        pub eventid: ::core::option::Option<i32>,
2978        #[prost(string, optional, tag = "2")]
2979        pub name: ::core::option::Option<::prost::alloc::string::String>,
2980        #[prost(message, repeated, tag = "3")]
2981        pub keys: ::prost::alloc::vec::Vec<KeyT>,
2982    }
2983}
2984#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2985pub struct CMsgSource1LegacyListenEvents {
2986    #[prost(int32, optional, tag = "1")]
2987    pub playerslot: ::core::option::Option<i32>,
2988    #[prost(uint32, repeated, packed = "false", tag = "2")]
2989    pub eventarraybits: ::prost::alloc::vec::Vec<u32>,
2990}
2991#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2992pub struct CMsgSource1LegacyGameEvent {
2993    #[prost(string, optional, tag = "1")]
2994    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
2995    #[prost(int32, optional, tag = "2")]
2996    pub eventid: ::core::option::Option<i32>,
2997    #[prost(message, repeated, tag = "3")]
2998    pub keys: ::prost::alloc::vec::Vec<c_msg_source1_legacy_game_event::KeyT>,
2999    #[prost(int32, optional, tag = "4")]
3000    pub server_tick: ::core::option::Option<i32>,
3001    #[prost(int32, optional, tag = "5")]
3002    pub passthrough: ::core::option::Option<i32>,
3003}
3004pub mod c_msg_source1_legacy_game_event {
3005    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3006    pub struct KeyT {
3007        #[prost(int32, optional, tag = "1")]
3008        pub r#type: ::core::option::Option<i32>,
3009        #[prost(string, optional, tag = "2")]
3010        pub val_string: ::core::option::Option<::prost::alloc::string::String>,
3011        #[prost(float, optional, tag = "3")]
3012        pub val_float: ::core::option::Option<f32>,
3013        #[prost(int32, optional, tag = "4")]
3014        pub val_long: ::core::option::Option<i32>,
3015        #[prost(int32, optional, tag = "5")]
3016        pub val_short: ::core::option::Option<i32>,
3017        #[prost(int32, optional, tag = "6")]
3018        pub val_byte: ::core::option::Option<i32>,
3019        #[prost(bool, optional, tag = "7")]
3020        pub val_bool: ::core::option::Option<bool>,
3021        #[prost(uint64, optional, tag = "8")]
3022        pub val_uint64: ::core::option::Option<u64>,
3023    }
3024}
3025#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3026pub struct CMsgSosStartSoundEvent {
3027    #[prost(int32, optional, tag = "1")]
3028    pub soundevent_guid: ::core::option::Option<i32>,
3029    #[prost(fixed32, optional, tag = "2")]
3030    pub soundevent_hash: ::core::option::Option<u32>,
3031    #[prost(int32, optional, tag = "3", default = "-1")]
3032    pub source_entity_index: ::core::option::Option<i32>,
3033    #[prost(int32, optional, tag = "4")]
3034    pub seed: ::core::option::Option<i32>,
3035    #[prost(bytes = "vec", optional, tag = "5")]
3036    pub packed_params: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3037    #[prost(float, optional, tag = "6")]
3038    pub start_time: ::core::option::Option<f32>,
3039}
3040#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3041pub struct CMsgSosStopSoundEvent {
3042    #[prost(int32, optional, tag = "1")]
3043    pub soundevent_guid: ::core::option::Option<i32>,
3044}
3045#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3046pub struct CMsgSosStopSoundEventHash {
3047    #[prost(fixed32, optional, tag = "1")]
3048    pub soundevent_hash: ::core::option::Option<u32>,
3049    #[prost(int32, optional, tag = "2", default = "-1")]
3050    pub source_entity_index: ::core::option::Option<i32>,
3051}
3052#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3053pub struct CMsgSosSetSoundEventParams {
3054    #[prost(int32, optional, tag = "1")]
3055    pub soundevent_guid: ::core::option::Option<i32>,
3056    #[prost(bytes = "vec", optional, tag = "5")]
3057    pub packed_params: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3058}
3059#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3060pub struct CMsgSosSetLibraryStackFields {
3061    #[prost(fixed32, optional, tag = "1")]
3062    pub stack_hash: ::core::option::Option<u32>,
3063    #[prost(bytes = "vec", optional, tag = "5")]
3064    pub packed_fields: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3065}
3066#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3067pub struct CMsgClothStiffenAnimEvent {
3068    #[prost(int32, optional, tag = "1", default = "-1")]
3069    pub source_entity_index: ::core::option::Option<i32>,
3070    #[prost(int32, optional, tag = "2")]
3071    pub vertex_set_hash: ::core::option::Option<i32>,
3072    #[prost(float, optional, tag = "3")]
3073    pub intensity: ::core::option::Option<f32>,
3074    #[prost(float, optional, tag = "4")]
3075    pub length: ::core::option::Option<f32>,
3076    #[prost(float, optional, tag = "5")]
3077    pub speed_in: ::core::option::Option<f32>,
3078    #[prost(float, optional, tag = "6")]
3079    pub speed_out: ::core::option::Option<f32>,
3080}
3081#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3082pub struct CMsgClothEffectAnimEvent {
3083    #[prost(int32, optional, tag = "1", default = "-1")]
3084    pub source_entity_index: ::core::option::Option<i32>,
3085    #[prost(int32, optional, tag = "2")]
3086    pub effect_name_hash: ::core::option::Option<i32>,
3087    #[prost(int32, optional, tag = "3")]
3088    pub operation: ::core::option::Option<i32>,
3089    #[prost(int32, optional, tag = "4")]
3090    pub flags: ::core::option::Option<i32>,
3091    #[prost(string, optional, tag = "5")]
3092    pub tags: ::core::option::Option<::prost::alloc::string::String>,
3093    #[prost(message, optional, tag = "6")]
3094    pub pte: ::core::option::Option<CMsgVector>,
3095}
3096#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3097#[repr(i32)]
3098pub enum EBaseGameEvents {
3099    GeVDebugGameSessionIdEvent = 200,
3100    GePlaceDecalEvent = 201,
3101    GeClearWorldDecalsEvent = 202,
3102    GeClearEntityDecalsEvent = 203,
3103    GeClearDecalsForEntityEvent = 204,
3104    GeSource1LegacyGameEventList = 205,
3105    GeSource1LegacyListenEvents = 206,
3106    GeSource1LegacyGameEvent = 207,
3107    GeSosStartSoundEvent = 208,
3108    GeSosStopSoundEvent = 209,
3109    GeSosSetSoundEventParams = 210,
3110    GeSosSetLibraryStackFields = 211,
3111    GeSosStopSoundEventHash = 212,
3112    GeClothStiffenAnimEvent = 213,
3113    GeClothEffectAnimEvent = 214,
3114}
3115#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3116pub struct CMsgSource2SystemSpecs {
3117    #[prost(string, optional, tag = "1")]
3118    pub cpu_id: ::core::option::Option<::prost::alloc::string::String>,
3119    #[prost(string, optional, tag = "2")]
3120    pub cpu_brand: ::core::option::Option<::prost::alloc::string::String>,
3121    #[prost(uint32, optional, tag = "3")]
3122    pub cpu_model: ::core::option::Option<u32>,
3123    #[prost(uint32, optional, tag = "4")]
3124    pub cpu_num_physical: ::core::option::Option<u32>,
3125    #[prost(uint32, optional, tag = "21")]
3126    pub ram_physical_total_mb: ::core::option::Option<u32>,
3127    #[prost(string, optional, tag = "41")]
3128    pub gpu_rendersystem_dll_name: ::core::option::Option<::prost::alloc::string::String>,
3129    #[prost(uint32, optional, tag = "42")]
3130    pub gpu_vendor_id: ::core::option::Option<u32>,
3131    #[prost(string, optional, tag = "43")]
3132    pub gpu_driver_name: ::core::option::Option<::prost::alloc::string::String>,
3133    #[prost(uint32, optional, tag = "44")]
3134    pub gpu_driver_version_high: ::core::option::Option<u32>,
3135    #[prost(uint32, optional, tag = "45")]
3136    pub gpu_driver_version_low: ::core::option::Option<u32>,
3137    #[prost(uint32, optional, tag = "46")]
3138    pub gpu_dx_support_level: ::core::option::Option<u32>,
3139    #[prost(uint32, optional, tag = "47")]
3140    pub gpu_texture_memory_size_mb: ::core::option::Option<u32>,
3141    #[prost(uint32, optional, tag = "51")]
3142    pub backbuffer_width: ::core::option::Option<u32>,
3143    #[prost(uint32, optional, tag = "52")]
3144    pub backbuffer_height: ::core::option::Option<u32>,
3145}
3146#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3147pub struct CMsgSource2VProfLiteReportItem {
3148    #[prost(string, optional, tag = "1")]
3149    pub name: ::core::option::Option<::prost::alloc::string::String>,
3150    #[prost(uint32, optional, tag = "2")]
3151    pub active_samples: ::core::option::Option<u32>,
3152    #[prost(uint32, optional, tag = "4")]
3153    pub active_samples_1secmax: ::core::option::Option<u32>,
3154    #[prost(uint32, optional, tag = "3")]
3155    pub usec_max: ::core::option::Option<u32>,
3156    #[prost(uint32, optional, tag = "11")]
3157    pub usec_avg_active: ::core::option::Option<u32>,
3158    #[prost(uint32, optional, tag = "12")]
3159    pub usec_p50_active: ::core::option::Option<u32>,
3160    #[prost(uint32, optional, tag = "13")]
3161    pub usec_p99_active: ::core::option::Option<u32>,
3162    #[prost(uint32, optional, tag = "21")]
3163    pub usec_avg_all: ::core::option::Option<u32>,
3164    #[prost(uint32, optional, tag = "22")]
3165    pub usec_p50_all: ::core::option::Option<u32>,
3166    #[prost(uint32, optional, tag = "23")]
3167    pub usec_p99_all: ::core::option::Option<u32>,
3168    #[prost(uint32, optional, tag = "31")]
3169    pub usec_1secmax_avg_active: ::core::option::Option<u32>,
3170    #[prost(uint32, optional, tag = "32")]
3171    pub usec_1secmax_p50_active: ::core::option::Option<u32>,
3172    #[prost(uint32, optional, tag = "33")]
3173    pub usec_1secmax_p95_active: ::core::option::Option<u32>,
3174    #[prost(uint32, optional, tag = "34")]
3175    pub usec_1secmax_p99_active: ::core::option::Option<u32>,
3176    #[prost(uint32, optional, tag = "41")]
3177    pub usec_1secmax_avg_all: ::core::option::Option<u32>,
3178    #[prost(uint32, optional, tag = "42")]
3179    pub usec_1secmax_p50_all: ::core::option::Option<u32>,
3180    #[prost(uint32, optional, tag = "43")]
3181    pub usec_1secmax_p95_all: ::core::option::Option<u32>,
3182    #[prost(uint32, optional, tag = "44")]
3183    pub usec_1secmax_p99_all: ::core::option::Option<u32>,
3184}
3185#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3186pub struct CMsgSource2VProfLiteReport {
3187    #[prost(message, optional, tag = "1")]
3188    pub total: ::core::option::Option<CMsgSource2VProfLiteReportItem>,
3189    #[prost(message, repeated, tag = "2")]
3190    pub items: ::prost::alloc::vec::Vec<CMsgSource2VProfLiteReportItem>,
3191    #[prost(uint32, optional, tag = "3")]
3192    pub discarded_frames: ::core::option::Option<u32>,
3193}
3194#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3195pub struct CMsgSource2NetworkFlowQuality {
3196    #[prost(uint32, optional, tag = "1")]
3197    pub duration: ::core::option::Option<u32>,
3198    #[prost(uint64, optional, tag = "5")]
3199    pub bytes_total: ::core::option::Option<u64>,
3200    #[prost(uint64, optional, tag = "6")]
3201    pub bytes_total_reliable: ::core::option::Option<u64>,
3202    #[prost(uint64, optional, tag = "7")]
3203    pub bytes_total_voice: ::core::option::Option<u64>,
3204    #[prost(uint32, optional, tag = "10")]
3205    pub bytes_sec_p95: ::core::option::Option<u32>,
3206    #[prost(uint32, optional, tag = "11")]
3207    pub bytes_sec_p99: ::core::option::Option<u32>,
3208    #[prost(uint32, optional, tag = "20")]
3209    pub enginemsgs_total: ::core::option::Option<u32>,
3210    #[prost(uint32, optional, tag = "21")]
3211    pub enginemsgs_sec_p95: ::core::option::Option<u32>,
3212    #[prost(uint32, optional, tag = "22")]
3213    pub enginemsgs_sec_p99: ::core::option::Option<u32>,
3214    #[prost(uint32, optional, tag = "30")]
3215    pub netframes_total: ::core::option::Option<u32>,
3216    #[prost(uint32, optional, tag = "31")]
3217    pub netframes_dropped: ::core::option::Option<u32>,
3218    #[prost(uint32, optional, tag = "32")]
3219    pub netframes_outoforder: ::core::option::Option<u32>,
3220    #[prost(uint32, optional, tag = "34")]
3221    pub netframes_size_exceeds_mtu: ::core::option::Option<u32>,
3222    #[prost(uint32, optional, tag = "35")]
3223    pub netframes_size_p95: ::core::option::Option<u32>,
3224    #[prost(uint32, optional, tag = "36")]
3225    pub netframes_size_p99: ::core::option::Option<u32>,
3226    #[prost(uint32, optional, tag = "40")]
3227    pub ticks_total: ::core::option::Option<u32>,
3228    #[prost(uint32, optional, tag = "41")]
3229    pub ticks_good: ::core::option::Option<u32>,
3230    #[prost(uint32, optional, tag = "42")]
3231    pub ticks_good_almost_late: ::core::option::Option<u32>,
3232    #[prost(uint32, optional, tag = "43")]
3233    pub ticks_fixed_dropped: ::core::option::Option<u32>,
3234    #[prost(uint32, optional, tag = "44")]
3235    pub ticks_fixed_late: ::core::option::Option<u32>,
3236    #[prost(uint32, optional, tag = "45")]
3237    pub ticks_bad_dropped: ::core::option::Option<u32>,
3238    #[prost(uint32, optional, tag = "46")]
3239    pub ticks_bad_late: ::core::option::Option<u32>,
3240    #[prost(uint32, optional, tag = "47")]
3241    pub ticks_bad_other: ::core::option::Option<u32>,
3242    #[prost(uint32, optional, tag = "50")]
3243    pub tick_missrate_samples_total: ::core::option::Option<u32>,
3244    #[prost(uint32, optional, tag = "51")]
3245    pub tick_missrate_samples_perfect: ::core::option::Option<u32>,
3246    #[prost(uint32, optional, tag = "52")]
3247    pub tick_missrate_samples_perfectnet: ::core::option::Option<u32>,
3248    #[prost(uint32, optional, tag = "53")]
3249    pub tick_missratenet_p75_x10: ::core::option::Option<u32>,
3250    #[prost(uint32, optional, tag = "54")]
3251    pub tick_missratenet_p95_x10: ::core::option::Option<u32>,
3252    #[prost(uint32, optional, tag = "55")]
3253    pub tick_missratenet_p99_x10: ::core::option::Option<u32>,
3254    #[prost(sint32, optional, tag = "61")]
3255    pub recvmargin_p1: ::core::option::Option<i32>,
3256    #[prost(sint32, optional, tag = "62")]
3257    pub recvmargin_p5: ::core::option::Option<i32>,
3258    #[prost(sint32, optional, tag = "63")]
3259    pub recvmargin_p25: ::core::option::Option<i32>,
3260    #[prost(sint32, optional, tag = "64")]
3261    pub recvmargin_p50: ::core::option::Option<i32>,
3262    #[prost(sint32, optional, tag = "65")]
3263    pub recvmargin_p75: ::core::option::Option<i32>,
3264    #[prost(sint32, optional, tag = "66")]
3265    pub recvmargin_p95: ::core::option::Option<i32>,
3266    #[prost(uint32, optional, tag = "70")]
3267    pub netframe_jitter_p50: ::core::option::Option<u32>,
3268    #[prost(uint32, optional, tag = "71")]
3269    pub netframe_jitter_p99: ::core::option::Option<u32>,
3270    #[prost(uint32, optional, tag = "72")]
3271    pub interval_peakjitter_p50: ::core::option::Option<u32>,
3272    #[prost(uint32, optional, tag = "73")]
3273    pub interval_peakjitter_p95: ::core::option::Option<u32>,
3274    #[prost(uint32, optional, tag = "74")]
3275    pub packet_misdelivery_rate_p50_x4: ::core::option::Option<u32>,
3276    #[prost(uint32, optional, tag = "75")]
3277    pub packet_misdelivery_rate_p95_x4: ::core::option::Option<u32>,
3278    #[prost(uint32, optional, tag = "80")]
3279    pub net_ping_p5: ::core::option::Option<u32>,
3280    #[prost(uint32, optional, tag = "81")]
3281    pub net_ping_p50: ::core::option::Option<u32>,
3282    #[prost(uint32, optional, tag = "82")]
3283    pub net_ping_p95: ::core::option::Option<u32>,
3284}
3285#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3286pub struct CMsgSource2PerfIntervalSample {
3287    #[prost(float, optional, tag = "1")]
3288    pub frame_time_max_ms: ::core::option::Option<f32>,
3289    #[prost(float, optional, tag = "2")]
3290    pub frame_time_avg_ms: ::core::option::Option<f32>,
3291    #[prost(float, optional, tag = "3")]
3292    pub frame_time_min_ms: ::core::option::Option<f32>,
3293    #[prost(int32, optional, tag = "4")]
3294    pub frame_count: ::core::option::Option<i32>,
3295    #[prost(float, optional, tag = "5")]
3296    pub frame_time_total_ms: ::core::option::Option<f32>,
3297    #[prost(message, repeated, tag = "6")]
3298    pub tags: ::prost::alloc::vec::Vec<c_msg_source2_perf_interval_sample::Tag>,
3299}
3300pub mod c_msg_source2_perf_interval_sample {
3301    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3302    pub struct Tag {
3303        #[prost(string, optional, tag = "1")]
3304        pub tag: ::core::option::Option<::prost::alloc::string::String>,
3305        #[prost(uint32, optional, tag = "2")]
3306        pub max_value: ::core::option::Option<u32>,
3307    }
3308}
3309#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3310pub struct CSource2MetricsMatchPerfSummaryNotification {
3311    #[prost(uint32, optional, tag = "1")]
3312    pub appid: ::core::option::Option<u32>,
3313    #[prost(string, optional, tag = "2")]
3314    pub game_mode: ::core::option::Option<::prost::alloc::string::String>,
3315    #[prost(uint32, optional, tag = "3")]
3316    pub server_build_id: ::core::option::Option<u32>,
3317    #[prost(fixed32, optional, tag = "4")]
3318    pub server_popid: ::core::option::Option<u32>,
3319    #[prost(message, optional, tag = "10")]
3320    pub server_profile: ::core::option::Option<CMsgSource2VProfLiteReport>,
3321    #[prost(message, repeated, tag = "11")]
3322    pub clients: ::prost::alloc::vec::Vec<c_source2_metrics_match_perf_summary_notification::Client>,
3323    #[prost(string, optional, tag = "20")]
3324    pub map: ::core::option::Option<::prost::alloc::string::String>,
3325}
3326pub mod c_source2_metrics_match_perf_summary_notification {
3327    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3328    pub struct Client {
3329        #[prost(message, optional, tag = "1")]
3330        pub system_specs: ::core::option::Option<super::CMsgSource2SystemSpecs>,
3331        #[prost(message, optional, tag = "2")]
3332        pub profile: ::core::option::Option<super::CMsgSource2VProfLiteReport>,
3333        #[prost(uint32, optional, tag = "3")]
3334        pub build_id: ::core::option::Option<u32>,
3335        #[prost(message, optional, tag = "4")]
3336        pub downstream_flow: ::core::option::Option<super::CMsgSource2NetworkFlowQuality>,
3337        #[prost(message, optional, tag = "5")]
3338        pub upstream_flow: ::core::option::Option<super::CMsgSource2NetworkFlowQuality>,
3339        #[prost(fixed64, optional, tag = "10")]
3340        pub steamid: ::core::option::Option<u64>,
3341        #[prost(message, repeated, tag = "11")]
3342        pub perf_samples: ::prost::alloc::vec::Vec<super::CMsgSource2PerfIntervalSample>,
3343    }
3344}
3345#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3346pub struct CMsgSource2PlayStatsPackedRecordList {
3347    #[prost(string, optional, tag = "1")]
3348    pub record_name: ::core::option::Option<::prost::alloc::string::String>,
3349    #[prost(message, repeated, tag = "2")]
3350    pub field_defs: ::prost::alloc::vec::Vec<c_msg_source2_play_stats_packed_record_list::FieldDef>,
3351    #[prost(uint32, optional, tag = "3")]
3352    pub record_count: ::core::option::Option<u32>,
3353    #[prost(uint64, repeated, tag = "4")]
3354    pub uint64_vals: ::prost::alloc::vec::Vec<u64>,
3355    #[prost(uint32, repeated, tag = "5")]
3356    pub uint32_vals: ::prost::alloc::vec::Vec<u32>,
3357    #[prost(uint32, repeated, tag = "6")]
3358    pub uint16_vals: ::prost::alloc::vec::Vec<u32>,
3359    #[prost(uint32, repeated, tag = "7")]
3360    pub uint8_vals: ::prost::alloc::vec::Vec<u32>,
3361    #[prost(int64, repeated, tag = "8")]
3362    pub int64_vals: ::prost::alloc::vec::Vec<i64>,
3363    #[prost(int32, repeated, tag = "9")]
3364    pub int32_vals: ::prost::alloc::vec::Vec<i32>,
3365    #[prost(int32, repeated, tag = "10")]
3366    pub int16_vals: ::prost::alloc::vec::Vec<i32>,
3367    #[prost(int32, repeated, tag = "11")]
3368    pub int8_vals: ::prost::alloc::vec::Vec<i32>,
3369    #[prost(double, repeated, tag = "12")]
3370    pub float64_vals: ::prost::alloc::vec::Vec<f64>,
3371    #[prost(float, repeated, tag = "13")]
3372    pub float32_vals: ::prost::alloc::vec::Vec<f32>,
3373    #[prost(bool, repeated, tag = "14")]
3374    pub bool_vals: ::prost::alloc::vec::Vec<bool>,
3375    #[prost(string, repeated, tag = "15")]
3376    pub string_vals: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3377    #[prost(string, repeated, tag = "16")]
3378    pub low_cardinality_string_vals: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3379    #[prost(fixed32, repeated, tag = "17")]
3380    pub utcdatetime_vals: ::prost::alloc::vec::Vec<u32>,
3381    #[prost(fixed64, repeated, tag = "18")]
3382    pub steamidtrustbucket_vals: ::prost::alloc::vec::Vec<u64>,
3383    #[prost(message, repeated, tag = "19")]
3384    pub trustbucket_vals: ::prost::alloc::vec::Vec<c_msg_source2_play_stats_packed_record_list::SteamIdList>,
3385}
3386pub mod c_msg_source2_play_stats_packed_record_list {
3387    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3388    pub struct FieldDef {
3389        #[prost(string, optional, tag = "1")]
3390        pub field_name: ::core::option::Option<::prost::alloc::string::String>,
3391        #[prost(
3392            enumeration = "super::ESource2PlayStatsFieldType",
3393            optional,
3394            tag = "2",
3395            default = "Source2PlayStatsInvalid"
3396        )]
3397        pub field_type: ::core::option::Option<i32>,
3398    }
3399    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3400    pub struct SteamIdList {
3401        #[prost(fixed64, repeated, tag = "1")]
3402        pub steamid: ::prost::alloc::vec::Vec<u64>,
3403    }
3404}
3405#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3406pub struct CSource2MetricsRecordPlayStatsNotification {
3407    #[prost(message, repeated, tag = "1")]
3408    pub record_types: ::prost::alloc::vec::Vec<CMsgSource2PlayStatsPackedRecordList>,
3409    #[prost(uint32, optional, tag = "2")]
3410    pub appid: ::core::option::Option<u32>,
3411}
3412#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3413pub struct CSource2MetricsFetchMapDataRequest {
3414    #[prost(uint32, optional, tag = "1")]
3415    pub appid: ::core::option::Option<u32>,
3416    #[prost(string, optional, tag = "2")]
3417    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
3418    #[prost(uint32, optional, tag = "3")]
3419    pub game_type: ::core::option::Option<u32>,
3420    #[prost(uint32, optional, tag = "4")]
3421    pub game_mode: ::core::option::Option<u32>,
3422    #[prost(string, optional, tag = "5")]
3423    pub param: ::core::option::Option<::prost::alloc::string::String>,
3424    #[prost(uint32, optional, tag = "6")]
3425    pub time_span: ::core::option::Option<u32>,
3426}
3427#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3428pub struct CSource2MetricsFetchMapDataResponse {
3429    #[prost(message, repeated, tag = "1")]
3430    pub results: ::prost::alloc::vec::Vec<c_source2_metrics_fetch_map_data_response::MapData>,
3431}
3432pub mod c_source2_metrics_fetch_map_data_response {
3433    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3434    pub struct MapData {
3435        #[prost(string, optional, tag = "1")]
3436        pub name: ::core::option::Option<::prost::alloc::string::String>,
3437        #[prost(string, optional, tag = "2")]
3438        pub r#type: ::core::option::Option<::prost::alloc::string::String>,
3439        #[prost(string, optional, tag = "3")]
3440        pub data: ::core::option::Option<::prost::alloc::string::String>,
3441    }
3442}
3443#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3444#[repr(i32)]
3445pub enum ESource2PlayStatsFieldType {
3446    Source2PlayStatsInvalid = 0,
3447    Source2PlayStatsUInt64 = 1,
3448    Source2PlayStatsUInt32 = 2,
3449    Source2PlayStatsUInt16 = 3,
3450    Source2PlayStatsUInt8 = 4,
3451    Source2PlayStatsInt64 = 5,
3452    Source2PlayStatsInt32 = 6,
3453    Source2PlayStatsInt16 = 7,
3454    Source2PlayStatsInt8 = 8,
3455    Source2PlayStatsFloat64 = 9,
3456    Source2PlayStatsFloat32 = 10,
3457    Source2PlayStatsBool = 11,
3458    Source2PlayStatsString = 12,
3459    Source2PlayStatsLowCardinalityString = 13,
3460    Source2PlayStatsUtcDateTime = 14,
3461    Source2PlayStatsSteamIdTrustBucket = 15,
3462    Source2PlayStatsSteamIdTrustBucketMin = 16,
3463}
3464#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3465pub struct CclcMsgClientInfo {
3466    #[prost(fixed32, optional, tag = "1")]
3467    pub send_table_crc: ::core::option::Option<u32>,
3468    #[prost(uint32, optional, tag = "2")]
3469    pub server_count: ::core::option::Option<u32>,
3470    #[prost(bool, optional, tag = "3")]
3471    pub is_hltv: ::core::option::Option<bool>,
3472    #[prost(uint32, optional, tag = "5")]
3473    pub friends_id: ::core::option::Option<u32>,
3474    #[prost(string, optional, tag = "6")]
3475    pub friends_name: ::core::option::Option<::prost::alloc::string::String>,
3476}
3477#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3478pub struct CclcMsgMove {
3479    #[prost(bytes = "vec", optional, tag = "3")]
3480    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3481    #[prost(uint32, optional, tag = "4")]
3482    pub last_command_number: ::core::option::Option<u32>,
3483}
3484#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3485pub struct CMsgVoiceAudio {
3486    #[prost(enumeration = "VoiceDataFormatT", optional, tag = "1", default = "VoicedataFormatSteam")]
3487    pub format: ::core::option::Option<i32>,
3488    #[prost(bytes = "vec", optional, tag = "2")]
3489    pub voice_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3490    #[prost(int32, optional, tag = "3")]
3491    pub sequence_bytes: ::core::option::Option<i32>,
3492    #[prost(uint32, optional, tag = "4")]
3493    pub section_number: ::core::option::Option<u32>,
3494    #[prost(uint32, optional, tag = "5")]
3495    pub sample_rate: ::core::option::Option<u32>,
3496    #[prost(uint32, optional, tag = "6")]
3497    pub uncompressed_sample_offset: ::core::option::Option<u32>,
3498    #[prost(uint32, optional, tag = "7")]
3499    pub num_packets: ::core::option::Option<u32>,
3500    #[prost(uint32, repeated, tag = "8")]
3501    pub packet_offsets: ::prost::alloc::vec::Vec<u32>,
3502    #[prost(float, optional, tag = "9")]
3503    pub voice_level: ::core::option::Option<f32>,
3504}
3505#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3506pub struct CclcMsgVoiceData {
3507    #[prost(message, optional, tag = "1")]
3508    pub audio: ::core::option::Option<CMsgVoiceAudio>,
3509    #[prost(fixed64, optional, tag = "2")]
3510    pub xuid: ::core::option::Option<u64>,
3511    #[prost(uint32, optional, tag = "3")]
3512    pub tick: ::core::option::Option<u32>,
3513}
3514#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3515pub struct CclcMsgBaselineAck {
3516    #[prost(int32, optional, tag = "1")]
3517    pub baseline_tick: ::core::option::Option<i32>,
3518    #[prost(int32, optional, tag = "2")]
3519    pub baseline_nr: ::core::option::Option<i32>,
3520}
3521#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3522pub struct CclcMsgListenEvents {
3523    #[prost(fixed32, repeated, packed = "false", tag = "1")]
3524    pub event_mask: ::prost::alloc::vec::Vec<u32>,
3525}
3526#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3527pub struct CclcMsgRespondCvarValue {
3528    #[prost(int32, optional, tag = "1")]
3529    pub cookie: ::core::option::Option<i32>,
3530    #[prost(int32, optional, tag = "2")]
3531    pub status_code: ::core::option::Option<i32>,
3532    #[prost(string, optional, tag = "3")]
3533    pub name: ::core::option::Option<::prost::alloc::string::String>,
3534    #[prost(string, optional, tag = "4")]
3535    pub value: ::core::option::Option<::prost::alloc::string::String>,
3536}
3537#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3538pub struct CclcMsgLoadingProgress {
3539    #[prost(int32, optional, tag = "1")]
3540    pub progress: ::core::option::Option<i32>,
3541}
3542#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3543pub struct CclcMsgSplitPlayerConnect {
3544    #[prost(string, optional, tag = "1")]
3545    pub playername: ::core::option::Option<::prost::alloc::string::String>,
3546}
3547#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3548pub struct CclcMsgSplitPlayerDisconnect {
3549    #[prost(int32, optional, tag = "1")]
3550    pub slot: ::core::option::Option<i32>,
3551}
3552#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3553pub struct CclcMsgServerStatus {
3554    #[prost(bool, optional, tag = "1")]
3555    pub simplified: ::core::option::Option<bool>,
3556}
3557#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3558pub struct CclcMsgRequestPause {
3559    #[prost(enumeration = "RequestPauseT", optional, tag = "1", default = "RpPause")]
3560    pub pause_type: ::core::option::Option<i32>,
3561    #[prost(int32, optional, tag = "2")]
3562    pub pause_group: ::core::option::Option<i32>,
3563}
3564#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3565pub struct CclcMsgCmdKeyValues {
3566    #[prost(bytes = "vec", optional, tag = "1")]
3567    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3568}
3569#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3570pub struct CclcMsgRconServerDetails {
3571    #[prost(bytes = "vec", optional, tag = "1")]
3572    pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3573}
3574#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3575pub struct CclcMsgDiagnostic {
3576    #[prost(message, optional, tag = "1")]
3577    pub system_specs: ::core::option::Option<CMsgSource2SystemSpecs>,
3578    #[prost(message, optional, tag = "2")]
3579    pub vprof_report: ::core::option::Option<CMsgSource2VProfLiteReport>,
3580    #[prost(message, optional, tag = "3")]
3581    pub downstream_flow: ::core::option::Option<CMsgSource2NetworkFlowQuality>,
3582    #[prost(message, optional, tag = "4")]
3583    pub upstream_flow: ::core::option::Option<CMsgSource2NetworkFlowQuality>,
3584    #[prost(message, repeated, tag = "5")]
3585    pub perf_samples: ::prost::alloc::vec::Vec<CMsgSource2PerfIntervalSample>,
3586}
3587#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3588pub struct CSvcMsgServerInfo {
3589    #[prost(int32, optional, tag = "1")]
3590    pub protocol: ::core::option::Option<i32>,
3591    #[prost(int32, optional, tag = "2")]
3592    pub server_count: ::core::option::Option<i32>,
3593    #[prost(bool, optional, tag = "3")]
3594    pub is_dedicated: ::core::option::Option<bool>,
3595    #[prost(bool, optional, tag = "4")]
3596    pub is_hltv: ::core::option::Option<bool>,
3597    #[prost(int32, optional, tag = "6")]
3598    pub c_os: ::core::option::Option<i32>,
3599    #[prost(int32, optional, tag = "10")]
3600    pub max_clients: ::core::option::Option<i32>,
3601    #[prost(int32, optional, tag = "11")]
3602    pub max_classes: ::core::option::Option<i32>,
3603    #[prost(int32, optional, tag = "12", default = "-1")]
3604    pub player_slot: ::core::option::Option<i32>,
3605    #[prost(float, optional, tag = "13")]
3606    pub tick_interval: ::core::option::Option<f32>,
3607    #[prost(string, optional, tag = "14")]
3608    pub game_dir: ::core::option::Option<::prost::alloc::string::String>,
3609    #[prost(string, optional, tag = "15")]
3610    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
3611    #[prost(string, optional, tag = "16")]
3612    pub sky_name: ::core::option::Option<::prost::alloc::string::String>,
3613    #[prost(string, optional, tag = "17")]
3614    pub host_name: ::core::option::Option<::prost::alloc::string::String>,
3615    #[prost(string, optional, tag = "18")]
3616    pub addon_name: ::core::option::Option<::prost::alloc::string::String>,
3617    #[prost(message, optional, tag = "19")]
3618    pub game_session_config: ::core::option::Option<CSvcMsgGameSessionConfiguration>,
3619    #[prost(bytes = "vec", optional, tag = "20")]
3620    pub game_session_manifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3621}
3622#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3623pub struct CSvcMsgClassInfo {
3624    #[prost(bool, optional, tag = "1")]
3625    pub create_on_client: ::core::option::Option<bool>,
3626    #[prost(message, repeated, tag = "2")]
3627    pub classes: ::prost::alloc::vec::Vec<csvc_msg_class_info::ClassT>,
3628}
3629pub mod csvc_msg_class_info {
3630    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3631    pub struct ClassT {
3632        #[prost(int32, optional, tag = "1")]
3633        pub class_id: ::core::option::Option<i32>,
3634        #[prost(string, optional, tag = "3")]
3635        pub class_name: ::core::option::Option<::prost::alloc::string::String>,
3636    }
3637}
3638#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3639pub struct CSvcMsgSetPause {
3640    #[prost(bool, optional, tag = "1")]
3641    pub paused: ::core::option::Option<bool>,
3642}
3643#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3644pub struct CSvcMsgVoiceInit {
3645    #[prost(int32, optional, tag = "1")]
3646    pub quality: ::core::option::Option<i32>,
3647    #[prost(string, optional, tag = "2")]
3648    pub codec: ::core::option::Option<::prost::alloc::string::String>,
3649    #[prost(int32, optional, tag = "3", default = "0")]
3650    pub version: ::core::option::Option<i32>,
3651}
3652#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3653pub struct CSvcMsgPrint {
3654    #[prost(string, optional, tag = "1")]
3655    pub text: ::core::option::Option<::prost::alloc::string::String>,
3656}
3657#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3658pub struct CSvcMsgSounds {
3659    #[prost(bool, optional, tag = "1")]
3660    pub reliable_sound: ::core::option::Option<bool>,
3661    #[prost(message, repeated, tag = "2")]
3662    pub sounds: ::prost::alloc::vec::Vec<csvc_msg_sounds::SounddataT>,
3663}
3664pub mod csvc_msg_sounds {
3665    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3666    pub struct SounddataT {
3667        #[prost(sint32, optional, tag = "1")]
3668        pub origin_x: ::core::option::Option<i32>,
3669        #[prost(sint32, optional, tag = "2")]
3670        pub origin_y: ::core::option::Option<i32>,
3671        #[prost(sint32, optional, tag = "3")]
3672        pub origin_z: ::core::option::Option<i32>,
3673        #[prost(uint32, optional, tag = "4")]
3674        pub volume: ::core::option::Option<u32>,
3675        #[prost(float, optional, tag = "5")]
3676        pub delay_value: ::core::option::Option<f32>,
3677        #[prost(int32, optional, tag = "6")]
3678        pub sequence_number: ::core::option::Option<i32>,
3679        #[prost(int32, optional, tag = "7", default = "-1")]
3680        pub entity_index: ::core::option::Option<i32>,
3681        #[prost(int32, optional, tag = "8")]
3682        pub channel: ::core::option::Option<i32>,
3683        #[prost(int32, optional, tag = "9")]
3684        pub pitch: ::core::option::Option<i32>,
3685        #[prost(int32, optional, tag = "10")]
3686        pub flags: ::core::option::Option<i32>,
3687        #[prost(uint32, optional, tag = "11")]
3688        pub sound_num: ::core::option::Option<u32>,
3689        #[prost(fixed32, optional, tag = "12")]
3690        pub sound_num_handle: ::core::option::Option<u32>,
3691        #[prost(int32, optional, tag = "13")]
3692        pub speaker_entity: ::core::option::Option<i32>,
3693        #[prost(int32, optional, tag = "14")]
3694        pub random_seed: ::core::option::Option<i32>,
3695        #[prost(int32, optional, tag = "15")]
3696        pub sound_level: ::core::option::Option<i32>,
3697        #[prost(bool, optional, tag = "16")]
3698        pub is_sentence: ::core::option::Option<bool>,
3699        #[prost(bool, optional, tag = "17")]
3700        pub is_ambient: ::core::option::Option<bool>,
3701        #[prost(uint32, optional, tag = "18")]
3702        pub guid: ::core::option::Option<u32>,
3703        #[prost(fixed64, optional, tag = "19")]
3704        pub sound_resource_id: ::core::option::Option<u64>,
3705    }
3706}
3707#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3708pub struct CSvcMsgPrefetch {
3709    #[prost(int32, optional, tag = "1")]
3710    pub sound_index: ::core::option::Option<i32>,
3711    #[prost(enumeration = "PrefetchType", optional, tag = "2", default = "PftSound")]
3712    pub resource_type: ::core::option::Option<i32>,
3713}
3714#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3715pub struct CSvcMsgSetView {
3716    #[prost(int32, optional, tag = "1", default = "-1")]
3717    pub entity_index: ::core::option::Option<i32>,
3718    #[prost(int32, optional, tag = "2", default = "-1")]
3719    pub slot: ::core::option::Option<i32>,
3720}
3721#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3722pub struct CSvcMsgFixAngle {
3723    #[prost(bool, optional, tag = "1")]
3724    pub relative: ::core::option::Option<bool>,
3725    #[prost(message, optional, tag = "2")]
3726    pub angle: ::core::option::Option<CMsgQAngle>,
3727}
3728#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3729pub struct CSvcMsgCrosshairAngle {
3730    #[prost(message, optional, tag = "1")]
3731    pub angle: ::core::option::Option<CMsgQAngle>,
3732}
3733#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3734pub struct CSvcMsgBspDecal {
3735    #[prost(message, optional, tag = "1")]
3736    pub pos: ::core::option::Option<CMsgVector>,
3737    #[prost(int32, optional, tag = "2")]
3738    pub decal_texture_index: ::core::option::Option<i32>,
3739    #[prost(int32, optional, tag = "3", default = "-1")]
3740    pub entity_index: ::core::option::Option<i32>,
3741    #[prost(int32, optional, tag = "4")]
3742    pub model_index: ::core::option::Option<i32>,
3743    #[prost(bool, optional, tag = "5")]
3744    pub low_priority: ::core::option::Option<bool>,
3745}
3746#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3747pub struct CSvcMsgSplitScreen {
3748    #[prost(enumeration = "ESplitScreenMessageType", optional, tag = "1", default = "MsgSplitscreenAdduser")]
3749    pub r#type: ::core::option::Option<i32>,
3750    #[prost(int32, optional, tag = "2")]
3751    pub slot: ::core::option::Option<i32>,
3752    #[prost(int32, optional, tag = "3", default = "-1")]
3753    pub player_index: ::core::option::Option<i32>,
3754}
3755#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3756pub struct CSvcMsgGetCvarValue {
3757    #[prost(int32, optional, tag = "1")]
3758    pub cookie: ::core::option::Option<i32>,
3759    #[prost(string, optional, tag = "2")]
3760    pub cvar_name: ::core::option::Option<::prost::alloc::string::String>,
3761}
3762#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3763pub struct CSvcMsgMenu {
3764    #[prost(int32, optional, tag = "1")]
3765    pub dialog_type: ::core::option::Option<i32>,
3766    #[prost(bytes = "vec", optional, tag = "2")]
3767    pub menu_key_values: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3768}
3769#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3770pub struct CSvcMsgUserMessage {
3771    #[prost(int32, optional, tag = "1")]
3772    pub msg_type: ::core::option::Option<i32>,
3773    #[prost(bytes = "vec", optional, tag = "2")]
3774    pub msg_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3775    #[prost(int32, optional, tag = "3")]
3776    pub passthrough: ::core::option::Option<i32>,
3777}
3778#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3779pub struct CSvcMsgSendTable {
3780    #[prost(bool, optional, tag = "1")]
3781    pub is_end: ::core::option::Option<bool>,
3782    #[prost(string, optional, tag = "2")]
3783    pub net_table_name: ::core::option::Option<::prost::alloc::string::String>,
3784    #[prost(bool, optional, tag = "3")]
3785    pub needs_decoder: ::core::option::Option<bool>,
3786    #[prost(message, repeated, tag = "4")]
3787    pub props: ::prost::alloc::vec::Vec<csvc_msg_send_table::SendpropT>,
3788}
3789pub mod csvc_msg_send_table {
3790    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3791    pub struct SendpropT {
3792        #[prost(int32, optional, tag = "1")]
3793        pub r#type: ::core::option::Option<i32>,
3794        #[prost(string, optional, tag = "2")]
3795        pub var_name: ::core::option::Option<::prost::alloc::string::String>,
3796        #[prost(int32, optional, tag = "3")]
3797        pub flags: ::core::option::Option<i32>,
3798        #[prost(int32, optional, tag = "4")]
3799        pub priority: ::core::option::Option<i32>,
3800        #[prost(string, optional, tag = "5")]
3801        pub dt_name: ::core::option::Option<::prost::alloc::string::String>,
3802        #[prost(int32, optional, tag = "6")]
3803        pub num_elements: ::core::option::Option<i32>,
3804        #[prost(float, optional, tag = "7")]
3805        pub low_value: ::core::option::Option<f32>,
3806        #[prost(float, optional, tag = "8")]
3807        pub high_value: ::core::option::Option<f32>,
3808        #[prost(int32, optional, tag = "9")]
3809        pub num_bits: ::core::option::Option<i32>,
3810    }
3811}
3812#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3813pub struct CSvcMsgGameEventList {
3814    #[prost(message, repeated, tag = "1")]
3815    pub descriptors: ::prost::alloc::vec::Vec<csvc_msg_game_event_list::DescriptorT>,
3816}
3817pub mod csvc_msg_game_event_list {
3818    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3819    pub struct KeyT {
3820        #[prost(int32, optional, tag = "1")]
3821        pub r#type: ::core::option::Option<i32>,
3822        #[prost(string, optional, tag = "2")]
3823        pub name: ::core::option::Option<::prost::alloc::string::String>,
3824    }
3825    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3826    pub struct DescriptorT {
3827        #[prost(int32, optional, tag = "1")]
3828        pub eventid: ::core::option::Option<i32>,
3829        #[prost(string, optional, tag = "2")]
3830        pub name: ::core::option::Option<::prost::alloc::string::String>,
3831        #[prost(message, repeated, tag = "3")]
3832        pub keys: ::prost::alloc::vec::Vec<KeyT>,
3833    }
3834}
3835#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3836pub struct CSvcMsgPacketEntities {
3837    #[prost(int32, optional, tag = "1")]
3838    pub max_entries: ::core::option::Option<i32>,
3839    #[prost(int32, optional, tag = "2")]
3840    pub updated_entries: ::core::option::Option<i32>,
3841    #[prost(bool, optional, tag = "3")]
3842    pub legacy_is_delta: ::core::option::Option<bool>,
3843    #[prost(bool, optional, tag = "4")]
3844    pub update_baseline: ::core::option::Option<bool>,
3845    #[prost(int32, optional, tag = "5")]
3846    pub baseline: ::core::option::Option<i32>,
3847    #[prost(int32, optional, tag = "6")]
3848    pub delta_from: ::core::option::Option<i32>,
3849    #[prost(bytes = "vec", optional, tag = "7")]
3850    pub entity_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3851    #[prost(bool, optional, tag = "8")]
3852    pub pending_full_frame: ::core::option::Option<bool>,
3853    #[prost(uint32, optional, tag = "9")]
3854    pub active_spawngroup_handle: ::core::option::Option<u32>,
3855    #[prost(uint32, optional, tag = "10")]
3856    pub max_spawngroup_creationsequence: ::core::option::Option<u32>,
3857    #[prost(uint32, optional, tag = "11")]
3858    pub last_cmd_number_executed: ::core::option::Option<u32>,
3859    #[prost(sint32, optional, tag = "17")]
3860    pub last_cmd_number_recv_delta: ::core::option::Option<i32>,
3861    #[prost(uint32, optional, tag = "12")]
3862    pub server_tick: ::core::option::Option<u32>,
3863    #[prost(bytes = "vec", optional, tag = "13")]
3864    pub serialized_entities: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3865    #[prost(message, repeated, tag = "15")]
3866    pub alternate_baselines: ::prost::alloc::vec::Vec<csvc_msg_packet_entities::AlternateBaselineT>,
3867    #[prost(uint32, optional, tag = "16")]
3868    pub has_pvs_vis_bits_deprecated: ::core::option::Option<u32>,
3869    #[prost(sint32, repeated, tag = "22")]
3870    pub cmd_recv_status: ::prost::alloc::vec::Vec<i32>,
3871    #[prost(message, optional, tag = "19")]
3872    pub non_transmitted_entities: ::core::option::Option<csvc_msg_packet_entities::NonTransmittedEntitiesT>,
3873    #[prost(uint32, optional, tag = "20")]
3874    pub cq_starved_command_ticks: ::core::option::Option<u32>,
3875    #[prost(uint32, optional, tag = "21")]
3876    pub cq_discarded_command_ticks: ::core::option::Option<u32>,
3877    #[prost(message, optional, tag = "23")]
3878    pub outofpvs_entity_updates: ::core::option::Option<csvc_msg_packet_entities::OutofpvsEntityUpdatesT>,
3879    #[prost(bytes = "vec", optional, tag = "999")]
3880    pub dev_padding: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3881}
3882pub mod csvc_msg_packet_entities {
3883    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3884    pub struct AlternateBaselineT {
3885        #[prost(int32, optional, tag = "1")]
3886        pub entity_index: ::core::option::Option<i32>,
3887        #[prost(int32, optional, tag = "2")]
3888        pub baseline_index: ::core::option::Option<i32>,
3889    }
3890    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3891    pub struct NonTransmittedEntitiesT {
3892        #[prost(int32, optional, tag = "1")]
3893        pub header_count: ::core::option::Option<i32>,
3894        #[prost(bytes = "vec", optional, tag = "2")]
3895        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3896    }
3897    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3898    pub struct OutofpvsEntityUpdatesT {
3899        #[prost(int32, optional, tag = "1")]
3900        pub count: ::core::option::Option<i32>,
3901        #[prost(bytes = "vec", optional, tag = "2")]
3902        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3903    }
3904}
3905#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3906pub struct CSvcMsgTempEntities {
3907    #[prost(bool, optional, tag = "1")]
3908    pub reliable: ::core::option::Option<bool>,
3909    #[prost(int32, optional, tag = "2")]
3910    pub num_entries: ::core::option::Option<i32>,
3911    #[prost(bytes = "vec", optional, tag = "3")]
3912    pub entity_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3913}
3914#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3915pub struct CSvcMsgCreateStringTable {
3916    #[prost(string, optional, tag = "1")]
3917    pub name: ::core::option::Option<::prost::alloc::string::String>,
3918    #[prost(int32, optional, tag = "2")]
3919    pub num_entries: ::core::option::Option<i32>,
3920    #[prost(bool, optional, tag = "3")]
3921    pub user_data_fixed_size: ::core::option::Option<bool>,
3922    #[prost(int32, optional, tag = "4")]
3923    pub user_data_size: ::core::option::Option<i32>,
3924    #[prost(int32, optional, tag = "5")]
3925    pub user_data_size_bits: ::core::option::Option<i32>,
3926    #[prost(int32, optional, tag = "6")]
3927    pub flags: ::core::option::Option<i32>,
3928    #[prost(bytes = "vec", optional, tag = "7")]
3929    pub string_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3930    #[prost(int32, optional, tag = "8")]
3931    pub uncompressed_size: ::core::option::Option<i32>,
3932    #[prost(bool, optional, tag = "9")]
3933    pub data_compressed: ::core::option::Option<bool>,
3934    #[prost(bool, optional, tag = "10")]
3935    pub using_varint_bitcounts: ::core::option::Option<bool>,
3936}
3937#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3938pub struct CSvcMsgUpdateStringTable {
3939    #[prost(int32, optional, tag = "1")]
3940    pub table_id: ::core::option::Option<i32>,
3941    #[prost(int32, optional, tag = "2")]
3942    pub num_changed_entries: ::core::option::Option<i32>,
3943    #[prost(bytes = "vec", optional, tag = "3")]
3944    pub string_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3945}
3946#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3947pub struct CSvcMsgVoiceData {
3948    #[prost(message, optional, tag = "1")]
3949    pub audio: ::core::option::Option<CMsgVoiceAudio>,
3950    #[prost(int32, optional, tag = "2", default = "-1")]
3951    pub client: ::core::option::Option<i32>,
3952    #[prost(bool, optional, tag = "3")]
3953    pub proximity: ::core::option::Option<bool>,
3954    #[prost(fixed64, optional, tag = "4")]
3955    pub xuid: ::core::option::Option<u64>,
3956    #[prost(int32, optional, tag = "5")]
3957    pub audible_mask: ::core::option::Option<i32>,
3958    #[prost(uint32, optional, tag = "6")]
3959    pub tick: ::core::option::Option<u32>,
3960    #[prost(int32, optional, tag = "7")]
3961    pub passthrough: ::core::option::Option<i32>,
3962}
3963#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3964pub struct CSvcMsgPacketReliable {
3965    #[prost(int32, optional, tag = "1")]
3966    pub tick: ::core::option::Option<i32>,
3967    #[prost(int32, optional, tag = "2")]
3968    pub messagessize: ::core::option::Option<i32>,
3969    #[prost(bool, optional, tag = "3")]
3970    pub state: ::core::option::Option<bool>,
3971}
3972#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3973pub struct CSvcMsgFullFrameSplit {
3974    #[prost(int32, optional, tag = "1")]
3975    pub tick: ::core::option::Option<i32>,
3976    #[prost(int32, optional, tag = "2")]
3977    pub section: ::core::option::Option<i32>,
3978    #[prost(int32, optional, tag = "3")]
3979    pub total: ::core::option::Option<i32>,
3980    #[prost(bytes = "vec", optional, tag = "4")]
3981    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3982}
3983#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3984pub struct CSvcMsgHltvStatus {
3985    #[prost(string, optional, tag = "1")]
3986    pub master: ::core::option::Option<::prost::alloc::string::String>,
3987    #[prost(int32, optional, tag = "2")]
3988    pub clients: ::core::option::Option<i32>,
3989    #[prost(int32, optional, tag = "3")]
3990    pub slots: ::core::option::Option<i32>,
3991    #[prost(int32, optional, tag = "4")]
3992    pub proxies: ::core::option::Option<i32>,
3993}
3994#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3995pub struct CSvcMsgServerSteamId {
3996    #[prost(uint64, optional, tag = "1")]
3997    pub steam_id: ::core::option::Option<u64>,
3998}
3999#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4000pub struct CSvcMsgCmdKeyValues {
4001    #[prost(bytes = "vec", optional, tag = "1")]
4002    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4003}
4004#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4005pub struct CSvcMsgRconServerDetails {
4006    #[prost(bytes = "vec", optional, tag = "1")]
4007    pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4008    #[prost(string, optional, tag = "2")]
4009    pub details: ::core::option::Option<::prost::alloc::string::String>,
4010}
4011#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4012pub struct CMsgIpcAddress {
4013    #[prost(fixed64, optional, tag = "1")]
4014    pub computer_guid: ::core::option::Option<u64>,
4015    #[prost(uint32, optional, tag = "2")]
4016    pub process_id: ::core::option::Option<u32>,
4017}
4018#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4019pub struct CMsgServerPeer {
4020    #[prost(int32, optional, tag = "1", default = "-1")]
4021    pub player_slot: ::core::option::Option<i32>,
4022    #[prost(fixed64, optional, tag = "2")]
4023    pub steamid: ::core::option::Option<u64>,
4024    #[prost(message, optional, tag = "3")]
4025    pub ipc: ::core::option::Option<CMsgIpcAddress>,
4026    #[prost(bool, optional, tag = "4")]
4027    pub they_hear_you: ::core::option::Option<bool>,
4028    #[prost(bool, optional, tag = "5")]
4029    pub you_hear_them: ::core::option::Option<bool>,
4030    #[prost(bool, optional, tag = "6")]
4031    pub is_listenserver_host: ::core::option::Option<bool>,
4032}
4033#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4034pub struct CSvcMsgPeerList {
4035    #[prost(message, repeated, tag = "1")]
4036    pub peer: ::prost::alloc::vec::Vec<CMsgServerPeer>,
4037}
4038#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4039pub struct CSvcMsgClearAllStringTables {
4040    #[prost(string, optional, tag = "1")]
4041    pub mapname: ::core::option::Option<::prost::alloc::string::String>,
4042    #[prost(bool, optional, tag = "3")]
4043    pub create_tables_skipped: ::core::option::Option<bool>,
4044}
4045#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4046pub struct ProtoFlattenedSerializerFieldT {
4047    #[prost(int32, optional, tag = "1")]
4048    pub var_type_sym: ::core::option::Option<i32>,
4049    #[prost(int32, optional, tag = "2")]
4050    pub var_name_sym: ::core::option::Option<i32>,
4051    #[prost(int32, optional, tag = "3")]
4052    pub bit_count: ::core::option::Option<i32>,
4053    #[prost(float, optional, tag = "4")]
4054    pub low_value: ::core::option::Option<f32>,
4055    #[prost(float, optional, tag = "5")]
4056    pub high_value: ::core::option::Option<f32>,
4057    #[prost(int32, optional, tag = "6")]
4058    pub encode_flags: ::core::option::Option<i32>,
4059    #[prost(int32, optional, tag = "7")]
4060    pub field_serializer_name_sym: ::core::option::Option<i32>,
4061    #[prost(int32, optional, tag = "8")]
4062    pub field_serializer_version: ::core::option::Option<i32>,
4063    #[prost(int32, optional, tag = "9")]
4064    pub send_node_sym: ::core::option::Option<i32>,
4065    #[prost(int32, optional, tag = "10")]
4066    pub var_encoder_sym: ::core::option::Option<i32>,
4067    #[prost(message, repeated, tag = "11")]
4068    pub polymorphic_types: ::prost::alloc::vec::Vec<proto_flattened_serializer_field_t::PolymorphicFieldT>,
4069    #[prost(int32, optional, tag = "12")]
4070    pub var_serializer_sym: ::core::option::Option<i32>,
4071}
4072pub mod proto_flattened_serializer_field_t {
4073    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4074    pub struct PolymorphicFieldT {
4075        #[prost(int32, optional, tag = "1")]
4076        pub polymorphic_field_serializer_name_sym: ::core::option::Option<i32>,
4077        #[prost(int32, optional, tag = "2")]
4078        pub polymorphic_field_serializer_version: ::core::option::Option<i32>,
4079    }
4080}
4081#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4082pub struct ProtoFlattenedSerializerT {
4083    #[prost(int32, optional, tag = "1")]
4084    pub serializer_name_sym: ::core::option::Option<i32>,
4085    #[prost(int32, optional, tag = "2")]
4086    pub serializer_version: ::core::option::Option<i32>,
4087    #[prost(int32, repeated, packed = "false", tag = "3")]
4088    pub fields_index: ::prost::alloc::vec::Vec<i32>,
4089}
4090#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4091pub struct CSvcMsgFlattenedSerializer {
4092    #[prost(message, repeated, tag = "1")]
4093    pub serializers: ::prost::alloc::vec::Vec<ProtoFlattenedSerializerT>,
4094    #[prost(string, repeated, tag = "2")]
4095    pub symbols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4096    #[prost(message, repeated, tag = "3")]
4097    pub fields: ::prost::alloc::vec::Vec<ProtoFlattenedSerializerFieldT>,
4098}
4099#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4100pub struct CSvcMsgStopSound {
4101    #[prost(fixed32, optional, tag = "1")]
4102    pub guid: ::core::option::Option<u32>,
4103}
4104#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4105pub struct CBidirMsgRebroadcastGameEvent {
4106    #[prost(bool, optional, tag = "1")]
4107    pub posttoserver: ::core::option::Option<bool>,
4108    #[prost(int32, optional, tag = "2")]
4109    pub buftype: ::core::option::Option<i32>,
4110    #[prost(uint32, optional, tag = "3")]
4111    pub clientbitcount: ::core::option::Option<u32>,
4112    #[prost(uint64, optional, tag = "4")]
4113    pub receivingclients: ::core::option::Option<u64>,
4114}
4115#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4116pub struct CBidirMsgRebroadcastSource {
4117    #[prost(int32, optional, tag = "1")]
4118    pub eventsource: ::core::option::Option<i32>,
4119}
4120#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4121pub struct CBidirMsgPredictionEvent {
4122    #[prost(uint32, optional, tag = "1")]
4123    pub event_id: ::core::option::Option<u32>,
4124    #[prost(bytes = "vec", optional, tag = "2")]
4125    pub event_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4126    #[prost(uint32, optional, tag = "3")]
4127    pub sync_type: ::core::option::Option<u32>,
4128    #[prost(uint32, optional, tag = "4")]
4129    pub sync_val_uint32: ::core::option::Option<u32>,
4130}
4131pub mod c_bidir_msg_prediction_event {
4132    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4133    #[repr(i32)]
4134    pub enum ESyncType {
4135        StTick = 0,
4136        StUserCmdNum = 1,
4137    }
4138}
4139#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4140pub struct CMsgServerNetworkStats {
4141    #[prost(bool, optional, tag = "1")]
4142    pub dedicated: ::core::option::Option<bool>,
4143    #[prost(int32, optional, tag = "2")]
4144    pub cpu_usage: ::core::option::Option<i32>,
4145    #[prost(int32, optional, tag = "3")]
4146    pub memory_used_mb: ::core::option::Option<i32>,
4147    #[prost(int32, optional, tag = "4")]
4148    pub memory_free_mb: ::core::option::Option<i32>,
4149    #[prost(int32, optional, tag = "5")]
4150    pub uptime: ::core::option::Option<i32>,
4151    #[prost(int32, optional, tag = "6")]
4152    pub spawn_count: ::core::option::Option<i32>,
4153    #[prost(int32, optional, tag = "8")]
4154    pub num_clients: ::core::option::Option<i32>,
4155    #[prost(int32, optional, tag = "9")]
4156    pub num_bots: ::core::option::Option<i32>,
4157    #[prost(int32, optional, tag = "10")]
4158    pub num_spectators: ::core::option::Option<i32>,
4159    #[prost(int32, optional, tag = "11")]
4160    pub num_tv_relays: ::core::option::Option<i32>,
4161    #[prost(float, optional, tag = "12")]
4162    pub fps: ::core::option::Option<f32>,
4163    #[prost(message, repeated, tag = "17")]
4164    pub ports: ::prost::alloc::vec::Vec<c_msg_server_network_stats::Port>,
4165    #[prost(float, optional, tag = "18")]
4166    pub avg_ping_ms: ::core::option::Option<f32>,
4167    #[prost(float, optional, tag = "19")]
4168    pub avg_engine_latency_out: ::core::option::Option<f32>,
4169    #[prost(float, optional, tag = "20")]
4170    pub avg_packets_out: ::core::option::Option<f32>,
4171    #[prost(float, optional, tag = "21")]
4172    pub avg_packets_in: ::core::option::Option<f32>,
4173    #[prost(float, optional, tag = "22")]
4174    pub avg_loss_out: ::core::option::Option<f32>,
4175    #[prost(float, optional, tag = "23")]
4176    pub avg_loss_in: ::core::option::Option<f32>,
4177    #[prost(float, optional, tag = "24")]
4178    pub avg_data_out: ::core::option::Option<f32>,
4179    #[prost(float, optional, tag = "25")]
4180    pub avg_data_in: ::core::option::Option<f32>,
4181    #[prost(uint64, optional, tag = "26")]
4182    pub total_data_in: ::core::option::Option<u64>,
4183    #[prost(uint64, optional, tag = "27")]
4184    pub total_packets_in: ::core::option::Option<u64>,
4185    #[prost(uint64, optional, tag = "28")]
4186    pub total_data_out: ::core::option::Option<u64>,
4187    #[prost(uint64, optional, tag = "29")]
4188    pub total_packets_out: ::core::option::Option<u64>,
4189    #[prost(message, repeated, tag = "30")]
4190    pub players: ::prost::alloc::vec::Vec<c_msg_server_network_stats::Player>,
4191}
4192pub mod c_msg_server_network_stats {
4193    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4194    pub struct Port {
4195        #[prost(int32, optional, tag = "1")]
4196        pub port: ::core::option::Option<i32>,
4197        #[prost(string, optional, tag = "2")]
4198        pub name: ::core::option::Option<::prost::alloc::string::String>,
4199    }
4200    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4201    pub struct Player {
4202        #[prost(uint64, optional, tag = "1")]
4203        pub steamid: ::core::option::Option<u64>,
4204        #[prost(string, optional, tag = "2")]
4205        pub remote_addr: ::core::option::Option<::prost::alloc::string::String>,
4206        #[prost(int32, optional, tag = "4")]
4207        pub ping_avg_ms: ::core::option::Option<i32>,
4208        #[prost(float, optional, tag = "5")]
4209        pub packet_loss_pct: ::core::option::Option<f32>,
4210        #[prost(bool, optional, tag = "6")]
4211        pub is_bot: ::core::option::Option<bool>,
4212        #[prost(float, optional, tag = "7")]
4213        pub loss_in: ::core::option::Option<f32>,
4214        #[prost(float, optional, tag = "8")]
4215        pub loss_out: ::core::option::Option<f32>,
4216        #[prost(int32, optional, tag = "9")]
4217        pub engine_latency_ms: ::core::option::Option<i32>,
4218    }
4219}
4220#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4221pub struct CSvcMsgHltvReplay {
4222    #[prost(int32, optional, tag = "1")]
4223    pub delay: ::core::option::Option<i32>,
4224    #[prost(int32, optional, tag = "2", default = "-1")]
4225    pub primary_target: ::core::option::Option<i32>,
4226    #[prost(int32, optional, tag = "3")]
4227    pub replay_stop_at: ::core::option::Option<i32>,
4228    #[prost(int32, optional, tag = "4")]
4229    pub replay_start_at: ::core::option::Option<i32>,
4230    #[prost(int32, optional, tag = "5")]
4231    pub replay_slowdown_begin: ::core::option::Option<i32>,
4232    #[prost(int32, optional, tag = "6")]
4233    pub replay_slowdown_end: ::core::option::Option<i32>,
4234    #[prost(float, optional, tag = "7")]
4235    pub replay_slowdown_rate: ::core::option::Option<f32>,
4236    #[prost(int32, optional, tag = "8")]
4237    pub reason: ::core::option::Option<i32>,
4238}
4239#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4240pub struct CclcMsgHltvReplay {
4241    #[prost(int32, optional, tag = "1")]
4242    pub request: ::core::option::Option<i32>,
4243    #[prost(float, optional, tag = "2")]
4244    pub slowdown_length: ::core::option::Option<f32>,
4245    #[prost(float, optional, tag = "3")]
4246    pub slowdown_rate: ::core::option::Option<f32>,
4247    #[prost(int32, optional, tag = "4", default = "-1")]
4248    pub primary_target: ::core::option::Option<i32>,
4249    #[prost(float, optional, tag = "5")]
4250    pub event_time: ::core::option::Option<f32>,
4251}
4252#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4253pub struct CSvcMsgBroadcastCommand {
4254    #[prost(string, optional, tag = "1")]
4255    pub cmd: ::core::option::Option<::prost::alloc::string::String>,
4256}
4257#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4258pub struct CclcMsgHltvFixupOperatorTick {
4259    #[prost(int32, optional, tag = "1")]
4260    pub tick: ::core::option::Option<i32>,
4261    #[prost(bytes = "vec", optional, tag = "2")]
4262    pub props_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4263    #[prost(message, optional, tag = "3")]
4264    pub origin: ::core::option::Option<CMsgVector>,
4265    #[prost(message, optional, tag = "4")]
4266    pub eye_angles: ::core::option::Option<CMsgQAngle>,
4267    #[prost(int32, optional, tag = "5")]
4268    pub observer_mode: ::core::option::Option<i32>,
4269    #[prost(bool, optional, tag = "6")]
4270    pub cameraman_scoreboard: ::core::option::Option<bool>,
4271    #[prost(int32, optional, tag = "7")]
4272    pub observer_target: ::core::option::Option<i32>,
4273    #[prost(message, optional, tag = "8")]
4274    pub view_offset: ::core::option::Option<CMsgVector>,
4275}
4276#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4277pub struct CSvcMsgHltvFixupOperatorStatus {
4278    #[prost(uint32, optional, tag = "1")]
4279    pub mode: ::core::option::Option<u32>,
4280    #[prost(string, optional, tag = "2")]
4281    pub override_operator_name: ::core::option::Option<::prost::alloc::string::String>,
4282}
4283#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4284pub struct CMsgServerUserCmd {
4285    #[prost(bytes = "vec", optional, tag = "1")]
4286    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4287    #[prost(int32, optional, tag = "2")]
4288    pub cmd_number: ::core::option::Option<i32>,
4289    #[prost(int32, optional, tag = "3", default = "-1")]
4290    pub player_slot: ::core::option::Option<i32>,
4291    #[prost(int32, optional, tag = "4")]
4292    pub server_tick_executed: ::core::option::Option<i32>,
4293    #[prost(int32, optional, tag = "5")]
4294    pub client_tick: ::core::option::Option<i32>,
4295}
4296#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4297pub struct CSvcMsgUserCommands {
4298    #[prost(message, repeated, tag = "1")]
4299    pub commands: ::prost::alloc::vec::Vec<CMsgServerUserCmd>,
4300}
4301#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4302pub struct CSvcMsgNextMsgPredicted {
4303    #[prost(int32, optional, tag = "1", default = "-1")]
4304    pub predicted_by_player_slot: ::core::option::Option<i32>,
4305    #[prost(uint32, optional, tag = "2")]
4306    pub message_type_id: ::core::option::Option<u32>,
4307}
4308#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4309#[repr(i32)]
4310pub enum ClcMessages {
4311    ClcClientInfo = 20,
4312    ClcMove = 21,
4313    ClcVoiceData = 22,
4314    ClcBaselineAck = 23,
4315    ClcRespondCvarValue = 25,
4316    ClcLoadingProgress = 27,
4317    ClcSplitPlayerConnect = 28,
4318    ClcSplitPlayerDisconnect = 30,
4319    ClcServerStatus = 31,
4320    ClcRequestPause = 33,
4321    ClcCmdKeyValues = 34,
4322    ClcRconServerDetails = 35,
4323    ClcHltvReplay = 36,
4324    ClcDiagnostic = 37,
4325}
4326#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4327#[repr(i32)]
4328pub enum SvcMessages {
4329    SvcServerInfo = 40,
4330    SvcFlattenedSerializer = 41,
4331    SvcClassInfo = 42,
4332    SvcSetPause = 43,
4333    SvcCreateStringTable = 44,
4334    SvcUpdateStringTable = 45,
4335    SvcVoiceInit = 46,
4336    SvcVoiceData = 47,
4337    SvcPrint = 48,
4338    SvcSounds = 49,
4339    SvcSetView = 50,
4340    SvcClearAllStringTables = 51,
4341    SvcCmdKeyValues = 52,
4342    SvcBspDecal = 53,
4343    SvcSplitScreen = 54,
4344    SvcPacketEntities = 55,
4345    SvcPrefetch = 56,
4346    SvcMenu = 57,
4347    SvcGetCvarValue = 58,
4348    SvcStopSound = 59,
4349    SvcPeerList = 60,
4350    SvcPacketReliable = 61,
4351    SvcHltvStatus = 62,
4352    SvcServerSteamId = 63,
4353    SvcFullFrameSplit = 70,
4354    SvcRconServerDetails = 71,
4355    SvcUserMessage = 72,
4356    SvcBroadcastCommand = 74,
4357    SvcHltvFixupOperatorStatus = 75,
4358    SvcUserCmds = 76,
4359    SvcNextMsgPredicted = 77,
4360}
4361#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4362#[repr(i32)]
4363pub enum VoiceDataFormatT {
4364    VoicedataFormatSteam = 0,
4365    VoicedataFormatEngine = 1,
4366    VoicedataFormatOpus = 2,
4367}
4368#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4369#[repr(i32)]
4370pub enum RequestPauseT {
4371    RpPause = 0,
4372    RpUnpause = 1,
4373    RpTogglepause = 2,
4374}
4375#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4376#[repr(i32)]
4377pub enum PrefetchType {
4378    PftSound = 0,
4379}
4380#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4381#[repr(i32)]
4382pub enum ESplitScreenMessageType {
4383    MsgSplitscreenAdduser = 0,
4384    MsgSplitscreenRemoveuser = 1,
4385}
4386#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4387#[repr(i32)]
4388pub enum EQueryCvarValueStatus {
4389    ValueIntact = 0,
4390    CvarNotFound = 1,
4391    NotACvar = 2,
4392    CvarProtected = 3,
4393}
4394#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4395#[repr(i32)]
4396pub enum DialogType {
4397    DialogMsg = 0,
4398    DialogMenu = 1,
4399    DialogText = 2,
4400    DialogEntry = 3,
4401    DialogAskconnect = 4,
4402}
4403#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4404#[repr(i32)]
4405pub enum SvcMessagesLowFrequency {
4406    SvcDummy = 600,
4407}
4408#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4409#[repr(i32)]
4410pub enum BidirectionalMessages {
4411    BiRebroadcastGameEvent = 16,
4412    BiRebroadcastSource = 17,
4413    BiGameEventDeprecated = 18,
4414    BiPredictionEvent = 19,
4415}
4416#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4417#[repr(i32)]
4418pub enum ReplayEventTypeT {
4419    ReplayEventCancel = 0,
4420    ReplayEventDeath = 1,
4421    ReplayEventGeneric = 2,
4422    ReplayEventStuckNeedFullUpdate = 3,
4423    ReplayEventVictory = 4,
4424}
4425#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4426pub struct CUserMessageAchievementEvent {
4427    #[prost(uint32, optional, tag = "1")]
4428    pub achievement: ::core::option::Option<u32>,
4429}
4430#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4431pub struct CUserMessageCloseCaption {
4432    #[prost(fixed32, optional, tag = "1")]
4433    pub hash: ::core::option::Option<u32>,
4434    #[prost(float, optional, tag = "2")]
4435    pub duration: ::core::option::Option<f32>,
4436    #[prost(bool, optional, tag = "3")]
4437    pub from_player: ::core::option::Option<bool>,
4438    #[prost(int32, optional, tag = "4", default = "-1")]
4439    pub ent_index: ::core::option::Option<i32>,
4440}
4441#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4442pub struct CUserMessageCloseCaptionDirect {
4443    #[prost(fixed32, optional, tag = "1")]
4444    pub hash: ::core::option::Option<u32>,
4445    #[prost(float, optional, tag = "2")]
4446    pub duration: ::core::option::Option<f32>,
4447    #[prost(bool, optional, tag = "3")]
4448    pub from_player: ::core::option::Option<bool>,
4449    #[prost(int32, optional, tag = "4", default = "-1")]
4450    pub ent_index: ::core::option::Option<i32>,
4451}
4452#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4453pub struct CUserMessageCloseCaptionPlaceholder {
4454    #[prost(string, optional, tag = "1")]
4455    pub string: ::core::option::Option<::prost::alloc::string::String>,
4456    #[prost(float, optional, tag = "2")]
4457    pub duration: ::core::option::Option<f32>,
4458    #[prost(bool, optional, tag = "3")]
4459    pub from_player: ::core::option::Option<bool>,
4460    #[prost(int32, optional, tag = "4", default = "-1")]
4461    pub ent_index: ::core::option::Option<i32>,
4462}
4463#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4464pub struct CUserMessageCurrentTimescale {
4465    #[prost(float, optional, tag = "1")]
4466    pub current: ::core::option::Option<f32>,
4467}
4468#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4469pub struct CUserMessageDesiredTimescale {
4470    #[prost(float, optional, tag = "1")]
4471    pub desired: ::core::option::Option<f32>,
4472    #[prost(float, optional, tag = "2")]
4473    pub acceleration: ::core::option::Option<f32>,
4474    #[prost(float, optional, tag = "3")]
4475    pub minblendrate: ::core::option::Option<f32>,
4476    #[prost(float, optional, tag = "4")]
4477    pub blenddeltamultiplier: ::core::option::Option<f32>,
4478}
4479#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4480pub struct CUserMessageFade {
4481    #[prost(uint32, optional, tag = "1")]
4482    pub duration: ::core::option::Option<u32>,
4483    #[prost(uint32, optional, tag = "2")]
4484    pub hold_time: ::core::option::Option<u32>,
4485    #[prost(uint32, optional, tag = "3")]
4486    pub flags: ::core::option::Option<u32>,
4487    #[prost(fixed32, optional, tag = "4")]
4488    pub color: ::core::option::Option<u32>,
4489}
4490#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4491pub struct CUserMessageShake {
4492    #[prost(uint32, optional, tag = "1")]
4493    pub command: ::core::option::Option<u32>,
4494    #[prost(float, optional, tag = "2")]
4495    pub amplitude: ::core::option::Option<f32>,
4496    #[prost(float, optional, tag = "3")]
4497    pub frequency: ::core::option::Option<f32>,
4498    #[prost(float, optional, tag = "4")]
4499    pub duration: ::core::option::Option<f32>,
4500}
4501#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4502pub struct CUserMessageShakeDir {
4503    #[prost(message, optional, tag = "1")]
4504    pub shake: ::core::option::Option<CUserMessageShake>,
4505    #[prost(message, optional, tag = "2")]
4506    pub direction: ::core::option::Option<CMsgVector>,
4507}
4508#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4509pub struct CUserMessageWaterShake {
4510    #[prost(uint32, optional, tag = "1")]
4511    pub command: ::core::option::Option<u32>,
4512    #[prost(float, optional, tag = "2")]
4513    pub amplitude: ::core::option::Option<f32>,
4514    #[prost(float, optional, tag = "3")]
4515    pub frequency: ::core::option::Option<f32>,
4516    #[prost(float, optional, tag = "4")]
4517    pub duration: ::core::option::Option<f32>,
4518}
4519#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4520pub struct CUserMessageScreenTilt {
4521    #[prost(uint32, optional, tag = "1")]
4522    pub command: ::core::option::Option<u32>,
4523    #[prost(bool, optional, tag = "2")]
4524    pub ease_in_out: ::core::option::Option<bool>,
4525    #[prost(message, optional, tag = "3")]
4526    pub angle: ::core::option::Option<CMsgVector>,
4527    #[prost(float, optional, tag = "4")]
4528    pub duration: ::core::option::Option<f32>,
4529    #[prost(float, optional, tag = "5")]
4530    pub time: ::core::option::Option<f32>,
4531}
4532#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4533pub struct CUserMessageSayText {
4534    #[prost(int32, optional, tag = "1", default = "-1")]
4535    pub playerindex: ::core::option::Option<i32>,
4536    #[prost(string, optional, tag = "2")]
4537    pub text: ::core::option::Option<::prost::alloc::string::String>,
4538    #[prost(bool, optional, tag = "3")]
4539    pub chat: ::core::option::Option<bool>,
4540}
4541#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4542pub struct CUserMessageSayText2 {
4543    #[prost(int32, optional, tag = "1", default = "-1")]
4544    pub entityindex: ::core::option::Option<i32>,
4545    #[prost(bool, optional, tag = "2")]
4546    pub chat: ::core::option::Option<bool>,
4547    #[prost(string, optional, tag = "3")]
4548    pub messagename: ::core::option::Option<::prost::alloc::string::String>,
4549    #[prost(string, optional, tag = "4")]
4550    pub param1: ::core::option::Option<::prost::alloc::string::String>,
4551    #[prost(string, optional, tag = "5")]
4552    pub param2: ::core::option::Option<::prost::alloc::string::String>,
4553    #[prost(string, optional, tag = "6")]
4554    pub param3: ::core::option::Option<::prost::alloc::string::String>,
4555    #[prost(string, optional, tag = "7")]
4556    pub param4: ::core::option::Option<::prost::alloc::string::String>,
4557}
4558#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4559pub struct CUserMessageHudMsg {
4560    #[prost(uint32, optional, tag = "1")]
4561    pub channel: ::core::option::Option<u32>,
4562    #[prost(float, optional, tag = "2")]
4563    pub x: ::core::option::Option<f32>,
4564    #[prost(float, optional, tag = "3")]
4565    pub y: ::core::option::Option<f32>,
4566    #[prost(fixed32, optional, tag = "4")]
4567    pub color1: ::core::option::Option<u32>,
4568    #[prost(fixed32, optional, tag = "5")]
4569    pub color2: ::core::option::Option<u32>,
4570    #[prost(uint32, optional, tag = "6")]
4571    pub effect: ::core::option::Option<u32>,
4572    #[prost(string, optional, tag = "11")]
4573    pub message: ::core::option::Option<::prost::alloc::string::String>,
4574}
4575#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4576pub struct CUserMessageHudText {
4577    #[prost(string, optional, tag = "1")]
4578    pub message: ::core::option::Option<::prost::alloc::string::String>,
4579}
4580#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4581pub struct CUserMessageTextMsg {
4582    #[prost(uint32, optional, tag = "1")]
4583    pub dest: ::core::option::Option<u32>,
4584    #[prost(string, repeated, tag = "2")]
4585    pub param: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4586}
4587#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4588pub struct CUserMessageGameTitle {}
4589#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4590pub struct CUserMessageResetHud {}
4591#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4592pub struct CUserMessageSendAudio {
4593    #[prost(string, optional, tag = "1")]
4594    pub soundname: ::core::option::Option<::prost::alloc::string::String>,
4595    #[prost(bool, optional, tag = "2")]
4596    pub stop: ::core::option::Option<bool>,
4597}
4598#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4599pub struct CUserMessageAudioParameter {
4600    #[prost(uint32, optional, tag = "1")]
4601    pub parameter_type: ::core::option::Option<u32>,
4602    #[prost(uint32, optional, tag = "2")]
4603    pub name_hash_code: ::core::option::Option<u32>,
4604    #[prost(float, optional, tag = "3")]
4605    pub value: ::core::option::Option<f32>,
4606    #[prost(uint32, optional, tag = "4")]
4607    pub int_value: ::core::option::Option<u32>,
4608}
4609#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4610pub struct CUserMessageVoiceMask {
4611    #[prost(uint32, repeated, packed = "false", tag = "1")]
4612    pub gamerules_masks: ::prost::alloc::vec::Vec<u32>,
4613    #[prost(uint32, repeated, packed = "false", tag = "2")]
4614    pub ban_masks: ::prost::alloc::vec::Vec<u32>,
4615    #[prost(bool, optional, tag = "3")]
4616    pub mod_enable: ::core::option::Option<bool>,
4617}
4618#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4619pub struct CUserMessageRequestState {}
4620#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4621pub struct CUserMessageRumble {
4622    #[prost(int32, optional, tag = "1")]
4623    pub index: ::core::option::Option<i32>,
4624    #[prost(int32, optional, tag = "2")]
4625    pub data: ::core::option::Option<i32>,
4626    #[prost(int32, optional, tag = "3")]
4627    pub flags: ::core::option::Option<i32>,
4628}
4629#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4630pub struct CUserMessageSayTextChannel {
4631    #[prost(int32, optional, tag = "1")]
4632    pub player: ::core::option::Option<i32>,
4633    #[prost(int32, optional, tag = "2")]
4634    pub channel: ::core::option::Option<i32>,
4635    #[prost(string, optional, tag = "3")]
4636    pub text: ::core::option::Option<::prost::alloc::string::String>,
4637}
4638#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4639pub struct CUserMessageColoredText {
4640    #[prost(uint32, optional, tag = "1")]
4641    pub color: ::core::option::Option<u32>,
4642    #[prost(string, optional, tag = "2")]
4643    pub text: ::core::option::Option<::prost::alloc::string::String>,
4644    #[prost(bool, optional, tag = "3")]
4645    pub reset: ::core::option::Option<bool>,
4646    #[prost(int32, optional, tag = "4", default = "-1")]
4647    pub context_player_slot: ::core::option::Option<i32>,
4648    #[prost(int32, optional, tag = "5")]
4649    pub context_value: ::core::option::Option<i32>,
4650    #[prost(int32, optional, tag = "6")]
4651    pub context_team_id: ::core::option::Option<i32>,
4652}
4653#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4654pub struct CUserMessageItemPickup {
4655    #[prost(string, optional, tag = "1")]
4656    pub itemname: ::core::option::Option<::prost::alloc::string::String>,
4657}
4658#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4659pub struct CUserMessageAmmoDenied {
4660    #[prost(uint32, optional, tag = "1")]
4661    pub ammo_id: ::core::option::Option<u32>,
4662}
4663#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4664pub struct CUserMessageShowMenu {
4665    #[prost(uint32, optional, tag = "1")]
4666    pub validslots: ::core::option::Option<u32>,
4667    #[prost(uint32, optional, tag = "2")]
4668    pub displaytime: ::core::option::Option<u32>,
4669    #[prost(bool, optional, tag = "3")]
4670    pub needmore: ::core::option::Option<bool>,
4671    #[prost(string, optional, tag = "4")]
4672    pub menustring: ::core::option::Option<::prost::alloc::string::String>,
4673}
4674#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4675pub struct CUserMessageCreditsMsg {
4676    #[prost(enumeration = "ERollType", optional, tag = "1", default = "RollNone")]
4677    pub rolltype: ::core::option::Option<i32>,
4678    #[prost(float, optional, tag = "2")]
4679    pub logo_length: ::core::option::Option<f32>,
4680}
4681#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4682pub struct CEntityMessagePlayJingle {
4683    #[prost(message, optional, tag = "1")]
4684    pub entity_msg: ::core::option::Option<CEntityMsg>,
4685}
4686#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4687pub struct CEntityMessageScreenOverlay {
4688    #[prost(bool, optional, tag = "1")]
4689    pub start_effect: ::core::option::Option<bool>,
4690    #[prost(message, optional, tag = "2")]
4691    pub entity_msg: ::core::option::Option<CEntityMsg>,
4692}
4693#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4694pub struct CEntityMessageRemoveAllDecals {
4695    #[prost(bool, optional, tag = "1")]
4696    pub remove_decals: ::core::option::Option<bool>,
4697    #[prost(message, optional, tag = "2")]
4698    pub entity_msg: ::core::option::Option<CEntityMsg>,
4699}
4700#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4701pub struct CEntityMessagePropagateForce {
4702    #[prost(message, optional, tag = "1")]
4703    pub impulse: ::core::option::Option<CMsgVector>,
4704    #[prost(message, optional, tag = "2")]
4705    pub entity_msg: ::core::option::Option<CEntityMsg>,
4706}
4707#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4708pub struct CEntityMessageDoSpark {
4709    #[prost(message, optional, tag = "1")]
4710    pub origin: ::core::option::Option<CMsgVector>,
4711    #[prost(int32, optional, tag = "2", default = "-1")]
4712    pub entityindex: ::core::option::Option<i32>,
4713    #[prost(float, optional, tag = "3")]
4714    pub radius: ::core::option::Option<f32>,
4715    #[prost(fixed32, optional, tag = "4")]
4716    pub color: ::core::option::Option<u32>,
4717    #[prost(uint32, optional, tag = "5")]
4718    pub beams: ::core::option::Option<u32>,
4719    #[prost(float, optional, tag = "6")]
4720    pub thick: ::core::option::Option<f32>,
4721    #[prost(float, optional, tag = "7")]
4722    pub duration: ::core::option::Option<f32>,
4723    #[prost(message, optional, tag = "8")]
4724    pub entity_msg: ::core::option::Option<CEntityMsg>,
4725}
4726#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4727pub struct CEntityMessageFixAngle {
4728    #[prost(bool, optional, tag = "1")]
4729    pub relative: ::core::option::Option<bool>,
4730    #[prost(message, optional, tag = "2")]
4731    pub angle: ::core::option::Option<CMsgQAngle>,
4732    #[prost(message, optional, tag = "3")]
4733    pub entity_msg: ::core::option::Option<CEntityMsg>,
4734}
4735#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4736pub struct CUserMessageCameraTransition {
4737    #[prost(uint32, optional, tag = "1")]
4738    pub camera_type: ::core::option::Option<u32>,
4739    #[prost(float, optional, tag = "2")]
4740    pub duration: ::core::option::Option<f32>,
4741    #[prost(message, optional, tag = "3")]
4742    pub params_data_driven: ::core::option::Option<c_user_message_camera_transition::TransitionDataDriven>,
4743}
4744pub mod c_user_message_camera_transition {
4745    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4746    pub struct TransitionDataDriven {
4747        #[prost(string, optional, tag = "1")]
4748        pub filename: ::core::option::Option<::prost::alloc::string::String>,
4749        #[prost(int32, optional, tag = "2", default = "-1")]
4750        pub attach_ent_index: ::core::option::Option<i32>,
4751        #[prost(float, optional, tag = "3")]
4752        pub duration: ::core::option::Option<f32>,
4753    }
4754}
4755#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4756pub struct CUserMsgParticleManager {
4757    #[prost(enumeration = "ParticleMessage", optional, tag = "1", default = "GameParticleManagerEventCreate")]
4758    pub r#type: ::core::option::Option<i32>,
4759    #[prost(uint32, optional, tag = "2")]
4760    pub index: ::core::option::Option<u32>,
4761    #[prost(message, optional, tag = "3")]
4762    pub release_particle_index: ::core::option::Option<c_user_msg_particle_manager::ReleaseParticleIndex>,
4763    #[prost(message, optional, tag = "4")]
4764    pub create_particle: ::core::option::Option<c_user_msg_particle_manager::CreateParticle>,
4765    #[prost(message, optional, tag = "5")]
4766    pub destroy_particle: ::core::option::Option<c_user_msg_particle_manager::DestroyParticle>,
4767    #[prost(message, optional, tag = "6")]
4768    pub destroy_particle_involving: ::core::option::Option<c_user_msg_particle_manager::DestroyParticleInvolving>,
4769    #[prost(message, optional, tag = "7")]
4770    pub update_particle: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleObsolete>,
4771    #[prost(message, optional, tag = "8")]
4772    pub update_particle_fwd: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleFwdObsolete>,
4773    #[prost(message, optional, tag = "9")]
4774    pub update_particle_orient: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleOrientObsolete>,
4775    #[prost(message, optional, tag = "10")]
4776    pub update_particle_fallback: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleFallback>,
4777    #[prost(message, optional, tag = "11")]
4778    pub update_particle_offset: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleOffset>,
4779    #[prost(message, optional, tag = "12")]
4780    pub update_particle_ent: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleEnt>,
4781    #[prost(message, optional, tag = "14")]
4782    pub update_particle_should_draw: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleShouldDraw>,
4783    #[prost(message, optional, tag = "15")]
4784    pub update_particle_set_frozen: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleSetFrozen>,
4785    #[prost(message, optional, tag = "16")]
4786    pub change_control_point_attachment: ::core::option::Option<c_user_msg_particle_manager::ChangeControlPointAttachment>,
4787    #[prost(message, optional, tag = "17")]
4788    pub update_entity_position: ::core::option::Option<c_user_msg_particle_manager::UpdateEntityPosition>,
4789    #[prost(message, optional, tag = "18")]
4790    pub set_particle_fow_properties: ::core::option::Option<c_user_msg_particle_manager::SetParticleFoWProperties>,
4791    #[prost(message, optional, tag = "19")]
4792    pub set_particle_text: ::core::option::Option<c_user_msg_particle_manager::SetParticleText>,
4793    #[prost(message, optional, tag = "20")]
4794    pub set_particle_should_check_fow: ::core::option::Option<c_user_msg_particle_manager::SetParticleShouldCheckFoW>,
4795    #[prost(message, optional, tag = "21")]
4796    pub set_control_point_model: ::core::option::Option<c_user_msg_particle_manager::SetControlPointModel>,
4797    #[prost(message, optional, tag = "22")]
4798    pub set_control_point_snapshot: ::core::option::Option<c_user_msg_particle_manager::SetControlPointSnapshot>,
4799    #[prost(message, optional, tag = "23")]
4800    pub set_texture_attribute: ::core::option::Option<c_user_msg_particle_manager::SetTextureAttribute>,
4801    #[prost(message, optional, tag = "24")]
4802    pub set_scene_object_generic_flag: ::core::option::Option<c_user_msg_particle_manager::SetSceneObjectGenericFlag>,
4803    #[prost(message, optional, tag = "25")]
4804    pub set_scene_object_tint_and_desat: ::core::option::Option<c_user_msg_particle_manager::SetSceneObjectTintAndDesat>,
4805    #[prost(message, optional, tag = "26")]
4806    pub destroy_particle_named: ::core::option::Option<c_user_msg_particle_manager::DestroyParticleNamed>,
4807    #[prost(message, optional, tag = "27")]
4808    pub particle_skip_to_time: ::core::option::Option<c_user_msg_particle_manager::ParticleSkipToTime>,
4809    #[prost(message, optional, tag = "28")]
4810    pub particle_can_freeze: ::core::option::Option<c_user_msg_particle_manager::ParticleCanFreeze>,
4811    #[prost(message, optional, tag = "29")]
4812    pub set_named_value_context: ::core::option::Option<c_user_msg_particle_manager::SetParticleNamedValueContext>,
4813    #[prost(message, optional, tag = "30")]
4814    pub update_particle_transform: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleTransform>,
4815    #[prost(message, optional, tag = "31")]
4816    pub particle_freeze_transition_override: ::core::option::Option<c_user_msg_particle_manager::ParticleFreezeTransitionOverride>,
4817    #[prost(message, optional, tag = "32")]
4818    pub freeze_particle_involving: ::core::option::Option<c_user_msg_particle_manager::FreezeParticleInvolving>,
4819    #[prost(message, optional, tag = "33")]
4820    pub add_modellist_override_element: ::core::option::Option<c_user_msg_particle_manager::AddModellistOverrideElement>,
4821    #[prost(message, optional, tag = "34")]
4822    pub clear_modellist_override: ::core::option::Option<c_user_msg_particle_manager::ClearModellistOverride>,
4823    #[prost(message, optional, tag = "35")]
4824    pub create_physics_sim: ::core::option::Option<c_user_msg_particle_manager::CreatePhysicsSim>,
4825    #[prost(message, optional, tag = "36")]
4826    pub destroy_physics_sim: ::core::option::Option<c_user_msg_particle_manager::DestroyPhysicsSim>,
4827    #[prost(message, optional, tag = "37")]
4828    pub set_vdata: ::core::option::Option<c_user_msg_particle_manager::SetVData>,
4829    #[prost(message, optional, tag = "38")]
4830    pub set_material_override: ::core::option::Option<c_user_msg_particle_manager::SetMaterialOverride>,
4831    #[prost(message, optional, tag = "39")]
4832    pub add_fan: ::core::option::Option<c_user_msg_particle_manager::AddFan>,
4833    #[prost(message, optional, tag = "40")]
4834    pub update_fan: ::core::option::Option<c_user_msg_particle_manager::UpdateFan>,
4835    #[prost(message, optional, tag = "41")]
4836    pub set_particle_cluster_growth: ::core::option::Option<c_user_msg_particle_manager::SetParticleClusterGrowth>,
4837    #[prost(message, optional, tag = "42")]
4838    pub remove_fan: ::core::option::Option<c_user_msg_particle_manager::RemoveFan>,
4839    #[prost(message, optional, tag = "43")]
4840    pub create_smoke_grid: ::core::option::Option<c_user_msg_particle_manager::CreateSmokeGrid>,
4841    #[prost(message, optional, tag = "44")]
4842    pub set_override_texture: ::core::option::Option<c_user_msg_particle_manager::SetOverrideTexture>,
4843}
4844pub mod c_user_msg_particle_manager {
4845    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4846    pub struct ReleaseParticleIndex {}
4847    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4848    pub struct CreateParticle {
4849        #[prost(fixed64, optional, tag = "1")]
4850        pub particle_name_index: ::core::option::Option<u64>,
4851        #[prost(int32, optional, tag = "2")]
4852        pub attach_type: ::core::option::Option<i32>,
4853        #[prost(uint32, optional, tag = "3", default = "16777215")]
4854        pub entity_handle: ::core::option::Option<u32>,
4855        #[prost(uint32, optional, tag = "4", default = "16777215")]
4856        pub entity_handle_for_modifiers: ::core::option::Option<u32>,
4857        #[prost(bool, optional, tag = "5")]
4858        pub apply_voice_ban_rules: ::core::option::Option<bool>,
4859        #[prost(int32, optional, tag = "6")]
4860        pub team_behavior: ::core::option::Option<i32>,
4861        #[prost(string, optional, tag = "7")]
4862        pub control_point_configuration: ::core::option::Option<::prost::alloc::string::String>,
4863        #[prost(bool, optional, tag = "8")]
4864        pub cluster: ::core::option::Option<bool>,
4865        #[prost(float, optional, tag = "9")]
4866        pub endcap_time: ::core::option::Option<f32>,
4867        #[prost(message, optional, tag = "10")]
4868        pub aggregation_position: ::core::option::Option<super::CMsgVector>,
4869    }
4870    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4871    pub struct DestroyParticle {
4872        #[prost(bool, optional, tag = "1")]
4873        pub destroy_immediately: ::core::option::Option<bool>,
4874    }
4875    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4876    pub struct DestroyParticleInvolving {
4877        #[prost(bool, optional, tag = "1")]
4878        pub destroy_immediately: ::core::option::Option<bool>,
4879        #[prost(uint32, optional, tag = "3", default = "16777215")]
4880        pub entity_handle: ::core::option::Option<u32>,
4881    }
4882    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4883    pub struct DestroyParticleNamed {
4884        #[prost(fixed64, optional, tag = "1")]
4885        pub particle_name_index: ::core::option::Option<u64>,
4886        #[prost(uint32, optional, tag = "2", default = "16777215")]
4887        pub entity_handle: ::core::option::Option<u32>,
4888        #[prost(bool, optional, tag = "3")]
4889        pub destroy_immediately: ::core::option::Option<bool>,
4890        #[prost(bool, optional, tag = "4")]
4891        pub play_endcap: ::core::option::Option<bool>,
4892    }
4893    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4894    pub struct UpdateParticleObsolete {
4895        #[prost(int32, optional, tag = "1")]
4896        pub control_point: ::core::option::Option<i32>,
4897        #[prost(message, optional, tag = "2")]
4898        pub position: ::core::option::Option<super::CMsgVector>,
4899    }
4900    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4901    pub struct UpdateParticleFwdObsolete {
4902        #[prost(int32, optional, tag = "1")]
4903        pub control_point: ::core::option::Option<i32>,
4904        #[prost(message, optional, tag = "2")]
4905        pub forward: ::core::option::Option<super::CMsgVector>,
4906    }
4907    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4908    pub struct UpdateParticleOrientObsolete {
4909        #[prost(int32, optional, tag = "1")]
4910        pub control_point: ::core::option::Option<i32>,
4911        #[prost(message, optional, tag = "2")]
4912        pub forward: ::core::option::Option<super::CMsgVector>,
4913        #[prost(message, optional, tag = "3")]
4914        pub deprecated_right: ::core::option::Option<super::CMsgVector>,
4915        #[prost(message, optional, tag = "4")]
4916        pub up: ::core::option::Option<super::CMsgVector>,
4917        #[prost(message, optional, tag = "5")]
4918        pub left: ::core::option::Option<super::CMsgVector>,
4919    }
4920    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4921    pub struct UpdateParticleTransform {
4922        #[prost(int32, optional, tag = "1")]
4923        pub control_point: ::core::option::Option<i32>,
4924        #[prost(message, optional, tag = "2")]
4925        pub position: ::core::option::Option<super::CMsgVector>,
4926        #[prost(message, optional, tag = "3")]
4927        pub orientation: ::core::option::Option<super::CMsgQuaternion>,
4928        #[prost(float, optional, tag = "4")]
4929        pub interpolation_interval: ::core::option::Option<f32>,
4930    }
4931    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4932    pub struct UpdateParticleFallback {
4933        #[prost(int32, optional, tag = "1")]
4934        pub control_point: ::core::option::Option<i32>,
4935        #[prost(message, optional, tag = "2")]
4936        pub position: ::core::option::Option<super::CMsgVector>,
4937    }
4938    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4939    pub struct UpdateParticleOffset {
4940        #[prost(int32, optional, tag = "1")]
4941        pub control_point: ::core::option::Option<i32>,
4942        #[prost(message, optional, tag = "2")]
4943        pub origin_offset: ::core::option::Option<super::CMsgVector>,
4944        #[prost(message, optional, tag = "3")]
4945        pub angle_offset: ::core::option::Option<super::CMsgQAngle>,
4946    }
4947    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4948    pub struct UpdateParticleEnt {
4949        #[prost(int32, optional, tag = "1")]
4950        pub control_point: ::core::option::Option<i32>,
4951        #[prost(uint32, optional, tag = "2", default = "16777215")]
4952        pub entity_handle: ::core::option::Option<u32>,
4953        #[prost(int32, optional, tag = "3")]
4954        pub attach_type: ::core::option::Option<i32>,
4955        #[prost(int32, optional, tag = "4")]
4956        pub attachment: ::core::option::Option<i32>,
4957        #[prost(message, optional, tag = "5")]
4958        pub fallback_position: ::core::option::Option<super::CMsgVector>,
4959        #[prost(bool, optional, tag = "6")]
4960        pub include_wearables: ::core::option::Option<bool>,
4961        #[prost(message, optional, tag = "7")]
4962        pub offset_position: ::core::option::Option<super::CMsgVector>,
4963        #[prost(message, optional, tag = "8")]
4964        pub offset_angles: ::core::option::Option<super::CMsgQAngle>,
4965    }
4966    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4967    pub struct UpdateParticleSetFrozen {
4968        #[prost(bool, optional, tag = "1")]
4969        pub set_frozen: ::core::option::Option<bool>,
4970        #[prost(float, optional, tag = "2")]
4971        pub transition_duration: ::core::option::Option<f32>,
4972    }
4973    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4974    pub struct UpdateParticleShouldDraw {
4975        #[prost(bool, optional, tag = "1")]
4976        pub should_draw: ::core::option::Option<bool>,
4977    }
4978    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4979    pub struct ChangeControlPointAttachment {
4980        #[prost(int32, optional, tag = "1")]
4981        pub attachment_old: ::core::option::Option<i32>,
4982        #[prost(int32, optional, tag = "2")]
4983        pub attachment_new: ::core::option::Option<i32>,
4984        #[prost(uint32, optional, tag = "3", default = "16777215")]
4985        pub entity_handle: ::core::option::Option<u32>,
4986    }
4987    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4988    pub struct UpdateEntityPosition {
4989        #[prost(uint32, optional, tag = "1", default = "16777215")]
4990        pub entity_handle: ::core::option::Option<u32>,
4991        #[prost(message, optional, tag = "2")]
4992        pub position: ::core::option::Option<super::CMsgVector>,
4993    }
4994    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4995    pub struct SetParticleFoWProperties {
4996        #[prost(int32, optional, tag = "1")]
4997        pub fow_control_point: ::core::option::Option<i32>,
4998        #[prost(int32, optional, tag = "2")]
4999        pub fow_control_point2: ::core::option::Option<i32>,
5000        #[prost(float, optional, tag = "3")]
5001        pub fow_radius: ::core::option::Option<f32>,
5002    }
5003    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5004    pub struct SetParticleShouldCheckFoW {
5005        #[prost(bool, optional, tag = "1")]
5006        pub check_fow: ::core::option::Option<bool>,
5007    }
5008    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5009    pub struct SetControlPointModel {
5010        #[prost(int32, optional, tag = "1")]
5011        pub control_point: ::core::option::Option<i32>,
5012        #[prost(string, optional, tag = "2")]
5013        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
5014    }
5015    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5016    pub struct SetControlPointSnapshot {
5017        #[prost(int32, optional, tag = "1")]
5018        pub control_point: ::core::option::Option<i32>,
5019        #[prost(string, optional, tag = "2")]
5020        pub snapshot_name: ::core::option::Option<::prost::alloc::string::String>,
5021    }
5022    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5023    pub struct SetParticleText {
5024        #[prost(string, optional, tag = "1")]
5025        pub text: ::core::option::Option<::prost::alloc::string::String>,
5026        #[prost(bool, optional, tag = "2")]
5027        pub localize: ::core::option::Option<bool>,
5028    }
5029    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5030    pub struct SetTextureAttribute {
5031        #[prost(string, optional, tag = "1")]
5032        pub attribute_name: ::core::option::Option<::prost::alloc::string::String>,
5033        #[prost(string, optional, tag = "2")]
5034        pub texture_name: ::core::option::Option<::prost::alloc::string::String>,
5035    }
5036    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5037    pub struct SetOverrideTexture {
5038        #[prost(string, optional, tag = "1")]
5039        pub texture_name: ::core::option::Option<::prost::alloc::string::String>,
5040    }
5041    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5042    pub struct SetSceneObjectGenericFlag {
5043        #[prost(bool, optional, tag = "1")]
5044        pub flag_value: ::core::option::Option<bool>,
5045    }
5046    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5047    pub struct SetSceneObjectTintAndDesat {
5048        #[prost(fixed32, optional, tag = "1")]
5049        pub tint: ::core::option::Option<u32>,
5050        #[prost(float, optional, tag = "2")]
5051        pub desat: ::core::option::Option<f32>,
5052    }
5053    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5054    pub struct ParticleSkipToTime {
5055        #[prost(float, optional, tag = "1")]
5056        pub skip_to_time: ::core::option::Option<f32>,
5057    }
5058    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5059    pub struct ParticleCanFreeze {
5060        #[prost(bool, optional, tag = "1")]
5061        pub can_freeze: ::core::option::Option<bool>,
5062    }
5063    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5064    pub struct ParticleFreezeTransitionOverride {
5065        #[prost(float, optional, tag = "1")]
5066        pub freeze_transition_override: ::core::option::Option<f32>,
5067    }
5068    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5069    pub struct FreezeParticleInvolving {
5070        #[prost(bool, optional, tag = "1")]
5071        pub set_frozen: ::core::option::Option<bool>,
5072        #[prost(float, optional, tag = "2")]
5073        pub transition_duration: ::core::option::Option<f32>,
5074        #[prost(uint32, optional, tag = "3", default = "16777215")]
5075        pub entity_handle: ::core::option::Option<u32>,
5076    }
5077    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5078    pub struct AddModellistOverrideElement {
5079        #[prost(string, optional, tag = "1")]
5080        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
5081        #[prost(float, optional, tag = "2")]
5082        pub spawn_probability: ::core::option::Option<f32>,
5083        #[prost(uint32, optional, tag = "3")]
5084        pub groupid: ::core::option::Option<u32>,
5085    }
5086    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5087    pub struct ClearModellistOverride {
5088        #[prost(uint32, optional, tag = "1")]
5089        pub groupid: ::core::option::Option<u32>,
5090    }
5091    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5092    pub struct SetParticleNamedValueContext {
5093        #[prost(message, repeated, tag = "1")]
5094        pub float_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::FloatContextValue>,
5095        #[prost(message, repeated, tag = "2")]
5096        pub vector_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::VectorContextValue>,
5097        #[prost(message, repeated, tag = "3")]
5098        pub transform_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::TransformContextValue>,
5099        #[prost(message, repeated, tag = "4")]
5100        pub ehandle_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::EHandleContext>,
5101    }
5102    pub mod set_particle_named_value_context {
5103        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5104        pub struct FloatContextValue {
5105            #[prost(uint32, optional, tag = "1")]
5106            pub value_name_hash: ::core::option::Option<u32>,
5107            #[prost(float, optional, tag = "2")]
5108            pub value: ::core::option::Option<f32>,
5109        }
5110        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5111        pub struct VectorContextValue {
5112            #[prost(uint32, optional, tag = "1")]
5113            pub value_name_hash: ::core::option::Option<u32>,
5114            #[prost(message, optional, tag = "2")]
5115            pub value: ::core::option::Option<super::super::CMsgVector>,
5116        }
5117        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5118        pub struct TransformContextValue {
5119            #[prost(uint32, optional, tag = "1")]
5120            pub value_name_hash: ::core::option::Option<u32>,
5121            #[prost(message, optional, tag = "2")]
5122            pub angles: ::core::option::Option<super::super::CMsgQAngle>,
5123            #[prost(message, optional, tag = "3")]
5124            pub translation: ::core::option::Option<super::super::CMsgVector>,
5125        }
5126        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5127        pub struct EHandleContext {
5128            #[prost(uint32, optional, tag = "1")]
5129            pub value_name_hash: ::core::option::Option<u32>,
5130            #[prost(uint32, optional, tag = "2", default = "16777215")]
5131            pub ent_index: ::core::option::Option<u32>,
5132        }
5133    }
5134    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5135    pub struct CreatePhysicsSim {
5136        #[prost(string, optional, tag = "1")]
5137        pub prop_group_name: ::core::option::Option<::prost::alloc::string::String>,
5138        #[prost(bool, optional, tag = "2")]
5139        pub use_high_quality_simulation: ::core::option::Option<bool>,
5140        #[prost(uint32, optional, tag = "3")]
5141        pub max_particle_count: ::core::option::Option<u32>,
5142    }
5143    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5144    pub struct DestroyPhysicsSim {}
5145    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5146    pub struct CreateSmokeGrid {
5147        #[prost(string, optional, tag = "1")]
5148        pub vdata_name: ::core::option::Option<::prost::alloc::string::String>,
5149    }
5150    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5151    pub struct SetVData {
5152        #[prost(string, optional, tag = "1")]
5153        pub vdata_name: ::core::option::Option<::prost::alloc::string::String>,
5154    }
5155    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5156    pub struct SetMaterialOverride {
5157        #[prost(string, optional, tag = "1")]
5158        pub material_name: ::core::option::Option<::prost::alloc::string::String>,
5159        #[prost(bool, optional, tag = "2")]
5160        pub include_children: ::core::option::Option<bool>,
5161    }
5162    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5163    pub struct AddFan {
5164        #[prost(bool, optional, tag = "1")]
5165        pub active: ::core::option::Option<bool>,
5166        #[prost(message, optional, tag = "2")]
5167        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
5168        #[prost(message, optional, tag = "3")]
5169        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
5170        #[prost(message, optional, tag = "4")]
5171        pub fan_origin: ::core::option::Option<super::CMsgVector>,
5172        #[prost(message, optional, tag = "5")]
5173        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
5174        #[prost(message, optional, tag = "6")]
5175        pub fan_direction: ::core::option::Option<super::CMsgVector>,
5176        #[prost(float, optional, tag = "7")]
5177        pub force: ::core::option::Option<f32>,
5178        #[prost(string, optional, tag = "8")]
5179        pub fan_force_curve: ::core::option::Option<::prost::alloc::string::String>,
5180        #[prost(bool, optional, tag = "9")]
5181        pub falloff: ::core::option::Option<bool>,
5182        #[prost(bool, optional, tag = "10")]
5183        pub pull_towards_point: ::core::option::Option<bool>,
5184        #[prost(float, optional, tag = "11")]
5185        pub curve_min_dist: ::core::option::Option<f32>,
5186        #[prost(float, optional, tag = "12")]
5187        pub curve_max_dist: ::core::option::Option<f32>,
5188        #[prost(uint32, optional, tag = "13")]
5189        pub fan_type: ::core::option::Option<u32>,
5190        #[prost(float, optional, tag = "14")]
5191        pub cone_start_radius: ::core::option::Option<f32>,
5192        #[prost(float, optional, tag = "15")]
5193        pub cone_end_radius: ::core::option::Option<f32>,
5194        #[prost(float, optional, tag = "16")]
5195        pub cone_length: ::core::option::Option<f32>,
5196        #[prost(uint32, optional, tag = "17", default = "16777215")]
5197        pub entity_handle: ::core::option::Option<u32>,
5198        #[prost(string, optional, tag = "18")]
5199        pub attachment_name: ::core::option::Option<::prost::alloc::string::String>,
5200    }
5201    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5202    pub struct UpdateFan {
5203        #[prost(bool, optional, tag = "1")]
5204        pub active: ::core::option::Option<bool>,
5205        #[prost(message, optional, tag = "2")]
5206        pub fan_origin: ::core::option::Option<super::CMsgVector>,
5207        #[prost(message, optional, tag = "3")]
5208        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
5209        #[prost(message, optional, tag = "4")]
5210        pub fan_direction: ::core::option::Option<super::CMsgVector>,
5211        #[prost(float, optional, tag = "7")]
5212        pub fan_ramp_ratio: ::core::option::Option<f32>,
5213        #[prost(message, optional, tag = "5")]
5214        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
5215        #[prost(message, optional, tag = "6")]
5216        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
5217    }
5218    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5219    pub struct RemoveFan {}
5220    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5221    pub struct SetParticleClusterGrowth {
5222        #[prost(float, optional, tag = "1")]
5223        pub duration: ::core::option::Option<f32>,
5224        #[prost(message, optional, tag = "2")]
5225        pub origin: ::core::option::Option<super::CMsgVector>,
5226    }
5227}
5228#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5229pub struct CUserMsgHudError {
5230    #[prost(int32, optional, tag = "1")]
5231    pub order_id: ::core::option::Option<i32>,
5232}
5233#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5234pub struct CUserMsgCustomGameEvent {
5235    #[prost(string, optional, tag = "1")]
5236    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
5237    #[prost(bytes = "vec", optional, tag = "2")]
5238    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5239}
5240#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5241pub struct CUserMessageHapticsManagerPulse {
5242    #[prost(int32, optional, tag = "1")]
5243    pub hand_id: ::core::option::Option<i32>,
5244    #[prost(float, optional, tag = "2")]
5245    pub effect_amplitude: ::core::option::Option<f32>,
5246    #[prost(float, optional, tag = "3")]
5247    pub effect_frequency: ::core::option::Option<f32>,
5248    #[prost(float, optional, tag = "4")]
5249    pub effect_duration: ::core::option::Option<f32>,
5250}
5251#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5252pub struct CUserMessageHapticsManagerEffect {
5253    #[prost(int32, optional, tag = "1")]
5254    pub hand_id: ::core::option::Option<i32>,
5255    #[prost(uint32, optional, tag = "2")]
5256    pub effect_name_hash_code: ::core::option::Option<u32>,
5257    #[prost(float, optional, tag = "3")]
5258    pub effect_scale: ::core::option::Option<f32>,
5259}
5260#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5261pub struct CUserMessageAnimStateGraphState {
5262    #[prost(int32, optional, tag = "1")]
5263    pub entity_index: ::core::option::Option<i32>,
5264    #[prost(bytes = "vec", optional, tag = "2")]
5265    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5266}
5267#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5268pub struct CUserMessageUpdateCssClasses {
5269    #[prost(int32, optional, tag = "1")]
5270    pub target_world_panel: ::core::option::Option<i32>,
5271    #[prost(string, optional, tag = "2")]
5272    pub css_classes: ::core::option::Option<::prost::alloc::string::String>,
5273    #[prost(bool, optional, tag = "3")]
5274    pub is_add: ::core::option::Option<bool>,
5275}
5276#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5277pub struct CUserMessageServerFrameTime {
5278    #[prost(float, optional, tag = "1")]
5279    pub frame_time: ::core::option::Option<f32>,
5280}
5281#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5282pub struct CUserMessageLagCompensationError {
5283    #[prost(float, optional, tag = "1")]
5284    pub distance: ::core::option::Option<f32>,
5285}
5286#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5287pub struct CUserMessageRequestDllStatus {
5288    #[prost(string, optional, tag = "1")]
5289    pub dll_action: ::core::option::Option<::prost::alloc::string::String>,
5290    #[prost(bool, optional, tag = "2")]
5291    pub full_report: ::core::option::Option<bool>,
5292}
5293#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5294pub struct CUserMessageRequestUtilAction {
5295    #[prost(int32, optional, tag = "2")]
5296    pub util1: ::core::option::Option<i32>,
5297    #[prost(int32, optional, tag = "3")]
5298    pub util2: ::core::option::Option<i32>,
5299    #[prost(int32, optional, tag = "4")]
5300    pub util3: ::core::option::Option<i32>,
5301    #[prost(int32, optional, tag = "5")]
5302    pub util4: ::core::option::Option<i32>,
5303    #[prost(int32, optional, tag = "6")]
5304    pub util5: ::core::option::Option<i32>,
5305}
5306#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5307pub struct CUserMessageUtilMsgResponse {
5308    #[prost(fixed32, optional, tag = "1")]
5309    pub crc: ::core::option::Option<u32>,
5310    #[prost(int32, optional, tag = "2")]
5311    pub item_count: ::core::option::Option<i32>,
5312    #[prost(fixed32, optional, tag = "3")]
5313    pub crc2: ::core::option::Option<u32>,
5314    #[prost(int32, optional, tag = "4")]
5315    pub item_count2: ::core::option::Option<i32>,
5316    #[prost(int32, repeated, packed = "false", tag = "5")]
5317    pub crc_part: ::prost::alloc::vec::Vec<i32>,
5318    #[prost(int32, repeated, packed = "false", tag = "6")]
5319    pub crc_part2: ::prost::alloc::vec::Vec<i32>,
5320    #[prost(int32, optional, tag = "7")]
5321    pub client_timestamp: ::core::option::Option<i32>,
5322    #[prost(int32, optional, tag = "8")]
5323    pub platform: ::core::option::Option<i32>,
5324    #[prost(message, repeated, tag = "9")]
5325    pub itemdetails: ::prost::alloc::vec::Vec<c_user_message_util_msg_response::ItemDetail>,
5326    #[prost(int32, optional, tag = "10")]
5327    pub itemgroup: ::core::option::Option<i32>,
5328    #[prost(int32, optional, tag = "11")]
5329    pub total_count: ::core::option::Option<i32>,
5330    #[prost(int32, optional, tag = "12")]
5331    pub total_count2: ::core::option::Option<i32>,
5332}
5333pub mod c_user_message_util_msg_response {
5334    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5335    pub struct ItemDetail {
5336        #[prost(int32, optional, tag = "1")]
5337        pub index: ::core::option::Option<i32>,
5338        #[prost(int32, optional, tag = "2")]
5339        pub hash: ::core::option::Option<i32>,
5340        #[prost(int32, optional, tag = "3")]
5341        pub crc: ::core::option::Option<i32>,
5342        #[prost(string, optional, tag = "4")]
5343        pub name: ::core::option::Option<::prost::alloc::string::String>,
5344    }
5345}
5346#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5347pub struct CUserMessageDllStatus {
5348    #[prost(string, optional, tag = "1")]
5349    pub file_report: ::core::option::Option<::prost::alloc::string::String>,
5350    #[prost(string, optional, tag = "2")]
5351    pub command_line: ::core::option::Option<::prost::alloc::string::String>,
5352    #[prost(uint32, optional, tag = "3")]
5353    pub total_files: ::core::option::Option<u32>,
5354    #[prost(uint32, optional, tag = "4")]
5355    pub process_id: ::core::option::Option<u32>,
5356    #[prost(int32, optional, tag = "5")]
5357    pub osversion: ::core::option::Option<i32>,
5358    #[prost(uint64, optional, tag = "6")]
5359    pub client_time: ::core::option::Option<u64>,
5360    #[prost(message, repeated, tag = "7")]
5361    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_dll_status::CvDiagnostic>,
5362    #[prost(message, repeated, tag = "8")]
5363    pub modules: ::prost::alloc::vec::Vec<c_user_message_dll_status::CModule>,
5364}
5365pub mod c_user_message_dll_status {
5366    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5367    pub struct CvDiagnostic {
5368        #[prost(uint32, optional, tag = "1")]
5369        pub id: ::core::option::Option<u32>,
5370        #[prost(uint32, optional, tag = "2")]
5371        pub extended: ::core::option::Option<u32>,
5372        #[prost(uint64, optional, tag = "3")]
5373        pub value: ::core::option::Option<u64>,
5374        #[prost(string, optional, tag = "4")]
5375        pub string_value: ::core::option::Option<::prost::alloc::string::String>,
5376    }
5377    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5378    pub struct CModule {
5379        #[prost(uint64, optional, tag = "1")]
5380        pub base_addr: ::core::option::Option<u64>,
5381        #[prost(string, optional, tag = "2")]
5382        pub name: ::core::option::Option<::prost::alloc::string::String>,
5383        #[prost(uint32, optional, tag = "3")]
5384        pub size: ::core::option::Option<u32>,
5385        #[prost(uint32, optional, tag = "4")]
5386        pub timestamp: ::core::option::Option<u32>,
5387    }
5388}
5389#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5390pub struct CUserMessageRequestInventory {
5391    #[prost(int32, optional, tag = "1")]
5392    pub inventory: ::core::option::Option<i32>,
5393    #[prost(int32, optional, tag = "2")]
5394    pub offset: ::core::option::Option<i32>,
5395    #[prost(int32, optional, tag = "3")]
5396    pub options: ::core::option::Option<i32>,
5397}
5398#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5399pub struct CUserMessageInventoryResponse {
5400    #[prost(fixed32, optional, tag = "1")]
5401    pub crc: ::core::option::Option<u32>,
5402    #[prost(int32, optional, tag = "2")]
5403    pub item_count: ::core::option::Option<i32>,
5404    #[prost(int32, optional, tag = "5")]
5405    pub osversion: ::core::option::Option<i32>,
5406    #[prost(int32, optional, tag = "6")]
5407    pub perf_time: ::core::option::Option<i32>,
5408    #[prost(int32, optional, tag = "7")]
5409    pub client_timestamp: ::core::option::Option<i32>,
5410    #[prost(int32, optional, tag = "8")]
5411    pub platform: ::core::option::Option<i32>,
5412    #[prost(message, repeated, tag = "9")]
5413    pub inventories: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5414    #[prost(message, repeated, tag = "10")]
5415    pub inventories2: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5416    #[prost(message, repeated, tag = "14")]
5417    pub inventories3: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5418    #[prost(int32, optional, tag = "11")]
5419    pub inv_type: ::core::option::Option<i32>,
5420    #[prost(int32, optional, tag = "12")]
5421    pub build_version: ::core::option::Option<i32>,
5422    #[prost(int32, optional, tag = "13")]
5423    pub instance: ::core::option::Option<i32>,
5424    #[prost(int64, optional, tag = "15")]
5425    pub start_time: ::core::option::Option<i64>,
5426}
5427pub mod c_user_message_inventory_response {
5428    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5429    pub struct InventoryDetail {
5430        #[prost(int32, optional, tag = "1")]
5431        pub index: ::core::option::Option<i32>,
5432        #[prost(int64, optional, tag = "2")]
5433        pub primary: ::core::option::Option<i64>,
5434        #[prost(int64, optional, tag = "3")]
5435        pub offset: ::core::option::Option<i64>,
5436        #[prost(int64, optional, tag = "4")]
5437        pub first: ::core::option::Option<i64>,
5438        #[prost(int64, optional, tag = "5")]
5439        pub base: ::core::option::Option<i64>,
5440        #[prost(string, optional, tag = "6")]
5441        pub name: ::core::option::Option<::prost::alloc::string::String>,
5442        #[prost(string, optional, tag = "7")]
5443        pub base_name: ::core::option::Option<::prost::alloc::string::String>,
5444        #[prost(int32, optional, tag = "8")]
5445        pub base_detail: ::core::option::Option<i32>,
5446        #[prost(int32, optional, tag = "9")]
5447        pub base_time: ::core::option::Option<i32>,
5448        #[prost(int32, optional, tag = "10")]
5449        pub base_hash: ::core::option::Option<i32>,
5450    }
5451}
5452#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5453pub struct CUserMessageRequestDiagnostic {
5454    #[prost(message, repeated, tag = "1")]
5455    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_request_diagnostic::Diagnostic>,
5456}
5457pub mod c_user_message_request_diagnostic {
5458    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5459    pub struct Diagnostic {
5460        #[prost(int32, optional, tag = "1")]
5461        pub index: ::core::option::Option<i32>,
5462        #[prost(int64, optional, tag = "2")]
5463        pub offset: ::core::option::Option<i64>,
5464        #[prost(int32, optional, tag = "3")]
5465        pub param: ::core::option::Option<i32>,
5466        #[prost(int32, optional, tag = "4")]
5467        pub length: ::core::option::Option<i32>,
5468        #[prost(int32, optional, tag = "5")]
5469        pub r#type: ::core::option::Option<i32>,
5470        #[prost(int64, optional, tag = "6")]
5471        pub base: ::core::option::Option<i64>,
5472        #[prost(int64, optional, tag = "7")]
5473        pub range: ::core::option::Option<i64>,
5474        #[prost(int64, optional, tag = "8")]
5475        pub extent: ::core::option::Option<i64>,
5476        #[prost(int64, optional, tag = "9")]
5477        pub detail: ::core::option::Option<i64>,
5478        #[prost(string, optional, tag = "10")]
5479        pub name: ::core::option::Option<::prost::alloc::string::String>,
5480        #[prost(string, optional, tag = "11")]
5481        pub alias: ::core::option::Option<::prost::alloc::string::String>,
5482        #[prost(bytes = "vec", optional, tag = "12")]
5483        pub vardetail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5484        #[prost(int32, optional, tag = "13")]
5485        pub context: ::core::option::Option<i32>,
5486    }
5487}
5488#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5489pub struct CUserMessageDiagnosticResponse {
5490    #[prost(message, repeated, tag = "1")]
5491    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_diagnostic_response::Diagnostic>,
5492    #[prost(int32, optional, tag = "2")]
5493    pub build_version: ::core::option::Option<i32>,
5494    #[prost(int32, optional, tag = "3")]
5495    pub instance: ::core::option::Option<i32>,
5496    #[prost(int64, optional, tag = "4")]
5497    pub start_time: ::core::option::Option<i64>,
5498    #[prost(int32, optional, tag = "5")]
5499    pub osversion: ::core::option::Option<i32>,
5500    #[prost(int32, optional, tag = "6")]
5501    pub platform: ::core::option::Option<i32>,
5502}
5503pub mod c_user_message_diagnostic_response {
5504    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5505    pub struct Diagnostic {
5506        #[prost(int32, optional, tag = "1")]
5507        pub index: ::core::option::Option<i32>,
5508        #[prost(int64, optional, tag = "2")]
5509        pub offset: ::core::option::Option<i64>,
5510        #[prost(int32, optional, tag = "3")]
5511        pub param: ::core::option::Option<i32>,
5512        #[prost(int32, optional, tag = "4")]
5513        pub length: ::core::option::Option<i32>,
5514        #[prost(bytes = "vec", optional, tag = "5")]
5515        pub detail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5516        #[prost(int64, optional, tag = "6")]
5517        pub base: ::core::option::Option<i64>,
5518        #[prost(int64, optional, tag = "7")]
5519        pub range: ::core::option::Option<i64>,
5520        #[prost(int32, optional, tag = "8")]
5521        pub r#type: ::core::option::Option<i32>,
5522        #[prost(string, optional, tag = "10")]
5523        pub name: ::core::option::Option<::prost::alloc::string::String>,
5524        #[prost(string, optional, tag = "11")]
5525        pub alias: ::core::option::Option<::prost::alloc::string::String>,
5526        #[prost(bytes = "vec", optional, tag = "12")]
5527        pub backup: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5528        #[prost(int32, optional, tag = "13")]
5529        pub context: ::core::option::Option<i32>,
5530        #[prost(int64, optional, tag = "14")]
5531        pub control: ::core::option::Option<i64>,
5532        #[prost(int64, optional, tag = "15")]
5533        pub augment: ::core::option::Option<i64>,
5534        #[prost(int64, optional, tag = "16")]
5535        pub placebo: ::core::option::Option<i64>,
5536    }
5537}
5538#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5539pub struct CUserMessageExtraUserData {
5540    #[prost(int32, optional, tag = "1")]
5541    pub item: ::core::option::Option<i32>,
5542    #[prost(int64, optional, tag = "2")]
5543    pub value1: ::core::option::Option<i64>,
5544    #[prost(int64, optional, tag = "3")]
5545    pub value2: ::core::option::Option<i64>,
5546    #[prost(bytes = "vec", repeated, tag = "4")]
5547    pub detail1: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
5548    #[prost(bytes = "vec", repeated, tag = "5")]
5549    pub detail2: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
5550}
5551#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5552pub struct CUserMessageNotifyResponseFound {
5553    #[prost(int32, optional, tag = "1", default = "-1")]
5554    pub ent_index: ::core::option::Option<i32>,
5555    #[prost(string, optional, tag = "2")]
5556    pub rule_name: ::core::option::Option<::prost::alloc::string::String>,
5557    #[prost(string, optional, tag = "3")]
5558    pub response_value: ::core::option::Option<::prost::alloc::string::String>,
5559    #[prost(string, optional, tag = "4")]
5560    pub response_concept: ::core::option::Option<::prost::alloc::string::String>,
5561    #[prost(message, repeated, tag = "5")]
5562    pub criteria: ::prost::alloc::vec::Vec<c_user_message_notify_response_found::Criteria>,
5563    #[prost(uint32, repeated, tag = "6")]
5564    pub int_criteria_names: ::prost::alloc::vec::Vec<u32>,
5565    #[prost(int32, repeated, tag = "7")]
5566    pub int_criteria_values: ::prost::alloc::vec::Vec<i32>,
5567    #[prost(uint32, repeated, tag = "8")]
5568    pub float_criteria_names: ::prost::alloc::vec::Vec<u32>,
5569    #[prost(float, repeated, packed = "false", tag = "9")]
5570    pub float_criteria_values: ::prost::alloc::vec::Vec<f32>,
5571    #[prost(uint32, repeated, tag = "10")]
5572    pub symbol_criteria_names: ::prost::alloc::vec::Vec<u32>,
5573    #[prost(uint32, repeated, tag = "11")]
5574    pub symbol_criteria_values: ::prost::alloc::vec::Vec<u32>,
5575    #[prost(int32, optional, tag = "12")]
5576    pub speak_result: ::core::option::Option<i32>,
5577}
5578pub mod c_user_message_notify_response_found {
5579    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5580    pub struct Criteria {
5581        #[prost(uint32, optional, tag = "1")]
5582        pub name_symbol: ::core::option::Option<u32>,
5583        #[prost(string, optional, tag = "2")]
5584        pub value: ::core::option::Option<::prost::alloc::string::String>,
5585    }
5586}
5587#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5588pub struct CUserMessagePlayResponseConditional {
5589    #[prost(int32, optional, tag = "1", default = "-1")]
5590    pub ent_index: ::core::option::Option<i32>,
5591    #[prost(int32, repeated, packed = "false", tag = "2")]
5592    pub player_slots: ::prost::alloc::vec::Vec<i32>,
5593    #[prost(string, optional, tag = "3")]
5594    pub response: ::core::option::Option<::prost::alloc::string::String>,
5595    #[prost(message, optional, tag = "4")]
5596    pub ent_origin: ::core::option::Option<CMsgVector>,
5597    #[prost(float, optional, tag = "5")]
5598    pub pre_delay: ::core::option::Option<f32>,
5599    #[prost(int32, optional, tag = "6")]
5600    pub mix_priority: ::core::option::Option<i32>,
5601}
5602#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5603#[repr(i32)]
5604pub enum EBaseUserMessages {
5605    UmAchievementEvent = 101,
5606    UmCloseCaption = 102,
5607    UmCloseCaptionDirect = 103,
5608    UmCurrentTimescale = 104,
5609    UmDesiredTimescale = 105,
5610    UmFade = 106,
5611    UmGameTitle = 107,
5612    UmHudMsg = 110,
5613    UmHudText = 111,
5614    UmColoredText = 113,
5615    UmRequestState = 114,
5616    UmResetHud = 115,
5617    UmRumble = 116,
5618    UmSayText = 117,
5619    UmSayText2 = 118,
5620    UmSayTextChannel = 119,
5621    UmShake = 120,
5622    UmShakeDir = 121,
5623    UmWaterShake = 122,
5624    UmTextMsg = 124,
5625    UmScreenTilt = 125,
5626    UmVoiceMask = 128,
5627    UmSendAudio = 130,
5628    UmItemPickup = 131,
5629    UmAmmoDenied = 132,
5630    UmShowMenu = 134,
5631    UmCreditsMsg = 135,
5632    UmCloseCaptionPlaceholder = 142,
5633    UmCameraTransition = 143,
5634    UmAudioParameter = 144,
5635    UmParticleManager = 145,
5636    UmHudError = 146,
5637    UmCustomGameEvent = 148,
5638    UmAnimGraphUpdate = 149,
5639    UmHapticsManagerPulse = 150,
5640    UmHapticsManagerEffect = 151,
5641    UmUpdateCssClasses = 153,
5642    UmServerFrameTime = 154,
5643    UmLagCompensationError = 155,
5644    UmRequestDllStatus = 156,
5645    UmRequestUtilAction = 157,
5646    UmUtilActionResponse = 158,
5647    UmDllStatusResponse = 159,
5648    UmRequestInventory = 160,
5649    UmInventoryResponse = 161,
5650    UmRequestDiagnostic = 162,
5651    UmDiagnosticResponse = 163,
5652    UmExtraUserData = 164,
5653    UmNotifyResponseFound = 165,
5654    UmPlayResponseConditional = 166,
5655    UmMaxBase = 200,
5656}
5657#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5658#[repr(i32)]
5659pub enum EBaseEntityMessages {
5660    EmPlayJingle = 136,
5661    EmScreenOverlay = 137,
5662    EmRemoveAllDecals = 138,
5663    EmPropagateForce = 139,
5664    EmDoSpark = 140,
5665    EmFixAngle = 141,
5666}
5667#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5668#[repr(i32)]
5669pub enum ERollType {
5670    RollNone = -1,
5671    RollStats = 0,
5672    RollCredits = 1,
5673    RollLateJoinLogo = 2,
5674    RollOuttro = 3,
5675}
5676#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5677#[repr(i32)]
5678pub enum ParticleMessage {
5679    GameParticleManagerEventCreate = 0,
5680    GameParticleManagerEventUpdate = 1,
5681    GameParticleManagerEventUpdateForward = 2,
5682    GameParticleManagerEventUpdateOrientation = 3,
5683    GameParticleManagerEventUpdateFallback = 4,
5684    GameParticleManagerEventUpdateEnt = 5,
5685    GameParticleManagerEventUpdateOffset = 6,
5686    GameParticleManagerEventDestroy = 7,
5687    GameParticleManagerEventDestroyInvolving = 8,
5688    GameParticleManagerEventRelease = 9,
5689    GameParticleManagerEventLatency = 10,
5690    GameParticleManagerEventShouldDraw = 11,
5691    GameParticleManagerEventFrozen = 12,
5692    GameParticleManagerEventChangeControlPointAttachment = 13,
5693    GameParticleManagerEventUpdateEntityPosition = 14,
5694    GameParticleManagerEventSetFowProperties = 15,
5695    GameParticleManagerEventSetText = 16,
5696    GameParticleManagerEventSetShouldCheckFow = 17,
5697    GameParticleManagerEventSetControlPointModel = 18,
5698    GameParticleManagerEventSetControlPointSnapshot = 19,
5699    GameParticleManagerEventSetTextureAttribute = 20,
5700    GameParticleManagerEventSetSceneObjectGenericFlag = 21,
5701    GameParticleManagerEventSetSceneObjectTintAndDesat = 22,
5702    GameParticleManagerEventDestroyNamed = 23,
5703    GameParticleManagerEventSkipToTime = 24,
5704    GameParticleManagerEventCanFreeze = 25,
5705    GameParticleManagerEventSetNamedValueContext = 26,
5706    GameParticleManagerEventUpdateTransform = 27,
5707    GameParticleManagerEventFreezeTransitionOverride = 28,
5708    GameParticleManagerEventFreezeInvolving = 29,
5709    GameParticleManagerEventAddModellistOverrideElement = 30,
5710    GameParticleManagerEventClearModellistOverride = 31,
5711    GameParticleManagerEventCreatePhysicsSim = 32,
5712    GameParticleManagerEventDestroyPhysicsSim = 33,
5713    GameParticleManagerEventSetVdata = 34,
5714    GameParticleManagerEventSetMaterialOverride = 35,
5715    GameParticleManagerEventAddFan = 36,
5716    GameParticleManagerEventUpdateFan = 37,
5717    GameParticleManagerEventSetClusterGrowth = 38,
5718    GameParticleManagerEventRemoveFan = 39,
5719    GameParticleManagerEventCreateSmokeGrid = 40,
5720    GameParticleManagerEventSetOverrideTexture = 41,
5721}
5722#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5723#[repr(i32)]
5724pub enum EHapticPulseType {
5725    VrHandHapticPulseLight = 0,
5726    VrHandHapticPulseMedium = 1,
5727    VrHandHapticPulseStrong = 2,
5728}