diff --git a/.lfsconfig b/.lfsconfig index 0590e827..21996c2a 100644 --- a/.lfsconfig +++ b/.lfsconfig @@ -1,3 +1,3 @@ [lfs] - url = https://lfs.sp-tarkov.com/sp-tarkov/server + url = https://lfs.sp-tarkov.com/sp-tarkov/server-csharp locksverify = false diff --git a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/profiles.json b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/profiles.json index 80edee3c..5d8d2194 100644 --- a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/profiles.json +++ b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/profiles.json @@ -2666,9 +2666,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -5557,9 +5557,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -8817,9 +8817,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -12175,9 +12175,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -15893,9 +15893,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -19808,9 +19808,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -23577,9 +23577,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -27471,9 +27471,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -31977,9 +31977,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -36700,9 +36700,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -37693,9 +37693,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -38680,9 +38680,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -41828,9 +41828,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -44961,9 +44961,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -48389,9 +48389,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -51812,9 +51812,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -52795,9 +52795,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, @@ -53785,9 +53785,9 @@ }, "WishList": [], "karmaValue": 0.2, - "_id": "__REPLACEME__", + "_id": "000000000000000000000000", "aid": "__REPLACEME__", - "savage": "__REPLACEME__" + "savage": "000000000000000000000000" }, "dialogues": {}, "equipmentBuilds": {}, diff --git a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/repeatableQuests.json b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/repeatableQuests.json index c0abc2dc..3193650b 100644 --- a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/repeatableQuests.json +++ b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/repeatableQuests.json @@ -1,7 +1,7 @@ { "templates": { "Elimination": { - "_id": null, + "_id": "68690637c1394a820efc27ca", "traderId": "5935c25fb3acc3127c3d8cd9", "location": null, "image": "/files/quest/icon/616d993bc8c5ad2ab30ff6ba.jpg", diff --git a/Libraries/SPTarkov.Server.Core/Callbacks/BotCallbacks.cs b/Libraries/SPTarkov.Server.Core/Callbacks/BotCallbacks.cs index 593e532b..1f1be69c 100644 --- a/Libraries/SPTarkov.Server.Core/Callbacks/BotCallbacks.cs +++ b/Libraries/SPTarkov.Server.Core/Callbacks/BotCallbacks.cs @@ -30,7 +30,7 @@ public class BotCallbacks(BotController _botController, HttpResponseUtil _httpRe public ValueTask GetBotDifficulty(string url, EmptyRequestData _, string sessionID) { var splitUrl = url.Split('/'); - var type = splitUrl[^2].ToLower(); + var type = splitUrl[^2].ToLowerInvariant(); var difficulty = splitUrl[^1]; if (difficulty == "core") { diff --git a/Libraries/SPTarkov.Server.Core/Callbacks/BtrDeliveryCallbacks.cs b/Libraries/SPTarkov.Server.Core/Callbacks/BtrDeliveryCallbacks.cs index 95c53e26..0b58c45c 100644 --- a/Libraries/SPTarkov.Server.Core/Callbacks/BtrDeliveryCallbacks.cs +++ b/Libraries/SPTarkov.Server.Core/Callbacks/BtrDeliveryCallbacks.cs @@ -1,6 +1,7 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.DI; using SPTarkov.Server.Core.Extensions; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Profile; using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Models.Utils; @@ -17,8 +18,7 @@ public class BtrDeliveryCallbacks( BtrDeliveryService _btrDeliveryService, TimeUtil _timeUtil, ConfigServer _configServer, - SaveServer _saveServer, - HashUtil _hashUtil + SaveServer _saveServer ) : IOnUpdate { private readonly BtrDeliveryConfig _btrDeliveryConfig = @@ -110,7 +110,7 @@ public class BtrDeliveryCallbacks( foreach (var package in packagesToBeDelivered) { // Create a new root parent ID for the message we'll be sending the player - var rootItemParentId = _hashUtil.Generate(); + var rootItemParentId = new MongoId(); // Update the delivery items to have the new root parent ID for root/orphaned items package.Items = package.Items.AdoptOrphanedItems(rootItemParentId); diff --git a/Libraries/SPTarkov.Server.Core/Callbacks/DialogueCallbacks.cs b/Libraries/SPTarkov.Server.Core/Callbacks/DialogueCallbacks.cs index 3beb3c93..b544a00b 100644 --- a/Libraries/SPTarkov.Server.Core/Callbacks/DialogueCallbacks.cs +++ b/Libraries/SPTarkov.Server.Core/Callbacks/DialogueCallbacks.cs @@ -10,7 +10,6 @@ namespace SPTarkov.Server.Core.Callbacks; [Injectable(TypePriority = OnUpdateOrder.DialogueCallbacks)] public class DialogueCallbacks( - HashUtil _hashUtil, TimeUtil _timeUtil, HttpResponseUtil _httpResponseUtil, DialogueController _dialogueController @@ -47,7 +46,7 @@ public class DialogueCallbacks( { new() { - Id = _hashUtil.Generate(), + Id = new Models.Common.MongoId(), RegistrationId = 20, DateTime = _timeUtil.GetTimeStamp(), IsDeveloper = true, @@ -200,15 +199,13 @@ public class DialogueCallbacks( /// Handle client/mail/msg/send /// /// - public virtual ValueTask SendMessage( + public virtual async ValueTask SendMessage( string url, SendMessageRequest request, string sessionID ) { - return new ValueTask( - _httpResponseUtil.GetBody(_dialogueController.SendMessage(sessionID, request)) - ); + return _httpResponseUtil.GetBody(await _dialogueController.SendMessage(sessionID, request)); } /// diff --git a/Libraries/SPTarkov.Server.Core/Callbacks/InsuranceCallbacks.cs b/Libraries/SPTarkov.Server.Core/Callbacks/InsuranceCallbacks.cs index 48461ad6..ed83049c 100644 --- a/Libraries/SPTarkov.Server.Core/Callbacks/InsuranceCallbacks.cs +++ b/Libraries/SPTarkov.Server.Core/Callbacks/InsuranceCallbacks.cs @@ -6,7 +6,6 @@ using SPTarkov.Server.Core.Models.Eft.Insurance; using SPTarkov.Server.Core.Models.Eft.ItemEvent; using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Servers; -using SPTarkov.Server.Core.Services; using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Callbacks; @@ -14,7 +13,6 @@ namespace SPTarkov.Server.Core.Callbacks; [Injectable(TypePriority = OnUpdateOrder.InsuranceCallbacks)] public class InsuranceCallbacks( InsuranceController _insuranceController, - InsuranceService _insuranceService, HttpResponseUtil _httpResponseUtil, ConfigServer _configServer ) : IOnUpdate diff --git a/Libraries/SPTarkov.Server.Core/Callbacks/SaveCallbacks.cs b/Libraries/SPTarkov.Server.Core/Callbacks/SaveCallbacks.cs index b66c7c93..26720d8d 100644 --- a/Libraries/SPTarkov.Server.Core/Callbacks/SaveCallbacks.cs +++ b/Libraries/SPTarkov.Server.Core/Callbacks/SaveCallbacks.cs @@ -17,7 +17,7 @@ public class SaveCallbacks( public async Task OnLoad() { - _backupService.StartBackupSystem(); + await _backupService.StartBackupSystem(); await _saveServer.LoadAsync(); } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/BotController.cs b/Libraries/SPTarkov.Server.Core/Controllers/BotController.cs index 58a259b4..bfc2bcfe 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/BotController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/BotController.cs @@ -88,7 +88,7 @@ public class BotController( bool ignoreRaidSettings = false ) { - var difficulty = diffLevel.ToLower(); + var difficulty = diffLevel.ToLowerInvariant(); var raidConfig = _profileActivityService .GetProfileActivityRaidData(sessionId) @@ -107,7 +107,7 @@ public class BotController( // Check value chosen in pre-raid difficulty dropdown // If value is not 'asonline', change requested difficulty to be what was chosen in dropdown var botDifficultyDropDownValue = - raidConfig?.WavesSettings?.BotDifficulty?.ToString().ToLower() ?? "asonline"; + raidConfig?.WavesSettings?.BotDifficulty?.ToString().ToLowerInvariant() ?? "asonline"; if (botDifficultyDropDownValue != "asonline") { difficulty = _botDifficultyHelper.ConvertBotDifficultyDropdownToBotDifficulty( @@ -138,8 +138,8 @@ public class BotController( { // If bot is usec/bear, swap to different name var botTypeLower = botType.IsPmc() - ? (botType.GetPmcSideByRole() ?? "usec").ToLower() - : botType.ToString().ToLower(); + ? (botType.GetPmcSideByRole() ?? "usec").ToLowerInvariant() + : botType.ToString().ToLowerInvariant(); // Get details from db if (!botTypesDb.TryGetValue(botTypeLower, out var botDetails)) @@ -165,7 +165,7 @@ public class BotController( continue; } - var botNameKey = botType.ToString().ToLower(); + var botNameKey = botType.ToString().ToLowerInvariant(); foreach (var (difficultyName, _) in botDetails.BotDifficulty) { // Bot doesn't exist in result, add @@ -378,7 +378,7 @@ public class BotController( protected MinMax GetPmcLevelRangeForMap(string? location) { return _pmcConfig.LocationSpecificPmcLevelOverride!.GetValueOrDefault( - location?.ToLower() ?? "", + location?.ToLowerInvariant() ?? "", null ); } @@ -430,7 +430,7 @@ public class BotController( /// bot cap for map public int GetBotCap(string location) { - if (!_botConfig.MaxBotCap.TryGetValue(location.ToLower(), out var maxCap)) + if (!_botConfig.MaxBotCap.TryGetValue(location.ToLowerInvariant(), out var maxCap)) { return _botConfig.MaxBotCap["default"]; } @@ -440,7 +440,7 @@ public class BotController( _logger.Warning( _serverLocalisationService.GetText( "bot-no_bot_cap_found_for_location", - location.ToLower() + location.ToLowerInvariant() ) ); } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs b/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs index ffe8eb52..3431d304 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs @@ -538,15 +538,22 @@ public class DialogueController( /// Session/Player id /// /// - public virtual string SendMessage(string sessionId, SendMessageRequest request) + public virtual async ValueTask SendMessage(string sessionId, SendMessageRequest request) { _mailSendService.SendPlayerMessageToNpc(sessionId, request.DialogId!, request.Text!); - return ( - _dialogueChatBots - .FirstOrDefault(cb => cb.GetChatBot().Id == request.DialogId) - ?.HandleMessage(sessionId, request) ?? request.DialogId - ) ?? string.Empty; + var chatBot = _dialogueChatBots.FirstOrDefault(cb => + cb.GetChatBot().Id == request.DialogId + ); + + if (chatBot is not null) + { + return await chatBot.HandleMessage(sessionId, request); + } + else + { + return string.Empty; + } } /// diff --git a/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs b/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs index c20a239d..8c147df2 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs @@ -1,6 +1,7 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Game; using SPTarkov.Server.Core.Models.Eft.Profile; @@ -82,12 +83,12 @@ public class GameController( return; } - fullProfile.CharacterData!.PmcData!.WishList ??= new DictionaryOrList( - new Dictionary(), + fullProfile.CharacterData!.PmcData!.WishList ??= new DictionaryOrList( + new Dictionary(), [] ); - fullProfile.CharacterData.ScavData!.WishList ??= new DictionaryOrList( - new Dictionary(), + fullProfile.CharacterData.ScavData!.WishList ??= new DictionaryOrList( + new Dictionary(), [] ); diff --git a/Libraries/SPTarkov.Server.Core/Controllers/HealthController.cs b/Libraries/SPTarkov.Server.Core/Controllers/HealthController.cs index 0c518479..fdd576f9 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/HealthController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/HealthController.cs @@ -24,7 +24,6 @@ public class HealthController( InventoryHelper _inventoryHelper, ServerLocalisationService _serverLocalisationService, HttpResponseUtil _httpResponseUtil, - HealthHelper _healthHelper, ICloner _cloner ) { diff --git a/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs b/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs index a8aadaae..cf15c816 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs @@ -908,7 +908,7 @@ public class HideoutController( var output = _eventOutputHolder.GetOutput(sessionID); var hideoutDb = _databaseService.GetHideout(); - if (request.RecipeId == HideoutHelper.BitcoinFarm) + if (request.RecipeId == HideoutHelper.BitcoinProductionId) { // Ensure server and client are in-sync when player presses 'get items' on farm _hideoutHelper.UpdatePlayerHideout(sessionID); @@ -1771,7 +1771,7 @@ public class HideoutController( foreach (var poseKvP in request.Poses) { // Nullguard - pmcData.Hideout.MannequinPoses ??= new Dictionary(); + pmcData.Hideout.MannequinPoses ??= new Dictionary(); pmcData.Hideout.MannequinPoses[poseKvP.Key] = poseKvP.Value; } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs b/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs index 204e7247..b653942b 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs @@ -25,8 +25,6 @@ namespace SPTarkov.Server.Core.Controllers; public class InsuranceController( ISptLogger _logger, RandomUtil _randomUtil, - MathUtil _mathUtil, - HashUtil _hashUtil, TimeUtil _timeUtil, EventOutputHolder _eventOutputHolder, ItemHelper _itemHelper, @@ -122,7 +120,7 @@ public class InsuranceController( foreach (var insured in insuranceDetails) { // Create a new root parent ID for the message we'll be sending the player - var rootItemParentId = _hashUtil.Generate(); + var rootItemParentId = new MongoId(); // Update the insured items to have the new root parent ID for root/orphaned items insured.Items = insured.Items.AdoptOrphanedItems(rootItemParentId); @@ -494,11 +492,11 @@ public class InsuranceController( ); // Create prob array and add all attachments with rouble price as the weight - var attachmentsProbabilityArray = new ProbabilityObjectArray(_cloner); + var attachmentsProbabilityArray = new ProbabilityObjectArray(_cloner); foreach (var (itemTpl, price) in weightedAttachmentByPrice) { attachmentsProbabilityArray.Add( - new ProbabilityObject(itemTpl, price, null) + new ProbabilityObject(itemTpl, price, null) ); } @@ -527,9 +525,9 @@ public class InsuranceController( /// /// protected void LogAttachmentsBeingRemoved( - List attachmentIdsToRemove, + List attachmentIdsToRemove, List attachments, - Dictionary attachmentPrices + Dictionary attachmentPrices ) { var index = 1; @@ -552,9 +550,9 @@ public class InsuranceController( /// /// Item attachments /// - protected Dictionary WeightAttachmentsByPrice(List attachments) + protected Dictionary WeightAttachmentsByPrice(List attachments) { - var result = new Dictionary(); + var result = new Dictionary(); // Get a dictionary of item tpls + their rouble price foreach (var attachment in attachments) @@ -581,7 +579,7 @@ public class InsuranceController( /// Trader the attachment is insured against /// Attachment count to remove protected double GetAttachmentCountToRemove( - Dictionary weightedAttachmentByPrice, + Dictionary weightedAttachmentByPrice, string? traderId ) { @@ -872,7 +870,7 @@ public class InsuranceController( { var softInsertSlots = pmcData.Inventory.Items.Where(item => item.ParentId == itemWithSoftInserts.Id - && _itemHelper.IsSoftInsertId(item.SlotId.ToLower()) + && _itemHelper.IsSoftInsertId(item.SlotId.ToLowerInvariant()) ); foreach (var softInsertSlot in softInsertSlots) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs b/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs index f9b50e2b..c958ad09 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs @@ -19,15 +19,11 @@ namespace SPTarkov.Server.Core.Controllers; [Injectable] public class InventoryController( ISptLogger _logger, - HashUtil _hashUtil, - RandomUtil _randomUtil, HttpResponseUtil _httpResponseUtil, PresetHelper _presetHelper, InventoryHelper _inventoryHelper, - QuestHelper _questHelper, HideoutHelper _hideoutHelper, ProfileHelper _profileHelper, - PaymentHelper _paymentHelper, TraderHelper _traderHelper, ItemHelper _itemHelper, DatabaseService _databaseService, @@ -165,7 +161,7 @@ public class InventoryController( if (itemToAdjust is null) { _logger.Error( - $"Unable find item: {request.Item} to: {request.State} on player {sessionId}to: " + $"Unable find item: {request.Item.Value.ToString()} to: {request.State} on player: {sessionId} to: " ); return; @@ -603,7 +599,7 @@ public class InventoryController( /// /// Session/Player id /// Item tpl - protected string? GetExaminedItemTpl(InventoryExamineRequestData request, string? sessionId) + protected MongoId? GetExaminedItemTpl(InventoryExamineRequestData request, string? sessionId) { if (_presetHelper.IsPreset(request.Item)) { @@ -1074,7 +1070,9 @@ public class InventoryController( } destinationItem.Upd.StackObjectsCount += sourceItem.Upd.StackObjectsCount; // Add source stackcount to destination - output.ProfileChanges[sessionID].Items.DeletedItems.Add(new Item { Id = sourceItem.Id }); // Inform client source item being deleted + output + .ProfileChanges[sessionID] + .Items.DeletedItems.Add(new DeletedItem { Id = sourceItem.Id }); // Inform client source item being deleted var indexOfItemToRemove = inventoryItems.From.FindIndex(x => x.Id == sourceItem.Id); if (indexOfItemToRemove == -1) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/LauncherController.cs b/Libraries/SPTarkov.Server.Core/Controllers/LauncherController.cs index bc7a72f2..179246cb 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/LauncherController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/LauncherController.cs @@ -168,7 +168,7 @@ public class LauncherController( var timeStampStr = Convert.ToString(timeStamp, 16).PadLeft(8, '0'); var counterStr = Convert.ToString(counter, 16).PadLeft(16, '0'); - return timeStampStr.ToLower() + counterStr.ToLower(); + return timeStampStr.ToLowerInvariant() + counterStr.ToLowerInvariant(); } /// diff --git a/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs b/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs index cb51cb9f..37c9d75a 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs @@ -196,7 +196,7 @@ public class LauncherV2Controller( var timeStampStr = Convert.ToString(timeStamp, 16).PadLeft(8, '0'); var counterStr = Convert.ToString(counter, 16).PadLeft(16, '0'); - return timeStampStr.ToLower() + counterStr.ToLower(); + return timeStampStr.ToLowerInvariant() + counterStr.ToLowerInvariant(); } protected string? GetSessionId(LoginRequestData info) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/LocationController.cs b/Libraries/SPTarkov.Server.Core/Controllers/LocationController.cs index b8129b91..4b67e721 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/LocationController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/LocationController.cs @@ -1,10 +1,10 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Location; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Services; -using SPTarkov.Server.Core.Utils.Cloners; using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel; namespace SPTarkov.Server.Core.Controllers; @@ -13,8 +13,7 @@ namespace SPTarkov.Server.Core.Controllers; public class LocationController( ISptLogger _logger, DatabaseService _databaseService, - AirdropService _airdropService, - ICloner _cloner + AirdropService _airdropService ) { /// @@ -29,7 +28,7 @@ public class LocationController( var maps = locationsFromDb.GetDictionary(); // keyed by _id location property - var locationResult = new Dictionary(); + var locationResult = new Dictionary(); foreach (var (locationId, location) in maps) { @@ -47,7 +46,7 @@ public class LocationController( // Clear out loot array mapBase.Loot = []; // Add map base data to dictionary - locationResult.Add(mapBase.IdField!, mapBase); + locationResult.Add(mapBase.IdField, mapBase); } return new LocationsGenerateAllResponse diff --git a/Libraries/SPTarkov.Server.Core/Controllers/MatchController.cs b/Libraries/SPTarkov.Server.Core/Controllers/MatchController.cs index 822022c6..ab181745 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/MatchController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/MatchController.cs @@ -5,7 +5,6 @@ using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; -using SPTarkov.Server.Core.Utils.Cloners; using static SPTarkov.Server.Core.Services.MatchLocationService; namespace SPTarkov.Server.Core.Controllers; @@ -17,8 +16,7 @@ public class MatchController( ConfigServer _configServer, LocationLifecycleService _locationLifecycleService, ProfileActivityService _profileActivityService, - WeatherHelper _weatherHelper, - ICloner _cloner + WeatherHelper _weatherHelper ) { protected readonly MatchConfig _matchConfig = _configServer.GetConfig(); diff --git a/Libraries/SPTarkov.Server.Core/Controllers/PresetController.cs b/Libraries/SPTarkov.Server.Core/Controllers/PresetController.cs index eea39734..349f6f09 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/PresetController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/PresetController.cs @@ -1,5 +1,6 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Spt.Presets; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Services; @@ -19,7 +20,7 @@ public class PresetController( public void Initialize() { var presets = _databaseService.GetGlobals().ItemPresets; - var result = new Dictionary(); + var result = new Dictionary(); foreach (var (presetId, preset) in presets) { if (presetId != preset.Id) @@ -33,9 +34,9 @@ public class PresetController( // Get root items tpl var tpl = preset.Items.FirstOrDefault()?.Template; - result.TryAdd(tpl, new PresetCacheDetails { PresetIds = [] }); + result.TryAdd(tpl.Value, new PresetCacheDetails { PresetIds = [] }); - result.TryGetValue(tpl, out var details); + result.TryGetValue(tpl.Value, out var details); details.PresetIds.Add(presetId); if (preset.Encyclopedia is not null) { diff --git a/Libraries/SPTarkov.Server.Core/Controllers/ProfileController.cs b/Libraries/SPTarkov.Server.Core/Controllers/ProfileController.cs index 17000d13..fd51742d 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/ProfileController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/ProfileController.cs @@ -9,33 +9,17 @@ using SPTarkov.Server.Core.Models.Eft.Profile; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Launcher; using SPTarkov.Server.Core.Models.Utils; -using SPTarkov.Server.Core.Routers; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; -using SPTarkov.Server.Core.Utils; -using SPTarkov.Server.Core.Utils.Cloners; namespace SPTarkov.Server.Core.Controllers; [Injectable] public class ProfileController( ISptLogger _logger, - HashUtil _hashUtil, - ICloner _cloner, - TimeUtil _timeUtil, SaveServer _saveServer, - DatabaseService _databaseService, - ItemHelper _itemHelper, - ProfileFixerService _profileFixerService, - ServerLocalisationService _serverLocalisationService, CreateProfileService _createProfileService, - SeasonalEventService _seasonalEventService, PlayerScavGenerator _playerScavGenerator, - EventOutputHolder _eventOutputHolder, - TraderHelper _traderHelper, - DialogueHelper _dialogueHelper, - QuestHelper _questHelper, - QuestRewardHelper _questRewardHelper, ProfileHelper _profileHelper ) { @@ -187,7 +171,7 @@ public class ProfileController( var pmcData = _profileHelper.GetPmcProfile(sessionId); pmcData.Info.Nickname = request.Nickname; - pmcData.Info.LowerNickname = request.Nickname.ToLower(); + pmcData.Info.LowerNickname = request.Nickname.ToLowerInvariant(); } return output; @@ -223,7 +207,10 @@ public class ProfileController( foreach (var profile in allProfiles) { var pmcProfile = profile?.CharacterData?.PmcData; - if (!pmcProfile?.Info?.LowerNickname?.Contains(request.Nickname.ToLower()) ?? false) + if ( + !pmcProfile?.Info?.LowerNickname?.Contains(request.Nickname.ToLowerInvariant()) + ?? false + ) { continue; } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs b/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs index 41ae6b5a..50d73890 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs @@ -20,7 +20,6 @@ public class QuestController( TimeUtil _timeUtil, HttpResponseUtil _httpResponseUtil, EventOutputHolder _eventOutputHolder, - ItemHelper _itemHelper, MailSendService _mailSendService, QuestHelper _questHelper, QuestRewardHelper _questRewardHelper, @@ -151,7 +150,7 @@ public class QuestController( { if (pmcData.TaskConditionCounters.TryGetValue(condition.Id, out _)) { - _logger.Error( + _logger.Warning( $"Unable to add new task condition counter: {condition.ConditionType} for quest: {questId} to profile: {pmcData.SessionId} as it already exists" ); } @@ -320,7 +319,7 @@ public class QuestController( // Important: don't tell the client to remove the attachments, it will handle it output .ProfileChanges[sessionID] - .Items.DeletedItems.Add(new Item { Id = itemHandover.Id }); + .Items.DeletedItems.Add(new DeletedItem { Id = itemHandover.Id }); // Important: loop backward when removing items from the array we're looping on while (index-- > 0) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/RagfairController.cs b/Libraries/SPTarkov.Server.Core/Controllers/RagfairController.cs index 01132526..ecba236a 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/RagfairController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/RagfairController.cs @@ -1326,12 +1326,12 @@ public class RagfairController /// Get prices for all items on flea /// /// Dictionary of tpl and item price - public Dictionary GetAllFleaPrices() + public Dictionary GetAllFleaPrices() { return _ragfairPriceService.GetAllFleaPrices(); } - public Dictionary GetStaticPrices() + public Dictionary GetStaticPrices() { return _ragfairPriceService.GetAllStaticPrices(); } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/RepeatableQuestController.cs b/Libraries/SPTarkov.Server.Core/Controllers/RepeatableQuestController.cs index 344feb71..95d8b04b 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/RepeatableQuestController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/RepeatableQuestController.cs @@ -137,7 +137,7 @@ public class RepeatableQuestController( } // Subtype name of quest - daily/weekly/scav - var repeatableTypeLower = repeatablesOfTypeInProfile.Name.ToLower(); + var repeatableTypeLower = repeatablesOfTypeInProfile.Name.ToLowerInvariant(); // Save for later standing loss calculation var replacedQuestTraderId = questToReplace.TraderId; @@ -575,7 +575,7 @@ public class RepeatableQuestController( repeatableConfig, pmcData ); - var repeatableTypeLower = repeatableConfig.Name.ToLower(); + var repeatableTypeLower = repeatableConfig.Name.ToLowerInvariant(); var canAccessRepeatables = CanProfileAccessRepeatableQuests(repeatableConfig, pmcData); if (!canAccessRepeatables) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/TraderController.cs b/Libraries/SPTarkov.Server.Core/Controllers/TraderController.cs index a8e27365..50164598 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/TraderController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/TraderController.cs @@ -44,7 +44,7 @@ public class TraderController( var traders = databaseService.GetTraders(); foreach (var (traderId, trader) in traders) { - if (traderId == Traders.LIGHTHOUSEKEEPER || traderId == "ragfair") + if (traderId == Traders.LIGHTHOUSEKEEPER) { continue; } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/WeatherController.cs b/Libraries/SPTarkov.Server.Core/Controllers/WeatherController.cs index 922358d5..b420bee1 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/WeatherController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/WeatherController.cs @@ -1,6 +1,5 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Generators; -using SPTarkov.Server.Core.Helpers; using SPTarkov.Server.Core.Models.Eft.Weather; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Config; @@ -17,7 +16,6 @@ public class WeatherController( WeatherGenerator _weatherGenerator, SeasonalEventService _seasonalEventService, RaidWeatherService _raidWeatherService, - WeatherHelper _weatherHelper, ConfigServer _configServer ) { diff --git a/Libraries/SPTarkov.Server.Core/Extensions/ContainerExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/ContainerExtensions.cs new file mode 100644 index 00000000..7ef4183d --- /dev/null +++ b/Libraries/SPTarkov.Server.Core/Extensions/ContainerExtensions.cs @@ -0,0 +1,265 @@ +using SPTarkov.Server.Core.Models.Spt.Inventory; + +namespace SPTarkov.Server.Core.Extensions +{ + public static class ContainerExtensions + { + /// + /// Finds a slot for an item in a given 2D container map + /// + /// List of container with positions filled/free + /// Width of item + /// Height of item + /// Location to place item in container + public static FindSlotResult FindSlotForItem( + this int[,] container2D, + int? itemWidthX, + int? itemHeightY + ) + { + // Assume not rotated + var rotation = false; + + // Find the min volume the item will take up + var minVolume = (itemWidthX < itemHeightY ? itemWidthX : itemHeightY) - 1; + var containerY = container2D.GetLength(0); // rows + var containerX = container2D.GetLength(1); // columns + var limitY = containerY - minVolume; + var limitX = containerX - minVolume; + + // Every x+y slot taken up in container, exit + if (ContainerIsFull(container2D)) + { + return new FindSlotResult(false); + } + + // Down = y, iterate over rows + for (var row = 0; row < limitY; row++) + { + if (RowIsFull(container2D, row)) + { + continue; + } + + // Left to right across columns, look for free position + for (var column = 0; column < limitX; column++) + { + // Does item fit + if ( + CanItemBePlacedInContainerAtPosition( + container2D, + row, + column, + itemWidthX.Value, + itemHeightY.Value + ) + ) + { + // Success, found a spot it fits + return new FindSlotResult(true, column, row, rotation); + } + + if (!ItemBiggerThan1X1(itemWidthX.Value, itemHeightY.Value)) + { + // Doesn't fit AND rotating won't help + continue; + } + + // Rotate item by swapping x and y item values + if ( + CanItemBePlacedInContainerAtPosition( + container2D, + row, + column, + itemHeightY.Value, // Swapped + itemWidthX.Value // Swapped + ) + ) + { + // Found a position for the item when rotated + rotation = true; + return new FindSlotResult(true, column, row, rotation); + } + } + } + + // Tried all possible positions, nothing big enough for item + return new FindSlotResult(false); + } + + /// + /// Find a free slot for an item to be placed at + /// + /// Container to place item in + /// Container y size + /// Container x size + /// Items width + /// Items height + /// is item rotated + public static void FillContainerMapWithItem( + this int[,] container2D, + int columnStartPositionX, + int rowStartPositionY, + int? itemXWidth, + int? itemYHeight, + bool isRotated + ) + { + var containerY = container2D.GetLength(0); // rows + var containerX = container2D.GetLength(1); // columns + + // Swap height/width if item needs to be rotated to fit + var itemWidth = isRotated ? itemYHeight : itemXWidth; + var itemHeight = isRotated ? itemXWidth : itemYHeight; + + var itemRowEndPosition = rowStartPositionY + (itemHeight - 1); + var itemColumnEndPosition = columnStartPositionX + (itemWidth - 1); + + //Item is a 1x1, flag slot as taken and exit early + if (itemXWidth == 1 && itemYHeight == 1) + { + container2D[rowStartPositionY, columnStartPositionX] = 1; + + return; + } + + // Loop over rows and columns and flag each as taken by item + for (var y = rowStartPositionY; y <= itemRowEndPosition; y++) + { + for (var x = columnStartPositionX; x <= itemColumnEndPosition; x++) + { + if (container2D[y, x] == 0) + { + // Flag slot as used + container2D[y, x] = 1; + } + else + { + throw new Exception( + $"Slot at: ({containerX}, {containerY}) is already filled. Cannot fit: {itemXWidth} by {itemYHeight} item" + ); + } + } + } + } + + /// + /// Is the requested row full + /// + /// Container to check + /// Index of row to check + /// True = full + private static bool RowIsFull(int[,] container2D, int rowIndex) + { + var rowFull = true; + var containerColumnCount = container2D.GetLength(1); // Column + for (var col = 0; col < containerColumnCount; col++) + { + if (container2D[rowIndex, col] == 0) + { + rowFull = false; + break; + } + } + + return rowFull; + } + + /// + /// Is every slot in container full + /// + /// Container to check + /// True = full + private static bool ContainerIsFull(int[,] container2D) + { + var containerY = container2D.GetLength(0); // rows + var containerX = container2D.GetLength(1); // columns + var containerFull = true; + for (var y = 0; y < containerY; y++) + { + for (var x = 0; x < containerX; x++) + { + if (container2D[y, x] == 0) + { + containerFull = false; + break; + } + } + if (!containerFull) + { + break; + } + } + + return containerFull; + } + + /// + /// Is the item size values passed in bigger than 1x1 + /// + /// Width of item + /// Height of item + /// True = bigger than 1x1 + private static bool ItemBiggerThan1X1(int itemWidth, int itemHeight) + { + return itemWidth + itemHeight > 2; + } + + /// + /// Can an item of specified size be placed inside a 2d container at a specific position + /// + /// Container to find space in + /// Starting y position for item + /// Starting x position for item + /// Items width (y) + /// Items height (x) + /// True - slot found + public static bool CanItemBePlacedInContainerAtPosition( + this int[,] container, + int itemStartVerticalPos, + int itemStartHorizontalPos, + int itemWidth, + int itemHeight + ) + { + var containerHeight = container.GetLength(0); // Rows + var containerWidth = container.GetLength(1); // Columns + + var itemEndColPosition = itemStartHorizontalPos + itemWidth - 1; + var itemEndRowPosition = itemStartVerticalPos + itemHeight - 1; + + // Check item isn't bigger than container when at position + if (itemEndColPosition > containerWidth - 1 || itemEndRowPosition > containerHeight - 1) + { + // Item is bigger than container, will never fit + return false; + } + + // Early exit if exact spot is taken + if (container[itemStartVerticalPos, itemStartHorizontalPos] == 1) + { + return false; + } + + // Single slot item, do direct check + if (itemWidth == 1 && itemHeight == 1) + { + return container[itemStartVerticalPos, itemStartHorizontalPos] == 0; + } + + for (var row = itemStartVerticalPos; row <= itemEndRowPosition; row++) + { + for (var column = itemStartHorizontalPos; column <= itemEndColPosition; column++) + { + if (container[row, column] == 1) + { + // Occupied by something + return false; + } + } + } + + return true; // Slot is free + } + } +} diff --git a/Libraries/SPTarkov.Server.Core/Extensions/FullProfileExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/FullProfileExtensions.cs index 7cf71219..37193577 100644 --- a/Libraries/SPTarkov.Server.Core/Extensions/FullProfileExtensions.cs +++ b/Libraries/SPTarkov.Server.Core/Extensions/FullProfileExtensions.cs @@ -158,7 +158,7 @@ namespace SPTarkov.Server.Core.Extensions } // Dev profile additions - if (fullProfile.ProfileInfo.Edition.ToLower().Contains("developer")) + if (fullProfile.ProfileInfo.Edition.ToLowerInvariant().Contains("developer")) // CyberTark background { fullProfile.CustomisationUnlocks.Add( @@ -185,7 +185,7 @@ namespace SPTarkov.Server.Core.Extensions // Edge case - profile not created yet, fall back to what launcher has set var launcherEdition = fullProfile.ProfileInfo.Edition; - switch (launcherEdition.ToLower()) + switch (launcherEdition.ToLowerInvariant()) { case "edge of darkness": return GameEditions.EDGE_OF_DARKNESS; @@ -215,5 +215,16 @@ namespace SPTarkov.Server.Core.Extensions fullProfile.SptData.ExtraRepeatableQuests[repeatableId] += rewardValue; } } + + /// + /// Is the provided session id for a developer account + /// + /// Profile to check + /// True if account is developer + public static bool IsDeveloperAccount(this SptProfile fullProfile) + { + return fullProfile?.ProfileInfo?.Edition?.ToLowerInvariant().StartsWith("spt developer") + ?? false; + } } } diff --git a/Libraries/SPTarkov.Server.Core/Extensions/ItemExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/ItemExtensions.cs index f32869be..6f1074c7 100644 --- a/Libraries/SPTarkov.Server.Core/Extensions/ItemExtensions.cs +++ b/Libraries/SPTarkov.Server.Core/Extensions/ItemExtensions.cs @@ -1,4 +1,6 @@ -using SPTarkov.Server.Core.Models.Common; +using System.Text.Json; +using SPTarkov.Common.Extensions; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; @@ -284,16 +286,16 @@ namespace SPTarkov.Server.Core.Extensions /// list of Item objects public static List FindAndReturnChildrenAsItems( this IEnumerable items, - string baseItemId, + MongoId baseItemId, bool modsOnly = false ) { // Use dictionary to make key lookup faster, convert to list before being returned - OrderedDictionary result = []; + OrderedDictionary result = []; foreach (var childItem in items) { // Include itself - if (string.Equals(childItem.Id, baseItemId, StringComparison.Ordinal)) + if (childItem.Id == baseItemId) { // Root item MUST be at 0 index for things like flea market offers result.Insert(0, childItem.Id, childItem); @@ -309,7 +311,8 @@ namespace SPTarkov.Server.Core.Extensions // Items parentId matches root item AND returned items doesn't contain current child if ( !result.ContainsKey(childItem.Id) - && string.Equals(childItem.ParentId, baseItemId, StringComparison.Ordinal) + && childItem.ParentId != "hideout" + && childItem.ParentId == baseItemId ) { foreach (var item in FindAndReturnChildrenAsItems(items, childItem.Id)) @@ -342,5 +345,42 @@ namespace SPTarkov.Server.Core.Extensions ExtensionData = item.ExtensionData, }; } + + public static ItemLocation? GetParsedLocation(this Item item) + { + if (item.Location is null) + { + return null; + } + + if (item.Location is JsonElement element) + { + // TODO: when is this true + return element.ToObject(); + } + + return (ItemLocation)item.Location; + } + + /// + /// Get a list of the item IDs (NOT tpls) inside a secure container + /// + /// Inventory items to look for secure container in + /// List of ids + public static List GetSecureContainerItems(this List items) + { + var secureContainer = items.First(x => x.SlotId == "SecuredContainer"); + + // No container found, drop out + if (secureContainer is null) + { + return []; + } + + var itemsInSecureContainer = items.FindAndReturnChildrenByItems(secureContainer.Id); + + // Return all items returned and exclude the secure container item itself + return itemsInSecureContainer.Where(x => x != secureContainer.Id).ToList(); + } } } diff --git a/Libraries/SPTarkov.Server.Core/Extensions/ProductionExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/ProductionExtensions.cs index 9a1c960c..cdff0730 100644 --- a/Libraries/SPTarkov.Server.Core/Extensions/ProductionExtensions.cs +++ b/Libraries/SPTarkov.Server.Core/Extensions/ProductionExtensions.cs @@ -6,12 +6,6 @@ namespace SPTarkov.Server.Core.Extensions { public static class ProductionExtensions { - private static readonly HashSet _idCheck = - [ - HideoutHelper.BitcoinFarm, - HideoutHelper.CultistCircleCraftId, - ]; - /// /// Has the craft completed /// Ignores bitcoin farm/cultist circle as they're continuous crafts @@ -20,7 +14,9 @@ namespace SPTarkov.Server.Core.Extensions /// True when craft is complete public static bool IsCraftComplete(this Production craft) { - return craft.Progress >= craft.ProductionTime && !_idCheck.Contains(craft.RecipeId); + return craft.Progress >= craft.ProductionTime + && !craft.IsCraftOfType(HideoutAreas.BitcoinFarm) + && !craft.IsCraftOfType(HideoutAreas.CircleOfCultists); } /// @@ -34,9 +30,9 @@ namespace SPTarkov.Server.Core.Extensions switch (hideoutType) { case HideoutAreas.WaterCollector: - return craft.RecipeId == HideoutHelper.WaterCollector; + return craft.RecipeId == HideoutHelper.WaterCollectorId; case HideoutAreas.BitcoinFarm: - return craft.RecipeId == HideoutHelper.BitcoinFarm; + return craft.RecipeId == HideoutHelper.BitcoinProductionId; case HideoutAreas.ScavCase: return craft.SptIsScavCase ?? false; case HideoutAreas.CircleOfCultists: diff --git a/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs index 5b5525ad..33b42e28 100644 --- a/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs +++ b/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs @@ -1,4 +1,5 @@ -using SPTarkov.Server.Core.Models.Eft.Common; +using SPTarkov.Server.Core.Models.Common; +using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; @@ -125,7 +126,7 @@ namespace SPTarkov.Server.Core.Extensions return pmcData.IsParentInStash(itemToCheck.Id); } - public static bool IsParentInStash(this PmcData pmcData, string itemId) + public static bool IsParentInStash(this PmcData pmcData, MongoId itemId) { // Item not found / has no parent var item = pmcData.Inventory.Items.FirstOrDefault(item => item.Id == itemId); @@ -200,5 +201,45 @@ namespace SPTarkov.Server.Core.Extensions return pmcData.Info.Level; } + + /// + /// Does the provided item have a root item with the provided id + /// + /// Profile with items + /// Item to check + /// Root item id to check for + /// True when item has rootId, false when not + public static bool DoesItemHaveRootId(this PmcData pmcData, Item item, string rootId) + { + var currentItem = item; + while (currentItem is not null) + { + // If we've found the equipment root ID, return true + if (currentItem.Id == rootId) + { + return true; + } + + // Otherwise get the parent item + currentItem = pmcData.Inventory.Items.FirstOrDefault(item => + item.Id == currentItem.ParentId + ); + } + + return false; + } + + /// + /// Get status of a quest in player profile by its id + /// + /// Profile to search + /// Quest id to look up + /// QuestStatus enum + public static QuestStatusEnum GetQuestStatus(this PmcData pmcData, string questId) + { + var quest = pmcData.Quests?.FirstOrDefault(q => q.QId == questId); + + return quest?.Status ?? QuestStatusEnum.Locked; + } } } diff --git a/Libraries/SPTarkov.Server.Core/Extensions/StringExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/StringExtensions.cs new file mode 100644 index 00000000..13b172b0 --- /dev/null +++ b/Libraries/SPTarkov.Server.Core/Extensions/StringExtensions.cs @@ -0,0 +1,39 @@ +using System.Text; + +namespace SPTarkov.Server.Core.Extensions +{ + public static class StringExtensions + { + public static string Encode(this string value, EncodeType encode) + { + return encode switch + { + EncodeType.BASE64 => Convert.ToBase64String(Encoding.Default.GetBytes(value)), + EncodeType.HEX => Convert.ToHexString(Encoding.Default.GetBytes(value)), + EncodeType.ASCII => Encoding.ASCII.GetString(Encoding.Default.GetBytes(value)), + EncodeType.UTF8 => Encoding.UTF8.GetString(Encoding.Default.GetBytes(value)), + _ => throw new ArgumentOutOfRangeException(nameof(encode), encode, null), + }; + } + + public static string Decode(this string value, EncodeType encode) + { + return encode switch + { + EncodeType.BASE64 => Encoding.UTF8.GetString(Convert.FromBase64String(value)), + EncodeType.HEX => Encoding.UTF8.GetString(Convert.FromHexString(value)), + EncodeType.ASCII => Encoding.ASCII.GetString(Encoding.Default.GetBytes(value)), + EncodeType.UTF8 => Encoding.UTF8.GetString(Encoding.Default.GetBytes(value)), + _ => throw new ArgumentOutOfRangeException(nameof(encode), encode, null), + }; + } + + public enum EncodeType + { + BASE64, + HEX, + ASCII, + UTF8, + } + } +} diff --git a/Libraries/SPTarkov.Server.Core/Extensions/TemplateItemExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/TemplateItemExtensions.cs index 3e6e50ad..ec499ebb 100644 --- a/Libraries/SPTarkov.Server.Core/Extensions/TemplateItemExtensions.cs +++ b/Libraries/SPTarkov.Server.Core/Extensions/TemplateItemExtensions.cs @@ -48,5 +48,20 @@ namespace SPTarkov.Server.Core.Extensions { return weaponTemplate.Properties.DefMagType; } + + /// + /// Get the default plate an armor has in its db item + /// + /// Item to look up default plate + /// front/back + /// Tpl of plate + public static string? GetDefaultPlateTpl(this TemplateItem armorItem, string modSlot) + { + var relatedItemDbModSlot = armorItem.Properties.Slots?.FirstOrDefault(slot => + string.Equals(slot.Name, modSlot, StringComparison.OrdinalIgnoreCase) + ); + + return relatedItemDbModSlot?.Props?.Filters?.FirstOrDefault()?.Plate; + } } } diff --git a/Libraries/SPTarkov.Server.Core/Extensions/TraderAssortExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/TraderAssortExtensions.cs index 2267743f..38740663 100644 --- a/Libraries/SPTarkov.Server.Core/Extensions/TraderAssortExtensions.cs +++ b/Libraries/SPTarkov.Server.Core/Extensions/TraderAssortExtensions.cs @@ -1,4 +1,5 @@ -using SPTarkov.Server.Core.Models.Eft.Common.Tables; +using SPTarkov.Server.Core.Models.Common; +using SPTarkov.Server.Core.Models.Eft.Common.Tables; namespace SPTarkov.Server.Core.Extensions { @@ -14,7 +15,7 @@ namespace SPTarkov.Server.Core.Extensions /// Modified assort public static TraderAssort RemoveItemFromAssort( this TraderAssort assort, - string itemId, + MongoId itemId, bool isFlea = false ) { diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs index 69075895..b15c5070 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs @@ -1,6 +1,7 @@ using System.Collections.Frozen; using System.Globalization; using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Helpers; using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; @@ -83,6 +84,17 @@ public class BotEquipmentModGenerator( "cartridges", ]; + const string modRecieverKey = "mod_reciever"; + const string modMount001Key = "mod_mount_001"; + const string modGasBlockKey = "mod_gas_block"; + const string modPistolGrip = "mod_pistol_grip"; + const string modStockKey = "mod_stock"; + const string modBarrelKey = "mod_barrel"; + const string modHandguardKey = "mod_handguard"; + const string modMountKey = "mod_mount"; + const string modScopeKey = "mod_scope"; + const string modScope000Key = "mod_scope_000"; + protected readonly BotConfig _botConfig = _configServer.GetConfig(); /// @@ -118,7 +130,7 @@ public class BotEquipmentModGenerator( foreach (var (modSlotName, modPool) in compatibleModsPool ?? []) { // Get the templates slot object from db - var itemSlotTemplate = GetModItemSlotFromDb(modSlotName, parentTemplate); + var itemSlotTemplate = GetModItemSlotFromDbTemplate(modSlotName, parentTemplate); if (itemSlotTemplate is null) { _logger.Error( @@ -174,12 +186,12 @@ public class BotEquipmentModGenerator( // Slot can hold armor plates + we are filtering possible items by bot level, handle if ( settings.BotEquipmentConfig.FilterPlatesByLevel.GetValueOrDefault(false) - && _itemHelper.IsRemovablePlateSlot(modSlotName.ToLower()) + && _itemHelper.IsRemovablePlateSlot(modSlotName.ToLowerInvariant()) ) { var plateSlotFilteringOutcome = FilterPlateModsForSlotByLevel( settings, - modSlotName.ToLower(), + modSlotName.ToLowerInvariant(), compatibleModsPool.GetValueOrDefault(modSlotName), parentTemplate ); @@ -206,7 +218,7 @@ public class BotEquipmentModGenerator( } // Choose random mod from pool and check its compatibility - string? modTpl = null; + MongoId? modTpl = null; var found = false; var exhaustableModPool = CreateExhaustableArray(modPoolToChooseFrom); while (exhaustableModPool.HasValues()) @@ -215,7 +227,7 @@ public class BotEquipmentModGenerator( if ( modTpl is not null && !_botGeneratorHelper - .IsItemIncompatibleWithCurrentItems(equipment, modTpl, modSlotName) + .IsItemIncompatibleWithCurrentItems(equipment, modTpl.Value, modSlotName) .Incompatible.GetValueOrDefault(false) ) { @@ -243,7 +255,7 @@ public class BotEquipmentModGenerator( } // Get chosen mods db template and check it fits into slot - var modTemplate = _itemHelper.GetItem(modTpl); + var modTemplate = _itemHelper.GetItem(modTpl.Value); if ( !IsModValidForSlot( modTemplate, @@ -406,7 +418,7 @@ public class BotEquipmentModGenerator( ); } - var defaultPlate = GetDefaultPlateTpl(armorItem, modSlot); + var defaultPlate = armorItem.GetDefaultPlateTpl(modSlot); if (defaultPlate is not null) { // Return Default Plates cause couldn't get lowest level available from original selection @@ -474,21 +486,6 @@ public class BotEquipmentModGenerator( }; } - /// - /// Get the default plate an armor has in its db item - /// - /// Item to look up default plate - /// front/back - /// Tpl of plate - protected string? GetDefaultPlateTpl(TemplateItem armorItem, string modSlot) - { - var relatedItemDbModSlot = armorItem.Properties.Slots?.FirstOrDefault(slot => - string.Equals(slot.Name, modSlot, StringComparison.OrdinalIgnoreCase) - ); - - return relatedItemDbModSlot?.Props?.Filters.FirstOrDefault()?.Plate; - } - /// /// Get the matching armor slot from the default preset matching passed in armor tpl /// @@ -555,7 +552,7 @@ public class BotEquipmentModGenerator( foreach (var modSlot in sortedModKeys) { // Check weapon has slot for mod to fit in - var modsParentSlot = GetModItemSlotFromDb(modSlot, request.ParentTemplate); + var modsParentSlot = GetModItemSlotFromDbTemplate(modSlot, request.ParentTemplate); if (modsParentSlot is null) { _logger.Error( @@ -634,12 +631,12 @@ public class BotEquipmentModGenerator( continue; } - var modToAddTemplate = modToAdd.Value; + var modToAddTemplate = modToAdd.Value.Value; // Skip adding mod to weapon if type limit reached if ( _botWeaponModLimitService.WeaponModHasReachedLimit( request.BotData.EquipmentRole, - modToAddTemplate.Value, + modToAddTemplate, request.ModLimits, request.ParentTemplate, request.Weapon @@ -650,7 +647,7 @@ public class BotEquipmentModGenerator( } // If item is a mount for scopes, set scope chance to 100%, this helps fix empty mounts appearing on weapons - if (ModSlotCanHoldScope(modSlot, modToAddTemplate.Value.Parent)) + if (ModSlotCanHoldScope(modSlot, modToAddTemplate.Parent)) { // mod_mount was picked to be added to weapon, force scope chance to ensure its filled List scopeSlots = @@ -669,7 +666,7 @@ public class BotEquipmentModGenerator( { AddCompatibleModsForProvidedMod( "mod_scope", - modToAddTemplate.Value, + modToAddTemplate, request.ModPool, botEquipBlacklist ); @@ -677,7 +674,7 @@ public class BotEquipmentModGenerator( } // If picked item is muzzle adapter that can hold a child, adjust spawn chance - if (ModSlotCanHoldMuzzleDevices(modSlot, modToAddTemplate.Value.Parent)) + if (ModSlotCanHoldMuzzleDevices(modSlot, modToAddTemplate.Parent)) { List muzzleSlots = ["mod_muzzle", "mod_muzzle_000", "mod_muzzle_001"]; // Make chance of muzzle devices 95%, nearly certain but not guaranteed @@ -685,7 +682,7 @@ public class BotEquipmentModGenerator( } // If front/rear sight are to be added, set opposite to 100% chance - if (ModIsFrontOrRearSight(modSlot, modToAddTemplate.Value.Id)) + if (ModIsFrontOrRearSight(modSlot, modToAddTemplate.Id)) { request.ModSpawnChances["mod_sight_front"] = 100; request.ModSpawnChances["mod_sight_rear"] = 100; @@ -695,7 +692,7 @@ public class BotEquipmentModGenerator( // Force spawn chance to be 100% to ensure it gets added if ( modSlot == "mod_handguard" - && modToAddTemplate.Value.Properties.Slots.Any(slot => slot.Name == "mod_handguard") + && modToAddTemplate.Properties.Slots.Any(slot => slot.Name == "mod_handguard") && !request.Weapon.Any(item => item.SlotId == "mod_launcher") ) // Needed for handguards with lower @@ -705,7 +702,7 @@ public class BotEquipmentModGenerator( // If stock mod can take a sub stock mod, force spawn chance to be 100% to ensure sub-stock gets added // Or if bot has stock force enabled - if (ShouldForceSubStockSlots(modSlot, botEquipConfig, modToAddTemplate.Value)) + if (ShouldForceSubStockSlots(modSlot, botEquipConfig, modToAddTemplate)) { // Stock mod can take additional stocks, could be a locking device, force 100% chance List subStockSlots = @@ -719,7 +716,7 @@ public class BotEquipmentModGenerator( } // Gather stats on mods being added to weapon - if (_itemHelper.IsOfBaseclass(modToAddTemplate.Value.Id, BaseClasses.IRON_SIGHT)) + if (_itemHelper.IsOfBaseclass(modToAddTemplate.Id, BaseClasses.IRON_SIGHT)) { if (modSlot == "mod_sight_front") { @@ -732,7 +729,7 @@ public class BotEquipmentModGenerator( } else if ( !(request.WeaponStats.HasOptic ?? false) - && _itemHelper.IsOfBaseclass(modToAddTemplate.Value.Id, BaseClasses.SIGHTS) + && _itemHelper.IsOfBaseclass(modToAddTemplate.Id, BaseClasses.SIGHTS) ) { request.WeaponStats.HasOptic = true; @@ -742,16 +739,16 @@ public class BotEquipmentModGenerator( request.Weapon.Add( CreateModItem( modId, - modToAddTemplate.Value.Id, + modToAddTemplate.Id, request.WeaponId, modSlot, - modToAddTemplate.Value, + modToAddTemplate, request.BotData.Role ) ); // Update conflicting item list now item has been chosen - foreach (var conflictingItem in modToAddTemplate.Value.Properties.ConflictingItems) + foreach (var conflictingItem in modToAddTemplate.Properties.ConflictingItems) { request.ConflictingItemTpls.Add(conflictingItem); } @@ -760,30 +757,30 @@ public class BotEquipmentModGenerator( // However, the recursion doesn't go over the slots of the parent mod but over the modPool which is given by the bot config // where we decided to keep cartridges instead of camoras. And since a CylinderMagazine only has one cartridge entry and // this entry is not to be filled, we need a special handling for the CylinderMagazine - var modParentItem = _itemHelper.GetItem(modToAddTemplate.Value.Parent).Value; + var modParentItem = _itemHelper.GetItem(modToAddTemplate.Parent).Value; if (_botWeaponGeneratorHelper.MagazineIsCylinderRelated(modParentItem.Name)) { // We don't have child mods, we need to create the camoras for the magazines instead - FillCamora(request.Weapon, request.ModPool, modId, modToAddTemplate.Value); + FillCamora(request.Weapon, request.ModPool, modId, modToAddTemplate); } else { - var containsModInPool = request.ModPool.ContainsKey(modToAddTemplate.Value.Id); + var containsModInPool = request.ModPool.ContainsKey(modToAddTemplate.Id); // Sometimes randomised slots are missing sub-mods, if so, get values from mod pool service // Check for a randomisable slot + without data in modPool + item being added as additional slots if ( isRandomisableSlot && !containsModInPool - && modToAddTemplate.Value.Properties.Slots.Any() + && modToAddTemplate.Properties.Slots.Any() ) { var modFromService = _botEquipmentModPoolService.GetModsForWeaponSlot( - modToAddTemplate.Value.Id + modToAddTemplate.Id ); if (modFromService?.Count > 0) { - request.ModPool[modToAddTemplate.Value.Id] = modFromService.ToDictionary(); + request.ModPool[modToAddTemplate.Id] = modFromService.ToDictionary(); containsModInPool = true; } } @@ -793,11 +790,11 @@ public class BotEquipmentModGenerator( { // Check for required mods the item we've added needs to be classified as 'valid' var modFromService = _botEquipmentModPoolService.GetRequiredModsForWeaponSlot( - modToAddTemplate.Value.Id + modToAddTemplate.Id ); if (modFromService?.Count > 0) { - request.ModPool[modToAddTemplate.Value.Id] = modFromService; + request.ModPool[modToAddTemplate.Id] = modFromService; containsModInPool = true; } } @@ -809,7 +806,7 @@ public class BotEquipmentModGenerator( Weapon = request.Weapon, ModPool = request.ModPool, WeaponId = modId, - ParentTemplate = modToAddTemplate.Value, + ParentTemplate = modToAddTemplate, ModSpawnChances = request.ModSpawnChances, AmmoTpl = request.AmmoTpl, BotData = new BotData @@ -869,7 +866,7 @@ public class BotEquipmentModGenerator( /// Slot to check /// /// true if it's a front/rear sight - public bool ModIsFrontOrRearSight(string modSlot, string tpl) + public bool ModIsFrontOrRearSight(string modSlot, MongoId tpl) { // Gas block /w front sight is special case, deem it a 'front sight' too if (modSlot == "mod_gas_block" && tpl == "5ae30e795acfc408fb139a0b") @@ -889,7 +886,7 @@ public class BotEquipmentModGenerator( /// true if it can hold a scope public bool ModSlotCanHoldScope(string modSlot, string modsParentId) { - return _scopeIds.Contains(modSlot.ToLower()) && modsParentId == BaseClasses.MOUNT; + return _scopeIds.Contains(modSlot.ToLowerInvariant()) && modsParentId == BaseClasses.MOUNT; } /// @@ -932,7 +929,7 @@ public class BotEquipmentModGenerator( /// True if modSlot can have muzzle-related items public bool ModSlotCanHoldMuzzleDevices(string modSlot, string? modsParentId) { - return _muzzleIds.Contains(modSlot.ToLower()); + return _muzzleIds.Contains(modSlot.ToLowerInvariant()); } /// @@ -943,7 +940,7 @@ public class BotEquipmentModGenerator( /// Sorted array public HashSet SortModKeys( HashSet unsortedSlotKeys, - string itemTplWithKeysToSort + MongoId itemTplWithKeysToSort ) { // No need to sort with only 1 item in array @@ -955,16 +952,6 @@ public class BotEquipmentModGenerator( var isMount = _itemHelper.IsOfBaseclass(itemTplWithKeysToSort, BaseClasses.MOUNT); HashSet sortedKeys = []; - const string modRecieverKey = "mod_reciever"; - const string modMount001Key = "mod_mount_001"; - const string modGasBlockKey = "mod_gas_block"; - const string modPistolGrip = "mod_pistol_grip"; - const string modStockKey = "mod_stock"; - const string modBarrelKey = "mod_barrel"; - const string modHandguardKey = "mod_handguard"; - const string modMountKey = "mod_mount"; - const string modScopeKey = "mod_scope"; - const string modScope000Key = "mod_scope_000"; // Mounts are a special case, they need scopes first before more mounts if (isMount) @@ -1055,9 +1042,9 @@ public class BotEquipmentModGenerator( /// e.g patron_in_weapon /// item template /// Slot item - public Slot? GetModItemSlotFromDb(string modSlot, TemplateItem parentTemplate) + public Slot? GetModItemSlotFromDbTemplate(string modSlot, TemplateItem parentTemplate) { - var modSlotLower = modSlot.ToLower(); + var modSlotLower = modSlot.ToLowerInvariant(); switch (modSlotLower) { case "patron_in_weapon": @@ -1100,7 +1087,7 @@ public class BotEquipmentModGenerator( } var spawnMod = _randomUtil.RollChance( - modSpawnChances.GetValueOrDefault(modSlotName.ToLower()) + modSpawnChances.GetValueOrDefault(modSlotName.ToLowerInvariant()) ); if ( !spawnMod @@ -1317,7 +1304,7 @@ public class BotEquipmentModGenerator( /// /// Pool of mods that can be picked from /// Slot the picked mod will have as a parent - /// How should chosen tpl be treated: DEFAULT_MOD/SPAWN/SKIP + /// How should the chosen tpl be handled: DEFAULT_MOD/SPAWN/SKIP /// Array of weapon items chosen item will be added to /// Name of slot picked mod will be placed into /// Chosen weapon details @@ -1556,8 +1543,8 @@ public class BotEquipmentModGenerator( var parentSlotCompatibleItems = request .ParentTemplate.Properties.Slots?.FirstOrDefault(slot => string.Equals( - slot.Name.ToLower(), - request.ModSlot.ToLower(), + slot.Name.ToLowerInvariant(), + request.ModSlot.ToLowerInvariant(), StringComparison.Ordinal ) ) @@ -1719,7 +1706,7 @@ public class BotEquipmentModGenerator( /// Slot to get mod to fill /// Items to ensure picked mod is compatible with /// Item tpl - public string? GetRandomModTplFromItemDb( + public MongoId? GetRandomModTplFromItemDb( string fallbackModTpl, Slot parentSlot, string modSlot, @@ -1856,7 +1843,7 @@ public class BotEquipmentModGenerator( modPool.TryAdd(modTemplate.Id, new Dictionary>()); - modPool[modTemplate.Id][desiredSlotObject.Name] = supportedSubModsSet; + modPool[modTemplate.Id][desiredSlotObject.Name] = filteredMods; } /// @@ -2064,7 +2051,7 @@ public class BotEquipmentModGenerator( public HashSet FilterSightsByWeaponType( Item weapon, HashSet scopes, - Dictionary> botWeaponSightWhitelist + Dictionary> botWeaponSightWhitelist ) { var weaponDetails = _itemHelper.GetItem(weapon.Template); diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotGenerator.cs index 3b03d67e..b426e755 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotGenerator.cs @@ -188,7 +188,7 @@ public class BotGenerator( BotGenerationDetails botGenerationDetails ) { - var botRoleLowercase = botGenerationDetails.Role.ToLower(); + var botRoleLowercase = botGenerationDetails.Role.ToLowerInvariant(); var botLevel = _botLevelGenerator.GenerateBotLevel( botJsonTemplate.BotExperience.Level, botGenerationDetails, @@ -215,7 +215,7 @@ public class BotGenerator( // Only Pmcs should have a lower nickname bot.Info.LowerNickname = botGenerationDetails.IsPmc.GetValueOrDefault(false) - ? bot.Info.Nickname.ToLower() + ? bot.Info.Nickname.ToLowerInvariant() : string.Empty; // Only run when generating a 'fake' playerscav, not actual player scav @@ -351,7 +351,7 @@ public class BotGenerator( string role ) { - if (!experiences.TryGetValue(botDifficulty.ToLower(), out var result)) + if (!experiences.TryGetValue(botDifficulty.ToLowerInvariant(), out var result)) { if (_logger.IsLogEnabled(LogLevel.Debug)) { @@ -386,7 +386,7 @@ public class BotGenerator( string role ) { - if (!standingsForKill.TryGetValue(botDifficulty.ToLower(), out var result)) + if (!standingsForKill.TryGetValue(botDifficulty.ToLowerInvariant(), out var result)) { _logger.Warning( $"Unable to find standing for kill value for: {role} {botDifficulty}, falling back to `normal`" @@ -411,7 +411,7 @@ public class BotGenerator( string role ) { - if (!aggressorBonuses.TryGetValue(botDifficulty.ToLower(), out var result)) + if (!aggressorBonuses.TryGetValue(botDifficulty.ToLowerInvariant(), out var result)) { _logger.Warning( $"Unable to find aggressor bonus for kill value for: {role} {botDifficulty}, falling back to `normal`" @@ -474,7 +474,7 @@ public class BotGenerator( /// Bot to filter public void RemoveBlacklistedLootFromBotTemplate(BotTypeInventory botInventory) { - var containersToProcess = new List> + var containersToProcess = new List> { botInventory.Items.Backpack, botInventory.Items.Pockets, diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotInventoryGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotInventoryGenerator.cs index cc1c24ec..e7d09b79 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotInventoryGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotInventoryGenerator.cs @@ -645,7 +645,7 @@ public class BotInventoryGenerator( /// Blacklist to filter mod pool with /// Filtered pool of mods public Dictionary> GetFilteredDynamicModsForItem( - string itemTpl, + MongoId itemTpl, Dictionary> equipmentBlacklist ) { diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotLevelGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotLevelGenerator.cs index f811efdd..843d5040 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotLevelGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotLevelGenerator.cs @@ -13,7 +13,6 @@ namespace SPTarkov.Server.Core.Generators; public class BotLevelGenerator( ISptLogger _logger, RandomUtil _randomUtil, - MathUtil _mathUtil, DatabaseService _databaseService ) { diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotLootGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotLootGenerator.cs index abdbacca..e406841f 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotLootGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotLootGenerator.cs @@ -115,7 +115,7 @@ public class BotLootGenerator( var grenadeCount = _weightedRandomHelper.GetWeightedValue(itemCounts.Grenades.Weights); // If bot has been flagged as not having loot, set below counts to 0 - if (_botConfig.DisableLootOnBotTypes.Contains(botRole.ToLower())) + if (_botConfig.DisableLootOnBotTypes.Contains(botRole.ToLowerInvariant())) { backpackLootCount = 0; pocketLootCount = 0; @@ -458,7 +458,7 @@ public class BotLootGenerator( { // surv12 AddLootFromPool( - new Dictionary { { "5d02797c86f774203f38e30a", 1 } }, + new Dictionary { { "5d02797c86f774203f38e30a", 1 } }, [EquipmentSlots.SecuredContainer], 1, botInventory, @@ -470,7 +470,7 @@ public class BotLootGenerator( // AFAK AddLootFromPool( - new Dictionary { { "60098ad7c2240c0fe85c570a", 1 } }, + new Dictionary { { "60098ad7c2240c0fe85c570a", 1 } }, [EquipmentSlots.SecuredContainer], 10, botInventory, @@ -494,7 +494,7 @@ public class BotLootGenerator( /// Total value of loot allowed in roubles /// Is bot being generated for a pmc protected void AddLootFromPool( - Dictionary pool, + Dictionary pool, HashSet equipmentSlots, double totalItemCount, BotBaseInventory inventoryToAddItemsTo, @@ -606,7 +606,7 @@ public class BotLootGenerator( var itemAddedResult = _botGeneratorHelper.AddItemWithChildrenToEquipmentSlot( equipmentSlots, newRootItemId, - itemToAddTemplate?.Id, + itemToAddTemplate.Id, itemWithChildrenToAdd, inventoryToAddItemsTo, containersIdFull @@ -945,9 +945,9 @@ public class BotLootGenerator( return _botConfig.ItemSpawnLimits["pmc"]; } - if (_botConfig.ItemSpawnLimits.ContainsKey(botRole.ToLower())) + if (_botConfig.ItemSpawnLimits.ContainsKey(botRole.ToLowerInvariant())) { - return _botConfig.ItemSpawnLimits[botRole.ToLower()]; + return _botConfig.ItemSpawnLimits[botRole.ToLowerInvariant()]; } _logger.Warning( diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotWeaponGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotWeaponGenerator.cs index 1e6d2cb4..73deb67d 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotWeaponGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotWeaponGenerator.cs @@ -545,7 +545,7 @@ public class BotWeaponGenerator( GenerationData ubglMinMax = new() { Weights = new Dictionary { { 1, 1 }, { 2, 1 } }, - Whitelist = new Dictionary(), + Whitelist = new Dictionary(), }; // get ammo template from db @@ -794,6 +794,7 @@ public class BotWeaponGenerator( var magazineTemplate = _itemHelper.GetItem( magazineSlot.Props?.Filters.FirstOrDefault()?.Filter?.FirstOrDefault() + ?? new MongoId(null) ); if (!magazineTemplate.Key) { diff --git a/Libraries/SPTarkov.Server.Core/Generators/LocationLootGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/LocationLootGenerator.cs index 7cb0a325..06d00e1f 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/LocationLootGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/LocationLootGenerator.cs @@ -21,10 +21,8 @@ namespace SPTarkov.Server.Core.Generators; public class LocationLootGenerator( ISptLogger _logger, RandomUtil _randomUtil, - HashUtil _hashUtil, ItemHelper _itemHelper, DatabaseService _databaseService, - ContainerHelper _containerHelper, PresetHelper _presetHelper, ServerLocalisationService _serverLocalisationService, SeasonalEventService _seasonalEventService, @@ -60,7 +58,7 @@ public class LocationLootGenerator( // Pull location-specific spawn limits from db var itemsWithSpawnCountLimitsClone = _cloner.Clone( - _locationConfig.LootMaxSpawnLimits.GetValueOrDefault(locationId.ToLower()) + _locationConfig.LootMaxSpawnLimits.GetValueOrDefault(locationId.ToLowerInvariant()) ); // Store items with spawn count limits inside so they can be accessed later inside static/dynamic loot spawn methods @@ -70,13 +68,13 @@ public class LocationLootGenerator( } // Create containers with loot - result.AddRange(GenerateStaticContainers(locationId.ToLower(), staticAmmoDist)); + result.AddRange(GenerateStaticContainers(locationId.ToLowerInvariant(), staticAmmoDist)); // Add dynamic loot to output loot var dynamicSpawnPoints = GenerateDynamicLoot( _cloner.Clone(locationDetails.LooseLoot.Value), staticAmmoDist, - locationId.ToLower() + locationId.ToLowerInvariant() ); // Merge dynamic spawns into result @@ -542,7 +540,7 @@ public class LocationLootGenerator( var containerTpl = containerClone.Template.Items.FirstOrDefault().Template; // Create new unique parent id to prevent any collisions - var parentId = _hashUtil.Generate(); + var parentId = new MongoId(); containerClone.Template.Root = parentId; containerClone.Template.Items.FirstOrDefault().Id = parentId; @@ -600,8 +598,7 @@ public class LocationLootGenerator( : chosenItemWithChildren.Items; // look for open slot to put chosen item into - var result = _containerHelper.FindSlotForItem( - containerMap, + var result = containerMap.FindSlotForItem( chosenItemWithChildren.Width, chosenItemWithChildren.Height ); @@ -620,8 +617,7 @@ public class LocationLootGenerator( } // Find somewhere for item inside container - _containerHelper.FillContainerMapWithItem( - containerMap, + containerMap.FillContainerMapWithItem( result.X.Value, result.Y.Value, chosenItemWithChildren.Width, @@ -700,7 +696,7 @@ public class LocationLootGenerator( /// Container to get possible loot for /// staticLoot.json /// ProbabilityObjectArray of item tpls + probability - protected ProbabilityObjectArray GetPossibleLootItemsForContainer( + protected ProbabilityObjectArray GetPossibleLootItemsForContainer( string containerTypeId, Dictionary staticLootDist ) @@ -708,7 +704,7 @@ public class LocationLootGenerator( var seasonalEventActive = _seasonalEventService.SeasonalEventEnabled(); var seasonalItemTplBlacklist = _seasonalEventService.GetInactiveSeasonalEventItems(); - var itemDistribution = new ProbabilityObjectArray(_cloner); + var itemDistribution = new ProbabilityObjectArray(_cloner); var itemContainerDistribution = staticLootDist[containerTypeId]?.ItemDistribution; if (itemContainerDistribution is null) @@ -738,7 +734,7 @@ public class LocationLootGenerator( } itemDistribution.Add( - new ProbabilityObject(icd.Tpl, icd.RelativeProbability.Value, null) + new ProbabilityObject(icd.Tpl, icd.RelativeProbability.Value, null) ); } diff --git a/Libraries/SPTarkov.Server.Core/Generators/LootGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/LootGenerator.cs index 8edc277e..d795b9f2 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/LootGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/LootGenerator.cs @@ -180,7 +180,7 @@ public class LootGenerator( /// /// Dictionary of item tpls with minmax values /// Array of Item - public List> CreateForcedLoot(Dictionary> forcedLootToAdd) + public List> CreateForcedLoot(Dictionary> forcedLootToAdd) { var result = new List>(); diff --git a/Libraries/SPTarkov.Server.Core/Generators/PMCLootGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/PMCLootGenerator.cs index b26449db..807e500b 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/PMCLootGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/PMCLootGenerator.cs @@ -25,9 +25,9 @@ public class PMCLootGenerator( private readonly PmcConfig _pmcConfig = configServer.GetConfig(); // Store loot against its type, usec/bear - private readonly Dictionary>? _backpackLootPool = []; - private readonly Dictionary>? _pocketLootPool = []; - private readonly Dictionary>? _vestLootPool = []; + private readonly Dictionary>? _backpackLootPool = []; + private readonly Dictionary>? _pocketLootPool = []; + private readonly Dictionary>? _vestLootPool = []; protected readonly Lock BackpackLock = new(); protected readonly Lock PocketLock = new(); @@ -38,7 +38,7 @@ public class PMCLootGenerator( /// /// Role of PMC having loot generated (bear or usec) /// Dictionary of string and number - public Dictionary GeneratePMCPocketLootPool(string pmcRole) + public Dictionary GeneratePMCPocketLootPool(string pmcRole) { lock (PocketLock) { @@ -72,7 +72,7 @@ public class PMCLootGenerator( /// /// Role of PMC having loot generated (bear or usec) /// Dictionary item template ids and a weighted chance of being picked - public Dictionary GeneratePMCVestLootPool(string pmcRole) + public Dictionary GeneratePMCVestLootPool(string pmcRole) { lock (VestLock) { @@ -107,7 +107,7 @@ public class PMCLootGenerator( /// /// Role of PMC having loot generated (bear or usec) /// Dictionary of string and number - public Dictionary GeneratePMCBackpackLootPool(string pmcRole) + public Dictionary GeneratePMCBackpackLootPool(string pmcRole) { lock (BackpackLock) { @@ -137,14 +137,14 @@ public class PMCLootGenerator( /// Item and parent blacklist /// An optional delegate to validate the TemplateItem object being processed /// Dictionary of items and weights inversely tied to the items price - protected Dictionary GenerateLootPool( + protected Dictionary GenerateLootPool( string pmcRole, HashSet allowedItemTypeWhitelist, HashSet itemTplAndParentBlacklist, Func? genericItemCheck ) { - var lootPool = new Dictionary(); + var lootPool = new Dictionary(); var items = databaseService.GetItems(); // Grab price overrides if they exist for the pmcRole passed in @@ -207,7 +207,7 @@ public class PMCLootGenerator( /// /// role of PMC to look up /// Dictionary of overrides - protected Dictionary? GetPMCPriceOverrides(string pmcRole) + protected Dictionary? GetPMCPriceOverrides(string pmcRole) { var pmcType = string.Equals(pmcRole, "pmcbear", StringComparison.OrdinalIgnoreCase) ? "bear" @@ -229,7 +229,10 @@ public class PMCLootGenerator( /// Item tpl to get price of /// /// Rouble price - protected double GetItemPrice(string tpl, Dictionary? pmcPriceOverrides = null) + protected double GetItemPrice( + MongoId tpl, + Dictionary? pmcPriceOverrides = null + ) { if ( pmcPriceOverrides is not null diff --git a/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs index 0183727d..cc1dabb1 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs @@ -80,7 +80,7 @@ public class PlayerScavGenerator( var scavData = _botGenerator.GeneratePlayerScav( sessionID, - playerScavKarmaSettings.BotTypeForLoot.ToLower(), + playerScavKarmaSettings.BotTypeForLoot.ToLowerInvariant(), "easy", baseBotNode, pmcDataClone @@ -113,12 +113,12 @@ public class PlayerScavGenerator( scavData.Quests = existingScavDataClone.Quests ?? []; scavData.TaskConditionCounters = existingScavDataClone.TaskConditionCounters - ?? new Dictionary(); + ?? new Dictionary(); scavData.Notes = existingScavDataClone.Notes ?? new Notes { DataNotes = new List() }; scavData.WishList = existingScavDataClone.WishList - ?? new DictionaryOrList(new Dictionary(), new List()); - scavData.Encyclopedia = pmcDataClone.Encyclopedia ?? new Dictionary(); + ?? new DictionaryOrList(new Dictionary(), []); + scavData.Encyclopedia = pmcDataClone.Encyclopedia ?? new Dictionary(); // Add additional items to player scav as loot AddAdditionalLootToPlayerScavContainers( diff --git a/Libraries/SPTarkov.Server.Core/Generators/PmcWaveGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/PmcWaveGenerator.cs index c7cef048..36d7e9c5 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/PmcWaveGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/PmcWaveGenerator.cs @@ -58,7 +58,12 @@ public class PmcWaveGenerator( /// Location Object public void ApplyWaveChangesToMap(LocationBase location) { - if (!_pmcConfig.CustomPmcWaves.TryGetValue(location.Id.ToLower(), out var pmcWavesToAdd)) + if ( + !_pmcConfig.CustomPmcWaves.TryGetValue( + location.Id.ToLowerInvariant(), + out var pmcWavesToAdd + ) + ) { return; } diff --git a/Libraries/SPTarkov.Server.Core/Generators/RagfairAssortGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/RagfairAssortGenerator.cs index e7a179ce..9ecfef97 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/RagfairAssortGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/RagfairAssortGenerator.cs @@ -1,19 +1,18 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; -using SPTarkov.Server.Core.Utils; using SPTarkov.Server.Core.Utils.Cloners; namespace SPTarkov.Server.Core.Generators; [Injectable] public class RagfairAssortGenerator( - HashUtil hashUtil, ItemHelper itemHelper, PresetHelper presetHelper, SeasonalEventService seasonalEventService, @@ -23,7 +22,7 @@ public class RagfairAssortGenerator( { protected readonly RagfairConfig RagfairConfig = configServer.GetConfig(); - protected readonly List RagfairItemInvalidBaseTypes = + protected readonly List RagfairItemInvalidBaseTypes = [ BaseClasses.LOOT_CONTAINER, // Safe, barrel cache etc BaseClasses.STASH, // Player inventory stash @@ -133,16 +132,16 @@ public class RagfairAssortGenerator( /// tplid to add to item /// id to add to item /// Hydrated Item object - protected Item CreateRagfairAssortRootItem(string tplId, string? id = null) + protected Item CreateRagfairAssortRootItem(MongoId tplId, MongoId? id = null) { if (string.IsNullOrEmpty(id)) { - id = hashUtil.Generate(); + id = new MongoId(); } return new Item { - Id = id, + Id = id.Value, Template = tplId, ParentId = "hideout", SlotId = "hideout", diff --git a/Libraries/SPTarkov.Server.Core/Generators/RagfairOfferGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/RagfairOfferGenerator.cs index 1ba5167d..39391472 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/RagfairOfferGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/RagfairOfferGenerator.cs @@ -2,6 +2,7 @@ using System.Diagnostics; using SPTarkov.Common.Extensions; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Ragfair; using SPTarkov.Server.Core.Models.Enums; @@ -148,7 +149,7 @@ public class RagfairOfferGenerator( var offer = new RagfairOffer { - Id = hashUtil.Generate(), + Id = new MongoId(), InternalId = offerCounter, User = CreateUserDataForFleaOffer(userId, ragfairServerHelper.IsTrader(userId)), Root = rootItem.Id, @@ -467,7 +468,7 @@ public class RagfairOfferGenerator( clonedAssort[0].SlotId = null; CreateSingleOfferForItem( - hashUtil.Generate(), + new MongoId(), clonedAssort, isPreset, itemToSellDetails.Value, @@ -494,7 +495,9 @@ public class RagfairOfferGenerator( } var plateSlots = presetWithChildren - .Where(item => itemHelper.GetRemovablePlateSlotIds().Contains(item.SlotId?.ToLower())) + .Where(item => + itemHelper.GetRemovablePlateSlotIds().Contains(item.SlotId?.ToLowerInvariant()) + ) .ToList(); if (plateSlots.Count == 0) // Has no plate slots e.g. "front_plate", exit @@ -506,7 +509,7 @@ public class RagfairOfferGenerator( foreach (var plateSlot in plateSlots) { var plateDetails = itemHelper.GetItem(plateSlot.Template).Value; - if (plateSettings.IgnoreSlots.Contains(plateSlot.SlotId.ToLower())) + if (plateSettings.IgnoreSlots.Contains(plateSlot.SlotId.ToLowerInvariant())) { continue; } @@ -630,7 +633,7 @@ public class RagfairOfferGenerator( } var offerItemPlatesToRemove = itemWithChildren.Where(item => - armorConfig.PlateSlotIdToRemovePool.Contains(item.SlotId?.ToLower()) + armorConfig.PlateSlotIdToRemovePool.Contains(item.SlotId?.ToLowerInvariant()) ); // Latest first, to ensure we don't move later items off by 1 each time we remove an item below it @@ -783,7 +786,7 @@ public class RagfairOfferGenerator( /// /// Item to look for matching condition object /// Condition ID - protected string? GetDynamicConditionIdForTpl(string tpl) + protected string? GetDynamicConditionIdForTpl(MongoId tpl) { // Get keys from condition config dictionary var configConditions = ragfairConfig.Dynamic.Condition.Keys; diff --git a/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/CompletionQuestGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/CompletionQuestGenerator.cs index f4b75f96..a0311145 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/CompletionQuestGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/CompletionQuestGenerator.cs @@ -6,7 +6,6 @@ using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Models.Spt.Repeatable; using SPTarkov.Server.Core.Models.Utils; -using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; using SPTarkov.Server.Core.Utils; using SPTarkov.Server.Core.Utils.Json; @@ -21,23 +20,20 @@ public class CompletionQuestGenerator( DatabaseService databaseService, SeasonalEventService seasonalEventService, ServerLocalisationService localisationService, - ConfigServer configServer, RandomUtil randomUtil, MathUtil mathUtil, - HashUtil hashUtil, ItemHelper itemHelper ) : IRepeatableQuestGenerator { protected const int MaxRandomNumberAttempts = 6; - protected QuestConfig QuestConfig = configServer.GetConfig(); - /// /// Generates a valid Completion quest /// /// session Id to generate the quest for /// player's level for requested items and reward generation /// trader from which the quest will be provided + /// /// /// The configuration for the repeatably kind (daily, weekly) as configured in QuestConfig /// for the requested quest @@ -398,7 +394,7 @@ public class CompletionQuestGenerator( /// Completion config from quest.json /// object of "Completion"-condition protected QuestCondition GenerateCondition( - string itemTpl, + MongoId itemTpl, double value, Completion completionConfig ) @@ -424,7 +420,7 @@ public class CompletionQuestGenerator( return new QuestCondition { - Id = hashUtil.Generate(), + Id = new MongoId(), Index = 0, ParentId = "", DynamicLocale = true, diff --git a/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/EliminationQuestGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/EliminationQuestGenerator.cs index 18ccf319..a98462da 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/EliminationQuestGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/EliminationQuestGenerator.cs @@ -21,7 +21,6 @@ namespace SPTarkov.Server.Core.Generators.RepeatableQuestGeneration; public class EliminationQuestGenerator( ISptLogger logger, RandomUtil randomUtil, - HashUtil hashUtil, MathUtil mathUtil, RepeatableQuestHelper repeatableQuestHelper, ItemHelper itemHelper, @@ -277,7 +276,7 @@ public class EliminationQuestGenerator( } var availableForFinishCondition = quest.Conditions.AvailableForFinish![0]; - availableForFinishCondition.Counter!.Id = hashUtil.Generate(); + availableForFinishCondition.Counter!.Id = new MongoId(); availableForFinishCondition.Counter.Conditions = []; // Only add specific location condition if specific map selected @@ -299,7 +298,7 @@ public class EliminationQuestGenerator( ) ); availableForFinishCondition.Value = desiredKillCount; - availableForFinishCondition.Id = hashUtil.Generate(); + availableForFinishCondition.Id = new MongoId(); // Get the quest location, default to any if none exist quest.Location = repeatableQuestHelper.GetQuestLocationByMapId(locationKey) ?? "any"; @@ -744,7 +743,7 @@ public class EliminationQuestGenerator( { return new QuestConditionCounterCondition { - Id = hashUtil.Generate(), + Id = new MongoId(), DynamicLocale = true, Target = new ListOrT(location, null), ConditionType = "Location", @@ -770,7 +769,7 @@ public class EliminationQuestGenerator( { var killConditionProps = new QuestConditionCounterCondition { - Id = hashUtil.Generate(), + Id = new MongoId(), DynamicLocale = true, Target = new ListOrT(null, target), // e,g, "AnyPmc" Value = 1, diff --git a/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/ExplorationQuestGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/ExplorationQuestGenerator.cs index dbe026e6..8ac2f873 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/ExplorationQuestGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/ExplorationQuestGenerator.cs @@ -7,7 +7,6 @@ using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Models.Spt.Repeatable; using SPTarkov.Server.Core.Models.Utils; -using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; using SPTarkov.Server.Core.Utils; using SPTarkov.Server.Core.Utils.Json; @@ -21,10 +20,8 @@ public class ExplorationQuestGenerator( RepeatableQuestRewardGenerator repeatableQuestRewardGenerator, DatabaseService databaseService, ServerLocalisationService localisationService, - ConfigServer configServer, RandomUtil randomUtil, - MathUtil mathUtil, - HashUtil hashUtil + MathUtil mathUtil ) : IRepeatableQuestGenerator { protected record LocationInfo( @@ -34,8 +31,6 @@ public class ExplorationQuestGenerator( int NumOfExtractsRequired ); - protected QuestConfig QuestConfig = configServer.GetConfig(); - /// /// Generates a valid Exploration quest /// @@ -216,7 +211,7 @@ public class ExplorationQuestGenerator( /// List of Exit objects protected List? GetLocationExitsForSide(string locationKey, PlayerGroup playerGroup) { - var mapExtracts = databaseService.GetLocation(locationKey.ToLower())?.AllExtracts; + var mapExtracts = databaseService.GetLocation(locationKey.ToLowerInvariant())?.AllExtracts; return mapExtracts?.Where(exit => exit.Side == Enum.GetName(playerGroup)).ToList(); } @@ -254,7 +249,7 @@ public class ExplorationQuestGenerator( var exitStatusCondition = new QuestConditionCounterCondition { - Id = hashUtil.Generate(), + Id = new MongoId(), DynamicLocale = true, Status = ["Survived"], ConditionType = "ExitStatus", @@ -262,20 +257,20 @@ public class ExplorationQuestGenerator( var locationCondition = new QuestConditionCounterCondition { - Id = hashUtil.Generate(), + Id = new MongoId(), DynamicLocale = true, Target = new ListOrT(locationInfo.LocationTarget, null), ConditionType = "Location", }; - quest.Conditions.AvailableForFinish![0].Counter!.Id = hashUtil.Generate(); + quest.Conditions.AvailableForFinish![0].Counter!.Id = new MongoId(); quest.Conditions.AvailableForFinish![0].Counter!.Conditions = [ exitStatusCondition, locationCondition, ]; quest.Conditions.AvailableForFinish[0].Value = locationInfo.NumOfExtractsRequired; - quest.Conditions.AvailableForFinish[0].Id = hashUtil.Generate(); + quest.Conditions.AvailableForFinish[0].Id = new MongoId(); quest.Location = location; @@ -357,7 +352,7 @@ public class ExplorationQuestGenerator( { return new QuestConditionCounterCondition { - Id = hashUtil.Generate(), + Id = new MongoId(), DynamicLocale = true, ExitName = exit.Name, ConditionType = "ExitName", diff --git a/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/RepeatableQuestRewardGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/RepeatableQuestRewardGenerator.cs index 294ae605..88deb6cf 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/RepeatableQuestRewardGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGeneration/RepeatableQuestRewardGenerator.cs @@ -20,7 +20,6 @@ namespace SPTarkov.Server.Core.Generators.RepeatableQuestGeneration; public class RepeatableQuestRewardGenerator( ISptLogger logger, RandomUtil randomUtil, - HashUtil hashUtil, MathUtil mathUtil, DatabaseService databaseService, ItemHelper itemHelper, @@ -95,7 +94,7 @@ public class RepeatableQuestRewardGenerator( rewards.Success.Add( new Reward { - Id = hashUtil.Generate(), + Id = new MongoId(), Unknown = false, GameMode = [], AvailableInGameEditions = [], @@ -193,7 +192,7 @@ public class RepeatableQuestRewardGenerator( { Reward reward = new() { - Id = hashUtil.Generate(), + Id = new MongoId(), Unknown = false, GameMode = [], AvailableInGameEditions = [], @@ -219,7 +218,7 @@ public class RepeatableQuestRewardGenerator( var targetSkill = randomUtil.GetArrayValue(eliminationConfig.PossibleSkillRewards); Reward reward = new() { - Id = hashUtil.Generate(), + Id = new MongoId(), Unknown = false, GameMode = [], AvailableInGameEditions = [], @@ -657,17 +656,17 @@ public class RepeatableQuestRewardGenerator( /// If generated Item is found in raid, default True /// Object of "Reward"-item-type protected Reward GeneratePresetReward( - string tpl, + MongoId tpl, int count, int index, List? preset, bool foundInRaid = true ) { - var id = hashUtil.Generate(); + var id = new MongoId(); var questRewardItem = new Reward { - Id = hashUtil.Generate(), + Id = new MongoId(), Unknown = false, GameMode = [], AvailableInGameEditions = [], @@ -713,10 +712,10 @@ public class RepeatableQuestRewardGenerator( bool foundInRaid = true ) { - var id = hashUtil.Generate(); + var id = new MongoId(); var questRewardItem = new Reward { - Id = hashUtil.Generate(), + Id = new MongoId(), Unknown = false, GameMode = [], AvailableInGameEditions = [], @@ -819,7 +818,7 @@ public class RepeatableQuestRewardGenerator( /// Default null, specific trader item base classes /// True if item is valid reward public bool IsValidRewardItem( - string tpl, + MongoId tpl, HashSet itemTplBlacklist, HashSet itemTypeBlacklist, List? itemBaseWhitelist = null diff --git a/Libraries/SPTarkov.Server.Core/Helpers/AssortHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/AssortHelper.cs index 62991d86..07920999 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/AssortHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/AssortHelper.cs @@ -4,7 +4,6 @@ using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Utils; -using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; namespace SPTarkov.Server.Core.Helpers; @@ -12,10 +11,7 @@ namespace SPTarkov.Server.Core.Helpers; [Injectable] public class AssortHelper( ISptLogger _logger, - ItemHelper _itemHelper, - DatabaseServer _databaseServer, - ServerLocalisationService _serverLocalisationService, - QuestHelper _questHelper + ServerLocalisationService _serverLocalisationService ) { /// @@ -58,10 +54,7 @@ public class AssortHelper( } // Remove assort if quest in profile does not have status that unlocks assort - var questStatusInProfile = _questHelper.GetQuestStatus( - pmcProfile, - unlockValues.Value.Key - ); + var questStatusInProfile = pmcProfile.GetQuestStatus(unlockValues.Value.Key); if (!unlockValues.Value.Value.Contains(questStatusInProfile)) { strippedTraderAssorts = traderAssorts.RemoveItemFromAssort(assortId.Key, isFlea); diff --git a/Libraries/SPTarkov.Server.Core/Helpers/BotDifficultyHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/BotDifficultyHelper.cs index 01c43f36..3d8aca50 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/BotDifficultyHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/BotDifficultyHelper.cs @@ -37,8 +37,8 @@ public class BotDifficultyHelper( ) { var desiredType = _botHelper.IsBotPmc(type) - ? _botHelper.GetPmcSideByRole(type).ToLower() - : type.ToLower(); + ? _botHelper.GetPmcSideByRole(type).ToLowerInvariant() + : type.ToLowerInvariant(); if (!botDb.Types.ContainsKey(desiredType)) { // No bot found, get fallback difficulty values @@ -85,7 +85,7 @@ public class BotDifficultyHelper( StringComparison.OrdinalIgnoreCase ) ? difficulty - : _pmcConfig.Difficulty.ToLower(); + : _pmcConfig.Difficulty.ToLowerInvariant(); difficultySetting = ConvertBotDifficultyDropdownToBotDifficulty(difficultySetting); @@ -101,14 +101,14 @@ public class BotDifficultyHelper( /// bot difficulty public string ConvertBotDifficultyDropdownToBotDifficulty(string dropDownDifficulty) { - switch (dropDownDifficulty.ToLower()) + switch (dropDownDifficulty.ToLowerInvariant()) { case "medium": return "normal"; case "random": return ChooseRandomDifficulty(); default: - return dropDownDifficulty.ToLower(); + return dropDownDifficulty.ToLowerInvariant(); } } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/BotGeneratorHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/BotGeneratorHelper.cs index 59f57a90..d3b06214 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/BotGeneratorHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/BotGeneratorHelper.cs @@ -2,6 +2,7 @@ using System.Collections.Frozen; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Constants; using SPTarkov.Server.Core.Extensions; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Bots; @@ -21,7 +22,6 @@ public class BotGeneratorHelper( DurabilityLimitsHelper _durabilityLimitsHelper, ItemHelper _itemHelper, InventoryHelper _inventoryHelper, - ContainerHelper _containerHelper, ProfileActivityService _profileActivityService, ServerLocalisationService _serverLocalisationService, ConfigServer _configServer @@ -37,7 +37,11 @@ public class BotGeneratorHelper( EquipmentSlots.ArmBand.ToString(), ]; - private static readonly string[] _pmcTypes = [Sides.PmcBear.ToLower(), Sides.PmcUsec.ToLower()]; + private static readonly string[] _pmcTypes = + [ + Sides.PmcBear.ToLowerInvariant(), + Sides.PmcUsec.ToLowerInvariant(), + ]; private readonly BotConfig _botConfig = _configServer.GetConfig(); @@ -382,7 +386,7 @@ public class BotGeneratorHelper( /// false if no incompatibilities, also has incompatibility reason public ChooseRandomCompatibleModResult IsItemIncompatibleWithCurrentItems( List itemsEquipped, - string tplToCheck, + MongoId tplToCheck, string equipmentSlot ) { @@ -596,15 +600,15 @@ public class BotGeneratorHelper( /// /// Slot to add item+children into /// Root item id to use as mod items parentId - /// Root itms tpl id + /// Root items tpl id /// Item to add /// Inventory to add item+children into /// /// ItemAddedResult result object public ItemAddedResult AddItemWithChildrenToEquipmentSlot( HashSet equipmentSlots, - string rootItemId, - string? rootItemTplId, + MongoId rootItemId, + MongoId rootItemTplId, List itemWithChildren, BotBaseInventory inventory, HashSet? containersIdFull = null @@ -665,7 +669,7 @@ public class BotGeneratorHelper( } // Get x/y grid size of item - var itemSize = _inventoryHelper.GetItemSize( + var (itemWidth, itemHeight) = _inventoryHelper.GetItemSize( rootItemTplId, rootItemId, itemWithChildren @@ -680,7 +684,7 @@ public class BotGeneratorHelper( if ( slotGrid.Props?.CellsH == 0 || slotGrid.Props?.CellsV == 0 - || itemSize[0] * itemSize[1] > slotGrid.Props?.CellsV * slotGrid.Props?.CellsH + || itemWidth * itemHeight > slotGrid.Props?.CellsV * slotGrid.Props?.CellsH ) { continue; @@ -718,11 +722,7 @@ public class BotGeneratorHelper( ); // Try to fit item into grid - var findSlotResult = _containerHelper.FindSlotForItem( - slotGridMap, - itemSize[0], - itemSize[1] - ); + var findSlotResult = slotGridMap.FindSlotForItem(itemWidth, itemHeight); // Free slot found, add item if (findSlotResult.Success ?? false) @@ -768,7 +768,7 @@ public class BotGeneratorHelper( } // if the item was a one by one, we know it must be full. Or if the maps cant find a slot for a one by one - if (itemSize[0] == 1 && itemSize[1] == 1) + if (itemWidth == 1 && itemHeight == 1) { containersIdFull.Add(equipmentSlotId.ToString()); } @@ -796,7 +796,7 @@ public class BotGeneratorHelper( } // Filter out all items without location prop, (child items) - var itemsWithoutLocation = inventoryItems.Where(item => item.Location is null).ToList(); + var itemsWithoutLocation = inventoryItems.Where(item => item.Location is null); foreach (var rootItem in containerRootItems) { // Check item in container for children, store for later insertion into `containerItemsToCheck` @@ -817,7 +817,7 @@ public class BotGeneratorHelper( /// Items sub-grid we want to place item inside /// Item tpl being placed /// True if allowed - protected bool ItemAllowedInContainer(Grid? slotGrid, string? itemTpl) + protected bool ItemAllowedInContainer(Grid? slotGrid, MongoId itemTpl) { var propFilters = slotGrid?.Props?.Filters; var excludedFilter = propFilters?.FirstOrDefault()?.ExcludedFilter ?? []; diff --git a/Libraries/SPTarkov.Server.Core/Helpers/BotHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/BotHelper.cs index 9796d67f..5bcf545f 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/BotHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/BotHelper.cs @@ -22,10 +22,10 @@ public class BotHelper( { private static readonly FrozenSet _pmcTypeIds = [ - Sides.Usec.ToLower(), - Sides.Bear.ToLower(), - Sides.PmcBear.ToLower(), - Sides.PmcUsec.ToLower(), + Sides.Usec.ToLowerInvariant(), + Sides.Bear.ToLowerInvariant(), + Sides.PmcBear.ToLowerInvariant(), + Sides.PmcUsec.ToLowerInvariant(), ]; private readonly BotConfig _botConfig = _configServer.GetConfig(); @@ -39,7 +39,7 @@ public class BotHelper( /// BotType object public BotType? GetBotTemplate(string role) { - if (!_databaseService.GetBots().Types.TryGetValue(role?.ToLower(), out var bot)) + if (!_databaseService.GetBots().Types.TryGetValue(role?.ToLowerInvariant(), out var bot)) { _logger.Error($"Unable to get bot of type: {role} from DB"); @@ -56,7 +56,7 @@ public class BotHelper( /// true if is pmc public bool IsBotPmc(string? botRole) { - return _pmcTypeIds.Contains(botRole?.ToLower()); + return _pmcTypeIds.Contains(botRole?.ToLowerInvariant()); } public bool IsBotBoss(string botRole) @@ -135,10 +135,10 @@ public class BotHelper( { HashSet listToCheck = [ - _pmcConfig.UsecType.ToLower(), - _pmcConfig.BearType.ToLower(), + _pmcConfig.UsecType.ToLowerInvariant(), + _pmcConfig.BearType.ToLowerInvariant(), ]; - return listToCheck.Contains(botRole.ToLower()); + return listToCheck.Contains(botRole.ToLowerInvariant()); } /// @@ -227,7 +227,7 @@ public class BotHelper( ) { _logger.Error($"Unknown faction: {chosenFaction} Defaulting to: {Sides.Usec}"); - chosenFaction = Sides.Usec.ToLower(); + chosenFaction = Sides.Usec.ToLowerInvariant(); chosenFactionDetails = _databaseService.GetBots().Types[chosenFaction]; } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/BotWeaponGeneratorHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/BotWeaponGeneratorHelper.cs index 4f9287b8..0a74bb08 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/BotWeaponGeneratorHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/BotWeaponGeneratorHelper.cs @@ -34,10 +34,11 @@ public class BotWeaponGeneratorHelper( double? chamberBulletCount = 0; if (MagazineIsCylinderRelated(parentItem.Name)) { - var firstSlotAmmoTpl = magTemplate - .Properties.Cartridges.FirstOrDefault() - ?.Props.Filters[0] - .Filter.FirstOrDefault(); + var firstSlotAmmoTpl = + magTemplate + .Properties.Cartridges.FirstOrDefault() + ?.Props.Filters[0] + .Filter.FirstOrDefault() ?? new MongoId(null); var ammoMaxStackSize = _itemHelper.GetItem(firstSlotAmmoTpl).Value?.Properties?.StackMaxSize ?? 1; chamberBulletCount = diff --git a/Libraries/SPTarkov.Server.Core/Helpers/ContainerHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/ContainerHelper.cs deleted file mode 100644 index 7e99615f..00000000 --- a/Libraries/SPTarkov.Server.Core/Helpers/ContainerHelper.cs +++ /dev/null @@ -1,211 +0,0 @@ -using System.Text.Json.Serialization; -using SPTarkov.DI.Annotations; - -namespace SPTarkov.Server.Core.Helpers; - -[Injectable] -public class ContainerHelper -{ - /// - /// Finds a slot for an item in a given 2D container map - /// - /// List of container with positions filled/free - /// Width of item - /// Height of item - /// Location to place item in container - public FindSlotResult FindSlotForItem(int[][] container2D, int? itemX, int? itemY) - { - // Assume not rotated - var rotation = false; - - var minVolume = (itemX < itemY ? itemX : itemY) - 1; - var containerY = container2D.Length; - var containerX = container2D[0].Length; - var limitY = containerY - minVolume; - var limitX = containerX - minVolume; - - // Every x+y slot taken up in container, exit - if (container2D.All(x => x.All(y => y == 1))) - { - return new FindSlotResult(false); - } - - // Down = y - for (var y = 0; y < limitY; y++) - { - if (container2D[y].All(x => x == 1)) - // Every item in row is full, skip row - { - continue; - } - - // Go left to right across x-axis looking for free position - for (var x = 0; x < limitX; x++) - { - if ( - CanItemBePlacedInContainerAtPosition( - container2D, - containerX, - containerY, - x, - y, - itemX!.Value, - itemY!.Value - ) - ) - { - // Success, return result - return new FindSlotResult(true, x, y, rotation); - } - - if (ItemBiggerThan1X1(itemX!.Value, itemY!.Value)) - { - // Pointless rotating a 1x1, try next position across - continue; - } - - // Bigger than 1x1, try rotating by swapping x and y values - if ( - !CanItemBePlacedInContainerAtPosition( - container2D, - containerX, - containerY, - x, - y, - itemY!.Value, - itemX!.Value - ) - ) - { - continue; - } - - // Found a position for item when rotated - rotation = true; - - return new FindSlotResult(true, x, y, rotation); - } - } - - // Tried all possible positions, nothing big enough for item - return new FindSlotResult(false); - } - - protected static bool ItemBiggerThan1X1(int itemWidth, int itemHeight) - { - return itemWidth + itemHeight > 2; - } - - /// - /// Can an item of specified size be placed inside a 2d container at a specific position - /// - /// Container to find space in - /// Container x size - /// Container y size - /// Starting x position for item - /// Starting y position for item - /// Items width - /// Items height - /// True - slot found - protected bool CanItemBePlacedInContainerAtPosition( - int[][] container, - int containerWidth, - int containerHeight, - int startXPos, - int startYPos, - int itemWidth, - int itemHeight - ) - { - // Check item isn't bigger than container when at position - if (startXPos + itemWidth > containerWidth || startYPos + itemHeight > containerHeight) - { - return false; - } - - // Check each position item will take up in container, go across and then down - for (var itemY = startYPos; itemY < startYPos + itemHeight; itemY++) - { - for (var itemX = startXPos; itemX < startXPos + itemWidth; itemX++) - { - // e,g for a 2x2 item; [0,0] then [0,1] then [1,0] then [1,1] - if (container[itemY][itemX] != 0) - { - // x,y Position blocked, can't place - return false; - } - } - } - - return true; - } - - /// - /// Find a free slot for an item to be placed at - /// - /// Container to place item in - /// Container x size - /// Container y size - /// Items width - /// Items height - /// is item rotated - public void FillContainerMapWithItem( - int[][] container2D, - int x, - int y, - int? itemW, - int? itemH, - bool rotate - ) - { - // Swap height/width if we want to fit it in rotated - var itemWidth = rotate ? itemH : itemW; - var itemHeight = rotate ? itemW : itemH; - - for (var tmpY = y; tmpY < y + itemHeight; tmpY++) - for (var tmpX = x; tmpX < x + itemWidth; tmpX++) - { - if (container2D[tmpY][tmpX] == 0) - // Flag slot as used - { - container2D[tmpY][tmpX] = 1; - } - else - { - throw new Exception( - $"Slot at({x}, {y}) is already filled. Cannot fit a {itemW} by {itemH} item" - ); - } - } - } -} - -public class FindSlotResult -{ - public FindSlotResult(bool success) - { - Success = success; - } - - public FindSlotResult(bool success, int x, int y, bool rotation) - { - Success = success; - X = x; - Y = y; - Rotation = rotation; - } - - public FindSlotResult() { } - - [JsonPropertyName("success")] - public bool? Success { get; set; } - - [JsonPropertyName("x")] - public int? X { get; set; } - - [JsonPropertyName("y")] - public int? Y { get; set; } - - [JsonPropertyName("rotation")] - public bool? Rotation { get; set; } -} diff --git a/Libraries/SPTarkov.Server.Core/Helpers/CounterTrackerHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/CounterTrackerHelper.cs index 955cd7d3..470cc767 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/CounterTrackerHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/CounterTrackerHelper.cs @@ -1,18 +1,19 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Helpers { [Injectable] public class CounterTrackerHelper { - private Dictionary _maxCounts = new(); - private readonly Dictionary _trackedCounts = new(); + private Dictionary _maxCounts = new(); + private readonly Dictionary _trackedCounts = new(); /// /// Add dictionary of keys and their matching limits to track /// /// Values to store - public void AddDataToTrack(Dictionary maxCounts) + public void AddDataToTrack(Dictionary maxCounts) { _maxCounts = maxCounts; } @@ -23,7 +24,7 @@ namespace SPTarkov.Server.Core.Helpers /// /// /// True = above max count - public bool IncrementCount(string key, int countToIncrementBy = 1) + public bool IncrementCount(MongoId key, int countToIncrementBy = 1) { // Not tracked, skip if (!_maxCounts.Any() || !_maxCounts.ContainsKey(key)) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/AbstractDialogChatBot.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/AbstractDialogChatBot.cs index 172f8507..462351a7 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/AbstractDialogChatBot.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/AbstractDialogChatBot.cs @@ -3,7 +3,6 @@ using SPTarkov.Server.Core.Models.Eft.Dialog; using SPTarkov.Server.Core.Models.Eft.Profile; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Services; -using SPTarkov.Server.Core.Utils.Callbacks; namespace SPTarkov.Server.Core.Helpers.Dialogue; @@ -20,7 +19,7 @@ public abstract class AbstractDialogChatBot( public abstract UserDialogInfo GetChatBot(); - public string? HandleMessage(string sessionId, SendMessageRequest request) + public async ValueTask HandleMessage(string sessionId, SendMessageRequest request) { if ((request.Text ?? "").Length == 0) { @@ -37,14 +36,14 @@ public abstract class AbstractDialogChatBot( && commando.GetCommands().Contains(splitCommand[1]) ) { - return commando.Handle(splitCommand[1], GetChatBot(), sessionId, request); + return await commando.Handle(splitCommand[1], GetChatBot(), sessionId, request); } if ( string.Equals(splitCommand.FirstOrDefault(), "help", StringComparison.OrdinalIgnoreCase) ) { - return SendPlayerHelpMessage(sessionId, request); + return await SendPlayerHelpMessage(sessionId, request); } _mailSendService.SendUserMessageToPlayer( @@ -55,10 +54,13 @@ public abstract class AbstractDialogChatBot( null ); - return null; + return string.Empty; } - protected string? SendPlayerHelpMessage(string sessionId, SendMessageRequest request) + protected async ValueTask SendPlayerHelpMessage( + string sessionId, + SendMessageRequest request + ) { _mailSendService.SendUserMessageToPlayer( sessionId, @@ -67,40 +69,34 @@ public abstract class AbstractDialogChatBot( [], null ); - // due to BSG being dumb with messages we need a mandatory timeout between messages so they get out on the right order - TimeoutCallback.RunInTimespan( - () => - { - foreach (var chatCommand in _chatCommands.Values) - { - _mailSendService.SendUserMessageToPlayer( - sessionId, - GetChatBot(), - $"Commands available for \"{chatCommand.GetCommandPrefix()}\" prefix:", - [], - null - ); + foreach (var chatCommand in _chatCommands.Values) + { + // due to BSG being dumb with messages we need a mandatory timeout between messages so they get out on the right order + await Task.Delay(TimeSpan.FromSeconds(1)); - TimeoutCallback.RunInTimespan( - () => - { - foreach (var subCommand in chatCommand.GetCommands()) - { - _mailSendService.SendUserMessageToPlayer( - sessionId, - GetChatBot(), - $"Subcommand {subCommand}:\n{chatCommand.GetCommandHelp(subCommand)}", - [], - null - ); - } - }, - TimeSpan.FromSeconds(1) - ); - } - }, - TimeSpan.FromSeconds(1) - ); + _mailSendService.SendUserMessageToPlayer( + sessionId, + GetChatBot(), + $"Commands available for \"{chatCommand.GetCommandPrefix()}\" prefix:", + [], + null + ); + + await Task.Delay(TimeSpan.FromSeconds(1)); + + foreach (var subCommand in chatCommand.GetCommands()) + { + _mailSendService.SendUserMessageToPlayer( + sessionId, + GetChatBot(), + $"Subcommand {subCommand}:\n{chatCommand.GetCommandHelp(subCommand)}", + [], + null + ); + + await Task.Delay(TimeSpan.FromSeconds(1)); + } + } return request.DialogId; } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/IChatCommand.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/IChatCommand.cs index e072bde6..9ae71c68 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/IChatCommand.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/IChatCommand.cs @@ -8,7 +8,7 @@ public interface IChatCommand public string GetCommandPrefix(); public string GetCommandHelp(string command); public List GetCommands(); - public string Handle( + public ValueTask Handle( string command, UserDialogInfo commandHandler, string sessionId, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommandoCommands.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommandoCommands.cs index cb94bf28..07c63547 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommandoCommands.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommandoCommands.cs @@ -50,14 +50,14 @@ public class SptCommandoCommands : IChatCommand return _sptCommands.Keys.ToList(); } - public string Handle( + public async ValueTask Handle( string command, UserDialogInfo commandHandler, string sessionId, SendMessageRequest request ) { - return _sptCommands[command].PerformAction(commandHandler, sessionId, request); + return await _sptCommands[command].PerformAction(commandHandler, sessionId, request); } public void RegisterSptCommandoCommand(ISptCommand command) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/GiveSptCommand.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/GiveSptCommand.cs index cada7a9b..2a86244d 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/GiveSptCommand.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/GiveSptCommand.cs @@ -52,7 +52,7 @@ public class GiveSptCommand( + "give [locale] [\"item name\"] [quantity]\n\t\tEx: spt give fr \"figurine de chat\" 3"; } - public string PerformAction( + public ValueTask PerformAction( UserDialogInfo commandHandler, string sessionId, SendMessageRequest request @@ -65,7 +65,7 @@ public class GiveSptCommand( commandHandler, "Invalid use of give command. Use 'help' for more information." ); - return request.DialogId; + return new ValueTask(request.DialogId); } var result = _commandRegex.Match(request.Text); @@ -86,7 +86,7 @@ public class GiveSptCommand( commandHandler, "Invalid use of give command. Use 'help' for more information." ); - return request.DialogId; + return new ValueTask(request.DialogId); } _savedCommand.TryGetValue(sessionId, out var savedCommand); @@ -98,7 +98,7 @@ public class GiveSptCommand( commandHandler, "Invalid selection. Outside of bounds! Use 'help' for more information." ); - return request.DialogId; + return new ValueTask(request.DialogId); } item = savedCommand.PotentialItemNames[locationSixValue - 1]; @@ -128,7 +128,7 @@ public class GiveSptCommand( commandHandler, "Invalid quantity! Must be 1 or higher. Use 'help' for more information." ); - return request.DialogId; + return new ValueTask(request.DialogId); } if (isItemName) @@ -157,7 +157,7 @@ public class GiveSptCommand( .Select(i => localizedGlobal .GetValueOrDefault($"{i.Id} Name", i.Properties.Name) - ?.ToLower() + ?.ToLowerInvariant() ) .Where(i => !string.IsNullOrEmpty(i)); @@ -197,7 +197,7 @@ public class GiveSptCommand( $"Could not find exact match. Closest are:\n{string.Join("\n", itemList)}\n\nUse 'spt give [above number]' to select one." ); - return request.DialogId; + return new ValueTask(request.DialogId); } } } @@ -210,7 +210,8 @@ public class GiveSptCommand( .GetItems() .Where(IsItemAllowed) .FirstOrDefault(i => - (localizedGlobal[$"{i?.Id} Name"]?.ToLower() ?? i.Properties.Name) == item + (localizedGlobal[$"{i?.Id} Name"]?.ToLowerInvariant() ?? i.Properties.Name) + == item ) .Id : item; @@ -223,7 +224,7 @@ public class GiveSptCommand( commandHandler, "That item could not be found. Please refine your request and try again." ); - return request.DialogId; + return new ValueTask(request.DialogId); } List itemsToSend = []; @@ -285,7 +286,7 @@ public class GiveSptCommand( "Too many items requested. Please lower the amount and try again." ); - return request.DialogId; + return new ValueTask(request.DialogId); } } } @@ -299,7 +300,7 @@ public class GiveSptCommand( itemsToSend ); - return request.DialogId; + return new ValueTask(request.DialogId); } /// diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/StringSimilarity.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/StringSimilarity.cs index b19e849b..dc59af7d 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/StringSimilarity.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/StringSimilarity.cs @@ -14,8 +14,8 @@ public static class StringSimilarity { if (!caseSensitive) { - str1 = str1.ToLower(); - str2 = str2.ToLower(); + str1 = str1.ToLowerInvariant(); + str2 = str2.ToLowerInvariant(); } if (str1.Length < substringLength || str2.Length < substringLength) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ISptCommand.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ISptCommand.cs index d054e09b..a97fb9c8 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ISptCommand.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ISptCommand.cs @@ -7,7 +7,7 @@ public interface ISptCommand { public string GetCommand(); public string GetCommandHelp(); - public string PerformAction( + public ValueTask PerformAction( UserDialogInfo commandHandler, string sessionId, SendMessageRequest request diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ProfileCommand/ProfileSptCommand.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ProfileCommand/ProfileSptCommand.cs index b81eeef2..3f8ff992 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ProfileCommand/ProfileSptCommand.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ProfileCommand/ProfileSptCommand.cs @@ -9,14 +9,12 @@ using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Dialog; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Services; -using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Helpers.Dialogue.Commando.SptCommands.ProfileCommand; [Injectable] public class ProfileSptCommand( ISptLogger _logger, - HashUtil _hashUtil, MailSendService _mailSendService, ProfileHelper _profileHelper ) : ISptCommand @@ -44,7 +42,7 @@ public class ProfileSptCommand( + "spt profile skill metabolism 51"; } - public string PerformAction( + public ValueTask PerformAction( UserDialogInfo commandHandler, string sessionId, SendMessageRequest request @@ -60,7 +58,7 @@ public class ProfileSptCommand( commandHandler, "Invalid use of trader command. Use 'help' for more information." ); - return request.DialogId; + return new ValueTask(request.DialogId); } var result = _commandRegex.Match(request.Text); @@ -84,7 +82,7 @@ public class ProfileSptCommand( commandHandler, "Invalid use of profile command, the level was outside bounds: 1 to 70. Use 'help' for more information." ); - return request.DialogId; + return new ValueTask(request.DialogId); } profileChangeEvent = HandleLevelCommand(quantity); @@ -104,7 +102,7 @@ public class ProfileSptCommand( commandHandler, "Invalid use of profile command, the skill was not found. Use 'help' for more information." ); - return request.DialogId; + return new ValueTask(request.DialogId); } if (quantity is < 0 or > 51) @@ -114,7 +112,7 @@ public class ProfileSptCommand( commandHandler, "Invalid use of profile command, the skill level was outside bounds: 1 to 51. Use 'help' for more information." ); - return request.DialogId; + return new ValueTask(request.DialogId); } profileChangeEvent = HandleSkillCommand(enumSkill, quantity); @@ -131,7 +129,7 @@ public class ProfileSptCommand( commandHandler, $"If you are reading this, this is bad. Please report this to SPT staff with a screenshot. Command: {command}." ); - return request.DialogId; + return new ValueTask(request.DialogId); } _mailSendService.SendSystemMessageToPlayer( @@ -143,7 +141,7 @@ public class ProfileSptCommand( Id = new MongoId(), Template = Money.ROUBLES, Upd = new Upd { StackObjectsCount = 1 }, - ParentId = _hashUtil.Generate(), + ParentId = new MongoId(), SlotId = "main", }, ], @@ -151,7 +149,7 @@ public class ProfileSptCommand( [profileChangeEvent] ); - return request.DialogId; + return new ValueTask(request.DialogId); } protected ProfileChangeEvent HandleSkillCommand(SkillTypes? skill, int level) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/TraderCommand/TraderSptCommand.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/TraderCommand/TraderSptCommand.cs index 5d5c8c8c..77607304 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/TraderCommand/TraderSptCommand.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/TraderCommand/TraderSptCommand.cs @@ -10,14 +10,12 @@ using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Dialog; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Services; -using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Helpers.Dialogue.Commando.SptCommands.TraderCommand; [Injectable] public class TraderSptCommand( ISptLogger _logger, - HashUtil _hashUtil, TraderHelper _traderHelper, MailSendService _mailSendService ) : ISptCommand @@ -36,7 +34,7 @@ public class TraderSptCommand( return "spt trader \n ======== \n Sets the reputation or money spent to the input quantity through the message system.\n\n\tspt trader [trader] rep [quantity]\n\t\tEx: spt trader prapor rep 2\n\n\tspt trader [trader] spend [quantity]\n\t\tEx: spt trader therapist spend 1000000"; } - public string PerformAction( + public ValueTask PerformAction( UserDialogInfo commandHandler, string sessionId, SendMessageRequest request @@ -49,7 +47,7 @@ public class TraderSptCommand( commandHandler, "Invalid use of trader command. Use 'help' for more information." ); - return request.DialogId; + return new ValueTask(request.DialogId); } var result = _commandRegex.Match(request.Text); @@ -77,7 +75,7 @@ public class TraderSptCommand( "Invalid use of trader command, the trader was not found. Use 'help' for more information." ); - return request.DialogId; + return new ValueTask(request.DialogId); } NotificationEventType profileChangeEventType; @@ -98,7 +96,7 @@ public class TraderSptCommand( "Invalid use of trader command, ProfileChangeEventType was not found. Use 'help' for more information." ); - return request.DialogId; + return new ValueTask(request.DialogId); } } @@ -111,7 +109,7 @@ public class TraderSptCommand( Id = new MongoId(), Template = Money.ROUBLES, Upd = new Upd { StackObjectsCount = 1 }, - ParentId = _hashUtil.Generate(), + ParentId = new MongoId(), SlotId = "main", }, ], @@ -119,7 +117,7 @@ public class TraderSptCommand( [CreateProfileChangeEvent(profileChangeEventType, quantity, dbTrader.Id)] ); - return request.DialogId; + return new ValueTask(request.DialogId); } protected ProfileChangeEvent CreateProfileChangeEvent( diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/IDialogueChatBot.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/IDialogueChatBot.cs index 866d0b62..d0c1a3f5 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/IDialogueChatBot.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/IDialogueChatBot.cs @@ -6,5 +6,10 @@ namespace SPTarkov.Server.Core.Helpers.Dialogue; public interface IDialogueChatBot { public UserDialogInfo GetChatBot(); - public string? HandleMessage(string sessionId, SendMessageRequest request); + + /// + /// Handles messages for the chatbot. If a message can't be handled, should be used. + /// + /// The response of the bot, or if the request could not be handled. + public ValueTask HandleMessage(string sessionId, SendMessageRequest request); } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SptDialogueChatBot.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SptDialogueChatBot.cs index a6f10e5c..0ea2a46d 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SptDialogueChatBot.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SptDialogueChatBot.cs @@ -13,9 +13,7 @@ namespace SPTarkov.Server.Core.Helpers.Dialogue; [Injectable] public class SptDialogueChatBot( - ISptLogger _logger, MailSendService _mailSendService, - IEnumerable _chatCommands, ConfigServer _configServer, ProfileHelper _profileHelper, IEnumerable chatMessageHandlers @@ -42,7 +40,7 @@ public class SptDialogueChatBot( }; } - public string? HandleMessage(string sessionId, SendMessageRequest request) + public ValueTask HandleMessage(string sessionId, SendMessageRequest request) { var sender = _profileHelper.GetPmcProfile(sessionId); var sptFriendUser = GetChatBot(); @@ -57,7 +55,7 @@ public class SptDialogueChatBot( { handler.Process(sessionId, sptFriendUser, sender, request); - return request.DialogId; + return new ValueTask(request.DialogId); } _mailSendService.SendUserMessageToPlayer( @@ -68,7 +66,7 @@ public class SptDialogueChatBot( null ); - return request.DialogId; + return new ValueTask(request.DialogId); } protected static List ChatMessageHandlerSetup( @@ -86,7 +84,7 @@ public class SptDialogueChatBot( return "Unknown command."; } - protected string? SendPlayerHelpMessage(string sessionId, SendMessageRequest request) + protected ValueTask SendPlayerHelpMessage(string sessionId, SendMessageRequest request) { _mailSendService.SendUserMessageToPlayer( sessionId, @@ -96,6 +94,6 @@ public class SptDialogueChatBot( null ); - return request.DialogId; + return new ValueTask(request.DialogId); } } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/DialogueHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/DialogueHelper.cs index 92014615..b584130c 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/DialogueHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/DialogueHelper.cs @@ -1,4 +1,5 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Profile; using SPTarkov.Server.Core.Models.Utils; @@ -46,7 +47,7 @@ public class DialogueHelper(ISptLogger logger, ProfileHelper pro /// Session/player id /// Item being moved to inventory /// Collection of items from message - public List GetMessageItemContents(string messageID, string sessionID, string itemId) + public List GetMessageItemContents(string messageID, string sessionID, MongoId itemId) { var fullProfile = profileHelper.GetFullProfile(sessionID); var dialogueData = fullProfile.DialogueRecords; diff --git a/Libraries/SPTarkov.Server.Core/Helpers/HandbookHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/HandbookHelper.cs index 468f2a86..224a27f7 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/HandbookHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/HandbookHelper.cs @@ -1,4 +1,5 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Config; @@ -88,7 +89,7 @@ public class HandbookHelper( /// /// Item tpl to look up price for /// price in roubles - public double GetTemplatePrice(string tpl) + public double GetTemplatePrice(MongoId tpl) { if (HandbookPriceCache.Items.ById.TryGetValue(tpl, out var itemPrice)) { @@ -211,11 +212,11 @@ public class HandbookHelper( { public LookupItem() { - ById = new Dictionary(); + ById = new Dictionary(); ByParent = new Dictionary>(); } - public Dictionary ById { get; set; } + public Dictionary ById { get; set; } public Dictionary> ByParent { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/HideoutHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/HideoutHelper.cs index 9b02c2c0..f3843ef6 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/HideoutHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/HideoutHelper.cs @@ -21,7 +21,6 @@ public class HideoutHelper( ISptLogger _logger, TimeUtil _timeUtil, ServerLocalisationService _serverLocalisationService, - HashUtil _hashUtil, DatabaseService _databaseService, EventOutputHolder _eventOutputHolder, HttpResponseUtil _httpResponseUtil, @@ -31,10 +30,8 @@ public class HideoutHelper( ICloner _cloner ) { - public const string BitcoinFarm = "5d5c205bd582a50d042a3c0e"; - public const string CultistCircleCraftId = "66827062405f392b203a44cf"; - public const string BitcoinProductionId = "5d5c205bd582a50d042a3c0e"; - public const string WaterCollector = "5d5589c1f934db045e6c5492"; + public static readonly MongoId BitcoinProductionId = new("5d5c205bd582a50d042a3c0e"); + public static readonly MongoId WaterCollectorId = new("5d5589c1f934db045e6c5492"); public const int MaxSkillPoint = 5000; /// @@ -599,8 +596,7 @@ public class HideoutHelper( * GetTimeElapsedSinceLastServerTick(pmcData, isGeneratorOn); // Get all fuel consumption bonuses, returns an empty array if none found - var profileFuelConsomptionBonusSum = _profileHelper.GetBonusValueFromProfile( - pmcData, + var profileFuelConsomptionBonusSum = pmcData.GetBonusValueFromProfile( BonusType.FuelConsumption ); @@ -733,7 +729,7 @@ public class HideoutHelper( // Canister with purified water craft exists if ( - pmcData.Hideout.Production.TryGetValue(WaterCollector, out var purifiedWaterCraft) + pmcData.Hideout.Production.TryGetValue(WaterCollectorId, out var purifiedWaterCraft) && purifiedWaterCraft.GetType() == typeof(Production) ) { @@ -752,7 +748,7 @@ public class HideoutHelper( // seem to not trigger consistently var recipe = new HideoutSingleProductionStartRequestData { - RecipeId = WaterCollector, + RecipeId = WaterCollectorId, Action = "HideoutSingleProductionStart", Items = [], Tools = [], @@ -793,7 +789,7 @@ public class HideoutHelper( var timeReductionSeconds = 0D; // Bitcoin farm is excluded from crafting skill cooldown reduction - if (recipeId != BitcoinFarm) + if (recipeId != BitcoinProductionId) // Seconds to deduct from crafts total time { timeReductionSeconds += GetSkillProductionTimeReduction( @@ -845,7 +841,7 @@ public class HideoutHelper( ) { var filterDrainRate = GetWaterFilterDrainRate(pmcData); - var craftProductionTime = GetTotalProductionTimeSeconds(WaterCollector); + var craftProductionTime = GetTotalProductionTimeSeconds(WaterCollectorId); var secondsSinceServerTick = GetTimeElapsedSinceLastServerTick(pmcData, isGeneratorOn); filterDrainRate = GetTimeAdjustedWaterFilterDrainRate( @@ -1286,7 +1282,7 @@ public class HideoutHelper( { var bitcoinProductions = _databaseService .GetHideout() - .Production.Recipes.FirstOrDefault(production => production.Id == BitcoinFarm); + .Production.Recipes.FirstOrDefault(production => production.Id == BitcoinProductionId); var productionSlots = bitcoinProductions?.ProductionLimitCount ?? 3; // Default to 3 if none found var hasManagementSkillSlots = _profileHelper.HasEliteSkillLevel( SkillTypes.HideoutManagement, @@ -1401,7 +1397,7 @@ public class HideoutHelper( ) { // Get how many coins were crafted and ready to pick up - pmcData.Hideout.Production.TryGetValue(BitcoinFarm, out var bitcoinCraft); + pmcData.Hideout.Production.TryGetValue(BitcoinProductionId, out var bitcoinCraft); var craftedCoinCount = bitcoinCraft?.Products?.Count; if (bitcoinCraft is null || craftedCoinCount is null) { @@ -1446,15 +1442,16 @@ public class HideoutHelper( // Is at max capacity + we collected all coins - reset production start time var coinSlotCount = GetBTCSlots(pmcData); - if (pmcData.Hideout.Production[BitcoinFarm].Products.Count >= coinSlotCount) + if (pmcData.Hideout.Production[BitcoinProductionId].Products.Count >= coinSlotCount) // Set start to now { - pmcData.Hideout.Production[BitcoinFarm].StartTimestamp = _timeUtil.GetTimeStamp(); + pmcData.Hideout.Production[BitcoinProductionId].StartTimestamp = + _timeUtil.GetTimeStamp(); } // Remove crafted coins from production in profile now they've been collected // Can only collect all coins, not individually - pmcData.Hideout.Production[BitcoinFarm].Products = []; + pmcData.Hideout.Production[BitcoinProductionId].Products = []; } /// diff --git a/Libraries/SPTarkov.Server.Core/Helpers/InRaidHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/InRaidHelper.cs index 098c0df0..e899a098 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/InRaidHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/InRaidHelper.cs @@ -14,7 +14,6 @@ namespace SPTarkov.Server.Core.Helpers; [Injectable] public class InRaidHelper( InventoryHelper _inventoryHelper, - ItemHelper _itemHelper, ConfigServer _configServer, ICloner _cloner, DatabaseService _databaseService @@ -66,23 +65,27 @@ public class InRaidHelper( var insured = _cloner.Clone(serverProfile.InsuredItems); // Remove equipment and loot items stored on player from server profile in preparation for data from client being added - _inventoryHelper.RemoveItem(serverProfile, serverProfile.Inventory.Equipment, sessionID); + _inventoryHelper.RemoveItem( + serverProfile, + serverProfile.Inventory.Equipment.Value, + sessionID + ); // Remove quest items stored on player from server profile in preparation for data from client being added _inventoryHelper.RemoveItem( serverProfile, - serverProfile.Inventory.QuestRaidItems, + serverProfile.Inventory.QuestRaidItems.Value, sessionID ); // Get all items that have a parent of `serverProfile.Inventory.equipment` (All items player had on them at end of raid) var postRaidInventoryItems = postRaidProfile.Inventory.Items.FindAndReturnChildrenAsItems( - postRaidProfile.Inventory.Equipment + postRaidProfile.Inventory.Equipment.Value ); // Get all items that have a parent of `serverProfile.Inventory.questRaidItems` (Quest items player had on them at end of raid) var postRaidQuestItems = postRaidProfile.Inventory.Items.FindAndReturnChildrenAsItems( - postRaidProfile.Inventory.QuestRaidItems + postRaidProfile.Inventory.QuestRaidItems.Value ); // Handle Removing of FIR status if player did not survive + not transferring @@ -243,14 +246,10 @@ public class InRaidHelper( } // Pocket items are lost on death - // Ensure we dont pick up pocket items from manniquins + // Ensure we don't pick up pocket items from mannequins if ( item.SlotId.StartsWith("pocket") - && _inventoryHelper.DoesItemHaveRootId( - pmcProfile, - item, - pmcProfile.Inventory.Equipment - ) + && pmcProfile.DoesItemHaveRootId(item, pmcProfile.Inventory.Equipment) ) { return true; diff --git a/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs index a844af4a..3b5dd9f7 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs @@ -1,9 +1,8 @@ using System.Collections.Frozen; -using System.Text.Json; using System.Text.Json.Serialization; -using SPTarkov.Common.Extensions; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Inventory; @@ -24,10 +23,8 @@ namespace SPTarkov.Server.Core.Helpers; [Injectable] public class InventoryHelper( ISptLogger _logger, - HashUtil _hashUtil, HttpResponseUtil _httpResponseUtil, DialogueHelper _dialogueHelper, - ContainerHelper _containerHelper, EventOutputHolder _eventOutputHolder, ProfileHelper _profileHelper, ItemHelper _itemHelper, @@ -36,7 +33,7 @@ public class InventoryHelper( ICloner _cloner ) { - private static readonly FrozenSet _variableSizeItemTypes = + private static readonly FrozenSet _variableSizeItemTypes = [ BaseClasses.WEAPON, BaseClasses.FUNCTIONAL_MOD, @@ -108,7 +105,7 @@ public class InventoryHelper( var itemWithModsToAddClone = _cloner.Clone(request.ItemWithModsToAdd); // Get stash layouts ready for use - var stashFS2D = GetStashSlotMap(pmcData, sessionId); + var stashFS2D = GetStashSlotMap(pmcData); if (stashFS2D is null) { _logger.Error($"Unable to get stash map for players: {sessionId} stash"); @@ -145,10 +142,7 @@ public class InventoryHelper( // Run callback try { - if (request.Callback is not null) - { - request.Callback((int)(itemWithModsToAddClone[0].Upd.StackObjectsCount ?? 0)); - } + request.Callback?.Invoke((int)(itemWithModsToAddClone[0].Upd.StackObjectsCount ?? 0)); } catch (Exception ex) { @@ -168,7 +162,7 @@ public class InventoryHelper( if (_logger.IsLogEnabled(LogLevel.Debug)) { _logger.Debug( - $"Added {itemWithModsToAddClone[0].Upd?.StackObjectsCount ?? 1} item: {itemWithModsToAddClone[0].Template} with: {itemWithModsToAddClone.Count - 1} mods to inventory" + $"Added: {itemWithModsToAddClone[0].Upd?.StackObjectsCount ?? 1} item: {itemWithModsToAddClone[0].Template} with: {itemWithModsToAddClone.Count - 1} mods to inventory" ); } } @@ -224,7 +218,7 @@ public class InventoryHelper( { var pmcData = _profileHelper.GetPmcProfile(sessionId); - var stashFS2D = _cloner.Clone(GetStashSlotMap(pmcData, sessionId)); + var stashFS2D = _cloner.Clone(GetStashSlotMap(pmcData)); if (stashFS2D is null) { _logger.Error($"Unable to get stash map for players: {sessionId} stash"); @@ -244,7 +238,7 @@ public class InventoryHelper( /// Container grid to fit items into /// Items to try and fit into grid /// True all fit - public bool CanPlaceItemsInContainer(int[][] containerFS2D, List> itemsWithChildren) + public bool CanPlaceItemsInContainer(int[,] containerFS2D, List> itemsWithChildren) { return itemsWithChildren.All(itemWithChildren => CanPlaceItemInContainer(containerFS2D, itemWithChildren) @@ -257,28 +251,23 @@ public class InventoryHelper( /// Container grid /// Item to check fits /// True it fits - public bool CanPlaceItemInContainer(int[][] containerFS2D, List itemWithChildren) + public bool CanPlaceItemInContainer(int[,] containerFS2D, List itemWithChildren) { // Get x/y size of item var rootItem = itemWithChildren[0]; - var itemSize = GetItemSize(rootItem.Template, rootItem.Id, itemWithChildren); + var (sizeX, sizeY) = GetItemSize(rootItem.Template, rootItem.Id, itemWithChildren); // Look for a place to slot item into - var findSlotResult = _containerHelper.FindSlotForItem( - containerFS2D, - itemSize[0], - itemSize[1] - ); + var findSlotResult = containerFS2D.FindSlotForItem(sizeX, sizeY); if (findSlotResult.Success.GetValueOrDefault(false)) { try { - _containerHelper.FillContainerMapWithItem( - containerFS2D, + containerFS2D.FillContainerMapWithItem( findSlotResult.X.Value, findSlotResult.Y.Value, - itemSize[0], - itemSize[1], + sizeX, + sizeY, findSlotResult.Rotation.Value ); } @@ -309,7 +298,7 @@ public class InventoryHelper( /// Id of the container we're fitting item into /// Slot id value to use, default is "hideout" public void PlaceItemInContainer( - int[][] containerFS2D, + int[,] containerFS2D, List itemWithChildren, string containerId, string desiredSlotId = "hideout" @@ -317,24 +306,23 @@ public class InventoryHelper( { // Get x/y size of item var rootItemAdded = itemWithChildren[0]; - var itemSize = GetItemSize(rootItemAdded.Template, rootItemAdded.Id, itemWithChildren); + var (sizeX, sizeY) = GetItemSize( + rootItemAdded.Template, + rootItemAdded.Id, + itemWithChildren + ); // Look for a place to slot item into - var findSlotResult = _containerHelper.FindSlotForItem( - containerFS2D, - itemSize[0], - itemSize[1] - ); + var findSlotResult = containerFS2D.FindSlotForItem(sizeX, sizeY); if (findSlotResult.Success.GetValueOrDefault(false)) { try { - _containerHelper.FillContainerMapWithItem( - containerFS2D, + containerFS2D.FillContainerMapWithItem( findSlotResult.X.Value, findSlotResult.Y.Value, - itemSize[0], - itemSize[1], + sizeX, + sizeY, findSlotResult.Rotation.Value ); } @@ -370,15 +358,15 @@ public class InventoryHelper( /// /// Find a location to place an item into inventory and place it /// - /// 2-dimensional representation of the container slots + /// 2-dimensional representation of the container /// 2-dimensional representation of the sorting table slots /// Item to place with children /// Players inventory /// Should sorting table to be used if main stash has no space /// Output to send back to client protected void PlaceItemInInventory( - int[][] stashFS2D, - int[][] sortingTableFS2D, + int[,] stashFS2D, + int[,] sortingTableFS2D, List itemWithChildren, BotBaseInventory playerInventory, bool useSortingTable, @@ -387,20 +375,19 @@ public class InventoryHelper( { // Get x/y size of item var rootItem = itemWithChildren[0]; - var itemSize = GetItemSize(rootItem.Template, rootItem.Id, itemWithChildren); + var (sizeX, sizeY) = GetItemSize(rootItem.Template, rootItem.Id, itemWithChildren); // Look for a place to slot item into - var findSlotResult = _containerHelper.FindSlotForItem(stashFS2D, itemSize[0], itemSize[1]); + var findSlotResult = stashFS2D.FindSlotForItem(sizeX, sizeY); if (findSlotResult.Success.Value) { try { - _containerHelper.FillContainerMapWithItem( - stashFS2D, + stashFS2D.FillContainerMapWithItem( findSlotResult.X.Value, findSlotResult.Y.Value, - itemSize[0], - itemSize[1], + sizeX, + sizeY, findSlotResult.Rotation.Value ); } @@ -411,7 +398,7 @@ public class InventoryHelper( return; } - // Store details for object, incuding container item will be placed in + // Store details for object, including container item will be placed in rootItem.ParentId = playerInventory.Stash; rootItem.SlotId = "hideout"; rootItem.Location = new ItemLocation @@ -429,20 +416,15 @@ public class InventoryHelper( // Space not found in main stash, use sorting table if (useSortingTable) { - var findSortingSlotResult = _containerHelper.FindSlotForItem( - sortingTableFS2D, - itemSize[0], - itemSize[1] - ); + var findSortingSlotResult = sortingTableFS2D.FindSlotForItem(sizeX, sizeY); try { - _containerHelper.FillContainerMapWithItem( - sortingTableFS2D, + sortingTableFS2D.FillContainerMapWithItem( findSortingSlotResult.X.Value, findSortingSlotResult.Y.Value, - itemSize[0], - itemSize[1], + sizeX, + sizeY, findSortingSlotResult.Rotation.Value ); } @@ -498,12 +480,12 @@ public class InventoryHelper( /// OPTIONAL - ItemEventRouterResponse public void RemoveItem( PmcData profile, - string? itemId, + MongoId itemId, string sessionId, ItemEventRouterResponse? output = null ) { - if (itemId is null) + if (itemId.IsEmpty()) { _logger.Warning( _serverLocalisationService.GetText("inventory-unable_to_remove_item_no_id_given") @@ -533,10 +515,7 @@ public class InventoryHelper( var insuredItems = profile.InsuredItems; // We have output object, inform client of root item deletion, not children - if (output is not null) - { - output.ProfileChanges[sessionId].Items.DeletedItems.Add(new Item { Id = itemId }); - } + output?.ProfileChanges[sessionId].Items.DeletedItems.Add(new DeletedItem { Id = itemId }); foreach (var item in itemAndChildrenToRemove) { @@ -638,13 +617,13 @@ public class InventoryHelper( /// ItemEventRouterResponse public ItemEventRouterResponse RemoveItemByCount( PmcData pmcData, - string? itemId, + MongoId itemId, int countToRemove, string sessionId, ItemEventRouterResponse? output ) { - if (itemId is null) + if (itemId.IsEmpty()) { return output; } @@ -689,7 +668,7 @@ public class InventoryHelper( /// Items id to get size of /// /// [width, height] - public List GetItemSize(string? itemTpl, string itemId, List inventoryItems) + public (int, int) GetItemSize(MongoId itemTpl, MongoId itemId, List inventoryItems) { // -> Prepares item Width and height returns [sizeX, sizeY] return GetSizeByInventoryItemHash(itemTpl, itemId, GetInventoryItemHash(inventoryItems)); @@ -703,9 +682,9 @@ public class InventoryHelper( /// Items id /// Hashmap of inventory items /// An array representing the [width, height] of the item - protected List GetSizeByInventoryItemHash( - string itemTpl, - string itemId, + protected (int, int) GetSizeByInventoryItemHash( + MongoId itemTpl, + MongoId itemId, InventoryItemHash inventoryItemHash ) { @@ -738,7 +717,7 @@ public class InventoryHelper( _serverLocalisationService.GetText("inventory-return_default_size", itemTpl) ); - return [1, 1]; // Invalid input data, return defaults + return (1, 1); // Invalid input data, return defaults } if (!inventoryItemHash.ByItemId.TryGetValue(itemId, out var rootItem)) @@ -747,7 +726,7 @@ public class InventoryHelper( $"Unable to get root item with Id: {itemId} from player inventory. Defaulting to 1x1" ); - return [1, 1]; // Invalid input data, return defaults + return (1, 1); // Invalid input data, return defaults } // Does root item support being folded @@ -869,104 +848,118 @@ public class InventoryHelper( } } - return - [ + return ( outX.Value + sizeLeft + sizeRight + forcedLeft + forcedRight, - outY.Value + sizeUp + sizeDown + forcedUp + forcedDown, - ]; + outY.Value + sizeUp + sizeDown + forcedUp + forcedDown + ); } /// /// Get a 2d mapping of a container with what grid slots are filled /// - /// Horizontal size of container - /// Vertical size of container + /// Horizontal (Column) size of container + /// Vertical (Row) size of container /// Players inventory items /// Id of the container /// Two-dimensional representation of container - public int[][] GetContainerMap(int sizeX, int sizeY, List itemList, string containerId) + public int[,] GetContainerMap( + int containerSizeHorizontalX, + int containerSizeVerticalY, + List itemList, + string containerId + ) { // Create blank 2d map of container - var containerYX = _itemHelper.GetBlankContainerMap(sizeY, sizeX); + var container = _itemHelper.GetBlankContainerMap( + containerSizeHorizontalX, // Column count + containerSizeVerticalY // Row count + ); // Get all items in players inventory keyed by their parentId and by ItemId var inventoryItemHash = GetInventoryItemHash(itemList); // Get subset of items that belong to the desired container if (!inventoryItemHash.ByParentId.TryGetValue(containerId, out var rootItemsInContainer)) - // No items in container, exit early { - return containerYX; + // No items in container, exit early and return the blank container map + return container; } - // Check each item in container - foreach (var item in rootItemsInContainer) + // Add every root items size (with mods attached) found in container + foreach (var rootItem in rootItemsInContainer) { - ItemLocation? itemLocation; - if (item.Location is JsonElement element) - { - // TODO: is this ever true? - itemLocation = element.ToObject(); - } - else - { - itemLocation = (ItemLocation?)item.Location; - } - + var itemLocation = rootItem.GetParsedLocation(); if (itemLocation is null) { // Item has no location property _logger.Error( - $"Unable to find 'location' property on item with id: {item.Id}, skipping" + $"Unable to find 'location' property on item with id: {rootItem.Id}, skipping" ); continue; } - // Get x/y size of item - var tmpSize = GetSizeByInventoryItemHash(item.Template, item.Id, inventoryItemHash); - var iW = tmpSize[0]; // x - var iH = tmpSize[1]; // y - var fH = itemLocation.IsVertical() ? iW : iH; - var fW = itemLocation.IsVertical() ? iH : iW; + // Get x/y size of item (without rotation) + var (rawItemXWidth, rawItemYHeight) = GetSizeByInventoryItemHash( + rootItem.Template, + rootItem.Id, + inventoryItemHash + ); + // Items horizontal size + var itemHeight = itemLocation.IsVertical() ? rawItemXWidth : rawItemYHeight; - for (var y = 0; y < fH; y++) + // Items vertical size + var itemWidth = itemLocation.IsVertical() ? rawItemYHeight : rawItemXWidth; + + // vertical (row) + for (var yOffset = 0; yOffset < itemHeight; yOffset++) { - try + // horizontal (column) + for (var xOffset = 0; xOffset < itemWidth; xOffset++) { - var rowIndex = itemLocation.Y + y; - var containerX = containerYX.ElementAtOrDefault(rowIndex.Value); - if (containerX is null) - { - _logger.Error( - $"Unable to find container: {containerId} row line: {itemLocation.Y + y}" - ); - } + var currentY = itemLocation.Y.Value + yOffset; + var currentX = itemLocation.X.Value + xOffset; - // Fill the corresponding cells in the container map to show the slot is taken - Array.Fill(containerX, 1, itemLocation.X.Value, fW); - } - catch (Exception ex) - { - _logger.Error( - _serverLocalisationService.GetText( - "inventory-unable_to_fill_container", - new { id = item.Id, error = $"{ex.Message} {ex.StackTrace}" } - ) - ); + // Check still in containers bounds + if ( + currentY >= 0 + && currentY < containerSizeVerticalY + && currentX >= 0 + && currentX < containerSizeHorizontalX + ) + { + // mark slot used + container[currentY, currentX] = 1; + } + else + { + // Out of bounds + var message = + $"Item: {rootItem.Id} at: {itemLocation.X}, {itemLocation.Y} size: {itemHeight}x{itemWidth} extends outside the containers bounds"; + + _logger.Error( + _serverLocalisationService.GetText( + "inventory-unable_to_fill_container", + new { id = rootItem.Id, error = $"{message}" } + ) + ); + + // Stop and try next row + break; + } } } } - return containerYX; + return container; } protected InventoryItemHash GetInventoryItemHash(List inventoryItems) { var inventoryItemHash = new InventoryItemHash { - ByItemId = new Dictionary(), - ByParentId = new Dictionary>(), + ByItemId = new Dictionary(), + ByParentId = new Dictionary>(), }; foreach (var item in inventoryItems) { @@ -977,6 +970,11 @@ public class InventoryHelper( continue; } + if (item.ParentId == "hideout") + { + continue; + } + if (!inventoryItemHash.ByParentId.ContainsKey(item.ParentId)) { inventoryItemHash.ByParentId[item.ParentId] = []; @@ -994,12 +992,12 @@ public class InventoryHelper( /// Based on the item action, determine whose inventories we should be looking at for from and to. /// /// Item interaction request - /// Item being moved/split/etc to inventory + /// Item being moved/split/etc to inventory /// Session id / players Id /// OwnerInventoryItems with inventory of player/scav to adjust public OwnerInventoryItems GetOwnerInventoryItems( InventoryBaseActionRequestData request, - string? item, + MongoId itemId, string sessionId ) { @@ -1023,7 +1021,7 @@ public class InventoryHelper( fromInventoryItems = _dialogueHelper.GetMessageItemContents( request.FromOwner.Id, sessionId, - item + itemId ); fromType = "mail"; } @@ -1058,14 +1056,13 @@ public class InventoryHelper( /// 0 value = free, 1 = taken /// /// Player profile - /// session id /// 2-dimensional array - protected int[][]? GetStashSlotMap(PmcData pmcData, string sessionID) + protected int[,] GetStashSlotMap(PmcData pmcData) { - var playerStashSize = GetPlayerStashSize(sessionID); + var (horizontal, vertical) = GetPlayerStashSize(pmcData); return GetContainerMap( - playerStashSize[0], - playerStashSize[1], + horizontal, + vertical, pmcData.Inventory.Items, pmcData.Inventory.Stash ); @@ -1076,15 +1073,18 @@ public class InventoryHelper( /// /// Container to get data for /// blank two-dimensional array - public int[][] GetContainerSlotMap(string containerTpl) + public int[,] GetContainerSlotMap(string containerTpl) { var containerTemplate = _itemHelper.GetItem(containerTpl).Value; var firstContainerGrid = containerTemplate.Properties.Grids.FirstOrDefault(); - var containerH = firstContainerGrid.Props.CellsH; - var containerV = firstContainerGrid.Props.CellsV; + var containerRowCount = firstContainerGrid.Props.CellsH; + var containerColumnCount = firstContainerGrid.Props.CellsV; - return _itemHelper.GetBlankContainerMap(containerH.Value, containerV.Value); + return _itemHelper.GetBlankContainerMap( + containerColumnCount.Value, + containerRowCount.Value + ); } /// @@ -1092,7 +1092,7 @@ public class InventoryHelper( /// /// Player profile /// two-dimensional array - protected int[][] GetSortingTableSlotMap(PmcData pmcData) + protected int[,] GetSortingTableSlotMap(PmcData pmcData) { return GetContainerMap(10, 45, pmcData.Inventory.Items, pmcData.Inventory.SortingTable); } @@ -1100,57 +1100,59 @@ public class InventoryHelper( /// /// Get Players Stash Size /// - /// Players id - /// Dictionary of 2 values, horizontal and vertical stash size - protected List GetPlayerStashSize(string sessionId) + /// Profile to get stash size of + /// Horizontal and vertical size of stash + protected (int, int) GetPlayerStashSize(PmcData pmcData) { - var profile = _profileHelper.GetPmcProfile(sessionId); - var stashRowBonus = profile.Bonuses.FirstOrDefault(bonus => - bonus.Type == BonusType.StashRows - ); - - // this sets automatically a stash size from items.json (it's not added anywhere yet because we still use base stash) - var stashTPL = GetStashType(sessionId); - if (stashTPL is null) + // TODO: what?? + // This sets automatically a stash size from items.json (it's not added anywhere yet because we still use base stash) + var stashTpl = GetProfileStashTpl(pmcData); + if (stashTpl is null) { _logger.Error(_serverLocalisationService.GetText("inventory-missing_stash_size")); + + return (0, 0); } - var stashItemResult = _itemHelper.GetItem(stashTPL); - if (!stashItemResult.Key) + // Look up details of stash in db + var (isValidItem, stashItemDbItem) = _itemHelper.GetItem(stashTpl); + if (!isValidItem) { _logger.Error( - _serverLocalisationService.GetText("inventory-stash_not_found", stashTPL) + _serverLocalisationService.GetText("inventory-stash_not_found", stashTpl) ); - return new List(); + return (0, 0); } - var stashItemDetails = stashItemResult.Value; - var firstStashItemGrid = stashItemDetails.Properties.Grids[0]; + // Find the main 'grid' of the stash we can use to get size + var firstStashItemGrid = stashItemDbItem?.Properties?.Grids?.FirstOrDefault(); + // Get horizontal and vertical size var stashH = firstStashItemGrid.Props.CellsH != 0 ? firstStashItemGrid.Props.CellsH : 10; var stashV = firstStashItemGrid.Props.CellsV != 0 ? firstStashItemGrid.Props.CellsV : 66; // Player has a bonus, apply to vertical size + var stashRowBonus = pmcData.Bonuses.FirstOrDefault(bonus => + bonus.Type == BonusType.StashRows + ); if (stashRowBonus is not null) { stashV += (int)stashRowBonus.Value; } - return [stashH.Value, stashV.Value]; + return (stashH.Value, stashV.Value); } /// /// Get the players stash items tpl /// - /// Player id + /// Profile to get tpl /// Stash tpl - protected string? GetStashType(string sessionId) + protected string? GetProfileStashTpl(PmcData profile) { - var pmcData = _profileHelper.GetPmcProfile(sessionId); - var stashObj = pmcData.Inventory.Items.FirstOrDefault(item => - item.Id == pmcData.Inventory.Stash + var stashObj = profile.Inventory.Items.FirstOrDefault(item => + item.Id == profile.Inventory.Stash ); if (stashObj is null) { @@ -1172,7 +1174,7 @@ public class InventoryHelper( InventoryMoveRequestData request ) { - HandleCartridges(sourceItems, request); + HandleCartridgeMove(sourceItems, request); // Get all children item has, they need to move with item var idsToMove = sourceItems.FindAndReturnChildrenByItems(request.Item); @@ -1229,7 +1231,7 @@ public class InventoryHelper( ) { errorMessage = string.Empty; - HandleCartridges(inventoryItems, moveRequest); + HandleCartridgeMove(inventoryItems, moveRequest); // Find item we want to 'move' var matchingInventoryItem = inventoryItems.FirstOrDefault(item => @@ -1322,7 +1324,7 @@ public class InventoryHelper( // Reset fast panel value if item was moved to a container other than pocket/rig (cant be used from fastpanel) HashSet slots = ["pockets", "tacticalvest"]; var wasMovedToFastPanelAccessibleContainer = slots.Contains( - itemParent?.SlotId?.ToLower() ?? "" + itemParent?.SlotId?.ToLowerInvariant() ?? "" ); if (!wasMovedToFastPanelAccessibleContainer) { @@ -1331,9 +1333,11 @@ public class InventoryHelper( } /// - /// Internal helper function to handle cartridges in inventory if any of them exist. + /// Helper function to handle cartridges in inventory if any of them exist. /// - protected void HandleCartridges(List items, InventoryMoveRequestData request) + /// + /// + protected void HandleCartridgeMove(List items, InventoryMoveRequestData request) { // Not moving item into a cartridge slot, skip if (request.To.Container != "cartridges") @@ -1352,9 +1356,11 @@ public class InventoryHelper( /// /// Container being opened /// Reward details - public RewardDetails GetRandomLootContainerRewardDetails(string itemTpl) + public RewardDetails? GetRandomLootContainerRewardDetails(MongoId itemTpl) { - return _inventoryConfig.RandomLootContainers[itemTpl]; + _inventoryConfig.RandomLootContainers.TryGetValue(itemTpl, out var result); + + return result; } /// @@ -1369,7 +1375,7 @@ public class InventoryHelper( public void ValidateInventoryUsesMongoIds(List itemsToValidate) { var errors = itemsToValidate - .Where(item => !_hashUtil.IsValidMongoId(item.Id)) + .Where(item => !item.Id.IsValidMongoId()) .Select(item => $"Id: {item.Id} - tpl: {item.Template}") .ToList(); foreach (var message in errors) @@ -1381,40 +1387,13 @@ public class InventoryHelper( "This profile is not compatible with SPT, See above for a list of incompatible IDs that is not compatible. Loading of SPT has been halted, use another profile or create a new one" ); } - - /// - /// Does the provided item have a root item with the provided id - /// - /// Profile with items - /// Item to check - /// Root item id to check for - /// True when item has rootId, false when not - public bool DoesItemHaveRootId(PmcData pmcData, Item item, string rootId) - { - var currentItem = item; - while (currentItem is not null) - { - // If we've found the equipment root ID, return true - if (currentItem.Id == rootId) - { - return true; - } - - // Otherwise get the parent item - currentItem = pmcData.Inventory.Items.FirstOrDefault(item => - item.Id == currentItem.ParentId - ); - } - - return false; - } } public class InventoryItemHash { [JsonPropertyName("byItemId")] - public Dictionary ByItemId { get; set; } + public Dictionary ByItemId { get; set; } [JsonPropertyName("byParentId")] - public Dictionary> ByParentId { get; set; } + public Dictionary> ByParentId { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs index 96336cf3..1c0a97d0 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs @@ -28,7 +28,7 @@ public class ItemHelper( ICloner _cloner ) { - protected static readonly FrozenSet _defaultInvalidBaseTypes = + protected static readonly FrozenSet _defaultInvalidBaseTypes = [ BaseClasses.LOOT_CONTAINER, BaseClasses.MOB_CONTAINER, @@ -57,7 +57,7 @@ public class ItemHelper( nameof(EquipmentSlots.Scabbard), ]; - protected static readonly FrozenSet _dogTagTpls = + protected static readonly FrozenSet _dogTagTpls = [ ItemTpl.BARTER_DOGTAG_BEAR, ItemTpl.BARTER_DOGTAG_BEAR_EOD, @@ -97,7 +97,7 @@ public class ItemHelper( "right_side_plate", ]; - protected static readonly FrozenSet _armorSlotsThatCanHoldMods = + protected static readonly FrozenSet _armorSlotsThatCanHoldMods = [ BaseClasses.HEADWEAR, BaseClasses.VEST, @@ -108,21 +108,21 @@ public class ItemHelper( /// Does the provided pool of items contain the desired item /// /// Item collection to check - /// Item to look for + /// Item to look for /// OPTIONAL - slotId of desired item /// True if pool contains item - public bool HasItemWithTpl(IEnumerable itemPool, string item, string slotId = "") + public bool HasItemWithTpl(IEnumerable itemPool, MongoId itemTpl, string slotId = "") { // Filter the pool by slotId if provided var filteredPool = string.IsNullOrEmpty(slotId) ? itemPool - : itemPool.Where(item => - item.SlotId?.StartsWith(slotId, StringComparison.OrdinalIgnoreCase) ?? false + : itemPool.Where(itemInPool => + itemInPool.SlotId?.StartsWith(slotId, StringComparison.OrdinalIgnoreCase) ?? false ); // Check if any item in the filtered pool matches the provided item return filteredPool.Any(poolItem => - string.Equals(poolItem.Template, item, StringComparison.OrdinalIgnoreCase) + string.Equals(poolItem.Template, itemTpl, StringComparison.OrdinalIgnoreCase) ); } @@ -133,7 +133,7 @@ public class ItemHelper( /// Item tpl to find /// OPTIONAL - slotId of desired item /// Item or null if no item found - public Item GetItemFromPoolByTpl(IEnumerable itemPool, string tpl, string slotId = "") + public Item GetItemFromPoolByTpl(IEnumerable itemPool, MongoId tpl, string slotId = "") { // Filter the pool by slotId if provided var filteredPool = string.IsNullOrEmpty(slotId) @@ -143,7 +143,7 @@ public class ItemHelper( ); // Check if any item in the filtered pool matches the provided item - return filteredPool.FirstOrDefault(poolItem => poolItem.Template.Equals(tpl)); + return filteredPool.FirstOrDefault(poolItem => poolItem.Template == tpl); } /// @@ -283,7 +283,7 @@ public class ItemHelper( /// Template id to check /// OPTIONAL - Base types deemed invalid /// true for items that may be in player possession and not quest items - public bool IsValidItem(string tpl, ICollection? invalidBaseTypes = null) + public bool IsValidItem(MongoId tpl, ICollection? invalidBaseTypes = null) { var baseTypes = invalidBaseTypes ?? _defaultInvalidBaseTypes; var itemDetails = GetItem(tpl); @@ -306,7 +306,7 @@ public class ItemHelper( /// Item template id to check /// Baseclass to check for /// is the tpl a descendant - public bool IsOfBaseclass(MongoId tpl, string baseClassTpl) + public bool IsOfBaseclass(MongoId tpl, MongoId baseClassTpl) { return _itemBaseClassService.ItemHasBaseClass(tpl, [baseClassTpl]); } @@ -317,29 +317,11 @@ public class ItemHelper( /// Item to check base classes of /// Base classes to check for /// True if any supplied base classes match - public bool IsOfBaseclasses(string tpl, ICollection baseClassTpls) + public bool IsOfBaseclasses(MongoId tpl, ICollection baseClassTpls) { return _itemBaseClassService.ItemHasBaseClass(tpl, baseClassTpls); } - /// - /// Temporary until we have better MongoId handling - /// - /// - /// - /// - public bool IsOfBaseclasses(string tpl, ICollection baseClassTpls) - { - List MongoList = []; - - foreach (var baseTpl in baseClassTpls) - { - MongoList.Add(baseTpl); - } - - return _itemBaseClassService.ItemHasBaseClass(tpl, MongoList); - } - /// /// Does the provided item have the chance to require soft armor inserts /// Only applies to helmets/vest/armors @@ -347,7 +329,7 @@ public class ItemHelper( /// /// Tpl to check /// Does item have the possibility ot need soft inserts - public bool ArmorItemCanHoldMods(string itemTpl) + public bool ArmorItemCanHoldMods(MongoId itemTpl) { return IsOfBaseclasses(itemTpl, _armorSlotsThatCanHoldMods); } @@ -357,7 +339,7 @@ public class ItemHelper( /// /// Armor item /// True if item needs some kind of insert - public bool ArmorItemHasRemovableOrSoftInsertSlots(string itemTpl) + public bool ArmorItemHasRemovableOrSoftInsertSlots(MongoId itemTpl) { if (!ArmorItemCanHoldMods(itemTpl)) { @@ -372,12 +354,12 @@ public class ItemHelper( /// /// Item tpl to check for plate support /// True when armor can hold plates - public bool ArmorItemHasRemovablePlateSlots(string itemTpl) + public bool ArmorItemHasRemovablePlateSlots(MongoId itemTpl) { var itemTemplate = GetItem(itemTpl); return itemTemplate.Value.Properties.Slots.Any(slot => - _removablePlateSlotIds.Contains(slot.Name.ToLower()) + _removablePlateSlotIds.Contains(slot.Name.ToLowerInvariant()) ); } @@ -386,7 +368,7 @@ public class ItemHelper( /// /// Item tpl to check /// True if it needs armor inserts - public bool ItemRequiresSoftInserts(string itemTpl) + public bool ItemRequiresSoftInserts(MongoId itemTpl) { // Not a slot that takes soft-inserts if (!ArmorItemCanHoldMods(itemTpl)) @@ -408,7 +390,11 @@ public class ItemHelper( } // Check if item has slots that match soft insert name ids - if (itemDbDetails.Value.Properties.Slots.Any(slot => IsSoftInsertId(slot.Name.ToLower()))) + if ( + itemDbDetails.Value.Properties.Slots.Any(slot => + IsSoftInsertId(slot.Name.ToLowerInvariant()) + ) + ) { return true; } @@ -456,7 +442,7 @@ public class ItemHelper( /// /// Item to look price up of /// Price in roubles - public double? GetItemPrice(string tpl) + public double? GetItemPrice(MongoId tpl) { var handbookPrice = GetStaticItemPrice(tpl); if (handbookPrice >= 1) @@ -473,7 +459,7 @@ public class ItemHelper( /// /// Item to look price up of /// Price in roubles - public double GetItemMaxPrice(string tpl) + public double GetItemMaxPrice(MongoId tpl) { var staticPrice = GetStaticItemPrice(tpl); var dynamicPrice = GetDynamicItemPrice(tpl); @@ -486,7 +472,7 @@ public class ItemHelper( /// /// Items tpl id to look up price /// Price in roubles (0 if not found) - public double GetStaticItemPrice(string tpl) + public double GetStaticItemPrice(MongoId tpl) { var handbookPrice = _handbookHelper.GetTemplatePrice(tpl); if (handbookPrice >= 1) @@ -502,7 +488,7 @@ public class ItemHelper( /// /// Items tpl id to look up price /// Price in roubles (undefined if not found) - public double? GetDynamicItemPrice(string tpl) + public double? GetDynamicItemPrice(MongoId tpl) { if (_databaseService.GetPrices().TryGetValue(tpl, out var price)) { @@ -526,7 +512,7 @@ public class ItemHelper( /// /// template id to look up /// KvP, key = bool, value = template item object - public KeyValuePair GetItem(string itemTpl) + public KeyValuePair GetItem(MongoId itemTpl) { // -> Gets item from if (_databaseService.GetItems().TryGetValue(itemTpl, out var item)) @@ -542,7 +528,7 @@ public class ItemHelper( /// /// Template id of the item to check /// True if the item has slots - public bool ItemHasSlots(string itemTpl) + public bool ItemHasSlots(MongoId itemTpl) { if (_databaseService.GetItems().TryGetValue(itemTpl, out var item)) { @@ -557,7 +543,7 @@ public class ItemHelper( /// /// Id of the item to check /// true if the item is in the database - public bool IsItemInDb(string itemTpl) + public bool IsItemInDb(MongoId itemTpl) { return _databaseService.GetItems().ContainsKey(itemTpl); } @@ -731,7 +717,7 @@ public class ItemHelper( /// Template id of item to check for /// List of items to check in /// List of children of requested item - public List FindAndReturnChildrenByAssort(string itemIdToFind, List assort) + public List FindAndReturnChildrenByAssort(MongoId itemIdToFind, List assort) { List list = []; foreach (var itemFromAssort in assort) @@ -762,7 +748,7 @@ public class ItemHelper( /// /// Template id to check. /// True if it is a dogtag. - public bool IsDogtag(string tpl) + public bool IsDogtag(MongoId tpl) { return _dogTagTpls.Contains(tpl); } @@ -772,7 +758,7 @@ public class ItemHelper( /// /// Item to check. /// True if it can be stacked. - public bool? IsItemTplStackable(string tpl) + public bool? IsItemTplStackable(MongoId tpl) { if (!_databaseService.GetItems().TryGetValue(tpl, out var item)) { @@ -1192,7 +1178,7 @@ public class ItemHelper( /// Items tpl to check parents of /// Tpl values to check if parents of item match /// bool Match found - public bool DoesItemOrParentsIdMatch(string tpl, List tplsToCheck) + public bool DoesItemOrParentsIdMatch(MongoId tpl, List tplsToCheck) { var itemDetails = GetItem(tpl); var itemExists = itemDetails.Key; @@ -1277,7 +1263,7 @@ public class ItemHelper( /// The unique identifier of the item for which to find the main parent. /// A Dictionary containing item IDs mapped to their corresponding Item objects for quick lookup. /// The Item object representing the top-most parent of the given item, or null if no such parent exists. - public Item? GetAttachmentMainParent(string itemId, Dictionary itemsMap) + public Item? GetAttachmentMainParent(MongoId itemId, Dictionary itemsMap) { var currentItem = itemsMap.FirstOrDefault(x => x.Key == itemId).Value; @@ -1323,7 +1309,7 @@ public class ItemHelper( /// The unique identifier of the item for which to find the equipment parent. /// A Dictionary containing item IDs mapped to their corresponding Item objects for quick lookup. /// The Item object representing the equipment parent of the given item, or `null` if no such parent exists - public Item? GetEquipmentParent(string itemId, Dictionary itemsMap) + public Item? GetEquipmentParent(MongoId itemId, Dictionary itemsMap) { var currentItem = itemsMap.GetValueOrDefault(itemId); @@ -1345,11 +1331,9 @@ public class ItemHelper( /// Item with children /// The base items root id /// ItemSize object (width and height) - public ItemSize GetItemSize(ICollection items, string rootItemId) + public ItemSize GetItemSize(ICollection items, MongoId rootItemId) { - var rootTemplate = GetItem( - items.Where(x => x.Id.Equals(rootItemId)).ToList()[0].Template - ).Value; + var rootTemplate = GetItem(items.FirstOrDefault(x => x.Id == rootItemId).Template).Value; var width = rootTemplate.Properties.Width; var height = rootTemplate.Properties.Height; @@ -1364,9 +1348,9 @@ public class ItemHelper( var forcedRight = 0; var children = items.FindAndReturnChildrenAsItems(rootItemId); - foreach (var ci in children) + foreach (var child in children) { - var itemTemplate = GetItem(ci.Template).Value; + var itemTemplate = GetItem(child.Template).Value; // Calculating child ExtraSize if (itemTemplate.Properties.ExtraSizeForceAdd ?? false) @@ -1747,7 +1731,7 @@ public class ItemHelper( /// /// Tpl of item to get name of /// Full name, short name if not found - public string GetItemName(string itemTpl) + public string GetItemName(MongoId itemTpl) { var localeDb = _localeService.GetLocaleDb(); var result = localeDb[$"{itemTpl} Name"]; @@ -1802,9 +1786,9 @@ public class ItemHelper( if (modSpawnChanceDict is not null && !(slot.Required ?? false)) { // only roll chance to not include mod if dict exists and has value for this mod type (e.g. front_plate) - if (modSpawnChanceDict.ContainsKey(slot.Name.ToLower())) + if (modSpawnChanceDict.ContainsKey(slot.Name.ToLowerInvariant())) { - if (!_randomUtil.GetChance100(modSpawnChanceDict[slot.Name.ToLower()])) + if (!_randomUtil.GetChance100(modSpawnChanceDict[slot.Name.ToLowerInvariant()])) { continue; } @@ -1905,7 +1889,7 @@ public class ItemHelper( /// True if it is a slot that holds a removable plate public bool IsRemovablePlateSlot(string slotName) { - return GetRemovablePlateSlotIds().Contains(slotName.ToLower()); + return GetRemovablePlateSlotIds().Contains(slotName.ToLowerInvariant()); } // Get a list of slot names that hold removable plates @@ -2023,7 +2007,7 @@ public class ItemHelper( // Return all tpls from Money enum // Returns string tpls - public List GetMoneyTpls() + public List GetMoneyTpls() { return [Money.ROUBLES, Money.DOLLARS, Money.EUROS, Money.GP]; } @@ -2042,7 +2026,7 @@ public class ItemHelper( ); } - public string? GetItemBaseType(string tpl, bool rootOnly = true) + public string? GetItemBaseType(MongoId tpl, bool rootOnly = true) { var result = GetItem(tpl); if (!result.Key) @@ -2077,7 +2061,7 @@ public class ItemHelper( /// Get a 2D grid of a container's item slots /// /// Tpl id of the container - public int[][] GetContainerMapping(string containerTpl) + public int[,] GetContainerMapping(string containerTpl) { // Get template from db var containerTemplate = GetItem(containerTpl).Value; @@ -2086,25 +2070,18 @@ public class ItemHelper( var height = containerTemplate.Properties.Grids[0].Props.CellsV; var width = containerTemplate.Properties.Grids[0].Props.CellsH; - return GetBlankContainerMap(height.Value, width.Value); + return GetBlankContainerMap(width.Value, height.Value); } /// /// Get a blank two-dimensional representation of a container /// - /// Horizontal size of container - /// Vertical size of container + /// Width of container (columns) + /// Height of container (rows) /// Two-dimensional representation of container - public int[][] GetBlankContainerMap(int containerY, int containerX) + public int[,] GetBlankContainerMap(int horizontalSizeX, int verticalSizeY) { - //var x = new int[containerY][]; - //for (int i = 0; i < containerY; i++) - //{ - // x[i] = new int[containerH]; - //} - - //return x; - - return Enumerable.Range(0, containerY).Select(_ => new int[containerX]).ToArray(); + // Rows / Columns + return new int[verticalSizeY, horizontalSizeX]; } } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/ModHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/ModHelper.cs index 04ef1893..3c257120 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/ModHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/ModHelper.cs @@ -5,17 +5,8 @@ using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Helpers; [Injectable] -public class ModHelper +public class ModHelper(FileUtil fileUtil, JsonUtil jsonUtil) { - private readonly FileUtil _fileUtil; - private readonly JsonUtil _jsonUtil; - - public ModHelper(FileUtil fileUtil, JsonUtil jsonUtil) - { - _fileUtil = fileUtil; - _jsonUtil = jsonUtil; - } - public string GetAbsolutePathToModFolder(Assembly modAssembly) { // The full path to the mod folder @@ -25,15 +16,15 @@ public class ModHelper public string GetRawFileData(string pathToFile, string fileName) { // Read the content of the config file as a string - return _fileUtil.ReadFile(Path.Combine(pathToFile, fileName)); + return fileUtil.ReadFile(Path.Combine(pathToFile, fileName)); } public T GetJsonDataFromFile(string pathToFile, string fileName) { // Read the content of the config file as a string - var rawContent = _fileUtil.ReadFile(Path.Combine(pathToFile, fileName)); + var rawContent = fileUtil.ReadFile(Path.Combine(pathToFile, fileName)); // Take the string above and deserialise it into a file with a type (defined between the diamond brackets) - return _jsonUtil.Deserialize(rawContent); + return jsonUtil.Deserialize(rawContent); } } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/NotificationSendHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/NotificationSendHelper.cs index f2ecf9ca..6a6c711b 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/NotificationSendHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/NotificationSendHelper.cs @@ -1,4 +1,5 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Profile; using SPTarkov.Server.Core.Models.Eft.Ws; using SPTarkov.Server.Core.Models.Enums; @@ -15,7 +16,6 @@ namespace SPTarkov.Server.Core.Helpers; public class NotificationSendHelper( ISptLogger _logger, SptWebSocketConnectionHandler _sptWebSocketConnectionHandler, - HashUtil _hashUtil, SaveServer _saveServer, NotificationService _notificationService, TimeUtil _timeUtil, @@ -76,7 +76,7 @@ public class NotificationSendHelper( dialog.New += 1; var message = new Message { - Id = _hashUtil.Generate(), + Id = new MongoId(), UserId = dialog.Id, MessageType = messageType, DateTime = _timeUtil.GetTimeStamp(), diff --git a/Libraries/SPTarkov.Server.Core/Helpers/NotifierHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/NotifierHelper.cs index 6c208a8e..44208ebd 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/NotifierHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/NotifierHelper.cs @@ -1,12 +1,12 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Profile; using SPTarkov.Server.Core.Models.Eft.Ws; -using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Helpers; [Injectable(InjectionType.Singleton)] -public class NotifierHelper(HttpServerHelper httpServerHelper, HashUtil hashUtil) +public class NotifierHelper(HttpServerHelper httpServerHelper) { protected static readonly WsPing ping = new(); @@ -57,7 +57,7 @@ public class NotifierHelper(HttpServerHelper httpServerHelper, HashUtil hashUtil return new WsRagfairNewRating { EventType = NotificationEventType.RagfairNewRating, - EventIdentifier = hashUtil.Generate(), + EventIdentifier = new MongoId(), Rating = rating, IsRatingGrowing = isGrowing, }; diff --git a/Libraries/SPTarkov.Server.Core/Helpers/PaymentHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/PaymentHelper.cs index 100d24b8..8749a378 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/PaymentHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/PaymentHelper.cs @@ -1,4 +1,5 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Servers; @@ -10,7 +11,7 @@ public class PaymentHelper(ConfigServer configServer) { protected bool _addedCustomMoney; protected readonly InventoryConfig _inventoryConfig = configServer.GetConfig(); - protected readonly HashSet _moneyTpls = + protected readonly HashSet _moneyTpls = [ Money.DOLLARS, Money.EUROS, @@ -23,7 +24,7 @@ public class PaymentHelper(ConfigServer configServer) /// /// Item Tpl to check /// - public bool IsMoneyTpl(string tpl) + public bool IsMoneyTpl(MongoId tpl) { // Add custom currency first time this method is accessed if (!_addedCustomMoney) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/PresetHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/PresetHelper.cs index 3603799f..c4592359 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/PresetHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/PresetHelper.cs @@ -17,9 +17,9 @@ public class PresetHelper(DatabaseService _databaseService, ItemHelper _itemHelp /// /// Preset cache - key = item tpl, value = preset ids /// - protected Dictionary _lookup = new(); + protected Dictionary _lookup = new(); - public void HydratePresetStore(Dictionary input) + public void HydratePresetStore(Dictionary input) { _lookup = input; } @@ -113,7 +113,7 @@ public class PresetHelper(DatabaseService _databaseService, ItemHelper _itemHelp * @param baseClass The BaseClasses enum to check against * @returns True if the preset is of the given base class, false otherwise */ - public bool IsPresetBaseClass(string id, string baseClass) + public bool IsPresetBaseClass(string id, MongoId baseClass) { return IsPreset(id) && _itemHelper.IsOfBaseclass(GetPreset(id).Encyclopedia, baseClass); } @@ -123,7 +123,7 @@ public class PresetHelper(DatabaseService _databaseService, ItemHelper _itemHelp /// /// Tpl id to check /// True if preset exists for tpl - public bool HasPreset(string templateId) + public bool HasPreset(MongoId templateId) { return _lookup.ContainsKey(templateId); } @@ -169,7 +169,7 @@ public class PresetHelper(DatabaseService _databaseService, ItemHelper _itemHelp /// /// Items tpl to get preset for /// null if no default preset, otherwise Preset - public Preset? GetDefaultPreset(string templateId) + public Preset? GetDefaultPreset(MongoId templateId) { // look in main cache for presets for this tpl if (!_lookup.TryGetValue(templateId, out var presetDetails)) @@ -202,7 +202,7 @@ public class PresetHelper(DatabaseService _databaseService, ItemHelper _itemHelp /// /// Preset id to look up /// tpl mongoid - public string GetBaseItemTpl(string presetId) + public MongoId GetBaseItemTpl(MongoId presetId) { if (!_databaseService.GetGlobals().ItemPresets.TryGetValue(presetId, out var preset)) { @@ -225,7 +225,7 @@ public class PresetHelper(DatabaseService _databaseService, ItemHelper _itemHelp /// /// The item template to get the price of /// The price of the given item preset, or base item if no preset exists - public double GetDefaultPresetOrItemPrice(string tpl) + public double GetDefaultPresetOrItemPrice(MongoId tpl) { // Get default preset if it exists var defaultPreset = GetDefaultPreset(tpl); diff --git a/Libraries/SPTarkov.Server.Core/Helpers/ProfileHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/ProfileHelper.cs index 192bfa61..adc94be8 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/ProfileHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/ProfileHelper.cs @@ -123,8 +123,8 @@ public class ProfileHelper( && !StringsMatch(p.ProfileInfo.ProfileId, sessionID) && // SessionIds dont match StringsMatch( - p.CharacterData.PmcData.Info.LowerNickname.ToLower(), - nicknameRequest.Nickname.ToLower() + p.CharacterData.PmcData.Info.LowerNickname.ToLowerInvariant(), + nicknameRequest.Nickname.ToLowerInvariant() ) ); // Nicknames do } @@ -564,7 +564,7 @@ public class ProfileHelper( public bool IsDeveloperAccount(string sessionID) { return GetFullProfile(sessionID) - ?.ProfileInfo?.Edition?.ToLower() + ?.ProfileInfo?.Edition?.ToLowerInvariant() .StartsWith("spt developer") ?? false; } @@ -602,24 +602,6 @@ public class ProfileHelper( } } - /// - /// Iterate over all bonuses and sum up all bonuses of desired type in provided profile - /// - /// Player profile - /// Bonus to sum up - /// Summed bonus value or 0 if no bonus found - public double GetBonusValueFromProfile(PmcData pmcProfile, BonusType desiredBonus) - { - var bonuses = pmcProfile?.Bonuses?.Where(b => b.Type == desiredBonus); - if (bonuses is null || !bonuses.Any()) - { - return 0; - } - - // Sum all bonuses found above - return bonuses?.Sum(bonus => bonus?.Value ?? 0) ?? 0; - } - public bool HasAccessToRepeatableFreeRefreshSystem(PmcData pmcProfile) { return _gameEditionsWithFreeRefresh.Contains(pmcProfile.Info.GameVersion); diff --git a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs index cee6e4ce..0abab336 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs @@ -2,6 +2,7 @@ using System.Globalization; using SPTarkov.Common.Extensions; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.ItemEvent; @@ -57,19 +58,6 @@ public class QuestHelper( } } - /// - /// Get status of a quest in player profile by its id - /// - /// Profile to search - /// Quest id to look up - /// QuestStatus enum - public QuestStatusEnum GetQuestStatus(PmcData pmcData, string questId) - { - var quest = pmcData.Quests?.FirstOrDefault(q => q.QId == questId); - - return quest?.Status ?? QuestStatusEnum.Locked; - } - /// /// returns true if the level condition is satisfied /// @@ -636,7 +624,7 @@ public class QuestHelper( /// ItemEvent router response public void ChangeItemStack( PmcData pmcData, - string itemId, + MongoId itemId, int newStackSize, string sessionID, ItemEventRouterResponse output @@ -666,7 +654,9 @@ public class QuestHelper( { // this case is probably dead Code right now, since the only calling function // checks explicitly for Value > 0. - output.ProfileChanges[sessionID].Items.DeletedItems.Add(new Item { Id = itemId }); + output + .ProfileChanges[sessionID] + .Items.DeletedItems.Add(new DeletedItem { Id = itemId }); pmcData.Inventory.Items.RemoveAt(inventoryItemIndex); } } @@ -965,7 +955,7 @@ public class QuestHelper( /// Profile to update /// New state the quest should be in /// Id of the quest to alter the status of - public void UpdateQuestState(PmcData pmcData, QuestStatusEnum newQuestState, string questId) + protected void UpdateQuestState(PmcData pmcData, QuestStatusEnum newQuestState, string questId) { // Find quest in profile, update status to desired status var questToUpdate = pmcData.Quests.FirstOrDefault(quest => quest.QId == questId); @@ -1021,8 +1011,8 @@ public class QuestHelper( /// All quests to check /// quest id with 'FindItem' condition id public Dictionary GetFindItemConditionByQuestItem( - string itemTpl, - string[] questIds, + MongoId itemTpl, + MongoId[] questIds, List allQuests ) { @@ -1604,12 +1594,12 @@ public class QuestHelper( ); } - /** - * Look for newly available quests after completing a quest with a requirement to wait x minutes (time-locked) before being available and add data to profile - * @param pmcData Player profile to update - * @param quests Quests to look for wait conditions in - * @param completedQuestId Quest just completed - */ + /// + /// Look for newly available quests after completing a quest with a requirement to wait x minutes (time-locked) before being available and add data to profile + /// + /// Player profile to update + /// Quests to look for wait conditions in + /// Quest just completed protected void AddTimeLockedQuestsToProfile( PmcData pmcData, List quests, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RagfairHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RagfairHelper.cs index 0f712dd1..c531839d 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/RagfairHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/RagfairHelper.cs @@ -15,7 +15,6 @@ public class RagfairHelper( TraderAssortHelper traderAssortHelper, DatabaseService databaseService, HandbookHelper handbookHelper, - ItemHelper itemHelper, RagfairLinkedItemService ragfairLinkedItemService, ConfigServer configServer, ICloner cloner diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs index 5eaa3b43..56e7e8ab 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs @@ -1,6 +1,7 @@ using SPTarkov.Common.Extensions; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.ItemEvent; @@ -20,7 +21,6 @@ namespace SPTarkov.Server.Core.Helpers; public class RagfairOfferHelper( ISptLogger _logger, TimeUtil _timeUtil, - HashUtil _hashUtil, BotHelper _botHelper, RagfairSortHelper _ragfairSortHelper, PresetHelper _presetHelper, @@ -112,7 +112,7 @@ public class RagfairOfferHelper( protected void CheckAndLockOfferFromPlayerTieredFlea( TieredFlea tieredFlea, RagfairOffer offer, - List tieredFleaLimitTypes, + List tieredFleaLimitTypes, int playerLevel ) { @@ -819,7 +819,7 @@ public class RagfairOfferHelper( // Create an item template item var requestedItem = new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = requirement.Template, Upd = new Upd { StackObjectsCount = requirement.Count * boughtAmount }, }; @@ -881,7 +881,7 @@ public class RagfairOfferHelper( * @param boughtAmount How many were purchased * @returns Localised message text */ - protected string GetLocalisedOfferSoldMessage(string itemTpl, int boughtAmount) + protected string GetLocalisedOfferSoldMessage(MongoId itemTpl, int boughtAmount) { // Generate a message to inform that item was sold var globalLocales = _localeService.GetLocaleDb(); @@ -896,7 +896,7 @@ public class RagfairOfferHelper( } // Used to replace tokens in sold message sent to player - var messageKey = $"{itemTpl} Name"; + var messageKey = $"{itemTpl.ToString()} Name"; var hasKey = globalLocales.TryGetValue(messageKey, out var value); var tplVars = new SystemData diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs index b30afeb7..194161ca 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs @@ -1,5 +1,6 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Config; @@ -18,7 +19,6 @@ public class RagfairServerHelper( TimeUtil timeUtil, DatabaseService databaseService, ItemHelper itemHelper, - TraderHelper traderHelper, WeightedRandomHelper weightedRandomHelper, MailSendService mailSendService, ServerLocalisationService localisationService, @@ -99,7 +99,7 @@ public class RagfairServerHelper( * @param itemTemplateId Item tpl to check is blacklisted * @returns True if its blacklisted */ - protected bool IsItemOnCustomFleaBlacklist(string itemTemplateId) + protected bool IsItemOnCustomFleaBlacklist(MongoId itemTemplateId) { return ragfairConfig.Dynamic.Blacklist.Custom.Contains(itemTemplateId); } @@ -146,7 +146,7 @@ public class RagfairServerHelper( ); } - public int CalculateDynamicStackCount(string tplId, bool isPreset) + public int CalculateDynamicStackCount(MongoId tplId, bool isPreset) { var config = ragfairConfig.Dynamic; diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RepeatableQuestHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RepeatableQuestHelper.cs index 9eb9aa87..2ead73fa 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/RepeatableQuestHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/RepeatableQuestHelper.cs @@ -6,7 +6,6 @@ using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; -using SPTarkov.Server.Core.Utils; using SPTarkov.Server.Core.Utils.Cloners; namespace SPTarkov.Server.Core.Helpers; @@ -16,7 +15,6 @@ public class RepeatableQuestHelper( ISptLogger logger, DatabaseService databaseService, ServerLocalisationService serverLocalisationService, - HashUtil hashUtil, ICloner cloner, ConfigServer configServer ) @@ -88,7 +86,7 @@ public class RepeatableQuestHelper( return null; } - quest.Id = hashUtil.Generate(); + quest.Id = new MongoId(); quest.TraderId = traderId; return quest; @@ -202,7 +200,7 @@ public class RepeatableQuestHelper( return null; } - questData.QuestStatus.Id = hashUtil.Generate(); + questData.QuestStatus.Id = new MongoId(); questData.QuestStatus.Uid = sessionId; // Needs to match user id questData.QuestStatus.QId = questData.Id; // Needs to match quest id diff --git a/Libraries/SPTarkov.Server.Core/Helpers/SecureContainerHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/SecureContainerHelper.cs deleted file mode 100644 index 661a8d0d..00000000 --- a/Libraries/SPTarkov.Server.Core/Helpers/SecureContainerHelper.cs +++ /dev/null @@ -1,30 +0,0 @@ -using SPTarkov.DI.Annotations; -using SPTarkov.Server.Core.Extensions; -using SPTarkov.Server.Core.Models.Eft.Common.Tables; - -namespace SPTarkov.Server.Core.Helpers; - -[Injectable] -public class SecureContainerHelper(ItemHelper _itemHelper) -{ - /// - /// Get a list of the item IDs (NOT tpls) inside a secure container - /// - /// Inventory items to look for secure container in - /// List of ids - public List GetSecureContainerItems(List items) - { - var secureContainer = items.First(x => x.SlotId == "SecuredContainer"); - - // No container found, drop out - if (secureContainer is null) - { - return []; - } - - var itemsInSecureContainer = items.FindAndReturnChildrenByItems(secureContainer.Id); - - // Return all items returned and exclude the secure container item itself - return itemsInSecureContainer.Where(x => x != secureContainer.Id).ToList(); - } -} diff --git a/Libraries/SPTarkov.Server.Core/Helpers/TradeHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/TradeHelper.cs index f77f8e24..ba5644e9 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/TradeHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/TradeHelper.cs @@ -1,6 +1,7 @@ using System.Text.RegularExpressions; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Inventory; @@ -19,7 +20,6 @@ namespace SPTarkov.Server.Core.Helpers; [Injectable] public class TradeHelper( ISptLogger _logger, - DatabaseService _databaseService, TraderHelper _traderHelper, ItemHelper _itemHelper, QuestHelper _questHelper, @@ -415,7 +415,7 @@ public record PurchaseDetails public record PurchaseItems { - public string ItemId { get; set; } + public MongoId ItemId { get; set; } public double Count { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/TraderHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/TraderHelper.cs index 8ad1bc40..13c6a432 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/TraderHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/TraderHelper.cs @@ -526,7 +526,7 @@ public class TraderHelper( /// /// Item to look up highest price for /// highest rouble cost for item - public double GetHighestTraderPriceRouble(string tpl) + public double GetHighestTraderPriceRouble(MongoId tpl) { if (_highestTraderPriceItems is not null) { @@ -580,7 +580,7 @@ public class TraderHelper( /// /// Item to look up best trader sell-to price /// Rouble price - public double GetHighestSellToTraderPrice(string tpl) + public double GetHighestSellToTraderPrice(MongoId tpl) { // Find largest trader price for item var highestPrice = 1d; // Default price diff --git a/Libraries/SPTarkov.Server.Core/Helpers/WeightedRandomHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/WeightedRandomHelper.cs index 6fcaa0a5..1a5701f7 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/WeightedRandomHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/WeightedRandomHelper.cs @@ -1,4 +1,5 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Spt.Helper; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Services; @@ -111,7 +112,7 @@ public class WeightedRandomHelper( /// Find the greated common divisor of all weights and use it on the passed in dictionary /// /// Values to reduce - public void ReduceWeightValues(IDictionary weightedDict) + public void ReduceWeightValues(IDictionary weightedDict) { // No values, nothing to reduce if (weightedDict.Count == 0) diff --git a/Libraries/SPTarkov.Server.Core/Models/Common/IdWithCount.cs b/Libraries/SPTarkov.Server.Core/Models/Common/IdWithCount.cs index 6f068842..88b2225c 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Common/IdWithCount.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Common/IdWithCount.cs @@ -11,7 +11,7 @@ public record IdWithCount /// ID of stack to take money from /// [JsonPropertyName("id")] - public string? Id { get; set; } + public MongoId Id { get; set; } /// /// Amount of money to take off player for treatment diff --git a/Libraries/SPTarkov.Server.Core/Models/Common/MongoId.cs b/Libraries/SPTarkov.Server.Core/Models/Common/MongoId.cs index b547fedb..7b7d4c45 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Common/MongoId.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Common/MongoId.cs @@ -1,39 +1,32 @@ using System.Runtime.CompilerServices; -using System.Text.RegularExpressions; using SPTarkov.Server.Core.Extensions; namespace SPTarkov.Server.Core.Models.Common; -public readonly partial struct MongoId : IEquatable +public readonly struct MongoId : IEquatable { - private readonly string _stringId; + private readonly string? _stringId; - public MongoId( - string id, - // TODO: TEMPORARY REMOVE ME WHEN DONE!!!! - [CallerFilePath] string callerFilePath = "", - [CallerMemberName] string methodName = "", - [CallerLineNumber] int callerLineNumber = 0 - ) + public MongoId(string? id) { - // This is temporary, otherwise item buying is broken as when LINQ searches for string id's it's possible null is passed - if (id == null) + // Handle null strings, various id's are null either by BSG or by our own doing with LINQ + if (string.IsNullOrEmpty(id)) { - id = string.Empty; + _stringId = null; + + return; } if (id.Length != 24) { // TODO: Items.json root item has an empty parentId property - Console.WriteLine( - $"Critical MongoId error [{callerFilePath}::{methodName} L{callerLineNumber}]: Incorrect length. id: {id}" - ); + Console.WriteLine($"Critical MongoId error: Incorrect length. id: {id}"); } if (!IsValidMongoId(id)) { Console.WriteLine( - $"Critical MongoId error [{callerFilePath}::{methodName} L{callerLineNumber}]: Incorrect format. Must be a hexadecimal [a-f0-9] of 24 characters. id: {id}" + $"Critical MongoId error: Incorrect format. Must be a hexadecimal [a-f0-9] of 24 characters. id: {id}" ); } @@ -92,7 +85,7 @@ public readonly partial struct MongoId : IEquatable { if (other is null) { - return other == this; + return this == null; } return other.Equals(ToString(), StringComparison.InvariantCultureIgnoreCase); @@ -135,7 +128,7 @@ public readonly partial struct MongoId : IEquatable public override int GetHashCode() { - return _stringId.GetHashCode(); + return (_stringId ?? string.Empty).GetHashCode(); } public bool IsEmpty() diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Location.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Location.cs index 69234e94..6db6acc5 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Location.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Location.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Utils.Json; namespace SPTarkov.Server.Core.Models.Eft.Common; @@ -147,7 +148,7 @@ public record StaticForced public string ContainerId { get; set; } [JsonPropertyName("itemTpl")] - public string ItemTpl { get; set; } + public MongoId ItemTpl { get; set; } } public record StaticContainerData diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/LocationBase.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/LocationBase.cs index 7eb76b40..83601624 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/LocationBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/LocationBase.cs @@ -291,7 +291,7 @@ public record LocationBase public long? UnixDateTime { get; set; } [JsonPropertyName("_Id")] - public string? IdField { get; set; } + public MongoId IdField { get; set; } [JsonPropertyName("doors")] public List? Doors { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs index d0748463..c5eec3fc 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs @@ -14,7 +14,7 @@ public record BotBase public Dictionary? ExtensionData { get; set; } [JsonPropertyName("_id")] - public string? Id { get; set; } + public MongoId? Id { get; set; } [JsonPropertyName("aid")] [JsonConverter(typeof(StringToNumberFactoryConverter))] @@ -28,7 +28,7 @@ public record BotBase [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [JsonPropertyName("savage")] - public string? Savage { get; set; } + public MongoId? Savage { get; set; } [JsonPropertyName("karmaValue")] public double? KarmaValue { get; set; } @@ -53,10 +53,10 @@ public record BotBase [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [JsonPropertyName("Encyclopedia")] - public Dictionary? Encyclopedia { get; set; } + public Dictionary? Encyclopedia { get; set; } [JsonPropertyName("TaskConditionCounters")] - public Dictionary? TaskConditionCounters { get; set; } + public Dictionary? TaskConditionCounters { get; set; } [JsonPropertyName("InsuredItems")] public List? InsuredItems { get; set; } @@ -82,7 +82,7 @@ public record BotBase /// [JsonPropertyName("Achievements")] [JsonConverter(typeof(ArrayToObjectFactoryConverter))] - public Dictionary? Achievements { get; set; } + public Dictionary? Achievements { get; set; } [JsonPropertyName("RepeatableQuests")] public List? RepeatableQuests { get; set; } @@ -105,7 +105,7 @@ public record BotBase [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [JsonPropertyName("WishList")] [JsonConverter(typeof(ArrayToObjectFactoryConverter))] - public DictionaryOrList? WishList { get; set; } + public DictionaryOrList? WishList { get; set; } [JsonPropertyName("moneyTransferLimitData")] public MoneyTransferLimits? MoneyTransferLimitData { get; set; } @@ -571,7 +571,7 @@ public record DroppedItem public string? QuestId { get; set; } - public string? ItemId { get; set; } + public MongoId? ItemId { get; set; } public string? ZoneId { get; set; } } @@ -583,7 +583,7 @@ public record FoundInRaidItem public string? QuestId { get; set; } - public string? ItemId { get; set; } + public MongoId? ItemId { get; set; } } public record Victim @@ -826,7 +826,7 @@ public record Hideout /// public string? Seed { get; set; } - public Dictionary? MannequinPoses { get; set; } + public Dictionary? MannequinPoses { get; set; } [JsonPropertyName("sptUpdateLastRunTimestamp")] public long? SptUpdateLastRunTimestamp { get; set; } @@ -938,7 +938,7 @@ public record Production // use this instead of productive and scavcase [JsonPropertyName("sptIsCultistCircle")] public bool? SptIsCultistCircle { get; set; } - public string? RecipeId { get; set; } + public MongoId RecipeId { get; set; } } public record BotHideoutArea @@ -1094,7 +1094,7 @@ public record Bonus public Dictionary? ExtensionData { get; set; } [JsonPropertyName("id")] - public MongoId? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("type")] [JsonConverter(typeof(JsonStringEnumConverter))] diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotType.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotType.cs index da7db594..25a60260 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotType.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotType.cs @@ -358,7 +358,7 @@ public record GenerationData /// [JsonPropertyName("whitelist")] [JsonConverter(typeof(ArrayToObjectFactoryConverter))] - public Dictionary? Whitelist { get; set; } + public Dictionary? Whitelist { get; set; } } public record GenerationWeightingItems @@ -496,15 +496,15 @@ public record ItemPools [JsonExtensionData] public Dictionary? ExtensionData { get; set; } - public Dictionary? Backpack { get; set; } + public Dictionary? Backpack { get; set; } - public Dictionary? Pockets { get; set; } + public Dictionary? Pockets { get; set; } - public Dictionary? SecuredContainer { get; set; } + public Dictionary? SecuredContainer { get; set; } - public Dictionary? SpecialLoot { get; set; } + public Dictionary? SpecialLoot { get; set; } - public Dictionary? TacticalVest { get; set; } + public Dictionary? TacticalVest { get; set; } } public record BotDbSkills diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/HandbookBase.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/HandbookBase.cs index e5598f5e..9df57aea 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/HandbookBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/HandbookBase.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Common.Tables; @@ -20,11 +21,11 @@ public record HandbookCategory public Dictionary? ExtensionData { get; set; } [JsonPropertyName("Id")] - public string? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("ParentId")] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - public string? ParentId { get; set; } + public MongoId? ParentId { get; set; } [JsonPropertyName("Icon")] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] @@ -43,11 +44,11 @@ public record HandbookItem public Dictionary? ExtensionData { get; set; } [JsonPropertyName("Id")] - public string? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("ParentId")] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - public string? ParentId { get; set; } + public MongoId ParentId { get; set; } [JsonPropertyName("Price")] public double? Price { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs index c60c9296..27ee5e62 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs @@ -58,19 +58,11 @@ public record HideoutItem public MongoId _Id { get { return Id; } - set - { - if (value == null) - { - return; - } - - Id = value; - } + set { Id = value; } } [JsonPropertyName("id")] - public required MongoId Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("_tpl")] public required MongoId Template { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/LocationServices.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/LocationServices.cs index f267fb1c..7d77c549 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/LocationServices.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/LocationServices.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Utils.Json.Converters; @@ -72,7 +73,7 @@ public record TraderService public Dictionary? ServiceItemCost { get; set; } [JsonPropertyName("UniqueItems")] - public List? UniqueItems { get; set; } + public List? UniqueItems { get; set; } } public record ServiceRequirements diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/LocationsGenerateAllResponse.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/LocationsGenerateAllResponse.cs index 76d54d06..dfa7a09e 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/LocationsGenerateAllResponse.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/LocationsGenerateAllResponse.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Common.Tables; @@ -8,7 +9,7 @@ public record LocationsGenerateAllResponse public Dictionary? ExtensionData { get; set; } [JsonPropertyName("locations")] - public Dictionary Locations { get; set; } + public Dictionary Locations { get; set; } [JsonPropertyName("paths")] public List? Paths { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs index 4ffa24ab..2d477bfc 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Utils.Json; using SPTarkov.Server.Core.Utils.Json.Converters; @@ -20,7 +21,7 @@ public record Quest /// _id /// [JsonPropertyName("_id")] - public required string Id { get; set; } + public required MongoId Id { get; set; } [JsonPropertyName("canShowNotificationsInGame")] public required bool CanShowNotificationsInGame { get; set; } @@ -144,7 +145,7 @@ public record QuestStatus public Dictionary? ExtensionData { get; set; } [JsonPropertyName("qid")] - public required string QId { get; set; } + public required MongoId QId { get; set; } [JsonPropertyName("startTime")] public required double StartTime { get; set; } @@ -189,7 +190,7 @@ public record QuestCondition public Dictionary? ExtensionData { get; set; } [JsonPropertyName("id")] - public required string Id { get; set; } + public required MongoId Id { get; set; } [JsonPropertyName("index")] public int? Index { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Reward.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Reward.cs index d391ef12..940a3ebb 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Reward.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Reward.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Utils.Json.Converters; @@ -14,7 +15,7 @@ public record Reward public double? Value { get; set; } [JsonPropertyName("id")] - public string? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("type")] [JsonConverter(typeof(JsonStringEnumConverter))] diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Trader.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Trader.cs index fc3b9090..1972b057 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Trader.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Trader.cs @@ -226,13 +226,13 @@ public record TraderRepair public bool? Availability { get; set; } [JsonPropertyName("currency")] - public MongoId Currency { get; set; } + public string Currency { get; set; } [JsonPropertyName("currency_coefficient")] public double? CurrencyCoefficient { get; set; } [JsonPropertyName("excluded_category")] - public List? ExcludedCategory { get; set; } + public List? ExcludedCategory { get; set; } /// /// Doesn't exist in client object @@ -260,10 +260,10 @@ public record TraderAssort public List? Items { get; set; } [JsonPropertyName("barter_scheme")] - public Dictionary>>? BarterScheme { get; set; } + public Dictionary>>? BarterScheme { get; set; } [JsonPropertyName("loyal_level_items")] - public Dictionary? LoyalLevelItems { get; set; } + public Dictionary? LoyalLevelItems { get; set; } } public record BarterScheme diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/ChatServer.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/ChatServer.cs index 87d1b105..51f3a3db 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/ChatServer.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/ChatServer.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Dialog; @@ -8,7 +9,7 @@ public record ChatServer public Dictionary? ExtensionData { get; set; } [JsonPropertyName("_id")] - public string? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("RegistrationId")] public int? RegistrationId { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/SendMessageRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/SendMessageRequest.cs index 3ddfd946..61e61d4e 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/SendMessageRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/SendMessageRequest.cs @@ -10,14 +10,14 @@ public record SendMessageRequest : IRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("dialogId")] - public string? DialogId { get; set; } + public required string DialogId { get; set; } [JsonPropertyName("type")] - public MessageType? Type { get; set; } + public required MessageType Type { get; set; } [JsonPropertyName("text")] - public string? Text { get; set; } + public required string Text { get; set; } [JsonPropertyName("replyTo")] - public string? ReplyTo { get; set; } + public required string ReplyTo { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Game/GetItemPricesResponse.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Game/GetItemPricesResponse.cs index af324087..2700c82d 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Game/GetItemPricesResponse.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Game/GetItemPricesResponse.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Game; @@ -11,7 +12,7 @@ public record GetItemPricesResponse public double? SupplyNextTime { get; set; } [JsonPropertyName("prices")] - public Dictionary? Prices { get; set; } + public Dictionary? Prices { get; set; } [JsonPropertyName("currencyCourses")] public Dictionary? CurrencyCourses { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Health/OffraidEatRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Health/OffraidEatRequestData.cs index 4a480ecc..a5f2e255 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Health/OffraidEatRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Health/OffraidEatRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Inventory; namespace SPTarkov.Server.Core.Models.Eft.Health; @@ -9,7 +10,7 @@ public record OffraidEatRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId Item { get; set; } [JsonPropertyName("count")] public int? Count { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Health/OffraidHealRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Health/OffraidHealRequestData.cs index 000de8ca..8fb42d6f 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Health/OffraidHealRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Health/OffraidHealRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Inventory; namespace SPTarkov.Server.Core.Models.Eft.Health; @@ -9,7 +10,7 @@ public record OffraidHealRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId Item { get; set; } [JsonPropertyName("part")] public string? Part { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutArea.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutArea.cs index 160576cc..aa1f3184 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutArea.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutArea.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; @@ -10,7 +11,7 @@ public record HideoutArea public Dictionary? ExtensionData { get; set; } [JsonPropertyName("_id")] - public string? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("type")] public HideoutAreas? Type { get; set; } @@ -37,7 +38,7 @@ public record HideoutArea public bool? EnableAreaRequirements { get; set; } [JsonPropertyName("parentArea")] - public string? ParentArea { get; set; } + public MongoId? ParentArea { get; set; } [JsonPropertyName("stages")] public Dictionary? Stages { get; set; } @@ -103,7 +104,7 @@ public record StageImprovement public Dictionary? ExtensionData { get; set; } [JsonPropertyName("id")] - public string? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("bonuses")] public List? Bonuses { get; set; } @@ -121,7 +122,7 @@ public record StageImprovementBonus public Dictionary? ExtensionData { get; set; } [JsonPropertyName("id")] - public string? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("passive")] public bool? IsPassive { get; set; } @@ -157,7 +158,7 @@ public record StageImprovementRequirement public bool? IsFunctional { get; set; } [JsonPropertyName("templateId")] - public string? TemplateId { get; set; } + public MongoId TemplateId { get; set; } [JsonPropertyName("isSpawnedInSession")] public bool? IsSpawnedInSession { get; set; } @@ -178,7 +179,7 @@ public record StageRequirement public int? RequiredLevel { get; set; } [JsonPropertyName("templateId")] - public string? TemplateId { get; set; } + public MongoId TemplateId { get; set; } [JsonPropertyName("count")] public int? Count { get; set; } @@ -190,7 +191,7 @@ public record StageRequirement public bool? IsFunctional { get; set; } [JsonPropertyName("traderId")] - public string? TraderId { get; set; } + public MongoId TraderId { get; set; } [JsonPropertyName("isSpawnedInSession")] public bool? IsSpawnedInSession { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCancelProductionRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCancelProductionRequestData.cs index 325fdf96..1259c5ac 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCancelProductionRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCancelProductionRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Request; namespace SPTarkov.Server.Core.Models.Eft.Hideout; @@ -6,7 +7,7 @@ namespace SPTarkov.Server.Core.Models.Eft.Hideout; public record HideoutCancelProductionRequestData : BaseInteractionRequestData { [JsonPropertyName("recipeId")] - public string? RecipeId { get; set; } + public MongoId RecipeId { get; set; } [JsonPropertyName("timestamp")] public long? Timestamp { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs index 061c77d3..e2bdc090 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Inventory; namespace SPTarkov.Server.Core.Models.Eft.Hideout; @@ -9,7 +10,7 @@ public record HideoutContinuousProductionStartRequestData : InventoryBaseActionR public Dictionary? ExtensionData { get; set; } [JsonPropertyName("recipeId")] - public string? RecipeId { get; set; } + public MongoId? RecipeId { get; set; } [JsonPropertyName("timestamp")] public double? Timestamp { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomisation.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomisation.cs index b3307c29..68de6c8d 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomisation.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomisation.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; namespace SPTarkov.Server.Core.Models.Eft.Hideout; @@ -39,7 +40,7 @@ public record HideoutCustomisationGlobal public bool? IsEnabled { get; set; } [JsonPropertyName("itemId")] - public string? ItemId { get; set; } + public MongoId? ItemId { get; set; } } public record HideoutCustomisationSlot diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomizationSetMannequinPoseRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomizationSetMannequinPoseRequest.cs index f309fe52..ab6d1152 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomizationSetMannequinPoseRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomizationSetMannequinPoseRequest.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Inventory; namespace SPTarkov.Server.Core.Models.Eft.Hideout; @@ -9,7 +10,7 @@ public record HideoutCustomizationSetMannequinPoseRequest : InventoryBaseActionR public Dictionary? ExtensionData { get; set; } [JsonPropertyName("poses")] - public Dictionary? Poses { get; set; } + public Dictionary? Poses { get; set; } [JsonPropertyName("timestamp")] public double? Timestamp { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutDeleteProductionRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutDeleteProductionRequestData.cs index 441b3d1d..26bf38b1 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutDeleteProductionRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutDeleteProductionRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Inventory; namespace SPTarkov.Server.Core.Models.Eft.Hideout; @@ -9,7 +10,7 @@ public record HideoutDeleteProductionRequestData : InventoryBaseActionRequestDat public Dictionary? ExtensionData { get; set; } [JsonPropertyName("recipeId")] - public string? RecipeId { get; set; } + public MongoId RecipeId { get; set; } [JsonPropertyName("timestamp")] public double? Timestamp { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutImproveAreaRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutImproveAreaRequestData.cs index 1a25b351..3e3252e5 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutImproveAreaRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutImproveAreaRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Inventory; using SPTarkov.Server.Core.Models.Enums; @@ -14,7 +15,7 @@ public record HideoutImproveAreaRequestData : InventoryBaseActionRequestData /// Hideout area id from areas.json /// [JsonPropertyName("id")] - public string? AreaId { get; set; } + public MongoId AreaId { get; set; } [JsonPropertyName("areaType")] public HideoutAreas? AreaType { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutProduction.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutProduction.cs index a820f963..ef441b21 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutProduction.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutProduction.cs @@ -25,7 +25,7 @@ public record HideoutProduction public Dictionary? ExtensionData { get; set; } [JsonPropertyName("_id")] - public string? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("areaType")] public HideoutAreas? AreaType { get; set; } @@ -40,7 +40,7 @@ public record HideoutProduction /// Tpl of item being crafted /// [JsonPropertyName("endProduct")] - public string? EndProduct { get; set; } + public MongoId EndProduct { get; set; } [JsonPropertyName("isEncoded")] public bool? IsEncoded { get; set; } @@ -70,7 +70,7 @@ public record Requirement public Dictionary? ExtensionData { get; set; } [JsonPropertyName("templateId")] - public string? TemplateId { get; set; } + public MongoId TemplateId { get; set; } [JsonPropertyName("count")] public int? Count { get; set; } @@ -109,7 +109,7 @@ public record ScavRecipe public Dictionary? ExtensionData { get; set; } [JsonPropertyName("_id")] - public string? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("requirements")] public List? Requirements { get; set; } @@ -142,5 +142,5 @@ public record CultistRecipe public Dictionary? ExtensionData { get; set; } [JsonPropertyName("_id")] - public string? Id { get; set; } + public MongoId Id { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs index 292c3aa7..ee753ace 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs @@ -10,7 +10,7 @@ public record HideoutScavCaseStartRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("recipeId")] - public string? RecipeId { get; set; } + public MongoId RecipeId { get; set; } [JsonPropertyName("items")] public List? Items { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutSingleProductionStartRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutSingleProductionStartRequestData.cs index ba0a9e9e..ea27b732 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutSingleProductionStartRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutSingleProductionStartRequestData.cs @@ -10,7 +10,7 @@ public record HideoutSingleProductionStartRequestData : InventoryBaseActionReque public Dictionary? ExtensionData { get; set; } [JsonPropertyName("recipeId")] - public string? RecipeId { get; set; } + public MongoId RecipeId { get; set; } [JsonPropertyName("items")] public List? Items { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs index 636a597e..1dd64420 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Inventory; namespace SPTarkov.Server.Core.Models.Eft.Hideout; @@ -9,7 +10,7 @@ public record HideoutTakeProductionRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("recipeId")] - public string? RecipeId { get; set; } + public MongoId RecipeId { get; set; } [JsonPropertyName("timestamp")] public int? Timestamp { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/AddItemRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/AddItemRequestData.cs index dcb2be2e..e9e053ad 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/AddItemRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/AddItemRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -29,5 +30,5 @@ public record ItemToAdd public bool? IsPreset { get; set; } [JsonPropertyName("item_id")] - public string? ItemId { get; set; } + public MongoId? ItemId { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryAddRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryAddRequestData.cs index a00657b3..77cf35ee 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryAddRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryAddRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -8,7 +9,7 @@ public record InventoryAddRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId? Item { get; set; } [JsonPropertyName("container")] public Container? Container { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryBindRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryBindRequestData.cs index 7c6890ae..5619f309 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryBindRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryBindRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -8,7 +9,7 @@ public record InventoryBindRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId Item { get; set; } [JsonPropertyName("index")] public string? Index { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryCreateMarkerRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryCreateMarkerRequestData.cs index 54baa978..ac0288a7 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryCreateMarkerRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryCreateMarkerRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -9,7 +10,7 @@ public record InventoryCreateMarkerRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId? Item { get; set; } [JsonPropertyName("mapMarker")] public MapMarker? MapMarker { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryDeleteMarkerRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryDeleteMarkerRequestData.cs index cf8d9920..efaf2991 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryDeleteMarkerRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryDeleteMarkerRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -8,7 +9,7 @@ public record InventoryDeleteMarkerRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId? Item { get; set; } [JsonPropertyName("X")] public int? X { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryEditMarkerRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryEditMarkerRequestData.cs index 625ea02f..5ab0b9bd 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryEditMarkerRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryEditMarkerRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -9,7 +10,7 @@ public record InventoryEditMarkerRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId? Item { get; set; } [JsonPropertyName("X")] public double? X { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/PinOrLockItemRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/PinOrLockItemRequest.cs index 60a0157a..71f254ef 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/PinOrLockItemRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/PinOrLockItemRequest.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -12,7 +13,7 @@ public record PinOrLockItemRequest : InventoryBaseActionRequestData /// Id of item being pinned /// [JsonPropertyName("Item")] - public string? Item { get; set; } + public MongoId? Item { get; set; } /// /// "Pinned"/"Locked"/"Free" diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/ItemEventRouterBase.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/ItemEventRouterBase.cs index 56042704..be612025 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/ItemEventRouterBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/ItemEventRouterBase.cs @@ -168,7 +168,13 @@ public record ItemChanges public List? ChangedItems { get; set; } [JsonPropertyName("del")] - public List DeletedItems { get; set; } // Only needs _id property + public List DeletedItems { get; set; } // Only needs _id property +} + +public record DeletedItem +{ + [JsonPropertyName("_id")] + public string Id { get; set; } } /// diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/ItemEventRouterRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/ItemEventRouterRequest.cs index 49281c06..0aa1490a 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/ItemEventRouterRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/ItemEventRouterRequest.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Request; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Utils; @@ -29,7 +30,7 @@ public record Daum public string? Action { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId? Item { get; set; } [JsonPropertyName("items")] public List? Items { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Prestige/ObtainPrestigeRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Prestige/ObtainPrestigeRequest.cs index 1e9becc7..cfca4240 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Prestige/ObtainPrestigeRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Prestige/ObtainPrestigeRequest.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Utils; namespace SPTarkov.Server.Core.Models.Eft.Prestige; @@ -11,7 +12,7 @@ public record ObtainPrestigeRequest : IRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("id")] - public string Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("location")] public Location Location { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/GetOtherProfileResponse.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/GetOtherProfileResponse.cs index f48e0600..22957876 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/GetOtherProfileResponse.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/GetOtherProfileResponse.cs @@ -10,7 +10,7 @@ public record GetOtherProfileResponse public Dictionary? ExtensionData { get; set; } [JsonPropertyName("id")] - public string? Id { get; set; } + public MongoId? Id { get; set; } [JsonPropertyName("aid")] public int? Aid { get; set; } @@ -28,7 +28,7 @@ public record GetOtherProfileResponse public OtherProfileEquipment? Equipment { get; set; } [JsonPropertyName("achievements")] - public Dictionary? Achievements { get; set; } + public Dictionary? Achievements { get; set; } [JsonPropertyName("favoriteItems")] public List? FavoriteItems { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/SptProfile.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/SptProfile.cs index 05959682..ecfd3061 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/SptProfile.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/SptProfile.cs @@ -87,7 +87,7 @@ public record Info /// main profile id /// [JsonPropertyName("id")] - public string? ProfileId { get; set; } + public MongoId? ProfileId { get; set; } [JsonPropertyName("scavId")] public string? ScavengerId { get; set; } @@ -458,10 +458,10 @@ public record AcceptedCultistReward public long? Timestamp { get; set; } [JsonPropertyName("sacrificeItems")] - public List? SacrificeItems { get; set; } + public List? SacrificeItems { get; set; } [JsonPropertyName("rewardItems")] - public List? RewardItems { get; set; } + public List? RewardItems { get; set; } } public record PendingPrestige diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs index 5fe36e90..39724d5a 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Utils; namespace SPTarkov.Server.Core.Models.Eft.Ragfair; @@ -9,5 +10,5 @@ public record GetMarketPriceRequestData : IRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("templateId")] - public string? TemplateId { get; set; } + public MongoId TemplateId { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs index 6432180e..2893526f 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs @@ -6,7 +6,7 @@ namespace SPTarkov.Server.Core.Models.Eft.Trade; public record ProcessBuyTradeRequestData : ProcessBaseTradeRequestData { [JsonPropertyName("item_id")] - public string? ItemId { get; set; } + public MongoId ItemId { get; set; } [JsonPropertyName("count")] public int? Count { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs index 3ce50073..54c8671c 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Inventory; namespace SPTarkov.Server.Core.Models.Eft.Wishlist; @@ -9,7 +10,7 @@ public record ChangeWishlistItemCategoryRequest : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId Item { get; set; } [JsonPropertyName("category")] public int? Category { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Enums/ItemTpl.cs b/Libraries/SPTarkov.Server.Core/Models/Enums/ItemTpl.cs index 28f56402..3fc707dd 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Enums/ItemTpl.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Enums/ItemTpl.cs @@ -1,5264 +1,11080 @@ +using SPTarkov.Server.Core.Models.Common; + // This is an auto generated file, do not modify. Re-generate by running ItemTplGenerator.exe public static class ItemTpl { - public const string AMMO_127X108_B32 = "5cde8864d7f00c0010373be1"; - public const string AMMO_127X108_BZT44M = "5d2f2ab648f03550091993ca"; - public const string AMMO_127X33_COPPER = "66a0d1e0ed648d72fe064d06"; - public const string AMMO_127X33_FMJ = "668fe62ac62660a5d8071446"; - public const string AMMO_127X33_HAWK_JSP = "66a0d1f88486c69fce00fdf6"; - public const string AMMO_127X33_JHP = "66a0d1c87d0d369e270bb9de"; - public const string AMMO_127X55_PS12 = "5cadf6ddae9215051e1c23b2"; - public const string AMMO_127X55_PS12A = "5cadf6e5ae921500113bb973"; - public const string AMMO_127X55_PS12B = "5cadf6eeae921500134b2799"; - public const string AMMO_12G_50_BMG = "5d6e68c4a4b9361b93413f79"; - public const string AMMO_12G_525MM = "5d6e6772a4b936088465b17c"; - public const string AMMO_12G_7MM = "560d5e524bdc2d25448b4571"; - public const string AMMO_12G_AP20 = "5d6e68a8a4b9360b6c0d54e2"; - public const string AMMO_12G_CSP = "5d6e68b3a4b9361bca7e50b5"; - public const string AMMO_12G_DUALSABOT = "5d6e68dea4b9361bcc29e659"; - public const string AMMO_12G_EXPRESS = "5d6e67fba4b9361bc73bc779"; - public const string AMMO_12G_FLECHETTE = "5d6e6911a4b9361bd5780d52"; - public const string AMMO_12G_FTX = "5d6e68e6a4b9361c140bcfe0"; - public const string AMMO_12G_GRIZZLY_40 = "5d6e6869a4b9361c140bcfde"; - public const string AMMO_12G_MAGNUM = "5d6e6806a4b936088465b17e"; - public const string AMMO_12G_PIRANHA = "64b8ee384b75259c590fa89b"; - public const string AMMO_12G_POLEVA3 = "5d6e6891a4b9361bd473feea"; - public const string AMMO_12G_POLEVA6U = "5d6e689ca4b9361bc8618956"; - public const string AMMO_12G_RIP = "5c0d591486f7744c505b416f"; - public const string AMMO_12G_SFORMANCE = "5d6e68d1a4b93622fe60e845"; - public const string AMMO_12G_SLUG = "58820d1224597753c90aeb13"; - public const string AMMO_20G_56MM = "5d6e695fa4b936359b35d852"; - public const string AMMO_20G_62MM = "5d6e69b9a4b9361bc8618958"; - public const string AMMO_20G_73MM = "5d6e69c7a4b9360b6c0d54e4"; - public const string AMMO_20G_75MM = "5a38ebd9c4a282000d722a5b"; - public const string AMMO_20G_DEVASTATOR = "5d6e6a5fa4b93614ec501745"; - public const string AMMO_20G_DGS = "660137ef76c1b56143052be8"; - public const string AMMO_20G_FLECHETTE = "6601380580e77cfd080e3418"; - public const string AMMO_20G_POLEVA3 = "5d6e6a53a4b9361bd473feec"; - public const string AMMO_20G_POLEVA6U = "5d6e6a42a4b9364f07165f52"; - public const string AMMO_20G_STAR = "5d6e6a05a4b93618084f58d0"; - public const string AMMO_20G_TSS_AP = "660137d8481cc6907a0c5cda"; - public const string AMMO_20X1MM_DISK = "6601546f86889319850bd566"; - public const string AMMO_23X75_BARRIKADA = "5e85aa1a988a8701445df1f5"; - public const string AMMO_23X75_CHER7M = "5e85aac65505fa48730d8af2"; - public const string AMMO_23X75_SHRAP10 = "5e85a9a6eacf8c039e4e2ac1"; - public const string AMMO_23X75_SHRAP25 = "5f647f31b6238e5dd066e196"; - public const string AMMO_23X75_VOLNAR = "5f647fd3f6e4ab66c82faed6"; - public const string AMMO_23X75_ZVEZDA = "5e85a9f4add9fe03027d9bf1"; - public const string AMMO_26X75_AG = "635267f063651329f75a4ee8"; - public const string AMMO_26X75_FLARE = "62389bc9423ed1685422dc57"; - public const string AMMO_26X75_GREEN = "62389aaba63f32501b1b444f"; - public const string AMMO_26X75_RED = "62389ba9a63f32501b1b4451"; - public const string AMMO_26X75_SIGNAL_FLARE_BLUE = "66d97834d2985e11480d5c1e"; - public const string AMMO_26X75_SIGNAL_FLARE_GREEN = "624c0570c9b794431568f5d5"; - public const string AMMO_26X75_SIGNAL_FLARE_NEW_YEAR = "675ea4891b2579e8fe0250aa"; - public const string AMMO_26X75_SIGNAL_FLARE_RED = "624c09cfbc2e27219346d955"; - public const string AMMO_26X75_SIGNAL_FLARE_SPECIAL_YELLOW = "66d9f3047b82b9a9aa055d81"; - public const string AMMO_26X75_SIGNAL_FLARE_WHITE = "624c09da2cec124eb67c1046"; - public const string AMMO_26X75_SIGNAL_FLARE_YELLOW = "624c09e49b98e019a3315b66"; - public const string AMMO_26X75_YELLOW = "62389be94d5d474bf712e709"; - public const string AMMO_30X29_VOG30 = "5d70e500a4b9364de70d38ce"; - public const string AMMO_366TKM_APM = "5f0596629e22f464da6bbdd9"; - public const string AMMO_366TKM_EKO = "59e655cb86f77411dc52a77b"; - public const string AMMO_366TKM_FMJ = "59e6542b86f77411dc52a77a"; - public const string AMMO_366TKM_GEKSA = "59e6658b86f77411d949b250"; - public const string AMMO_40MMRU_VOG25 = "5656eb674bdc2d35148b457c"; - public const string AMMO_40X46_M381 = "5ede474b0c226a66f5402622"; - public const string AMMO_40X46_M386 = "5ede475b549eed7c6d5c18fb"; - public const string AMMO_40X46_M406 = "5ede4739e0350d05467f73e8"; - public const string AMMO_40X46_M433 = "5f0c892565703e5c461894e9"; - public const string AMMO_40X46_M441 = "5ede47405b097655935d7d16"; - public const string AMMO_40X46_M576 = "5ede475339ee016e8c534742"; - public const string AMMO_40X46_M716 = "5ede47641cf3836a88318df1"; - public const string AMMO_45ACP_AP = "5efb0cabfb3e451d70735af5"; - public const string AMMO_45ACP_FMJ = "5e81f423763d9f754677bf2e"; - public const string AMMO_45ACP_HYDRASHOK = "5efb0fc6aeb21837e749c801"; - public const string AMMO_45ACP_LASERMATCH = "5efb0d4f4bc50b58e81710f3"; - public const string AMMO_45ACP_RIP = "5ea2a8e200685063ec28c05a"; - public const string AMMO_46X30_ACTION_SX = "5ba26812d4351e003201fef1"; - public const string AMMO_46X30_AP_SX = "5ba26835d4351e0035628ff5"; - public const string AMMO_46X30_FMJ_SX = "5ba2678ad4351e44f824b344"; - public const string AMMO_46X30_JSP_SX = "64b6979341772715af0f9c39"; - public const string AMMO_46X30_SUBSONIC_SX = "5ba26844d4351e00334c9475"; - public const string AMMO_545X39_7N40 = "61962b617c6c7b169525f168"; - public const string AMMO_545X39_BP = "56dfef82d2720bbd668b4567"; - public const string AMMO_545X39_BS = "56dff026d2720bb8668b4567"; - public const string AMMO_545X39_BT = "56dff061d2720bb5668b4567"; - public const string AMMO_545X39_FMJ = "56dff0bed2720bb0668b4567"; - public const string AMMO_545X39_HP = "56dff216d2720bbd668b4568"; - public const string AMMO_545X39_PP = "56dff2ced2720bb4668b4567"; - public const string AMMO_545X39_PPBS = "5c0d5e4486f77478390952fe"; - public const string AMMO_545X39_PRS = "56dff338d2720bbd668b4569"; - public const string AMMO_545X39_PS = "56dff3afd2720bba668b4567"; - public const string AMMO_545X39_SP = "56dff421d2720b5f5a8b4567"; - public const string AMMO_545X39_T = "56dff4a2d2720bbd668b456a"; - public const string AMMO_545X39_US = "56dff4ecd2720b5f5a8b4568"; - public const string AMMO_556X45_6MM_BB = "6241c316234b593b5676b637"; - public const string AMMO_556X45_FMJ = "59e6920f86f77411d82aa167"; - public const string AMMO_556X45_HP = "59e6927d86f77411da468256"; - public const string AMMO_556X45_M855 = "54527a984bdc2d4e668b4567"; - public const string AMMO_556X45_M855A1 = "54527ac44bdc2d36668b4567"; - public const string AMMO_556X45_M856 = "59e68f6f86f7746c9f75e846"; - public const string AMMO_556X45_M856A1 = "59e6906286f7746c9f75e847"; - public const string AMMO_556X45_M995 = "59e690b686f7746c9f75e848"; - public const string AMMO_556X45_RRLP = "59e6918f86f7746c9f75e849"; - public const string AMMO_556X45_SOST = "60194943740c5d77f6705eea"; - public const string AMMO_556X45_SSA_AP = "601949593ae8f707c4608daa"; - public const string AMMO_556X45_WARMAGE = "5c0d5ae286f7741e46554302"; - public const string AMMO_57X28_L191 = "5cc80f53e4a949000e1ea4f8"; - public const string AMMO_57X28_R37F = "5cc86832d7f00c000d3a6e6c"; - public const string AMMO_57X28_R37X = "5cc86840d7f00c002412c56c"; - public const string AMMO_57X28_SB193 = "5cc80f67e4a949035e43bbba"; - public const string AMMO_57X28_SS190 = "5cc80f38e4a949001152b560"; - public const string AMMO_57X28_SS197SR = "5cc80f8fe4a949033b0224a2"; - public const string AMMO_57X28_SS198LF = "5cc80f79e4a949033c7343b2"; - public const string AMMO_68X51_FMJ = "6529302b8c26af6326029fb7"; - public const string AMMO_68X51_HYBRID = "6529243824cbe3c74a05e5c1"; - public const string AMMO_762X25TT_AKBS = "5735fdcd2459776445391d61"; - public const string AMMO_762X25TT_FMJ43 = "5735ff5c245977640e39ba7e"; - public const string AMMO_762X25TT_LRN = "573601b42459776410737435"; - public const string AMMO_762X25TT_LRNPC = "573602322459776445391df1"; - public const string AMMO_762X25TT_P = "5736026a245977644601dc61"; - public const string AMMO_762X25TT_PST = "573603562459776430731618"; - public const string AMMO_762X25TT_PT = "573603c924597764442bd9cb"; - public const string AMMO_762X35_AP = "5fd20ff893a8961fc660a954"; - public const string AMMO_762X35_BCP_FMJ = "5fbe3ffdf8b6a877a729ea82"; - public const string AMMO_762X35_CBJ = "64b8725c4b75259c590fa899"; - public const string AMMO_762X35_M62 = "619636be6db0f2477964e710"; - public const string AMMO_762X35_VMAX = "6196364158ef8c428c287d9f"; - public const string AMMO_762X35_WHISPER = "6196365d58ef8c428c287da1"; - public const string AMMO_762X39_BP = "59e0d99486f7744a32234762"; - public const string AMMO_762X39_FMJ = "64b7af5a8532cf95ee0a0dbd"; - public const string AMMO_762X39_HP = "59e4d3d286f774176a36250a"; - public const string AMMO_762X39_MAI_AP = "601aa3d2b2bcb34913271e6d"; - public const string AMMO_762X39_PP = "64b7af434b75259c590fa893"; - public const string AMMO_762X39_PS = "5656d7c34bdc2d9d198b4587"; - public const string AMMO_762X39_SP = "64b7af734b75259c590fa895"; - public const string AMMO_762X39_T45M1 = "59e4cf5286f7741778269d8a"; - public const string AMMO_762X39_US = "59e4d24686f7741776641ac7"; - public const string AMMO_762X51_BCP_FMJ = "5e023e53d4353e3302577c4c"; - public const string AMMO_762X51_M61 = "5a6086ea4f39f99cd479502f"; - public const string AMMO_762X51_M62 = "5a608bf24f39f98ffc77720e"; - public const string AMMO_762X51_M80 = "58dd3ad986f77403051cba8f"; - public const string AMMO_762X51_M80A1 = "6768c25aa7b238f14a08d3f6"; - public const string AMMO_762X51_M993 = "5efb0c1bd79ff02a1f5e68d9"; - public const string AMMO_762X51_TCW_SP = "5e023e6e34d52a55c3304f71"; - public const string AMMO_762X51_ULTRA_NOSLER = "5e023e88277cce2b522ff2b1"; - public const string AMMO_762X54R_BS = "5e023d48186a883be655e551"; - public const string AMMO_762X54R_BT = "5e023d34e8a400319a28ed44"; - public const string AMMO_762X54R_FMJ = "64b8f7968532cf95ee0a0dbf"; - public const string AMMO_762X54R_HP_BT = "64b8f7c241772715af0f9c3d"; - public const string AMMO_762X54R_LPS = "5887431f2459777e1612938f"; - public const string AMMO_762X54R_PS = "59e77a2386f7742ee578960a"; - public const string AMMO_762X54R_SNB = "560d61e84bdc2da74d8b4571"; - public const string AMMO_762X54R_SP_BT = "64b8f7b5389d7ffd620ccba2"; - public const string AMMO_762X54R_T46M = "5e023cf8186a883be655e54f"; - public const string AMMO_86X70_AP = "5fc382a9d724d907e2077dab"; - public const string AMMO_86X70_FMJ = "5fc275cf85fd526b824a571a"; - public const string AMMO_86X70_TACX = "5fc382b6d6fa9c00c571bbc3"; - public const string AMMO_86X70_UCW = "5fc382c1016cce60e8341b20"; - public const string AMMO_9X18PM_BZHT = "573718ba2459775a75491131"; - public const string AMMO_9X18PM_P = "573719762459775a626ccbc1"; - public const string AMMO_9X18PM_PBM = "573719df2459775a626ccbc2"; - public const string AMMO_9X18PM_PPE = "57371b192459775a9f58a5e0"; - public const string AMMO_9X18PM_PPT = "57371e4124597760ff7b25f1"; - public const string AMMO_9X18PM_PRS = "57371eb62459776125652ac1"; - public const string AMMO_9X18PM_PS_PPO = "57371f2b24597761224311f1"; - public const string AMMO_9X18PM_PSO = "57371f8d24597761006c6a81"; - public const string AMMO_9X18PM_PST = "5737201124597760fc4431f1"; - public const string AMMO_9X18PM_PSTM = "57371aab2459775a77142f22"; - public const string AMMO_9X18PM_PSV = "5737207f24597760ff7b25f2"; - public const string AMMO_9X18PM_RG028 = "573720e02459776143012541"; - public const string AMMO_9X18PM_SHRAPNEL = "5943d9c186f7745a13413ac9"; - public const string AMMO_9X18PM_SP7 = "57372140245977611f70ee91"; - public const string AMMO_9X18PM_SP8 = "5737218f245977612125ba51"; - public const string AMMO_9X19_AP_63 = "5c925fa22e221601da359b7b"; - public const string AMMO_9X19_GT = "5c3df7d588a4501f290594e5"; - public const string AMMO_9X19_LUGER_CCI = "5a3c16fe86f77452b62de32a"; - public const string AMMO_9X19_M882 = "64b7bbb74b75259c590fa897"; - public const string AMMO_9X19_PBP = "5efb0da7a29a85116f6ea05f"; - public const string AMMO_9X19_PSO = "58864a4f2459770fcc257101"; - public const string AMMO_9X19_PST = "56d59d3ad2720bdb418b4577"; - public const string AMMO_9X19_QUAKEMAKER = "5efb0e16aeb21837e749c7ff"; - public const string AMMO_9X19_RIP = "5c0d56a986f774449d5de529"; - public const string AMMO_9X21_7N42 = "6576f4708ca9c4381d16cd9d"; - public const string AMMO_9X21_7U4 = "6576f93989f0062e741ba952"; - public const string AMMO_9X21_BT = "5a26ac0ec4a28200741e1e18"; - public const string AMMO_9X21_P = "5a26abfac4a28232980eabff"; - public const string AMMO_9X21_PE = "5a26ac06c4a282000c5a90a8"; - public const string AMMO_9X21_PS = "5a269f97c4a282000b151807"; - public const string AMMO_9X33R_FMJ = "62330b3ed4dc74626d570b95"; - public const string AMMO_9X33R_HP = "62330bfadc5883093563729b"; - public const string AMMO_9X33R_JHP = "62330c18744e5e31df12f516"; - public const string AMMO_9X33R_SP = "62330c40bdd19b369e1e53d1"; - public const string AMMO_9X39_BP = "5c0d688c86f77413ae3407b2"; - public const string AMMO_9X39_FMJ = "6576f96220d53a5b8f3e395e"; - public const string AMMO_9X39_PAB9 = "61962d879bb3d20b0946d385"; - public const string AMMO_9X39_SP5 = "57a0dfb82459774d3078b56c"; - public const string AMMO_9X39_SP6 = "57a0e5022459774d1673f889"; - public const string AMMO_9X39_SPP = "5c0d668f86f7747ccb7f13b2"; - public const string AMMOBOX_127X33_COPPER_20RND = "676009ddb623f3b8ba079419"; - public const string AMMOBOX_127X33_FMJ_20RND = "676009ed8f1fee08740f9479"; - public const string AMMOBOX_127X33_JHP_20RND = "676009fe8f1fee08740f947c"; - public const string AMMOBOX_127X33_JSP_20RND = "67600a0e84e242067d0dc4cd"; - public const string AMMOBOX_127X55_PS12_10RND = "6570241bcfc010a0f50069f5"; - public const string AMMOBOX_127X55_PS12A_10RND = "65702420bfc87b3a34093219"; - public const string AMMOBOX_127X55_PS12B_10RND = "648983d6b5a2df1c815a04ec"; - public const string AMMOBOX_12G_50_BMG_25RND = "65702469c5d7d4cb4d07855b"; - public const string AMMOBOX_12G_525MM_25RND = "65702426cfc010a0f50069f8"; - public const string AMMOBOX_12G_7MM_25RND = "657024361419851aef03e6fa"; - public const string AMMOBOX_12G_AP20_25RND = "64898838d5b4df6140000a20"; - public const string AMMOBOX_12G_CSP_25RND = "65702479c5d7d4cb4d07855e"; - public const string AMMOBOX_12G_DUALSABOT_25RND = "6570243fcfc010a0f50069fb"; - public const string AMMOBOX_12G_EXPRESS_25RND = "65702432bfc87b3a3409321c"; - public const string AMMOBOX_12G_FLECHETTE_25RND = "65702474bfc87b3a34093226"; - public const string AMMOBOX_12G_FTX_25RND = "65702449bfc87b3a34093223"; - public const string AMMOBOX_12G_GRIZZLY_40_25RND = "6570244ec5d7d4cb4d078558"; - public const string AMMOBOX_12G_MAGNUM_25RND = "6570243bbfc87b3a3409321f"; - public const string AMMOBOX_12G_PIRANHA_25RND = "657024431419851aef03e6fd"; - public const string AMMOBOX_12G_POLEVA3_25RND = "65702452cfc010a0f50069fe"; - public const string AMMOBOX_12G_POLEVA6U_25RND = "657024581419851aef03e700"; - public const string AMMOBOX_12G_RIP_5RND = "5c1127d0d174af29be75cf68"; - public const string AMMOBOX_12G_SFORMANCE_25RND = "6570247ebfc87b3a34093229"; - public const string AMMOBOX_12G_SLUG_25RND = "6570246fcfc010a0f5006a01"; - public const string AMMOBOX_20G_56MM_25RND = "657024831419851aef03e703"; - public const string AMMOBOX_20G_62MM_25RND = "6570248dcfc010a0f5006a04"; - public const string AMMOBOX_20G_73MM_25RND = "657024921419851aef03e706"; - public const string AMMOBOX_20G_75MM_25RND = "65702495c5d7d4cb4d078561"; - public const string AMMOBOX_20G_DEVASTATOR_25RND = "6570249bcfc010a0f5006a07"; - public const string AMMOBOX_20G_DGS_25RND = "67657773b83469e4f102dc27"; - public const string AMMOBOX_20G_FLECHETTE_25RND = "676577166d874f6502106a21"; - public const string AMMOBOX_20G_POLEVA3_25RND = "657024a4bfc87b3a3409322c"; - public const string AMMOBOX_20G_POLEVA6U_25RND = "657024a91419851aef03e70c"; - public const string AMMOBOX_20G_STAR_25RND = "6570249f1419851aef03e709"; - public const string AMMOBOX_20G_TSS_AP_25RND = "67657764c832f8c59c016d45"; - public const string AMMOBOX_23X75_BARRIKADA_5RND = "657024b8bfc87b3a34093232"; - public const string AMMOBOX_23X75_SHRAP10_5RND = "657024aebfc87b3a3409322f"; - public const string AMMOBOX_23X75_SHRAP25_5RND = "657024b31419851aef03e70f"; - public const string AMMOBOX_23X75_ZVEZDA_5RND = "657024bdc5d7d4cb4d078564"; - public const string AMMOBOX_366TKM_APM_20RND = "657023f81419851aef03e6f1"; - public const string AMMOBOX_366TKM_EKO_20RND = "657024011419851aef03e6f4"; - public const string AMMOBOX_366TKM_FMJ_20RND = "657023f1bfc87b3a34093210"; - public const string AMMOBOX_366TKM_GEKSA_20RND = "657023fcbfc87b3a34093213"; - public const string AMMOBOX_45ACP_AP_50RND = "6489879db5a2df1c815a04ef"; - public const string AMMOBOX_45ACP_FMJ_50RND = "6570240ecfc010a0f50069f2"; - public const string AMMOBOX_45ACP_HYDRASHOK_50RND = "65702406bfc87b3a34093216"; - public const string AMMOBOX_45ACP_LASERMATCH_50RND = "6570240a1419851aef03e6f7"; - public const string AMMOBOX_45ACP_RIP_50RND = "65702414c5d7d4cb4d078555"; - public const string AMMOBOX_46X30_ACTION_SX_40RND = "657024c81419851aef03e712"; - public const string AMMOBOX_46X30_AP_SX_40RND = "6489870774a806211e4fb685"; - public const string AMMOBOX_46X30_FMJ_SX_40RND = "657024cecfc010a0f5006a0a"; - public const string AMMOBOX_46X30_JSP_SX_40RND = "64aceaecc4eda9354b0226b6"; - public const string AMMOBOX_46X30_SUBSONIC_SX_40RND = "657024d2bfc87b3a34093235"; - public const string AMMOBOX_545X39_7N40_120RND = "6570900858b315e8b70a8a98"; - public const string AMMOBOX_545X39_7N40_30RND = "64898602f09d032aa9399d56"; - public const string AMMOBOX_545X39_BP_120RND = "5737292724597765e5728562"; - public const string AMMOBOX_545X39_BP_120RND_DAMAGED = "57372a7f24597766fe0de0c1"; - public const string AMMOBOX_545X39_BP_30RND = "57372ac324597767001bc261"; - public const string AMMOBOX_545X39_BS_120RND = "57372b832459776701014e41"; - public const string AMMOBOX_545X39_BS_120RND_DAMAGED = "57372bad245977670b7cd242"; - public const string AMMOBOX_545X39_BS_30RND = "57372bd3245977670b7cd243"; - public const string AMMOBOX_545X39_BT_120RND = "57372c21245977670937c6c2"; - public const string AMMOBOX_545X39_BT_120RND_DAMAGED = "57372c56245977685e584582"; - public const string AMMOBOX_545X39_BT_30RND = "57372c89245977685d4159b1"; - public const string AMMOBOX_545X39_FMJ_30RND = "5737330a2459776af32363a1"; - public const string AMMOBOX_545X39_HP_30RND = "5737339e2459776af261abeb"; - public const string AMMOBOX_545X39_PP_120RND = "57372d1b2459776862260581"; - public const string AMMOBOX_545X39_PP_120RND_DAMAGED = "57372d4c245977685a3da2a1"; - public const string AMMOBOX_545X39_PP_30RND = "57372db0245977685d4159b2"; - public const string AMMOBOX_545X39_PPBS_120RND = "657025ebc5d7d4cb4d078588"; - public const string AMMOBOX_545X39_PPBS_30RND = "5c1262a286f7743f8a69aab2"; - public const string AMMOBOX_545X39_PRS_120RND = "57372deb245977685d4159b3"; - public const string AMMOBOX_545X39_PRS_120RND_DAMAGED = "57372e1924597768553071c1"; - public const string AMMOBOX_545X39_PRS_30RND = "57372e4a24597768553071c2"; - public const string AMMOBOX_545X39_PS_120RND = "57372e73245977685d4159b4"; - public const string AMMOBOX_545X39_PS_120RND_DAMAGED = "57372e94245977685648d3e1"; - public const string AMMOBOX_545X39_PS_30RND = "57372ebf2459776862260582"; - public const string AMMOBOX_545X39_SP_30RND = "573733c72459776b0b7b51b0"; - public const string AMMOBOX_545X39_T_120RND = "57372ee1245977685d4159b5"; - public const string AMMOBOX_545X39_T_120RND_DAMAGED = "57372f2824597769a270a191"; - public const string AMMOBOX_545X39_T_30RND = "57372f5c24597769917c0131"; - public const string AMMOBOX_545X39_US_120RND = "57372f7d245977699b53e301"; - public const string AMMOBOX_545X39_US_120RND_DAMAGED = "57372fc52459776998772ca1"; - public const string AMMOBOX_545X39_US_30RND = "5737300424597769942d5a01"; - public const string AMMOBOX_556X45_FMJ_100RND = "657026451419851aef03e733"; - public const string AMMOBOX_556X45_FMJ_50RND = "657024d8c5d7d4cb4d078567"; - public const string AMMOBOX_556X45_HP_100RND = "6570264acfc010a0f5006a50"; - public const string AMMOBOX_556X45_HP_50RND = "657024debfc87b3a34093238"; - public const string AMMOBOX_556X45_M855_100RND = "6570264d1419851aef03e736"; - public const string AMMOBOX_556X45_M855_50RND = "5447ac644bdc2d6c208b4567"; - public const string AMMOBOX_556X45_M855A1_100RND = "65702652cfc010a0f5006a53"; - public const string AMMOBOX_556X45_M855A1_50RND = "657024e3c5d7d4cb4d07856a"; - public const string AMMOBOX_556X45_M856_100RND = "65702656c5d7d4cb4d078591"; - public const string AMMOBOX_556X45_M856_50RND = "657024e8cfc010a0f5006a0d"; - public const string AMMOBOX_556X45_M856A1_100RND = "6570265bcfc010a0f5006a56"; - public const string AMMOBOX_556X45_M856A1_50RND = "657024ecc5d7d4cb4d07856d"; - public const string AMMOBOX_556X45_M995_100RND = "6570265f1419851aef03e739"; - public const string AMMOBOX_556X45_M995_50RND = "657024f01419851aef03e715"; - public const string AMMOBOX_556X45_RRLP_100RND = "65702664cfc010a0f5006a59"; - public const string AMMOBOX_556X45_RRLP_50RND = "657024f5cfc010a0f5006a10"; - public const string AMMOBOX_556X45_SOST_100RND = "6570266bc5d7d4cb4d078594"; - public const string AMMOBOX_556X45_SOST_50RND = "657024f9bfc87b3a3409323b"; - public const string AMMOBOX_556X45_SSA_AP_100RND = "65702681bfc87b3a3409325f"; - public const string AMMOBOX_556X45_SSA_AP_50RND = "64898583d5b4df6140000a1d"; - public const string AMMOBOX_556X45_WARMAGE_20RND = "5c11279ad174af029d64592b"; - public const string AMMOBOX_57X28_L191_50RND = "657025161419851aef03e718"; - public const string AMMOBOX_57X28_R37F_50RND = "6570251ccfc010a0f5006a13"; - public const string AMMOBOX_57X28_R37X_50RND = "65702520bfc87b3a3409323e"; - public const string AMMOBOX_57X28_SB193_50RND = "65702524cfc010a0f5006a16"; - public const string AMMOBOX_57X28_SS190_50RND = "648986bbc827d4637f01791e"; - public const string AMMOBOX_57X28_SS197SR_50RND = "657025281419851aef03e71b"; - public const string AMMOBOX_57X28_SS198LF_50RND = "6570252dbfc87b3a34093241"; - public const string AMMOBOX_68X51_FMJ_20RND = "67600a42b32eb5d23e0eb459"; - public const string AMMOBOX_68X51_HYBRID_20RND = "67600a516f01341c9106ab4c"; - public const string AMMOBOX_762X25TT_AKBS_25RND = "6570253ec5d7d4cb4d078573"; - public const string AMMOBOX_762X25TT_FMJ43_25RND = "65702532cfc010a0f5006a19"; - public const string AMMOBOX_762X25TT_LRN_25RND = "65702536c5d7d4cb4d078570"; - public const string AMMOBOX_762X25TT_LRNPC_25RND = "6570253acfc010a0f5006a1c"; - public const string AMMOBOX_762X25TT_P_25RND = "657025421419851aef03e71e"; - public const string AMMOBOX_762X25TT_PST_25RND = "65702546cfc010a0f5006a1f"; - public const string AMMOBOX_762X25TT_PT_25RND = "6570254abfc87b3a34093244"; - public const string AMMOBOX_762X35_AP_50RND = "648985c074a806211e4fb682"; - public const string AMMOBOX_762X35_CBJ_50RND = "657023a9126cc4a57d0e17a6"; - public const string AMMOBOX_762X35_FMJ_50RND = "657023bebfc87b3a34093207"; - public const string AMMOBOX_762X35_M62_50RND = "657023b1cfc010a0f50069e5"; - public const string AMMOBOX_762X35_VMAX_50RND = "657023b71419851aef03e6e8"; - public const string AMMOBOX_762X35_WHISPER_50RND = "657023c61419851aef03e6eb"; - public const string AMMOBOX_762X39_BP_20RND = "64acea16c4eda9354b0226b0"; - public const string AMMOBOX_762X39_FMJ_20RND = "64ace9d9b5bf5e95f50a4c1d"; - public const string AMMOBOX_762X39_HP_20RND = "64acea2c03378853630da53e"; - public const string AMMOBOX_762X39_MAI_AP_20RND = "6489851fc827d4637f01791b"; - public const string AMMOBOX_762X39_PP_20RND = "64ace9f9c4eda9354b0226aa"; - public const string AMMOBOX_762X39_PS_20RND = "5649ed104bdc2d3d1c8b458b"; - public const string AMMOBOX_762X39_SP_20RND = "64ace9ff03378853630da538"; - public const string AMMOBOX_762X39_T45M1_20RND = "64acea09c4eda9354b0226ad"; - public const string AMMOBOX_762X39_US_20RND = "64acea0d03378853630da53b"; - public const string AMMOBOX_762X51_BCP_FMJ_20RND = "65702561cfc010a0f5006a28"; - public const string AMMOBOX_762X51_M61_20RND = "6570254fcfc010a0f5006a22"; - public const string AMMOBOX_762X51_M62_20RND = "65702554bfc87b3a34093247"; - public const string AMMOBOX_762X51_M80_20RND = "65702558cfc010a0f5006a25"; - public const string AMMOBOX_762X51_M80A1_20RND = "6769b8e3c1a1466c850658a8"; - public const string AMMOBOX_762X51_M993_20RND = "648984e3f09d032aa9399d53"; - public const string AMMOBOX_762X51_TCW_SP_20RND = "65702566bfc87b3a3409324d"; - public const string AMMOBOX_762X51_ULTRA_NOSLER_20RND = "6570255dbfc87b3a3409324a"; - public const string AMMOBOX_762X54R_BS_20RND = "648984b8d5b4df6140000a1a"; - public const string AMMOBOX_762X54R_BT_20RND = "65702572c5d7d4cb4d078576"; - public const string AMMOBOX_762X54R_FMJ_20RND = "64aceac0c4eda9354b0226b3"; - public const string AMMOBOX_762X54R_HP_BT_20RND = "64acee6903378853630da544"; - public const string AMMOBOX_762X54R_LPS_20RND = "65702577cfc010a0f5006a2c"; - public const string AMMOBOX_762X54R_PS_20RND = "6570257cc5d7d4cb4d078579"; - public const string AMMOBOX_762X54R_SNB_20RND = "560d75f54bdc2da74d8b4573"; - public const string AMMOBOX_762X54R_SP_BT_20RND = "64aceab0426a303417060654"; - public const string AMMOBOX_762X54R_T46M_20RND = "65702584cfc010a0f5006a2f"; - public const string AMMOBOX_86X70_AP_20RND = "6489848173c462723909a14b"; - public const string AMMOBOX_86X70_FMJ_20RND = "657023ccbfc87b3a3409320a"; - public const string AMMOBOX_86X70_TACX_20RND = "657023d6cfc010a0f50069e9"; - public const string AMMOBOX_86X70_UCW_20RND = "657023dabfc87b3a3409320d"; - public const string AMMOBOX_9X18PM_BZHT_16RND = "573722e82459776104581c21"; - public const string AMMOBOX_9X18PM_BZHT_50RND = "65702606cfc010a0f5006a3e"; - public const string AMMOBOX_9X18PM_P_16RND = "573724b42459776125652ac2"; - public const string AMMOBOX_9X18PM_P_50RND = "6570260c1419851aef03e727"; - public const string AMMOBOX_9X18PM_PBM_16RND = "5737250c2459776125652acc"; - public const string AMMOBOX_9X18PM_PBM_50RND = "65702610cfc010a0f5006a41"; - public const string AMMOBOX_9X18PM_PPE_16RND = "573725b0245977612125bae2"; - public const string AMMOBOX_9X18PM_PPE_50RND = "65702619bfc87b3a34093259"; - public const string AMMOBOX_9X18PM_PPT_16RND = "5737260b24597761224311f2"; - public const string AMMOBOX_9X18PM_PPT_50RND = "65702614c5d7d4cb4d07858b"; - public const string AMMOBOX_9X18PM_PRS_16RND = "5737266524597761006c6a8c"; - public const string AMMOBOX_9X18PM_PRS_50RND = "6570261dc5d7d4cb4d07858e"; - public const string AMMOBOX_9X18PM_PS_PPO_16RND = "573726d824597765d96be361"; - public const string AMMOBOX_9X18PM_PS_PPO_50RND = "65702621cfc010a0f5006a44"; - public const string AMMOBOX_9X18PM_PSO_16RND = "5737273924597765dd374461"; - public const string AMMOBOX_9X18PM_PSO_50RND = "65702629cfc010a0f5006a47"; - public const string AMMOBOX_9X18PM_PST_16RND = "573727c624597765cc785b5b"; - public const string AMMOBOX_9X18PM_PST_50RND = "6570262d1419851aef03e72d"; - public const string AMMOBOX_9X18PM_PSTM_16RND = "5737256c2459776125652acd"; - public const string AMMOBOX_9X18PM_PSTM_50RND = "65702640cfc010a0f5006a4d"; - public const string AMMOBOX_9X18PM_PSV_16RND = "5737280e24597765cc785b5c"; - public const string AMMOBOX_9X18PM_PSV_50RND = "657026251419851aef03e72a"; - public const string AMMOBOX_9X18PM_RG028_16RND = "5737287724597765e1625ae2"; - public const string AMMOBOX_9X18PM_RG028_50RND = "65702630cfc010a0f5006a4a"; - public const string AMMOBOX_9X18PM_SP7_16RND = "573728cc24597765cc785b5d"; - public const string AMMOBOX_9X18PM_SP7_50RND = "657026341419851aef03e730"; - public const string AMMOBOX_9X18PM_SP8_16RND = "573728f324597765e5728561"; - public const string AMMOBOX_9X18PM_SP8_50RND = "65702639bfc87b3a3409325c"; - public const string AMMOBOX_9X19_AP_63_50RND = "65702591c5d7d4cb4d07857c"; - public const string AMMOBOX_9X19_GT_50RND = "657025961419851aef03e721"; - public const string AMMOBOX_9X19_LUGER_CCI_50RND = "6570259bc5d7d4cb4d07857f"; - public const string AMMOBOX_9X19_M882_50RND = "64aceafcb5bf5e95f50a4c20"; - public const string AMMOBOX_9X19_PBP_50RND = "648987d673c462723909a151"; - public const string AMMOBOX_9X19_PSO_50RND = "657025a4bfc87b3a34093250"; - public const string AMMOBOX_9X19_PST_16RND = "5739d41224597779c3645501"; - public const string AMMOBOX_9X19_PST_50RND = "657025a81419851aef03e724"; - public const string AMMOBOX_9X19_QUAKEMAKER_50RND = "6570259fcfc010a0f5006a32"; - public const string AMMOBOX_9X19_RIP_20RND = "5c1127bdd174af44217ab8b9"; - public const string AMMOBOX_9X21_7N42_30RND = "6579847c5a0e5879d12f2873"; - public const string AMMOBOX_9X21_7U4_30RND = "6579846c1ec1943afb14c15a"; - public const string AMMOBOX_9X21_BT_30RND = "6489875745f9ca4ba51c4808"; - public const string AMMOBOX_9X21_P_30RND = "657025bbcfc010a0f5006a35"; - public const string AMMOBOX_9X21_PE_30RND = "657025c9cfc010a0f5006a38"; - public const string AMMOBOX_9X21_PS_30RND = "657025c4c5d7d4cb4d078582"; - public const string AMMOBOX_9X33R_FMJ_25RND = "657023decfc010a0f50069ec"; - public const string AMMOBOX_9X33R_HP_25RND = "657023e31419851aef03e6ee"; - public const string AMMOBOX_9X33R_JHP_25RND = "657023e7c5d7d4cb4d078552"; - public const string AMMOBOX_9X33R_SP_25RND = "657023eccfc010a0f50069ef"; - public const string AMMOBOX_9X39_BP_20RND = "6489854673c462723909a14e"; - public const string AMMOBOX_9X39_BP_8RND = "5c1260dc86f7746b106e8748"; - public const string AMMOBOX_9X39_FMJ_20RND = "657984a50fbff513dd435765"; - public const string AMMOBOX_9X39_PAB9_20RND = "657025cfbfc87b3a34093253"; - public const string AMMOBOX_9X39_SP5_20RND = "657025d4c5d7d4cb4d078585"; - public const string AMMOBOX_9X39_SP6_20RND = "657025dabfc87b3a34093256"; - public const string AMMOBOX_9X39_SPP_20RND = "657025dfcfc010a0f5006a3b"; - public const string AMMOBOX_9X39_SPP_8RND = "5c12619186f7743f871c8a32"; - public const string ARMBAND_ALPHA = "619bc61e86e01e16f839a999"; - public const string ARMBAND_ARENA = "664a5480bfcc521bad3192ca"; - public const string ARMBAND_BEAR = "619bdd8886e01e16f839a99c"; - public const string ARMBAND_BLUE = "5b3f3af486f774679e752c1f"; - public const string ARMBAND_DEADSKUL = "619bddc6c9546643a67df6ee"; - public const string ARMBAND_EVASION = "60b0f988c4449e4cb624c1da"; - public const string ARMBAND_GREEN = "5b3f3b0186f774021a2afef7"; - public const string ARMBAND_KHOROVOD = "67614b3ab8c060ebb204b106"; - public const string ARMBAND_KIBA_ARMS = "619bde3dc9546643a67df6f2"; - public const string ARMBAND_LABS = "619bde7fc9546643a67df6f4"; - public const string ARMBAND_OF_THE_UNHEARD = "660312cc4d6cdfa6f500c703"; - public const string ARMBAND_PRESTIGE_1 = "67614b542eb91250020f2b86"; - public const string ARMBAND_PRESTIGE_2 = "67614b6b47c71ea3d40256d7"; - public const string ARMBAND_RED = "5b3f3ade86f7746b6b790d8e"; - public const string ARMBAND_RFARMY = "619bdeb986e01e16f839a99e"; - public const string ARMBAND_RIVALS_2020 = "5f9949d869e2777a0e779ba5"; - public const string ARMBAND_TERRAGROUP = "619bdef8c9546643a67df6f6"; - public const string ARMBAND_TRAIN_HARD = "619bddffc9546643a67df6f0"; - public const string ARMBAND_UNTAR = "619bdf9cc9546643a67df6f8"; - public const string ARMBAND_USEC = "619bdfd4c9546643a67df6fa"; - public const string ARMBAND_WHITE = "5b3f16c486f7747c327f55f7"; - public const string ARMBAND_YELLOW = "5b3f3b0e86f7746752107cda"; - public const string ARMOR_511_TACTICAL_HEXGRID_PLATE_CARRIER = "5fd4c474dd870108a754b241"; - public const string ARMOR_6B13_ASSAULT_ARMOR_EMR = "5c0e53c886f7747fa54205c7"; - public const string ARMOR_6B13_ASSAULT_ARMOR_FLORA = "5c0e51be86f774598e797894"; - public const string ARMOR_6B13_M_ASSAULT_ARMOR_CHRISTMAS_EDITION = "674d91ce6e862d5a95059ed6"; - public const string ARMOR_6B13_M_ASSAULT_ARMOR_KILLA_EDITION = "5c0e541586f7747fa54205c9"; - public const string ARMOR_6B2_BODY_ARMOR_FLORA = "5df8a2ca86f7740bfe6df777"; - public const string ARMOR_6B231_BODY_ARMOR_EMR = "5c0e5bab86f77461f55ed1f3"; - public const string ARMOR_6B232_BODY_ARMOR_MOUNTAIN_FLORA = "5c0e57ba86f7747fa141986d"; - public const string ARMOR_6B43_ZABRALOSH_BODY_ARMOR_EMR = "545cdb794bdc2d3a198b456a"; - public const string ARMOR_BNTI_GZHELK_BODY = "5ab8e79e86f7742d8b372e78"; - public const string ARMOR_BNTI_KIRASAN_BODY = "5b44d22286f774172b0c9de8"; - public const string ARMOR_BNTI_KIRASAN_BODY_ARMOR_GREEN = "67ab2f28dafe3b22670c9116"; - public const string ARMOR_BNTI_MODULE3M_BODY = "59e7635f86f7742cbf2c1095"; - public const string ARMOR_BNTI_ZHUK_BODY_ARMOR_EMR = "5c0e625a86f7742d77340f62"; - public const string ARMOR_BNTI_ZHUK_BODY_ARMOR_PRESS = "5c0e5edb86f77461f55ed1f7"; - public const string ARMOR_DRD_BODY = "62a09d79de7ac81993580530"; - public const string ARMOR_FORT_DEFENDER2_BODY = "5e9dacf986f774054d6b89f4"; - public const string ARMOR_FORT_REDUTM_BODY = "5ca2151486f774244a3b8d30"; - public const string ARMOR_FORT_REDUTM_BODY_ARMOR_SK_WOODLAND = "67ab2f5adafe3b22670c911f"; - public const string ARMOR_FORT_REDUTT5_BODY_ARMOR_SMOG = "5ca21c6986f77479963115a7"; - public const string ARMOR_HEXATAC_HPC_PLATE_CARRIER_MULTICAM = "67ab2eecfe82855dcc0f2af6"; - public const string ARMOR_HEXATAC_HPC_PLATE_CARRIER_MULTICAM_BLACK = "63737f448b28897f2802b874"; - public const string ARMOR_HIGHCOM_TROOPER_TFO_BODY_ARMOR_COYOTE = "67ab2f94dafe3b22670c912c"; - public const string ARMOR_HIGHCOM_TROOPER_TFO_BODY_ARMOR_MULTICAM = "5c0e655586f774045612eeb2"; - public const string ARMOR_INTERCEPTOR_OTV_BODY_ARMOR_UCP = "64abd93857958b4249003418"; - public const string ARMOR_IOTV_GEN4_BODY_ARMOR_ASSAULT_KIT_MULTICAM = - "5b44cf1486f77431723e3d05"; - public const string ARMOR_IOTV_GEN4_BODY_ARMOR_FULL_PROTECTION_KIT_MULTICAM = - "5b44cd8b86f774503d30cba2"; - public const string ARMOR_IOTV_GEN4_BODY_ARMOR_HIGH_MOBILITY_KIT_MULTICAM = - "5b44d0de86f774503d30cba8"; - public const string ARMOR_LBT6094A_SLICK_PLATE_CARRIER_BLACK = "5e4abb5086f77406975c9342"; - public const string ARMOR_LBT6094A_SLICK_PLATE_CARRIER_COYOTE_TAN = "6038b4b292ec1c3103795a0b"; - public const string ARMOR_LBT6094A_SLICK_PLATE_CARRIER_OLIVE_DRAB = "6038b4ca92ec1c3103795a0d"; - public const string ARMOR_MFUNTAR_BODY = "5ab8e4ed86f7742d8e50c7fa"; - public const string ARMOR_NFM_THOR_CONCEALABLE_REINFORCED_VEST_BODY = - "609e8540d5c319764c2bc2e9"; - public const string ARMOR_NFM_THOR_INTEGRATED_CARRIER_BODY = "60a283193cb70855c43a381d"; - public const string ARMOR_NPP_KLASS_KORAKULON_BODY_ARMOR_BLACK = "64be79c487d1510151095552"; - public const string ARMOR_NPP_KLASS_KORAKULON_BODY_ARMOR_EMR = "64be79e2bf8412471d0d9bcc"; - public const string ARMOR_NPP_KLASS_KORUNDVM_BODY_ARMOR_BLACK = "5f5f41476bdad616ad46d631"; - public const string ARMOR_PACA_SOFT = "5648a7494bdc2d9d488b4583"; - public const string ARMOR_PACA_SOFT_ARMOR_RIVALS_EDITION = "607f20859ee58b18e41ecd90"; - public const string ARMOREDEQUIPMENT_ALTYN_HELMET_FACE_SHIELD = "5aa7e373e5b5b000137b76f0"; - public const string ARMOREDEQUIPMENT_CRYE_PRECISION_AIRFRAME_CHOPS = "5c178a942e22164bef5ceca3"; - public const string ARMOREDEQUIPMENT_CRYE_PRECISION_AIRFRAME_EARS = "5c1793902e221602b21d3de2"; - public const string ARMOREDEQUIPMENT_DIAMOND_AGE_BASTION_HELMET_ARMOR_PLATE = - "5ea18c84ecf1982c7712d9a2"; - public const string ARMOREDEQUIPMENT_DIAMOND_AGE_NEOSTEEL_HELMET_BALLISTIC_MANDIBLE = - "6570a88c8f221f3b210353b7"; - public const string ARMOREDEQUIPMENT_GALVION_CAIMAN_FIXED_ARM_VISOR = - "5f60bf4558eff926626a60f2"; - public const string ARMOREDEQUIPMENT_GALVION_CAIMAN_HYBRID_BALLISTIC_APPLIQUE = - "5f60b85bbdb8e27dee3dc985"; - public const string ARMOREDEQUIPMENT_GALVION_CAIMAN_HYBRID_BALLISTIC_MANDIBLE_GUARD = - "5f60c076f2bcbb675b00dac2"; - public const string ARMOREDEQUIPMENT_KIVERM_FACE_SHIELD = "5b46238386f7741a693bcf9c"; - public const string ARMOREDEQUIPMENT_KOLPAK1S_FACE_SHIELD = "5ac4c50d5acfc40019262e87"; - public const string ARMOREDEQUIPMENT_LSHZ2DTM_AVENTAIL = "5d6d3be5a4b9361bc73bc763"; - public const string ARMOREDEQUIPMENT_LSHZ2DTM_COVER_BLACK = "5d6d3943a4b9360dbc46d0cc"; - public const string ARMOREDEQUIPMENT_LSHZ2DTM_FACE_SHIELD = "5d6d3829a4b9361bc8618943"; - public const string ARMOREDEQUIPMENT_MASKA1SCH_FACE_SHIELD_KILLA_EDITION = - "5c0e842486f77443a74d2976"; - public const string ARMOREDEQUIPMENT_MASKA1SCH_FACE_SHIELD_OLIVE_DRAB = - "5c0919b50db834001b7ce3b9"; - public const string ARMOREDEQUIPMENT_NPP_KLASS_TOR2_HELMET_FACE_SHIELD = - "65719f9ef392ad76c50a2ec8"; - public const string ARMOREDEQUIPMENT_OPSCORE_FAST_GUNSIGHT_MANDIBLE = - "5a16ba61fcdbcb098008728a"; - public const string ARMOREDEQUIPMENT_OPSCORE_FAST_MULTIHIT_BALLISTIC_FACE_SHIELD = - "5a16b7e1fcdbcb00165aa6c9"; - public const string ARMOREDEQUIPMENT_OPSCORE_FAST_SIDE_ARMOR = "5a16badafcdbcb001865f72d"; - public const string ARMOREDEQUIPMENT_OPSCORE_FAST_VISOR = "5a16b672fcdbcb001912fa83"; - public const string ARMOREDEQUIPMENT_OPSCORE_SLAAP_ARMOR_HELMET_PLATE_TAN = - "5c0e66e2d174af02a96252f4"; - public const string ARMOREDEQUIPMENT_RYST_FACE_SHIELD = "5f60c85b58eff926626a60f7"; - public const string ARMOREDEQUIPMENT_TACKEK_HEAVY_TROOPER_MASK_FOR_OPSCORETYPE_HELMETS = - "5ea058e01dbce517f324b3e2"; - public const string ARMOREDEQUIPMENT_TEAM_WENDY_EXFIL_BALLISTIC_FACE_SHIELD_BLACK = - "5e00cdd986f7747473332240"; - public const string ARMOREDEQUIPMENT_TEAM_WENDY_EXFIL_BALLISTIC_FACE_SHIELD_COYOTE_BROWN = - "5e01f37686f774773c6f6c15"; - public const string ARMOREDEQUIPMENT_TEAM_WENDY_EXFIL_EAR_COVERS_BLACK = - "5e00cfa786f77469dc6e5685"; - public const string ARMOREDEQUIPMENT_TEAM_WENDY_EXFIL_EAR_COVERS_COYOTE_BROWN = - "5e01f31d86f77465cf261343"; - public const string ARMOREDEQUIPMENT_VULKAN5_HELMET_FACE_SHIELD = "5ca2113f86f7740b2547e1d2"; - public const string ARMOREDEQUIPMENT_ZSH12M_FACE_SHIELD = "5aa7e3abe5b5b000171d064d"; - public const string ARMORPLATE_6B12_BALLISTIC_PLATES_FRONT = "654a4dea7c17dec2f50cc86a"; - public const string ARMORPLATE_6B13_CUSTOM_BALLISTIC_PLATES_BACK = "656efd66034e8e01c407f35c"; - public const string ARMORPLATE_6B232_BALLISTIC_PLATE_BACK = "657b22485f444d6dff0c6c2f"; - public const string ARMORPLATE_6B33_BALLISTIC_PLATE_FRONT = "656f603f94b480b8a500c0d6"; - public const string ARMORPLATE_AR500_LEGACY_PLATE_BALLISTIC_PLATE = "656f9d5900d62bcd2e02407c"; - public const string ARMORPLATE_ARAMID_INSERT = "64b111fe1be308f1800688c1"; - public const string ARMORPLATE_CULT_LOCUST_BALLISTIC_PLATE = "656fa8d700d62bcd2e024084"; - public const string ARMORPLATE_CULT_TERMITE_BALLISTIC_PLATE = "656fa99800d62bcd2e024088"; - public const string ARMORPLATE_ESAPI_LEVEL_IV_BALLISTIC_PLATE = "64afdcb83efdfea28601d041"; - public const string ARMORPLATE_ESBI_LEVEL_IV_BALLISTIC_PLATE_SIDE = "64afdb577bb3bfe8fe03fd1d"; - public const string ARMORPLATE_GAC_3S15M_BALLISTIC_PLATE = "656fae5f7c2d57afe200c0d7"; - public const string ARMORPLATE_GAC_4SSS2_BALLISTIC_PLATE = "656faf0ca0dce000a2020f77"; - public const string ARMORPLATE_GLOBAL_ARMORS_STEEL_BALLISTIC_PLATE = "656fa0fb498d1b7e3e071d9c"; - public const string ARMORPLATE_GRANIT_4_BALLISTIC_PLATE_FRONT = "656f611f94b480b8a500c0db"; - public const string ARMORPLATE_GRANIT_4_BALLISTIC_PLATES_BACK = "656efaf54772930db4031ff5"; - public const string ARMORPLATE_GRANIT_4RS_BALLISTIC_PLATE_FRONT = "656f63c027aed95beb08f62c"; - public const string ARMORPLATE_GRANIT_4RS_BALLISTIC_PLATES_BACK = "654a4a964b446df1ad03f192"; - public const string ARMORPLATE_GRANIT_BALLISTIC_PLATE_SIDE = "64afd81707e2cf40e903a316"; - public const string ARMORPLATE_GRANIT_BR4_BALLISTIC_PLATE = "65573fa5655447403702a816"; - public const string ARMORPLATE_GRANIT_BR5_BALLISTIC_PLATE = "64afc71497cf3a403c01ff38"; - public const string ARMORPLATE_HELMET_ALL_EXEPTNECK = "64b11c08506a73f6a10f9364"; - public const string ARMORPLATE_KIBA_ARMS_STEEL_BALLISTIC_PLATE = "656fa76500d62bcd2e024080"; - public const string ARMORPLATE_KIBA_ARMS_TITAN_BALLISTIC_PLATE = "656fa25e94b480b8a500c0e0"; - public const string ARMORPLATE_KITECO_SCIV_SA_BALLISTIC_PLATE = "656fafe3498d1b7e3e071da4"; - public const string ARMORPLATE_KORUNDVM_BALLISTIC_PLATE_BACK = "657b2797c3dbcb01d60c35ea"; - public const string ARMORPLATE_KORUNDVM_BALLISTIC_PLATE_SIDE = "654a4f8bc721968a4404ef18"; - public const string ARMORPLATE_KORUNDVM_BALLISTIC_PLATES_FRONT = "656f664200d62bcd2e024077"; - public const string ARMORPLATE_KORUNDVMK_BALLISTIC_PLATE_BACK = "657b28d25f444d6dff0c6c77"; - public const string ARMORPLATE_KORUNDVMK_BALLISTIC_PLATES_FRONT = "656f66b5c6baea13cd07e108"; - public const string ARMORPLATE_MONOCLETE_LEVEL_III_PE_BALLISTIC_PLATE = - "656fad8c498d1b7e3e071da0"; - public const string ARMORPLATE_NESCO_4400SAMC_BALLISTIC_PLATE = "656fa61e94b480b8a500c0e8"; - public const string ARMORPLATE_NEWSPHERETECH_LEVEL_III_BALLISTIC_PLATE = - "656fb21fa0dce000a2020f7c"; - public const string ARMORPLATE_PRTCTR_LIGHTWEIGHT_BALLISTIC_PLATE = "656fac30c6baea13cd07e10c"; - public const string ARMORPLATE_SAPI_LEVEL_III_BALLISTIC_PLATE = "655746010177119f4a097ff7"; - public const string ARMORPLATE_SPRTN_ELAPHROS_BALLISTIC_PLATE = "656fb0bd7c2d57afe200c0dc"; - public const string ARMORPLATE_SPRTN_OMEGA_BALLISTIC_PLATE = "656f9fa0498d1b7e3e071d98"; - public const string ARMORPLATE_SSAPI_LEVEL_III_BALLISTIC_PLATE_SIDE = - "6557458f83942d705f0c4962"; - public const string ARMORPLATE_TALLCOM_GUARDIAN_BALLISTIC_PLATE = "656fa53d94b480b8a500c0e4"; - public const string ARMORPLATE_ZHUK3_BALLISTIC_PLATE_FRONT = "656f57dc27aed95beb08f628"; - public const string ASSAULTCARBINE_AS_VAL_9X39_SPECIAL_ASSAULT_RIFLE = - "57c44b372459772d2b39b8ce"; - public const string ASSAULTCARBINE_KBP_9A91_9X39_COMPACT_ASSAULT_RIFLE = - "644674a13d52156624001fbc"; - public const string ASSAULTCARBINE_KBP_VSK94_9X39_RIFLE = "645e0c6b3b381ede770e1cc9"; - public const string ASSAULTCARBINE_MOLOT_ARMS_SIMONOV_OPSKS_762X39_CARBINE = - "587e02ff24597743df3deaeb"; - public const string ASSAULTCARBINE_MOLOT_ARMS_VPO101_VEPRHUNTER_762X51_CARBINE = - "5c501a4d2e221602b412b540"; - public const string ASSAULTCARBINE_SR3M_9X39_COMPACT_ASSAULT_RIFLE = "651450ce0e00edc794068371"; - public const string ASSAULTCARBINE_TOKAREV_AVT40_762X54R_AUTOMATIC_RIFLE = - "6410733d5dd49d77bd07847e"; - public const string ASSAULTCARBINE_TOKAREV_SVT40_762X54R_RIFLE = "643ea5b23db6f9f57107d9fd"; - public const string ASSAULTCARBINE_TOZ_SIMONOV_SKS_762X39_CARBINE = "574d967124597745970e7c94"; - public const string ASSAULTRIFLE_ADAR_215_556X45_CARBINE = "5c07c60e0db834002330051f"; - public const string ASSAULTRIFLE_AKLYS_DEFENSE_VELOCIRAPTOR_300_BLACKOUT_ASSAULT_RIFLE = - "674d6121c09f69dfb201a888"; - public const string ASSAULTRIFLE_ASH12_127X55_ASSAULT_RIFLE = "5cadfbf7ae92152ac412eeef"; - public const string ASSAULTRIFLE_CMMG_MK47_MUTANT_762X39_ASSAULT_RIFLE = - "606587252535c57a13424cfd"; - public const string ASSAULTRIFLE_COLT_M4A1_556X45_ASSAULT_RIFLE = "5447a9cd4bdc2dbd208b4567"; - public const string ASSAULTRIFLE_DESERT_TECH_MDR_556X45_ASSAULT_RIFLE = - "5c488a752e221602b412af63"; - public const string ASSAULTRIFLE_DESERT_TECH_MDR_762X51_ASSAULT_RIFLE = - "5dcbd56fdbd3d91b3e5468d5"; - public const string ASSAULTRIFLE_DS_ARMS_SA58_762X51_ASSAULT_RIFLE = "5b0bbe4e5acfc40dc528a72d"; - public const string ASSAULTRIFLE_FN_SCARH_762X51_ASSAULT_RIFLE = "6183afd850224f204c1da514"; - public const string ASSAULTRIFLE_FN_SCARH_762X51_ASSAULT_RIFLE_FDE = "6165ac306ef05c2ce828ef74"; - public const string ASSAULTRIFLE_FN_SCARH_X17_762X51_ASSAULT_RIFLE = "676176d362e0497044079f4c"; - public const string ASSAULTRIFLE_FN_SCARL_556X45_ASSAULT_RIFLE = "6184055050224f204c1da540"; - public const string ASSAULTRIFLE_FN_SCARL_556X45_ASSAULT_RIFLE_FDE = "618428466ef05c2ce828f218"; - public const string ASSAULTRIFLE_HK_416A5_556X45_ASSAULT_RIFLE = "5bb2475ed4351e00853264e3"; - public const string ASSAULTRIFLE_HK_G36_556X45_ASSAULT_RIFLE = "623063e994fc3f7b302a9696"; - public const string ASSAULTRIFLE_KALASHNIKOV_AK101_556X45_ASSAULT_RIFLE = - "5ac66cb05acfc40198510a10"; - public const string ASSAULTRIFLE_KALASHNIKOV_AK102_556X45_ASSAULT_RIFLE = - "5ac66d015acfc400180ae6e4"; - public const string ASSAULTRIFLE_KALASHNIKOV_AK103_762X39_ASSAULT_RIFLE = - "5ac66d2e5acfc43b321d4b53"; - public const string ASSAULTRIFLE_KALASHNIKOV_AK104_762X39_ASSAULT_RIFLE = - "5ac66d725acfc43b321d4b60"; - public const string ASSAULTRIFLE_KALASHNIKOV_AK105_545X39_ASSAULT_RIFLE = - "5ac66d9b5acfc4001633997a"; - public const string ASSAULTRIFLE_KALASHNIKOV_AK12_545X39_ASSAULT_RIFLE = - "6499849fc93611967b034949"; - public const string ASSAULTRIFLE_KALASHNIKOV_AK74_545X39_ASSAULT_RIFLE = - "5bf3e03b0db834001d2c4a9c"; - public const string ASSAULTRIFLE_KALASHNIKOV_AK74M_545X39_ASSAULT_RIFLE = - "5ac4cd105acfc40016339859"; - public const string ASSAULTRIFLE_KALASHNIKOV_AK74N_545X39_ASSAULT_RIFLE = - "5644bd2b4bdc2d3b4c8b4572"; - public const string ASSAULTRIFLE_KALASHNIKOV_AKM_762X39_ASSAULT_RIFLE = - "59d6088586f774275f37482f"; - public const string ASSAULTRIFLE_KALASHNIKOV_AKMN_762X39_ASSAULT_RIFLE = - "5a0ec13bfcdbcb00165aa685"; - public const string ASSAULTRIFLE_KALASHNIKOV_AKMS_762X39_ASSAULT_RIFLE = - "59ff346386f77477562ff5e2"; - public const string ASSAULTRIFLE_KALASHNIKOV_AKMSN_762X39_ASSAULT_RIFLE = - "5abcbc27d8ce8700182eceeb"; - public const string ASSAULTRIFLE_KALASHNIKOV_AKS74_545X39_ASSAULT_RIFLE = - "5bf3e0490db83400196199af"; - public const string ASSAULTRIFLE_KALASHNIKOV_AKS74N_545X39_ASSAULT_RIFLE = - "5ab8e9fcd8ce870019439434"; - public const string ASSAULTRIFLE_KALASHNIKOV_AKS74U_545X39_ASSAULT_RIFLE = - "57dc2fa62459775949412633"; - public const string ASSAULTRIFLE_KALASHNIKOV_AKS74UB_545X39_ASSAULT_RIFLE = - "5839a40f24597726f856b511"; - public const string ASSAULTRIFLE_KALASHNIKOV_AKS74UN_545X39_ASSAULT_RIFLE = - "583990e32459771419544dd2"; - public const string ASSAULTRIFLE_LONE_STAR_TX15_DML_556X45_CARBINE = "5d43021ca4b9362eab4b5e25"; - public const string ASSAULTRIFLE_MASTER_HAND = "5ae083b25acfc4001a5fc702"; - public const string ASSAULTRIFLE_MOLOT_ARMS_VPO136_VEPRKM_762X39_CARBINE = - "59e6152586f77473dc057aa1"; - public const string ASSAULTRIFLE_MOLOT_ARMS_VPO209_366_TKM_CARBINE = "59e6687d86f77411d949b251"; - public const string ASSAULTRIFLE_RIFLE_DYNAMICS_RD704_762X39_ASSAULT_RIFLE = - "628a60ae6b1d481ff772e9c8"; - public const string ASSAULTRIFLE_SAG_AK545_545X39_CARBINE = "628b5638ad252a16da6dd245"; - public const string ASSAULTRIFLE_SAG_AK545_SHORT_545X39_CARBINE = "628b9c37a733087d0d7fe84b"; - public const string ASSAULTRIFLE_SIG_MCX_300_BLACKOUT_ASSAULT_RIFLE = - "5fbcc1d9016cce60e8341ab3"; - public const string ASSAULTRIFLE_SIG_MCXSPEAR_68X51_ASSAULT_RIFLE = "65290f395ae2ae97b80fdf2d"; - public const string ASSAULTRIFLE_STEYR_AUG_A1_556X45_ASSAULT_RIFLE = "62e7c4fba689e8c9c50dfc38"; - public const string ASSAULTRIFLE_STEYR_AUG_A3_556X45_ASSAULT_RIFLE = "63171672192e68c5460cebc5"; - public const string ASSAULTRIFLE_STEYR_AUG_A3_556X45_ASSAULT_RIFLE_BLACK = - "6718817435e3cfd9550d2c27"; - public const string ASSAULTSCOPE_ELCAN_SPECTER_OS4X_ASSAULT_SCOPE = "544a3f024bdc2d1d388b4568"; - public const string ASSAULTSCOPE_ELCAN_SPECTERDR_1X4X_SCOPE = "57ac965c24597706be5f975c"; - public const string ASSAULTSCOPE_ELCAN_SPECTERDR_1X4X_SCOPE_FDE = "57aca93d2459771f2c7e26db"; - public const string ASSAULTSCOPE_HK_G36_HENSOLDT_HKV_3X_CARRY_HANDLE = - "622b4d7df9cfc87d675d2ded"; - public const string ASSAULTSCOPE_HK_G36_HENSOLDT_HKV_ZF_15X_CARRY_HANDLE = - "622b4f54dc8dcc0ba8742f85"; - public const string ASSAULTSCOPE_KIBA_ARMS_SHORT_PRISM_25X_SCOPE = "5c1cdd512e22161b267d91ae"; - public const string ASSAULTSCOPE_LEUPOLD_MARK_4_HAMR_4X24_DELTAPOINT_HYBRID_ASSAULT_SCOPE = - "544a3a774bdc2d3a388b4567"; - public const string ASSAULTSCOPE_MONSTRUM_TACTICAL_COMPACT_PRISM_SCOPE_2X32 = - "5d2dc3e548f035404a1a4798"; - public const string ASSAULTSCOPE_SIG_SAUER_BRAVO4_4X30_SCOPE = "57adff4f24597737f373b6e6"; - public const string ASSAULTSCOPE_STEYR_AUG_A1_STG77_15X_OPTIC_SIGHT = - "62ea7c793043d74a0306e19f"; - public const string ASSAULTSCOPE_STEYR_AUG_A3_M1_15X_OPTIC_SIGHT = "62ebd290c427473eff0baafb"; - public const string ASSAULTSCOPE_SWAMPFOX_TRIHAWK_PRISM_SCOPE_3X30 = "626bb8532c923541184624b4"; - public const string ASSAULTSCOPE_TRIJICON_ACOG_TA01NSN_4X32_SCOPE_BLACK = - "5c05293e0db83400232fff80"; - public const string ASSAULTSCOPE_TRIJICON_ACOG_TA01NSN_4X32_SCOPE_TAN = - "5c052a900db834001a66acbd"; - public const string ASSAULTSCOPE_TRIJICON_ACOG_TA11D_35X35_SCOPE = "59db7e1086f77448be30ddf3"; - public const string ASSAULTSCOPE_VALDAY_PS320_16X_SCOPE = "5c0517910db83400232ffee5"; - public const string AUXILIARYMOD_ARMASIGHT_VULCAN_MG_SCOPE_EYECUP = "5b3cbc235acfc4001863ac44"; - public const string AUXILIARYMOD_ARMASIGHT_ZEUSPRO_SCOPE_EYECUP = "63fc4533b10b17385349b565"; - public const string AUXILIARYMOD_AXION_KOBRA_SIGHT_SHADE = "591c4e1186f77410354b316e"; - public const string AUXILIARYMOD_CYCLONE_SHAKHIN_SCOPE_EYECUP = "67641bec4ad898aa100c1079"; - public const string AUXILIARYMOD_FAB_DEFENSE_PROTECTION_CAP_FOR_AGR870 = - "5bfe86bd0db83400232fe959"; - public const string AUXILIARYMOD_GLOCK_ZEV_TECH_SIGHT_MOUNT_CAP = "5a71e1868dc32e00094b97f3"; - public const string AUXILIARYMOD_HK_G36_HAND_STOP = "622f16a1a5958f63c67f1737"; - public const string AUXILIARYMOD_HK_USP_HAMMER = "6193d3be7c6c7b169525f0da"; - public const string AUXILIARYMOD_HK_USP_SLIDE_LOCK = "6193d5d4f8ee7e52e4210a1b"; - public const string AUXILIARYMOD_HK_USP_TRIGGER = "6193d3cded0429009f543e6a"; - public const string AUXILIARYMOD_KAC_URX_331_LONG_PANEL = "5d123b70d7ad1a0ee35e0754"; - public const string AUXILIARYMOD_KAC_URX_331_LONG_PANEL_FDE = "5d124c0ed7ad1a10d168dd9b"; - public const string AUXILIARYMOD_KAC_URX_331_SHORT_PANEL = "5d123a3cd7ad1a004e476058"; - public const string AUXILIARYMOD_KAC_URX_331_SHORT_PANEL_FDE = "5d124c01d7ad1a115c7d59fb"; - public const string AUXILIARYMOD_KAC_URX_331_STOPPER_PANEL = "5d123b7dd7ad1a004f01b262"; - public const string AUXILIARYMOD_KAC_URX_331_STOPPER_PANEL_FDE = "5d124c1ad7ad1a12227c53a7"; - public const string AUXILIARYMOD_KMZ_1P59_SCOPE_EYECUP = "5d0b5cd3d7ad1a3fe32ad263"; - public const string AUXILIARYMOD_KPSR2_SIGHT_SHADE = "62ff9faffe938a24c90c10df"; - public const string AUXILIARYMOD_M1911A1_CASPIAN_ARMS_TRIK_TRIGGER = "5ef32e4d1c1fd62aea6a150d"; - public const string AUXILIARYMOD_M1911A1_HAMMER = "5e81c550763d9f754677befd"; - public const string AUXILIARYMOD_M1911A1_SLIDE_STOP = "5e81c539cb2b95385c177553"; - public const string AUXILIARYMOD_M1911A1_STI_HEX_HAMMER = "5ef35f46382a846010715a96"; - public const string AUXILIARYMOD_M1911A1_TRIGGER = "5e81c6a2ac2bb513793cdc7f"; - public const string AUXILIARYMOD_M1911A1_WILSON_EXTENDED_SLIDE_STOP = - "5ef3553c43cb350a955a7ccb"; - public const string AUXILIARYMOD_M1911A1_WILSON_RETRO_COMMANDER_HAMMER = - "5ef35d2ac64c5d0dfc0571b0"; - public const string AUXILIARYMOD_M1911A1_WILSON_ULTRALIGHT_SKELETONIZED_HAMMER = - "5ef35bc243cb350a955a7ccd"; - public const string AUXILIARYMOD_M45A1_HAMMER = "5f3e76d86cda304dcc634054"; - public const string AUXILIARYMOD_M45A1_SLIDE_LOCK = "5f3e777688ca2d00ad199d25"; - public const string AUXILIARYMOD_M45A1_TRIGGER = "5f3e772a670e2a7b01739a52"; - public const string AUXILIARYMOD_MP155_ULTIMA_PISTOL_GRIP_RUBBER_PAD = - "60785c0d232e5a31c233d51c"; - public const string AUXILIARYMOD_MP155_ULTIMA_UNDERBARREL_MOUNT = "606f26752535c57a13424d22"; - public const string AUXILIARYMOD_NPZ_1P78_SCOPE_EYECUP = "618a760e526131765025aae3"; - public const string AUXILIARYMOD_NPZ_USP1_SCOPE_EYECUP = "5cf639aad7f00c065703d455"; - public const string AUXILIARYMOD_NSPUM_SCOPE_EYECUP = "5ba36f85d4351e0085325c81"; - public const string AUXILIARYMOD_PSO_SCOPE_EYECUP = "57f3a5ae2459772b0e0bf19e"; - public const string AUXILIARYMOD_SAKO_TRG_M10_REAR_HOOK = "673ddbb567c759b3c90e5f76"; - public const string AUXILIARYMOD_STM9_MAGWELL = "602f85fd9b513876d4338d9c"; - public const string AUXILIARYMOD_STM9_MAGWELL_GREY = "60338ff388382f4fab3fd2c8"; - public const string AUXILIARYMOD_SV98_ANTIHEAT_RIBBON = "56083eab4bdc2d26448b456a"; - public const string AUXILIARYMOD_SV98_SOUND_SUPPRESSOR_HEAT_SHIELD = "5c4eecde2e221602b3140418"; - public const string AUXILIARYMOD_TRIJICON_REAPIR_SCOPE_EYECUP = "5a1eacb3fcdbcb09800872be"; - public const string AUXILIARYMOD_TROPHY = "5ae089fb5acfc408fb13989b"; - public const string BACKPACK_3V_GEAR_PARATUS_3DAY_OPERATORS_TACTICAL_BACKPACK_FOLIAGE_GREY = - "5c0e805e86f774683f3dd637"; - public const string BACKPACK_511_TACTICAL_RUSH_100_BACKPACK_BLACK = "67458730df3c1da90b0b052b"; - public const string BACKPACK_6SH118_RAID_BACKPACK_EMR = "5df8a4d786f77412672a1e3b"; - public const string BACKPACK_ANA_TACTICAL_BETA_2_BATTLE_BACKPACK_OLIVE_DRAB = - "5b44c6ae86f7742d1627baea"; - public const string BACKPACK_CAMELBAK_TRIZIP_ASSAULT_BACKPACK_FOLIAGE = - "545cdae64bdc2d39198b4568"; - public const string BACKPACK_CAMELBAK_TRIZIP_ASSAULT_BACKPACK_MULTICAM = - "66b5f22b78bbc0200425f904"; - public const string BACKPACK_DIRECT_ACTION_DRAGON_EGG_MARK_II_BACKPACK_BLACK = - "656f198fb27298d6fd005466"; - public const string BACKPACK_DUFFLE_BAG = "56e33634d2720bd8058b456b"; - public const string BACKPACK_EBERLESTOCK_F4_TERMINATOR_LOAD_BEARING_BACKPACK_TIGER_STRIPE = - "5f5e46b96bdad616ad46d613"; - public const string BACKPACK_EBERLESTOCK_F5_SWITCHBLADE_BACKPACK_DRY_EARTH = - "5f5e467b0bc58666c37e7821"; - public const string BACKPACK_EBERLESTOCK_G2_GUNSLINGER_II_BACKPACK_DRY_EARTH = - "6034d2d697633951dc245ea6"; - public const string BACKPACK_FLYYE_MBSS_BACKPACK_UCP = "544a5cde4bdc2d39388b456b"; - public const string BACKPACK_GRUPPA_99_T20_BACKPACK_MULTICAM = "619cf0335771dd3c390269ae"; - public const string BACKPACK_GRUPPA_99_T20_BACKPACK_UMBER_BROWN = "618bb76513f5097c8d5aa2d5"; - public const string BACKPACK_GRUPPA_99_T30_BACKPACK_BLACK = "628e1ffc83ec92260c0f437f"; - public const string BACKPACK_GRUPPA_99_T30_BACKPACK_MULTICAM = "62a1b7fbc30cfa1d366af586"; - public const string BACKPACK_HAZARD_4_DRAWBRIDGE_BACKPACK_COYOTE_TAN = - "60a272cc93ef783291411d8e"; - public const string BACKPACK_HAZARD_4_PILLBOX_BACKPACK_BLACK = "60a2828e8689911a226117f9"; - public const string BACKPACK_HAZARD_4_TAKEDOWN_SLING_BACKPACK_BLACK = - "6034d103ca006d2dca39b3f0"; - public const string BACKPACK_HAZARD_4_TAKEDOWN_SLING_BACKPACK_MULTICAM = - "6038d614d10cbf667352dd44"; - public const string BACKPACK_LBT1476A_3DAY_PACK_MULTICAM_ALPINE = "67458794e21e5d724e066976"; - public const string BACKPACK_LBT1476A_3DAY_PACK_WOODLAND = "618cfae774bb2d036a049e7c"; - public const string BACKPACK_LBT2670_SLIM_FIELD_MED_PACK_BLACK = "5e4abc6786f77406812bd572"; - public const string BACKPACK_LBT8005A_DAY_PACK_BACKPACK_MULTICAM_BLACK = - "5e9dcf5986f7746c417435b3"; - public const string BACKPACK_LOLKEK_3F_TRANSFER_TOURIST = "5f5e45cc5021ce62144be7aa"; - public const string BACKPACK_MYSTERY_RANCH_BLACKJACK_50_BACKPACK_MULTICAM = - "5c0e774286f77468413cc5b2"; - public const string BACKPACK_MYSTERY_RANCH_NICE_COMM_3_BVS_FRAME_SYSTEM_COYOTE = - "628bc7fb408e2b2e9c0801b1"; - public const string BACKPACK_MYSTERY_RANCH_SATL_BRIDGER_ASSAULT_PACK_FOLIAGE = - "656e0436d44a1bb4220303a0"; - public const string BACKPACK_MYSTERY_RANCH_TERRAFRAME_BACKPACK_CHRISTMAS_EDITION = - "674da9cf0cb4bcde7103c07b"; - public const string BACKPACK_MYSTERY_RANCH_TERRAFRAME_BACKPACK_OLIVE_DRAB = - "674da107c512807d1a0e7436"; - public const string BACKPACK_MYSTERY_RANCH_TERRAPLANE = "56e294cdd2720b603a8b4575"; - public const string BACKPACK_OAKLEY_MECHANISM_HEAVY_DUTY_BACKPACK_BLACK = - "5d5d940f86f7742797262046"; - public const string BACKPACK_PARTISANS_BAG = "66a9f98f3bd5a41b162030f4"; - public const string BACKPACK_PILGRIM_TOURIST = "59e763f286f7742ee57895da"; - public const string BACKPACK_SANITARS_BAG = "5e997f0b86f7741ac73993e2"; - public const string BACKPACK_SANTAS_BAG = "61b9e1aaef9a1b5d6a79899a"; - public const string BACKPACK_SCAV = "56e335e4d2720b6c058b456d"; - public const string BACKPACK_SSO_ATTACK_2_RAID_BACKPACK_KHAKI = "5ab8ebf186f7742d8b372e80"; - public const string BACKPACK_TACTICAL_SLING_BAG_KHAKI = "5ab8f04f86f774585f4237d8"; - public const string BACKPACK_TASMANIAN_TIGER_TROOPER_35_BACKPACK_KHAKI = - "639346cc1c8f182ad90c8972"; - public const string BACKPACK_TEHINKOM_RKPT25_PATROL_BACKPACK_EMR = "656ddcf0f02d7bcea90bf395"; - public const string BACKPACK_TRANSFORMER_BAG = "56e33680d2720be2748b4576"; - public const string BACKPACK_VERTX_READY_PACK_BACKPACK_RED = "66b5f247af44ca0014063c02"; - public const string BACKPACK_VKBO_ARMY_BAG = "5ab8ee7786f7742d8f33f0b9"; - public const string BACKPACK_WARTECH_BERKUT_BB102_BACKPACK_ATACS_FG = - "5ca20d5986f774331e7c9602"; - public const string BARREL_9A91_9X39 = "645122f6d4928d46d30be3ff"; - public const string BARREL_AA12_12GA_330MM = "66ffac601f7492c901027bbb"; - public const string BARREL_AA12_12GA_342MM_THREADED = "670fd03dc424cf758f006946"; - public const string BARREL_AA12_12GA_417MM_THREADED = "670fd0a8d8d4eae4790c8187"; - public const string BARREL_AA12_12GA_457MM = "670fced86a7e274b1a0964e8"; - public const string BARREL_AI_AXMC_338_LM_28_INCH = "628121434fa03b6b6c35dc6a"; - public const string BARREL_AR10_762X51_18_INCH = "5a34f7f1c4a2826c6e06d75d"; - public const string BARREL_AR10_762X51_22_INCH = "5a34fae7c4a2826c6e06d760"; - public const string BARREL_AR15_556X45_103_INCH = "55d35ee94bdc2d61338b4568"; - public const string BARREL_AR15_556X45_145_INCH = "55d3632e4bdc2d972f8b4569"; - public const string BARREL_AR15_556X45_18_INCH = "5d440b93a4b9364276578d4b"; - public const string BARREL_AR15_556X45_20_INCH = "5d440b9fa4b93601354d480c"; - public const string BARREL_AR15_556X45_BALLISTIC_ADVANTAGE_HANSON_CARBINE_PRO_137_INCH = - "63d3ce0446bd475bcb50f55f"; - public const string BARREL_AR15_556X45_BALLISTIC_ADVANTAGE_HANSON_CARBINE_PRO_16_INCH = - "63d3d44a2a49307baf09386d"; - public const string BARREL_AR15_556X45_MOLOT_ARMS_16_INCH = "5c0e2f94d174af029f650d56"; - public const string BARREL_BENELLI_M3_SUPER_90_12GA_500MM = "6259c2c1d714855d182bad85"; - public const string BARREL_DESERT_EAGLE_L5_357_127MM = "669fa4c61bd4416eaa09b3ca"; - public const string BARREL_DESERT_EAGLE_L5_50_AE_127MM = "669fa4ba1bd4416eaa09b3c6"; - public const string BARREL_DESERT_EAGLE_L6_50_AE_152MM = "669fa47da0bab4e8510d9526"; - public const string BARREL_DESERT_EAGLE_L6_50_AE_152MM_BARREL_WTS = "669fa48fa0bab4e8510d952a"; - public const string BARREL_DESERT_EAGLE_MK_XIX_50_AE_152MM = "668fe5f62a0f85eea407cc18"; - public const string BARREL_DO_NOT_USEAI_AXMC_762X51_20_INCH = "628121651d5df4475f46a33c"; - public const string BARREL_DO_NOT_USEAI_AXMC_762X51_24_INCH = "6281215b4fa03b6b6c35dc6c"; - public const string BARREL_DO_NOT_USEAI_AXMC_762X51_26_INCH = "6281214c1d5df4475f46a33a"; - public const string BARREL_DVL10_762X51_500MM_SUPPRESSED = "5888945a2459774bf43ba385"; - public const string BARREL_DVL10_M2_762X51_660MM = "5888956924597752983e182d"; - public const string BARREL_FN_FIVESEVEN_57X28_120MM = "5d3eb5b6a4b9361eab311902"; - public const string BARREL_FN_FIVESEVEN_57X28_120MM_THREADED = "5d3eb59ea4b9361c284bb4b2"; - public const string BARREL_FN_P90_57X28_105_INCH = "5cc701aae4a949000e1ea45c"; - public const string BARREL_FN_P90_57X28_16_INCH = "5cc701d7e4a94900100ac4e7"; - public const string BARREL_FN_SCARH_762X51_13_INCH = "618168b350224f204c1da4d8"; - public const string BARREL_FN_SCARH_762X51_16_INCH = "6183b0711cb55961fa0fdcad"; - public const string BARREL_FN_SCARH_762X51_20_INCH = "6183b084a112697a4b3a6e6c"; - public const string BARREL_FN_SCARL_556X45_10_INCH = "6183fc15d3a39d50044c13e9"; - public const string BARREL_FN_SCARL_556X45_14_INCH = "6183fd911cb55961fa0fdce9"; - public const string BARREL_FN_SCARL_556X45_18_INCH = "6183fd9e8004cc50514c358f"; - public const string BARREL_GLOCK_17_9X19_114MM = "5a6b5f868dc32e000a311389"; - public const string BARREL_GLOCK_17_9X19_114MM_COMPENSATED = "5a6b60158dc32e000a31138b"; - public const string BARREL_GLOCK_18C_9X19_114MM_COMPENSATED = "5b1fa9ea5acfc40018633c0a"; - public const string BARREL_GLOCK_19X_9X19_102MM = "630764fea987397c0816d219"; - public const string BARREL_GLOCK_9X19_DOUBLE_DIAMOND_114MM_THREADED = - "5a6b5e468dc32e001207faf5"; - public const string BARREL_GLOCK_9X19_LONE_WOLF_ALPHAWOLF_114MM_THREADED = - "5a6b5b8a8dc32e001207faf3"; - public const string BARREL_GLOCK_9X19_SAI_114MM_THREADED = "5a6b5ed88dc32e000c52ec86"; - public const string BARREL_HK_416_556X45_106_INCH = "5c6d85e02e22165df16b81f4"; - public const string BARREL_HK_416_556X45_11_INCH = "5bb20d92d4351e00853263eb"; - public const string BARREL_HK_416_556X45_145_INCH_BARREL_WITH_FLIPUP_FRONT_SIGHT = - "5bb20d9cd4351e00334c9d8a"; - public const string BARREL_HK_416_556X45_165_INCH_BARREL_WITH_FLIPUP_FRONT_SIGHT = - "5bb20da5d4351e0035629dbf"; - public const string BARREL_HK_416_556X45_20_INCH_BARREL_WITH_FLIPUP_FRONT_SIGHT = - "5bb20dadd4351e00367faeff"; - public const string BARREL_HK_G36_556X45_228MM = "622b379bf9cfc87d675d2de5"; - public const string BARREL_HK_G36_556X45_318MM = "622b3858034a3e17ad0b81f5"; - public const string BARREL_HK_G36_556X45_480MM = "622b38c56762c718e457e246"; - public const string BARREL_HK_UMP_45_ACP_8_INCH = "5fc3e4a27283c4046c5814ab"; - public const string BARREL_HK_UMP_45_ACP_8_INCH_THREADED = "6130c3dffaa1272e43151c7d"; - public const string BARREL_HK_USP_45_ACP_112MM = "6194ef39de3cdf1d2614a768"; - public const string BARREL_HK_USP_ELITE_45_ACP_153MM = "6194f017ed0429009f543eaa"; - public const string BARREL_HK_USP_EXPERT_45_ACP_132MM = "6194eff92d2c397d6600348b"; - public const string BARREL_HK_USP_MATCH_45_ACP_153MM = "6194f02d9bb3d20b0946d2f0"; - public const string BARREL_HK_USP_TACTICAL_45_ACP_129MM_THREADED = "6194efe07c6c7b169525f11b"; - public const string BARREL_HK417_762X51_165_INCH = "61702be9faa1272e431522c3"; - public const string BARREL_KRISS_VECTOR_45_ACP_5_INCH = "5fb65363d1409e5ca04b54f5"; - public const string BARREL_KRISS_VECTOR_45_ACP_6_INCH = "5fb653962b1b027b1f50bd03"; - public const string BARREL_KRISS_VECTOR_9X19_5_INCH = "5fbbc366ca32ed67276c1557"; - public const string BARREL_KRISS_VECTOR_9X19_6_INCH = "5fbbc383d5cb881a7363194a"; - public const string BARREL_KS23_23X75_510MM = "5e848d1c264f7c180b5e35a9"; - public const string BARREL_KS23_23X75_700MM = "5e848d2eea0a7c419c2f9bfd"; - public const string BARREL_M1911A1_45_ACP_127MM = "5e81c519cb2b95385c177551"; - public const string BARREL_M1911A1_45_ACP_141MM_THREADED = "5f3e77f59103d430b93f94c1"; - public const string BARREL_M1911A1_45_ACP_NATIONAL_MATCH_127MM = "5f3e7801153b8571434a924c"; - public const string BARREL_M1A_762X51_16_INCH = "5aaf9d53e5b5b00015042a52"; - public const string BARREL_M1A_762X51_22_INCH = "5addbac75acfc400194dbc56"; - public const string BARREL_M60E3_762X51_584MM = "6601279cc752a02bbe05e692"; - public const string BARREL_M60E4_762X51_458MM = "660126f7c752a02bbe05e688"; - public const string BARREL_M60E4_762X51_475MM_HEAVY = "66012788c752a02bbe05e68e"; - public const string BARREL_M60E6_762X51_458MM = "66225d88a1c7e3b81600c76f"; - public const string BARREL_M700_762X51_20_INCH_STAINLESS_STEEL_THREADED = - "5d2703038abbc3105103d94c"; - public const string BARREL_M700_762X51_20_INCH_THREADED = "5bfebc320db8340019668d79"; - public const string BARREL_M700_762X51_26_INCH = "5bfebc250db834001a6694e1"; - public const string BARREL_M700_762X51_26_INCH_STAINLESS_STEEL = "5d2702e88abbc31ed91efc44"; - public const string BARREL_M870_12GA_355MM = "5a787f25c5856700186c4ab9"; - public const string BARREL_M870_12GA_508MM = "5a787f7ac5856700177af660"; - public const string BARREL_M870_12GA_508MM_BARREL_WITH_A_FIXED_SIGHT = - "5a787ebcc5856700142fdd98"; - public const string BARREL_M870_12GA_660MM_VENT_RIB = "5a787fadc5856700155a6ca1"; - public const string BARREL_M870_12GA_SAWEDOFF_325MM = "5a787fdfc5856700142fdd9a"; - public const string BARREL_M9A3_9X19_127MM_THREADED = "5cadc1c6ae9215000f2775a4"; - public const string BARREL_MCX_300_BLK_675_INCH = "5fbbfabed5cb881a7363194e"; - public const string BARREL_MCX_300_BLK_9_INCH = "5fbbfacda56d053a3543f799"; - public const string BARREL_MCXSPEAR_68X51_13_INCH = "652910565ae2ae97b80fdf35"; - public const string BARREL_MDR_556X45_16_INCH = "5c48a2852e221602b21d5923"; - public const string BARREL_MDR_762X51_16_INCH = "5dcbe9431e1f4616d354987e"; - public const string BARREL_MK18_338_LM_24_INCH = "5fc23678ab884124df0cd590"; - public const string BARREL_MK47_254MM = "60658776f2cb2e02a42ace2b"; - public const string BARREL_MK47_409MM = "6065878ac9cf8012264142fd"; - public const string BARREL_MOSIN_CARBINE_762X54R_514MM = "5bfd4cbe0db834001b73449f"; - public const string BARREL_MOSIN_RIFLE_762X54R_730MM_REGULAR = "5ae09bff5acfc4001562219d"; - public const string BARREL_MOSIN_RIFLE_762X54R_SAWEDOFF_200MM = "5bfd4cc90db834001d23e846"; - public const string BARREL_MOSIN_RIFLE_762X54R_SAWEDOFF_220MM_THREADED = - "5bfd4cd60db834001c38f095"; - public const string BARREL_MOSSBERG_590A1_12GA_20_INCH = "5e87071478f43e51ca2de5e1"; - public const string BARREL_MP133_12GA_510MM = "55d4491a4bdc2d882f8b456e"; - public const string BARREL_MP133_12GA_510MM_BARREL_WITH_RIB = "560835c74bdc2dc8488b456f"; - public const string BARREL_MP133_12GA_540MM = "560836484bdc2d20478b456e"; - public const string BARREL_MP133_12GA_540MM_BARREL_WITH_RIB = "560836b64bdc2d57468b4567"; - public const string BARREL_MP133_12GA_610MM = "55d448594bdc2d8c2f8b4569"; - public const string BARREL_MP133_12GA_610MM_BARREL_WITH_RIB = "55d449444bdc2d962f8b456d"; - public const string BARREL_MP133_12GA_660MM = "560836fb4bdc2d773f8b4569"; - public const string BARREL_MP133_12GA_660MM_BARREL_WITH_RIB = "560837154bdc2da74d8b4568"; - public const string BARREL_MP133_12GA_710MM = "5608373c4bdc2dc8488b4570"; - public const string BARREL_MP133_12GA_710MM_BARREL_WITH_RIB = "560837544bdc2de22e8b456e"; - public const string BARREL_MP133_12GA_750MM = "560837824bdc2d57468b4568"; - public const string BARREL_MP133_12GA_750MM_BARREL_WITH_RIB = "5608379a4bdc2d26448b4569"; - public const string BARREL_MP153_12GA_610MM = "588200af24597742fa221dfb"; - public const string BARREL_MP153_12GA_660MM = "588200c224597743990da9ed"; - public const string BARREL_MP153_12GA_710MM = "588200cf2459774414733d55"; - public const string BARREL_MP153_12GA_750MM = "56deec93d2720bec348b4568"; - public const string BARREL_MP155_12GA_510MM = "6076c1b9f2cb2e02a42acedc"; - public const string BARREL_MP18_762X54R_600MM = "61f4012adfc9f01a816adda1"; - public const string BARREL_MP43_12GA_750MM = "611a30addbdd8440277441dc"; - public const string BARREL_MP43_12GA_SAWEDOFF_310MM = "64748d02d1c009260702b526"; - public const string BARREL_MP431C_12GA_510MM = "5580169d4bdc2d9d138b4585"; - public const string BARREL_MP431C_12GA_725MM = "55d447bb4bdc2d892f8b456f"; - public const string BARREL_MPX_9X19_105_INCH = "5c5db5b82e2216003a0fe71d"; - public const string BARREL_MPX_9X19_14_INCH = "5c5db5c62e22160012542255"; - public const string BARREL_MPX_9X19_45_INCH = "5c5db5852e2216003a0fe71a"; - public const string BARREL_MPX_9X19_65_INCH = "5c5db5962e2216000e5e46eb"; - public const string BARREL_MPX_9X19_8_INCH = "5894a2c386f77427140b8342"; - public const string BARREL_MPX_9X19_RONIN_ARMS_475_INCH_PORTED_SD = "67614994e889e1972605d6bb"; - public const string BARREL_MPX_9X19_RONIN_ARMS_675_INCH_PORTED_SD = "676149a3e2cf1419500357eb"; - public const string BARREL_MPXSD_9X19_65_INCH_PORTED = "58aeaaa886f7744fc1560f81"; - public const string BARREL_MTS25512_12GA_755MM_BARREL_WITH_RIB = "612368f58b401f4f51239b33"; - public const string BARREL_OPSKS_762X39_520MM = "634eff66517ccc8a960fc735"; - public const string BARREL_ORSIS_T5000M_762X51_660MM = "5df256570dee1b22f862e9c4"; - public const string BARREL_P226_9X19_112MM = "56d5a1f7d2720bb3418b456a"; - public const string BARREL_P226_9X19_112MM_THREADED = "587de4282459771bca0ec90b"; - public const string BARREL_PKM_762X54R_658MM = "646371faf2404ab67905c8e9"; - public const string BARREL_PKP_762X54R_658MM = "64639a9aab86f8fd4300146c"; - public const string BARREL_PL15_9X19_112MM = "602a95edda11d6478d5a06da"; - public const string BARREL_PL15_9X19_112MM_THREADED = "602a95fe4e02ce1eaa358729"; - public const string BARREL_PPSH41_762X25_269MM = "5ea02bb600685063ec28bfa1"; - public const string BARREL_RFB_762X51_18_INCH = "5f2aa46b878ef416f538b567"; - public const string BARREL_RPD_762X39_520MM = "6513eff1e06849f06c0957d4"; - public const string BARREL_RPD_762X39_SAWEDOFF_350MM = "65266fd43341ed9aa903dd56"; - public const string BARREL_RPK16_545X39_15_INCH = "5beec1bd0db834001e6006f3"; - public const string BARREL_RPK16_545X39_22_INCH = "5beec2820db834001b095426"; - public const string BARREL_SA58_762X51_11_INCH = "5b099a765acfc47a8607efe3"; - public const string BARREL_SA58_762X51_16_INCH = "5b7be1125acfc4001876c0e5"; - public const string BARREL_SA58_762X51_21_INCH = "5b7be1265acfc400161d0798"; - public const string BARREL_SAKO_TRG_M10_338_LM_20_INCH = "67405d760098dcb5940ea1a6"; - public const string BARREL_SAKO_TRG_M10_338_LM_235_INCH = "673cb551093e0ea7fd0b874a"; - public const string BARREL_SAKO_TRG_M10_338_LM_27_INCH = "67405e3b83ac5c69ae025406"; - public const string BARREL_SKS_762X39_520MM = "634f02331f9f536910079b51"; - public const string BARREL_SR25_762X51_16_INCH = "5df917564a9f347bc92edca3"; - public const string BARREL_SR25_762X51_20_INCH = "5dfa397fb11454561e39246c"; - public const string BARREL_STEYR_AUG_A1_556X45_16_INCH = "6333f05d1bc0e6217a0e9d34"; - public const string BARREL_STEYR_AUG_A1_556X45_20_INCH = "62e7c7f3c34ea971710c32fc"; - public const string BARREL_STEYR_AUG_A3_556X45_16_INCH = "630e39c3bd357927e4007c15"; - public const string BARREL_STM9_9X19_105_INCH = "603372b4da11d6478d5a07ff"; - public const string BARREL_STM9_9X19_12_INCH = "603372d154072b51b239f9e1"; - public const string BARREL_STM9_9X19_14_INCH = "603372f153a60014f970616d"; - public const string BARREL_STM9_9X19_16_INCH = "603373004e02ce1eaa358814"; - public const string BARREL_SVD_762X54R_565MM = "5c471cb32e221602b177afaa"; - public const string BARREL_SVT40_762X54R_625MM = "6410758c857473525b08bb77"; - public const string BARREL_TT_762X25_116MM = "571a26d524597720680fbe8a"; - public const string BARREL_TT_762X25_116MM_GILDED = "5b3baf8f5acfc40dc5296692"; - public const string BARREL_TT_762X25_121MM_MAKESHIFT_THREADED = "571a279b24597720b4066566"; - public const string BARREL_UZI_238MM_THREADED_3LUG = "6698c89bfbc8142e60024b0e"; - public const string BARREL_UZI_9X19_259MM = "6698c8ab29e062525d0ad8ab"; - public const string BARREL_UZI_9X19_409MM = "6698c8b7710a4525fe0e9e55"; - public const string BARREL_UZI_PRO_9X19_114MM = "66866fe776d1a87cd80fd388"; - public const string BARREL_UZI_PRO_9X19_170MM = "6686700a2b934a68630a7fe6"; - public const string BARREL_UZI_PRO_9X19_210MM = "66867023c3d473265104f384"; - public const string BARREL_UZI_PRO_9X19_240MM = "668670432b934a68630a7fe8"; - public const string BARREL_UZI_PRO_9X19_PIKE_ARMS_114MM_THREADED = "668031705014e211b4078046"; - public const string BARREL_VPO21502_366TKM_600MM = "5de65547883dde217541644b"; - public const string BARREL_VSK94_9X39 = "645123013d52156624001fd1"; - public const string BARTER_42_SIGNATURE_BLEND_ENGLISH_TEA = "5bc9be8fd4351e00334cae6e"; - public const string BARTER_6STEN140M_MILITARY_BATTERY = "5d03794386f77420415576f5"; - public const string BARTER_AA_BATTERY = "5672cb124bdc2d1a0f8b4568"; - public const string BARTER_ADVANCED_CURRENT_CONVERTER = "6389c85357baa773a825b356"; - public const string BARTER_ALKALINE_CLEANER_FOR_HEAT_EXCHANGERS = "59faf98186f774067b6be103"; - public const string BARTER_ANALOG_THERMOMETER = "5d1b32c186f774252167a530"; - public const string BARTER_ANTIQUE_TEAPOT = "590de71386f774347051a052"; - public const string BARTER_ANTIQUE_VASE = "590de7e986f7741b096e5f32"; - public const string BARTER_APOLLO_SOYUZ_CIGARETTES = "573475fb24597737fb1379e1"; - public const string BARTER_AQUAPEPS_WATER_PURIFICATION_TABLETS = "6389c6c7dbfd5e4b95197e68"; - public const string BARTER_ARAMID_FIBER_FABRIC = "5e2af4d286f7746d4159f07a"; - public const string BARTER_AWL = "62a0a098de7ac8199358053b"; - public const string BARTER_AXEL_PARROT_FIGURINE = "62a091170b9d3c46de5b6cf2"; - public const string BARTER_BATTERED_ANTIQUE_BOOK = "5bc9c049d4351e44f824d360"; - public const string BARTER_BEAR_BUDDY_PLUSH_TOY = "62a08f4c4f842e1bd12d9d62"; - public const string BARTER_BEAR_OPERATIVE_FIGURINE = "655c652d60d0ac437100fed7"; - public const string BARTER_BOLTS = "57347c5b245977448d35f6e1"; - public const string BARTER_BOTTLE_OF_HYDROGEN_PEROXIDE = "59e361e886f774176c10a2a5"; - public const string BARTER_BOTTLE_OF_OLOLO_MULTIVITAMINS = "62a0a043cf4a99369e2624a5"; - public const string BARTER_BOTTLE_OF_SALINE_SOLUTION = "59e3606886f77417674759a5"; - public const string BARTER_BROKEN_GPHONE_SMARTPHONE = "56742c324bdc2d150f8b456d"; - public const string BARTER_BROKEN_GPHONE_X_SMARTPHONE = "5c1265fc86f7743f896a21c2"; - public const string BARTER_BROKEN_LCD = "5d1b309586f77425227d1676"; - public const string BARTER_BRONZE_LION_FIGURINE = "59e3639286f7741777737013"; - public const string BARTER_BULBEX_CABLE_CUTTER = "619cbfeb6b8a1b37a54eebfa"; - public const string BARTER_BUNDLE_OF_WIRES = "5c06779c86f77426e00dd782"; - public const string BARTER_CAN_OF_DR_LUPOS_COFFEE_BEANS = "5e54f6af86f7742199090bf3"; - public const string BARTER_CAN_OF_MAJAICA_COFFEE_BEANS = "5af0484c86f7740f02001f7f"; - public const string BARTER_CAN_OF_THERMITE = "60391a8b3364dc22b04d0ce5"; - public const string BARTER_CAN_OF_WHITE_SALT = "62a09ee4cf4a99369e262453"; - public const string BARTER_CAPACITORS = "5c06782b86f77426df5407d2"; - public const string BARTER_CAR_BATTERY = "5733279d245977289b77ec24"; - public const string BARTER_CASE_KEY = "67449b6c89d5e1ddc603f504"; - public const string BARTER_CAT_FIGURINE = "59e3658a86f7741776641ac4"; - public const string BARTER_CHAIN_WITH_PROKILL_MEDALLION = "5c1267ee86f77416ec610f72"; - public const string BARTER_CHAINLET = "573474f924597738002c6174"; - public const string BARTER_CHRISTMAS_TREE_ORNAMENT_RED = "5df8a6a186f77412640e2e80"; - public const string BARTER_CHRISTMAS_TREE_ORNAMENT_SILVER = "5df8a72c86f77412640e2e83"; - public const string BARTER_CHRISTMAS_TREE_ORNAMENT_VIOLET = "5df8a77486f77412672a1e3f"; - public const string BARTER_CLASSIC_MATCHES = "57347b8b24597737dd42e192"; - public const string BARTER_CLIN_WINDOW_CLEANER = "59e358a886f7741776641ac3"; - public const string BARTER_CONSTRUCTION_MEASURING_TAPE = "590c2c9c86f774245b1f03f2"; - public const string BARTER_CONTRABAND_BOX = "67408903268737ef6908d432"; - public const string BARTER_CORDURA_POLYAMIDE_FABRIC = "5e2af41e86f774755a234b67"; - public const string BARTER_CORRUGATED_HOSE = "59e35cbb86f7741778269d83"; - public const string BARTER_COUNT_BLOODSUCKER_FIGURINE = "679b9d4b3374fb14f40efe6d"; - public const string BARTER_CPU_FAN = "5734779624597737e04bf329"; - public const string BARTER_CRICKENT_LIGHTER = "56742c284bdc2d98058b456d"; - public const string BARTER_CULTIST_FIGURINE = "655c669103999d3c810c025b"; - public const string BARTER_CYCLON_RECHARGEABLE_BATTERY = "5e2aee0a86f774755a234b62"; - public const string BARTER_D_SIZE_BATTERY = "5672cb304bdc2dc2088b456a"; - public const string BARTER_DAMAGED_HARD_DRIVE = "590a386e86f77429692b27ab"; - public const string BARTER_DEADLYSLOBS_BEARD_OIL = "5bc9b9ecd4351e3bac122519"; - public const string BARTER_DED_MOROZ_FIGURINE = "655c67ab0d37ca5135388f4b"; - public const string BARTER_DEN_FIGURINE = "66572b8d80b1cd4b6a67847f"; - public const string BARTER_DISPOSABLE_SYRINGE = "5d1b3f2d86f774253763b735"; - public const string BARTER_DOGTAG_BEAR = "59f32bb586f774757e1e8442"; - public const string BARTER_DOGTAG_BEAR_EOD = "6662e9aca7e0b43baa3d5f74"; - public const string BARTER_DOGTAG_BEAR_PRESTIGE_1 = "675dc9d37ae1a8792107ca96"; - public const string BARTER_DOGTAG_BEAR_PRESTIGE_2 = "675dcb0545b1a2d108011b2b"; - public const string BARTER_DOGTAG_BEAR_TUE = "6662e9cda7e0b43baa3d5f76"; - public const string BARTER_DOGTAG_USEC = "59f32c3b86f77472a31742f0"; - public const string BARTER_DOGTAG_USEC_EOD = "6662e9f37fa79a6d83730fa0"; - public const string BARTER_DOGTAG_USEC_PRESTIGE_1 = "6764207f2fa5e32733055c4a"; - public const string BARTER_DOGTAG_USEC_PRESTIGE_2 = "6764202ae307804338014c1a"; - public const string BARTER_DOGTAG_USEC_TUE = "6662ea05f6259762c56f3189"; - public const string BARTER_DOGTAGT = "5b9b9020e7ef6f5716480215"; - public const string BARTER_DRY_FUEL = "590a373286f774287540368b"; - public const string BARTER_DUCT_TAPE = "57347c1124597737fb1379e3"; - public const string BARTER_DVD_DRIVE = "5734781f24597737e04bf32a"; - public const string BARTER_ELECTRIC_DRILL = "59e35de086f7741778269d84"; - public const string BARTER_ELECTRIC_MOTOR = "5d1b2fa286f77425227d1674"; - public const string BARTER_ELECTRONIC_COMPONENTS = "6389c70ca33d8c4cdf4932c6"; - public const string BARTER_ENERGYSAVING_LAMP = "590a3cd386f77436f20848cb"; - public const string BARTER_EXPEDITIONARY_FUEL_TANK = "5d1b371186f774253763a656"; - public const string BARTER_FARFORWARD_GPS_SIGNAL_AMPLIFIER_UNIT = "6389c7f115805221fb410466"; - public const string BARTER_FIERCE_BLOW_SLEDGEHAMMER = "63a0b208f444d32d6f03ea1e"; - public const string BARTER_FIREKLEAN_GUN_LUBE = "5bc9b355d4351e6d1509862a"; - public const string BARTER_FLAT_SCREWDRIVER = "5d63d33b86f7746ea9275524"; - public const string BARTER_FLAT_SCREWDRIVER_LONG = "5d4042a986f7743185265463"; - public const string BARTER_FLEECE_FABRIC = "5e2af47786f7746d404f3aaa"; - public const string BARTER_FP100_FILTER_ABSORBER = "5d1b2f3f86f774252167a52c"; - public const string BARTER_FUEL_CONDITIONER = "5b43575a86f77424f443fe62"; - public const string BARTER_GARY_ZONT_PORTABLE_ELECTRONIC_WARFARE_DEVICE = - "66d9f8744827a77e870ecaf1"; - public const string BARTER_GAS_ANALYZER = "590a3efd86f77437d351a25b"; - public const string BARTER_GAS_MASK_AIR_FILTER = "590c595c86f7747884343ad7"; - public const string BARTER_GEIGERMULLER_COUNTER = "5672cb724bdc2dc2088b456b"; - public const string BARTER_GOLD_SKULL_RING = "5d235a5986f77443f6329bc6"; - public const string BARTER_GOLDEN_1GPHONE_SMARTPHONE = "5bc9b720d4351e450201234b"; - public const string BARTER_GOLDEN_EGG = "62a09cfe4f842e1bd12da3e4"; - public const string BARTER_GOLDEN_NECK_CHAIN = "5734758f24597738025ee253"; - public const string BARTER_GOLDEN_ROOSTER_FIGURINE = "5bc9bc53d4351e00367fbcee"; - public const string BARTER_GRAPHICS_CARD = "57347ca924597744596b4e71"; - public const string BARTER_GREENBAT_LITHIUM_BATTERY = "5e2aedd986f7746d404f3aa4"; - public const string BARTER_GUNPOWDER_EAGLE = "5d6fc78386f77449d825f9dc"; - public const string BARTER_GUNPOWDER_HAWK = "5d6fc87386f77449db3db94e"; - public const string BARTER_GUNPOWDER_KITE = "590c5a7286f7747884343aea"; - public const string BARTER_HAND_DRILL = "5d1b317c86f7742523398392"; - public const string BARTER_HORSE_FIGURINE = "573478bc24597738002c6175"; - public const string BARTER_HUNTING_MATCHES = "5e2af2bc86f7746d3f3c33fc"; - public const string BARTER_INSEQ_GAS_PIPE_WRENCH = "66b37f114410565a8f6789e2"; - public const string BARTER_INSULATING_TAPE = "5734795124597738002c6176"; - public const string BARTER_IRIDIUM_MILITARY_THERMAL_VISION_MODULE = "5d0377ce86f774186372f689"; - public const string BARTER_JAR_OF_PICKLES = "67586af7036d7f3da60c3612"; - public const string BARTER_KEKTAPE_DUCT_TAPE = "5e2af29386f7746d4159f077"; - public const string BARTER_KILLA_FIGURINE = "66572c82ad599021091c6118"; - public const string BARTER_KOSA_UAV_ELECTRONIC_JAMMING_DEVICE = "66d9f7e7099cf6adcc07a369"; - public const string BARTER_LEDX_SKIN_TRANSILLUMINATOR = "5c0530ee86f774697952d952"; - public const string BARTER_LEGA_MEDAL = "6656560053eaaa7a23349c86"; - public const string BARTER_LIGHT_BULB = "5d1b392c86f77425243e98fe"; - public const string BARTER_LOCKED_CASE = "6740987b89d5e1ddc603f4f0"; - public const string BARTER_LOCKED_EQUIPMENT_CRATE_BATTLEPASS_0 = "67cad1ec19b006e9e50f44d6"; - public const string BARTER_LOCKED_EQUIPMENT_CRATE_COMMON = "66588b514de4820934746dc6"; - public const string BARTER_LOCKED_EQUIPMENT_CRATE_EPIC = "6658285190486915542256c4"; - public const string BARTER_LOCKED_EQUIPMENT_CRATE_RARE = "66571bf06a723f7f005a0619"; - public const string BARTER_LOCKED_SUPPLY_CRATE_COMMON = "66588ba291f6e93c4c06efef"; - public const string BARTER_LOCKED_SUPPLY_CRATE_EPIC = "665828c44de4820934746ce4"; - public const string BARTER_LOCKED_SUPPLY_CRATE_RARE = "66572b88ac60f009f270d1dc"; - public const string BARTER_LOCKED_VALUABLES_CRATE_COMMON = "66588bb047fbd536a674240e"; - public const string BARTER_LOCKED_VALUABLES_CRATE_EPIC = "665828f490486915542256c6"; - public const string BARTER_LOCKED_VALUABLES_CRATE_RARE = "66572bb3ac60f009f270d1df"; - public const string BARTER_LOCKED_WEAPON_CRATE_COMMON = "66588b6dcb48a73e674b2649"; - public const string BARTER_LOCKED_WEAPON_CRATE_EPIC = "66582889efd94e2d665b14a2"; - public const string BARTER_LOCKED_WEAPON_CRATE_RARE = "66572b3f6a723f7f005a066c"; - public const string BARTER_LOOT_LORD_PLUSHIE = "60b0f7057897d47c5b04ab94"; - public const string BARTER_LVNDMARKS_RAT_POISON = "60b0f561c4449e4cb624c1d7"; - public const string BARTER_MAGNET = "590a391c86f774385a33c404"; - public const string BARTER_MALBORO_CIGARETTES = "573476d324597737da2adc13"; - public const string BARTER_MEDICAL_BLOODSET = "5b4335ba86f7744d2837a264"; - public const string BARTER_MEDICAL_TOOLS = "619cc01e0a7c3a1a2731940c"; - public const string BARTER_METAL_CUTTING_SCISSORS = "5d40419286f774318526545f"; - public const string BARTER_METAL_FUEL_TANK = "5d1b36a186f7742523398433"; - public const string BARTER_METAL_SPARE_PARTS = "61bf7b6302b3924be92fa8c3"; - public const string BARTER_MICROCONTROLLER_BOARD = "6389c7750ef44505c87f5996"; - public const string BARTER_MILITARY_CABLE = "5d0375ff86f774186372f685"; - public const string BARTER_MILITARY_CIRCUIT_BOARD = "5d0376a486f7747d8050965c"; - public const string BARTER_MILITARY_COFDM_WIRELESS_SIGNAL_TRANSMITTER = - "5c052f6886f7746b1e3db148"; - public const string BARTER_MILITARY_CORRUGATED_TUBE = "619cbf476b8a1b37a54eebf8"; - public const string BARTER_MILITARY_GYROTACHOMETER = "5d03784a86f774203e7e0c4d"; - public const string BARTER_MILITARY_POWER_FILTER = "5d0378d486f77420421a5ff4"; - public const string BARTER_MR_KERMANS_CAT_HOLOGRAM = "6638a5474e92f038531e210e"; - public const string BARTER_NAILHEAD_FIGURINE = "679b9cce4e4ed4b3b40ae5c5"; - public const string BARTER_NIPPERS = "5d40425986f7743185265461"; - public const string BARTER_NIXXOR_LENS = "5d1b2ffd86f77425243e8d17"; - public const string BARTER_OFZ_30X165MM_SHELL = "5d0379a886f77420407aa271"; - public const string BARTER_OLD_FIRESTEEL = "5bc9c377d4351e3bac12251b"; - public const string BARTER_OLIVIER_SALAD_BOX = "67586b7e49c2fa592e0d8ed9"; - public const string BARTER_OPHTHALMOSCOPE = "5af0534a86f7743b6f354284"; - public const string BARTER_ORTODONTOX_TOOTHPASTE = "5d4041f086f7743cac3f22a7"; - public const string BARTER_OX_BLEACH = "59e3556c86f7741776641ac2"; - public const string BARTER_PACK_OF_ARSENIY_BUCKWHEAT = "6389c6463485cf0eeb260715"; - public const string BARTER_PACK_OF_CHLORINE = "5e2af02c86f7746d420957d4"; - public const string BARTER_PACK_OF_NAILS = "590c31c586f774245e3141b2"; - public const string BARTER_PACK_OF_SCREWS = "59e35ef086f7741777737012"; - public const string BARTER_PACK_OF_SODIUM_BICARBONATE = "59e35abd86f7741778269d82"; - public const string BARTER_PAID_ANTIROACH_SPRAY = "59e3596386f774176c10a2a2"; - public const string BARTER_PARACORD = "5c12688486f77426843c7d32"; - public const string BARTER_PC_CPU = "573477e124597737dd42e191"; - public const string BARTER_PETYA_CROOKER_FIGURINE = "679b9d43597ba2ed120c3d44"; - public const string BARTER_PHASE_CONTROL_RELAY = "5d1b313086f77425227d1678"; - public const string BARTER_PHASED_ARRAY_ELEMENT = "5d03775b86f774203e7e0c4b"; - public const string BARTER_PHYSICAL_BITCOIN = "59faff1d86f7746c51718c9c"; - public const string BARTER_PIECE_OF_PLEXIGLASS = "59e366c186f7741778269d85"; - public const string BARTER_PILE_OF_MEDS = "5d1b3a5d86f774252167ba22"; - public const string BARTER_PIPE_GRIP_WRENCH = "619cbfccbedcde2f5b3f7bdd"; - public const string BARTER_PLIERS = "590c2b4386f77425357b6123"; - public const string BARTER_PLIERS_ELITE = "5af04b6486f774195a3ebb49"; - public const string BARTER_POINTY_GUY_FIGURINE = "679b9d6390622daf9708da76"; - public const string BARTER_POLITICIAN_MUTKEVICH_FIGURINE = "655c66e40b2de553b618d4b8"; - public const string BARTER_PORTABLE_DEFIBRILLATOR = "5c052e6986f7746b207bc3c9"; - public const string BARTER_PORTABLE_POWERBANK = "5af0561e86f7745f5f3ad6ac"; - public const string BARTER_POWER_CORD = "59e36c6f86f774176c10a2a7"; - public const string BARTER_POWER_SUPPLY_UNIT = "57347c2e24597744902c94a1"; - public const string BARTER_PRESS_PASS_ISSUED_FOR_NOICEGUY = "62a09cb7a04c0c5c6e0a84f8"; - public const string BARTER_PRESSURE_GAUGE = "5d1b327086f7742525194449"; - public const string BARTER_PRINTED_CIRCUIT_BOARD = "590a3b0486f7743954552bdb"; - public const string BARTER_PRINTER_PAPER = "577e1c9d2459773cd707c525"; - public const string BARTER_PROPANE_TANK_5L = "59fafb5d86f774067a6f2084"; - public const string BARTER_RADAR_STATION_SPARE_PARTS = "66d9f7256916142b3b02276e"; - public const string BARTER_RADIATOR_HELIX = "5d1c774f86f7746d6620f8db"; - public const string BARTER_RAM_STICK = "57347baf24597738002c6178"; - public const string BARTER_RATCHET_WRENCH = "60391afc25aff57af81f7085"; - public const string BARTER_RAVEN_FIGURINE = "5e54f62086f774219b0f1937"; - public const string BARTER_RECHARGEABLE_BATTERY = "590a358486f77429692b2790"; - public const string BARTER_REPELLENT = "5e2aef7986f7746d3f3c33f5"; - public const string BARTER_RESHALA_FIGURINE = "66572be36a723f7f005a066e"; - public const string BARTER_RIPSTOP_FABRIC = "5e2af4a786f7746d3f3c3400"; - public const string BARTER_ROLER_SUBMARINER_GOLD_WRIST_WATCH = "59faf7ca86f7740dbe19f6c2"; - public const string BARTER_ROUND_PLIERS = "5d1b31ce86f7742523398394"; - public const string BARTER_RYZHY_FIGURINE = "655c67782a1356436041c9c5"; - public const string BARTER_SCAV_FIGURINE = "655c673673a43e23e857aebd"; - public const string BARTER_SCHAMAN_SHAMPOO = "5d40412b86f7743cb332ac3a"; - public const string BARTER_SCREW_NUTS = "57347c77245977448d35f6e2"; - public const string BARTER_SCREWDRIVER = "590c2d8786f774245b1f03f3"; - public const string BARTER_SEALED_BOX = "67409848d0b2f8eb9b034db9"; - public const string BARTER_SET_OF_FILES_MASTER = "62a0a0bb621468534a797ad5"; - public const string BARTER_SEWING_KIT = "61bf83814088ec1a363d7097"; - public const string BARTER_SHUSTRILO_SEALING_FOAM = "590c35a486f774273531c822"; - public const string BARTER_SHYSHKA_CHRISTMAS_TREE_LIFE_EXTENDER = "67586c61a0c49554ed0bb4a8"; - public const string BARTER_SILICONE_TUBE = "5d1b39a386f774252339976f"; - public const string BARTER_SILVER_BADGE = "5bc9bdb8d4351e003562b8a1"; - public const string BARTER_SMOKED_CHIMNEY_DRAIN_CLEANER = "5e2af00086f7746d3f3c33f7"; - public const string BARTER_SOAP = "5c13cd2486f774072c757944"; - public const string BARTER_SPARK_PLUG = "590a3c0a86f774385a33c450"; - public const string BARTER_SPECIAL_40DEGREE_FUEL = "67586bee39b1b82b0d0f9d06"; - public const string BARTER_STRIKE_CIGARETTES = "5734770f24597738025ee254"; - public const string BARTER_SURVL_SURVIVOR_LIGHTER = "5e2af37686f774755a234b65"; - public const string BARTER_TAGILLA_FIGURINE = "66572cbdad599021091c611a"; - public const string BARTER_TAGILLAS_WELDING_MASK_ZABEY_REPLICA = "67ea616a74f765cefd009fb7"; - public const string BARTER_TAMATTHI_KUNAI_KNIFE_REPLICA = "66b37ea4c5d72b0277488439"; - public const string BARTER_TETRIZ_PORTABLE_GAME_CONSOLE = "5c12620d86f7743f8b198b72"; - public const string BARTER_TOILET_PAPER = "5c13cef886f774072e618e82"; - public const string BARTER_TOOLSET = "590c2e1186f77425357b6124"; - public const string BARTER_TOOTHPASTE = "57347c93245977448d35f6e3"; - public const string BARTER_TP200_TNT_BRICK = "60391b0fb847c71012789415"; - public const string BARTER_TSHAPED_PLUG = "57347cd0245977445a2d6ff1"; - public const string BARTER_TUBE_OF_POXERAM_COLD_WELDING = "5e2af22086f7746d3f3c33fa"; - public const string BARTER_UHF_RFID_READER = "5c052fb986f7746b2101e909"; - public const string BARTER_ULTRALINK_SATELLITE_INTERNET_STATION = "6389c88b33a719183c7f63b6"; - public const string BARTER_ULTRAVIOLET_LAMP = "590a3d9c86f774385926e510"; - public const string BARTER_USB_ADAPTER = "5909e99886f7740c983b9984"; - public const string BARTER_USEC_OPERATIVE_FIGURINE = "655c663a6689c676ce57af85"; - public const string BARTER_UZRGM_GRENADE_FUZE = "5e2af51086f7746d3f3c3402"; - public const string BARTER_VERITAS_GUITAR_PICK = "5f745ee30acaeb0d490d8c5b"; - public const string BARTER_VIIBIIN_SNEAKER = "66b37eb4acff495a29492407"; - public const string BARTER_VIRTEX_PROGRAMMABLE_PROCESSOR = "5c05308086f7746b2101e90b"; - public const string BARTER_VPX_FLASH_STORAGE_MODULE = "5c05300686f7746dce784e5d"; - public const string BARTER_WATER_FILTER = "5d1b385e86f774252167b98a"; - public const string BARTER_WD40_100ML = "590c5bbd86f774785762df04"; - public const string BARTER_WD40_400ML = "590c5c9f86f77477c91c36e7"; - public const string BARTER_WEAPON_PARTS = "5d1c819a86f774771b0acd6c"; - public const string BARTER_WILSTON_CIGARETTES = "573476f124597737e04bf328"; - public const string BARTER_WOODEN_CLOCK = "59e3647686f774176a362507"; - public const string BARTER_WORKING_LCD = "5d1b304286f774253763a528"; - public const string BARTER_WRENCH = "590c311186f77424d1667482"; - public const string BARTER_XENOALIEN_FIGURINE = "679b9d55708cfcb2060b9ae3"; - public const string BARTER_XENOMORPH_SEALING_FOAM = "590c346786f77423e50ed342"; - public const string BARTER_ZIBBO_LIGHTER = "56742c2e4bdc2d95058b456d"; - public const string BIPOD_ALL_TEST = "665745c8a3c672c7b00bb355"; - public const string BIPOD_BT10_V8_ATLAS = "6644920d49817dc7d505ca71"; - public const string BIPOD_HARRIS_SBRM_69 = "5888961624597754281f93f3"; - public const string BIPOD_HK_G36 = "622b397c9a3d4327e41843b6"; - public const string BIPOD_M60 = "66012d9a3dff5074ed002e33"; - public const string BIPOD_PK = "6464d870bb2c580352070cc4"; - public const string BIPOD_RPD = "6513f037e06849f06c0957d7"; - public const string BIPOD_SV98 = "56ea8222d2720b69698b4567"; - public const string BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_BACK = - "6575ea4cf6a13a7b7100adc4"; - public const string BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_COLLAR = - "6575ea719c7cad336508e418"; - public const string BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_FRONT = - "6575ea3060703324250610da"; - public const string BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_GROIN_FRONT = - "6575ea7c60703324250610e2"; - public const string BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6575ea5cf6a13a7b7100adc8"; - public const string BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6575ea6760703324250610de"; - public const string BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_BACK = "654a8976f414fcea4004d78b"; - public const string BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_COLLAR = "654a8ae00337d53f9102c2aa"; - public const string BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_FRONT = "654a8b0b0337d53f9102c2ae"; - public const string BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_GROIN = "654a8bc5f414fcea4004d79b"; - public const string BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "654a8b3df414fcea4004d78f"; - public const string BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "654a8b80f414fcea4004d797"; - public const string BUILTININSERTS_6B2_LEVEL2_SOFT_ARMOR_BACK = "656fd89bf5a9631d4e042575"; - public const string BUILTININSERTS_6B2_LEVEL2_SOFT_ARMOR_FRONT = "656fd7c32668ef0402028fb9"; - public const string BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_BACK = "6571baa74cb80d995d0a1490"; - public const string BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_COLLAR = "6571babb4076795e5e07383f"; - public const string BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_FRONT = "6571b27a6d84a2b8b6007f92"; - public const string BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_GROIN_BACK = - "6571babf4cb80d995d0a1494"; - public const string BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_GROIN_FRONT = - "6571bac34076795e5e073843"; - public const string BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "6571baac6d84a2b8b6007fa3"; - public const string BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "6571bab0f41985531a038091"; - public const string BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_BACK = "6570800612755ae0d907acf8"; - public const string BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_COLLAR = "657080ca12755ae0d907ad5e"; - public const string BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_FRONT = "65707fc348c7a887f2010432"; - public const string BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_GROIN_BACK = - "65708165696fe382cf073255"; - public const string BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_GROIN_FRONT = - "65708122f65e2491bf009755"; - public const string BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_LEFT = "65708070f65e2491bf00972c"; - public const string BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_RIGHT = "657080a212755ae0d907ad04"; - public const string BUILTININSERTS_6B3TM_LEVEL2_SOFT_ARMOR_BACK = "65764fae2bc38ef78e07648d"; - public const string BUILTININSERTS_6B3TM_LEVEL2_SOFT_ARMOR_GROIN_BACK = - "6576500f526e320fbe03577f"; - public const string BUILTININSERTS_6B3TM_LEVEL4_SOFT_ARMOR_FRONT = "65764e1e2bc38ef78e076489"; - public const string BUILTININSERTS_6B3TM_LEVEL4_SOFT_ARMOR_GROIN_FRONT = - "6576504b526e320fbe035783"; - public const string BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_BACK = "6575ce45dc9932aed601c616"; - public const string BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_COLLAR = - "6575ce6f16c2762fba005806"; - public const string BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_FRONT = "6575ce3716c2762fba0057fd"; - public const string BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_GROIN_FRONT = - "6575ce8bdc9932aed601c61e"; - public const string BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_LEFT_ARM = - "6575ce9db15fef3dd4051628"; - public const string BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6575ce5016c2762fba005802"; - public const string BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_RIGHT_ARM = - "6575cea8b15fef3dd405162c"; - public const string BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6575ce5befc786cd9101a671"; - public const string BUILTININSERTS_6B515_LEVEL2_SOFT_ARMOR_COLLAR = "65708afe4a747dbb63005eee"; - public const string BUILTININSERTS_6B515_LEVEL4_SOFT_ARMOR_BACK = "6570880f4a747dbb63005ee5"; - public const string BUILTININSERTS_6B515_LEVEL4_SOFT_ARMOR_FRONT = "657087577f6d4590ac0d2109"; - public const string BUILTININSERTS_6B515_LEVEL4_SOFT_ARMOR_GROIN = "65708b4c4a747dbb63005ef3"; - public const string BUILTININSERTS_6B516_LEVEL2_SOFT_ARMOR_BACK = "65764bc22bc38ef78e076485"; - public const string BUILTININSERTS_6B516_LEVEL2_SOFT_ARMOR_COLLAR = "65764c39526e320fbe035777"; - public const string BUILTININSERTS_6B516_LEVEL3_SOFT_ARMOR_FRONT = "65764a4cd8537eb26a0355ee"; - public const string BUILTININSERTS_6B516_LEVEL3_SOFT_ARMOR_GROIN = "65764c6b526e320fbe03577b"; - public const string BUILTININSERTS_ADEPT_NEOSTEEL_LEVEL4_HELMET_ARMOR_NAPE = - "657f9ef6c6679fefb3051e1f"; - public const string BUILTININSERTS_ADEPT_NEOSTEEL_LEVEL4_HELMET_ARMOR_TOP = - "657f9eb7e9433140ad0baf86"; - public const string BUILTININSERTS_ALTIN_LEVEL5_HELMET_ARMOR_EARS = "657bc107aab96fccee08be9f"; - public const string BUILTININSERTS_ALTIN_LEVEL5_HELMET_ARMOR_NAPE = "657bc0d8a1c61ee0c303632f"; - public const string BUILTININSERTS_ALTIN_LEVEL5_HELMET_ARMOR_TOP = "657bc06daab96fccee08be9b"; - public const string BUILTININSERTS_ANA_M1_LEVEL2_SOFT_ARMOR_BACK = "65730c2213a2f660f60bea96"; - public const string BUILTININSERTS_ANA_M1_LEVEL2_SOFT_ARMOR_FRONT = "65730c0e292ecadbfa09ad49"; - public const string BUILTININSERTS_ANA_M1_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "65730c2b292ecadbfa09ad50"; - public const string BUILTININSERTS_ANA_M1_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "65730c35292ecadbfa09ad54"; - public const string BUILTININSERTS_ANA_TACT_M2_LEVEL3_SOFT_ARMOR_BACK = - "6570f71dd67d0309980a7af8"; - public const string BUILTININSERTS_ANA_TACT_M2_LEVEL3_SOFT_ARMOR_FRONT = - "6570f6e774d84423df065f21"; - public const string BUILTININSERTS_ANA_TACT_M2_LEVEL3_SOFT_ARMOR_LEFT = - "6570f74774d84423df065f25"; - public const string BUILTININSERTS_ANA_TACT_M2_LEVEL3_SOFT_ARMOR_RIGHT = - "6570f79c4c65ab77a6015121"; - public const string BUILTININSERTS_ARS_CPC_LEVEL3_SOFT_ARMOR_BACK = "6575ef6bf6a13a7b7100b093"; - public const string BUILTININSERTS_ARS_CPC_LEVEL3_SOFT_ARMOR_FRONT = "6575ef599c7cad336508e453"; - public const string BUILTININSERTS_ARS_CPC_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6575ef78da698a4e980677eb"; - public const string BUILTININSERTS_ARS_CPC_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6575ef7f9c7cad336508e457"; - public const string BUILTININSERTS_ARSARMA_A18_LEVEL2_SOFT_ARMOR_BACK = - "6570e479a6560e4ee50c2b02"; - public const string BUILTININSERTS_ARSARMA_A18_LEVEL2_SOFT_ARMOR_FRONT = - "6570e5100b57c03ec90b970a"; - public const string BUILTININSERTS_ARSARMA_A18_LEVEL2_SOFT_ARMOR_LEFT = - "6570e5674cc0d2ab1e05edbb"; - public const string BUILTININSERTS_ARSARMA_A18_LEVEL2_SOFT_ARMOR_RIGHT = - "6570e59b0b57c03ec90b970e"; - public const string BUILTININSERTS_AVS_MBAV_LEVEL3_SOFT_ARMOR_BACK = "6575f5e1da698a4e98067869"; - public const string BUILTININSERTS_AVS_MBAV_LEVEL3_SOFT_ARMOR_FRONT = - "6575f5cbf6a13a7b7100b0bf"; - public const string BUILTININSERTS_BAGARII_LEVEL3_SOFT_ARMOR_BACK = "657322a4cea9255e21023651"; - public const string BUILTININSERTS_BAGARII_LEVEL3_SOFT_ARMOR_FRONT = "657322988c1cc6dcd9098b2d"; - public const string BUILTININSERTS_BAGARII_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "657322acd9d89ff7ac0d961b"; - public const string BUILTININSERTS_BAGARII_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "657322b7d9d89ff7ac0d961f"; - public const string BUILTININSERTS_BALLISTICARMORCO_BASTION_LEVEL4_HELMET_ARMOR_NAPE = - "66b61ce0c5d72b027748867e"; - public const string BUILTININSERTS_BALLISTICARMORCO_BASTION_LEVEL4_HELMET_ARMOR_TOP = - "66b61cfae98be930d701c029"; - public const string BUILTININSERTS_BANSHEE_LEVEL2_SOFT_ARMOR_BACK = "6573102b292ecadbfa09b38d"; - public const string BUILTININSERTS_BANSHEE_LEVEL2_SOFT_ARMOR_FRONT = "6573101e292ecadbfa09b389"; - public const string BUILTININSERTS_BANSHEE_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "65731038292ecadbfa09b391"; - public const string BUILTININSERTS_BANSHEE_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "65731045f31d5be00e08a75a"; - public const string BUILTININSERTS_BNTI_LSHZ_2DTM_LEVEL4_HELMET_ARMOR_EARS = - "657fa07387e11c61f70bface"; - public const string BUILTININSERTS_BNTI_LSHZ_2DTM_LEVEL4_HELMET_ARMOR_NAPE = - "657fa04ac6679fefb3051e24"; - public const string BUILTININSERTS_BNTI_LSHZ_2DTM_LEVEL4_HELMET_ARMOR_TOP = - "657fa009d4caf976440afe3a"; - public const string BUILTININSERTS_CLASS_TOR2_LEVEL3_HELMET_ARMOR_EARS = - "657fa186d4caf976440afe42"; - public const string BUILTININSERTS_CLASS_TOR2_LEVEL3_HELMET_ARMOR_NAPE = - "657fa168e9433140ad0baf8e"; - public const string BUILTININSERTS_CLASS_TOR2_LEVEL3_HELMET_ARMOR_TOP = - "657fa0fcd4caf976440afe3e"; - public const string BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_BACK = "6570fa1f4c65ab77a601512f"; - public const string BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_COLLAR = - "6570fb8f4c65ab77a601514d"; - public const string BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_FRONT = - "6570fae34c65ab77a6015146"; - public const string BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_LEFT = "6570fb22584a51c23e03251f"; - public const string BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_LEFT_ARM = - "6570fbdd74d84423df065f60"; - public const string BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_RIGHT = - "6570fb6ad3eefd23430f8c7c"; - public const string BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_RIGHT_ARM = - "6570fc41d3eefd23430f8c83"; - public const string BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_BACK = - "657333232cc8dfad2c0a3d97"; - public const string BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_COLLAR = - "6573334aca0ca984940a2d5b"; - public const string BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_FRONT = - "65733312ca0ca984940a2d53"; - public const string BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_LEFT_ARM = - "65733375b7a8d286530e3dd7"; - public const string BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "657333302cc8dfad2c0a3d9b"; - public const string BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_RIGHT_ARM = - "6573337f2cc8dfad2c0a3da7"; - public const string BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6573333eca0ca984940a2d57"; - public const string BUILTININSERTS_CRYE_AVS_LEVEL3_SOFT_ARMOR_BACK = "6570e87c23c1f638ef0b0ee2"; - public const string BUILTININSERTS_CRYE_AVS_LEVEL3_SOFT_ARMOR_FRONT = - "6570e83223c1f638ef0b0ede"; - public const string BUILTININSERTS_CRYE_AVS_LEVEL3_SOFT_ARMOR_GROIN = - "6570e90b3a5689d85f08db97"; - public const string BUILTININSERTS_CRYE_AVS_LEVEL3_SOFT_ARMOR_LEFT = "6570e8a623c1f638ef0b0ee6"; - public const string BUILTININSERTS_CRYE_AVS_LEVEL3_SOFT_ARMOR_RIGHT = - "6570e8e7ab49e964120b4563"; - public const string BUILTININSERTS_CRYE_CPC_LEVEL3_SOFT_ARMOR_BACK = "6575f25ada698a4e98067836"; - public const string BUILTININSERTS_CRYE_CPC_LEVEL3_SOFT_ARMOR_FRONT = - "6575f24ff6a13a7b7100b09e"; - public const string BUILTININSERTS_CRYE_CPC_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6575f2649cfdfe416f0399b8"; - public const string BUILTININSERTS_CRYE_CPC_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6575f26d9c7cad336508e480"; - public const string BUILTININSERTS_CRYE_PRECISION_AIRFRAME_LEVEL4_HELMET_ARMOR_NAPE = - "657f98fbada5fadd1f07a585"; - public const string BUILTININSERTS_CRYE_PRECISION_AIRFRAME_LEVEL4_HELMET_ARMOR_TOP = - "657f9897f4c82973640b235e"; - public const string BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_BACK = - "65732df4d0acf75aea06c87b"; - public const string BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_COLLAR = - "65732e215d3a3129fb05f3e1"; - public const string BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_FRONT = - "65732de75d3a3129fb05f3dd"; - public const string BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_GROIN_FRONT = - "65732e30dd8739f6440ef383"; - public const string BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "65732e05d0acf75aea06c87f"; - public const string BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "65732e0f6784ca384b0167ad"; - public const string BUILTININSERTS_DIAMOND_AGE_BASTION_LEVEL4_HELMET_ARMOR_NAPE = - "657f9a94ada5fadd1f07a589"; - public const string BUILTININSERTS_DIAMOND_AGE_BASTION_LEVEL4_HELMET_ARMOR_TOP = - "657f9a55c6679fefb3051e19"; - public const string BUILTININSERTS_DJETA_PSH97_LEVEL2_HELMET_ARMOR_EARS = - "657ba75e23918923cb0df573"; - public const string BUILTININSERTS_DJETA_PSH97_LEVEL2_HELMET_ARMOR_NAPE = - "657ba737b7e9ca9a02045bf6"; - public const string BUILTININSERTS_DJETA_PSH97_LEVEL2_HELMET_ARMOR_SHIELD = - "658188edf026a90c1708c827"; - public const string BUILTININSERTS_DJETA_PSH97_LEVEL2_HELMET_ARMOR_TOP = - "657ba6c3c6f689d3a205b857"; - public const string BUILTININSERTS_DRD_LEVEL3_SOFT_ARMOR_BACK = "6572e059371fccfbf909d5dc"; - public const string BUILTININSERTS_DRD_LEVEL3_SOFT_ARMOR_FRONT = "6572e048371fccfbf909d5d8"; - public const string BUILTININSERTS_DRD_LEVEL3_SOFT_ARMOR_LEFT_SIDE = "6572e06219b4b511af012f89"; - public const string BUILTININSERTS_DRD_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6572e06819b4b511af012f8d"; - public const string BUILTININSERTS_EXFIL_LEVEL4_HELMET_ARMOR_NAPE = "655200ba0ef76cf7be09d528"; - public const string BUILTININSERTS_EXFIL_LEVEL4_HELMET_ARMOR_TOP = "6551fec55d0cf82e51014288"; - public const string BUILTININSERTS_FIREFIGHTER_SHPM_LEVEL2_HELMET_ARMOR_EARS = - "657ba8eab7e9ca9a02045bfd"; - public const string BUILTININSERTS_FIREFIGHTER_SHPM_LEVEL2_HELMET_ARMOR_NAPE = - "657ba8bccfcf63c951052dab"; - public const string BUILTININSERTS_FIREFIGHTER_SHPM_LEVEL2_HELMET_ARMOR_SHIELD = - "65818e4e566d2de69901b1b1"; - public const string BUILTININSERTS_FIREFIGHTER_SHPM_LEVEL2_HELMET_ARMOR_TOP = - "657ba85ecfcf63c951052da7"; - public const string BUILTININSERTS_FORT_KIVER_M_LEVEL3_HELMET_ARMOR_EARS = - "657baecbc6f689d3a205b863"; - public const string BUILTININSERTS_FORT_KIVER_M_LEVEL3_HELMET_ARMOR_NAPE = - "657baeaacfcf63c951052db3"; - public const string BUILTININSERTS_FORT_KIVER_M_LEVEL3_HELMET_ARMOR_TOP = - "657bae18b7e9ca9a02045c0a"; - public const string BUILTININSERTS_GALVION_CAIMAN_LEVEL3_HELMET_ARMOR_NAPE = - "657bbb31b30eca9763051183"; - public const string BUILTININSERTS_GALVION_CAIMAN_LEVEL3_HELMET_ARMOR_TOP = - "657bbad7a1c61ee0c3036323"; - public const string BUILTININSERTS_GJEL_LEVEL3_SOFT_ARMOR_BACK = "657326978c1cc6dcd9098b56"; - public const string BUILTININSERTS_GJEL_LEVEL3_SOFT_ARMOR_COLLAR = "657326bc5d3a3129fb05f36b"; - public const string BUILTININSERTS_GJEL_LEVEL3_SOFT_ARMOR_FRONT = "65732688d9d89ff7ac0d9c4c"; - public const string BUILTININSERTS_GJEL_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "657326a28c1cc6dcd9098b5a"; - public const string BUILTININSERTS_GJEL_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "657326b08c1cc6dcd9098b5e"; - public const string BUILTININSERTS_HIGHCOM_STRIKER_ACHHC_LEVEL4_HELMET_ARMOR_NAPE = - "657f9605f4c82973640b2358"; - public const string BUILTININSERTS_HIGHCOM_STRIKER_ACHHC_LEVEL4_HELMET_ARMOR_TOP = - "657f95bff92cd718b701550c"; - public const string BUILTININSERTS_INTERCEPTOR_LEVEL2_SOFT_ARMOR_BACK = - "6570f35cd67d0309980a7acb"; - public const string BUILTININSERTS_INTERCEPTOR_LEVEL2_SOFT_ARMOR_FRONT = - "6570f30b0921c914bf07964c"; - public const string BUILTININSERTS_INTERCEPTOR_LEVEL2_SOFT_ARMOR_LEFT = - "6570f3890b4ae5847f060dad"; - public const string BUILTININSERTS_INTERCEPTOR_LEVEL2_SOFT_ARMOR_RIGHT = - "6570f3bb0b4ae5847f060db2"; - public const string BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_BACK = - "6575c3beefc786cd9101a5ed"; - public const string BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_COLLAR = - "6575c3ec52b7f8c76a05ee39"; - public const string BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_FRONT = - "6575c3b3dc9932aed601c5f4"; - public const string BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_LEFT_ARM = - "6575c3fd52b7f8c76a05ee3d"; - public const string BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6575c3cdc6700bd6b40e8a90"; - public const string BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_RIGHT_ARM = - "6575c40c52b7f8c76a05ee41"; - public const string BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6575c3dfdc9932aed601c5f8"; - public const string BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_BACK = - "6575c2be52b7f8c76a05ee25"; - public const string BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_COLLAR = - "6575c2e4efc786cd9101a5dd"; - public const string BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_FRONT = - "6575c2adefc786cd9101a5d9"; - public const string BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_GROIN_BACK = - "6575c326c6700bd6b40e8a80"; - public const string BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_GROIN_FRONT = - "6575c31b52b7f8c76a05ee35"; - public const string BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_LEFT_ARM = - "6575c2f7efc786cd9101a5e1"; - public const string BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6575c2cd52b7f8c76a05ee29"; - public const string BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_RIGHT_ARM = - "6575c30352b7f8c76a05ee31"; - public const string BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6575c2d852b7f8c76a05ee2d"; - public const string BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_BACK = - "6575c34bc6700bd6b40e8a84"; - public const string BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_COLLAR = - "6575c373dc9932aed601c5ec"; - public const string BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_FRONT = - "6575c342efc786cd9101a5e5"; - public const string BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_GROIN_BACK = - "6575c390efc786cd9101a5e9"; - public const string BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_GROIN_FRONT = - "6575c385dc9932aed601c5f0"; - public const string BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6575c35bc6700bd6b40e8a88"; - public const string BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6575c366c6700bd6b40e8a8c"; - public const string BUILTININSERTS_KIRASAN_LEVEL2_SOFT_ARMOR_BACK = "65705c3c14f2ed6d7d0b7738"; - public const string BUILTININSERTS_KIRASAN_LEVEL2_SOFT_ARMOR_COLLAR = - "65705cea4916448ae1050897"; - public const string BUILTININSERTS_KIRASAN_LEVEL2_SOFT_ARMOR_FRONT = "65704de13e7bba58ea0285c8"; - public const string BUILTININSERTS_KIRASAN_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "65705c777260e1139e091408"; - public const string BUILTININSERTS_KIRASAN_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "65705cb314f2ed6d7d0b773c"; - public const string BUILTININSERTS_KOLPAK_1S_4ML_LEVEL2_HELMET_ARMOR_EARS = - "657ba57af58ba5a62501079e"; - public const string BUILTININSERTS_KOLPAK_1S_4ML_LEVEL2_HELMET_ARMOR_NAPE = - "657ba5439ba22f103e08139f"; - public const string BUILTININSERTS_KOLPAK_1S_4ML_LEVEL2_HELMET_ARMOR_TOP = - "657ba50c23918923cb0df56c"; - public const string BUILTININSERTS_KORA_KULON_LEVEL3_SOFT_ARMOR_BACK = - "657049d23425b19bbc0502f0"; - public const string BUILTININSERTS_KORA_KULON_LEVEL3_SOFT_ARMOR_FRONT = - "6570495b45d573133d0d6adb"; - public const string BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_BACK = "65731b4fcea9255e2102360e"; - public const string BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_COLLAR = - "65731b666e709cddd001ec43"; - public const string BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_FRONT = - "65731b46cea9255e2102360a"; - public const string BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_GROIN_BACK = - "65731b6b6042b0f210020ef6"; - public const string BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_GROIN_FRONT = - "65731b716e709cddd001ec47"; - public const string BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "65731b576e709cddd001ec3f"; - public const string BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "65731b60ff6dc44a7d068c4a"; - public const string BUILTININSERTS_LEVEL2_SOFT_ARMOR_LEFT_ARM = "654a8b60f414fcea4004d793"; - public const string BUILTININSERTS_LEVEL2_SOFT_ARMOR_PLATE_BACK = "655751db58aa1b6dbd0cc295"; - public const string BUILTININSERTS_LEVEL2_SOFT_ARMOR_PLATE_FRONT = "6557519ac9b1d9bdcb0777e1"; - public const string BUILTININSERTS_LEVEL2_SOFT_ARMOR_RIGHT_ARM = "654a8ba90337d53f9102c2b2"; - public const string BUILTININSERTS_LEVEL3_SOFT_ARMOR_BACK = "64ad2d8d7e2fcecf0305533f"; - public const string BUILTININSERTS_LEVEL3_SOFT_ARMOR_COLLAR = "64ad2dd30b9840e4c80c2489"; - public const string BUILTININSERTS_LEVEL3_SOFT_ARMOR_FRONT = "64ad2dac6f9247c2f4012439"; - public const string BUILTININSERTS_LEVEL3_SOFT_ARMOR_LEFT_ARM = "64afee8e9f589807e30dc68a"; - public const string BUILTININSERTS_LEVEL3_SOFT_ARMOR_LEFT_SIDE = "64ad2dba0b9840e4c80c2485"; - public const string BUILTININSERTS_LEVEL3_SOFT_ARMOR_RIGHT_ARM = "64afeecb977493a0ee026213"; - public const string BUILTININSERTS_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = "64ad2dc66f9247c2f401243d"; - public const string BUILTININSERTS_LEVEL3_SOFT_ARMOR_STOMACH = "64afef49977493a0ee026217"; - public const string BUILTININSERTS_LSHZ_LEVEL3_HELMET_ARMOR_NAPE = "657bb99db30eca976305117f"; - public const string BUILTININSERTS_LSHZ_LEVEL3_HELMET_ARMOR_TOP = "657bb92fa1c61ee0c303631f"; - public const string BUILTININSERTS_LSHZ5_VULKAN5_LEVEL6_HELMET_ARMOR_EARS = - "657bbefeb30eca9763051189"; - public const string BUILTININSERTS_LSHZ5_VULKAN5_LEVEL6_HELMET_ARMOR_NAPE = - "657bbed0aab96fccee08be96"; - public const string BUILTININSERTS_LSHZ5_VULKAN5_LEVEL6_HELMET_ARMOR_TOP = - "657bbe73a1c61ee0c303632b"; - public const string BUILTININSERTS_MASKA1SHA_LEVEL4_HELMET_ARMOR_EARS = - "657112fa818110db4600aa6b"; - public const string BUILTININSERTS_MASKA1SHA_LEVEL4_HELMET_ARMOR_NAPE = - "6571138e818110db4600aa71"; - public const string BUILTININSERTS_MASKA1SHA_LEVEL4_HELMET_ARMOR_TOP = - "6571133d22996eaf11088200"; - public const string BUILTININSERTS_MMAC_LEVEL2_SOFT_ARMOR_BACK = "6572fc8c9a866b80ab07eb5d"; - public const string BUILTININSERTS_MMAC_LEVEL2_SOFT_ARMOR_FRONT = "6572fc809a866b80ab07eb59"; - public const string BUILTININSERTS_MMAC_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "6572fc989a866b80ab07eb61"; - public const string BUILTININSERTS_MMAC_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "6572fca39a866b80ab07eb65"; - public const string BUILTININSERTS_MODULE3M_LEVEL2_SOFT_ARMOR_BACK = "65702fe593b7ea9c330f4ce8"; - public const string BUILTININSERTS_MODULE3M_LEVEL2_SOFT_ARMOR_FRONT = - "65702f87722744627e05cdb8"; - public const string BUILTININSERTS_MODULE3M_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "6570305d93b7ea9c330f4ced"; - public const string BUILTININSERTS_MODULE3M_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "65703472c9030b928a0a8a78"; - public const string BUILTININSERTS_MSA_GALLET_TC800_LEVEL4_HELMET_ARMOR_NAPE = - "657f9cb587e11c61f70bfaca"; - public const string BUILTININSERTS_MSA_GALLET_TC800_LEVEL4_HELMET_ARMOR_TOP = - "657f9c78ada5fadd1f07a58d"; - public const string BUILTININSERTS_MSA_TC2001_LEVEL4_HELMET_ARMOR_NAPE = - "657f8b05f4c82973640b2348"; - public const string BUILTININSERTS_MSA_TC2001_LEVEL4_HELMET_ARMOR_TOP = - "657f8a8d7db258e5600fe33d"; - public const string BUILTININSERTS_MSA_TC2002_LEVEL4_HELMET_ARMOR_NAPE = - "657f8b43f92cd718b70154fb"; - public const string BUILTININSERTS_MSA_TC2002_LEVEL4_HELMET_ARMOR_TOP = - "657f8b94f92cd718b70154ff"; - public const string BUILTININSERTS_MTEK_FLUX_LEVEL4_HELMET_ARMOR_NAPE = - "676307b4d9ec0af3d9001fa8"; - public const string BUILTININSERTS_MTEK_FLUX_LEVEL4_HELMET_ARMOR_TOP = - "676307c004856a0b3c0dfffd"; - public const string BUILTININSERTS_MTEK_STRIKE_LEVEL4_HELMET_ARMOR_NAPE = - "676307d3d9ec0af3d9001fac"; - public const string BUILTININSERTS_MTEK_STRIKE_LEVEL4_HELMET_ARMOR_TOP = - "676307ded8b241b4f703a3e8"; - public const string BUILTININSERTS_NFM_HJELM_LEVEL3_HELMET_ARMOR_NAPE = - "657bbcffbbd440df880b2dd5"; - public const string BUILTININSERTS_NFM_HJELM_LEVEL3_HELMET_ARMOR_TOP = - "657bbcc9a1c61ee0c3036327"; - public const string BUILTININSERTS_OPS_CORE_FASTMT_LEVEL4_HELMET_ARMOR_NAPE = - "657f8f10f4c82973640b2350"; - public const string BUILTININSERTS_OPS_CORE_FASTMT_LEVEL4_HELMET_ARMOR_TOP = - "657f8ec5f4c82973640b234c"; - public const string BUILTININSERTS_PACA_LEVEL2_SOFT_ARMOR_BACK = "65703fa06584602f7d057a8e"; - public const string BUILTININSERTS_PACA_LEVEL2_SOFT_ARMOR_FRONT = "65703d866584602f7d057a8a"; - public const string BUILTININSERTS_PACA_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "65703fe46a912c8b5c03468b"; - public const string BUILTININSERTS_PACA_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "657040374e67e8ec7a0d261c"; - public const string BUILTININSERTS_RATNIK_6B47_LEVEL3_HELMET_ARMOR_EARS = - "657babc6f58ba5a6250107a2"; - public const string BUILTININSERTS_RATNIK_6B47_LEVEL3_HELMET_ARMOR_NAPE = - "657bab6ec6f689d3a205b85f"; - public const string BUILTININSERTS_RATNIK_6B47_LEVEL3_HELMET_ARMOR_TOP = - "657baaf0b7e9ca9a02045c02"; - public const string BUILTININSERTS_RBAV_AF_LEVEL2_SOFT_ARMOR_BACK = "6572f1d60103b4a3270332db"; - public const string BUILTININSERTS_RBAV_AF_LEVEL2_SOFT_ARMOR_FRONT = "6572f1ca4c8d903cc60c874e"; - public const string BUILTININSERTS_RBAV_AF_LEVEL2_SOFT_ARMOR_GROIN_FRONT = - "6572f1f7ea457732140ce879"; - public const string BUILTININSERTS_RBAV_AF_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "6572f1e10103b4a3270332df"; - public const string BUILTININSERTS_RBAV_AF_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "6572f1edea457732140ce875"; - public const string BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_BACK = "6575dd519e27f4a85e081146"; - public const string BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_COLLAR = - "6575dd769d3a0ddf660b904b"; - public const string BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_FRONT = "6575dd3e9e27f4a85e081142"; - public const string BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_GROIN_BACK = - "6575dd94945bf78edd04c43c"; - public const string BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_GROIN_FRONT = - "6575dd800546f8b1de093df6"; - public const string BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6575dd64945bf78edd04c438"; - public const string BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6575dd6e9d3a0ddf660b9047"; - public const string BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_BACK = "6575d9b8945bf78edd04c427"; - public const string BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_COLLAR = - "6575d9d8945bf78edd04c42b"; - public const string BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_FRONT = "6575d9a79e27f4a85e08112d"; - public const string BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_GROIN_BACK = - "6575d9f816c2762fba00588d"; - public const string BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_GROIN_FRONT = - "6575d9e7945bf78edd04c42f"; - public const string BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_LEFT_ARM = - "6575da07945bf78edd04c433"; - public const string BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6575d9c40546f8b1de093dee"; - public const string BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_RIGHT_ARM = - "6575da159e27f4a85e081131"; - public const string BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6575d9cf0546f8b1de093df2"; - public const string BUILTININSERTS_RONIN_LEVEL3_HELMET_ARMOR_EARS = "66bdc2c90b603c26902b2018"; - public const string BUILTININSERTS_RONIN_LEVEL3_HELMET_ARMOR_EYES = "66bdc2d051aa8c345646d03f"; - public const string BUILTININSERTS_RONIN_LEVEL3_HELMET_ARMOR_JAW = "66bdc2d9408f1e66eb4fd957"; - public const string BUILTININSERTS_RONIN_LEVEL3_HELMET_ARMOR_NAPE = "66bdc2e25f17154509115d1e"; - public const string BUILTININSERTS_RONIN_LEVEL3_HELMET_ARMOR_TOP = "66bdc2ea8cbd597c9c2f9360"; - public const string BUILTININSERTS_RONIN_LEVEL4_HELMET_ARMOR_EARS = "65711b706d197c216005b31c"; - public const string BUILTININSERTS_RONIN_LEVEL4_HELMET_ARMOR_EYES = "65711b9b65daf6aa960c9b1b"; - public const string BUILTININSERTS_RONIN_LEVEL4_HELMET_ARMOR_JAW = "65711bc79eb8c145180dbba1"; - public const string BUILTININSERTS_RONIN_LEVEL4_HELMET_ARMOR_NAPE = "65711b489eb8c145180dbb9d"; - public const string BUILTININSERTS_RONIN_LEVEL4_HELMET_ARMOR_TOP = "65711b07a330b8c9060f7b01"; - public const string BUILTININSERTS_RYS_T_LEVEL5_HELMET_ARMOR_EARS = "657bc2e7b30eca976305118d"; - public const string BUILTININSERTS_RYS_T_LEVEL5_HELMET_ARMOR_NAPE = "657bc2c5a1c61ee0c3036333"; - public const string BUILTININSERTS_RYS_T_LEVEL5_HELMET_ARMOR_TOP = "657bc285aab96fccee08bea3"; - public const string BUILTININSERTS_SFERAS_SSSH94_LEVEL3_HELMET_ARMOR_EARS = - "657bb7d7b30eca9763051176"; - public const string BUILTININSERTS_SFERAS_SSSH94_LEVEL3_HELMET_ARMOR_NAPE = - "657bb79ba1c61ee0c303631a"; - public const string BUILTININSERTS_SFERAS_SSSH94_LEVEL3_HELMET_ARMOR_TOP = - "657bb70486c7f9ef7a009936"; - public const string BUILTININSERTS_SHLEMOFON_TSH_4ML_LEVEL1_HELMET_ARMOR_EARS = - "657ba18923918923cb0df568"; - public const string BUILTININSERTS_SHLEMOFON_TSH_4ML_LEVEL1_HELMET_ARMOR_NAPE = - "657ba145e57570b7f80a17ff"; - public const string BUILTININSERTS_SHLEMOFON_TSH_4ML_LEVEL1_HELMET_ARMOR_TOP = - "657ba096e57570b7f80a17fb"; - public const string BUILTININSERTS_SLICK_BLACK_LEVEL3_SOFT_ARMOR_BACK = - "6575e72660703324250610c7"; - public const string BUILTININSERTS_SLICK_BLACK_LEVEL3_SOFT_ARMOR_FRONT = - "6575e71760703324250610c3"; - public const string BUILTININSERTS_SSH68_LEVEL3_HELMET_ARMOR_EARS = "657119fea330b8c9060f7afc"; - public const string BUILTININSERTS_SSH68_LEVEL3_HELMET_ARMOR_NAPE = "657119d49eb8c145180dbb95"; - public const string BUILTININSERTS_SSH68_LEVEL3_HELMET_ARMOR_TOP = "6571199565daf6aa960c9b10"; - public const string BUILTININSERTS_STICH_DEFENSE_M2_LEVEL3_SOFT_ARMOR_BACK = - "66b8b20c5891c84aab75cb96"; - public const string BUILTININSERTS_STICH_DEFENSE_M2_LEVEL3_SOFT_ARMOR_FRONT = - "66b8b217c5d72b02774887b4"; - public const string BUILTININSERTS_STICH_DEFENSE_M2_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "66b8b223a7f72d197e70bed3"; - public const string BUILTININSERTS_STICH_DEFENSE_M2_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "66b8b22b78bbc0200425fb20"; - public const string BUILTININSERTS_STICHPROFI_PCV2_LEVEL2_SOFT_ARMOR_BACK = - "66b884eaacff495a29492849"; - public const string BUILTININSERTS_STICHPROFI_PCV2_LEVEL2_SOFT_ARMOR_FRONT = - "66b884f4c5d72b02774886eb"; - public const string BUILTININSERTS_STICHPROFI_PCV2_LEVEL2_SOFT_ARMOR_GROIN_FRONT = - "66b884fd7994640992013b37"; - public const string BUILTININSERTS_STICHPROFI_PCV2_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "66b8851678bbc0200425fa03"; - public const string BUILTININSERTS_STICHPROFI_PCV2_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "66b88521a7f72d197e70be3b"; - public const string BUILTININSERTS_STRANDHOGG_LEVEL2_SOFT_ARMOR_BACK = - "6572eb1b04ee6483ef039882"; - public const string BUILTININSERTS_STRANDHOGG_LEVEL2_SOFT_ARMOR_FRONT = - "6572eb0e55beba16bc04079f"; - public const string BUILTININSERTS_STRANDHOGG_LEVEL2_SOFT_ARMOR_GROIN_FRONT = - "6572eb865b5eac12f10a03ee"; - public const string BUILTININSERTS_STRANDHOGG_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "6572eb3004ee6483ef039886"; - public const string BUILTININSERTS_STRANDHOGG_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "6572eb3b04ee6483ef03988a"; - public const string BUILTININSERTS_TAC_KEK_FAST_MT_LEVEL1_HELMET_ARMOR_NAPE = - "657ba34b9ba22f103e08139b"; - public const string BUILTININSERTS_TAC_KEK_FAST_MT_LEVEL1_HELMET_ARMOR_TOP = - "657ba2eef58ba5a625010798"; - public const string BUILTININSERTS_TACTEC_LEVEL3_SOFT_ARMOR_BACK = "6575bca0dc9932aed601c5d7"; - public const string BUILTININSERTS_TACTEC_LEVEL3_SOFT_ARMOR_FRONT = "6575bc88c6700bd6b40e8a57"; - public const string BUILTININSERTS_THORCRV_LEVEL3_SOFT_ARMOR_BACK = "6572e52f73c0eabb700109a0"; - public const string BUILTININSERTS_THORCRV_LEVEL3_SOFT_ARMOR_FRONT = "6572e5221b5bc1185508c24f"; - public const string BUILTININSERTS_THORCRV_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6572e53c73c0eabb700109a4"; - public const string BUILTININSERTS_THORCRV_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6572e54873c0eabb700109a8"; - public const string BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_BACK = - "6575d56b16c2762fba005818"; - public const string BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_COLLAR = - "6575d598b15fef3dd4051678"; - public const string BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_FRONT = - "6575d561b15fef3dd4051670"; - public const string BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_GROIN_FRONT = - "6575d5a616c2762fba005820"; - public const string BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_LEFT_ARM = - "6575d5b316c2762fba005824"; - public const string BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6575d57a16c2762fba00581c"; - public const string BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_RIGHT_ARM = - "6575d5bd16c2762fba005828"; - public const string BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6575d589b15fef3dd4051674"; - public const string BUILTININSERTS_TROOPER_LEVEL3_SOFT_ARMOR_BACK = "6570e0610b57c03ec90b96ef"; - public const string BUILTININSERTS_TROOPER_LEVEL3_SOFT_ARMOR_FRONT = "6570e025615f54368b04fcb0"; - public const string BUILTININSERTS_TV110_LEVEL2_SOFT_ARMOR_BACK = "6570df9c615f54368b04fca9"; - public const string BUILTININSERTS_TV110_LEVEL2_SOFT_ARMOR_FRONT = "6570df294cc0d2ab1e05ed74"; - public const string BUILTININSERTS_TV115_LEVEL2_SOFT_ARMOR_BACK = "6570658a89fd4926380b7346"; - public const string BUILTININSERTS_TV115_LEVEL2_SOFT_ARMOR_FRONT = "6570653e89fd4926380b733e"; - public const string BUILTININSERTS_ULACH_LEVEL4_HELMET_ARMOR_EARS = "657112ce22996eaf110881fb"; - public const string BUILTININSERTS_ULACH_LEVEL4_HELMET_ARMOR_NAPE = "657112a4818110db4600aa66"; - public const string BUILTININSERTS_ULACH_LEVEL4_HELMET_ARMOR_TOP = "657112234269e9a568089eac"; - public const string BUILTININSERTS_UNTAR_LEVEL3_HELMET_ARMOR_EARS = "654a9189bcc67a392b056c79"; - public const string BUILTININSERTS_UNTAR_LEVEL3_HELMET_ARMOR_NAPE = "654a91068e1ce698150fd1e2"; - public const string BUILTININSERTS_UNTAR_LEVEL3_HELMET_ARMOR_TOP = "654a90aff4f81a421b0a7c86"; - public const string BUILTININSERTS_UNTAR_LEVEL3_SOFT_ARMOR_BACK = "657045741bd9beedc40b7299"; - public const string BUILTININSERTS_UNTAR_LEVEL3_SOFT_ARMOR_FRONT = "657044e971369562b300ce9b"; - public const string BUILTININSERTS_UNTAR_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "657045b97e80617cee095bda"; - public const string BUILTININSERTS_UNTAR_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "6570460471369562b300ce9f"; - public const string BUILTININSERTS_ZHUK3_LEVEL2_SOFT_ARMOR_BACK = "6571dbda88ead79fcf091d75"; - public const string BUILTININSERTS_ZHUK3_LEVEL2_SOFT_ARMOR_COLLAR = "6571dbef88ead79fcf091d79"; - public const string BUILTININSERTS_ZHUK3_LEVEL2_SOFT_ARMOR_FRONT = "6571dbd388ead79fcf091d71"; - public const string BUILTININSERTS_ZHUK3_LEVEL2_SOFT_ARMOR_LEFT_SIDE = - "6571dbe07c02ae206002502e"; - public const string BUILTININSERTS_ZHUK3_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = - "6571dbeaee8ec43d520cf89e"; - public const string BUILTININSERTS_ZHUK6_LEVEL3_SOFT_ARMOR_BACK = "657642b0e6d5dd75f40688a5"; - public const string BUILTININSERTS_ZHUK6_LEVEL3_SOFT_ARMOR_COLLAR = "657643a220cc24d17102b14c"; - public const string BUILTININSERTS_ZHUK6_LEVEL3_SOFT_ARMOR_FRONT = "65764275d8537eb26a0355e9"; - public const string BUILTININSERTS_ZHUK6_LEVEL3_SOFT_ARMOR_LEFT_SIDE = - "6576434820cc24d17102b148"; - public const string BUILTININSERTS_ZHUK6_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = - "657643732bc38ef78e076477"; - public const string BUILTININSERTS_ZSH_1_2M_LEVEL4_HELMET_ARMOR_EARS = - "657f92e7f4c82973640b2354"; - public const string BUILTININSERTS_ZSH_1_2M_LEVEL4_HELMET_ARMOR_NAPE = - "657f92acada5fadd1f07a57e"; - public const string BUILTININSERTS_ZSH_1_2M_LEVEL4_HELMET_ARMOR_TOP = - "657f925dada5fadd1f07a57a"; - public const string CHARGE_AI_AXMC_338_LM_BOLT_ASSEMBLY = "62811cd7308cb521f87a8f99"; - public const string CHARGE_AK_CSS_KNURLED_CHARGING_HANDLE = "6130ca3fd92c473c77020dbd"; - public const string CHARGE_AK_ZENIT_RP1_CHARGING_HANDLE = "5648ac824bdc2ded0b8b457d"; - public const string CHARGE_AR10_KAC_AMBIDEXTROUS_CHARGING_HANDLE = "5df8e085bb49d91fb446d6a8"; - public const string CHARGE_AR10_KAC_CHARGING_HANDLE = "5df8e053bb49d91fb446d6a6"; - public const string CHARGE_AR15_ADAR_215_CHARGING_HANDLE = "5c0faf68d174af02a96260b8"; - public const string CHARGE_AR15_BADGER_ORDNANCE_TACTICAL_CHARGING_HANDLE_LATCH = - "56ea7165d2720b6e518b4583"; - public const string CHARGE_AR15_COLT_CHARGING_HANDLE = "55d44fd14bdc2d962f8b456e"; - public const string CHARGE_AR15_DANIEL_DEFENSE_GRIPNRIP_CHARGING_HANDLE = - "651bf5617b3b552ef6712cb7"; - public const string CHARGE_AR15_GEISSELE_ACH_CHARGING_HANDLE_DDC = "5ea16d4d5aad6446a939753d"; - public const string CHARGE_AR15_HK_EXTENDED_LATCH_CHARGING_HANDLE = "5bb20dbcd4351e44f824c04e"; - public const string CHARGE_AR15_MAGPUL_BAD_LEVER_BOLT_RELEASE = "675307301f7c19a9780f2668"; - public const string CHARGE_AR15_MASP_INDUSTRIES_AMBIDEXTROUS_BATTLE_CHARGING_HANDLE = - "6033749e88382f4fab3fd2c5"; - public const string CHARGE_AR15_RADIAN_WEAPONS_RAPTOR_CHARGING_HANDLE_FDE = - "5b2240bf5acfc40dc528af69"; - public const string CHARGE_AR15_RADIAN_WEAPONS_RAPTOR_CHARGING_HANDLE_TUNGSTEN_GREY = - "5d44334ba4b9362b346d1948"; - public const string CHARGE_AR15_RAINIER_ARMS_AVALANCHE_MOD2_CHARGING_HANDLE = - "5f633ff5c444ce7e3c30a006"; - public const string CHARGE_BENELLI_M3_SUPER_90_CHARGING_HANDLE = "625ec45bb14d7326ac20f572"; - public const string CHARGE_DO_NOT_USEAI_AXMC_762X51MM_BOLT_ASSEMBLY = - "62811d61578c54356d6d67ea"; - public const string CHARGE_FN_P90_CHARGING_HANDLE = "5cc6ea78e4a949000e1ea3c1"; - public const string CHARGE_FN_P90_KM_THE_HANDLER_CHARGING_HANDLE = "5cc6ea85e4a949000e1ea3c3"; - public const string CHARGE_FN_SCAR_CHARGING_HANDLE = "6181688c6c780c1e710c9b04"; - public const string CHARGE_HK_MP5_COCKING_HANDLE = "5926c32286f774616e42de99"; - public const string CHARGE_HK_MP5K_COCKING_HANDLE = "5d2f2d5748f03572ec0c0139"; - public const string CHARGE_HK417_E1_EXTENDED_CHARGING_HANDLE = "61702d8a67085e45ef140b24"; - public const string CHARGE_MCX_CHARGING_HANDLE = "5fbcc640016cce60e8341acc"; - public const string CHARGE_MCXSPEAR_CHARGING_HANDLE = "6529109524cbe3c74a05e5b7"; - public const string CHARGE_MK47_AMBIDEXTROUS_CHARGING_HANDLE = "606587bd6d0bd7580617bacc"; - public const string CHARGE_MP9_CHARGING_HANDLE = "5de922d4b11454561e39239f"; - public const string CHARGE_MPX_AMBIDEXTROUS_CHARGING_HANDLE = "58949edd86f77409483e16a9"; - public const string CHARGE_MPX_GEISSELE_SCH_CHARGING_HANDLE = "5c5db6b32e221600102611a0"; - public const string CHARGE_MPX_GEN_2_AMBIDEXTROUS_CHARGING_HANDLE = "6761492dc53ebe8c0f0a5efe"; - public const string CHARGE_MPX_SINGLE_LATCH_CHARGING_HANDLE = "58949fac86f77409483e16aa"; - public const string CHARGE_SAKO_TRG_M10_338_LM_BOLT_ASSEMBLY = "673cb4054ff4aa8f86076f4a"; - public const string CHARGE_STEYR_AUG_A1_CHARGING_HANDLE = "62e7c880f68e7a0676050c7c"; - public const string CHARGE_STEYR_AUG_A3_CHARGING_HANDLE = "62ebbc53e3c1e1ec7c02c44f"; - public const string COLLIMATOR_AIMPOINT_COMPM4_REFLEX_SIGHT = "5c7d55de2e221644f31bff68"; - public const string COLLIMATOR_AIMPOINT_PRO_REFLEX_SIGHT = "61659f79d92c473c770213ee"; - public const string COLLIMATOR_AXION_KOBRA_EKP1S03_REFLEX_SIGHT_DOVETAIL = - "6544d4187c5457729210d277"; - public const string COLLIMATOR_AXION_KOBRA_EKP802_REFLEX_SIGHT_DOVETAIL = - "5947db3f86f77447880cf76f"; - public const string COLLIMATOR_AXION_KOBRA_EKP818_REFLEX_SIGHT = "591c4efa86f7741030027726"; - public const string COLLIMATOR_BELOMO_PKAA_DOVETAIL_REFLEX_SIGHT = "6113d6c3290d254f5e6b27db"; - public const string COLLIMATOR_ELCAN_SPECTER_HCO_HOLOGRAPHIC_SIGHT = "64785e7c19d732620e045e15"; - public const string COLLIMATOR_EOTECH_553_HOLOGRAPHIC_SIGHT = "570fd6c2d2720bc6458b457f"; - public const string COLLIMATOR_EOTECH_EXPS30_HOLOGRAPHIC_SIGHT_TAN = "558022b54bdc2dac148b458d"; - public const string COLLIMATOR_EOTECH_HHS1_HYBRID_SIGHT = "5c07dd120db834001c39092d"; - public const string COLLIMATOR_EOTECH_HHS1_HYBRID_SIGHT_TAN = "5c0a2cec0db834001b7ce47d"; - public const string COLLIMATOR_EOTECH_XPS30_HOLOGRAPHIC_SIGHT = "58491f3324597764bc48fa02"; - public const string COLLIMATOR_EOTECH_XPS32_HOLOGRAPHIC_SIGHT = "584924ec24597768f12ae244"; - public const string COLLIMATOR_FN_P90_RING_SIGHT_REFLEX_SIGHT = "5cebec38d7f00c00110a652a"; - public const string COLLIMATOR_HENSOLDT_RV_RED_DOT_SIGHT = "622efbcb99f4ea1a4d6c9a15"; - public const string COLLIMATOR_HOLOSUN_HS401G5_REFLEX_SIGHT = "5b30b0dc5acfc400153b7124"; - public const string COLLIMATOR_KOMZ_RUSAK_REFLEX_SIGHT = "65f05b9d39dab9e9ec049cfd"; - public const string COLLIMATOR_LEAPERS_UTG_REFLEX_SIGHT = "6165ac8c290d254f5e6b2f6c"; - public const string COLLIMATOR_MILKOR_M2A1_GRENADE_LAUNCHER_REFLEX_SIGHT = - "6284bd5f95250a29bc628a30"; - public const string COLLIMATOR_NPZ_PK1_OBZOR_DOVETAIL_REFLEX_SIGHT = "618a5d5852ecee1505530b2a"; - public const string COLLIMATOR_OKP7_REFLEX_SIGHT = "570fd79bd2720bc7458b4583"; - public const string COLLIMATOR_OKP7_REFLEX_SIGHT_DOVETAIL = "57486e672459770abd687134"; - public const string COLLIMATOR_SIG_SAUER_ROMEO7_1X30_REFLEX_SIGHT_PROTOTYPE = - "6477772ea8a38bb2050ed4db"; - public const string COLLIMATOR_SIG_SAUER_ROMEO8T_REFLEX_SIGHT = "60a23797a37c940de7062d02"; - public const string COLLIMATOR_SR2M_KPSR2_REFLEX_SIGHT = "62ff9920fe938a24c90c10d2"; - public const string COLLIMATOR_TRIJICON_SRS02_REFLEX_SIGHT = "5d2da1e948f035477b1ce2ba"; - public const string COLLIMATOR_VALDAY_KRECHET_REFLEX_SIGHT = "609a63b6e2ff132951242d09"; - public const string COLLIMATOR_VALDAY_PK120_1P87_REFLEX_SIGHT = "5c0505e00db834001b735073"; - public const string COLLIMATOR_VOMZ_PILAD_P1X42_WEAVER_REFLEX_SIGHT = - "584984812459776a704a82a6"; - public const string COLLIMATOR_VOMZ_PILAD_TARGETRING_REFLEX_SIGHT = "609b9e31506cf869cf3eaf41"; - public const string COLLIMATOR_VORTEX_RAZOR_AMG_UH1_HOLOGRAPHIC_SIGHT = - "59f9d81586f7744c7506ee62"; - public const string COLLIMATOR_WALTHER_MRS_REFLEX_SIGHT = "570fd721d2720bc5458b4596"; - public const string COLLIMATOR_WILCOX_BOSS_XE_REFLEX_SIGHT = "655f13e0a246670fb0373245"; - public const string COMPACTCOLLIMATOR_AIMPOINT_ACRO_P1_REFLEX_SIGHT = - "616442e4faa1272e43152193"; - public const string COMPACTCOLLIMATOR_AIMPOINT_MICRO_H2_REFLEX_SIGHT = - "61657230d92c473c770213d7"; - public const string COMPACTCOLLIMATOR_AIMPOINT_MICRO_T1_REFLEX_SIGHT = - "58d399e486f77442e0016fe7"; - public const string COMPACTCOLLIMATOR_BELOMO_PK06_REFLEX_SIGHT = "57ae0171245977343c27bfcf"; - public const string COMPACTCOLLIMATOR_BURRIS_FASTFIRE_3_REFLEX_SIGHT = - "577d141e24597739c5255e01"; - public const string COMPACTCOLLIMATOR_LEUPOLD_DELTAPOINT_REFLEX_SIGHT = - "58d268fc86f774111273f8c2"; - public const string COMPACTCOLLIMATOR_SIG_SAUER_ROMEO4_REFLEX_SIGHT = - "5b3116595acfc40019476364"; - public const string COMPACTCOLLIMATOR_TRIJICON_RMR_REFLEX_SIGHT = "5a32aa8bc4a2826c6e06d737"; - public const string COMPASS_EYE_MK2_PROFESSIONAL_HANDHELD = "5f4f9eb969cdc30ff33f09db"; - public const string CONTAINER_AMMUNITION_CASE = "5aafbde786f774389d0cbc0f"; - public const string CONTAINER_BALLISTIC_PLATE_CASE = "67600929bd0a0549d70993f6"; - public const string CONTAINER_DOCUMENTS_CASE = "590c60fc86f77412b13fddcf"; - public const string CONTAINER_DOGTAG_CASE = "5c093e3486f77430cb02e593"; - public const string CONTAINER_GINGY_KEYCHAIN = "62a09d3bcf4a99369e262447"; - public const string CONTAINER_GRENADE_CASE = "5e2af55f86f7746d4159f07c"; - public const string CONTAINER_INJECTOR_CASE = "619cbf7d23893217ec30b689"; - public const string CONTAINER_ITEM_CASE = "59fb042886f7746c5005a7b2"; - public const string CONTAINER_KEY_CASE = "67d3ed3271c17ff82e0a5b0b"; - public const string CONTAINER_KEY_TOOL = "59fafd4b86f7745ca07e1232"; - public const string CONTAINER_KEYCARD_HOLDER_CASE = "619cbf9e0a7c3a1a2731940a"; - public const string CONTAINER_LUCKY_DEVELOPER_JUNKBOX = "5c0a5f6c86f774753654890e"; - public const string CONTAINER_LUCKY_SCAV_JUNK_BOX = "5b7c710788a4506dec015957"; - public const string CONTAINER_MAGAZINE_CASE = "5c127c4486f7745625356c13"; - public const string CONTAINER_MEDICINE_CASE = "5aafbcd986f7745e590fff23"; - public const string CONTAINER_MONEY_CASE = "59fb016586f7746d0d4b423a"; - public const string CONTAINER_MR_HOLODILNICK_THERMAL_BAG = "5c093db286f7740a1b2617e3"; - public const string CONTAINER_SICC = "5d235bb686f77443f4331278"; - public const string CONTAINER_SIMPLE_WALLET = "5783c43d2459774bbe137486"; - public const string CONTAINER_STREAMER_ITEM_CASE = "66bc98a01a47be227a5e956e"; - public const string CONTAINER_THICC_ITEM_CASE = "5c0a840b86f7742ffa4f2482"; - public const string CONTAINER_THICC_WEAPON_CASE = "5b6d9ce188a4501afc1b2b25"; - public const string CONTAINER_WEAPON_CASE = "59fb023c86f7746d0d4b423c"; - public const string CONTAINER_WZ_WALLET = "60b0f6c058e0b0481a09ad11"; - public const string CULTISTAMULET_SACRED_AMULET = "64d0b40fbe2eed70e254e2d4"; - public const string DRINK_AQUAMARI_WATER_BOTTLE_WITH_FILTER = "5c0fa877d174af02a012e1cf"; - public const string DRINK_BOTTLE_OF_DAN_JACKIEL_WHISKEY = "5d403f9186f7743cac3f229b"; - public const string DRINK_BOTTLE_OF_FIERCE_HATCHLING_MOONSHINE = "5d1b376e86f774252519444e"; - public const string DRINK_BOTTLE_OF_NORVINSKY_YADRENIY_PREMIUM_KVASS_06L = - "5e8f3423fd7471236e6e3b64"; - public const string DRINK_BOTTLE_OF_PEVKO_LIGHT_BEER = "62a09f32621468534a797acb"; - public const string DRINK_BOTTLE_OF_TARKOVSKAYA_VODKA = "5d40407c86f774318526545a"; - public const string DRINK_BOTTLE_OF_TARKOVSKAYA_VODKA_BAD = "614451b71e5874611e2c7ae5"; - public const string DRINK_BOTTLE_OF_WATER_06L = "5448fee04bdc2dbc018b4567"; - public const string DRINK_CAN_OF_HOT_ROD_ENERGY = "5751496424597720a27126da"; - public const string DRINK_CAN_OF_ICE_GREEN_TEA = "575062b524597720a31c09a1"; - public const string DRINK_CAN_OF_MAX_ENERGY_ENERGY = "5751435d24597720a27126d1"; - public const string DRINK_CAN_OF_RATCOLA_SODA = "60b0f93284c20f0feb453da7"; - public const string DRINK_CAN_OF_TARCOLA_SODA = "57514643245977207f2c2d09"; - public const string DRINK_CANISTER_WITH_PURIFIED_WATER = "5d1b33a686f7742523398398"; - public const string DRINK_EMERGENCY_WATER_RATION = "60098b1705871270cd5352a1"; - public const string DRINK_PACK_OF_APPLE_JUICE = "57513f07245977207e26a311"; - public const string DRINK_PACK_OF_GRAND_JUICE = "57513f9324597720a7128161"; - public const string DRINK_PACK_OF_MILK = "575146b724597720a27126d5"; - public const string DRINK_PACK_OF_RUSSIAN_ARMY_PINEAPPLE_JUICE = "544fb62a4bdc2dfb738b4568"; - public const string DRINK_PACK_OF_VITA_JUICE = "57513fcc24597720a31c09a6"; - public const string DRUGS_ANALGIN_PAINKILLERS = "544fb37f4bdc2dee738b4567"; - public const string DRUGS_AUGMENTIN_ANTIBIOTIC_PILLS = "590c695186f7741e566b64a2"; - public const string DRUGS_GOLDEN_STAR_BALM = "5751a89d24597722aa0e8db0"; - public const string DRUGS_IBUPROFEN_PAINKILLERS = "5af0548586f7743a532b7e99"; - public const string DRUGS_MORPHINE_INJECTOR = "544fb3f34bdc2d03748b456a"; - public const string DRUGS_VASELINE_BALM = "5755383e24597772cb798966"; - public const string FACECOVER_ARENA_CUP_SERIES_BALACLAVA = "67f90180f07898267b0a4ed7"; - public const string FACECOVER_ASTRONOMER_MASK = "67602a39c8e72a73250de739"; - public const string FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_DEMON = - "67a5c61c7f52620c5b05b4d8"; - public const string FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_EL_DA_DE_MUERTOS = - "67a5c657782ce4655104db16"; - public const string FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_SCARS = - "67a5c5df782ce4655104db14"; - public const string FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_SKULL = - "67a5c6068fcd9fb73f0752cf"; - public const string FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_SMILE = - "67a4b71ad3228756b6088ee2"; - public const string FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_STOP_ME = - "67a5c5b6dfdf568c9009af66"; - public const string FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_TARGET = - "67a5c5f37f52620c5b05b4d6"; - public const string FACECOVER_ATOMIC_DEFENSE_CQCM_UP_ARMORED_BALLISTIC_MASK_BLACK = - "657089638db3adca1009f4ca"; - public const string FACECOVER_AYBOLIT_MASK = "676029e22749de558a0b7e69"; - public const string FACECOVER_BADDIES_RED_BEARD = "62a09dd4621468534a797ac7"; - public const string FACECOVER_BALACLAVA = "572b7f1624597762ae139822"; - public const string FACECOVER_BALACLAVA_BORN_TO_DIE = "67a9cd28cade15e0f00123b6"; - public const string FACECOVER_BALACLAVA_DEMON = "67a9e9e0c185de5a4d0c2a13"; - public const string FACECOVER_BALACLAVA_DEV = "58ac60eb86f77401897560ff"; - public const string FACECOVER_BALACLAVA_FEAR = "67a9ea004fb4a4a8a00d2828"; - public const string FACECOVER_BALACLAVA_GREEN = "67a9cc9cf05be177170bcd76"; - public const string FACECOVER_BALACLAVA_LUXURY = "67a9cd6ecade15e0f00123b8"; - public const string FACECOVER_BALACLAVA_NOT_NICE = "67a9cd381fb22063280728a6"; - public const string FACECOVER_BALACLAVA_RED_NOSE = "67a9e9d04fb4a4a8a00d2826"; - public const string FACECOVER_BALACLAVA_RED_ONI = "67a9ea39de7fb0f19e077da6"; - public const string FACECOVER_BALACLAVA_SCARS = "67a9ccfff05be177170bcd78"; - public const string FACECOVER_BALACLAVA_SCRATCHES = "67a9cd18f05be177170bcd7a"; - public const string FACECOVER_BALACLAVA_SKULL = "67a9e9f09de6826a650ee074"; - public const string FACECOVER_BALACLAVA_SMILE = "67a9ea98de7fb0f19e077da8"; - public const string FACECOVER_BALACLAVA_TEST = "59e8936686f77467ce798647"; - public const string FACECOVER_BALACLAVA_WHITE = "675ac888803644528007b3f6"; - public const string FACECOVER_BALACLAVA_WHITE_ONI = "67a9ea7e4fb4a4a8a00d282a"; - public const string FACECOVER_BALACLAVA_YELLOW = "67a9cd55c2a2d940930aec86"; - public const string FACECOVER_BALACLAVA_YELLOW_ONI = "67a9ea10c185de5a4d0c2a15"; - public const string FACECOVER_BIG_PIPES_SMOKING_PIPE = "62a61bbf8ec41a51b34758d2"; - public const string FACECOVER_CIPOLLINO_MASK = "676029ca2749de558a0b7e67"; - public const string FACECOVER_COLD_FEAR_INFRARED_BALACLAVA = "5ab8f39486f7745cd93a1cca"; - public const string FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_DPM_DESERT = - "67a9dccf9de6826a650ee06a"; - public const string FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_GREEN = "67a9dc769de6826a650ee066"; - public const string FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_MULTICAM_TROPIC = - "67a9dce47faa4210bb0807c8"; - public const string FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_OAK = "67a9dca99de6826a650ee068"; - public const string FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_SBEU = "67a9dc997faa4210bb0807c6"; - public const string FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_SURPAT = "67a9dcbac185de5a4d0c2a06"; - public const string FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_TIGER_STRIPE = - "67a9dd619de6826a650ee06c"; - public const string FACECOVER_DEADLY_SKULL_MASK = "5b432b6c5acfc4001a599bf0"; - public const string FACECOVER_DEATH_KNIGHT_MASK = "62963c18dbc8ab5f0d382d0b"; - public const string FACECOVER_DEATH_SHADOW_LIGHTWEIGHT_ARMORED_MASK = - "6570aead4d84f81fd002a033"; - public const string FACECOVER_FACELESS_MASK = "6176a48d732a664031271438"; - public const string FACECOVER_FAKE_MUSTACHE = "5bd073a586f7747e6f135799"; - public const string FACECOVER_FAKE_WHITE_BEARD = "5c1a1e3f2e221602b66cc4c2"; - public const string FACECOVER_FOX_MASK = "676029f997f19b78f00a0197"; - public const string FACECOVER_GHOST_BALACLAVA = "5ab8f4ff86f77431c60d91ba"; - public const string FACECOVER_GHOST_HALFMASK = "6571bde39837cc51b800c212"; - public const string FACECOVER_GHOUL_MASK = "62a5c2c98ec41a51b34739c0"; - public const string FACECOVER_GHOUL_MASK_2 = "6176a40f0b8c0312ac75a3d3"; - public const string FACECOVER_GLORIOUS_E_LIGHTWEIGHT_ARMORED_MASK = "62a09e08de7ac81993580532"; - public const string FACECOVER_GP5_GAS_MASK = "5b432c305acfc40019478128"; - public const string FACECOVER_GP7_GAS_MASK = "60363c0c92ec1c31037959f5"; - public const string FACECOVER_GRINCH_MASK = "67602a0f97f19b78f00a0199"; - public const string FACECOVER_HARE_MASK = "67602a23c8e72a73250de737"; - public const string FACECOVER_JASON_MASK = "5bd071d786f7747e707b93a3"; - public const string FACECOVER_LOWER_HALFMASK = "572b7fa524597762b747ce82"; - public const string FACECOVER_LOWER_HALFMASK_BALACLAVAS = "67a5fa01fafb8efd440694ba"; - public const string FACECOVER_LOWER_HALFMASK_BALACLAVAS_GREEN = "67a5f9c8fafb8efd440694b8"; - public const string FACECOVER_LOWER_HALFMASK_BALACLAVAS_RED = "67a5f9e7f7041a25760dda38"; - public const string FACECOVER_LOWER_HALFMASK_EL_DA_DE_MUERTOS = "67a5f989f7041a25760dda36"; - public const string FACECOVER_LOWER_HALFMASK_MOSS = "67a5f968fafb8efd440694b6"; - public const string FACECOVER_LOWER_HALFMASK_MULTICAM = "67a5f917dfdf568c9009af6b"; - public const string FACECOVER_LOWER_HALFMASK_WRAITH = "67a5f9a193f7b62b6b0f6576"; - public const string FACECOVER_LOWER_HALFMASK_ZOMBIE = "67a5f94e802d287c670bb966"; - public const string FACECOVER_MISHA_MAYOROV_MASK = "5bd0716d86f774171822ef4b"; - public const string FACECOVER_MOMEX_BALACLAVA = "5b432f3d5acfc4704b4a1dfb"; - public const string FACECOVER_NEOPRENE_MASK = "5b4326435acfc433000ed01d"; - public const string FACECOVER_NEOPRENE_MASK_LOUISE_PITTON = "67aaf82d508ee9b6440e9c46"; - public const string FACECOVER_NEOPRENE_MASK_LUCHA_LIBRE = "67aaf84104dca1c82c071cf6"; - public const string FACECOVER_NEOPRENE_MASK_M90_DESERT = "67aaf808bf7609058606a926"; - public const string FACECOVER_NEOPRENE_MASK_ONI = "67aaf879508ee9b6440e9c48"; - public const string FACECOVER_NEOPRENE_MASK_SAY_NOTHING = "67aaf863de7fb0f19e077db9"; - public const string FACECOVER_NEOPRENE_MASK_ZOMBIE = "67aaf851bf7609058606a928"; - public const string FACECOVER_PESTILY_PLAGUE_MASK = "5e54f79686f7744022011103"; - public const string FACECOVER_RESPIRATOR = "59e7715586f7742ee5789605"; - public const string FACECOVER_ROOSTER_MASK = "676029a6bdead929d40bc368"; - public const string FACECOVER_SHATTERED_LIGHTWEIGHT_ARMORED_MASK = "5b432b2f5acfc4771e1c6622"; - public const string FACECOVER_SHEMAGH_GREEN = "5ab8f85d86f7745cd93a1cf5"; - public const string FACECOVER_SHEMAGH_TAN = "5b4325355acfc40019478126"; - public const string FACECOVER_SHROUD_HALFMASK = "5e54f76986f7740366043752"; - public const string FACECOVER_SLENDER_MASK = "62a5c41e8ec41a51b34739c3"; - public const string FACECOVER_SLENDER_MASK_2 = "5bd06f5d86f77427101ad47c"; - public const string FACECOVER_SMOKE_BALACLAVA = "5fd8d28367cb5e077335170f"; - public const string FACECOVER_SPOOKY_SKULL_MASK = "62a5c333ec21e50cad3b5dc6"; - public const string FACECOVER_SPOOKY_SKULL_MASK_2 = "635267ab3c89e2112001f826"; - public const string FACECOVER_TAGILLAS_WELDING_MASK_GORILLA = "60a7ad3a0c5cb24b0134664a"; - public const string FACECOVER_TAGILLAS_WELDING_MASK_UBEY = "60a7ad2a2198820d95707a2e"; - public const string FACECOVER_TAGILLAS_WELDING_MASK_ZABEY = "678f84bb9e85556ca60f0362"; - public const string FACECOVER_TWITCH_RIVALS_2020_HALFMASK = "5e71fad086f77422443d4604"; - public const string FACECOVER_TWITCH_RIVALS_2020_MASK = "5e71f6be86f77429f2683c44"; - public const string FACECOVER_TWITCH_RIVALS_2021_BALACLAVA = "607f201b3c672b3b3a24a800"; - public const string FACECOVER_VENGEFUL_ZRYACHIYS_BALACLAVA = "6530e8587cbfc1e309011e37"; - public const string FACECOVER_ZRYACHIYS_BALACLAVA = "63626d904aa74b8fe30ab426"; - public const string FLARE_ROP30_REACTIVE_FLARE_CARTRIDGE_WHITE = "62178be9d0050232da3485d9"; - public const string FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_BLUE = "66d98233302686954b0c6f81"; - public const string FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_FIREWORK = "675ea3d6312c0a5c4e04e317"; - public const string FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_GREEN = "6217726288ed9f0845317459"; - public const string FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_RED = "62178c4d4ecf221597654e3d"; - public const string FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_SPECIAL_YELLOW = - "66d9f1abb16d9aacf5068468"; - public const string FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_YELLOW = "624c0b3340357b5f566e8766"; - public const string FLASHHIDER_AI_338_LM_TACTICAL_MUZZLE_BRAKE = "62812081d23f207deb0ab216"; - public const string FLASHHIDER_AK_HEXAGON_REACTOR_545X39_MUZZLE_BRAKE = - "615d8f5dd92c473c770212ef"; - public const string FLASHHIDER_AK_LANTAC_DRAKON_762X39_MUZZLE_BRAKE = - "5c878ebb2e2216001219d48a"; - public const string FLASHHIDER_AK_SPIKES_TACTICAL_DYNACOMP_762X39_MUZZLE_BRAKECOMPENSATOR = - "5a9ea27ca2750c00137fa672"; - public const string FLASHHIDER_AK_SRVV_762X39_MUZZLE_BRAKECOMPENSATOR = - "5cc9ad73d7f00c000e2579d4"; - public const string FLASHHIDER_AK_VECTOR_VR05T_762X39_MUZZLE_BRAKE = "64942bfc6ee699f6890dff95"; - public const string FLASHHIDER_AK_VENOM_TACTICAL_ANTIDOTE_762X39_MUZZLE_BRAKECOMPENSATOR = - "5c7951452e221644f31bfd5c"; - public const string FLASHHIDER_AK_ZENIT_DTK1_762X39545X39_MUZZLE_BRAKECOMPENSATOR = - "5649ab884bdc2ded0b8b457f"; - public const string FLASHHIDER_AK101_556X45_MUZZLE_BRAKECOMPENSATOR = - "5ac72e615acfc43f67248aa0"; - public const string FLASHHIDER_AK102_556X45_MUZZLE_BRAKECOMPENSATOR = - "5ac72e725acfc400180ae701"; - public const string FLASHHIDER_AK103_762X39_MUZZLE_BRAKECOMPENSATOR = - "5ac72e7d5acfc40016339a02"; - public const string FLASHHIDER_AK104_762X39_MUZZLE_BRAKECOMPENSATOR = - "5ac72e895acfc43b321d4bd5"; - public const string FLASHHIDER_AK105_545X39_MUZZLE_BRAKECOMPENSATOR = - "5ac72e945acfc43f3b691116"; - public const string FLASHHIDER_AK12_545X39_MUZZLE_BRAKE = "649ec2af961514b22506b10f"; - public const string FLASHHIDER_AK74_545X39_MUZZLE_BRAKECOMPENSATOR = "5649aa744bdc2ded0b8b457e"; - public const string FLASHHIDER_AK74_PWS_CQB_74_545X39_MUZZLE_BRAKE = "5943eeeb86f77412d6384f6b"; - public const string FLASHHIDER_AK74_SRVV_MBR_JET_545X39_MUZZLE_BRAKE = - "5cc9a96cd7f00c011c04e04a"; - public const string FLASHHIDER_AK74_THREAD_TYPE_JMAC_CUSTOMS_RRD4C_MULTICALIBER_MUZZLE_BRAKE = - "5f633f791b231926f2329f13"; - public const string FLASHHIDER_AK74M_545X39_MUZZLE_BRAKECOMPENSATOR = - "5ac7655e5acfc40016339a19"; - public const string FLASHHIDER_AKM_762X39_MUZZLE_BRAKECOMPENSATOR = "59d64fc686f774171b243fe2"; - public const string FLASHHIDER_AKM_THREAD_TYPE_JMAC_CUSTOMS_RRD4C_762X39_MUZZLE_BRAKE = - "5f633f68f5750b524b45f112"; - public const string FLASHHIDER_AKML_SYSTEM_762X39_FLASH_HIDER = "5a0d716f1526d8000d26b1e2"; - public const string FLASHHIDER_AKS74U_545X39_MUZZLE_BRAKE = "57dc324a24597759501edc20"; - public const string FLASHHIDER_AR10_2A_ARMANENT_X3_762X51_COMPENSATOR = - "5b7d693d5acfc43bca706a3d"; - public const string FLASHHIDER_AR10_AAC_BLACKOUT_51T_762X51_FLASH_HIDER = - "5a34fd2bc4a282329a73b4c5"; - public const string FLASHHIDER_AR10_AAC_SCARSD_51T_762X51_FLASH_HIDER = - "618178aa1cb55961fa0fdc80"; - public const string FLASHHIDER_AR10_AWC_PSR_762X51_MUZZLE_BRAKE = "612e0d3767085e45ef14057f"; - public const string FLASHHIDER_AR10_CMMG_SV_BRAKE_762X51_MUZZLE_BRAKE = - "6065c6e7132d4d12c81fd8e1"; - public const string FLASHHIDER_AR10_DANIEL_DEFENSE_WAVE_762X51_MUZZLE_BRAKE = - "5d1f819086f7744b355c219b"; - public const string FLASHHIDER_AR10_DEAD_AIR_KEYMOUNT_762X51_MUZZLE_BRAKE = - "628a66b41d5e41750e314f34"; - public const string FLASHHIDER_AR10_DELTATEK_DTKAR10_762X51_MUZZLE_BRAKE = - "6642f63667f5cb56a00662eb"; - public const string FLASHHIDER_AR10_DESERT_TECH_762X51_FLASH_HIDER = "5dcbe965e4ed22586443a79d"; - public const string FLASHHIDER_AR10_FORTIS_RED_BRAKE_762X51_MUZZLE_BRAKE = - "5d026791d7ad1a04a067ea63"; - public const string FLASHHIDER_AR10_KAC_QDC_762X51_FLASH_SUPPRESSOR_KIT = - "5dfa3cd1b33c0951220c079b"; - public const string FLASHHIDER_AR10_KAC_QDC_762X51_MUZZLE_BRAKE_KIT = - "6130c43c67085e45ef1405a1"; - public const string FLASHHIDER_AR10_KEENO_ARMS_SHREWD_762X51_MUZZLE_BRAKE = - "5cdd7685d7f00c000f260ed2"; - public const string FLASHHIDER_AR10_LANTAC_DRAGON_762X51_MUZZLE_BRAKECOMPENSATOR = - "5c878e9d2e2216000f201903"; - public const string FLASHHIDER_AR10_NORDIC_COMPONENTS_CORVETTE_762X51_COMPENSATOR = - "5d02677ad7ad1a04a15c0f95"; - public const string FLASHHIDER_AR10_ODIN_WORKS_ATLAS7_762X51_MUZZLE_BRAKE = - "5bbdb8bdd4351e4502011460"; - public const string FLASHHIDER_AR10_PRECISION_ARMANENT_M11_SEVEREDUTY_762X51_MUZZLE_BRAKE = - "5cdd7693d7f00c0010373aa5"; - public const string FLASHHIDER_AR10_SUREFIRE_PROCOMP_762X51_MUZZLE_BRAKE = - "607ffb988900dc2d9a55b6e4"; - public const string FLASHHIDER_AR10_SUREFIRE_WARDEN_762X51_BLAST_REGULATOR = - "615d8eb350224f204c1da1cf"; - public const string FLASHHIDER_AR10_TAA_ZK38_762X51_MUZZLE_BRAKE = "612e0e3c290d254f5e6b291d"; - public const string FLASHHIDER_AR10_THUNDER_BEAST_ARMS_30CB_762X51_MUZZLE_BRAKE = - "5d443f8fa4b93678dd4a01aa"; - public const string FLASHHIDER_AR15_AAC_BLACKOUT_51T_556X45_FLASH_HIDER = - "5c7e5f112e221600106f4ede"; - public const string FLASHHIDER_AR15_ADAR_215_556X45_FLASH_HIDER = "5c0fafb6d174af02a96260ba"; - public const string FLASHHIDER_AR15_AEROKNOX_BUTTERFLY_556X45_MUZZLE_BRAKE = - "6405ff6bd4578826ec3e377a"; - public const string FLASHHIDER_AR15_ALIENTECH_556X45_MUZZLE_BRAKE = "63ac5c9658d0485fc039f0b8"; - public const string FLASHHIDER_AR15_AWC_PSR_556X45_MUZZLE_BRAKE = "612e0cfc8004cc50514c2d9e"; - public const string FLASHHIDER_AR15_BULLETEC_ST6012_556X45_MUZZLE_BRAKE = - "5cf6937cd7f00c056c53fb39"; - public const string FLASHHIDER_AR15_COLT_USGI_A2_556X45_FLASH_HIDER = - "544a38634bdc2d58388b4568"; - public const string FLASHHIDER_AR15_DANIEL_DEFENSE_WAVE_556X45_MUZZLE_BRAKE = - "5cff9e5ed7ad1a09407397d4"; - public const string FLASHHIDER_AR15_DELTATEK_DTKM16_556X45_MUZZLE_BRAKE = - "664301213dd83ddae20dda18"; - public const string FLASHHIDER_AR15_DESERT_TECH_556X45_FLASH_HIDER = "5c48a2a42e221602b66d1e07"; - public const string FLASHHIDER_AR15_DOUBLESTAR_CARLSON_TAC_COMP_556X45_COMPENSATOR = - "6621455e3aceea9e2b0b01e7"; - public const string FLASHHIDER_AR15_FERFRANS_CQB_556X45_MUZZLE_BRAKE = - "5f6372e2865db925d54f3869"; - public const string FLASHHIDER_AR15_GRIFFIN_ARMAMENT_GATELOK_HAMMER_556X45_FLASH_HIDER = - "6386120cd6baa055ad1e201c"; - public const string FLASHHIDER_AR15_HK_BLITZ_556X45_FLASH_HIDER = "615d8e2f1cb55961fa0fd9a4"; - public const string FLASHHIDER_AR15_KAC_QDC_556X45_3PRONG_FLASH_ELIMINATOR = - "626667e87379c44d557b7550"; - public const string FLASHHIDER_AR15_KAC_QDC_556X45_FLASH_SUPPRESSOR_KIT = - "56ea8180d2720bf2698b456a"; - public const string FLASHHIDER_AR15_NORDIC_COMPONENTS_CORVETTE_556X45_COMPENSATOR = - "5d02676dd7ad1a049e54f6dc"; - public const string FLASHHIDER_AR15_NOVESKE_KX3_556X45_FLASH_HIDER = "56ea6fafd2720b844b8b4593"; - public const string FLASHHIDER_AR15_PWS_CQB_556X45_MUZZLE_BRAKE = "5943ee5a86f77413872d25ec"; - public const string FLASHHIDER_AR15_SAI_JAILBRAKE_556X45_MUZZLE_DEVICE = - "5c78f2882e22165df16b832e"; - public const string FLASHHIDER_AR15_SILENCERCO_ASR_556X45_FLASH_HIDER = - "609269c3b0e443224b421cc1"; - public const string FLASHHIDER_AR15_SUREFIRE_SF3P_556X45_FLASH_HIDER = - "5c7fb51d2e2216001219ce11"; - public const string FLASHHIDER_AR15_SUREFIRE_SF4P_556X45_FLASH_HIDER = - "5ea172e498dacb342978818e"; - public const string FLASHHIDER_AR15_SUREFIRE_WARCOMP_556X45_FLASH_HIDER = - "5c6d710d2e22165df16b81e7"; - public const string FLASHHIDER_AR15_SUREFIRE_WARDEN_556X45_BLAST_REGULATOR = - "62669bccdb9ebb4daa44cd14"; - public const string FLASHHIDER_AR15_TAA_ZK23_556X45_MUZZLE_BRAKE = "612e0e55a112697a4b3a66e7"; - public const string FLASHHIDER_AR15_THUNDER_BEAST_ARMS_223CB_556X45_MUZZLE_BRAKE = - "5d440625a4b9361eec4ae6c5"; - public const string FLASHHIDER_AR15_TROY_CLAYMORE_556X45_MUZZLE_BRAKE = - "5cc9b815d7f00c000e2579d6"; - public const string FLASHHIDER_AR15_VENDETTA_PRECISION_VP09_INTERCEPTOR_556X45_MUZZLE_BRAKE = - "5a7c147ce899ef00150bd8b8"; - public const string FLASHHIDER_AR15_WDR_NERO_556_556X45_MUZZLE_BRAKE = - "64943b74e9998d641b0412ed"; - public const string FLASHHIDER_AR15_YANKEE_HILL_PHANTOM_556X45_FLASH_HIDER = - "626a74340be03179a165e30c"; - public const string FLASHHIDER_ASE_UTRA_BORELOCK_338_LM_MUZZLE_BRAKE = - "673f3ef1259f5945d70e43a8"; - public const string FLASHHIDER_ASH12_127X55_MUZZLE_BRAKECOMPENSATOR = - "5caf17c9ae92150b30006be1"; - public const string FLASHHIDER_AWC_PSR_338_LM_MUZZLE_BRAKE = "612e0d81290d254f5e6b291a"; - public const string FLASHHIDER_DVL10_762X51_MUZZLE_DEVICE = "58889c7324597754281f9439"; - public const string FLASHHIDER_DVL10_M2_762X51_MUZZLE_BRAKE = "5888996c24597754281f9419"; - public const string FLASHHIDER_FERFRANS_CRD_556X45_CONCUSSION_REDUCTION_DEVICE = - "5f6339d53ada5942720e2dc3"; - public const string FLASHHIDER_FN_P90_57X28_FLASH_HIDER = "5cc82796e24e8d000f5859a8"; - public const string FLASHHIDER_FN_SCARL_556X45_FLASH_HIDER = "618407a850224f204c1da549"; - public const string FLASHHIDER_GLOCK_9X19_CARVER_CUSTOM_4_PORT_COMPENSATOR = - "5a7ad0c451dfba0013379712"; - public const string FLASHHIDER_GLOCK_9X19_CARVER_CUSTOM_DECELERATOR_3_PORT_COMPENSATOR = - "5a7037338dc32e000d46d257"; - public const string FLASHHIDER_GLOCK_9X19_DOUBLE_DIAMOND_FLASH_HIDER = - "5a70366c8dc32e001207fb06"; - public const string FLASHHIDER_GLOCK_9X19_LONE_WOLF_ALPHAWOLF_BULLNOSE_COMPENSATOR = - "5a705e128dc32e000d46d258"; - public const string FLASHHIDER_GLOCK_9X19_LONE_WOLF_LWDCOMP9_COMPENSATOR = - "5a7ad1fb51dfba0013379715"; - public const string FLASHHIDER_GLOCK_9X19_STRIKE_INDUSTRIES_G4_SLIDECOMP_COMPENSATOR = - "5a7b32a2e899ef00135e345a"; - public const string FLASHHIDER_HK_G36_556X45_4PRONG_FLASH_HIDER = "622f128cec80d870d349b4e8"; - public const string FLASHHIDER_HK_G36_556X45_FLASH_HIDER = "622f07cfae33bc505b2c4dd5"; - public const string FLASHHIDER_HK_G36C_556X45_4PRONG_FLASH_HIDER = "622f0ee47762f55aaa68ac87"; - public const string FLASHHIDER_HK_MP5_BT_QD_9X19_MUZZLE_BRAKE = "615d8df08004cc50514c3236"; - public const string FLASHHIDER_HK_MP5_NOVESKESTYLE_9X19_MUZZLE_BRAKECOMPENSATOR = - "5c07c5ed0db834001b73571c"; - public const string FLASHHIDER_HK_MP7A1_46X30_FLASH_HIDER = "5ba26acdd4351e003562908e"; - public const string FLASHHIDER_HK_PROLONGED_762X51_FLASH_HIDER = "61713308d92c473c770214a0"; - public const string FLASHHIDER_KRISS_VECTOR_45_ACP_FLASH_HIDER = "5fb65424956329274326f316"; - public const string FLASHHIDER_KRISS_VECTOR_9X19_FLASH_HIDER = "5fbbc3324e8a554c40648348"; - public const string FLASHHIDER_LANTAC_BMD_762X51_BLAST_MITIGATION_DEVICE = - "5cf78720d7f00c06595bc93e"; - public const string FLASHHIDER_M14_JP_ENTERPRISES_762X51_TACTICAL_COMPENSATOR = - "5addbb825acfc408fb139400"; - public const string FLASHHIDER_M14_SMITH_ENTERPRISE_GOOD_IRON_762X51_MUZZLE_BRAKE = - "5addbb945acfc4001a5fc44e"; - public const string FLASHHIDER_M14_SMITH_ENTERPRISE_VORTEX_762X51_MUZZLE_BRAKE = - "5addbba15acfc400185c2854"; - public const string FLASHHIDER_M14_YANKEE_HILL_PHANTOM_762X51_FLASH_HIDER = - "5addbbb25acfc40015621bd9"; - public const string FLASHHIDER_M1911_ANARCHY_OUTDOORS_45_ACP_MUZZLE_BRAKE = - "5ef61964ec7f42238c31e0c1"; - public const string FLASHHIDER_M1A_NATIONAL_MATCH_762X51_FLASH_SUPPRESSOR = - "5addbb6e5acfc408fb1393fd"; - public const string FLASHHIDER_M1A_SMITH_ENTERPRISE_SOCOM_16_762X51_THREADED_MUZZLE_BRAKE_GAS_BLOCK = - "5ab3afb2d8ce87001660304d"; - public const string FLASHHIDER_M1A_SOCOM_16_762X51_MUZZLE_BRAKECOMPENSATOR = - "5aafa1c2e5b5b00015042a56"; - public const string FLASHHIDER_M60E3_762X51_FLASH_HIDER = "6601281fc752a02bbe05e696"; - public const string FLASHHIDER_M60E6_762X51_FLASH_HIDER = "66012a1d3dff5074ed002e2a"; - public const string FLASHHIDER_MCXSPEAR_CLUTCHLOK_QD_68X51_SHOULDERED_FLASH_HIDER = - "6529113b5ae2ae97b80fdf39"; - public const string FLASHHIDER_MOSIN_RIFLE_TACFIRE_TANKER_STYLE_762X54R_MUZZLE_BRAKE = - "5bbdb83fd4351e44f824c44b"; - public const string FLASHHIDER_MOSIN_RIFLE_TEXAS_PRECISION_PRODUCTS_762X54R_MUZZLE_BRAKE = - "5bc5a351d4351e003477a414"; - public const string FLASHHIDER_MOSIN_RIFLE_WITT_MACHINE_762X54R_MUZZLE_BRAKE = - "5bc5a35cd4351e450201232f"; - public const string FLASHHIDER_MPX_A2_9X19_FLASH_HIDER = "58949dea86f77409483e16a8"; - public const string FLASHHIDER_ORSIS_T5000M_762X51_MUZZLE_BRAKECOMPENSATOR = - "5df35e7f2a78646d96665dd4"; - public const string FLASHHIDER_P226_TJS_CUSTOM_9X19_COMPENSATOR = "5c6beec32e221601da3578f2"; - public const string FLASHHIDER_PK_ZENIT_DTK1P_762X54R_MUZZLE_BRAKE = "6492ef63cfcf7c89e701abf1"; - public const string FLASHHIDER_PKM_762X54R_MUZZLE_BRAKE = "6492efe46cc7e29a6f03b2a0"; - public const string FLASHHIDER_PKM_762X54R_SLOTTED_FLASH_HIDER = "6492efb8cfcf7c89e701abf3"; - public const string FLASHHIDER_PP1901_VITYAZ_9X19_MUZZLE_BRAKECOMPENSATOR = - "5998597786f77414ea6da093"; - public const string FLASHHIDER_RFB_762X51_FLASH_HIDER = "5f2aa4559b44de6b1b4e68d1"; - public const string FLASHHIDER_RPK16_545X39_MUZZLE_BRAKECOMPENSATOR = - "5beec3420db834001b095429"; - public const string FLASHHIDER_SA58_3PRONG_TRIDENT_762X51_FLASH_HIDER = - "5b099b7d5acfc400186331e4"; - public const string FLASHHIDER_SA58_AUSTRIAN_STYLE_762X51_MUZZLE_BRAKE = - "5b7d68af5acfc400170e30c3"; - public const string FLASHHIDER_SAIGA9_9X19_MUZZLE_BRAKECOMPENSATOR = "5998598e86f7740b3f498a86"; - public const string FLASHHIDER_SAKO_TRG_2242M10_338_LM_MUZZLE_BRAKE = - "673f4046259f5945d70e43ab"; - public const string FLASHHIDER_SAKO_TRG_CORETAC_COREBRAKE_338_LM_MUZZLE_BRAKE = - "673f3f9840aeca974e0b5c68"; - public const string FLASHHIDER_SIG_SAUER_762X51_3PRONG_FLASH_HIDER = "5fbcbcf593164a5b6278efb2"; - public const string FLASHHIDER_SIG_SAUER_MICRO_BRAKE_762X51_MUZZLE_BRAKE = - "5fbcbd02900b1d5091531dd3"; - public const string FLASHHIDER_SIG_SAUER_TWO_PORT_BRAKE_762X51_MUZZLE_BRAKE = - "5fbcbd10ab884124df0cd563"; - public const string FLASHHIDER_SILENCERCO_AC858_ASR_338_LM_MUZZLE_BRAKE = - "5fc23636016cce60e8341b05"; - public const string FLASHHIDER_STEYR_AUG_A1_556X45_CLOSED_FLASH_HIDER = - "630f2872911356c17d06abc5"; - public const string FLASHHIDER_STEYR_AUG_A3_556X45_CLOSED_FLASH_HIDER = - "630f28f0cadb1fe05e06f004"; - public const string FLASHHIDER_STEYR_AUG_A3_556X45_MUZZLE_BRAKE = "630f291b9f66a28b37094bb8"; - public const string FLASHHIDER_STM9_9X19_MUZZLE_BRAKE = "60337f5dce399e10262255d1"; - public const string FLASHHIDER_SV98_762X54R_MUZZLE_DEVICE = "560e620e4bdc2d724b8b456b"; - public const string FLASHHIDER_SV98_762X54R_THREAD_ADAPTER = "5c4eec9b2e2216398b5aaba2"; - public const string FLASHHIDER_SV98_SRVV_MK20_762X54R_MUZZLE_BRAKECOMPENSATOR = - "5c4ee3d62e2216152006f302"; - public const string FLASHHIDER_SVDS_762X54R_MUZZLE_BRAKECOMPENSATOR = - "5c471bfc2e221602b21d4e17"; - public const string FLASHHIDER_SVT40_762X54R_MUZZLE_BRAKE = "64119d1f2c6d6f921a0929f8"; - public const string FLASHHIDER_TACCOM_CARBINE_BRAKE_9X19_MUZZLE_BRAKE = - "5cf6935bd7f00c06585fb791"; - public const string FLASHHIDER_TT_PMLASER_DTKTT_MUZZLE_BRAKECOMPENSATOR = - "5bffd7ed0db834001d23ebf9"; - public const string FLASHHIDER_UZI_VENTED_BARREL_SHROUD = "6699370c57df3e2b4e0a0dab"; - public const string FLASHHIDER_VPO136_VEPRKM_762X39_MUZZLE_BRAKECOMPENSATOR = - "59e61eb386f77440d64f5daf"; - public const string FLASHHIDER_VPO209_THREAD_PROTECTOR = "59e8a00d86f7742ad93b569c"; - public const string FLASHHIDER_YANKEE_HILL_ANNIHILATOR_MULTICALIBER_FLASH_HIDER = - "5b3a16655acfc40016387a2a"; - public const string FLASHLIGHT_ARMYTEK_PREDATOR_PRO_V3_XHP35_HI = "59d790f486f77403cb06aec6"; - public const string FLASHLIGHT_ULTRAFIRE_WF501B = "57d17c5e2459775a5c57d17d"; - public const string FLASHLIGHT_ZENIT_2D = "646f62fee779812413011ab7"; - public const string FLYER_ALEX_GREEN_POSTER = "675a06b84ff23436160d802f"; - public const string FLYER_ARENA_POSTER = "675a0288c3102563bd01c9c3"; - public const string FLYER_ARENA_POSTER_2 = "675a046b8f547d6cae01922e"; - public const string FLYER_ARENA_POSTER_3 = "675a04c01474133a0d0bb212"; - public const string FLYER_DEN_OF_WOLVES_POSTER = "675a0eacf905bde03d0f8253"; - public const string FLYER_EXODUS_POSTER = "675a0d2d57dd12f0260c4a31"; - public const string FLYER_FINAL_MOMENT_POSTER = "679b946f90622daf9708da6d"; - public const string FLYER_GENEBURN_CONCERT_ADVERTISEMENT = "675a0b8d4ff23436160d8031"; - public const string FLYER_GIRL_POSTER_1 = "6759e19a8367ee2b0c0f4b92"; - public const string FLYER_GIRL_POSTER_2 = "6759e61067c8eb5cd10352f1"; - public const string FLYER_GIRL_POSTER_3 = "6759e6c39422e1708e0e9b81"; - public const string FLYER_GIRL_POSTER_4 = "6759e7a44ff23436160d7ff5"; - public const string FLYER_GIRL_POSTER_5 = "6759e8b1c3102563bd01c985"; - public const string FLYER_GRENADE_GIRL_POSTER = "67f924adb45d94a2600a8cc8"; - public const string FLYER_GUNFIGHT_POSTER = "675a191f67c8eb5cd1035305"; - public const string FLYER_HELL_OR_HIGHWATER_POSTER = "675a125caf26c56ee109072a"; - public const string FLYER_HIGHWAY_POSTER = "675a0fbbb98bf391510bafcd"; - public const string FLYER_I_BEAR_LOOT_POSTER = "6759e07e4ff23436160d7fed"; - public const string FLYER_KILLA_AND_TAGILLA_POSTER = "675a04fdb8913ff13e0496bb"; - public const string FLYER_KILLA_FANGIRL_POSTER = "67f924a9154a04c33b0a3c57"; - public const string FLYER_LAST_BREATH_POSTER = "679b944d597ba2ed120c3d3c"; - public const string FLYER_LAST_FLIGHT_POSTER = "675a1a244ff23436160d8033"; - public const string FLYER_RUN_POSTER = "675a1e502eac6c76e104ea1e"; - public const string FLYER_SHARPSHOOTER_POSTER = "675a1f5c1474133a0d0bb218"; - public const string FLYER_SPECIAL_GIRL_POSTER = "6759e91d8367ee2b0c0f4b94"; - public const string FLYER_SPOOKY_MOVIE_POSTER = "675a1af21474133a0d0bb216"; - public const string FLYER_TARK_SOULS_POSTER = "679b9477708cfcb2060b9ade"; - public const string FLYER_TAURUS_POSTER = "679b94734e9ca6b3d80586a7"; - public const string FLYER_TERRAGROUP_LABS_ADVERTISEMENT = "675a0a91af26c56ee1090728"; - public const string FLYER_THE_AMBUSH_POSTER = "675a202b6aaafea7210915fd"; - public const string FLYER_THE_HUNTED_POSTER = "675a20c83fb2de89670113b4"; - public const string FLYER_THINGS_SURE_ARE_STRANGE_POSTER = "675a081c1474133a0d0bb214"; - public const string FLYER_UNUSUAL_LEATHER_RIG_POSTER = "67f924b1b07831a6ef0ce317"; - public const string FLYER_USEC_POSTER = "675a213ff905bde03d0f8255"; - public const string FLYER_VASILY_POSTER = "675a1c129422e1708e0e9baa"; - public const string FLYER_WHAT_YOU_SEEK_POSTER = "6759bb94b8913ff13e049669"; - public const string FOOD_ALYONKA_CHOCOLATE_BAR = "57505f6224597709a92585a9"; - public const string FOOD_ARMY_CRACKERS = "5448ff904bdc2d6f028b456e"; - public const string FOOD_CAN_OF_BEEF_STEW_LARGE = "57347da92459774491567cf5"; - public const string FOOD_CAN_OF_BEEF_STEW_SMALL = "57347d7224597744596b4e72"; - public const string FOOD_CAN_OF_CONDENSED_MILK = "5734773724597737fd047c14"; - public const string FOOD_CAN_OF_GREEN_PEAS = "57347d692459774491567cf1"; - public const string FOOD_CAN_OF_HERRING = "57347d9c245977448b40fa85"; - public const string FOOD_CAN_OF_HUMPBACK_SALMON = "57347d5f245977448b40fa81"; - public const string FOOD_CAN_OF_PACIFIC_SAURY = "5673de654bdc2d180f8b456d"; - public const string FOOD_CAN_OF_SPRATS = "5bc9c29cd4351e003562b8a3"; - public const string FOOD_CAN_OF_SQUASH_SPREAD = "57347d8724597744596b4e76"; - public const string FOOD_EMELYA_RYE_CROUTONS = "5751487e245977207e26a315"; - public const string FOOD_ISKRA_RATION_PACK = "590c5d4b86f774784e1b9c45"; - public const string FOOD_JAR_OF_DEVILDOG_MAYO = "5bc9b156d4351e00367fbce9"; - public const string FOOD_MRE_RATION_PACK = "590c5f0d86f77413997acfab"; - public const string FOOD_PACK_OF_INSTANT_NOODLES = "656df4fec921ad01000481a2"; - public const string FOOD_PACK_OF_OAT_FLAKES = "57347d90245977448f7b7f65"; - public const string FOOD_PACK_OF_SUGAR = "59e3577886f774176a362503"; - public const string FOOD_PACK_OF_TARKER_DRIED_MEAT = "65815f0e647e3d7246384e14"; - public const string FOOD_RYE_CROUTONS = "57347d3d245977448f7b7f61"; - public const string FOOD_SALTY_DOG_BEEF_SAUSAGE = "635a758bfefc88a93f021b8a"; - public const string FOOD_SLICKERS_CHOCOLATE_BAR = "544fb6cc4bdc2d34748b456e"; - public const string FOREGRIP_A3_TACTICAL_MVF001_KEYMOD_VERTICAL_FOREGRIP_BLACK = - "5fc0f9b5d724d907e2077d82"; - public const string FOREGRIP_AI_AXMC_PADDED_HANDGUARD_GRIP = "6281212a09427b40ab14e770"; - public const string FOREGRIP_ASH12_VERTICAL = "5cda9bcfd7f00c0c0b53e900"; - public const string FOREGRIP_BCM_GUNFIGHTER_MOD_3_MLOK_FOREGRIP_BLACK = - "665d5d9e338229cfd6078da1"; - public const string FOREGRIP_BCM_GUNFIGHTER_MOD_3_MLOK_FOREGRIP_FDE = - "665edce564fb556f940ab32a"; - public const string FOREGRIP_BCM_GUNFIGHTER_MOD_3_VERTICAL = "5c7fc87d2e221644f31c0298"; - public const string FOREGRIP_DANIEL_DEFENSE_ENHANCED_MLOK_VERTICAL_FOREGRIP_BLACK = - "651a8bf3a8520e48047bf708"; - public const string FOREGRIP_DANIEL_DEFENSE_ENHANCED_MLOK_VERTICAL_FOREGRIP_COYOTE_BROWN = - "651a8e529829226ceb67c319"; - public const string FOREGRIP_FORTIS_SHIFT_TACTICAL = "59f8a37386f7747af3328f06"; - public const string FOREGRIP_HERA_ARMS_CQR_TACTICAL = "5a7dbfc1159bd40016548fde"; - public const string FOREGRIP_HK_STURMGRIFF = "619386379fb0c665d5490dbe"; - public const string FOREGRIP_KAC_VERTICAL = "5c87ca002e221600114cb150"; - public const string FOREGRIP_MAGPUL_AFG_TACTICAL_FOREGRIP_BLACK = "588226d124597767ad33f787"; - public const string FOREGRIP_MAGPUL_AFG_TACTICAL_FOREGRIP_FDE = "588226dd24597767ad33f789"; - public const string FOREGRIP_MAGPUL_AFG_TACTICAL_FOREGRIP_FOREST_GREEN = - "588226e62459776e3e094af7"; - public const string FOREGRIP_MAGPUL_AFG_TACTICAL_FOREGRIP_OLIVE_DRAB = - "588226ef24597767af46e39c"; - public const string FOREGRIP_MAGPUL_MLOK_AFG_TACTICAL_FOREGRIP_BLACK = - "57cffb66245977632f391a99"; - public const string FOREGRIP_MAGPUL_MLOK_AFG_TACTICAL_FOREGRIP_FDE = "57cffcd624597763133760c5"; - public const string FOREGRIP_MAGPUL_MLOK_AFG_TACTICAL_FOREGRIP_OLIVE_DRAB = - "57cffcdd24597763f5110006"; - public const string FOREGRIP_MAGPUL_MLOK_AFG_TACTICAL_FOREGRIP_STEALTH_GREY = - "57cffce524597763b31685d8"; - public const string FOREGRIP_MAGPUL_RVG_FOREGRIP_BLACK = "59fc48e086f77463b1118392"; - public const string FOREGRIP_MAGPUL_RVG_FOREGRIP_FDE = "5fce0cf655375d18a253eff0"; - public const string FOREGRIP_MONSTRUM_TACTICAL_VERTICAL_FORE_GRIP_KEYMOD = - "615d8fd3290d254f5e6b2edc"; - public const string FOREGRIP_MP9N_VERTICAL = "5de8fbad2fbe23140d3ee9c4"; - public const string FOREGRIP_ORSIS_T5000M_PADDED_HANDGUARD_GRIP = "5df36948bb49d91fb446d5ad"; - public const string FOREGRIP_RTM_OSOVETS_P2_TACTICAL = "64806bdd26c80811d408d37a"; - public const string FOREGRIP_RTM_OSOVETS_P2_TACTICAL_FOREGRIP_KHAKI = - "64807a29e5ffe165600abc97"; - public const string FOREGRIP_RTM_PILLAU_P2_TACTICAL_FOREGRIP_RED = "65169d5b30425317755f8e25"; - public const string FOREGRIP_RTM_PILLAU_TACTICAL = "5cf4fb76d7f00c065703d3ac"; - public const string FOREGRIP_RTM_PILLAU_TACTICAL_FOREGRIP_SAND = "648067db042be0705c0b3009"; - public const string FOREGRIP_SAKO_TRG_M10_GRIP_PAD = "673cb81f5b1511adb10cd326"; - public const string FOREGRIP_SIG_SAUER_VERTICAL_FOREGRIP_KEYMOD_BLACK = - "5fc0f9cbd6fa9c00c571bb90"; - public const string FOREGRIP_SR3M_POLYMER_FOREGRIP_BLACK = "65329ebcc0d50d0c9204ace1"; - public const string FOREGRIP_SR3M_POLYMER_FOREGRIP_PLUM = "6565c0c2ff7eb7070409084c"; - public const string FOREGRIP_STARK_SE5_EXPRESS_FORWARD = "5b057b4f5acfc4771e1bd3e9"; - public const string FOREGRIP_STARK_SE5_EXPRESS_FORWARD_FOREGRIP_FDE = - "655df24fdf80b12750626d0a"; - public const string FOREGRIP_STEYR_AUG_VERTICAL = "634e61b0767cb15c4601a877"; - public const string FOREGRIP_STEYR_AUG_VERTICAL_FOREGRIP_BLACK = "671883292e2eeb98d406f3b8"; - public const string FOREGRIP_STRIKE_INDUSTRIES_COBRA_TACTICAL = "5c791e872e2216001219c40a"; - public const string FOREGRIP_STRIKE_INDUSTRIES_COBRA_TACTICAL_FOREGRIP_FDE = - "655dccfdbdcc6b5df71382b6"; - public const string FOREGRIP_TACTICAL_DYNAMICS_SKELETONIZED = "5f6340d3ca442212f4047eb2"; - public const string FOREGRIP_TANGODOWN_BGVQDITI_FOREGRIP_BLACK = "661e52e29c8b4dadef008577"; - public const string FOREGRIP_TANGODOWN_BGVQDITI_FOREGRIP_FDE = "661e53149c8b4dadef008579"; - public const string FOREGRIP_TANGODOWN_STUBBY_BGVMK46K_FOREGRIP_BLACK = - "558032614bdc2de7118b4585"; - public const string FOREGRIP_TANGODOWN_STUBBY_BGVMK46K_FOREGRIP_FDE = - "58c157be86f77403c74b2bb6"; - public const string FOREGRIP_TANGODOWN_STUBBY_BGVMK46K_FOREGRIP_STEALTH_GREY = - "58c157c886f774032749fb06"; - public const string FOREGRIP_TANGODOWN_STUBBY_BGVQDK_FOREGRIP_BLACK = - "661e52415be02310ed07a07a"; - public const string FOREGRIP_TANGODOWN_STUBBY_BGVQDK_FOREGRIP_FDE = "661e52b5b099f32c28003586"; - public const string FOREGRIP_VIKING_TACTICS_UVG_TACTICAL = "591af28e86f77414a27a9e1d"; - public const string FOREGRIP_ZENIT_RK0_TACTICAL = "5c1bc4812e22164bef5cfde7"; - public const string FOREGRIP_ZENIT_RK1_TACTICAL = "5c1bc5612e221602b5429350"; - public const string FOREGRIP_ZENIT_RK1_TACTICAL_FOREGRIP_ON_B25U_MOUNT = - "5c1cd46f2e22164bef5cfedb"; - public const string FOREGRIP_ZENIT_RK2_TACTICAL = "5c1bc5af2e221602b412949b"; - public const string FOREGRIP_ZENIT_RK4_TACTICAL = "5c1bc5fb2e221602b1779b32"; - public const string FOREGRIP_ZENIT_RK5_TACTICAL = "5c1bc7432e221602b412949d"; - public const string FOREGRIP_ZENIT_RK6_TACTICAL = "5c1bc7752e221602b1779b34"; - public const string GASBLOCK_AK_KIBA_ARMS_VDM_CS_GAS_TUBE = "5a01ad4786f77450561fda02"; - public const string GASBLOCK_AK_TROY_FULL_LENGTH_RAIL_HANDGUARD_WITH_GAS_TUBE = - "5b237e425acfc4771e1be0b6"; - public const string GASBLOCK_AK_ULTIMAK_M1B_HANDGUARD_WITH_GAS_TUBE = - "59ccfdba86f7747f2109a587"; - public const string GASBLOCK_AK_VEZHLIVYY_STRELOK_VS24_VS33C_HANDGUARD_WITH_GAS_TUBE = - "5cf656f2d7f00c06585fb6eb"; - public const string GASBLOCK_AK_VEZHLIVYY_STRELOK_VS24_VS33C_HANDGUARD_WITH_GAS_TUBE_WHITE = - "5d4aab30a4b9365435358c55"; - public const string GASBLOCK_AK12_GAS_TUBE = "649ec107961514b22506b10c"; - public const string GASBLOCK_AK545_MK_21_GAS_TUBE = "628b8d83717774443b15e248"; - public const string GASBLOCK_AK74_GAS_TUBE = "59c6633186f7740cf0493bb9"; - public const string GASBLOCK_AKM_GAS_TUBE = "59d64ec286f774171d1e0a42"; - public const string GASBLOCK_AKS74U_GAS_TUBE = "59d36a0086f7747e673f3946"; - public const string GASBLOCK_AR10_CMMG_LOW_PROFILE_GAS_BLOCK = "6065dc8a132d4d12c81fd8e3"; - public const string GASBLOCK_AR10_JP_ENTERPRISES_GAS_SYSTEM6 = "5a34fbadc4a28200741e230a"; - public const string GASBLOCK_AR10_KAC_LOW_PROFILE_GAS_BLOCK = "5dfa3d45dfc58d14537c20b0"; - public const string GASBLOCK_AR15_BALLISTIC_ADVANTAGE_LOPRO_GAS_BLOCK = - "63d3ce281fe77d0f2801859e"; - public const string GASBLOCK_AR15_DANIEL_DEFENSE_MK12_LOW_PROFILE_GAS_BLOCK = - "56eabcd4d2720b66698b4574"; - public const string GASBLOCK_AR15_JP_ENTERPRISES_GAS_SYSTEM5B = "5d00ec68d7ad1a04a067e5be"; - public const string GASBLOCK_AR15_WINDHAM_WEAPONRY_RAIL_GAS_BLOCK = "56ea8d2fd2720b7c698b4570"; - public const string GASBLOCK_HK_416A5_LOW_PROFILE_GAS_BLOCK = "5bb20dcad4351e3bac1212da"; - public const string GASBLOCK_HK_G36_GAS_BLOCK = "622b327b267a1b13a44abea3"; - public const string GASBLOCK_HK417_LOW_PROFILE_GAS_BLOCK = "61702f1b67085e45ef140b26"; - public const string GASBLOCK_M4A1_FRONT_SIGHT_WITH_GAS_BLOCK = "5ae30e795acfc408fb139a0b"; - public const string GASBLOCK_MCX_GAS_BLOCK = "5fbc210bf24b94483f726481"; - public const string GASBLOCK_MCXSPEAR_ADJUSTABLE_GAS_PISTON = "652910bc24cbe3c74a05e5b9"; - public const string GASBLOCK_MK18_GAS_BLOCK = "5fc2360f900b1d5091531e19"; - public const string GASBLOCK_MOLOT_ARMS_AKMTYPE_GAS_TUBE = "59e649f986f77411d949b246"; - public const string GASBLOCK_OPSKS_GAS_TUBE = "634f036a517ccc8a960fc746"; - public const string GASBLOCK_PP1901_VITYAZ_GAS_TUBE = "59ccd11386f77428f24a488f"; - public const string GASBLOCK_PP1901_VITYAZ_SAG_MK1_MLOK_HANDGUARD_WITH_GAS_TUBE = - "676177df1f08ed5e8800b7ae"; - public const string GASBLOCK_PP1901_VITYAZ_VECTOR_VRLPS_LEFTSIDE_CHARGING_HANDLE = - "65ae4f57e343f0acc00824da"; - public const string GASBLOCK_RD704_SLR_ION_LITE_RAILED_GAS_TUBE_HANDGUARD_WITH_GAS_TUBE = - "628a83c29179c324ed269508"; - public const string GASBLOCK_SKS_GAS_TUBE = "634f02d7517ccc8a960fc744"; - public const string GASBLOCK_SVDS_GAS_TUBE = "5c471c842e221615214259b5"; - public const string GASBLOCK_VPO101_GAS_TUBE = "5c5039be2e221602b177c9ff"; - public const string GRENADE_F1_HAND = "5710c24ad2720bc3458b45a3"; - public const string GRENADE_F1_HAND_GRENADE_REDUCED_DELAY = "67b49e7335dec48e3e05e057"; - public const string GRENADE_M18_SMOKE_GRENADE_GREEN = "617aa4dd8166f034d57de9c5"; - public const string GRENADE_M67_HAND = "58d3db5386f77426186285a0"; - public const string GRENADE_MODEL_7290_FLASH_BANG = "619256e5f8af2c1a4e1f5d92"; - public const string GRENADE_RDG2B_SMOKE = "5a2a57cfc4a2826c6e06d44a"; - public const string GRENADE_RGD5_HAND = "5448be9a4bdc2dfd2f8b456a"; - public const string GRENADE_RGN_HAND = "617fd91e5539a84ec44ce155"; - public const string GRENADE_RGO_HAND = "618a431df1eb8e24b8741deb"; - public const string GRENADE_V40_MINI = "66dae7cbeb28f0f96809f325"; - public const string GRENADE_VOG17_KHATTABKA_IMPROVISED_HAND = "5e32f56fcb6d5863cc5e5ee4"; - public const string GRENADE_VOG25_KHATTABKA_IMPROVISED_HAND = "5e340dcdcb6d5863cc5e5efb"; - public const string GRENADE_ZARYA_STUN = "5a0c27731526d80618476ac4"; - public const string GRENADELAUNCHER_FN40GL_01 = "5e81ebcd8e146c7080625e15"; - public const string GRENADELAUNCHER_FN40GL_02 = "639c3fbbd0446708ee622ee9"; - public const string GRENADELAUNCHER_FN40GL_03 = "639af924d0446708ee62294e"; - public const string HANDGUARD_9A91 = "644675573d52156624001fc9"; - public const string HANDGUARD_AI_AXMC_AX_KEYSLOT_16_INCH = "6281209662cba23f6c4d7a19"; - public const string HANDGUARD_AK_100SERIES_POLYMER = "5cbda392ae92155f3c17c39f"; - public const string HANDGUARD_AK_545_DESIGN_AGGRESSOR = "5cf4e3f3d7f00c06595bc7f0"; - public const string HANDGUARD_AK_AKDEMIA_DOMINATOR = "647dba3142c479dde701b654"; - public const string HANDGUARD_AK_ALFA_ARMS_ASPID = "647dd2b8a12ebf96c3031655"; - public const string HANDGUARD_AK_CAA_RS47 = "5648ae314bdc2d3d1c8b457f"; - public const string HANDGUARD_AK_CNC_GUNS_OV_GP = "6389f1dfc879ce63f72fc43e"; - public const string HANDGUARD_AK_HEXAGON_TUBULAR = "5b800e9286f7747a8b04f3ff"; - public const string HANDGUARD_AK_HEXAGON_TUBULAR_HANDGUARD_ANODIZED_RED = - "5b80242286f77429445e0b47"; - public const string HANDGUARD_AK_KREBS_CUSTOM_UFM_KEYMOD = "59fb375986f7741b681b81a6"; - public const string HANDGUARD_AK_MAGPUL_MOE_AKM_HANDGUARD_BLACK = "57cff947245977638e6f2a19"; - public const string HANDGUARD_AK_MAGPUL_MOE_AKM_HANDGUARD_FDE = "57cffd8224597763b03fc609"; - public const string HANDGUARD_AK_MAGPUL_MOE_AKM_HANDGUARD_OLIVE_DRAB = - "57cffddc24597763133760c6"; - public const string HANDGUARD_AK_MAGPUL_MOE_AKM_HANDGUARD_PLUM = "57cffe0024597763b03fc60b"; - public const string HANDGUARD_AK_MAGPUL_MOE_AKM_HANDGUARD_STEALTH_GREY = - "57cffe20245977632f391a9d"; - public const string HANDGUARD_AK_MAGPUL_ZHUKOVU_HANDGUARD_BLACK = "5c9a07572e221644f31c4b32"; - public const string HANDGUARD_AK_MAGPUL_ZHUKOVU_HANDGUARD_FDE = "5c9a1c3a2e2216000e69fb6a"; - public const string HANDGUARD_AK_MAGPUL_ZHUKOVU_HANDGUARD_PLUM = "5c9a1c422e221600106f69f0"; - public const string HANDGUARD_AK_STRIKE_INDUSTRIES_TRAX_1 = "5a9d56c8a2750c0032157146"; - public const string HANDGUARD_AK_STRIKE_INDUSTRIES_TRAX_2_HANDGUARD_EXTENSION = - "5a9d6d34a2750c00141e07da"; - public const string HANDGUARD_AK_TDI_AKML = "5d1b198cd7ad1a604869ad72"; - public const string HANDGUARD_AK_TDI_AKML_HANDGUARD_ANODIZED_BRONZE = - "5d4aaa73a4b9365392071175"; - public const string HANDGUARD_AK_TDI_AKML_HANDGUARD_ANODIZED_RED = "5d4aaa54a4b9365392071170"; - public const string HANDGUARD_AK_TDI_X47_TACTICAL_HANDGUARD_RAIL_SYSTEM = - "5f6331e097199b7db2128dc2"; - public const string HANDGUARD_AK_VLTOR_CMRD_KEYMOD = "5c17664f2e2216398b5a7e3c"; - public const string HANDGUARD_AK_ZENIT_B10 = "5c617a5f2e2216000f1e81b3"; - public const string HANDGUARD_AK_ZENIT_B10M_HANDGUARD_WITH_B19_UPPER_MOUNT = - "5648b4534bdc2d3d1c8b4580"; - public const string HANDGUARD_AK_ZENIT_B30_HANDGUARD_WITH_B31S_UPPER_HANDGUARD_RAIL = - "5efaf417aeb21837e749c7f2"; - public const string HANDGUARD_AK12 = "649ec127c93611967b034957"; - public const string HANDGUARD_AK545_MK3 = "628b916469015a4e1711ed8d"; - public const string HANDGUARD_AK74_POLYMER_HANDGUARD_PLUM = "5cbda9f4ae9215000e5b9bfc"; - public const string HANDGUARD_AK74_WOODEN = "5648b0744bdc2d363b8b4578"; - public const string HANDGUARD_AK74M_POLYMER = "5648b1504bdc2d9d488b4584"; - public const string HANDGUARD_AKM_WOODEN = "59d64f2f86f77417193ef8b3"; - public const string HANDGUARD_AKS74U_ALFA_ARMS_GOLIAF = "5d15ce51d7ad1a1eff619092"; - public const string HANDGUARD_AKS74U_ALFA_ARMS_GOLIAF_MLOK = "647db1eca8d3399c380d195c"; - public const string HANDGUARD_AKS74U_CAA_XRSU47SU_TACTICAL = "5a957c3fa2750c00137fa5f7"; - public const string HANDGUARD_AKS74U_WOODEN = "57dc32dc245977596d4ef3d3"; - public const string HANDGUARD_AKS74U_ZENIT_B11 = "57ffa9f4245977728561e844"; - public const string HANDGUARD_AR10_CMMG_MK3_RML15_15_INCH_MLOK = "6065881d1246154cad35d637"; - public const string HANDGUARD_AR10_CMMG_MK3_RML9_9_INCH_MLOK = "6065880c132d4d12c81fd8da"; - public const string HANDGUARD_AR10_KAC_URX_4_145_INCH = "5df916dfbb49d91fb446d6b9"; - public const string HANDGUARD_AR10_LANCER_LCH7_125_INCH_MLOK = "5f6336bbda967c74a42e9932"; - public const string HANDGUARD_AR10_NOVESKE_SWS_N6_105_INCH = "5d00ede1d7ad1a0940739a76"; - public const string HANDGUARD_AR10_NOVESKE_SWS_N6_SPLIT = "5d00ef6dd7ad1a0940739b16"; - public const string HANDGUARD_AR15_AB_ARMS_MOD1 = "647de824196bf69818044c93"; - public const string HANDGUARD_AR15_AB_ARMS_MOD1_LOWER = "647def638295ebcb5b02f05b"; - public const string HANDGUARD_AR15_ADAR_215_WOODEN = "5c0e2f5cd174af02a012cfc9"; - public const string HANDGUARD_AR15_AEROKNOX_AX15_105_INCH_MLOK = "619b5db699fb192e7430664f"; - public const string HANDGUARD_AR15_AEROKNOX_AX15_158_INCH_MLOK = "640b20359ab20e15ee445fa9"; - public const string HANDGUARD_AR15_AEROKNOX_AX15_4_INCH_MLOK = "63f4ba71f31d4a33b87bd046"; - public const string HANDGUARD_AR15_ALEXANDER_ARMS_MK10_RIFLE_LENGTH = - "5b2cfa535acfc432ff4db7a0"; - public const string HANDGUARD_AR15_COLT_M4_CARBINE_LENGTH = "5ae30db85acfc408fb139a05"; - public const string HANDGUARD_AR15_COLT_M4_CARBINE_LENGTH_LOWER = "637f57a68d137b27f70c4968"; - public const string HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_1225_HANDGUARD_COYOTE_BROWN = - "5c9a25172e2216000f20314e"; - public const string HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_1225_LOWER_HANDGUARD_COYOTE_BROWN = - "638f2003bbd47aeb9e0ff637"; - public const string HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_95_HANDGUARD_BLACK = - "588b56d02459771481110ae2"; - public const string HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_95_HANDGUARD_COYOTE_BROWN = - "55f84c3c4bdc2d5f408b4576"; - public const string HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_95_LOWER_HANDGUARD_BLACK = - "6396aaa9a52ace83df0840ab"; - public const string HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_95_LOWER_HANDGUARD_COYOTE_BROWN = - "638f1ff84822287cad04be9d"; - public const string HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_FSP_95_HANDGUARD_COYOTE_BROWN = - "5c9a26332e2216001219ea70"; - public const string HANDGUARD_AR15_GEISSELE_SMR_MK16_135_INCH_MLOK_HANDGUARD_DDC = - "5ea16ada09aa976f2e7a51be"; - public const string HANDGUARD_AR15_GEISSELE_SMR_MK16_95_INCH_MLOK_HANDGUARD_DDC = - "5ea16acdfadf1d18c87b0784"; - public const string HANDGUARD_AR15_KAC_RIS = "55d459824bdc2d892f8b4573"; - public const string HANDGUARD_AR15_KAC_RIS_LOWER = "637f57b78d137b27f70c496a"; - public const string HANDGUARD_AR15_KAC_URX_3_8_INCH = "5d123102d7ad1a004e475fe5"; - public const string HANDGUARD_AR15_KAC_URX_3_8_INCH_LOWER = "637f57d2f5ef8c33840d36c4"; - public const string HANDGUARD_AR15_KAC_URX_31_1075_INCH = "5d122e7bd7ad1a07102d6d7f"; - public const string HANDGUARD_AR15_KAC_URX_31_1075_INCH_LOWER = "637f57c532b66e7e320a6676"; - public const string HANDGUARD_AR15_LONE_STAR_ION_LITE = "5d4405f0a4b9361e6a4e6bd9"; - public const string HANDGUARD_AR15_MAGPUL_MOE_SL_CARBINE_LENGTH_MLOK = - "5c78f2792e221600106f4683"; - public const string HANDGUARD_AR15_MAGPUL_MOE_SL_MEDIUM_LENGTH_MLOK = - "5c78f26f2e221601da3581d1"; - public const string HANDGUARD_AR15_PRECISION_REFLEX_GEN_III_DELTA_CARBON = - "63888bbd28e5cc32cc09d2b6"; - public const string HANDGUARD_AR15_SAI_10_INCH_QD_RAIL = "5c78f2612e221600114c9f0d"; - public const string HANDGUARD_AR15_SAI_145_INCH_QD_RAIL = "5c78f2492e221600114c9f04"; - public const string HANDGUARD_AR15_SOYUZTM_12_INCH_MLOK = "6034e3e20ddce744014cb878"; - public const string HANDGUARD_AR15_SOYUZTM_15_INCH_MLOK = "6034e3d953a60014f970617b"; - public const string HANDGUARD_AR15_SOYUZTM_9_INCH_MLOK = "6034e3cb0ddce744014cb870"; - public const string HANDGUARD_AR15_STNGR_VYPR_10_INCH_MLOK = "5c6d5d8b2e221644fc630b39"; - public const string HANDGUARD_AR15_STRIKE_INDUSTRIES_VIPER_CARBINE_LENGTH_MLOK = - "5d00e0cbd7ad1a6c6566a42d"; - public const string HANDGUARD_AR15_STRIKE_INDUSTRIES_VIPER_CARBINE_LENGTH_MLOK_HANDGUARD_FDE = - "5d00f63bd7ad1a59283b1c1e"; - public const string HANDGUARD_AR15_STRIKE_INDUSTRIES_VIPER_CARBINE_LENGTH_MLOK_LOWER = - "637f589af5ef8c33840d36d3"; - public const string HANDGUARD_AR15_STRIKE_INDUSTRIES_VIPER_CARBINE_LENGTH_MLOK_LOWER_HANDGUARD_FDE = - "63969c9019971040b005049b"; - public const string HANDGUARD_AR15_UNIQUEARS_WING_SKULL_12_INCH = "6087e0336d0bd7580617bb7a"; - public const string HANDGUARD_AR15_WAR_SPORT_LVOAC_HANDGUARD_BLACK = "595cfa8b86f77427437e845b"; - public const string HANDGUARD_AR15_WAR_SPORT_LVOAS_HANDGUARD_BLACK = "595cf16b86f77427440c32e2"; - public const string HANDGUARD_ASH12_POLYMER = "5cdaa99dd7f00c002412d0b2"; - public const string HANDGUARD_BENELLI_M3_FOREND = "6259c4347d6aab70bc23a190"; - public const string HANDGUARD_DVL10_M2 = "5888976c24597754281f93f5"; - public const string HANDGUARD_FAL_ORIGINAL = "5b7bed205acfc400161d08cc"; - public const string HANDGUARD_HK_416_MIDWEST_INDUSTRIES_135_INCH_MLOK = - "5c6d11072e2216000e69d2e4"; - public const string HANDGUARD_HK_416_MIDWEST_INDUSTRIES_9_INCH_MLOK = - "5c6d10fa2e221600106f3f23"; - public const string HANDGUARD_HK_416_MRS_KEYMOD_14_INCH = "5c6d10e82e221601da357b07"; - public const string HANDGUARD_HK_416_QUAD_RAIL = "5bb20de5d4351e0035629e59"; - public const string HANDGUARD_HK_416_QUAD_RAIL_EXTENDED = "5bb20dfcd4351e00334c9e24"; - public const string HANDGUARD_HK_416_QUAD_RAIL_HANDGUARD_WITH_FLIPUP_FRONT_SIGHT = - "5bb20df1d4351e00347787d5"; - public const string HANDGUARD_HK_416_STRIKE_INDUSTRIES_CRUX_15_INCH_MLOK = - "5c6d11152e2216000f2003e7"; - public const string HANDGUARD_HK_416_TROY_MLOK_13_INCH = "5c6c2c9c2e2216000f2002e4"; - public const string HANDGUARD_HK_G36_2VENT = "62386b2adf47d66e835094b2"; - public const string HANDGUARD_HK_G36_4VENT = "62386b7153757417e93a4e9f"; - public const string HANDGUARD_HK_G36_6VENT = "6231654c71b5bc3baa1078e5"; - public const string HANDGUARD_HK_G36_KAC_QUAD_RAIL = "67069d66af4890b09f0006ec"; - public const string HANDGUARD_HK_G36_SLIM_LINE_HKEY = "67069d8dad91f3a63c0bc2b4"; - public const string HANDGUARD_HK_MP5_BT_TL99_ALUMINUM = "5a9548c9159bd400133e97b3"; - public const string HANDGUARD_HK_MP5_CAA_HX5 = "5d010d1cd7ad1a59283b1ce7"; - public const string HANDGUARD_HK_MP5_PTR_TRIRAIL = "5d19cd96d7ad1a4a992c9f52"; - public const string HANDGUARD_HK_MP5_WIDE_TROPICAL_POLYMER = "5926c36d86f77467a92a8629"; - public const string HANDGUARD_HK_MP5K_POLYMER = "5d2f259b48f0355a844acd74"; - public const string HANDGUARD_HK_MP5SD_POLYMER = "5926f34786f77469195bfe92"; - public const string HANDGUARD_HK417_EXTENDED_FREE_FLOAT_HANDGUARD_WITH_FLIPUP_FRONT_SIGHT = - "61703001d92c473c77021497"; - public const string HANDGUARD_HK417_PATROL_HANDGUARD_WITH_FLIPUP_FRONT_SIGHT = - "61712eae6c780c1e710c9a1d"; - public const string HANDGUARD_KS23M_FORESTOCK = "5e848d51e4dbc5266a4ec63b"; - public const string HANDGUARD_M60E4_MOD_1 = "66012d64c752a02bbe05e69b"; - public const string HANDGUARD_M60E4_MOD_1_HANDGUARD_FDE = "661fbe066751ee51930b01f2"; - public const string HANDGUARD_M60E6 = "66012d003dff5074ed002e2c"; - public const string HANDGUARD_M700_AB_ARMS_MODX_GEN_3_KEYMOD = "5cde7afdd7f00c000d36b89d"; - public const string HANDGUARD_M870_FAB_DEFENSE_PR870_FORESTOCK = "5a788031c585673f2b5c1c79"; - public const string HANDGUARD_M870_MAGPUL_MOE = "5a788068c5856700137e4c8f"; - public const string HANDGUARD_M870_SPEEDFEED_SHORT = "5a788089c5856700142fdd9c"; - public const string HANDGUARD_MCX_GEN1_KEYMOD_12_INCH = "5fbc227aa56d053a3543f79e"; - public const string HANDGUARD_MCX_GEN1_KEYMOD_8_INCH = "5fbc226eca32ed67276c155d"; - public const string HANDGUARD_MCXSPEAR_11_INCH_MLOK = "652910ef50dc782999054b97"; - public const string HANDGUARD_MDR_HANDGUARD_BLACK = "5dcbd6b46ec07c0c4347a564"; - public const string HANDGUARD_MDR_HANDGUARD_FDE = "5c48a14f2e2216152006edd7"; - public const string HANDGUARD_MK18_18_INCH = "5fc235db2770a0045c59c683"; - public const string HANDGUARD_MOSSBERG_590A1_MAGPUL_MOE_FORESTOCK = "5eea21647547d6330471b3c9"; - public const string HANDGUARD_MOSSBERG_590A1_SPEEDFEED_SHORT = "5e87076ce2db31558c75a11d"; - public const string HANDGUARD_MP133_BEECHWOOD_FORESTOCK = "55d45d3f4bdc2d972f8b456c"; - public const string HANDGUARD_MP133_CUSTOM_PLASTIC_FORESTOCK_WITH_RAILS = - "55d45f484bdc2d972f8b456d"; - public const string HANDGUARD_MP153_POLYMER_FORESTOCK = "56deed6ed2720b4c698b4583"; - public const string HANDGUARD_MP155_ULTIMA_POLYMER_FORESTOCK = "606ee5c81246154cad35d65e"; - public const string HANDGUARD_MP155_WALNUT_FORESTOCK = "607d5aa50494a626335e12ed"; - public const string HANDGUARD_MP18_POLYMER = "61f8024263dc1250e26eb029"; - public const string HANDGUARD_MP18_WOODEN = "61f7b85367ddd414173fdb36"; - public const string HANDGUARD_MPX_GEN1_4_INCH = "676149fbe2cf1419500357ee"; - public const string HANDGUARD_MPX_GEN1_6_INCH = "5894a42086f77426d2590762"; - public const string HANDGUARD_MPX_GEN1_8_INCH = "67614a0be889e1972605d6c0"; - public const string HANDGUARD_MPX_GEN2_4_INCH_MLOK = "67614a225152c0eaed08ec86"; - public const string HANDGUARD_MPX_GEN2_6_INCH_MLOK = "67614a3ce2cf1419500357f4"; - public const string HANDGUARD_MPX_GEN2_8_INCH_MLOK = "67614a31062e6212f5058c38"; - public const string HANDGUARD_MPX_LANCER_OEM_14_INCH_MLOK = "5c59529a2e221602b177d160"; - public const string HANDGUARD_MPX_MIDWEST_INDUSTRIES_105_INCH_MLOK = "5c5db6302e2216000e5e47f0"; - public const string HANDGUARD_MPX_MIDWEST_INDUSTRIES_14_INCH_MLOK = "5c5db63a2e2216000f1b284a"; - public const string HANDGUARD_MPX_MIDWEST_INDUSTRIES_45_INCH_MLOK = "5c5db5f22e2216000e5e47e8"; - public const string HANDGUARD_MPX_MIDWEST_INDUSTRIES_65_INCH_MLOK = "5c5db5fc2e2216000f1b2842"; - public const string HANDGUARD_MTS25512_BEECHWOOD_FORESTOCK = "6123649463849f3d843da7c4"; - public const string HANDGUARD_OPSKS_GAS_TUBE_COVER = "634f03d40384a3ba4f06f874"; - public const string HANDGUARD_ORSIS_T5000M = "5df25d3bfd6b4e6e2276dc9a"; - public const string HANDGUARD_PK_ZENIT_B50 = "6491c6f6ef312a876705191b"; - public const string HANDGUARD_R11_RSASS = "5a329052c4a28200741e22d3"; - public const string HANDGUARD_RFB = "5f2aa47a200e2c0ee46efa71"; - public const string HANDGUARD_RPD_WOODEN = "6513f05a94c72326990a3866"; - public const string HANDGUARD_RPK16 = "5beec3e30db8340019619424"; - public const string HANDGUARD_SA58_QUAD_RAIL = "5b099a9d5acfc47a8607efe7"; - public const string HANDGUARD_SA58_QUAD_RAIL_FULL_LENGTH = "5b7be1ca5acfc400170e2d2f"; - public const string HANDGUARD_SA58FAL_AIM_SPORTS_UNIVERSAL_KEYMOD = "5b7be2345acfc400196d524a"; - public const string HANDGUARD_SA58FAL_AIM_SPORTS_UNIVERSAL_MLOK = "5b7bebc85acfc43bca706666"; - public const string HANDGUARD_SA58FAL_BELGIAN_STYLE = "5b7d671b5acfc43d82528ddd"; - public const string HANDGUARD_SA58FAL_VLTOR_CASVFAL = "5b7bedd75acfc43d825283f9"; - public const string HANDGUARD_SA58FAL_VLTOR_CASVFAS = "5b7bee755acfc400196d5383"; - public const string HANDGUARD_SAIGA9_HARTMAN_GYURZA = "651bfe4d1065f87f082e7209"; - public const string HANDGUARD_SAKO_TRG_M10_11_INCH_HANDGUARD_ASSEMBLY = - "67405ef125beb509e8070276"; - public const string HANDGUARD_SAKO_TRG_M10_15_INCH_HANDGUARD_ASSEMBLY = - "673cb5d1280680de5e02ff3b"; - public const string HANDGUARD_SAKO_TRG_M10_MLOK_15_INCH_HANDGUARD_ASSEMBLY = - "67405fd0812f476fb2020066"; - public const string HANDGUARD_SKS_ATI_MONTE_CARLO_GAS_TUBE_COVER = "653ecc425a1690d9d90491e4"; - public const string HANDGUARD_SKS_FAB_DEFENSE_UAS_GAS_TUBE_COVER = "653ece125a1690d9d90491e8"; - public const string HANDGUARD_SKS_GAS_TUBE_COVER = "634f08a21f9f536910079b5a"; - public const string HANDGUARD_SKS_TAPCO_RAILED_GAS_TUBE_COVER = "653ecd065a1690d9d90491e6"; - public const string HANDGUARD_SOK12_BRAVO18_ALUMINIUM = "5f63418ef5750b524b45f116"; - public const string HANDGUARD_SOK12_CHAOS_TITAN_QUAD_RAIL = "674fe57721a9aa6be6045b96"; - public const string HANDGUARD_SOK12_CUSTOM_GUNS_TYPE340 = "6086b5731246154cad35d6c7"; - public const string HANDGUARD_SOK12_LEAPERS_UTG_PRO_MTU002_LONG_TOP_ALUMINUM = - "5827272a24597748c74bdeea"; - public const string HANDGUARD_SOK12_LEAPERS_UTG_PRO_MTU002_SHORT_TOP_ALUMINUM = - "58272b392459774b4c7b3ccd"; - public const string HANDGUARD_SOK12_POLYMER = "576169e62459773c69055191"; - public const string HANDGUARD_SR2M_POLYMER_HANDGUARD_BLACK = "637ba19df7ca6372bf2613d7"; - public const string HANDGUARD_SR2M_POLYMER_HANDGUARD_PLUM = "62e15547db1a5c41971c1b5e"; - public const string HANDGUARD_SR3M_POLYMER_HANDGUARD_BLACK = "65144f546ddb773afa0e35e1"; - public const string HANDGUARD_SR3M_POLYMER_HANDGUARD_PLUM = "6565c3ab977bcc2dbb01c2e7"; - public const string HANDGUARD_SR3M_RAILED_POLYMER_HANDGUARD_BLACK = "6568a6bf2c5fb7afc70bc424"; - public const string HANDGUARD_SV98_CNC_GUNS_OVSV98_KEYMOD = "623c3c1f37b4b31470357737"; - public const string HANDGUARD_SVD_CAA_XRSDRG = "5e5699df2161e06ac158df6f"; - public const string HANDGUARD_SVD_MODERNIZATION_KIT = "5e56991336989c75ab4f03f6"; - public const string HANDGUARD_SVD_SAG_MK1_CHASSIS = "5dfcd0e547101c39625f66f9"; - public const string HANDGUARD_SVDS_POLYMER = "5c471c6c2e221602b66cd9ae"; - public const string HANDGUARD_UZI_HANDGUARD_WITH_FOREGRIP = "66993149558c59581e03c028"; - public const string HANDGUARD_UZI_KGRIP = "6699313af74fef4dfd0b04f6"; - public const string HANDGUARD_UZI_POLYMER = "6698c8c736ba38d29101770b"; - public const string HANDGUARD_UZI_PRO_A3_TACTICAL_MLOK = "668031bde3e7eb26e8004cd7"; - public const string HANDGUARD_VELOCIRAPTOR_POLYMER = "674d5e287075e056160e0176"; - public const string HANDGUARD_VPO136_VEPRKM_WOODEN = "59e6284f86f77440d569536f"; - public const string HANDGUARD_VPO209_WOODEN = "59e898ee86f77427614bd225"; - public const string HANDGUARD_VSK94 = "6448f2f6d4928d46d30be3f6"; - public const string HANDGUARD_VSSVAL_POLYMER_HANDGUARD_BLACK = "6565bb7eb4b12a56eb04b084"; - public const string HANDGUARD_VSSVAL_POLYMER_HANDGUARD_PLUM = "651178336cad06c37c049eb4"; - public const string HANDGUARD_WASR1063_CAF_WOODEN_FOREGRIP = "5d2c829448f0353a5c7d6674"; - public const string HEADPHONES_GSSH01_ACTIVE_HEADSET = "5b432b965acfc47a8774094e"; - public const string HEADPHONES_MSA_SORDIN_SUPREME_PROXL_HEADSET = "5aa2ba71e5b5b000137b758f"; - public const string HEADPHONES_OPSCORE_FAST_RAC_HEADSET = "5a16b9fffcdbcb0176308b34"; - public const string HEADPHONES_OPSMEN_EARMOR_M32_HEADSET = "6033fa48ffd42c541047f728"; - public const string HEADPHONES_PELTOR_COMTAC_II_HEADSET_OD_GREEN = "5645bcc04bdc2d363b8b4572"; - public const string HEADPHONES_PELTOR_COMTAC_IV_HYBRID_HEADSET_COYOTE_BROWN = - "628e4e576d783146b124c64d"; - public const string HEADPHONES_PELTOR_COMTAC_V_HEADSET_OD_GREEN = "66b5f693acff495a294927e3"; - public const string HEADPHONES_PELTOR_COMTAC_VI_HEADSET_COYOTE_BROWN = - "66b5f6985891c84aab75ca76"; - public const string HEADPHONES_PELTOR_TACTICAL_SPORT_HEADSET = "5c165d832e2216398b5a7e36"; - public const string HEADPHONES_SAFARILAND_LIBERATOR_HP_20_HEARING_PROTECTION_HEADSET_FDE = - "66b5f68de98be930d701c00e"; - public const string HEADPHONES_TW_EXFIL_PELTOR_COMTAC_V_HEADSET_OD_GREEN = - "66b5f69ea7f72d197e70bcdb"; - public const string HEADPHONES_TW_EXFIL_PELTOR_COMTAC_VI_HEADSET_COYOTE_BROWN = - "66b5f6a28ca68c6461709ed8"; - public const string HEADPHONES_WALKERS_RAZOR_DIGITAL_HEADSET = "5e4d34ca86f774264f758330"; - public const string HEADPHONES_WALKERS_XCEL_500BT_DIGITAL_HEADSET = "5f60cd6cf2bcbb675b00dac6"; - public const string HEADWEAR_6B47_RATNIKBSH_HELMET_EMR_ARCTIC_COVER = - "6745895717824b1ec20570a6"; - public const string HEADWEAR_6B47_RATNIKBSH_HELMET_EMR_COVER = "5aa7cfc0e5b5b00015693143"; - public const string HEADWEAR_6B47_RATNIKBSH_HELMET_OLIVE_DRAB = "5a7c4850e899ef00150be885"; - public const string HEADWEAR_ALTYN_BULLETPROOF_HELMET_OLIVE_DRAB = "5aa7e276e5b5b000171d0647"; - public const string HEADWEAR_ARMASIGHT_NVG_HEAD_STRAP = "5c066ef40db834001966a595"; - public const string HEADWEAR_ARMY_CAP = "59e770f986f7742cbe3164ef"; - public const string HEADWEAR_ARMY_CAP_BLACK = "603618feffd42c541047f771"; - public const string HEADWEAR_ARMY_CAP_CADPAT = "6040de02647ad86262233012"; - public const string HEADWEAR_ARMY_CAP_COYOTE_TAN = "603619720ca681766b6a0fc4"; - public const string HEADWEAR_ARMY_CAP_DESERT = "60361b0b5a45383c122086a1"; - public const string HEADWEAR_ARMY_CAP_FLORA = "60361a7497633951dc245eb4"; - public const string HEADWEAR_ARMY_CAP_UCP = "60361b5a9a15b10d96792291"; - public const string HEADWEAR_BALLISTIC_ARMOR_CO_BASTION_HELMET_ARMOR_BLACK = - "66b5f65ca7f72d197e70bcd6"; - public const string HEADWEAR_BALLISTIC_ARMOR_CO_BASTION_HELMET_MULTICAM = - "66b5f666cad6f002ab7214c2"; - public const string HEADWEAR_BALLISTIC_ARMOR_CO_BASTION_HELMET_OD_GREEN = - "66b5f661af44ca0014063c05"; - public const string HEADWEAR_BANDANA = "5b43271c5acfc432ff4dce65"; - public const string HEADWEAR_BASEBALL_CAP = "572b7d8524597762b472f9d1"; - public const string HEADWEAR_BASMACH_LEATHER_CAP = "65749ccf33fdc9c0cf06d3ca"; - public const string HEADWEAR_BEANIE = "572b7fa124597762b472f9d2"; - public const string HEADWEAR_BEAR_BASEBALL_CAP_BLACK = "5b40e5e25acfc4001a599bea"; - public const string HEADWEAR_BEAR_BASEBALL_CAP_OLIVE_DRAB = "5aa2b87de5b5b00016327c25"; - public const string HEADWEAR_BERET_BLACK = "5f60e6403b85f6263c14558c"; - public const string HEADWEAR_BERET_BLUE = "5f60e7788adaa7100c3adb49"; - public const string HEADWEAR_BERET_OLIVE_DRAB = "5f60e784f2bcbb675b00dac7"; - public const string HEADWEAR_BIG_PIPES_BANDANA = "628e4dd1f477aa12234918aa"; - public const string HEADWEAR_BNTI_LSHZ2DTM_HELMET_BLACK = "5d6d3716a4b9361bc8618872"; - public const string HEADWEAR_BOMBER_BEANIE = "60bf74184a63fc79b60c57f6"; - public const string HEADWEAR_BOSS_CAP = "60a7acf20c5cb24b01346648"; - public const string HEADWEAR_CRYE_PRECISION_AIRFRAME_HELMET_TAN = "5c17a7ed2e2216152142459c"; - public const string HEADWEAR_DED_MOROZ_HAT = "5a43943586f77416ad2f06e2"; - public const string HEADWEAR_DEVTAC_RONIN_BALLISTIC_HELMET = "66bdc28a0b603c26902b2011"; - public const string HEADWEAR_DEVTAC_RONIN_RESPIRATOR = "5b4329f05acfc47a86086aa1"; - public const string HEADWEAR_DIAMOND_AGE_BASTION_HELMET_BLACK = "5ea17ca01412a1425304d1c0"; - public const string HEADWEAR_DIAMOND_AGE_NEOSTEEL_HIGH_CUT_HELMET_BLACK = - "65709d2d21b9f815e208ff95"; - public const string HEADWEAR_DOOR_KICKER_BOONIE_HAT = "5d96141523f0ea1b7f2aacab"; - public const string HEADWEAR_ELF_HAT = "675aadf3003bb2e826030996"; - public const string HEADWEAR_EMERCOM_CAP = "5aa2b89be5b5b0001569311f"; - public const string HEADWEAR_FORT_KIVERM_BULLETPROOF_HELMET = "5645bc214bdc2d363b8b4571"; - public const string HEADWEAR_GALVION_CAIMAN_HYBRID_HELMET_GREY = "5f60b34a41e30a4ab12a6947"; - public const string HEADWEAR_GUS_BASEBALL_CAP = "65749cb8e0423b9ebe0c79c9"; - public const string HEADWEAR_HAT_WITH_HORNS = "675aae1c26dc64e17800fee6"; - public const string HEADWEAR_HIGHCOM_STRIKER_ACHHC_IIIA_HELMET_BLACK = - "5b40e3f35acfc40016388218"; - public const string HEADWEAR_HIGHCOM_STRIKER_ACHHC_IIIA_HELMET_OLIVE_DRAB = - "5b40e4035acfc47a87740943"; - public const string HEADWEAR_HIGHCOM_STRIKER_ULACH_IIIA_HELMET_BLACK = - "5b40e1525acfc4771e1c6611"; - public const string HEADWEAR_HIGHCOM_STRIKER_ULACH_IIIA_HELMET_DESERT_TAN = - "5b40e2bc5acfc40016388216"; - public const string HEADWEAR_JACK_PYKE_HUNTING_LLCS_BOONIE_HAT = "618aef6d0a5a59657e5f55ee"; - public const string HEADWEAR_JACKOLANTERN_TACTICAL_PUMPKIN_HELMET = "59ef13ca86f77445fd0e2483"; - public const string HEADWEAR_KINDA_COWBOY_HAT = "5aa2b9ede5b5b000137b758b"; - public const string HEADWEAR_KOLPAK1S_RIOT_HELMET = "59e7711e86f7746cae05fbe1"; - public const string HEADWEAR_KOTTON_BEANIE = "5bd073c986f7747f627e796c"; - public const string HEADWEAR_LEATHER_CAP = "61c18db6dfd64163ea78fbb4"; - public const string HEADWEAR_LSHZ_LIGHTWEIGHT_HELMET_OLIVE_DRAB = "5b432d215acfc4771e1c6624"; - public const string HEADWEAR_MASKA1SCH_BULLETPROOF_HELMET_CHRISTMAS_EDITION = - "6759af0f9c8a538dd70bfae6"; - public const string HEADWEAR_MASKA1SCH_BULLETPROOF_HELMET_KILLA_EDITION = - "5c0e874186f7745dc7616606"; - public const string HEADWEAR_MASKA1SCH_BULLETPROOF_HELMET_OLIVE_DRAB = - "5c091a4e0db834001d5addc8"; - public const string HEADWEAR_MILTEC_BOONIE_HAT = "5b4327aa5acfc400175496e0"; - public const string HEADWEAR_MSA_ACH_TC2001_MICH_SERIES_HELMET_OLIVE_DRAB = - "5d5e7d28a4b936645d161203"; - public const string HEADWEAR_MSA_ACH_TC2002_MICH_SERIES_HELMET_OLIVE_DRAB = - "5d5e9c74a4b9364855191c40"; - public const string HEADWEAR_MSA_GALLET_TC_800_HIGH_CUT_COMBAT_HELMET_BLACK = - "5e4bfc1586f774264f7582d3"; - public const string HEADWEAR_MTEK_FLUX_BALLISTIC_HELMET_MULTICAM_ALPINE = - "675956062f6ddfe8ff0e2806"; - public const string HEADWEAR_MTEK_FLUX_BALLISTIC_HELMET_OLIVE_DRAB = "6759655674aa5e0825040d62"; - public const string HEADWEAR_MTEK_STRIKE_BALLISTIC_HELMET_COYOTE = "67597ceea35600b4c10cea86"; - public const string HEADWEAR_MTEK_STRIKE_BALLISTIC_HELMET_COYOTEMULTICAM_ARID = - "67597d241d5a44f2f605df06"; - public const string HEADWEAR_NFM_HJELM_HELMET_HELLHOUND_GREY = "61bca7cda0eae612383adf57"; - public const string HEADWEAR_NPP_KLASS_TOR2_HELMET_OLIVE_DRAB = "65719f0775149d62ce0a670b"; - public const string HEADWEAR_OPSCORE_FAST_MT_SUPER_HIGH_CUT_HELMET_BLACK = - "5a154d5cfcdbcb001a3b00da"; - public const string HEADWEAR_OPSCORE_FAST_MT_SUPER_HIGH_CUT_HELMET_URBAN_TAN = - "5ac8d6885acfc400180ae7b0"; - public const string HEADWEAR_POLICE_CAP = "5aa2b8d7e5b5b00014028f4a"; - public const string HEADWEAR_POMPON_HAT = "5b4329075acfc400153b78ff"; - public const string HEADWEAR_PSH97_DJETA_RIOT_HELMET = "5c0d2727d174af02a012cf58"; - public const string HEADWEAR_RIVALS_2020_BEANIE = "5f994730c91ed922dd355de3"; - public const string HEADWEAR_RIVALS_2020_CAP = "5f99418230835532b445e954"; - public const string HEADWEAR_RYST_BULLETPROOF_HELMET_BLACK = "5f60c74e3b85f6263c145586"; - public const string HEADWEAR_SANTA_HAT = "5a43957686f7742a2c2f11b0"; - public const string HEADWEAR_SHPM_FIREFIGHTER_HELMET = "5c08f87c0db8340019124324"; - public const string HEADWEAR_SKI_HAT_WITH_HOLES_FOR_EYES = "5ab8f20c86f7745cdb629fb2"; - public const string HEADWEAR_SSH68_STEEL_HELMET_OLIVE_DRAB = "5c06c6a80db834001b735491"; - public const string HEADWEAR_SSSH94_SFERAS_HELMET = "5aa7d193e5b5b000171d063f"; - public const string HEADWEAR_STICH_PROFI_CHIMERA_BOONIE_HAT = "60b52e5bc7d8103275739d67"; - public const string HEADWEAR_TACKEK_FAST_MT_HELMET_REPLICA = "5ea05cf85ad9772e6624305d"; - public const string HEADWEAR_TACTICAL_FLEECE_BEANIE_TAN = "5aa2ba19e5b5b00014028f4e"; - public const string HEADWEAR_TEAM_WENDY_EXFIL_BALLISTIC_HELMET_BLACK = - "5e00c1ad86f774747333222c"; - public const string HEADWEAR_TEAM_WENDY_EXFIL_BALLISTIC_HELMET_COYOTE_BROWN = - "5e01ef6886f77445f643baa4"; - public const string HEADWEAR_TSH4ML_SOFT_TANK_CREW_HELMET = "5df8a58286f77412631087ed"; - public const string HEADWEAR_UNTAR_HELMET = "5aa7d03ae5b5b00016327db5"; - public const string HEADWEAR_USEC_BASEBALL_CAP_BLACK = "5b40e61f5acfc4001a599bec"; - public const string HEADWEAR_USEC_BASEBALL_CAP_COYOTE = "5aa2a7e8e5b5b00016327c16"; - public const string HEADWEAR_USHANKA_EAR_FLAP_HAT = "59e7708286f7742cbd762753"; - public const string HEADWEAR_UX_PRO_BEANIE = "5aa2ba46e5b5b000137b758d"; - public const string HEADWEAR_VENGEFUL_ZRYACHIYS_BALACLAVA_FOLDED = "6531119b9afebff7ff0a1769"; - public const string HEADWEAR_VULKAN5_LSHZ5_BULLETPROOF_HELMET_BLACK = - "5ca20ee186f774799474abc2"; - public const string HEADWEAR_WILCOX_SKULL_LOCK_HEAD_MOUNT = "5a16bb52fcdbcb001a3b00dc"; - public const string HEADWEAR_ZRYACHIYS_BALACLAVA_FOLDED = "636270263f2495c26f00b007"; - public const string HEADWEAR_ZSH12M_HELMET_BLACK_COVER = "5aa7e4a4e5b5b000137b76f2"; - public const string HEADWEAR_ZSH12M_HELMET_OLIVE_DRAB = "5aa7e454e5b5b0214e506fa2"; - public const string HIDEOUTAREACONTAINER_CIRCLEOFCULTISTS_STASH_1 = "66740c3739b9da6ce402ee65"; - public const string HIDEOUTAREACONTAINER_CUSTOMIZATION = "673c7b00cbf4b984b5099181"; - public const string HIDEOUTAREACONTAINER_EQUIPMENTPRESETSTAND_STASH_1 = - "65e5957613227bb7690ce9f6"; - public const string HIDEOUTAREACONTAINER_EQUIPMENTPRESETSTAND_STASH_2 = - "65e597266017f07a3204b775"; - public const string HIDEOUTAREACONTAINER_EQUIPMENTPRESETSTAND_STASH_3 = - "65e5972a13227bb7690cea07"; - public const string HIDEOUTAREACONTAINER_PLACEOFFAME_STASH_1 = "63dbd45917fff4dee40fe16e"; - public const string HIDEOUTAREACONTAINER_PLACEOFFAME_STASH_2 = "65424185a57eea37ed6562e9"; - public const string HIDEOUTAREACONTAINER_PLACEOFFAME_STASH_3 = "6542435ea57eea37ed6562f0"; - public const string HIDEOUTAREACONTAINER_WEAPONSTAND_STASH_1 = "6401c7b213d9b818bf0e7dd7"; - public const string HIDEOUTAREACONTAINER_WEAPONSTAND_STASH_2 = "64381b582bb1c5dedd0fc925"; - public const string HIDEOUTAREACONTAINER_WEAPONSTAND_STASH_3 = "64381b6e44b37a080d0245b9"; - public const string INFO_ADVANCED_ELECTRONIC_MATERIALS_TEXTBOOK = "6389c92d52123d5dd17f8876"; - public const string INFO_BAKEEZY_COOK_BOOK = "62a09e73af34e73a266d932a"; - public const string INFO_DECRYPTED_FLASH_DRIVE = "660bbc98c38b837877075e4a"; - public const string INFO_DIARY = "590c645c86f77412b01304d9"; - public const string INFO_DOCUMENTS_WITH_DECRYPTED_DATA = "660bc341c38b837877075e4c"; - public const string INFO_ENCRYPTED_FLASH_DRIVE = "660bbc47c38b837877075e47"; - public const string INFO_FLASH_DRIVE_WITH_SPECIAL_SOFTWARE = "6707d13e4e617ec94f0e5631"; - public const string INFO_INTELLIGENCE_FOLDER = "5c12613b86f7743bbe2c3f76"; - public const string INFO_LABRYS_RESEARCH_NOTES = "679b992329acd1f2f60985a5"; - public const string INFO_MILITARY_FLASH_DRIVE = "62a0a16d0b9d3c46de5b6e97"; - public const string INFO_MINEFIELD_MAP_LIGHTHOUSE = "675aaa8f7f3c962069072b27"; - public const string INFO_MINEFIELD_MAP_RESERVE = "675aaa003107dac10006332f"; - public const string INFO_MINEFIELD_MAP_WOODS = "675aaa9a3107dac100063331"; - public const string INFO_NOTE_WITH_CODE_WORD_ADAPTATION = "675aaae75a3ab8372d0b02a7"; - public const string INFO_NOTE_WITH_CODE_WORD_ARK = "675aaaf674a7619a5304c233"; - public const string INFO_NOTE_WITH_CODE_WORD_HEARTBEAT = "675aab0d6b6addc02a08f097"; - public const string INFO_NOTE_WITH_CODE_WORD_ONYX = "675aaae1dcf102478202c537"; - public const string INFO_NOTE_WITH_CODE_WORD_VORON = "675aaab74bca0b001d02f356"; - public const string INFO_SAS_DRIVE = "590c37d286f77443be3d7827"; - public const string INFO_SECURE_FLASH_DRIVE = "590c621186f774138d11ea29"; - public const string INFO_SECURE_FLASH_DRIVE_V2 = "6331ba83f2ab4f3f09502983"; - public const string INFO_SECURE_MAGNETIC_TAPE_CASSETTE = "61bf7c024770ee6f9c6b8b53"; - public const string INFO_SILICON_OPTOELECTRONIC_INTEGRATED_CIRCUITS_TEXTBOOK = - "6389c8fb46b54c634724d847"; - public const string INFO_SLIM_DIARY = "590c651286f7741e566b6461"; - public const string INFO_SSD_DRIVE = "590c392f86f77444754deb29"; - public const string INFO_TECH_MANUAL = "590c639286f774151567fa95"; - public const string INFO_TERRAGROUP_BLUE_FOLDERS_MATERIALS = "6389c8c5dbfd5e4b95197e6b"; - public const string INFO_TGVI24_LETHAL_VACCINE = "6707d0804e617ec94f0e562f"; - public const string INFO_TGVI24_TRUE_VACCINE = "6707d0bdaab679420007e01a"; - public const string INFO_TOPOGRAPHIC_SURVEY_MAPS = "62a0a124de7ac81993580542"; - public const string INFO_VIDEO_CASSETTE_WITH_THE_CYBORG_KILLER_MOVIE = - "62a09e974f842e1bd12da3f0"; - public const string INVENTORY_DEFAULT = "55d7217a4bdc2d86028b456d"; - public const string IRONSIGHT_AK_RD_ENHANCED_V2_REAR_SIGHT = "628a7b23b0f75035732dd565"; - public const string IRONSIGHT_AK_TAKTIKA_TULA_TT01_REAR_SIGHT_RAIL = "5649d9a14bdc2d79388b4580"; - public const string IRONSIGHT_AK105_REAR_SIGHT = "5ac733a45acfc400192630e2"; - public const string IRONSIGHT_AK12_REAR_SIGHT = "649ec2cec93611967b03495e"; - public const string IRONSIGHT_AK12_REAR_SIGHT_MOUNT = "649ec2da59cbb3c813042dca"; - public const string IRONSIGHT_AK545_REAR_SIGHT = "628b9471078f94059a4b9bfb"; - public const string IRONSIGHT_AK74_REAR_SIGHT = "5649b0544bdc2d1b2b8b458a"; - public const string IRONSIGHT_AK74M_REAR_SIGHT = "5ac72e475acfc400180ae6fe"; - public const string IRONSIGHT_AKM_REAR_SIGHT = "59d650cf86f7741b846413a4"; - public const string IRONSIGHT_AKMB_SYSTEM_REAR_SIGHT = "5a0eb980fcdbcb001a3b00a6"; - public const string IRONSIGHT_AKMP_SYSTEM_FRONT_SIGHT_DEVICE = "5a0f096dfcdbcb0176308b15"; - public const string IRONSIGHT_AKMP_SYSTEM_REAR_SIGHT_DEVICE = "5a0ed824fcdbcb0176308b0d"; - public const string IRONSIGHT_APB_REAR_SIGHT = "5aba639ed8ce8700182ece67"; - public const string IRONSIGHT_APS_FRONT_SIGHT = "5aba62f8d8ce87001943946b"; - public const string IRONSIGHT_APS_REAR_SIGHT = "5aba637ad8ce87001773e17f"; - public const string IRONSIGHT_AR15_COLT_A2_REAR_SIGHT = "55d5f46a4bdc2d1b198b4567"; - public const string IRONSIGHT_AR15_LEAPERS_UTG_LOW_PROFILE_A2_FRONT_SIGHT = - "55d4af3a4bdc2d972f8b456f"; - public const string IRONSIGHT_AR15_REAR_SIGHT_CARRY_HANDLE = "5ae30bad5acfc400185c2dc4"; - public const string IRONSIGHT_AS_VAL_REAR_SIGHT = "57c44e7b2459772d28133248"; - public const string IRONSIGHT_ASH12_FOLDING_FRONT_SIGHT = "5caf16a2ae92152ac412efbc"; - public const string IRONSIGHT_ASH12_REAR_SIGHT_CARRY_HANDLE = "5caf1691ae92152ac412efb9"; - public const string IRONSIGHT_BENELLI_M3_GHOST_RING_REAR_SIGHT = "625ebcef6f53af4aa66b44dc"; - public const string IRONSIGHT_CHAOS_HK_STYLE_FRONT_SIGHT = "674fe8dd362ea1f88b0e2792"; - public const string IRONSIGHT_CHAOS_HK_STYLE_REAR_SIGHT = "674fe8cf4472d471fb0f07df"; - public const string IRONSIGHT_CHIAPPA_RHINO_FRONT_SIGHT = "619f4d304c58466fe1228437"; - public const string IRONSIGHT_CHIAPPA_RHINO_REAR_SIGHT = "619f4cee4c58466fe1228435"; - public const string IRONSIGHT_CHIAPPA_RHINO_RED_FIBER_OPTIC_FRONT_SIGHT = - "619f52454c58466fe122843b"; - public const string IRONSIGHT_CHIAPPA_RHINO_RED_FIBER_OPTIC_REAR_SIGHT = - "619f4f8c4c58466fe1228439"; - public const string IRONSIGHT_DESERT_EAGLE_FRONT_SIGHT = "668fe5ec4315934ba10c6f96"; - public const string IRONSIGHT_DESERT_EAGLE_REAR_SIGHT = "668fe5e1800f0244f9036e46"; - public const string IRONSIGHT_FN_FIVESEVEN_MK2_FRONT_SIGHT = "5d3eb536a4b9363b1f22f8e2"; - public const string IRONSIGHT_FN_FIVESEVEN_MK2_REAR_SIGHT = "5d3eb4aba4b93650d64e497d"; - public const string IRONSIGHT_FN_SCAR_FLIPUP_FRONT_SIGHT = "61816fcad92c473c770215cc"; - public const string IRONSIGHT_FN_SCAR_FLIPUP_REAR_SIGHT = "61817865d3a39d50044c13a4"; - public const string IRONSIGHT_GLOCK_19X_FRONT_SIGHT = "630765777d50ff5e8a1ea718"; - public const string IRONSIGHT_GLOCK_19X_REAR_SIGHT = "630765cb962d0247b029dc45"; - public const string IRONSIGHT_GLOCK_DEAD_RINGER_SNAKE_EYE_FRONT_SIGHT = - "5a7d90eb159bd400165484f1"; - public const string IRONSIGHT_GLOCK_DEAD_RINGER_SNAKE_EYE_REAR_SIGHT = - "5a7d9122159bd4001438dbf4"; - public const string IRONSIGHT_GLOCK_FRONT_SIGHT = "5a6f58f68dc32e000a311390"; - public const string IRONSIGHT_GLOCK_REAR_SIGHT = "5a6f5d528dc32e00094b97d9"; - public const string IRONSIGHT_GLOCK_TRUGLO_TFX_FRONT_SIGHT = "5a7d9104159bd400134c8c21"; - public const string IRONSIGHT_GLOCK_TRUGLO_TFX_REAR_SIGHT = "5a7d912f159bd400165484f3"; - public const string IRONSIGHT_GLOCK_ZEV_TECH_FRONT_SIGHT = "5a71e0048dc32e000c52ecc8"; - public const string IRONSIGHT_GLOCK_ZEV_TECH_REAR_SIGHT = "5a71e0fb8dc32e00094b97f2"; - public const string IRONSIGHT_HK_416A5_FLIPUP_REAR_SIGHT = "5bb20e49d4351e3bac1212de"; - public const string IRONSIGHT_HK_G36_FRONT_SIGHT = "623166e08c43374ca1567195"; - public const string IRONSIGHT_HK_G36_REAR_SIGHT = "6231670f0b8aa5472d060095"; - public const string IRONSIGHT_HK_MP5_DRUM_REAR_SIGHT = "5926d2be86f774134d668e4e"; - public const string IRONSIGHT_HK_MP7_FLIPUP_FRONT_SIGHT = "5ba26b01d4351e0085325a51"; - public const string IRONSIGHT_HK_MP7_FLIPUP_REAR_SIGHT = "5ba26b17d4351e00367f9bdd"; - public const string IRONSIGHT_HK_USP_FRONT_SIGHT = "6194f35c18a3974e5e7421e6"; - public const string IRONSIGHT_HK_USP_REAR_SIGHT = "6194f2912d2c397d6600348d"; - public const string IRONSIGHT_HK_USP_RED_DOT_SIGHT_MOUNT = "61963a852d2c397d660036ad"; - public const string IRONSIGHT_HK_USP_TACTICAL_FRONT_SIGHT = "6194f3286db0f2477964e67d"; - public const string IRONSIGHT_HK_USP_TACTICAL_REAR_SIGHT = "6194f2df645b5d229654ad77"; - public const string IRONSIGHT_KAC_FOLDING_FRONT_SIGHT = "5c17804b2e2216152006c02f"; - public const string IRONSIGHT_KAC_FOLDING_MICRO_FRONT_SIGHT = "5dfa3d950dee1b22f862eae0"; - public const string IRONSIGHT_KAC_FOLDING_MICRO_REAR_SIGHT = "5dfa3d7ac41b2312ea33362a"; - public const string IRONSIGHT_KAC_FOLDING_REAR_SIGHT = "5c1780312e221602b66cc189"; - public const string IRONSIGHT_KRISS_DEFIANCE_LOW_PROFILE_FLIPUP_FRONT_SIGHT = - "5fb6567747ce63734e3fa1dc"; - public const string IRONSIGHT_KRISS_DEFIANCE_LOW_PROFILE_FLIPUP_REAR_SIGHT = - "5fb6564947ce63734e3fa1da"; - public const string IRONSIGHT_M14_SA_ENLARGED_MILITARY_APERTURE_REAR_SIGHT = - "5abcbb20d8ce87001773e258"; - public const string IRONSIGHT_M1911A1_FRONT_SIGHT = "5e81ee213397a21db957f6a6"; - public const string IRONSIGHT_M1911A1_REAR_SIGHT = "5e81ee4dcb2b95385c177582"; - public const string IRONSIGHT_M1A_SA_NATIONAL_MATCH_062_BLADE_FRONT_SIGHT = - "5addba3e5acfc4001669f0ab"; - public const string IRONSIGHT_M1A_SA_XS_POST_125_BLADE_FRONT_SIGHT = "5aafa49ae5b5b00015042a58"; - public const string IRONSIGHT_M45A1_NOVAK_LOMOUNT_FRONT_SIGHT = "5f3e78a7fbf956000b716b8e"; - public const string IRONSIGHT_M45A1_NOVAK_LOMOUNT_REAR_SIGHT = "5f3e7897ddc4f03b010e204a"; - public const string IRONSIGHT_M60_REAR_SIGHT = "6601265f98a610c1aa0ea637"; - public const string IRONSIGHT_M60E4_FRONT_SIGHT = "6601268bc752a02bbe05e686"; - public const string IRONSIGHT_M60E6_FRONT_SIGHT_RAIL = "660126a98f2b23af220b27e7"; - public const string IRONSIGHT_M9A3_FRONT_SIGHT = "5cadd919ae921500126a77f3"; - public const string IRONSIGHT_M9A3_REAR_SIGHT = "5cadd940ae9215051e1c2316"; - public const string IRONSIGHT_M9A3_SIGHT_MOUNT_REAR_SIGHT_RAIL = "5cadd954ae921500103bb3c2"; - public const string IRONSIGHT_MAGPUL_MBUS_GEN2_FLIPUP_FRONT_SIGHT = "5bc09a30d4351e00367fb7c8"; - public const string IRONSIGHT_MAGPUL_MBUS_GEN2_FLIPUP_FRONT_SIGHT_FDE = - "5c18b90d2e2216152142466b"; - public const string IRONSIGHT_MAGPUL_MBUS_GEN2_FLIPUP_REAR_SIGHT = "5bc09a18d4351e003562b68e"; - public const string IRONSIGHT_MAGPUL_MBUS_GEN2_FLIPUP_REAR_SIGHT_FDE = - "5c18b9192e2216398b5a8104"; - public const string IRONSIGHT_MCX_FLIPUP_FRONT_SIGHT = "5fc0fa362770a0045c59c677"; - public const string IRONSIGHT_MCX_FLIPUP_REAR_SIGHT = "5fc0fa957283c4046c58147e"; - public const string IRONSIGHT_MOSIN_RIFLE_CARBINE_REAR_SIGHT = "5bfd4c980db834001b73449d"; - public const string IRONSIGHT_MOSIN_RIFLE_FRONT_SIGHT = "5ae099875acfc4001714e593"; - public const string IRONSIGHT_MOSIN_RIFLE_REAR_SIGHT = "5ae099925acfc4001a5fc7b3"; - public const string IRONSIGHT_MOSSBERG_590_GHOST_RING_FRONT_SIGHT = "5e8708d4ae379e67d22e0102"; - public const string IRONSIGHT_MOSSBERG_590_GHOST_RING_REAR_SIGHT = "5e87114fe2db31558c75a120"; - public const string IRONSIGHT_MP9_REAR_SIGHT = "5de8fb539f98ac2bc659513a"; - public const string IRONSIGHT_MPX_FLIPUP_FRONT_SIGHT = "5894a73486f77426d259076c"; - public const string IRONSIGHT_MPX_FLIPUP_REAR_SIGHT = "5894a81786f77427140b8347"; - public const string IRONSIGHT_P226_FRONT_SIGHT = "56d5a661d2720bd8418b456b"; - public const string IRONSIGHT_P226_MEPROLIGHT_TRUDOT_NIGHT_FRONT_SIGHT = - "5c07b36c0db834002a1259e9"; - public const string IRONSIGHT_P226_MEPROLIGHT_TRUDOT_NIGHT_REAR_SIGHT = - "5c07b3850db834002330045b"; - public const string IRONSIGHT_P226_REAR_SIGHT = "56d5a77ed2720b90418b4568"; - public const string IRONSIGHT_P226_SIGHT_MOUNT_220239_REAR_SIGHT_BEARING = - "56ea7293d2720b8d4b8b45ba"; - public const string IRONSIGHT_PK_REAR_SIGHT = "6492fb8253acae0af00a29b6"; - public const string IRONSIGHT_PL15_EXTENDED_FRONT_SIGHT = "60228a850ddce744014caf69"; - public const string IRONSIGHT_PL15_EXTENDED_REAR_SIGHT = "602293f023506e50807090cb"; - public const string IRONSIGHT_PL15_FRONT_SIGHT = "60228a76d62c9b14ed777a66"; - public const string IRONSIGHT_PL15_REAR_SIGHT = "60229948cacb6b0506369e27"; - public const string IRONSIGHT_PM_REAR_SIGHT = "63c6adcfb4ba094317063742"; - public const string IRONSIGHT_PP1901_VITYAZ_REAR_SIGHT = "599860e986f7743bb57573a6"; - public const string IRONSIGHT_RPD_REAR_SIGHT = "6513f153e63f29908d0ffaba"; - public const string IRONSIGHT_RPK16_REAR_SIGHT = "5bf3f59f0db834001a6fa060"; - public const string IRONSIGHT_RPK16_REAR_SIGHT_BASE = "5beec9450db83400970084fd"; - public const string IRONSIGHT_SA58_HOLLAND_TYPE_REAR_SIGHT = "5b0bc22d5acfc47a8607f085"; - public const string IRONSIGHT_SKS_REAR_SIGHT = "574db213245977459a2f3f5d"; - public const string IRONSIGHT_SOK12_CSS_REAR_SIGHT_RAIL_MOUNT = "58272b842459774abc128d50"; - public const string IRONSIGHT_SOK12_REAR_SIGHT = "57a9b9ce2459770ee926038d"; - public const string IRONSIGHT_SV98_REAR_SIGHT = "56083e1b4bdc2dc8488b4572"; - public const string IRONSIGHT_SVDS_FRONT_SIGHT = "5c471ba12e221602b3137d76"; - public const string IRONSIGHT_SVDS_REAR_SIGHT = "5c471b7e2e2216152006e46c"; - public const string IRONSIGHT_SVT40_FRONT_SIGHT = "64119d672c6d6f921a0929fb"; - public const string IRONSIGHT_SVT40_REAR_SIGHT = "64119d90dcf48d656f0aa275"; - public const string IRONSIGHT_TRIJICON_ACOG_BACKUP_REAR_SIGHT = "5c05295e0db834001a66acbb"; - public const string IRONSIGHT_VPO101_REAR_SIGHT = "5c503b1c2e221602b21d6e9d"; - public const string IRONSIGHT_VPO209_REAR_SIGHT = "59e8977386f77415a553c453"; - public const string IRONSIGHT_VSS_REAR_SIGHT = "57838e1b2459774a256959b1"; - public const string KEY_01 = "679baa2c61f588ae2b062a24"; - public const string KEY_02 = "679baa4f59b8961f370dd683"; - public const string KEY_03 = "679baa5a59b8961f370dd685"; - public const string KEY_04 = "679baa9091966fe40408f149"; - public const string KEY_2 = "5751916f24597720a27126df"; - public const string KEY_3 = "57518f7724597720a31c09ab"; - public const string KEY_5 = "57518fd424597720c85dbaaa"; - public const string KEY_ABANDONED_FACTORY_MARKED = "63a3a93f8a56922e82001f5d"; - public const string KEY_APARTMENT_LOCKED_ROOM_SAFE = "63a39ddda3a2b32b5f6e007a"; - public const string KEY_ARCHIVE_ROOM = "63a39e49cd6db0635c1975fc"; - public const string KEY_ARIADNE_SYMBOL = "67e183377c6c2011970f3149"; - public const string KEY_ASPECT_COMPANY_OFFICE = "64ce572331dd890873175115"; - public const string KEY_BACKUP_HIDEOUT = "6398fd8ad3de3849057f5128"; - public const string KEY_BBQS43_GAS_TORCH = "67ab3d4b83869afd170fdd3f"; - public const string KEY_BELUGA_RESTAURANT_DIRECTOR = "64ccc1fe088064307e14a6f7"; - public const string KEY_CAR_DEALERSHIP_CLOSED_SECTION = "63a397d3af870e651d58e65b"; - public const string KEY_CAR_DEALERSHIP_DIRECTORS_OFFICE_ROOM = "63a399193901f439517cafb6"; - public const string KEY_CARGO_CONTAINER_MESH_DOOR = "63a39fdf1e21260da44a0256"; - public const string KEY_CHEKANNAYA_15_APARTMENT = "63a39fc0af870e651d58e6ae"; - public const string KEY_CITY_KEY_26 = "63a71f1a0aa9fb29da61c537"; - public const string KEY_CITY_KEY_X = "63a39e0f64283b5e9c56b282"; - public const string KEY_COLD_STORAGE_ROOM = "61a6446f4b5f8b70f451b166"; - public const string KEY_COMPANY_DIRECTORS_ROOM = "6761a6f90575f25e020816a4"; - public const string KEY_CONCORDIA_APARTMENT_34_ROOM = "64ccc1d4a0f13c24561edf27"; - public const string KEY_CONCORDIA_APARTMENT_63_ROOM = "64ccc1f4ff54fb38131acf27"; - public const string KEY_CONCORDIA_APARTMENT_64 = "63a71e922b25f7513905ca20"; - public const string KEY_CONCORDIA_APARTMENT_64_OFFICE_ROOM = "63a71e86b7f4570d3a293169"; - public const string KEY_CONCORDIA_APARTMENT_8_HOME_CINEMA = "64ccc1ec1779ad6ba200a137"; - public const string KEY_CONCORDIA_APARTMENT_8_ROOM = "63a71e781031ac76fe773c7d"; - public const string KEY_CONCORDIA_SECURITY_ROOM = "63a39c7964283b5e9c56b280"; - public const string KEY_CONFERENCE_ROOM = "62987cb98081af308d7558c8"; - public const string KEY_CONSTRUCTION_SITE_BUNKHOUSE = "63a39cb1c9b3aa4b61683ee2"; - public const string KEY_CONVENIENCE_STORE_STORAGE_ROOM = "61a64428a8c6aa1b795f0ba1"; - public const string KEY_CORPSE_ROOM = "679bab714e9ca6b3d80586b4"; - public const string KEY_COTTAGE_BACK_DOOR = "5a0eb6ac86f7743124037a28"; - public const string KEY_COTTAGE_SAFE = "5a0f068686f7745b0d4ea242"; - public const string KEY_DORM_GUARD_DESK = "59136a4486f774447a1ed172"; - public const string KEY_DORM_OVERSEER = "664d4b0103ef2c61246afb56"; - public const string KEY_DORM_ROOM_103 = "5938994586f774523a425196"; - public const string KEY_DORM_ROOM_104 = "591383f186f7744a4c5edcf3"; - public const string KEY_DORM_ROOM_105 = "591382d986f774465a6413a7"; - public const string KEY_DORM_ROOM_108 = "5914578086f774123569ffa4"; - public const string KEY_DORM_ROOM_110 = "59136e1e86f774432f15d133"; - public const string KEY_DORM_ROOM_114 = "59387a4986f77401cc236e62"; - public const string KEY_DORM_ROOM_118 = "5672c92d4bdc2d180f8b4567"; - public const string KEY_DORM_ROOM_203 = "5938504186f7740991483f30"; - public const string KEY_DORM_ROOM_204 = "59148c8a86f774197930e983"; - public const string KEY_DORM_ROOM_206 = "5938603e86f77435642354f4"; - public const string KEY_DORM_ROOM_214 = "5780cf942459777df90dcb72"; - public const string KEY_DORM_ROOM_218 = "5780cf9e2459777df90dcb73"; - public const string KEY_DORM_ROOM_220 = "5780cfa52459777dfb276eb1"; - public const string KEY_DORM_ROOM_303 = "593aa4be86f77457f56379f8"; - public const string KEY_DORM_ROOM_306 = "5780cda02459777b272ede61"; - public const string KEY_DORM_ROOM_308 = "5780cf722459777a5108b9a1"; - public const string KEY_DORM_ROOM_314_MARKED = "5780cf7f2459777de4559322"; - public const string KEY_DORM_ROOM_315 = "5780cf692459777de4559321"; - public const string KEY_EMERCOM_MEDICAL_UNIT = "5ad5db3786f7743568421cce"; - public const string KEY_FACTORY_EMERGENCY_EXIT = "5448ba0b4bdc2d02308b456c"; - public const string KEY_FINANCIAL_INSTITUTION_OFFICE = "63a39667c9b3aa4b61683e98"; - public const string KEY_FINANCIAL_INSTITUTION_SMALL_OFFICE = "63a71ed21031ac76fe773c7f"; - public const string KEY_FOLDING_AUTOMOBILE = "590de4a286f77423d9312a32"; - public const string KEY_FOLDING_CAR = "59136f6f86f774447a1ed173"; - public const string KEY_GAS_STATION_OFFICE = "5780d0652459777df90dcb74"; - public const string KEY_GAS_STATION_SAFE = "5a0f045e86f7745b0f0d0e42"; - public const string KEY_GAS_STATION_STORAGE_ROOM = "5913877a86f774432f15d444"; - public const string KEY_GOSHAN_CASH_REGISTER = "5ad7247386f7747487619dc3"; - public const string KEY_GRUMPYS_HIDEOUT = "664d3dd590294949fe2d81b7"; - public const string KEY_HEALTH_RESORT_EAST_WING_OFFICE_ROOM_107 = "5a0ea64786f7741707720468"; - public const string KEY_HEALTH_RESORT_EAST_WING_OFFICE_ROOM_108 = "5a0ea69f86f7741cd5406619"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_205 = "5a144bdb86f7741d374bbde0"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_206 = "5a0ee4b586f7743698200d22"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_209 = "5a0ee62286f774369454a7ac"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_213 = "5a0ee72c86f77436955d3435"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_216 = "5a0ee76686f7743698200d5c"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_222 = "5a13f24186f77410e57c5626"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_226 = "5a13f35286f77413ef1436b0"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_306 = "5a145d4786f7744cbb6f4a12"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_308 = "5a145d7b86f7744cbb6f4a13"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_310 = "5a0eec9686f77402ac5c39f2"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_313 = "5a0eecf686f7740350630097"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_314 = "5a0eed4386f77405112912aa"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_316 = "5a145ebb86f77458f1796f05"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_322 = "5a0eedb386f77403506300be"; - public const string KEY_HEALTH_RESORT_EAST_WING_ROOM_328 = "5a0eee1486f77402aa773226"; - public const string KEY_HEALTH_RESORT_MANAGEMENT_OFFICE_SAFE = "5a0f08bc86f77478f33b84c2"; - public const string KEY_HEALTH_RESORT_MANAGEMENT_WAREHOUSE_SAFE = "5a0f0f5886f7741c4e32a472"; - public const string KEY_HEALTH_RESORT_OFFICE_KEY_WITH_A_BLUE_TAPE = "5eff09cd30a7dc22fd1ddfed"; - public const string KEY_HEALTH_RESORT_UNIVERSAL_UTILITY_ROOM = "5a0ea79b86f7741d4a35298e"; - public const string KEY_HEALTH_RESORT_WEST_WING_OFFICE_ROOM_104 = "5a0dc45586f7742f6b0b73e3"; - public const string KEY_HEALTH_RESORT_WEST_WING_OFFICE_ROOM_112 = "5a0dc95c86f77452440fc675"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_203 = "5a144dfd86f77445cb5a0982"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_205 = "5a0ec6d286f7742c0b518fb5"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_207 = "5a0ec70e86f7742c0b518fba"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_216 = "5a0ee30786f774023b6ee08f"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_218 = "5a13eebd86f7746fd639aa93"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_219 = "5a13ef0686f7746e5a411744"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_220 = "5a0ee34586f774023b6ee092"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_221 = "5a0ee37f86f774023657a86f"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_222 = "5a1452ee86f7746f33111763"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_301 = "5a13ef7e86f7741290491063"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_303 = "5a0eeb1a86f774688b70aa5c"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_306 = "5a13f46386f7741dd7384b04"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_309 = "5a0eeb8e86f77461257ed71a"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_321_SAFE = "5a0eff2986f7741fd654e684"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_323 = "5a13ee1986f774794d4c14cd"; - public const string KEY_HEALTH_RESORT_WEST_WING_ROOM_325 = "5a0eebed86f77461230ddb3d"; - public const string KEY_HEP_STATION_STORAGE_ROOM = "5d8e15b686f774445103b190"; - public const string KEY_HILLSIDE_HOUSE = "61a6444b8c141d68246e2d2f"; - public const string KEY_HORSE_RESTAURANT_TOILET = "658199a0490414548c0fa83b"; - public const string KEY_HOUSING_OFFICE_FIRST_FLOOR_SAFE = "63a39e6acd6db0635c1975fe"; - public const string KEY_HOUSING_OFFICE_SECOND_FLOOR_SAFE = "63a39e5b234195315d4020bf"; - public const string KEY_IDEA_CASH_REGISTER = "5ad7242b86f7740a6a3abd43"; - public const string KEY_IRON_GATE = "63a39f6e64283b5e9c56b289"; - public const string KEY_ITY = "63a71f3b0aa9fb29da61c539"; - public const string KEY_KIBA_ARMS_INNER_GRATE_DOOR = "5addaffe86f77470b455f900"; - public const string KEY_KIBA_ARMS_OUTER_DOOR = "5ad5d7d286f77450166e0a89"; - public const string KEY_KNOSSOS_LLC_FACILITY = "679b9716597ba2ed120c3d3f"; - public const string KEY_LABYRINTH = "679bac1d61f588ae2b062a26"; - public const string KEY_LEONS_HIDEOUT = "664d3de85f2355673b09aed5"; - public const string KEY_MACHINERY = "5937ee6486f77408994ba448"; - public const string KEY_MACHINERY_TECH = "590de52486f774226a0c24c2"; - public const string KEY_MERIN_CAR_TRUNK = "61aa5b518f5e7a39b41416e2"; - public const string KEY_MILITARY_CHECKPOINT = "5913915886f774123603c392"; - public const string KEY_MISSAM_FORKLIFT = "62a09ec84f842e1bd12da3f2"; - public const string KEY_MVD_ACADEMY_ENTRANCE_HALL_GUARD_ROOM = "6582dc4b6ba9e979af6b79f4"; - public const string KEY_MYSTERIOUS_ROOM_MARKED = "64ccc25f95763a1ae376e447"; - public const string KEY_NECRUSPHARM_PHARMACY = "5ad5d64486f774079b080af8"; - public const string KEY_NEGOTIATION_ROOM = "6582dbe43a2e5248357dbe9a"; - public const string KEY_OBSERVATION_ROOM = "679baace4e9ca6b3d80586b2"; - public const string KEY_OLD_HOUSE_ROOM = "6761a6ccd9bbb27ad703c48a"; - public const string KEY_OLI_ADMINISTRATION_OFFICE = "5ad5ccd186f774446d5706e9"; - public const string KEY_OLI_CASH_REGISTER = "5ad7217186f7746744498875"; - public const string KEY_OLI_LOGISTICS_DEPARTMENT_OFFICE = "5ad5cfbd86f7742c825d6104"; - public const string KEY_OLI_OUTLET_UTILITY_ROOM = "5ad5d20586f77449be26d877"; - public const string KEY_OPERATING_ROOM = "62987da96188c076bc0d8c51"; - public const string KEY_PE_TEACHERS_OFFICE = "64ccc268c41e91416064ebc7"; - public const string KEY_PINEWOOD_HOTEL_ROOM_206 = "63a39f18c2d53c2c6839c1d3"; - public const string KEY_PINEWOOD_HOTEL_ROOM_215 = "63a39f08cd6db0635c197600"; - public const string KEY_PISTOL_CASE = "5671446a4bdc2d97058b4569"; - public const string KEY_POLICE_TRUCK_CABIN = "61aa5aed32a4743c3453d319"; - public const string KEY_PORTABLE_BUNKHOUSE = "5938144586f77473c2087145"; - public const string KEY_PORTABLE_CABIN = "5780d07a2459777de4559324"; - public const string KEY_POWER_SUBSTATION_UTILITY_CABIN = "5ad5d49886f77455f9731921"; - public const string KEY_PRIMORSKY_4648_SKYBRIDGE = "63a39e1d234195315d4020bd"; - public const string KEY_PRIMORSKY_48_APARTMENT = "63a71eb5b7f4570d3a29316b"; - public const string KEY_PRIMORSKY_AVE_APARTMENT = "6391fcf5744e45201147080f"; - public const string KEY_PUMPING_STATION_BACK_DOOR = "593858c486f774253a24cb52"; - public const string KEY_PUMPING_STATION_FRONT_DOOR = "57a349b2245977762b199ec7"; - public const string KEY_RADAR_STATION_COMMANDANT_ROOM = "62987c658081af308d7558c6"; - public const string KEY_RBAK = "5d80c78786f774403a401e3e"; - public const string KEY_RBAM = "5d80c88d86f77440556dbf07"; - public const string KEY_RBAO = "5d80c66d86f774405611c7d6"; - public const string KEY_RBBK_MARKED = "5d80c60f86f77440373c4ece"; - public const string KEY_RBGN = "5d8e3ecc86f774414c78d05e"; - public const string KEY_RBKORL = "5d8e0db586f7744450412a42"; - public const string KEY_RBKPRL = "5d8e0e0e86f774321140eb56"; - public const string KEY_RBKSM = "5d947d4e86f774447b415895"; - public const string KEY_RBMP11 = "5d80c93086f7744036212b41"; - public const string KEY_RBMP12 = "5d80c95986f77440351beef3"; - public const string KEY_RBMP13 = "5d80cbd886f77470855c26c2"; - public const string KEY_RBMP21 = "5d80ca9086f774403a401e40"; - public const string KEY_RBMP22 = "5d80cab086f77440535be201"; - public const string KEY_RBOB = "5d80c6c586f77440351beef1"; - public const string KEY_RBOP = "5d80c8f586f77440373c4ed0"; - public const string KEY_RBORB1 = "5d80ccac86f77470841ff452"; - public const string KEY_RBORB2 = "5d80ccdd86f77474f7575e02"; - public const string KEY_RBORB3 = "5d80cd1a86f77402aa362f42"; - public const string KEY_RBPKPM_MARKED = "5ede7a8229445733cb4c18e2"; - public const string KEY_RBPP = "5d80cb8786f774405611c7d9"; - public const string KEY_RBPSP1 = "5d80cb3886f77440556dbf09"; - public const string KEY_RBPSP2 = "5d95d6fa86f77424484aa5e9"; - public const string KEY_RBPSV1 = "5d80cb5686f77440545d1286"; - public const string KEY_RBPSV2 = "5d95d6be86f77424444eb3a7"; - public const string KEY_RBRH = "5da5cdcd86f774529238fb9b"; - public const string KEY_RBRLSA = "5ede7b0c6d23e5473e6e8c66"; - public const string KEY_RBRS = "5da46e3886f774653b7a83fe"; - public const string KEY_RBSMP = "5d947d3886f774447b415893"; - public const string KEY_RBST = "5d9f1fa686f774726974a992"; - public const string KEY_RBTB = "5d80c6fc86f774403a401e3c"; - public const string KEY_RBVO_MARKED = "5d80c62a86f7744036212b3f"; - public const string KEY_REAL_ESTATE_AGENCY_OFFICE_ROOM = "6582dc5740562727a654ebb1"; - public const string KEY_RELAXATION_ROOM = "6582dbf0b8d7830efc45016f"; - public const string KEY_ROGUE_USEC_BARRACK = "62a9cb937377a65d7b070cef"; - public const string KEY_ROGUE_USEC_STASH = "61a64492ba05ef10d62adcc1"; - public const string KEY_ROGUE_USEC_WORKSHOP = "61aa81fcb225ac1ead7957c3"; - public const string KEY_RUSTED_BLOODY = "64d4b23dc1b37504b41ac2b6"; - public const string KEY_SHARED_BEDROOM_MARKED = "62987dfc402c7f69bf010923"; - public const string KEY_SHATUNS_HIDEOUT = "664d3db6db5dea2bad286955"; - public const string KEY_SHTURMANS_STASH = "5d08d21286f774736e7c94c3"; - public const string KEY_SMW_CAR = "5a0eb38b86f774153b320eb0"; - public const string KEY_STAIR_LANDING = "63a39fd1c9b3aa4b61683efb"; - public const string KEY_STORE_MANAGERS = "63a39c69af870e651d58e6aa"; - public const string KEY_STORE_SAFE = "5a0f075686f7745bcc42ee12"; - public const string KEY_SUPPLY_DEPARTMENT_DIRECTORS_OFFICE = "63a39ce4cd6db0635c1975fa"; - public const string KEY_TARBANK_CASH_REGISTER_DEPARTMENT = "64ccc2111779ad6ba200a139"; - public const string KEY_TARCONE_DIRECTORS_OFFICE = "5780d0532459777a5108b9a2"; - public const string KEY_TERRAGROUP_LABS_ARSENAL_STORAGE_ROOM = "5c1f79a086f7746ed066fb8f"; - public const string KEY_TERRAGROUP_LABS_MANAGERS_OFFICE_ROOM = "5c1e2a1e86f77431ea0ea84c"; - public const string KEY_TERRAGROUP_LABS_WEAPON_TESTING_AREA = "5c1e2d1f86f77431e9280bee"; - public const string KEY_TERRAGROUP_MEETING_ROOM = "64ccc206793ca11c8f450a38"; - public const string KEY_TERRAGROUP_SCIENCE_OFFICE = "658199aa38c79576a2569e13"; - public const string KEY_TERRAGROUP_SECURITY_ARMORY = "64ccc24de61ea448b507d34d"; - public const string KEY_TORTURE_ROOM = "679baae891966fe40408f14c"; - public const string KEY_TRAILER_PARK_PORTABLE_CABIN = "5913611c86f77479e0084092"; - public const string KEY_ULTRA_MEDICAL_STORAGE = "5e42c71586f7747f245e1343"; - public const string KEY_UNDERGROUND_PARKING_UTILITY_ROOM = "658199972dc4e60f6d556a2f"; - public const string KEY_UNITY_CREDIT_BANK_ARCHIVE_ROOM = "6582dc63cafcd9485374dbc5"; - public const string KEY_UNITY_CREDIT_BANK_CASH_REGISTER = "6581998038c79576a2569e11"; - public const string KEY_UNKNOWN = "593962ca86f774068014d9af"; - public const string KEY_USEC_COTTAGE_FIRST_SAFE = "61aa5b7db225ac1ead7957c1"; - public const string KEY_USEC_COTTAGE_ROOM = "66265d7be65f224b2e17c6aa"; - public const string KEY_USEC_COTTAGE_SECOND_SAFE = "61aa5ba8018e9821b7368da9"; - public const string KEY_USEC_STASH = "5da743f586f7744014504f72"; - public const string KEY_VALVE_HANDWHEEL = "678fa929819ddc4c350c0317"; - public const string KEY_VAZ_CAR = "5913651986f774432f15d132"; - public const string KEY_VORONS_HIDEOUT = "664d3ddfdda2e85aca370d75"; - public const string KEY_WATER_TREATMENT_PLANT_STORAGE_ROOM = "62987e26a77ec735f90a2995"; - public const string KEY_WEAPON_SAFE = "59148f8286f7741b951ea113"; - public const string KEY_WEATHER_STATION_SAFE = "5a0f006986f7741ffd2fe484"; - public const string KEY_XRAY_ROOM = "64ccc246ff54fb38131acf29"; - public const string KEY_YOTOTA_CAR = "591ae8f986f77406f854be45"; - public const string KEY_ZB014 = "591afe0186f77431bd616a11"; - public const string KEY_ZMEISKY_3_APARTMENT_8 = "63a39dfe3901f439517cafba"; - public const string KEY_ZMEISKY_5_APARTMENT_20 = "63a39df18a56922e82001f25"; - public const string KEYCARD_LABRYS_ACCESS = "679b9819a2f2dd4da9023512"; - public const string KEYCARD_OBJECT_11SR = "5e42c81886f7742a01529f57"; - public const string KEYCARD_OBJECT_21WS = "5e42c83786f7742a021fdf3c"; - public const string KEYCARD_OFFBLACK = "5751961824597720a31c09ac"; - public const string KEYCARD_TERRAGROUP_LABS_ACCESS = "5c94bbff86f7747ee735c08f"; - public const string KEYCARD_TERRAGROUP_LABS_KEYCARD_BLACK = "5c1d0f4986f7744bb01837fa"; - public const string KEYCARD_TERRAGROUP_LABS_KEYCARD_BLUE = "5c1d0c5f86f7744bb2683cf0"; - public const string KEYCARD_TERRAGROUP_LABS_KEYCARD_GREEN = "5c1d0dc586f7744baf2e7b79"; - public const string KEYCARD_TERRAGROUP_LABS_KEYCARD_RED = "5c1d0efb86f7744baf2e7b7b"; - public const string KEYCARD_TERRAGROUP_LABS_KEYCARD_VIOLET = "5c1e495a86f7743109743dfb"; - public const string KEYCARD_TERRAGROUP_LABS_KEYCARD_YELLOW = "5c1d0d6d86f7744bb2683e1f"; - public const string KEYCARD_TERRAGROUP_LABS_RESIDENTIAL_UNIT = "6711039f9e648049e50b3307"; - public const string KEYCARD_TERRAGROUP_STORAGE_ROOM = "66acd6702b17692df20144c0"; - public const string KEYCARD_WITH_A_BLUE_MARKING = "5efde6b4f5448336730dbd61"; - public const string KNIFE_6KH5_BAYONET = "5bffdc370db834001d23eca8"; - public const string KNIFE_AKULA_PUSH_DAGGER = "674d90b55704568fe60bc8f5"; - public const string KNIFE_ANTIQUE_AXE = "5bc9c1e2d4351e00367fbcf0"; - public const string KNIFE_APOK_TACTICAL_WASTELAND_GLADIUS = "664a5428d5e33a713b622379"; - public const string KNIFE_BARS_A2607_95KH18 = "57e26fc7245977162a14b800"; - public const string KNIFE_BARS_A2607_DAMASCUS = "57e26ea924597715ca604a09"; - public const string KNIFE_CAMPER_AXE = "5c012ffc0db834001d23f03f"; - public const string KNIFE_CHAINED_LABRYS = "679ba90d269ddfea47012159"; - public const string KNIFE_CRASH_AXE = "5bffe7930db834001b734a39"; - public const string KNIFE_CULTIST = "5fc64ea372b0dd78d51159dc"; - public const string KNIFE_ER_FULCRUM_BAYONET = "54491bb74bdc2d09088b4567"; - public const string KNIFE_FREEMAN_CROWBAR = "5c07df7f0db834001b73588a"; - public const string KNIFE_INFECTIOUS_STRIKE = "670ad7f1ad195290cd00da7a"; - public const string KNIFE_KIBA_ARMS_TACTICAL_TOMAHAWK = "57cd379a24597778e7682ecf"; - public const string KNIFE_MILLER_BROS_BLADES_M2_TACTICAL_SWORD = "5bffdd7e0db834001b734a1a"; - public const string KNIFE_MPL50_ENTRENCHING_TOOL = "5bead2e00db834001c062938"; - public const string KNIFE_OLD_HAND_SCYTHE = "63495c500c297e20065a08b1"; - public const string KNIFE_PRTARAN_POLICE_BATON = "6540d2162ae6d96b540afcaf"; - public const string KNIFE_RED_REBEL_ICE_PICK = "5c0126f40db834002a125382"; - public const string KNIFE_SOG_VOODOO_HAWK_TACTICAL_TOMAHAWK = "63920105a83e15700a00f168"; - public const string KNIFE_SP8_SURVIVAL_MACHETE = "5c010e350db83400232feec7"; - public const string KNIFE_SUPERFORS_DB_2020_DEAD_BLOW_HAMMER = "6087e570b998180e9f76dc24"; - public const string KNIFE_UNITED_CUTLERY_M48_TACTICAL_KUKRI = "65ca457b4aafb5d7fc0dcb5d"; - public const string KNIFE_UVSR_TAIGA1_SURVIVAL_MACHETE = "601948682627df266209af05"; - public const string LAUNCHER_GP25_KOSTYOR_40MM_UNDERBARREL_GRENADE = "62e7e7bbe6da9612f743f1e0"; - public const string LAUNCHER_GP34_40MM_UNDERBARREL_GRENADE = "5648b62b4bdc2d9d488b4585"; - public const string LAUNCHER_M203_40MM_UNDERBARREL_GRENADE = "6357c98711fb55120211f7e1"; - public const string LOCKABLECONTAINER_PISTOL_CASE = "567143bf4bdc2d1a0f8b4567"; - public const string LOOTCONTAINER_AIRDROP_COMMON_SUPPLY_CRATE = "6223349b3136504a544d1608"; - public const string LOOTCONTAINER_AIRDROP_MEDICAL_CRATE = "622334c873090231d904a9fc"; - public const string LOOTCONTAINER_AIRDROP_SUPPLY_CRATE = "622334fa3136504a544d160c"; - public const string LOOTCONTAINER_AIRDROP_SUPPLY_CRATE_2 = "61a89e812cc17d60cc5f9879"; - public const string LOOTCONTAINER_AIRDROP_TECHNICAL_SUPPLY_CRATE_EVENT_1 = - "66da1b49099cf6adcc07a36b"; - public const string LOOTCONTAINER_AIRDROP_TECHNICAL_SUPPLY_CRATE_EVENT_2 = - "66da1b546916142b3b022777"; - public const string LOOTCONTAINER_AIRDROP_TECHNICAL_SUPPLY_CRATE_EVENT_3 = - "61a89e5445a2672acf66c877"; - public const string LOOTCONTAINER_AIRDROP_WEAPON_CRATE = "6223351bb5d97a7b2c635ca7"; - public const string LOOTCONTAINER_BANK_CASH_REGISTER = "64d116f41a9c6143a956127d"; - public const string LOOTCONTAINER_BANK_SAFE_3X3 = "66acff0a1d8e1083b303f5af"; - public const string LOOTCONTAINER_BANK_SAFE_4X4 = "64d11702dd0cd96ab82c3280"; - public const string LOOTCONTAINER_BOX_FULL_OF_JUNK = "566966cd4bdc2d0c4c8b4578"; - public const string LOOTCONTAINER_BURIED_BARREL_CACHE = "5d6d2bb386f774785b07a77a"; - public const string LOOTCONTAINER_CASH_REGISTER = "578f879c24597735401e6bc6"; - public const string LOOTCONTAINER_CASH_REGISTER_TAR22 = "5ad74cf586f774391278f6f0"; - public const string LOOTCONTAINER_CIVILIAN_BODY = "658420d8085fea07e674cdb6"; - public const string LOOTCONTAINER_COMMON_FUND_STASH = "5d07b91b86f7745a077a9432"; - public const string LOOTCONTAINER_DEAD_SCAV = "5909e4b686f7747f5b744fa4"; - public const string LOOTCONTAINER_DEAD_SCAV_4X4_2 = "67adf5752fc5ee84020a9940"; - public const string LOOTCONTAINER_DRAWER = "578f87b7245977356274f2cd"; - public const string LOOTCONTAINER_DUFFLE_BAG = "578f87a3245977356274f2cb"; - public const string LOOTCONTAINER_DUFFLE_BAG_ADV = "61aa1e9a32a4743c3453d2cf"; - public const string LOOTCONTAINER_FESTIVE_AIRDROP_SUPPLY_CRATE = "67614e3a6a90e4f10b0b140d"; - public const string LOOTCONTAINER_GRENADE_BOX = "67adf4eb110ba15da90c6413"; - public const string LOOTCONTAINER_GRENADE_BOX_3X2_2 = "5909d36d86f774660f0bb900"; - public const string LOOTCONTAINER_GROUND_CACHE = "5d6d2b5486f774785c2ba8ea"; - public const string LOOTCONTAINER_JACKET = "578f8778245977358849a9b5"; - public const string LOOTCONTAINER_JACKET_114KEY = "59387ac686f77401442ddd61"; - public const string LOOTCONTAINER_JACKET_204KEY = "5914944186f774189e5e76c2"; - public const string LOOTCONTAINER_JACKET_2X2_2 = "67adf4a95247ac91530fcec7"; - public const string LOOTCONTAINER_JACKET_MACHINERYKEY = "5937ef2b86f77408a47244b3"; - public const string LOOTCONTAINER_LAB_TECHNICIAN_BODY = "6582e6c6edf14c4c6023adf2"; - public const string LOOTCONTAINER_LONG_WEAPON_BOX = "61aa1e6984ea0800645777f9"; - public const string LOOTCONTAINER_MEDBAG_SMU06 = "5909d24f86f77466f56e6855"; - public const string LOOTCONTAINER_MEDBAG_SMU06_ADV = "61aa1ead84ea0800645777fd"; - public const string LOOTCONTAINER_MEDCASE = "5909d4c186f7746ad34e805a"; - public const string LOOTCONTAINER_MEDICAL_SUPPLY_CRATE = "5d6fe50986f77449d97f7463"; - public const string LOOTCONTAINER_PC_BLOCK = "59139c2186f77411564f8e42"; - public const string LOOTCONTAINER_PLASTIC_SUITCASE = "5c052cea86f7746b2101e8d8"; - public const string LOOTCONTAINER_PMC_BODY = "6582e6d7b14c3f72eb071420"; - public const string LOOTCONTAINER_RATION_SUPPLY_CRATE = "5d6fd13186f77424ad2a8c69"; - public const string LOOTCONTAINER_SAFE = "578f8782245977354405a1e3"; - public const string LOOTCONTAINER_SCAV_BODY = "6582e6bb0c3b9823fe6d1840"; - public const string LOOTCONTAINER_TECHNICAL_SUPPLY_CRATE = "67adf5f7adc1f43b0702b826"; - public const string LOOTCONTAINER_TECHNICAL_SUPPLY_CRATE_5X5_2 = "5d6fd45b86f774317075ed43"; - public const string LOOTCONTAINER_TOOLBOX = "67adf54d1c58bd68b2002ff0"; - public const string LOOTCONTAINER_TOOLBOX_4X3_2 = "5909d50c86f774659e6aaebe"; - public const string LOOTCONTAINER_WEAPON_BOX_4X4 = "5909d7cf86f77470ee57d75a"; - public const string LOOTCONTAINER_WEAPON_BOX_5X2 = "5909d5ef86f77467974efbd8"; - public const string LOOTCONTAINER_WEAPON_BOX_5X5 = "5909d89086f77472591234a0"; - public const string LOOTCONTAINER_WEAPON_BOX_6X3 = "5909d76c86f77471e53d2adf"; - public const string LOOTCONTAINER_WOODEN_AMMO_BOX = "67adf4b81c58bd68b2002fec"; - public const string LOOTCONTAINER_WOODEN_AMMO_BOX_3X3_2 = "5909d45286f77465a8136dc6"; - public const string LOOTCONTAINER_WOODEN_CRATE = "578f87ad245977356274f2cc"; - public const string LOOTCONTAINER_WOODEN_CRATE_5X2_2 = "67adf4db515e3dd542077a1d"; - public const string MACHINEGUN_AGS30_30X29MM_AUTOMATIC_GRENADE_LAUNCHER = - "5d52cc5ba4b9367408500062"; - public const string MACHINEGUN_DEGTYAREV_RPD_762X39_MACHINE_GUN = "6513ef33e06849f06c0957ca"; - public const string MACHINEGUN_DEGTYAREV_RPDN_762X39_MACHINE_GUN = "65268d8ecb944ff1e90ea385"; - public const string MACHINEGUN_KALASHNIKOV_PKM_762X54R_MACHINE_GUN = "64637076203536ad5600c990"; - public const string MACHINEGUN_KALASHNIKOV_PKP_762X54R_INFANTRY_MACHINE_GUN = - "64ca3d3954fc657e230529cc"; - public const string MACHINEGUN_KALASHNIKOV_PKTM_762X54R_MODERNIZED_TANK_MACHINE_GUN = - "657857faeff4c850222dff1b"; - public const string MACHINEGUN_NSV_UTYOS_127X108_HEAVY_MACHINE_GUN = "5cdeb229d7f00c000e7ce174"; - public const string MACHINEGUN_RPK16_545X39_LIGHT_MACHINE_GUN = "5beed0f50db834001c062b12"; - public const string MACHINEGUN_US_ORDNANCE_M60E4_762X51_LIGHT_MACHINE_GUN = - "65fb023261d5829b2d090755"; - public const string MACHINEGUN_US_ORDNANCE_M60E6_762X51_LIGHT_MACHINE_GUN = - "661ceb1b9311543c7104149b"; - public const string MACHINEGUN_US_ORDNANCE_M60E6_762X51_LIGHT_MACHINE_GUN_FDE = - "661cec09b2c6356b4d0c7a36"; - public const string MAGAZINE_127X108_100_100RND = "5cffa483d7ad1a049e54ef1c"; - public const string MAGAZINE_127X33_DE_7RND = "668fe5c5f35310705d02b696"; - public const string MAGAZINE_127X55_ASH12_10RND = "5caf1041ae92157c28402e3f"; - public const string MAGAZINE_127X55_ASH12_20RND = "5caf1109ae9215753c44119f"; - public const string MAGAZINE_127X55_RSH12_CYL_5RND = "633ec6ee025b096d320a3b15"; - public const string MAGAZINE_12G_255_CYL_5RND = "60dc519adf4c47305f6d410d"; - public const string MAGAZINE_12G_590A1X8_8RND = "5e87080c81c4ed43e83cefda"; - public const string MAGAZINE_12G_AA12_20RND = "6709133fa532466d5403fb7c"; - public const string MAGAZINE_12G_AA12_8RND = "66ffaab91f7492c901027bb8"; - public const string MAGAZINE_12G_M3X11_11RND = "625ff3046d721f05d93bf2ee"; - public const string MAGAZINE_12G_M3X13_13RND = "625ff31daaaa8c1130599f64"; - public const string MAGAZINE_12G_M3X5_5RND = "625ff2ccb8c587128c1a01dd"; - public const string MAGAZINE_12G_M3X7_7RND = "6259bdcabd28e4721447a2aa"; - public const string MAGAZINE_12G_M3X9_9RND = "625ff2eb9f5537057932257d"; - public const string MAGAZINE_12G_M870X10_10RND = "5a78832ec5856700155a6ca3"; - public const string MAGAZINE_12G_M870X4_4RND = "5a7882dcc5856700177af662"; - public const string MAGAZINE_12G_M870X7_7RND = "5a78830bc5856700137e4c90"; - public const string MAGAZINE_12G_MD_ARMS_20RND = "674fe8f6f34d761ab8020cc8"; - public const string MAGAZINE_12G_MP133X6_6RND = "55d484b44bdc2d1d4e8b456d"; - public const string MAGAZINE_12G_MP133X8_8RND = "55d485804bdc2d8c2f8b456b"; - public const string MAGAZINE_12G_MP153X4_4RND = "56deee15d2720bee328b4567"; - public const string MAGAZINE_12G_MP153X5_5RND = "5882163e24597758206fee8c"; - public const string MAGAZINE_12G_MP153X6_6RND = "5882163824597757561aa922"; - public const string MAGAZINE_12G_MP153X7_7RND = "5882163224597757561aa920"; - public const string MAGAZINE_12G_MP153X8_8RND = "56deeefcd2720bc8328b4568"; - public const string MAGAZINE_12G_MP155X6_6RND = "6076c87f232e5a31c233d50e"; - public const string MAGAZINE_12G_POWERMAG_20RND = "5cf8f3b0d7f00c00217872ef"; - public const string MAGAZINE_12G_SAI02_10RND = "5a966f51a2750c00156aacf6"; - public const string MAGAZINE_12G_SB5_5RND = "57616a9e2459773c7a400234"; - public const string MAGAZINE_20G_2001_SB3X2_2RND = "5a38ee51c4a282000c5a955c"; - public const string MAGAZINE_20G_SB3X4_4RND = "5a38ed75c4a28232996e40c6"; - public const string MAGAZINE_20G_SB3X5_5RND = "5c6161fb2e221600113fbde5"; - public const string MAGAZINE_20X1MM_DRUM_20RND = "66015dc4aaad2f54cb04c56a"; - public const string MAGAZINE_23X75_KS23MX3_3RND = "5f647d9f8499b57dc40ddb93"; - public const string MAGAZINE_30X29_AGS30_99RND = "5d52d479a4b936793d58c76b"; - public const string MAGAZINE_366TKM_6610_20RND = "587df583245977373c4f1129"; - public const string MAGAZINE_366TKM_6L10_30RND = "5a01c29586f77474660c694c"; - public const string MAGAZINE_366TKM_6P2_BAK_40RND = "5b1fb3e15acfc4001637f068"; - public const string MAGAZINE_366TKM_6P2SB11_40RND = "59e5f5a486f7746c530b3ce2"; - public const string MAGAZINE_366TKM_AK_AL_10RND = "5b1fd4e35acfc40018633c39"; - public const string MAGAZINE_366TKM_AK_RIBBED_10RND = "59e5d83b86f7745aed03d262"; - public const string MAGAZINE_366TKM_AK103_30RND = "5ac66bea5acfc43b321d4aec"; - public const string MAGAZINE_366TKM_AK30_30RND = "59fafc5086f7740dbe19f6c3"; - public const string MAGAZINE_366TKM_AK30_FDE_30RND = "59fafc9386f774067d462453"; - public const string MAGAZINE_366TKM_AK55_30RND = "59d625f086f774661516605d"; - public const string MAGAZINE_366TKM_AKA16_73RND = "5c6175362e221600133e3b94"; - public const string MAGAZINE_366TKM_AKMS_AL_30RND = "5a0060fc86f7745793204432"; - public const string MAGAZINE_366TKM_GEN_M3_20RND = "64b9cf0ac12b9c38db26923a"; - public const string MAGAZINE_366TKM_GEN_M3_30RND = "59d6272486f77466146386ff"; - public const string MAGAZINE_366TKM_GEN_M3_BANANA_30RND = "5e21a3c67e40bd02257a008a"; - public const string MAGAZINE_366TKM_KCI_SKS_75RND = "61695095d92c473c7702147a"; - public const string MAGAZINE_366TKM_MOLOT_75RND = "5cbdc23eae9215001136a407"; - public const string MAGAZINE_366TKM_SKS_AALVX_35RND = "5c5970672e221602b21d7855"; - public const string MAGAZINE_366TKM_SKS_INT_10RND = "587df3a12459772c28142567"; - public const string MAGAZINE_366TKM_ULTIMAG_30RND = "6272874a6c47bd74f92e2087"; - public const string MAGAZINE_366TKM_VPO215_4RND = "5de653abf76fdc1ce94a5a2a"; - public const string MAGAZINE_366TKM_X47_762_50RND = "5cfe8010d7ad1a59283b14c6"; - public const string MAGAZINE_40X46_MSGL_0RND = "627bce33f21bc425b06ab967"; - public const string MAGAZINE_45ACP_1911_7RND = "5e81c4ca763d9f754677befa"; - public const string MAGAZINE_45ACP_G30_MAGEX_30RND = "5fb651dc85f90547f674b6f4"; - public const string MAGAZINE_45ACP_GLOCK_45_13RND = "5fb651b52b1b027b1f50bcff"; - public const string MAGAZINE_45ACP_MECGAR_11RND = "5ef3448ab37dfd6af863525c"; - public const string MAGAZINE_45ACP_UMP_45_25RND = "5fc3e466187fea44d52eda90"; - public const string MAGAZINE_45ACP_USP45_12RND = "6193d338de3cdf1d2614a6fc"; - public const string MAGAZINE_45ACP_USP45T_12RND = "6193d3149fb0c665d5490e32"; - public const string MAGAZINE_45ACP_USP45T_999RND = "671d8b8c0959c721a50ca838"; - public const string MAGAZINE_45ACP_WILSON_7RND = "5f3e77b26cda304dcc634057"; - public const string MAGAZINE_45ACP_WILSON_999RND = "671d8b38b769f0d88c0950f8"; - public const string MAGAZINE_46X30_MP7_20RND = "5ba264f6d4351e0034777d52"; - public const string MAGAZINE_46X30_MP7_30RND = "5ba2657ed4351e0035628ff2"; - public const string MAGAZINE_46X30_MP7_40RND = "5ba26586d4351e44f824b340"; - public const string MAGAZINE_545X39_6L18_45RND = "564ca9df4bdc2d35148b4569"; - public const string MAGAZINE_545X39_6L20_30RND = "564ca99c4bdc2d16268b4589"; - public const string MAGAZINE_545X39_6L23_30RND = "55d480c04bdc2d1d4e8b456a"; - public const string MAGAZINE_545X39_6L23_PLUM_30RND = "5cbdaf89ae9215000e5b9c94"; - public const string MAGAZINE_545X39_6L26_45RND = "55d481904bdc2d8c2f8b456a"; - public const string MAGAZINE_545X39_6L31_60RND = "55d482194bdc2d1d4e8b456b"; - public const string MAGAZINE_545X39_AK12_30RND = "5bed61680db834001d2c45ab"; - public const string MAGAZINE_545X39_AK12_OLD_30RND = "649ec30cb013f04a700e60fb"; - public const string MAGAZINE_545X39_GEN_M3_30RND = "5aaa4194e5b5b055d06310a5"; - public const string MAGAZINE_545X39_RPK16_DRUM_95RND = "5bed625c0db834001c062946"; - public const string MAGAZINE_545X39_SAIGA_545_10RND = "55d4837c4bdc2d1d4e8b456c"; - public const string MAGAZINE_545X39_SAIGA_545_20RND = "64b9e265c94d0d15c5027e35"; - public const string MAGAZINE_556X45_6L29_30RND = "5ac66c5d5acfc4001718d314"; - public const string MAGAZINE_556X45_AR_CMAG_100RND = "6761765f1f08ed5e8800b7a6"; - public const string MAGAZINE_556X45_AUG_10RND = "630e1adbbd357927e4007c09"; - public const string MAGAZINE_556X45_AUG_30RND = "62e7c98b550c8218d602cbb4"; - public const string MAGAZINE_556X45_AUG_42RND = "630e295c984633f1fb0e7c30"; - public const string MAGAZINE_556X45_BATTLEMAG_30RND = "5c6d46132e221601da357d56"; - public const string MAGAZINE_556X45_C10_AK_30RND = "5c0548ae0db834001966a3c2"; - public const string MAGAZINE_556X45_G36_30RND = "62307b7b10d2321fa8741921"; - public const string MAGAZINE_556X45_GEN_M3_10RND = "5aaa5e60e5b5b000140293d6"; - public const string MAGAZINE_556X45_GEN_M3_20RND = "5448c1d04bdc2dff2f8b4569"; - public const string MAGAZINE_556X45_GEN_M3_30RND = "5aaa5dfee5b5b000140293d3"; - public const string MAGAZINE_556X45_GEN_M3_40RND = "544a378f4bdc2d30388b4567"; - public const string MAGAZINE_556X45_GEN_M3_AIRSOFT_30RND = "6241c2c2117ad530666a5108"; - public const string MAGAZINE_556X45_GEN_M3_FDE_30RND = "5d1340b3d7ad1a0b52682ed7"; - public const string MAGAZINE_556X45_GEN_M3_FDE_40RND = "5d1340bdd7ad1a0e8d245aab"; - public const string MAGAZINE_556X45_GEN_M3_WINDOW_30RND = "55802d5f4bdc2dac148b458e"; - public const string MAGAZINE_556X45_GEN_M3_WINDOW_FDE_30RND = "5d1340cad7ad1a0b0b249869"; - public const string MAGAZINE_556X45_HK_POLY_30RND = "5c6d42cb2e2216000e69d7d1"; - public const string MAGAZINE_556X45_HK_STEEL_30RND = "5c05413a0db834001c390617"; - public const string MAGAZINE_556X45_MAG5100_100RND = "5c6592372e221600133e47d7"; - public const string MAGAZINE_556X45_MAG560_60RND = "544a37c44bdc2d25388b4567"; - public const string MAGAZINE_556X45_MK16_30RND = "61840bedd92c473c77021635"; - public const string MAGAZINE_556X45_MK16_FDE_30RND = "61840d85568c120fdd2962a5"; - public const string MAGAZINE_556X45_PM_GEN2_30RND = "5c6d450c2e221600114c997d"; - public const string MAGAZINE_556X45_PMAG_D60_60RND = "59c1383d86f774290a37e0ca"; - public const string MAGAZINE_556X45_STANAG_30RND = "55d4887d4bdc2d962f8b4570"; - public const string MAGAZINE_57X28_57_20RND = "5d3eb5eca4b9363b1f22f8e4"; - public const string MAGAZINE_57X28_P90_50RND = "5cc70093e4a949033c734312"; - public const string MAGAZINE_762X25TT_PPSH_35RND = "5ea034eb5aad6446a939737b"; - public const string MAGAZINE_762X25TT_PPSH_71RND = "5ea034f65aad6446a939737e"; - public const string MAGAZINE_762X25TT_TT105_8RND = "571a29dc2459771fb2755a6a"; - public const string MAGAZINE_762X25TT_TT105_999RND = "671d85439ae8365d69117ba6"; - public const string MAGAZINE_762X35_MOLOT_223_45RND = "6764139c44b3c96e7b0e2f7b"; - public const string MAGAZINE_762X39_BUBEN_100RND = "6513f0a194c72326990a3868"; - public const string MAGAZINE_762X51_417_762_10RND = "617130016c780c1e710c9a24"; - public const string MAGAZINE_762X51_417_762_20RND = "617131a4568c120fdd29482d"; - public const string MAGAZINE_762X51_AA70_10RND = "5d25af8f8abbc3055079fec5"; - public const string MAGAZINE_762X51_AA70_20RND = "5cf12a15d7f00c05464b293f"; - public const string MAGAZINE_762X51_AICS_10RND = "5d25a6538abbc306c62e630d"; - public const string MAGAZINE_762X51_AICS_5RND = "5d25a4a98abbc30b917421a4"; - public const string MAGAZINE_762X51_ASSAULT_BOX_100RND = "660ea4453786cc0af808a1be"; - public const string MAGAZINE_762X51_AXMC_308_10RND = "628120f210e26c1f344e6558"; - public const string MAGAZINE_762X51_DVL10_10RND = "5888988e24597752fe43a6fa"; - public const string MAGAZINE_762X51_FEED_TRAY_POUCH_100RND = "660ea4ba5a58d057b009efab"; - public const string MAGAZINE_762X51_KAC_762_10RND = "5df8f535bb49d91fb446d6b0"; - public const string MAGAZINE_762X51_KAC_762_20RND = "5df8f541c41b2312ea3335e3"; - public const string MAGAZINE_762X51_L1A1_30RND = "5b7d37845acfc400170e2f87"; - public const string MAGAZINE_762X51_L7AWM_20RND = "65293c38fc460e50a509cb25"; - public const string MAGAZINE_762X51_L7AWM_25RND = "65293c7a17e14363030ad308"; - public const string MAGAZINE_762X51_M14_30RND = "5addcce35acfc4001a5fc635"; - public const string MAGAZINE_762X51_M1A_10RND = "64b9e2037fdfb81df81e3c25"; - public const string MAGAZINE_762X51_M1A_20RND = "5aaf8a0be5b5b00015693243"; - public const string MAGAZINE_762X51_MDT_12RND = "5d25a6a48abbc306c62e6310"; - public const string MAGAZINE_762X51_MK17_20RND = "618168dc8004cc50514c34fc"; - public const string MAGAZINE_762X51_MK17_20RND_FDE = "6183d53f1cb55961fa0fdcda"; - public const string MAGAZINE_762X51_PMAG_762_20RND = "5a3501acc4a282000d72293a"; - public const string MAGAZINE_762X51_PMAG_AC_10RND = "5d25a7b88abbc3054f3e60bc"; - public const string MAGAZINE_762X51_PMAG_AC_5RND = "5ce69cbad7f00c00b61c5098"; - public const string MAGAZINE_762X51_SA58_MMW_20RND = "5b7c2d1d5acfc43d1028532a"; - public const string MAGAZINE_762X51_SA58FAL_10RND = "5b7bef1e5acfc43d82528402"; - public const string MAGAZINE_762X51_SA58FAL_20RND = "5b099ac65acfc400186331e1"; - public const string MAGAZINE_762X51_SA58FAL_30RND = "5b7bef5d5acfc43bca7067a3"; - public const string MAGAZINE_762X51_T5000M_5RND = "5df25b6c0b92095fd441e4cf"; - public const string MAGAZINE_762X51_VPO101_10RND = "5c503ad32e2216398b5aada2"; - public const string MAGAZINE_762X51_VPO101_5RND = "5c503ac82e221602b21d6e9a"; - public const string MAGAZINE_762X51_WYATT_10RND = "5bfeaa0f0db834001b734927"; - public const string MAGAZINE_762X51_WYATT_5RND = "5bfea7ad0db834001c38f1ee"; - public const string MAGAZINE_762X51_X14_762_50RND = "5addccf45acfc400185c2989"; - public const string MAGAZINE_762X51_X25_50RND = "6761770e48fa5c377e06fc3c"; - public const string MAGAZINE_762X51_XFAL_50RND = "5b7bef9c5acfc43d102852ec"; - public const string MAGAZINE_762X54R_AA762R_02_10RND = "5bae13ded4351e44f824bf38"; - public const string MAGAZINE_762X54R_AVT_15RND = "641074a07fd350b98c0b3f96"; - public const string MAGAZINE_762X54R_MOSIN_5RND = "5ae0973a5acfc4001562206c"; - public const string MAGAZINE_762X54R_PK_100RND = "646372518610c40fc20204e8"; - public const string MAGAZINE_762X54R_PKTM_250RND = "65785979bec02a3fe82c181e"; - public const string MAGAZINE_762X54R_SV98_10RND = "559ba5b34bdc2d1f1a8b4582"; - public const string MAGAZINE_762X54R_SVD_10RND = "5c471c442e221602b542a6f8"; - public const string MAGAZINE_762X54R_SVD_20RND = "5c88f24b2e22160bc12c69a6"; - public const string MAGAZINE_762X54R_SVT_10_10RND = "6422e1ea3c0f06190302161a"; - public const string MAGAZINE_86X70_AXMC_338LM_10RND = "628120fd5631d45211793c9f"; - public const string MAGAZINE_86X70_M10_338_8RND = "673cbdfad0453ba50c0f76d6"; - public const string MAGAZINE_86X70_MK18_10RND = "5fc23426900b1d5091531e15"; - public const string MAGAZINE_9X18PM_APS_20RND = "5a17fb03fcdbcbcae668728f"; - public const string MAGAZINE_9X18PM_PM_8RND = "5448c12b4bdc2d02308b456f"; - public const string MAGAZINE_9X18PM_PM_999RND = "670e8eab8c1bb0e5a7075acf"; - public const string MAGAZINE_9X18PM_PM_DRUM_84RND = "55d485be4bdc2d962f8b456f"; - public const string MAGAZINE_9X18PM_PP91_20RND = "57d14e1724597714010c3f4b"; - public const string MAGAZINE_9X18PM_PP91_30RND = "57d1519e24597714373db79d"; - public const string MAGAZINE_9X19_BIG_STICK_24RND = "630769c4962d0247b029dc60"; - public const string MAGAZINE_9X19_BIG_STICK_31RND = "630767c37d50ff5e8a1ea71a"; - public const string MAGAZINE_9X19_BIG_STICK_33RND = "5a7ad2e851dfba0016153692"; - public const string MAGAZINE_9X19_CR_CYL_6RND = "624c3074dbbd335e8e6becf3"; - public const string MAGAZINE_9X19_CX4_30RND = "676176b762e0497044079f49"; - public const string MAGAZINE_9X19_G_SGMT_50RND = "5a718f958dc32e00094b97e7"; - public const string MAGAZINE_9X19_G19X_19RND = "63076701a987397c0816d21b"; - public const string MAGAZINE_9X19_G19X_999RND = "671d8ac8a3e45c1f59082799"; - public const string MAGAZINE_9X19_GL9_21RND = "5a718da68dc32e000d46d264"; - public const string MAGAZINE_9X19_GLOCK_9X19_17RND = "5a718b548dc32e000d46d262"; - public const string MAGAZINE_9X19_M9A3_17RND = "5cadc2e0ae9215051e1c21e7"; - public const string MAGAZINE_9X19_MP443_18RND = "576a5ed62459771e9c2096cb"; - public const string MAGAZINE_9X19_MP443_999RND = "671d8617a3e45c1f5908278c"; - public const string MAGAZINE_9X19_MP5_20RND = "5d2f213448f0355009199284"; - public const string MAGAZINE_9X19_MP5_30RND = "5926c3b286f774640d189b6b"; - public const string MAGAZINE_9X19_MP9_15RND = "5de8e8dafd6b4e6e2276dc32"; - public const string MAGAZINE_9X19_MP9_20RND = "5de8ea8ffd6b4e6e2276dc35"; - public const string MAGAZINE_9X19_MP9_25RND = "5de8eaadbbaf010b10528a6d"; - public const string MAGAZINE_9X19_MP9_30RND = "5de8eac42a78646d96665d91"; - public const string MAGAZINE_9X19_MPX_20RND = "5c5db6552e2216001026119d"; - public const string MAGAZINE_9X19_MPX_30RND = "5894a05586f774094708ef75"; - public const string MAGAZINE_9X19_MPX_F5_50RND = "5c5db6742e2216000f1b2852"; - public const string MAGAZINE_9X19_MPX_TTI_41RND = "5c5db6652e221600113fba51"; - public const string MAGAZINE_9X19_P226_15RND = "56d59948d2720bb7418b4582"; - public const string MAGAZINE_9X19_P226_20RND = "5c920e902e221644f31c3c99"; - public const string MAGAZINE_9X19_PL15_16RND = "602286df23506e50807090c6"; - public const string MAGAZINE_9X19_PP19_F5_50RND = "6749c40822a2740bb408d066"; - public const string MAGAZINE_9X19_PP1901_30RND = "599860ac86f77436b225ed1a"; - public const string MAGAZINE_9X19_SB7_10RND = "5998529a86f774647f44f421"; - public const string MAGAZINE_9X19_SG919_20RND = "5c0673fb0db8340023300271"; - public const string MAGAZINE_9X19_SG919_30RND = "5c0672ed0db834001b7353f3"; - public const string MAGAZINE_9X19_UZI_20RND = "66992713ae08c5c29e0c4f97"; - public const string MAGAZINE_9X19_UZI_25RND = "6699271b9950f5f4cd060299"; - public const string MAGAZINE_9X19_UZI_32RND = "669927203c4fda6471005cbe"; - public const string MAGAZINE_9X19_UZI_40RND = "66992725ae08c5c29e0c4f9a"; - public const string MAGAZINE_9X19_UZI_50RND = "6699272a3c4fda6471005cc1"; - public const string MAGAZINE_9X19_UZI_CMAG_100RND = "676176a162e0497044079f46"; - public const string MAGAZINE_9X19_UZI_PRO_20RND = "668031ffe3e7eb26e8004cdd"; - public const string MAGAZINE_9X19_UZI_PRO_25RND = "66866f4ec3d473265104f381"; - public const string MAGAZINE_9X19_UZI_PRO_32RND = "66866f622a2296a8d9099639"; - public const string MAGAZINE_9X19_X5_MP5_50RND = "5a351711c4a282000b1521a4"; - public const string MAGAZINE_9X21_SR1MP_18RND = "59f99a7d86f7745b134aa97b"; - public const string MAGAZINE_9X21_SR2M_20RND = "633a98eab8b0506e48497c1a"; - public const string MAGAZINE_9X21_SR2M_30RND = "62e153bcdb1a5c41971c1b5b"; - public const string MAGAZINE_9X33R_CR_CYL_6RND = "619f54a1d25cbd424731fb99"; - public const string MAGAZINE_9X33R_CR_LOAD_0RND = "61a4cda622af7f4f6a3ce617"; - public const string MAGAZINE_9X33R_DE_9RND = "669fa435803b94fb5d0e3a76"; - public const string MAGAZINE_9X39_6L24_10RND = "57838f0b2459774a256959b2"; - public const string MAGAZINE_9X39_6L25_20RND = "57838f9f2459774a150289a0"; - public const string MAGAZINE_9X39_9A91_20RND = "6450ec2e7da7133e5a09ca96"; - public const string MAGAZINE_9X39_SR3M130_30RND = "5a9e81fba2750c00164f6b11"; - public const string MAGAZINE_9X39_VSSVAL_30RND = "65118f531b90b4fc77015083"; - public const string MAP_CUSTOMS_PLAN = "5798a2832459774b53341029"; - public const string MAP_FACTORY_PLAN = "574eb85c245977648157eec3"; - public const string MAP_INTERCHANGE_PLAN = "5be4038986f774527d3fae60"; - public const string MAP_SHORELINE_HEALTH_RESORT_PLAN = "5a80a29286f7742b25692012"; - public const string MAP_SHORELINE_PLAN = "5a8036fb86f77407252ddc02"; - public const string MAP_WOODS_PLAN = "5900b89686f7744e704a8747"; - public const string MARKOFUNKNOWN_MARK_OF_THE_UNHEARD = "65ddcc9cfa85b9f17d0dfb07"; - public const string MARKSMANRIFLE_HK_G28_762X51_MARKSMAN_RIFLE = "6176aca650224f204c1da3fb"; - public const string MARKSMANRIFLE_KELTEC_RFB_762X51_RIFLE = "5f2a9575926fd9352339381f"; - public const string MARKSMANRIFLE_KNIGHTS_ARMAMENT_COMPANY_SR25_762X51_MARKSMAN_RIFLE = - "5df8ce05b11454561e39243b"; - public const string MARKSMANRIFLE_REMINGTON_R11_RSASS_762X51_MARKSMAN_RIFLE = - "5a367e5dc4a282000e49738f"; - public const string MARKSMANRIFLE_SPRINGFIELD_ARMORY_M1A_762X51_RIFLE = - "5aafa857e5b5b00018480968"; - public const string MARKSMANRIFLE_SVDS_762X54R_SNIPER_RIFLE = "5c46fbd72e2216398b5a8c9c"; - public const string MARKSMANRIFLE_SWORD_INTERNATIONAL_MK18_338_LM_MARKSMAN_RIFLE = - "5fc22d7c187fea44d52eda44"; - public const string MARKSMANRIFLE_VSS_VINTOREZ_9X39_SPECIAL_SNIPER_RIFLE = - "57838ad32459774a17445cd2"; - public const string MEDICAL_ALUMINUM_SPLINT = "5af0454c86f7746bf20992e8"; - public const string MEDICAL_ARMY_BANDAGE = "5751a25924597722c463c472"; - public const string MEDICAL_ASEPTIC_BANDAGE = "544fb25a4bdc2dfb738b4567"; - public const string MEDICAL_CALOKB_HEMOSTATIC_APPLICATOR = "5e8488fa988a8701445df1e4"; - public const string MEDICAL_CAT_HEMOSTATIC_TOURNIQUET = "60098af40accd37ef2175f27"; - public const string MEDICAL_CMS_SURGICAL_KIT = "5d02778e86f774203e7dedbe"; - public const string MEDICAL_ESMARCH_TOURNIQUET = "5e831507ea0a7c419c2f9bd9"; - public const string MEDICAL_IMMOBILIZING_SPLINT = "544fb3364bdc2d34748b456a"; - public const string MEDICAL_SANITAR_KIT = "5e99735686f7744bfc4af32c"; - public const string MEDICAL_SURV12_FIELD_SURGICAL_KIT = "5d02797c86f774203f38e30a"; - public const string MEDKIT_AFAK_TACTICAL_INDIVIDUAL_FIRST_AID_KIT = "60098ad7c2240c0fe85c570a"; - public const string MEDKIT_AI2 = "5755356824597772cb798962"; - public const string MEDKIT_CAR_FIRST_AID_KIT = "590c661e86f7741e566b646a"; - public const string MEDKIT_GRIZZLY_MEDICAL_KIT = "590c657e86f77412b013051d"; - public const string MEDKIT_IFAK_INDIVIDUAL_FIRST_AID_KIT = "590c678286f77426c9660122"; - public const string MEDKIT_SALEWA_FIRST_AID_KIT = "544fb45d4bdc2dee738b4568"; - public const string MEDKIT_SANITARS_FIRST_AID_KIT = "5e99711486f7744bfc4af328"; - public const string MONEY_DOLLARS = "5696686a4bdc2da3298b456a"; - public const string MONEY_EUROS = "569668774bdc2da2298b4568"; - public const string MONEY_GP_COIN = "5d235b4d86f7742e017bc88a"; - public const string MONEY_ROUBLES = "5449016a4bdc2d6f028b456f"; - public const string MOUNT_AI_AX50_34MM_SCOPE = "62811f461d5df4475f46a332"; - public const string MOUNT_AI_AXMC_ADAPTER_KIT_MEDIUM_LENGTH_RAIL = "628120dd308cb521f87a8fa1"; - public const string MOUNT_AI_AXMC_ADAPTER_KIT_SHORT_LENGTH_RAIL = "628120d309427b40ab14e76d"; - public const string MOUNT_AI_AXMC_AT_X_TOP_RAIL = "628120c21d5df4475f46a337"; - public const string MOUNT_AI_AXMC_KEYSLOT_HARRIS_BIPOD = "671126a210d67adb5b08e925"; - public const string MOUNT_AIMPOINT_COMPM4PRO_LRP = "5c7d55f52e221644f31bff6a"; - public const string MOUNT_AIMPOINT_COMPM4PRO_QRP2 = "616584766ef05c2ce828ef57"; - public const string MOUNT_AIMPOINT_MICRO_H2_STANDARD = "616554fe50224f204c1da2aa"; - public const string MOUNT_AIMPOINT_MICRO_SPACER_HIGH = "58d39b0386f77443380bf13c"; - public const string MOUNT_AIMPOINT_MICRO_STANDARD = "58d39d3d86f77445bb794ae7"; - public const string MOUNT_AIMPOINT_STANDARD_SPACER = "5c7d560b2e22160bc12c6139"; - public const string MOUNT_AK_ZENIT_B12 = "57ffaea724597779f52b3a4d"; - public const string MOUNT_AKS74U_ZENIT_B18 = "57ffb0062459777a045af529"; - public const string MOUNT_ALEXANDER_ARMS_10_INCH_RAIL = "5b30bc285acfc47a8608615d"; - public const string MOUNT_ALEXANDER_ARMS_3_INCH_RAIL = "5b30bc165acfc40016387293"; - public const string MOUNT_ANPVS14_NOROTOS_DUAL_DOVETAIL = "5a16b93dfcdbcbcae6687261"; - public const string MOUNT_ARMASIGHT_VULCAN_UNIVERSAL_BASE = "5b3b6dc75acfc47a8773fb1e"; - public const string MOUNT_ARMASIGHT_ZEUS_UNIVERSAL_BASE = "63fc449f5bd61c6cf3784a88"; - public const string MOUNT_AXION_KOBRA_DOVETAIL = "591ee00d86f774592f7b841e"; - public const string MOUNT_BENELLI_M3_SUPER_90_UPPER_RECEIVER_TOP_RAIL = - "625ed7c64d9b6612df732146"; - public const string MOUNT_BT_QD_NAR_MOUNT_FOR_AIMPOINT_ACRO = "615d8d878004cc50514c3233"; - public const string MOUNT_BURRIS_ARPEPR_30MM_RING_SCOPE = "5b2389515acfc4771e1be0c0"; - public const string MOUNT_BURRIS_FASTFIRE_WEAVER_BASE = "577d128124597739d65d0e56"; - public const string MOUNT_CNC_GUNS_KEYMOD_2_INCH_RAIL = "623c2f652febb22c2777d8d7"; - public const string MOUNT_CNC_GUNS_KEYMOD_4_INCH_RAIL = "623c2f4242aee3103f1c44b7"; - public const string MOUNT_CORVUS_DEFENSIO_KEYMOD_18_INCH_RAIL_SECTION = - "67111094d1758189fc0bd223"; - public const string MOUNT_CORVUS_DEFENSIO_KEYMOD_68_INCH_RAIL_SECTION = - "6711109e723c2733410161eb"; - public const string MOUNT_CUSTOM_GUNS_HANDGUARD_RAIL = "6086b5392535c57a13424d70"; - public const string MOUNT_CYCLONE_SHAKHIN = "67641a851b2899700609901a"; - public const string MOUNT_DANIEL_DEFENSE_25MM_ACCESSORY_RING = "6267c6396b642f77f56f5c1c"; - public const string MOUNT_DELTAPOINT_CROSS_SLOT_MOUNT_BASE = "58d2664f86f7747fec5834f6"; - public const string MOUNT_DELTATEK_SPRUT_MOUNT_FOR_PUMPACTION_SHOTGUNS = - "55d48ebc4bdc2d8c2f8b456c"; - public const string MOUNT_ETMI019_SHOTGUN_RAIL = "5dfe14f30b92095fd441edaf"; - public const string MOUNT_FN_FIVESEVEN_MK2_RMR = "5d7b6bafa4b93652786f4c76"; - public const string MOUNT_FN_P90_EFFEN_90_RECEIVER_RAIL = "5cc7012ae4a949001252b43e"; - public const string MOUNT_FN_P90_UPPER_RECEIVER_SIDE_RAIL = "5cc70146e4a949000d73bf6b"; - public const string MOUNT_FN_P90_UPPER_RECEIVER_TOP_RAIL = "5cc7015ae4a949001152b4c6"; - public const string MOUNT_FN_SCAR_BOTTOM_RAIL = "61816df1d3a39d50044c139e"; - public const string MOUNT_FN_SCAR_KINETIC_MREX_65_MLOK_RAIL = "619666f4af1f5202c57a952d"; - public const string MOUNT_FN_SCAR_KINETIC_MREX_65_MLOK_RAIL_FDE = "66ffc6ceb7ff397142017c3a"; - public const string MOUNT_FN_SCAR_PMM_MLOK_LOWER_RAIL = "66ffc72082d36dec82030c1f"; - public const string MOUNT_FN_SCAR_PMM_MLOK_LOWER_RAIL_FDE = "66ffc903fe9b382596065304"; - public const string MOUNT_FN_SCAR_PMM_MLOK_SIDE_RAILS = "66ffe6c36f11538c7d0581e3"; - public const string MOUNT_FN_SCAR_PMM_MLOK_SIDE_RAILS_FDE = "66ffe7bab8da88805e07a03e"; - public const string MOUNT_FN_SCAR_PMM_MRE_XL_RAIL_EXTENSION = "66ffe2fbab3336cc0106382b"; - public const string MOUNT_FN_SCAR_PMM_MRE_XL_RAIL_EXTENSION_FDE = "66ffe5edfe9b38259606530d"; - public const string MOUNT_FN_SCAR_PMM_RAIL_ELIMINATION_PANELS = "66ffe66a20771d839f0fb4a9"; - public const string MOUNT_FN_SCAR_PMM_RAIL_ELIMINATION_PANELS_FDE = "66ffe6916f11538c7d0581e1"; - public const string MOUNT_FN_SCAR_PWS_SRX_RAIL_EXTENSION = "61965d9058ef8c428c287e0d"; - public const string MOUNT_FN_SCAR_SIDE_RAILS = "61816dfa6ef05c2ce828f1ad"; - public const string MOUNT_FN_SCAR_VLTOR_CASVSCAR_HANDGUARD = "66ffe811f5d758d71101e89a"; - public const string MOUNT_FN_SCAR_VLTOR_CASVSCAR_HANDGUARD_EXTENDER = - "66ffea456be19fd81e0ef742"; - public const string MOUNT_FN_SCAR_VLTOR_CASVSCAR_HANDGUARD_EXTENDER_PATRIOT_BROWN = - "66ffeab4ab3336cc01063833"; - public const string MOUNT_FN_SCAR_VLTOR_CASVSCAR_HANDGUARD_PATRIOT_BROWN = - "66ffea06132225f0fe061394"; - public const string MOUNT_GBRS_AIMPOINT_HYDRA_MOUNT_KIT_BLACK = "65392f611406374f82152ba5"; - public const string MOUNT_GBRS_AIMPOINT_HYDRA_MOUNT_KIT_FDE = "653931da5db71d30ab1d6296"; - public const string MOUNT_GEISSELE_SUPER_PRECISION_30MM_RING_SCOPE = "618b9643526131765025ab35"; - public const string MOUNT_GEISSELE_SUPER_PRECISION_30MM_RING_SCOPE_MOUNT_DDC = - "618bab21526131765025ab3f"; - public const string MOUNT_GEISSELE_SUPER_PRECISION_TOP_RING_CAP = "618b9671d14d6d5ab879c5ea"; - public const string MOUNT_GEISSELE_SUPER_PRECISION_TOP_RING_CAP_DDC = - "618ba91477b82356f91ae0e8"; - public const string MOUNT_GLOCK_AIMTECH_MOUNT_BASE = "5a7ad4af51dfba0013379717"; - public const string MOUNT_GLOCK_AIMTECH_TIGER_SHARK_SIGHT = "5a7ad55551dfba0015068f42"; - public const string MOUNT_GLOCK_TANGODOWN_AAM01_ACRO_MOUNT_BASE = "615d8da4d3a39d50044c10e8"; - public const string MOUNT_HARTMAN_LENOK_70MM_RAIL = "65434a4e4e3a01736a6c9706"; - public const string MOUNT_HENSOLDT_RIS_TOP_RAIL = "622efdf8ec80d870d349b4e5"; - public const string MOUNT_HEXAGON_MEDIUM_LENGTH_RAIL = "5b800ebc86f774394e230a90"; - public const string MOUNT_HEXAGON_MEDIUM_LENGTH_RAIL_ANODIZED_RED = "5b8403a086f7747ff856f4e2"; - public const string MOUNT_HEXAGON_SHORT_LENGTH_RAIL = "5b800ed086f7747baf6e2f9e"; - public const string MOUNT_HEXAGON_SHORT_LENGTH_RAIL_ANODIZED_RED = "5b84038986f774774913b0c1"; - public const string MOUNT_HK_G36_BOTTOM_HANDGUARD_RAIL = "62444cb99f47004c781903eb"; - public const string MOUNT_HK_G36_MAGWELL = "622f02437762f55aaa68ac85"; - public const string MOUNT_HK_G36_OPTIC_RAIL_WITH_FLIPUP_SIGHTS = "622b3d5cf9cfc87d675d2de9"; - public const string MOUNT_HK_G36_SIDE_HANDGUARD_RAIL = "62444cd3674028188b052799"; - public const string MOUNT_HK_G36_SIGHT = "622b3c081b89c677a33bcda6"; - public const string MOUNT_HK_G36_STANAG_MAGWELL = "622f039199f4ea1a4d6c9a17"; - public const string MOUNT_HK_HKEY_3_INCH_RAIL = "67069d3bb29a2cd338033390"; - public const string MOUNT_HK_MP5_BT_TRIRAIL_RECEIVER = "5a966ec8a2750c00171b3f36"; - public const string MOUNT_HK_MP5_MFI_HK_UNIVERSAL_LOW_PROFILE_SCOPE = - "5926dad986f7741f82604363"; - public const string MOUNT_HK_MP5SD_BT_TRIRAIL_RING = "59c63b4486f7747afb151c1c"; - public const string MOUNT_HK_UMP_BOTTOM_HANDGUARD_RAIL = "5fc53954f8b6a877a729eaeb"; - public const string MOUNT_HK_UMP_SIDE_HANDGUARD_RAIL = "5fc5396e900b1d5091531e72"; - public const string MOUNT_HK_USP_45_ACP_ELITE_COMPENSATOR = "619621a4de3cdf1d2614a7a7"; - public const string MOUNT_HK_USP_45_ACP_MATCH_COMPENSATOR = "619624b26db0f2477964e6b0"; - public const string MOUNT_HK_USP_RAIL_ADAPTER = "6196255558ef8c428c287d1c"; - public const string MOUNT_IEA_MILOPTICS_KHF_34MM_ONEPIECE_MAG = "5c86592b2e2216000e69e77c"; - public const string MOUNT_JP_ENTERPRISES_FLATTOP_30MM_RING_SCOPE = "5a37ca54c4a282000d72296a"; - public const string MOUNT_KAC_MWS_BIPOD_ADAPTER = "676175bb48fa5c377e06fc36"; - public const string MOUNT_KAC_URX_3_3_INCH_RAIL = "5d133067d7ad1a33013f95b4"; - public const string MOUNT_KIBA_ARMS_25MM_ACCESSORY_RING = "57d17e212459775a1179a0f5"; - public const string MOUNT_KIBA_ARMS_SHORT_MOUNT_SIGHT_ADAPTER = "5c1cdd302e221602b3137250"; - public const string MOUNT_KIBA_ARMS_SPRM_RAIL_MOUNT_FOR_PUMPACTION_SHOTGUNS = - "55d48a634bdc2d8b2f8b456a"; - public const string MOUNT_KMZ_1P59_DOVETAIL = "5d0a29ead7ad1a0026013f27"; - public const string MOUNT_KMZ_1P69_WEAVER = "5d0a29fed7ad1a002769ad08"; - public const string MOUNT_KRISS_VECTOR_BOTTOM_RAIL = "5fbb976df9986c4cff3fe5f2"; - public const string MOUNT_KRISS_VECTOR_MK5_MODULAR_RAIL = "5fbb978207e8a97d1f0902d3"; - public const string MOUNT_KRISS_VECTOR_SIDE_RAIL = "5fce0f9b55375d18a253eff2"; - public const string MOUNT_LARUE_LT101_QD_TACTICAL_PICATINNY_RISER = "5c064c400db834001d23f468"; - public const string MOUNT_LEAPERS_UTG_25MM_RING_SCOPE = "5dff77c759400025ea5150cf"; - public const string MOUNT_LEAPERS_UTG_UNIVERSAL_SHOTGUN_BARREL = "6710cea62bb09af72f0e6bf8"; - public const string MOUNT_LEUPOLD_MARK_IMS_35MM_RING_SCOPE = "6761759e7ee06333f108bf86"; - public const string MOUNT_LOBAEV_ARMS_30MM_SCOPE = "57c69dd424597774c03b7bbc"; - public const string MOUNT_M14_AMEGA_MINI_SCOUT_MOUNT_SYSTEM = "5addbfd15acfc40015621bde"; - public const string MOUNT_M14_ARMS_18_SCOPE = "5addbfe15acfc4001a5fc58b"; - public const string MOUNT_M14_LEAPERS_UTG_4POINT_LOCKING_DELUXE = "5addbfef5acfc400185c2857"; - public const string MOUNT_M14_SAGE_INTERNATIONAL_DCSB = "5addbffe5acfc4001714dfac"; - public const string MOUNT_M14_ULTIMAK_M8_FORWARD_OPTIC = "5addbfbb5acfc400194dbcf7"; - public const string MOUNT_M14_VLTOR_CASV14_RAIL_SYSTEM = "5addc00b5acfc4001669f144"; - public const string MOUNT_M1911A1_NCSTAR_TRIGGER_GUARD = "5ef369b08cef260c0642acaf"; - public const string MOUNT_M1911A1_WEIGAND_WEIGATINNY_RAIL = "5ef5d994dfbc9f3c660ded95"; - public const string MOUNT_M1A_SOCOM_16_UPPER_PART = "5ab24ef9e5b5b00fe93c9209"; - public const string MOUNT_M700_30MM_INTEGRAL_RING_SCOPE = "5bfebc5e0db834001a6694e5"; - public const string MOUNT_M700_AB_ARMS_MODX_RAIL = "5cde7b43d7f00c000d36b93e"; - public const string MOUNT_M700_BADGER_ORDNANCE_SCOPE_RAIL = "65f064eec4da400cbb0dc1fe"; - public const string MOUNT_M700_EXTENDED_MULTISLOT_WEAVER_RAIL_BASE = "5bfebc530db834001d23eb65"; - public const string MOUNT_M700_MAGPUL_PRO_700_CHASSIS_INLINE = "5cdeaca5d7f00c00b61c4b70"; - public const string MOUNT_M870_LEAPERS_UTG_PRO_MTU028SG_RAIL = "5a7893c1c585673f2b5c374d"; - public const string MOUNT_M870_MESA_TACTICAL_MAGAZINE_CLAMP = "5a789261c5856700186c65d3"; - public const string MOUNT_M870_XS_SHOTRAIL_RAIL_WITH_GHOST_RING_REAR_SIGHT = - "5a78948ec5856700177b1124"; - public const string MOUNT_MAGPUL_MLOK_093_INCH_RAIL = "669a6a4a525be1d2d004b8eb"; - public const string MOUNT_MAGPUL_MLOK_25_INCH_RAIL = "5b7be47f5acfc400170e2dd2"; - public const string MOUNT_MAGPUL_MLOK_41_INCH_RAIL = "5b7be4895acfc400170e2dd5"; - public const string MOUNT_MAGPUL_MLOK_BIPOD = "671126b049e181972e0681fa"; - public const string MOUNT_MAGPUL_MLOK_CANTILEVER = "6269220d70b6c02e665f2635"; - public const string MOUNT_MAGPUL_MLOK_OFFSET_LIGHT = "6269545d0e57f218e4548ca2"; - public const string MOUNT_MOSIN_RIFLE_AIM_SPORTS_MNG_RAIL = "5bc5a372d4351e44f824d17f"; - public const string MOUNT_MOSIN_RIFLE_AIM_SPORTS_TRIRAIL = "5bbdb811d4351e45020113c7"; - public const string MOUNT_MOSIN_RIFLE_ARBALET_PATRIOT_KW_RAIL = "5d024f5cd7ad1a04a067e91a"; - public const string MOUNT_MOSIN_RIFLE_KOCHETOV = "5b3f7bf05acfc433000ecf6b"; - public const string MOUNT_MOSSBERG_590A1_TACTICAL_RAIL = "5eeb2ff5ea4f8b73c827350b"; - public const string MOUNT_MP133153_TAKTIKA_TULA_12003_STOCK_ADAPTER = - "5bfe7fb30db8340018089fed"; - public const string MOUNT_MP155_ULTIMA_SHORT_RAIL = "607ea812232e5a31c233d53c"; - public const string MOUNT_MP155_ULTIMA_TOP_RAIL = "60785ce5132d4d12c81fd918"; - public const string MOUNT_MP18_SIGHT = "61f804acfcba9556ea304cb8"; - public const string MOUNT_MP443_GRACH_ZENIT_B8 = "576a7c512459771e796e0e17"; - public const string MOUNT_MP9_BOTTOM_RAIL = "5de8fbf2b74cd90030650c79"; - public const string MOUNT_MP9_SIDE_RAIL = "5de8fc0b205ddc616a6bc51b"; - public const string MOUNT_MPX_GEN1_HANDGUARD_2_INCH_RAIL = "58a56f8d86f774651579314c"; - public const string MOUNT_MPX_GEN1_HANDGUARD_4_INCH_RAIL = "58a5c12e86f7745d585a2b9e"; - public const string MOUNT_NCSTAR_MPR45_BACKUP = "5649a2464bdc2d91118b45a8"; - public const string MOUNT_NIGHTFORCE_MAGMOUNT_30MM_RING_SCOPE = "5b3b99265acfc4704b4a1afb"; - public const string MOUNT_NIGHTFORCE_MAGMOUNT_34MM_RING_SCOPE = "5aa66a9be5b5b0214e506e89"; - public const string MOUNT_NIGHTFORCE_MAGMOUNT_34MM_RING_SCOPE_MOUNT_WITH_RUGGEDIZED_ACCESSORY_PLATFORM = - "5aa66c72e5b5b00016327c93"; - public const string MOUNT_NOROTOS_TITANIUM_ADVANCED_TACTICAL = "5a16b8a9fcdbcb00165aa6ca"; - public const string MOUNT_NPZ_1P781_DOVETAIL = "618a75c9a3884f56c957ca1b"; - public const string MOUNT_ODIN_WORKS_KPOD_KEYMOD_BIPOD_ADAPTER = "67112695fe5c8bf33f02476d"; - public const string MOUNT_OPSCORE_PICATINNY_RAIL_ADAPTER = "5a398b75c4a282000a51a266"; - public const string MOUNT_OPSCORE_SINGLE_CLAMP_RAIL_ADAPTER = "5a398ab9c4a282000c5a9842"; - public const string MOUNT_OPSKS_DOVETAIL = "587e08ee245977446b4410cf"; - public const string MOUNT_OPSKS_UPPER_BAND = "634f05a21f9f536910079b56"; - public const string MOUNT_ORSIS_T5000M_LONG_LENGTH_RAIL = "5df35ea9c41b2312ea3334d8"; - public const string MOUNT_ORSIS_T5000M_MEDIUM_LENGTH_RAIL = "5df35eb2b11454561e3923e2"; - public const string MOUNT_ORSIS_T5000M_SCOPE = "5df35e970b92095fd441e4d2"; - public const string MOUNT_P226_BRIDGE_SIGHT = "5b3a08b25acfc4001754880c"; - public const string MOUNT_P226_TRIJICON_RMR = "5a32aa0cc4a28232996e405f"; - public const string MOUNT_PK_ZENIT_B50_16MM_TOP = "6492c6dd60fdb10a020621a2"; - public const string MOUNT_PK_ZENIT_B50_66MM_TOP = "6492c8bba6e68e06fb0bae87"; - public const string MOUNT_PNV10T_DOVETAIL_ADAPTER = "5c0695860db834001b735461"; - public const string MOUNT_PP91_KEDR_ROTOR_43_RIS = "57ee59b42459771c7b045da5"; - public const string MOUNT_PRECISION_REFLEX_HANDGUARD_BOTTOM_RAIL = "6388c4ac8d895f557a0c6515"; - public const string MOUNT_PRECISION_REFLEX_HANDGUARD_LONG_TOP_RAIL = "6388c5d19c00405f4717c0f0"; - public const string MOUNT_PRECISION_REFLEX_HANDGUARD_SHORT_SIDE_RAIL = - "6388c4478d895f557a0c6512"; - public const string MOUNT_PU_35X_RING_SCOPE = "5b3f7c005acfc4704b4a1de8"; - public const string MOUNT_PVS7_WILCOX_ADAPTER = "5c11046cd174af02a012e42b"; - public const string MOUNT_RECKNAGEL_ERATAC_30MM_RING_SCOPE = "6171407e50224f204c1da3c5"; - public const string MOUNT_RECKNAGEL_ERATAC_34MM_RING_SCOPE = "61713cc4d8e3106d9806c109"; - public const string MOUNT_RECKNAGEL_ERATAC_SUNSHADE_MOUNT_FOR_AIMPOINT_T1_SIGHTS = - "61714b2467085e45ef140b2c"; - public const string MOUNT_REMINGTON_RAHG_2_INCH_RAIL = "5c0102aa0db834001b734ba1"; - public const string MOUNT_REMINGTON_RAHG_4_INCH_RAIL = "5c0102b20db834001d23eebc"; - public const string MOUNT_REPTILIA_ROF90_RMR_MOUNT_FOR_GEISSELE_SCOPE_MOUNTS = - "618b9682a3884f56c957ca78"; - public const string MOUNT_REPTILIA_ROF90_RMR_MOUNT_FOR_GEISSELE_SCOPE_MOUNTS_DDC = - "618ba92152ecee1505530bd3"; - public const string MOUNT_RFB_HANDGUARD_RAIL = "5f2aa493cd375f14e15eea72"; - public const string MOUNT_RFB_QUAD_RAIL_3_INCH = "676177591f08ed5e8800b7a9"; - public const string MOUNT_RFB_SCOPE_RAIL = "5f2aa49f9b44de6b1b4e68d4"; - public const string MOUNT_RPK16_HANDGUARD_RAIL = "5beecbb80db834001d2c465e"; - public const string MOUNT_RS_REGULATE_AK303M_FULL_LENGTH_LOWER_DOVETAIL = - "65f1b1176dbd6c5ba2082eed"; - public const string MOUNT_RS_REGULATE_AKR_TOP = "65f1b2a5c14a07890801fc70"; - public const string MOUNT_SAG_AK_DOVETAIL_SIDE = "63d114019e35b334d82302f7"; - public const string MOUNT_SAG_BIT_LOW_PROFILE_DOVETAIL_SIDE = "638db77630c4240f9e06f8b6"; - public const string MOUNT_SAKO_TRG_M10_SCOPE = "673cb51e093e0ea7fd0b8746"; - public const string MOUNT_SAKO_TRG_MEDIUM_LENGTH_RAIL = "673dd617912f68467c0615b6"; - public const string MOUNT_SAKO_TRG_SHORT_LENGTH_RAIL = "673dd5f73f92dc7e120d20a9"; - public const string MOUNT_SIG_SAUER_ALPHA4_30MM_RING_SCOPE = "6567e751a715f85433025998"; - public const string MOUNT_SIG_SAUER_ROMEO_SIGHT = "5b31163c5acfc400153b71cb"; - public const string MOUNT_SKS_CHOATE_SCOPE = "6415d33eda439c6a97048b5b"; - public const string MOUNT_SKS_LEAPERS_UTG_SOCOM_RAIL = "593d1fa786f7746da62d61ac"; - public const string MOUNT_SKS_TAPCO_INTRAFUSE_CHASSIS_LOWER_RAIL = "653ed19d22e1ef3d9002c328"; - public const string MOUNT_SKS_UPPER_BAND = "634f04d82e5def262d0b30c6"; - public const string MOUNT_SOK12_CHAOS_TITAN_QUAD_RAIL_HANDGUARD_TOP_COVER = - "674fe89a4472d471fb0f07d8"; - public const string MOUNT_SOK12_CHAOS_TITAN_RECEIVER_TOP_RAIL = "674fe8b9362ea1f88b0e278d"; - public const string MOUNT_SR1MP_QUAD_RAIL = "5a27bad7c4a282000b15184b"; - public const string MOUNT_SR1MP_SINGLE_RAIL = "5a27b281c4a28200741e1e52"; - public const string MOUNT_SR1MP_SOUND_SUPPRESSOR = "5a27b3d0c4a282000d721ec1"; - public const string MOUNT_SR2M_SHORT_SIDE_RAIL = "62ed189fb3608410ef5a2bfc"; - public const string MOUNT_SR2M_SIDE_RAIL = "62ed1921b3608410ef5a2c04"; - public const string MOUNT_SR2M_ZENIT_B17 = "62e281349ecd3f493f6df954"; - public const string MOUNT_SR3MP_DOVETAIL_SIDE_RAIL_BLACK = "67069c8cee8138ed2f05ad34"; - public const string MOUNT_SR3MP_DOVETAIL_SIDE_RAIL_PLUM = "67069cbbb29a2cd33803338c"; - public const string MOUNT_SR3MP_SIDE_RAILS_BLACK = "67069cf1af4890b09f0006e8"; - public const string MOUNT_SR3MP_SIDE_RAILS_PLUM = "67069d02ad91f3a63c0bc2b0"; - public const string MOUNT_STEYR_AUG_A3_CORVUS_DEFENSIO_RECEIVER_RAIL_MOI_30_SLOTS = - "67110dd41ad01bb88705347b"; - public const string MOUNT_STEYR_AUG_A3_M1_HIGH_SIGHT = "62e7c8f91cd3fde4d503d690"; - public const string MOUNT_STEYR_AUG_A3_M1_LOW_SIGHT = "62ebba1fb658e07ef9082b5a"; - public const string MOUNT_STEYR_AUG_CORVUS_DEFENSIO_KEYMOD_FORWARD_ACCESSORY_RAIL = - "6711107e1ad01bb88705347e"; - public const string MOUNT_STRIKE_INDUSTRIES_KEYMOD_4_INCH_RAIL = "5a9d6d00a2750c5c985b5305"; - public const string MOUNT_STRIKE_INDUSTRIES_KEYMOD_6_INCH_RAIL = "5a9d6d13a2750c00164f6b03"; - public const string MOUNT_STRIKE_INDUSTRIES_TRAX_BRIDGE_RAIL = "5a9d6d21a2750c00137fa649"; - public const string MOUNT_SVD_CAA_DRG_L1_BARREL_MOUNT_RAIL = "5e569a132642e66b0b68015c"; - public const string MOUNT_SVD_CAA_XD_RGL_RECEIVER = "5e569a2e56edd02abe09f280"; - public const string MOUNT_SVD_MODERNIZATION_KIT_TOP_RAIL = "5e569a0156edd02abe09f27d"; - public const string MOUNT_SVD_SAG_LOW_PROFILE_SIDE = "5dff8db859400025ea5150d4"; - public const string MOUNT_SVDS_UPPER_BAND = "5c471c2d2e22164bef5d077f"; - public const string MOUNT_SVT40_TOKAREV_PU = "641dc35e19604f20c800be18"; - public const string MOUNT_TONI_SYSTEM_TACTICAL_BARREL_CLAMP = "676177b09cfcc4c25b027446"; - public const string MOUNT_TOZ106_DOVETAIL = "5c6162682e22160010261a2b"; - public const string MOUNT_TOZ106_RAIL_SCOPE = "5c61627a2e22160012542c55"; - public const string MOUNT_TRIJICON_RMR_HIGH_PROFILE = "5a33b652c4a28232996e407c"; - public const string MOUNT_TRIJICON_RMR_LOW_PROFILE = "5a33b2c9c4a282000c5a9511"; - public const string MOUNT_TRIJICON_RMR_MOUNT_FOR_ACOG_SCOPES = "5a33bab6c4a28200741e22f8"; - public const string MOUNT_TRIJICON_TA51_SIGHT = "59db7eed86f77461f8380365"; - public const string MOUNT_TROY_QARS_32_INCH_RAIL = "5b4736a986f774040571e998"; - public const string MOUNT_TROY_QARS_42_INCH_RAIL = "5b4736b986f77405cb415c10"; - public const string MOUNT_UM_TACTICAL_UM3_PISTOL_SIGHT = "5a7b4900e899ef197b331a2a"; - public const string MOUNT_UNV_DLOCIRD_SIGHT = "5a1ead28fcdbcb001912fa9f"; - public const string MOUNT_UZI_HANDGUARD_RAIL = "6698c8f4710a4525fe0e9e57"; - public const string MOUNT_UZI_PRO_SMG_RAIL_ADAPTER = "668ea3f68117e4968b0cff4a"; - public const string MOUNT_UZI_STORMWERKZ_LOWER_HANDGUARD_RAIL = "66992f7d9950f5f4cd0602a8"; - public const string MOUNT_UZI_STORMWERKZ_SCOPE = "6698c90829e062525d0ad8ad"; - public const string MOUNT_VLTOR_CASV_2_INCH_RAIL = "5b7be4575acfc400161d0832"; - public const string MOUNT_VLTOR_CASV_4_INCH_RAIL = "5b7be4645acfc400170e2dcc"; - public const string MOUNT_VLTOR_CASV_5_INCH_RAIL = "5b7be46e5acfc400170e2dcf"; - public const string MOUNT_VLTOR_CASV_KEYMOD_2_INCH_RAIL = "59e0bdb186f774156f04ce82"; - public const string MOUNT_VLTOR_CASV_KEYMOD_4_INCH_RAIL = "59e0be5d86f7742d48765bd2"; - public const string MOUNT_VLTOR_CASV_KEYMOD_6_INCH_RAIL = "59e0bed186f774156f04ce84"; - public const string MOUNT_VOMZ_PILAD_04302_DOVETAIL = "57acb6222459771ec34b5cb0"; - public const string MOUNT_VPO102_ARBALET = "609a4b4fe2ff132951242d04"; - public const string MOUNT_VPO215_SCOPE_RAIL = "5de6558e9f98ac2bc65950fc"; - public const string MOUNT_VSSVAL_TOZ_6P29M = "59eb7ebe86f7740b373438ce"; - public const string MOUNT_VSSVAL_ZENIT_B3_MOUNT_COMBO = "5a9fc7e6a2750c0032157184"; - public const string MOUNT_VSSVAL_ZENIT_B3_RING = "57a3459f245977764a01f703"; - public const string MOUNT_ZENIT_B13_KLASSIKA_DOVETAIL_RAIL_PLATFORM = - "5c61a40d2e2216001403158d"; - public const string MOUNT_ZENIT_B13V_KLASSIKA_DOVETAIL_RAIL_PLATFORM = - "5c90c3622e221601da359851"; - public const string MOUNT_ZENIT_KR2_OLD_GEN = "646f6322f43d0c5d62063715"; - public const string MULTITOOLS_LEATHERMAN_MULTITOOL = "544fb5454bdc2df8738b456a"; - public const string MUZZLECOMBO_9A91_HANDGUARD_RETAINER = "64527a263d52156624001fd7"; - public const string MUZZLECOMBO_AA12_12GA_CHOKE = "670fd1cc95c92bfc8e0bea39"; - public const string MUZZLECOMBO_AA12_THREAD_PROTECTOR = "670fd0eed8d4eae4790c818a"; - public const string MUZZLECOMBO_AI_AXMC_THREAD_PROTECTOR = "628120621d5df4475f46a335"; - public const string MUZZLECOMBO_AK_762X39_TAKTIKA_TULA_MUZZLE_ADAPTER = - "5a0abb6e1526d8000a025282"; - public const string MUZZLECOMBO_AK_CNC_WARRIOR_556X45_MUZZLE_DEVICE_ADAPTER = - "5e21ca18e4d47f0da15e77dd"; - public const string MUZZLECOMBO_AKM_762X39_KIBA_ARMS_308_MUZZLE_DEVICE_ADAPTER = - "615d8e9867085e45ef1409c6"; - public const string MUZZLECOMBO_ASE_UTRA_BORELOCK_THREAD_PROTECTOR = "673f3f2f40aeca974e0b5c66"; - public const string MUZZLECOMBO_AWC_PSR_MUZZLE_BRAKE_PROTECTOR = "612e0e04568c120fdd294258"; - public const string MUZZLECOMBO_GEMTECH_ONE_DIRECT_THREAD_MOUNT_ADAPTER = - "5c7954d52e221600106f4cc7"; - public const string MUZZLECOMBO_GK01_12GA_COMPENSATOR = "5580239d4bdc2de7118b4583"; - public const string MUZZLECOMBO_GK02_12GA_MUZZLE_BRAKE = "58272d7f2459774f6311ddfd"; - public const string MUZZLECOMBO_GLOCK_9X19_DOUBLE_DIAMOND_THREAD_PROTECTOR = - "5a6b592c8dc32e00094b97bf"; - public const string MUZZLECOMBO_GLOCK_9X19_LONE_WOLF_ALPHAWOLF_THREAD_PROTECTOR = - "5a6b585a8dc32e5a9c28b4f1"; - public const string MUZZLECOMBO_GLOCK_SAI_9X19_THREAD_PROTECTOR = "5a6b59a08dc32e000b452fb7"; - public const string MUZZLECOMBO_HK_MP5_3LUG_MUZZLE_ADAPTER = "5926e16e86f7742f5a0f7ecb"; - public const string MUZZLECOMBO_HK_MP5_NAVY_STYLE_3LUG_SUPPRESSOR_ADAPTER = - "5c0000c00db834001a6697fc"; - public const string MUZZLECOMBO_HK_USP_TACTICAL_THREAD_PROTECTOR = "6194f1f918a3974e5e7421e4"; - public const string MUZZLECOMBO_KRISS_VECTOR_45_ACP_THREAD_PROTECTOR = - "5fb6548dd1409e5ca04b54f9"; - public const string MUZZLECOMBO_KRISS_VECTOR_9X19_THREAD_PROTECTOR = "5fbbc34106bde7524f03cbe9"; - public const string MUZZLECOMBO_LANTAC_BMD_BLAST_MITIGATION_DEVICE_A3_DIRECT_THREAD_ADAPTER = - "5cf78496d7f00c065703d6ca"; - public const string MUZZLECOMBO_M700_STAINLESS_STEEL_THREAD_PROTECTOR = - "5d270ca28abbc31ee25ee821"; - public const string MUZZLECOMBO_M700_THREAD_PROTECTOR = "5d270b3c8abbc3105335cfb8"; - public const string MUZZLECOMBO_M9A3_THREAD_PROTECTOR = "5cadc390ae921500126a77f1"; - public const string MUZZLECOMBO_ME_CYLINDER_12GA_MUZZLE_ADAPTER = "5c0111ab0db834001966914d"; - public const string MUZZLECOMBO_MOSIN_RIFLE_KIBA_ARMS_762X54R_CUSTOM_THREAD_ADAPTER = - "5cf79389d7f00c10941a0c4d"; - public const string MUZZLECOMBO_MOSIN_RIFLE_TIGER_ROCK_762X51_THREAD_ADAPTER = - "5cf79599d7f00c10875d9212"; - public const string MUZZLECOMBO_MOSIN_RIFLE_WEAPON_TUNING_762X39_THREAD_ADAPTER = - "5cf67a1bd7f00c06585fb6f3"; - public const string MUZZLECOMBO_MP9_9X19_SOUND_SUPPRESSOR_MOUNT = "5de8f237bbaf010b10528a70"; - public const string MUZZLECOMBO_MTS25512_12GA_CHOKE = "619d36da53b4d42ee724fae4"; - public const string MUZZLECOMBO_P226_THREAD_PROTECTOR = "587de5ba2459771c0f1e8a58"; - public const string MUZZLECOMBO_PP9101_KEDRB_THREADED_SUPPRESSOR_ADAPTER = - "57f3c7e024597738ea4ba286"; - public const string MUZZLECOMBO_REMINGTON_TACTICAL_CHOKE_12GA = "560838c94bdc2d77798b4569"; - public const string MUZZLECOMBO_RFB_THREAD_PROTECTOR = "5f2aa4464b50c14bcf07acdb"; - public const string MUZZLECOMBO_RFB_THREAD_SPACER = "5f2aa43ba9b91d26f20ae6d2"; - public const string MUZZLECOMBO_RPD_BARREL_THREAD_PROTECTOR = "6513f0f5e63f29908d0ffab8"; - public const string MUZZLECOMBO_SAKO_TRG_338_LM_THREAD_PROTECTOR = "673f3f5eef7545280c00f026"; - public const string MUZZLECOMBO_SIG_SAUER_TAPERLOK_762X51300_BLK_MUZZLE_ADAPTER = - "5fbc22ccf24b94483f726483"; - public const string MUZZLECOMBO_SILENCERCO_HYBRID_46_DIRECT_THREAD_MOUNT_ADAPTER = - "59bffc1f86f77435b128b872"; - public const string MUZZLECOMBO_SILENCERCO_OMEGA_45K_DIRECT_THREAD_MOUNT_ADAPTER = - "5fc4b992187fea44d52edaa9"; - public const string MUZZLECOMBO_SILENCERCO_OMEGA_45K_PISTON_MOUNT_ADAPTER = - "5fc4b97bab884124df0cd5e3"; - public const string MUZZLECOMBO_SILENCERCO_SALVO_12_CHOKE_ADAPTER = "5b363dea5acfc4771e1c5e7e"; - public const string MUZZLECOMBO_SILENCERCO_SALVO_12_THREAD_ADAPTER = "5b363e1b5acfc4771e1c5e80"; - public const string MUZZLECOMBO_SKS_WEAPON_TUNING_762X39_THREAD_ADAPTER = - "5cf67cadd7f00c065a5abab7"; - public const string MUZZLECOMBO_SOK12_THREAD_PROTECTOR = "576167ab2459773cad038c43"; - public const string MUZZLECOMBO_SR2M_9X21_HAND_STOPPER = "62e2a754b6c0ee2f230cee0f"; - public const string MUZZLECOMBO_STEYR_AUG_RAT_WORX_556X45_MUZZLE_DEVICE_ADAPTER = - "630f27f04f3f6281050b94d7"; - public const string MUZZLECOMBO_SVDS_ROTOR_43_THREAD_ADAPTER = "5e01e9e273d8eb11426f5bc3"; - public const string MUZZLECOMBO_TROMIX_MONSTER_CLAW_12GA_MUZZLE_BRAKE = - "59fb137a86f7740adb646af1"; - public const string MUZZLECOMBO_UZI_9X19_3LUG_BARREL_RETAINING_NUT = "6698c9ba29e062525d0ad8b1"; - public const string MUZZLECOMBO_UZI_9X19_3LUG_BARREL_THREAD_PROTECTOR = - "6698c9c636ba38d291017711"; - public const string MUZZLECOMBO_UZI_9X19_BARREL_RETAINING_NUT = "6698c9aa36ba38d29101770f"; - public const string MUZZLECOMBO_UZI_PRO_9X19_BARREL_RETAINING_NUT = "668670e3fb75ee4a5e02eb16"; - public const string MUZZLECOMBO_UZI_PRO_9X19_MASADA_THREAD_PROTECTOR = - "668670f52a2296a8d909963c"; - public const string MUZZLECOMBO_VPO215_THREAD_PROTECTOR = "5de6556a205ddc616a6bc4f7"; - public const string NIGHTVISION_ARMASIGHT_N15_NIGHT_VISION_GOGGLES = "5c066e3a0db834001b7353f0"; - public const string NIGHTVISION_L3HARRIS_ANPVS14_NIGHT_VISION_MONOCULAR = - "57235b6f24597759bf5a30f1"; - public const string NIGHTVISION_L3HARRIS_GPNVG18_NIGHT_VISION_GOGGLES = - "5c0558060db834001b735271"; - public const string NIGHTVISION_PNV10T_NIGHT_VISION_GOGGLES = "5c0696830db834001d23f5da"; - public const string NIGHTVISION_PNV57E_NIGHT_VISION_GOGGLES = "67506ca81f18589016006aa6"; - public const string OPTICSCOPE_BELOMO_PSO1_4X24_SCOPE = "5c82342f2e221644f31c060e"; - public const string OPTICSCOPE_BELOMO_PSO1M2_4X24_SCOPE = "5c82343a2e221644f31c0611"; - public const string OPTICSCOPE_BELOMO_PSO1M21_4X24_SCOPE = "576fd4ec2459777f0b518431"; - public const string OPTICSCOPE_BURRIS_FULLFIELD_TAC30_14X24_30MM_RIFLESCOPE = - "5b2388675acfc4771e1be0be"; - public const string OPTICSCOPE_EOTECH_VUDU_16X24_30MM_RIFLESCOPE = "5b3b99475acfc432ff4dcbee"; - public const string OPTICSCOPE_HENSOLDT_FF_416X56_34MM_RIFLESCOPE = "56ea70acd2720b844b8b4594"; - public const string OPTICSCOPE_KMZ_1P59_310X_RIFLESCOPE = "5d0a3a58d7ad1a669c15ca14"; - public const string OPTICSCOPE_KMZ_1P69_310X_RIFLESCOPE = "5d0a3e8cd7ad1a6f6a3d35bd"; - public const string OPTICSCOPE_LEUPOLD_MARK_4_LR_6520X50_30MM_RIFLESCOPE = - "5a37cb10c4a282329a73b4e7"; - public const string OPTICSCOPE_LEUPOLD_MARK_5HD_525X56MM_35MM_RIFLESCOPE_FDE = - "676175789dcee773150c6925"; - public const string OPTICSCOPE_MARCH_TACTICAL_324X42_FFP_30MM_RIFLESCOPE = - "57c5ac0824597754771e88a9"; - public const string OPTICSCOPE_NCSTAR_ADO_P4_SNIPER_39X42_RIFLESCOPE = - "5dfe6104585a0c3e995c7b82"; - public const string OPTICSCOPE_NIGHTFORCE_ATACR_735X56_34MM_RIFLESCOPE = - "5aa66be6e5b5b0214e506e97"; - public const string OPTICSCOPE_NIGHTFORCE_NXS_2510X24_SCOPE = "544a3d0a4bdc2d1b388b4567"; - public const string OPTICSCOPE_NPZ_1P781_28X_SCOPE = "618a75f0bd321d49084cd399"; - public const string OPTICSCOPE_NPZ_USP1_TYULPAN_4X_SCOPE = "5cf638cbd7f00c06595bc936"; - public const string OPTICSCOPE_PAG17_SCOPE = "5d53f4b7a4b936793d58c780"; - public const string OPTICSCOPE_PU_35X_RIFLESCOPE = "5b3f7c1c5acfc40dc5296b1d"; - public const string OPTICSCOPE_SCHMIDT_BENDER_PM_II_18X24_30MM_RIFLESCOPE = - "617151c1d92c473c770214ab"; - public const string OPTICSCOPE_SCHMIDT_BENDER_PM_II_320X50_34MM_RIFLESCOPE = - "61714eec290d254f5e6b2ffc"; - public const string OPTICSCOPE_SCHMIDT_BENDER_PM_II_525X56_34MM_RIFLESCOPE = - "62850c28da09541f43158cca"; - public const string OPTICSCOPE_SIG_SAUER_TANGO6T_16X24_30MM_RIFLESCOPE = - "6567e7681265c8a131069b0f"; - public const string OPTICSCOPE_VOMZ_PILAD_4X32_254MM_RIFLESCOPE = "5dff772da3651922b360bf91"; - public const string OPTICSCOPE_VORTEX_RAZOR_HD_GEN2_16X24_30MM_RIFLESCOPE = - "618ba27d9008e4636a67f61d"; - public const string PISTOL_20X1MM_TOY_GUN = "66015072e9f84d5680039678"; - public const string PISTOL_BERETTA_M9A3_9X19 = "5cadc190ae921500103bb3b6"; - public const string PISTOL_COLT_M1911A1_45_ACP = "5e81c3cbac2bb513793cdc75"; - public const string PISTOL_COLT_M45A1_45_ACP = "5f36a0e5fbf956000b716b65"; - public const string PISTOL_FN_FIVESEVEN_MK2_57X28 = "5d3eb3b0a4b93615055e84d2"; - public const string PISTOL_FN_FIVESEVEN_MK2_57X28_PISTOL_FDE = "5d67abc1a4b93614ec50137f"; - public const string PISTOL_GLOCK_17_9X19 = "5a7ae0c351dfba0017554310"; - public const string PISTOL_GLOCK_18C_9X19_MACHINE = "5b1fa9b25acfc40018633c01"; - public const string PISTOL_GLOCK_19X_9X19 = "63088377b5cd696784087147"; - public const string PISTOL_HK_USP_45_ACP = "6193a720f8ee7e52e42109ed"; - public const string PISTOL_LEBEDEV_PL15_9X19 = "602a9740da11d6478d5a06dc"; - public const string PISTOL_MAGNUM_RESEARCH_DESERT_EAGLE_L5_357 = "669fa409933e898cce0c2166"; - public const string PISTOL_MAGNUM_RESEARCH_DESERT_EAGLE_L5_50_AE = "669fa3f88abd2662d80eee77"; - public const string PISTOL_MAGNUM_RESEARCH_DESERT_EAGLE_L6_50_AE = "669fa39b48fc9f8db6035a0c"; - public const string PISTOL_MAGNUM_RESEARCH_DESERT_EAGLE_L6_50_AE_PISTOL_WTS = - "669fa3d876116c89840b1217"; - public const string PISTOL_MAGNUM_RESEARCH_DESERT_EAGLE_MK_XIX_50_AE = - "668fe5a998b5ad715703ddd6"; - public const string PISTOL_MAKAROV_PM_9X18PM = "5448bd6b4bdc2dfc2f8b4569"; - public const string PISTOL_MAKAROV_PM_T_9X18PM = "579204f224597773d619e051"; - public const string PISTOL_PB_9X18PM_SILENCED = "56e0598dd2720bb5668b45a6"; - public const string PISTOL_SERDYUKOV_SR1MP_GYURZA_9X21 = "59f98b4986f7746f546d2cef"; - public const string PISTOL_SIG_P226R_9X19 = "56d59856d2720bd8418b456a"; - public const string PISTOL_STECHKIN_APB_9X18PM_SILENCED_MACHINE = "5abccb7dd8ce87001773e277"; - public const string PISTOL_STECHKIN_APS_9X18PM_MACHINE = "5a17f98cfcdbcb0980087290"; - public const string PISTOL_TT33_762X25_TT = "571a12c42459771f627b58a0"; - public const string PISTOL_TT33_762X25_TT_PISTOL_GOLDEN = "5b3b713c5acfc4330140bd8d"; - public const string PISTOL_YARYGIN_MP443_GRACH_9X19 = "576a581d2459771e7b1bc4f1"; - public const string PISTOLGRIP_9A91_PISTOL_GRIP = "6450f21a3d52156624001fcf"; - public const string PISTOLGRIP_AK_AEROKNOX_SCORPIUS_PISTOL_GRIP = "5f6341043ada5942720e2dc5"; - public const string PISTOLGRIP_AK_CUSTOM_ARMS_AGS74_PRO_SNIPER_KIT_PISTOL_GRIP = - "6087e663132d4d12c81fd96b"; - public const string PISTOLGRIP_AK_CUSTOM_GUNS_CG101_ARTYPE_PISTOL_GRIP_ADAPTER = - "648ae3e356c6310a830fc291"; - public const string PISTOLGRIP_AK_FAB_DEFENSE_AGR47_PISTOL_GRIP_FDE = - "623c3be0484b5003161840dc"; - public const string PISTOLGRIP_AK_KGB_MG47_PISTOL_GRIP = "5cf54404d7f00c108840b2ef"; - public const string PISTOLGRIP_AK_KGB_MG47_PISTOL_GRIP_ANODIZED_RED = - "5e2192a498a36665e8337386"; - public const string PISTOLGRIP_AK_MAGPUL_MOE_PISTOL_GRIP_BLACK = "5b30ac585acfc433000eb79c"; - public const string PISTOLGRIP_AK_MISSION_FIRST_TACTICAL_ENGAGE_AK47_PISTOL_GRIP = - "63f4da90f31d4a33b87bd054"; - public const string PISTOLGRIP_AK_MOLOT_BAKELITE_PISTOL_GRIP = "59e6318286f77444dd62c4cc"; - public const string PISTOLGRIP_AK_PUFGUN_SGM2_PISTOL_GRIP = "651580dc71a4f10aec4b6056"; - public const string PISTOLGRIP_AK_STRIKE_INDUSTRIES_ENHANCED_PISTOL_GRIP_BLACK = - "5cf50850d7f00c056e24104c"; - public const string PISTOLGRIP_AK_STRIKE_INDUSTRIES_ENHANCED_PISTOL_GRIP_FDE = - "5cf508bfd7f00c056e24104e"; - public const string PISTOLGRIP_AK_TANGODOWN_BATTLE_GRIP_PISTOL_GRIP = - "628a664bccaab13006640e47"; - public const string PISTOLGRIP_AK_TANGODOWN_BATTLE_GRIP_PISTOL_GRIP_FDE = - "628c9ab845c59e5b80768a81"; - public const string PISTOLGRIP_AK_TAPCO_SAWSTYLE_PISTOL_GRIP_BLACK = "5947f92f86f77427344a76b1"; - public const string PISTOLGRIP_AK_TAPCO_SAWSTYLE_PISTOL_GRIP_FDE = "5947fa2486f77425b47c1a9b"; - public const string PISTOLGRIP_AK_US_PALM_PISTOL_GRIP = "5c6bf4aa2e2216001219b0ae"; - public const string PISTOLGRIP_AK_ZENIT_RK3_PISTOL_GRIP = "5649ae4a4bdc2d1b2b8b4588"; - public const string PISTOLGRIP_AK12_PISTOL_GRIP = "5beec8ea0db834001a6f9dbf"; - public const string PISTOLGRIP_AK74_BAKELITE_PISTOL_GRIP = "5649ad3f4bdc2df8348b4585"; - public const string PISTOLGRIP_AK74_POLYMER_PISTOL_GRIP = "5649ade84bdc2d1b2b8b4587"; - public const string PISTOLGRIP_AKM_BAKELITE_PISTOL_GRIP = "59e62cc886f77440d40b52a1"; - public const string PISTOLGRIP_AKM_WOODEN_PISTOL_GRIP = "5a0071d486f77404e23a12b2"; - public const string PISTOLGRIP_AKS74U_BAKELITE_PISTOL_GRIP = "57e3dba62459770f0c32322b"; - public const string PISTOLGRIP_APS_BAKELITE_SIDEPIECES = "5a17fc70fcdbcb0176308b3d"; - public const string PISTOLGRIP_AR15_AEROKNOX_ORION_PISTOL_GRIP = "63f5feead259b42f0b4d6d0f"; - public const string PISTOLGRIP_AR15_COLT_A2_PISTOL_GRIP = "55d4b9964bdc2d1d4e8b456e"; - public const string PISTOLGRIP_AR15_DAMAGE_INDUSTRIES_ECS_PISTOL_GRIP_FDE = - "571659bb2459771fb2755a12"; - public const string PISTOLGRIP_AR15_DLG_TACTICAL_DLG123_PISTOL_GRIP = - "602e71bd53a60014f9705bfa"; - public const string PISTOLGRIP_AR15_F1_FIREARMS_SKELETONIZED_STYLE_1_PISTOL_GRIP = - "6113c3586c780c1e710c90bc"; - public const string PISTOLGRIP_AR15_F1_FIREARMS_SKELETONIZED_STYLE_2_PC_PISTOL_GRIP = - "6113cc78d3a39d50044c065a"; - public const string PISTOLGRIP_AR15_F1_FIREARMS_SKELETONIZED_STYLE_2_PISTOL_GRIP = - "6113cce3d92c473c770200c7"; - public const string PISTOLGRIP_AR15_HERA_ARMS_HG15_PISTOL_GRIP = "5cc9bcaed7f00c011c04e179"; - public const string PISTOLGRIP_AR15_HK_BATTLE_GRIP_BEAVERTAIL_PISTOL_GRIP = - "5bb20e0ed4351e3bac1212dc"; - public const string PISTOLGRIP_AR15_HK_BATTLE_GRIP_BEAVERTAIL_PISTOL_GRIP_RAL_8000 = - "6193dcd0f8ee7e52e4210a28"; - public const string PISTOLGRIP_AR15_HK_BATTLE_GRIP_PISTOL_GRIP = "5bb20e18d4351e00320205d5"; - public const string PISTOLGRIP_AR15_HK_ERGO_PSG1_STYLE_PISTOL_GRIP = "5d025cc1d7ad1a53845279ef"; - public const string PISTOLGRIP_AR15_HK_V2_PISTOL_GRIP = "5c6d7b3d2e221600114c9b7d"; - public const string PISTOLGRIP_AR15_MAGPUL_MIAD_PISTOL_GRIP_FDE = "5a339805c4a2826c6e06d73d"; - public const string PISTOLGRIP_AR15_MAGPUL_MOE_PISTOL_GRIP_BLACK = "55802f5d4bdc2dac148b458f"; - public const string PISTOLGRIP_AR15_MAGPUL_MOE_PISTOL_GRIP_FDE = "5d15cf3bd7ad1a67e71518b2"; - public const string PISTOLGRIP_AR15_NAROH_ARMS_GRALS_PISTOL_GRIP = "59db3a1d86f77429e05b4e92"; - public const string PISTOLGRIP_AR15_SIG_SAUER_REDUCED_ANGLE_PISTOL_GRIP_COYOTE_TAN = - "652911675ae2ae97b80fdf3c"; - public const string PISTOLGRIP_AR15_STARK_AR_RIFLE_GRIP_BLACK = "59db3acc86f7742a2c4ab912"; - public const string PISTOLGRIP_AR15_STARK_AR_RIFLE_GRIP_FDE = "59db3b0886f77429d72fb895"; - public const string PISTOLGRIP_AR15_TACTICAL_DYNAMICS_HEXGRIP_PISTOL_GRIP = - "615d8faecabb9b7ad90f4d5d"; - public const string PISTOLGRIP_AR15_TACTICAL_DYNAMICS_SKELETONIZED_PISTOL_GRIP = - "5b07db875acfc40dc528a5f6"; - public const string PISTOLGRIP_AS_VAL_PISTOL_GRIP_BLACK = "6565b91666492762f5029c0b"; - public const string PISTOLGRIP_AS_VAL_PISTOL_GRIP_PLUM = "57c44fa82459772d2d75e415"; - public const string PISTOLGRIP_AS_VAL_ROTOR_43_PISTOL_GRIP_WITH_BUFFER_TUBE = - "5a69a2ed8dc32e000d46d1f1"; - public const string PISTOLGRIP_BENELLI_M3_TELESCOPIC_STOCK_PISTOL_GRIP = - "6259c3d8012d6678ec38eeb8"; - public const string PISTOLGRIP_CHIAPPA_RHINO_PLASTIC_PISTOL_GRIP = "619f4ab2d25cbd424731fb95"; - public const string PISTOLGRIP_CHIAPPA_RHINO_WOODEN_PISTOL_GRIP = "619f4bffd25cbd424731fb97"; - public const string PISTOLGRIP_DESERT_EAGLE_HOGUE_RUBBER_GRIP = "668fe5d42a0f85eea407cc16"; - public const string PISTOLGRIP_DESERT_EAGLE_HOGUE_RUBBER_GRIP_WITH_FINGER_GROOVES = - "66a0da76b6f47fcfeb025e96"; - public const string PISTOLGRIP_GLOCK_PACHMAYR_TACTICAL_GRIP_GLOVE = "5a7b4960e899ef197b331a2d"; - public const string PISTOLGRIP_HOGUE_OVERMOLDED_RUBBER_GRIP_BLACK = "57c55efc2459772d2c6271e7"; - public const string PISTOLGRIP_HOGUE_OVERMOLDED_RUBBER_GRIP_FDE = "57af48872459771f0b2ebf11"; - public const string PISTOLGRIP_HOGUE_OVERMOLDED_RUBBER_GRIP_GHILLIE_EARTH = - "57c55f092459772d291a8463"; - public const string PISTOLGRIP_HOGUE_OVERMOLDED_RUBBER_GRIP_GHILLIE_GREEN = - "57c55f112459772d28133310"; - public const string PISTOLGRIP_HOGUE_OVERMOLDED_RUBBER_GRIP_OLIVE_DRAB = - "57c55f172459772d27602381"; - public const string PISTOLGRIP_KS23M_PISTOL_GRIP = "5e848d99865c0f329958c83b"; - public const string PISTOLGRIP_M14_SAGE_INTERNATIONAL_M14ALCS_MOD0_PISTOL_GRIP = - "5addc7db5acfc4001669f279"; - public const string PISTOLGRIP_M1911_KIBA_ARMS_GENEBURN_CUSTOM_SIDE_GRIPS = - "626a9cb151cb5849f6002890"; - public const string PISTOLGRIP_M1911_PACHMAYR_AMERICAN_LEGEND_GRIP_423 = - "5ef366938cef260c0642acad"; - public const string PISTOLGRIP_M1911A1_SIDE_GRIPS = "5e81c6bf763d9f754677beff"; - public const string PISTOLGRIP_M45A1_MILTAC_GVT_G10_SIDE_GRIPS = "5f3e778efcd9b651187d7201"; - public const string PISTOLGRIP_M60E4_PISTOL_GRIP = "660125bf1d087a96c60a54db"; - public const string PISTOLGRIP_M60E4_TRIGGER_GROUP = "6601257f1347bc1a5f0f4db6"; - public const string PISTOLGRIP_M60E6_PISTOL_GRIP = "66152060a031cbb5570e3466"; - public const string PISTOLGRIP_M60E6_PISTOL_GRIP_FDE = "6615211ca031cbb5570e346d"; - public const string PISTOLGRIP_M60E6_TRIGGER_GROUP = "6615208aa031cbb5570e346a"; - public const string PISTOLGRIP_M60E6_TRIGGER_GROUP_FDE = "66152153a031cbb5570e346f"; - public const string PISTOLGRIP_M700_MAGPUL_PRO_700_PISTOL_GRIP = "5cdeac5cd7f00c000f261694"; - public const string PISTOLGRIP_M870_FAB_DEFENSE_AGR870_PISTOL_GRIP = "5bfe86a20db834001d23e8f7"; - public const string PISTOLGRIP_M9A3_POLYMER_SIDE_GRIPS = "5cadc431ae921500113bb8d5"; - public const string PISTOLGRIP_MCX_PISTOL_GRIP = "5fbcbd6c187fea44d52eda14"; - public const string PISTOLGRIP_MDR_PISTOL_GRIP_BLACK = "5dcbd6dddbd3d91b3e5468de"; - public const string PISTOLGRIP_MDR_PISTOL_GRIP_FDE = "5c48a2c22e221602b313fb6c"; - public const string PISTOLGRIP_MOSIN_RIFLE_TACFIRE_PISTOL_GRIP = "5bbde41ed4351e003562b038"; - public const string PISTOLGRIP_MP155_ULTIMA_PISTOL_GRIP = "606eef46232e5a31c233d500"; - public const string PISTOLGRIP_MP443_GRACH_POLYMER_PISTOL_GRIP = "576a63cd2459771e796e0e11"; - public const string PISTOLGRIP_MPX_PISTOL_GRIP = "5894a51286f77426d13baf02"; - public const string PISTOLGRIP_ORSIS_T5000M_PISTOL_GRIP = "5df38a5fb74cd90030650cb6"; - public const string PISTOLGRIP_P226_AXELSON_TACTICAL_MK25_PISTOL_GRIP = - "5bffec120db834001c38f5fa"; - public const string PISTOLGRIP_P226_COMBAT_PISTOL_GRIP_FDE = "57c9a89124597704ee6faec1"; - public const string PISTOLGRIP_P226_EMPEROR_SCORPION_PISTOL_GRIP = "5c0006470db834001a6697fe"; - public const string PISTOLGRIP_P226_HOGUE_G10_CHAIN_LINK_PISTOL_GRIP = - "5bffef760db8340019668fe4"; - public const string PISTOLGRIP_P226_HOGUE_RUBBERIZED_PISTOL_GRIP = "5b39ffbd5acfc47a8773fb06"; - public const string PISTOLGRIP_P226_POLYMER_PISTOL_GRIP_BLACK = "56d5a2bbd2720bb8418b456a"; - public const string PISTOLGRIP_P226_STAINLESS_ELITE_WOODEN_PISTOL_GRIP = - "5c00076d0db834001d23ee1f"; - public const string PISTOLGRIP_PB_BAKELITE_SIDE_GRIPS = "56e05a6ed2720bd0748b4567"; - public const string PISTOLGRIP_PK_PISTOL_GRIP = "646371779f5f0ea59a04c204"; - public const string PISTOLGRIP_PK_PISTOL_GRIP_BLACK = "64cbad529f7cf7f75c077fd5"; - public const string PISTOLGRIP_PM_BAKELITE_GRIP = "6374a7e7417239a7bf00f042"; - public const string PISTOLGRIP_PM_FAB_DEFENSE_PMG_PISTOL_GRIP = "637784c5f7b3f4ac1a0d1a9a"; - public const string PISTOLGRIP_PM_FAB_DEFENSE_PMG_PISTOL_GRIP_OLIVE_DRAB = - "648afce7ec6bb25b2608defb"; - public const string PISTOLGRIP_PM_PMLASER_GRIP_WITH_LASER_SIGHT = "661f8995c341ea101e0d33e8"; - public const string PISTOLGRIP_PM_TACTIC_KIT_PISTOL_GRIP = "637b6d610aef6cfc5e02dd14"; - public const string PISTOLGRIP_PP1901_VITYAZ_PISTOL_GRIP = "5998517986f7746017232f7e"; - public const string PISTOLGRIP_PP91_KEDR_POLYMER_PISTOL_GRIP = "57d152ec245977144076ccdf"; - public const string PISTOLGRIP_RPD_WOODEN_PISTOL_GRIP = "6513f13a8cb24472490ee32f"; - public const string PISTOLGRIP_RSH12_PISTOL_GRIP = "633ec8e4025b096d320a3b1e"; - public const string PISTOLGRIP_SA58_FAB_DEFENSE_AGFAL_PISTOL_GRIP = "5b7d679f5acfc4001a5c4024"; - public const string PISTOLGRIP_SA58_PISTOL_GRIP = "5b7d678a5acfc4001a5c4022"; - public const string PISTOLGRIP_SA58_SAWSTYLE_PISTOL_GRIP_BLACK = "5b099b965acfc400186331e6"; - public const string PISTOLGRIP_SKS_TAPCO_INTRAFUSE_SAWSTYLE_PISTOL_GRIP = - "5afd7e445acfc4001637e35a"; - public const string PISTOLGRIP_SKSVZ58_FAB_DEFENSE_AG58_PISTOL_GRIP = - "5d023784d7ad1a049d4aa7f2"; - public const string PISTOLGRIP_SR2M_PISTOL_GRIP_BLACK = "637ba29bf7ca6372bf2613db"; - public const string PISTOLGRIP_SR2M_PISTOL_GRIP_PLUM = "637b9c37b7e3bc41b21ce71a"; - public const string PISTOLGRIP_SVDS_LYNX_ARMS_AKSERIES_PISTOL_GRIP_ADAPTER = - "6516b129609aaf354b34b3a8"; - public const string PISTOLGRIP_SVDS_PISTOL_GRIP = "5c471be12e221602b66cd9ac"; - public const string PISTOLGRIP_TOZ106_002_PISTOL_GRIP = "5a38eecdc4a282329a73b512"; - public const string PISTOLGRIP_TT_HOGUELIKE_RUBBER_GRIP = "5c0684e50db834002a12585a"; - public const string PISTOLGRIP_TT_ORNATED_SIDE_GRIPS = "5b3cadf35acfc400194776a0"; - public const string PISTOLGRIP_TT_PMLASER_TT206_SIDE_GRIPS_WITH_LASER_SIGHT = - "5bffcf7a0db83400232fea79"; - public const string PISTOLGRIP_TT_RAZOR_ARMS_RUBBER_GRIP = "5c079ec50db834001966a706"; - public const string PISTOLGRIP_TT_SIDE_GRIPS = "571a282c2459771fb2755a69"; - public const string PISTOLGRIP_UZI_PISTOL_GRIP_COVER = "669946c157df3e2b4e0a0dc5"; - public const string PLANTINGKITS_TRIPWIRE_INSTALLATION_KIT = "666b11055a706400b717cfa5"; - public const string POCKETS_1X3 = "60c7272c204bc17802313365"; - public const string POCKETS_1X4 = "557ffd194bdc2d28148b457f"; - public const string POCKETS_1X4_SPECIAL = "627a4e6b255f7527fb05a0f6"; - public const string POCKETS_1X4_TUE = "65e080be269cbd5c5005e529"; - public const string POCKETS_2X3 = "64cbd95a29b9b4283e216ff5"; - public const string POCKETS_LARGE = "5af99e9186f7747c447120b8"; - public const string QUEST_ACCOUNTANTS_JOURNAL = "638cbb0f7f97256fac16167a"; - public const string QUEST_ACCOUNTANTS_NOTES = "63a943cead5cc12f22161ff7"; - public const string QUEST_AG_GUITAR_PICK = "638df4cc7b560b03794a18d2"; - public const string QUEST_ARENA_POSTER_BISON = "664a5775f3d3570fba06be64"; - public const string QUEST_ARENA_POSTER_EASY_MONEY = "664b69e8e1238e506d3630af"; - public const string QUEST_ARENA_POSTER_KILLA = "664b69c5a082271bc46c4e11"; - public const string QUEST_BANK_CASE = "590dde5786f77405e71908b2"; - public const string QUEST_BATTERED_DIARY = "666073159916667083033cb9"; - public const string QUEST_BLOOD_SAMPLE = "5a687e7886f7740c4a5133fb"; - public const string QUEST_BLOOD_SAMPLE_NF2024 = "66a0f0926fee20fa70036da6"; - public const string QUEST_BOTTLE_OF_LE_JEAN_WINE = "6582bd252b50c61c565828e2"; - public const string QUEST_BOX_WITH_UPGRADED_TOOLS = "675f80d4fe1b59cf490d3527"; - public const string QUEST_BTR_QUEST_ELECTRONIC_JAMMING_DEVICE = "67499d4deca8acb2d206163b"; - public const string QUEST_CADASTRAL_REGISTRY_RECORDS = "657acb2ac900be5902191ac9"; - public const string QUEST_CARBON_CASE = "5910922b86f7747d96753483"; - public const string QUEST_CARGO_FOR_PRAPOR = "67499adbeca8acb2d2061634"; - public const string QUEST_CASE_FROM_SAFETY_DEPOSIT_BOX = "590de5d986f77417a4293192"; - public const string QUEST_CASE_WITH_PRECISION_TOOLS = "66b22630a6b4e5ec7c02cdb7"; - public const string QUEST_CHEFS_DIARY = "64f69b4267e11a7c6206e010"; - public const string QUEST_CHEMCONT_SAMPLES = "63927b29c115f907b14700b9"; - public const string QUEST_CHEMICAL_CONTAINER = "66a0e523e749756c920d02d0"; - public const string QUEST_CHEMICAL_CONTAINER_1 = "5b43237186f7742f3a4ab252"; - public const string QUEST_CHEMICAL_CONTAINER_2 = "5b4c81a086f77417d26be63f"; - public const string QUEST_CHEMICAL_CONTAINER_3 = "5b4c81bd86f77418a75ae159"; - public const string QUEST_CHEMICAL_SAMPLE = "669fac549b0ce3feae01a137"; - public const string QUEST_CLOTHES_DESIGN_HANDBOOK_PART_1 = "5ae9a3f586f7740aab00e4e6"; - public const string QUEST_CLOTHES_DESIGN_HANDBOOK_PART_2 = "5ae9a4fc86f7746e381e1753"; - public const string QUEST_CONTAINER_WITH_SUSPICIOUS_SUBSTANCE = "679b98e429acd1f2f60985a3"; - public const string QUEST_DELIVERY_CREW_REPORT = "675f7b168d28a25ec7007dbb"; - public const string QUEST_EASY_MONEY_POSTER_PACK = "664b69f3a082271bc46c4e13"; - public const string QUEST_ENCRYPTED_MESSAGE = "5d3ec50586f774183a607442"; - public const string QUEST_FLASH_DRIVE_WITH_FAKE_INFO = "5c12301c86f77419522ba7e4"; - public const string QUEST_FLASHDRIVE_CAR_SERVICE = "638cbb3ba63f1b49be6a300e"; - public const string QUEST_FLASHDRIVE_TERRAGROUP_EMPLOYEE = "5eff135be0d3331e9d282b7b"; - public const string QUEST_FLASHDRIVE_WATCHING_YOU = "638e9d5536b3b72c944e2fc7"; - public const string QUEST_FLASHDRIVE_WET_JOB_PT_4 = "5a29357286f77409c705e025"; - public const string QUEST_GAMING_MAGAZINE = "667a8ef464eea5fdef0db135"; - public const string QUEST_GOLDEN_ZIBBO_LIGHTER = "5939a00786f7742fe8132936"; - public const string QUEST_GOSHAN_CARGO_MANIFESTS = "5ae9a0dd86f7742e5f454a05"; - public const string QUEST_HARD_DRIVE = "661666458c2aa9cb1602503b"; - public const string QUEST_HARD_DRIVE_TERRAGROUP_SCIENTIST = "6575a6ca8778e96ded05a802"; - public const string QUEST_HDD_SURVEILLANCE = "638dfc803083a019d447768e"; - public const string QUEST_HDD_TOP_SECRET = "628393620d8524273e7eb028"; - public const string QUEST_HDD_UNUSED = "66760b3deb51b08bd40c2b08"; - public const string QUEST_HDD_WET_JOB = "5a29276886f77435ed1b117c"; - public const string QUEST_HOUSING_JOURNAL = "638e0057ab150a5f56238960"; - public const string QUEST_IDEA_CARGO_MANIFESTS = "5ae9a1b886f77404c8537c62"; - public const string QUEST_INCRIMINATING_LETTER = "67499d0eeca8acb2d2061639"; - public const string QUEST_INFECTED_BLOOD_SAMPLE = "6707cc67cc1667e49e0f7232"; - public const string QUEST_INFORMANT_JOURNAL = "63989ced706b793c7d60cfef"; - public const string QUEST_JOURNAL = "64f07f7726cfa02c506f8ac0"; - public const string QUEST_KEY_TO_THE_CLOSED_PREMISES_OF_THE_HEALTH_RESORT = - "5a0448bc86f774736f14efa8"; - public const string QUEST_KNOSSOS_SENIOR_MANAGERS_DIARY = "679b9a1a4e4ed4b3b40ae5c2"; - public const string QUEST_KOSA_UAV_ELECTRONIC_JAMMING_DEVICE = "67499b9b909d2013670a5029"; - public const string QUEST_LAB_JOURNAL = "66c0b39ca1f68fcc1d0c0cc3"; - public const string QUEST_LEDX_SKIN_TRANSILLUMINATOR_US_VERSION = "666879d498b97e3a8f09f1ae"; - public const string QUEST_LETTER_GOT_MAIL = "638cbc68a63f1b49be6a3010"; - public const string QUEST_LETTER_HERMIT = "61904c9df62c89219a56e034"; - public const string QUEST_LETTER_POSTMAN_PAT = "591093bb86f7747caa7bb2ee"; - public const string QUEST_LETTER_TERRAGROUP = "5939e9b286f77462a709572c"; - public const string QUEST_LIGHTKEEPER_BTR_QUEST_RPG_AMMO_CASE = "67499d2c69a58fceba104a43"; - public const string QUEST_LIGHTKEEPER_INTEL = "6398a072e301557ae24cec92"; - public const string QUEST_LIGHTKEEPER_INTEL_2 = "638e0752ab150a5f56238962"; - public const string QUEST_LIGHTKEEPER_INTEL_2_FORGED = "638e06c4b8bac37a110ed56d"; - public const string QUEST_LIGHTKEEPER_INTEL_FORGED = "6398a0861c712b1e1d4dadf1"; - public const string QUEST_LIGHTKEEPERS_CASE = "67499b3eeca8acb2d2061636"; - public const string QUEST_MARKED_OPHTHALMOSCOPE = "5efdaf6de6a30218ed211a48"; - public const string QUEST_MBT_INTEGRATED_NAVIGATION_SYSTEM = "60c080eb991ac167ad1c3ad4"; - public const string QUEST_MEDICAL_RECORD = "6393262086e646067c176aa2"; - public const string QUEST_MEDICAL_RECORD_1 = "608c22a003292f4ba43f8a1a"; - public const string QUEST_MEDICAL_RECORD_2 = "60a3b5b05f84d429b732e934"; - public const string QUEST_MILITARY_DOCUMENTS_1 = "60915994c49cf53e4772cc38"; - public const string QUEST_MILITARY_DOCUMENTS_2 = "60a3b6359c427533db36cf84"; - public const string QUEST_MILITARY_DOCUMENTS_3 = "60a3b65c27adf161da7b6e14"; - public const string QUEST_MOTOR_CONTROLLER_1 = "5af04c0b86f774138708f78e"; - public const string QUEST_MOTOR_CONTROLLER_2 = "5b4c72b386f7745b453af9c0"; - public const string QUEST_MOTOR_CONTROLLER_3 = "5b4c72c686f77462ac37e907"; - public const string QUEST_NOTE_FOR_THERAPIST = "5ae9a34d86f7740aab00e4de"; - public const string QUEST_OLI_CARGO_MANIFESTS = "5ae9a18586f7746e381e16a3"; - public const string QUEST_OLI_CARGO_ROUTE_DOCUMENTS = "5ae9a25386f7746dd946e6d9"; - public const string QUEST_PACKAGE_FOR_PRAPOR = "67499a9669a58fceba104a41"; - public const string QUEST_PACKAGE_OF_GRAPHICS_CARDS = "5ac620eb86f7743a8e6e0da0"; - public const string QUEST_PARAMEDICS_GPHONE_X = "64f09c02b63b74469b6c149f"; - public const string QUEST_PHOTO_ALBUM = "5d357d6b86f7745b606e3508"; - public const string QUEST_PICTURE_1 = "64e73909cd54ef0580746af3"; - public const string QUEST_PICTURE_10 = "64e74a534d49d23b2c39d31b"; - public const string QUEST_PICTURE_11 = "64e74a5ac2b4f829615ec336"; - public const string QUEST_PICTURE_12 = "64e74a64aac4cd0a7264ecdf"; - public const string QUEST_PICTURE_2 = "64e74a186393886f74114a96"; - public const string QUEST_PICTURE_3 = "64e74a1faac4cd0a7264ecd9"; - public const string QUEST_PICTURE_4 = "64e74a274d49d23b2c39d317"; - public const string QUEST_PICTURE_5 = "64e74a2fc2b4f829615ec332"; - public const string QUEST_PICTURE_6 = "64e74a35aac4cd0a7264ecdb"; - public const string QUEST_PICTURE_7 = "64e74a3d4d49d23b2c39d319"; - public const string QUEST_PICTURE_8 = "64e74a44c2b4f829615ec334"; - public const string QUEST_PICTURE_9 = "64e74a4baac4cd0a7264ecdd"; - public const string QUEST_PILOT_LOGBOOK = "66c0b90c8398582e4b0c2e27"; - public const string QUEST_PUMPING_STATION_OPERATION_REPORT = "619268ad78f4fa33f173dbe5"; - public const string QUEST_RADIO_TRANSMITTER_BODY = "6399f54b0a36db13c823ad21"; - public const string QUEST_RECRUITERS_NOTES = "67f3fd9bdb1fbd5add090f96"; - public const string QUEST_REF_DIRT = "664fce7a90294949fe2d81cb"; - public const string QUEST_SECRET_COMPONENT = "64f5b4f71a5f313cb144c06c"; - public const string QUEST_SECURE_FLASH_DRIVE = "59f9ddae86f77407ab46e047"; - public const string QUEST_SECURE_FLASH_DRIVE_V3 = "6331bb0d1aa9f42b804997a6"; - public const string QUEST_SECURE_FOLDER_0013 = "5939e5a786f77461f11c0098"; - public const string QUEST_SECURE_FOLDER_0022 = "591092ef86f7747bb8703422"; - public const string QUEST_SECURE_FOLDER_0031 = "5938188786f77474f723e87f"; - public const string QUEST_SECURE_FOLDER_0048 = "593965cf86f774087a77e1b6"; - public const string QUEST_SECURE_FOLDER_0052 = "5938878586f7741b797c562f"; - public const string QUEST_SECURE_FOLDER_0060 = "5a6860d886f77411cd3a9e47"; - public const string QUEST_SECURED_TAPE = "6398a4cfb5992f573c6562b3"; - public const string QUEST_SINGLEAXIS_FIBER_OPTIC_GYROSCOPE_1 = "5af04e0a86f7743a532b79e2"; - public const string QUEST_SINGLEAXIS_FIBER_OPTIC_GYROSCOPE_2 = "5b4c72fb86f7745cef1cffc5"; - public const string QUEST_SKIER_AND_PEACEKEEPER_CORRESPONDENCE = "6614238e0d240a5f5d0f679d"; - public const string QUEST_SKIERS_WALLET = "675f7f224076a741a3061568"; - public const string QUEST_SLAUGHTER_VIDEOTAPE = "679b998180a165f7a40b4c2c"; - public const string QUEST_SLIDERKEY_SECURE_FLASH_DRIVE = "590c62a386f77412b0130255"; - public const string QUEST_STOLEN_MILITARY_DOCUMENTS = "61a00bcb177fb945751bbe6a"; - public const string QUEST_STOLEN_WEAPON_CASE = "671a406a6d315b526708f103"; - public const string QUEST_SURGERY_KIT_MARKED_WITH_A_BLUE_SYMBOL = "5efdafc1e70b5e33f86de058"; - public const string QUEST_SYRINGE_WITH_A_CHEMICAL = "593a87af86f774122f54a951"; - public const string QUEST_T90M_COMMANDER_CONTROL_PANEL = "609267a2bb3f46069c3e6c7d"; - public const string QUEST_TARKOV_CITY_SOUVENIR_KEY = "66687bc89111279d600b5062"; - public const string QUEST_TERRAGROUP_SHIPMENT_REPORT = "675f7acc4076a741a3061566"; - public const string QUEST_TEST_KEY = "5a043f2c86f7741aa57b5145"; - public const string QUEST_TGVI24_SAMPLE = "6707cd70aab679420007e018"; - public const string QUEST_TOUGHBOOK_CARGO = "5a29284f86f77463ef3db363"; - public const string QUEST_TOUGHBOOK_SEASIDE_VACATION = "619252352be33f26043400a7"; - public const string QUEST_TRUE_VACCINE_RECIPE = "6707d1f9571b50abc703b651"; - public const string QUEST_UAV_SAS_DISK_1 = "5a294d7c86f7740651337cf9"; - public const string QUEST_UAV_SAS_DISK_2 = "5a294d8486f774068638cd93"; - public const string QUEST_UNHEARD_LAPTOP = "661421c7c1f2f548c50ee649"; - public const string QUEST_UNHEARD_LAPTOP_2 = "661423200d240a5f5d0f679b"; - public const string QUEST_UNHEARD_PHONE = "6614217b6d9d5abcad0ff098"; - public const string QUEST_UNHEARD_PHONE_2 = "6614230055afee107f05e998"; - public const string QUEST_VACCINE_SAMPLE_IV = "6707cf827d279daad80fa95f"; - public const string QUEST_VO_SIGNED_DIARY = "6707cef3571b50abc703b64f"; - public const string QUEST_VPX_FLASH_STORAGE_MODULE_MARKED_GROUP_3 = "679b9aa490622daf9708da73"; - public const string QUEST_WATCH_BRONZE = "5937fd0086f7742bf33fc198"; - public const string QUEST_WATCH_GOLD = "590de92486f77423d9312a33"; - public const string QUEST_WATCH_SILVER = "5937fc6786f7742cab753590"; - public const string QUEST_WATER_PUMP_OPERATION_DATA = "619268de2be33f2604340159"; - public const string RADIOTRANSMITTER_DIGITAL_SECURE_DSP_RADIO_TRANSMITTER = - "62e910aaf957f2915e0a5e36"; - public const string RANDOMLOOTCONTAINER_ARENA_GEARCRATE_BLUE_OPEN = "665730fa4de4820934746c48"; - public const string RANDOMLOOTCONTAINER_ARENA_GEARCRATE_BP_SEASON0_OPEN = - "67cad3226bf74131800752b7"; - public const string RANDOMLOOTCONTAINER_ARENA_GEARCRATE_GREEN_OPEN = "6658876e146af22739040fad"; - public const string RANDOMLOOTCONTAINER_ARENA_GEARCRATE_VIOLET_OPEN = - "6658291eefd94e2d665b14a4"; - public const string RANDOMLOOTCONTAINER_ARENA_JEWELRYCRATE_BLUE_OPEN = - "66573310a1657263d816a139"; - public const string RANDOMLOOTCONTAINER_ARENA_JEWELRYCRATE_GREEN_OPEN = - "665886abdaadd1069736c539"; - public const string RANDOMLOOTCONTAINER_ARENA_JEWELRYCRATE_VIOLET_OPEN = - "665829a6efd94e2d665b14a8"; - public const string RANDOMLOOTCONTAINER_ARENA_JUNKCRATE_BLUE_OPEN = "665732f4464c4b4ba4670fa9"; - public const string RANDOMLOOTCONTAINER_ARENA_JUNKCRATE_GREEN_OPEN = "6658892e6e007c6f33662002"; - public const string RANDOMLOOTCONTAINER_ARENA_JUNKCRATE_VIOLET_OPEN = - "66582972ac60f009f270d2aa"; - public const string RANDOMLOOTCONTAINER_ARENA_WEAPONCRATE_BLUE_OPEN = - "665732e7ac60f009f270d1ef"; - public const string RANDOMLOOTCONTAINER_ARENA_WEAPONCRATE_GREEN_OPEN = - "665888282c4a1b73af576b77"; - public const string RANDOMLOOTCONTAINER_ARENA_WEAPONCRATE_VIOLET_OPEN = - "665829424de4820934746ce6"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_01 = "64897ffc3656831810043165"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_02 = "64898e9db18e646e992aba47"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_03 = "648990314b4d2b31b63a46fc"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_04 = "648996987063b903ff4b8561"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_05 = "6489981f7063b903ff4b8565"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_06 = "64899a35fc093676bb0f57e3"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_07 = "64899ec0a236de328b12db52"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_08 = "64899f4189de40533661a0c0"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_09 = "6489a0a4fc493c59d15fec05"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_10 = "6489a233a236de328b12db56"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_11 = "6489a344fc493c59d15fec0f"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_12 = "6489a7d87063b903ff4b85cc"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_13 = "6489a97645f9ca4ba51c4dd0"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_14 = "6489aa584b6fc03d00374e59"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_15 = "6489ab9645f9ca4ba51c4dd7"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_16 = "6489b2b131a2135f0d7d0fcb"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_17 = "6489b73cebac5a4a1b73cab7"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_18 = "6489b88bcf0cd80b7e749069"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_19 = "6489b91dd0c36c0a4925c4b4"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_20 = "6489b99eebac5a4a1b73cabc"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_21 = "6489ba157c07471efa3e03b4"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_22 = "6489ba92a74e43447b64d5e2"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_23 = "6489bbd6d0c36c0a4925c4b8"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_24 = "6489bd7b79295b4f753d486a"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_25 = "6489bed4a53c8c047c3dc361"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_26 = "6489bfa844d98e01bc4c420e"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_27 = "6489c03c8bc5233fdc78e788"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_28 = "6489c0508bc5233fdc78e78c"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_29 = "6489c0df7c07471efa3e03b8"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_30 = "6489c0f731a2135f0d7d0fd5"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_31 = "6489c12f8bc5233fdc78e790"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_32 = "6489c164a53c8c047c3dc365"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_33 = "6489c200cf0cd80b7e74906d"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_34 = "6489c2aad0c36c0a4925c4bc"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_35 = "6489c30331a2135f0d7d0fd9"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_36 = "6489c46eebac5a4a1b73cac0"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_37 = "6489c5cb44d98e01bc4c4212"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_38 = "6489c65cd0c36c0a4925c4c0"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_39 = "6489c753a74e43447b64d5e6"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_40 = "6489c80e7c07471efa3e03bc"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_41 = "6489c8a1a53c8c047c3dc369"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_42 = "6489c8dba53c8c047c3dc36d"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_43 = "6489c99f7c07471efa3e03c0"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_44 = "6489ca66d0c36c0a4925c4c4"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_45 = "6489cad98bc5233fdc78e794"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_46 = "6489cb4fa74e43447b64d5ea"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_47 = "6489cc4379295b4f753d486e"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_48 = "6489cca131a2135f0d7d0fdd"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_49 = "6489d812cf0cd80b7e749071"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_50 = "6489d89debac5a4a1b73caf7"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_CONTRABAND_FAKE = - "674098588466ebb03408b210"; - public const string RANDOMLOOTCONTAINER_EVENT_CONTAINER_CONTRABAND_MAIN = - "674078c4a9c9adf0450d59f9"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_LATAM_DROPS_2025_COMMON = - "67b70e43f753cf9f7a0a07a6"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_LATAM_DROPS_2025_EPIC = - "67b72c64f753cf9f7a0a07aa"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_LATAM_DROPS_2025_RARE = - "67b72271e5673725070b0456"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_COMMON = - "6694f4101ae1778e310f4f8e"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_COMMON_PLUS_1 = - "66a3896972c8e72507028806"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_COMMON_PLUS_2 = - "66a3896de45f71bf1009e45a"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_EPIC = - "6694f423909d2322a8073151"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_EPIC_PLUS_1 = - "66a389c0705adefa710cdeaa"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_EPIC_PLUS_2 = - "66a389c60982fc7e4c091c51"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_RARE = - "6694f418c74d8a180f0f78c0"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_RARE_PLUS_1 = - "66a3898c1df2a447cc0d3c35"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_RARE_PLUS_2 = - "66a3898f0982fc7e4c091c4d"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY0 = - "676a93c51888885b4e008b18"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY1 = - "676a95041888885b4e008b36"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY2 = - "676a98d7b4ba2f4afa04c704"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY3 = - "676a9a5c744595610f0ed501"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY4 = - "676a9b15b4ba2f4afa04c7ad"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY5 = - "676a9b1afe1fc45172014d32"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY6 = - "676a9bc6744595610f0ed52e"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY0 = - "676aa104fe1fc45172014da3"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY1 = - "676aa29243000db5340061b5"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY2 = - "676aa30ffe1fc45172014dce"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY3 = - "676aa37ff90b6f429601afb5"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY4 = - "676aa3cf7a232aa5c70bda8d"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY5 = - "676aa3fc20a7cc6f4309e078"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY6 = - "676aa450fe1fc45172014df2"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY0 = - "676a9da81888885b4e008c51"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY1 = - "676a9e46744595610f0ed53f"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY2 = - "676a9f03744595610f0ed55f"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY3 = - "676a9fc7a65670a58c084c9e"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY4 = - "676aa016744595610f0ed563"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY5 = - "676aa025fe1fc45172014d9f"; - public const string RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY6 = - "676aa0f11888885b4e008c8b"; - public const string RANDOMLOOTCONTAINER_NEW_YEAR_GIFT_BIG = "63a897c6b1ff6e29734fcc95"; - public const string RANDOMLOOTCONTAINER_NEW_YEAR_GIFT_MEDIUM = "63a898a328e385334e0640a5"; - public const string RANDOMLOOTCONTAINER_NEW_YEAR_GIFT_SMALL = "63a8970d7108f713591149f5"; - public const string RANDOMLOOTCONTAINER_PUMPKIN_RAND_LOOT_CONTAINER = - "634959225289190e5e773b3b"; - public const string RANDOMLOOTCONTAINER_RAND_LOOT_CONTAINER_TWITCH_EVENT = - "66aa3a180d6ecb50a21a4e1a"; - public const string RANDOMLOOTCONTAINER_RAND_LOOT_CONTAINER_TWITCH_EVENT_PLUS_1 = - "66aa3a31efb1b8119f0196c7"; - public const string RANDOMLOOTCONTAINER_RAND_LOOT_CONTAINER_TWITCH_EVENT_PLUS_2 = - "66aa3a3800b2c42adb07d13e"; - public const string RANDOMLOOTCONTAINER_RANDOM_LOOT_CONTAINER = "62f10b79e7ee985f386b2f47"; - public const string RANDOMLOOTCONTAINER_RANDOM_LOOT_QUEST_CONTAINER = - "633ffb5d419dbf4bea7004c6"; - public const string RANGEFINDER_VORTEX_RANGER_1500 = "61605e13ffa6e502ac5e7eef"; - public const string RECEIVER_AI_AXMC_338_LM_CHASSIS = "6281204f308cb521f87a8f9b"; - public const string RECEIVER_AI_AXMC_UPPER = "62811fbf09427b40ab14e767"; - public const string RECEIVER_AK_AKADEMIA_BASTION_DUST_COVER = "5d2c76ed48f03532f2136169"; - public const string RECEIVER_AK_FAB_DEFENSE_PDC_DUST_COVER = "5d2c770c48f0354b4a07c100"; - public const string RECEIVER_AK_TWS_DOG_LEG_RAIL_DUST_COVER = "5d2c772c48f0355d95672c25"; - public const string RECEIVER_AK_ZENIT_B33_DUST_COVER = "5649af884bdc2d1b2b8b4589"; - public const string RECEIVER_AK12_RAILED_DUST_COVER = "649ec2f3961514b22506b111"; - public const string RECEIVER_AK545_RAILED_DUST_COVER = "628b9be6cff66b70c002b14c"; - public const string RECEIVER_AK74_DUST_COVER = "5649af094bdc2df8348b4586"; - public const string RECEIVER_AK74M_DUST_COVER = "5ac50da15acfc4001718d287"; - public const string RECEIVER_AKM_DUST_COVER = "59d6507c86f7741b846413a2"; - public const string RECEIVER_AKS74U_DUST_COVER = "57dc334d245977597164366f"; - public const string RECEIVER_AKS74U_LEGAL_ARSENAL_PILGRIM_RAILED_DUST_COVER = - "655cb6b5d680a544f30607fa"; - public const string RECEIVER_AKS74UB_DUST_COVER = "5839a7742459773cf9693481"; - public const string RECEIVER_AR15_ADAR_215_556X45_UPPER = "5c0e2f26d174af02a9625114"; - public const string RECEIVER_AR15_AEROKNOX_AX15_556X45_UPPER = "63f5ed14534b2c3d5479a677"; - public const string RECEIVER_AR15_NOVESKE_GEN3_556X45_UPPER = "5c07a8770db8340023300450"; - public const string RECEIVER_AR15_VLTOR_MUR1S_556X45_UPPER = "59bfe68886f7746004266202"; - public const string RECEIVER_AS_VAL_DUST_COVER = "57c44f4f2459772d2c627113"; - public const string RECEIVER_DESERT_EAGLE_L5_357_PISTOL_SLIDE = "669fa5127a09bc295603b499"; - public const string RECEIVER_DESERT_EAGLE_L5_50_AE_PISTOL_SLIDE = "669fa5019aa2a422600442f6"; - public const string RECEIVER_DESERT_EAGLE_L6_PISTOL_SLIDE = "669fa4d97a09bc295603b496"; - public const string RECEIVER_DESERT_EAGLE_L6_PISTOL_SLIDE_WTS = "669fa5271bd4416eaa09b3ce"; - public const string RECEIVER_DESERT_EAGLE_MK_XIX_PISTOL_SLIDE = "668fe60b56984d93550462c6"; - public const string RECEIVER_DO_NOT_USEAI_AXMC_762X51MM_CHASSIS = "628120415631d45211793c99"; - public const string RECEIVER_FAL_STANDARD_DUST_COVER = "5b7d6c105acfc40015109a5f"; - public const string RECEIVER_FN_FIVESEVEN_MK2_PISTOL_SLIDE = "5d3eb44aa4b93650d64e4979"; - public const string RECEIVER_FN_P90_57X28_UPPER = "5cc70102e4a949035e43ba74"; - public const string RECEIVER_FN_P90_EFFEN_90_57X28_UPPER = "5cc700ede4a949033c734315"; - public const string RECEIVER_FN_PS90_57X28_UPPER = "5cf7acfcd7f00c1084477cf2"; - public const string RECEIVER_FN_SCARH_762X51_UPPER = "6165adcdd3a39d50044c120f"; - public const string RECEIVER_FN_SCARH_762X51_UPPER_RECEIVER_FDE = "6165aeedfaa1272e431521e3"; - public const string RECEIVER_FN_SCARL_556X45_UPPER = "618405198004cc50514c3594"; - public const string RECEIVER_FN_SCARL_556X45_UPPER_RECEIVER_FDE = "618426d96c780c1e710c9b9f"; - public const string RECEIVER_GLOCK_17_MOS_PISTOL_SLIDE = "615d8dbd290d254f5e6b2ed6"; - public const string RECEIVER_GLOCK_17_PISTOL_SLIDE = "5a6f5e048dc32e00094b97da"; - public const string RECEIVER_GLOCK_18C_PISTOL_SLIDE = "5b1faa0f5acfc40dc528aeb5"; - public const string RECEIVER_GLOCK_19X_PISTOL_SLIDE = "63075cc5962d0247b029dc2a"; - public const string RECEIVER_GLOCK_LONE_WOLF_ALPHAWOLF_CUSTOM_PISTOL_SLIDE = - "5a7033908dc32e000a311392"; - public const string RECEIVER_GLOCK_LONE_WOLF_ALPHAWOLF_PISTOL_SLIDE = - "5a702d198dc32e000b452fc3"; - public const string RECEIVER_GLOCK_MOTO_CUT_PISTOL_SLIDE = "5a9685b1a2750c0032157104"; - public const string RECEIVER_GLOCK_POLYMER80_PS9_PISTOL_SLIDE = "5a7afa25e899ef00135e31b0"; - public const string RECEIVER_GLOCK_VIPER_CUT_PISTOL_SLIDE = "5a6f5f078dc32e00094b97dd"; - public const string RECEIVER_GLOCK_ZEV_TECH_HEX_GEN3_RMR_PISTOL_SLIDE = - "5a71e22f8dc32e00094b97f4"; - public const string RECEIVER_GLOCK_ZEV_TECH_HEX_SPARTAN_RMR_PISTOL_SLIDE = - "5a71e4f48dc32e001207fb26"; - public const string RECEIVER_HK_416A5_556X45_UPPER = "5bb20d53d4351e4502010a69"; - public const string RECEIVER_HK_G28_762X51_UPPER = "61713a8fd92c473c770214a4"; - public const string RECEIVER_HK_MP5_9X19_UPPER = "5926c0df86f77462f647f764"; - public const string RECEIVER_HK_MP5K_9X19_UPPER = "5d2f261548f03576f500e7b7"; - public const string RECEIVER_HK_MP5SD_9X19_UPPER = "5926f2e086f7745aae644231"; - public const string RECEIVER_HK_USP_45_ACP_PISTOL_SLIDE = "6193d382ed0429009f543e65"; - public const string RECEIVER_HK_USP_ELITE_45_ACP_PISTOL_SLIDE = "6194f5d418a3974e5e7421ef"; - public const string RECEIVER_HK_USP_EXPERT_45_ACP_PISTOL_SLIDE = "6194f5722d2c397d6600348f"; - public const string RECEIVER_HK_USP_MATCH_45_ACP_PISTOL_SLIDE = "6194f5a318a3974e5e7421eb"; - public const string RECEIVER_HK_USP_TACTICAL_45_ACP_PISTOL_SLIDE = "6194f41f9fb0c665d5490e75"; - public const string RECEIVER_M1911A1_PISTOL_SLIDE = "5e81edc13397a21db957f6a1"; - public const string RECEIVER_M45A1_PISTOL_SLIDE = "5f3e7823ddc4f03b010e2045"; - public const string RECEIVER_M4A1_556X45_UPPER = "55d355e64bdc2d962f8b4569"; - public const string RECEIVER_M9A3_PISTOL_SLIDE = "5cadc55cae921500103bb3be"; - public const string RECEIVER_MCX_GEN1_300_BLK_UPPER = "5fbcc3e4d6fa9c00c571bb58"; - public const string RECEIVER_MCXSPEAR_68X51_UPPER = "6529119424cbe3c74a05e5bb"; - public const string RECEIVER_MK18_338_LM_UPPER = "5fc278107283c4046c581489"; - public const string RECEIVER_MK47_RESOLUTE_762X39_UPPER = "606587a88900dc2d9a55b659"; - public const string RECEIVER_MOLOT_ARMS_AKMTYPE_DUST_COVER = "59e6449086f7746c9f75e822"; - public const string RECEIVER_MP9_9X19_UPPER = "5e0090f7e9dc277128008b93"; - public const string RECEIVER_MP9N_9X19_UPPER = "5de8e67c4a9f347bc92edbd7"; - public const string RECEIVER_MPX_GEN1_9X19_UPPER = "5894a5b586f77426d2590767"; - public const string RECEIVER_OPSKS_DUST_COVER = "634f06262e5def262d0b30ca"; - public const string RECEIVER_P226_AXELSON_TACTICAL_MK25_PISTOL_SLIDE = - "5bffe7c50db834001d23ece1"; - public const string RECEIVER_P226_EMPEROR_SCORPION_PISTOL_SLIDE = "5c010a700db834001d23ef5d"; - public const string RECEIVER_P226_LEGION_FULL_SIZE_PISTOL_SLIDE = "5c0125fc0db834001a669aa3"; - public const string RECEIVER_P226_STAINLESS_ELITE_PISTOL_SLIDE = "5c0009510db834001966907f"; - public const string RECEIVER_P226R_MK25_PISTOL_SLIDE = "56d5a407d2720bb3418b456b"; - public const string RECEIVER_PL15_PISTOL_SLIDE = "60228924961b8d75ee233c32"; - public const string RECEIVER_PM_PISTOL_SLIDE = "6374a822e629013b9c0645c8"; - public const string RECEIVER_PP1901_VITYAZ_DUST_COVER = "59985a8086f77414ec448d1a"; - public const string RECEIVER_PP1901_VITYAZSN_DUST_COVER = "59985a6c86f77414ec448d17"; - public const string RECEIVER_PPSH41_DUST_COVER = "5ea03e5009aa976f2e7a514b"; - public const string RECEIVER_RD704_DUST_COVER = "628a665a86cbd9750d2ff5e5"; - public const string RECEIVER_RPK16_DUST_COVER = "5beec91a0db834001961942d"; - public const string RECEIVER_SA58_EXTREME_DUTY_DUST_COVER = "5b099bb25acfc400186331e8"; - public const string RECEIVER_SAKO_TRG_M10_338_LM = "673cb491280680de5e02ff36"; - public const string RECEIVER_SKS_DUST_COVER = "634f05ca517ccc8a960fc748"; - public const string RECEIVER_SKS_LEAPERS_UTG_PRO_MTU017_RECEIVER_COVER_MOUNT = - "6415c694da439c6a97048b56"; - public const string RECEIVER_SOK12_DUST_COVER = "57616c112459773cce774d66"; - public const string RECEIVER_SOK12_KIBA_ARMS_ZOMBIE_CUSTOM_DUST_COVER = - "676017fe8cfeeba9f707c8d6"; - public const string RECEIVER_SR25_762X51_UPPER = "5df8e4080b92095fd441e594"; - public const string RECEIVER_SR2M_DUST_COVER = "62e27a7865f0b1592a49e17b"; - public const string RECEIVER_STEYR_AUG_A3_556X45 = "62e7c72df68e7a0676050c77"; - public const string RECEIVER_STEYR_AUG_A3_VLTOR_556X45 = "67110d8d388bded67304ceb4"; - public const string RECEIVER_STM9_9X19_UPPER = "602e63fb6335467b0c5ac94d"; - public const string RECEIVER_SVDS_CUSTOM_CUT_DUST_COVER = "5dfce88fe9dc277128008b2e"; - public const string RECEIVER_SVDS_DUST_COVER = "5c471bd12e221602b4129c3a"; - public const string RECEIVER_SVT_DUST_COVER = "64119cdbdcf48d656f0aa272"; - public const string RECEIVER_TX15_556X45_LIGHTWEIGHT_UPPER = "5d4405aaa4b9361e6a4e6bd3"; - public const string RECEIVER_UZI_PRO_DUST_COVER = "6680326874b8f2050c0b9178"; - public const string RECEIVER_VPO101_DUST_COVER = "5c503d0a2e221602b542b7ef"; - public const string RECEIVER_VSS_DUST_COVER = "578395402459774a256959b5"; - public const string REPAIRKITS_BODY_ARMOR_REPAIR_KIT = "591094e086f7747caa7bb2ef"; - public const string REPAIRKITS_WEAPON_REPAIR_KIT = "5910968f86f77425cf569c32"; - public const string REVOLVER_CHIAPPA_RHINO_200DS_9X19 = "624c2e8614da335f1e034d8c"; - public const string REVOLVER_CHIAPPA_RHINO_50DS_357 = "61a4c8884f95bc3b2c5dc96f"; - public const string REVOLVER_MILKOR_M32A1_MSGL_40MM_GRENADE_LAUNCHER = - "6275303a9f372d6ea97f9ec7"; - public const string REVOLVER_MTS25512_12GA_SHOTGUN = "60db29ce99594040e04c4a27"; - public const string REVOLVER_RSH12_127X55 = "633ec7c2a6918cb895019c6c"; - public const string ROCKET_725_SHG2 = "67446fdd752be02c220f27b3"; - public const string ROCKETLAUNCHER_RSHG2_725MM_ROCKET_LAUNCHER = "676bf44c5539167c3603e869"; - public const string SECURE_CONTAINER_ALPHA = "544a11ac4bdc2d470e8b456a"; - public const string SECURE_CONTAINER_BETA = "5857a8b324597729ab0a0e7d"; - public const string SECURE_CONTAINER_BOSS = "5c0a794586f77461c458f892"; - public const string SECURE_CONTAINER_EPSILON = "59db794186f77448bc595262"; - public const string SECURE_CONTAINER_GAMMA = "5857a8bc2459772bad15db29"; - public const string SECURE_CONTAINER_GAMMA_TUE = "665ee77ccf2d642e98220bca"; - public const string SECURE_CONTAINER_KAPPA = "5c093ca986f7740a1867ab12"; - public const string SECURE_CONTAINER_KAPPA_DESECRATED = "676008db84e242067d0dc4c9"; - public const string SECURE_CONTAINER_THETA = "664a55d84a90fc2c8a6305c9"; - public const string SECURE_DEVELOPER_SECURE_CONTAINER = "5c0a5a5986f77476aa30ae64"; - public const string SECURE_TOURNAMENT_SECURED_CONTAINER = "64f6f4c5911bcdfe8b03b0dc"; - public const string SECURE_WAIST_POUCH = "5732ee6a24597719ae0c0281"; - public const string SHOTGUN_BENELLI_M3_SUPER_90_12GA_DUALMODE = "6259b864ebedf17603599e88"; - public const string SHOTGUN_MOSSBERG_590A1_12GA_PUMPACTION = "5e870397991fd70db46995c8"; - public const string SHOTGUN_MP133_12GA_PUMPACTION = "54491c4f4bdc2db1078b4568"; - public const string SHOTGUN_MP153_12GA_SEMIAUTOMATIC = "56dee2bdd2720bc8328b4567"; - public const string SHOTGUN_MP155_12GA_SEMIAUTOMATIC = "606dae0ab0e443224b421bb7"; - public const string SHOTGUN_MP18_762X54R_SINGLESHOT_RIFLE = "61f7c9e189e6fb1a5e3ea78d"; - public const string SHOTGUN_MP43_12GA_SAWEDOFF_DOUBLEBARREL = "64748cb8de82c85eaf0a273a"; - public const string SHOTGUN_MP431C_12GA_DOUBLEBARREL = "5580223e4bdc2d1c128b457f"; - public const string SHOTGUN_MPS_AUTO_ASSAULT12_GEN_1_12GA_AUTOMATIC = - "66ffa9b66e19cc902401c5e8"; - public const string SHOTGUN_MPS_AUTO_ASSAULT12_GEN_2_12GA_AUTOMATIC = - "67124dcfa3541f2a1f0e788b"; - public const string SHOTGUN_REMINGTON_MODEL_870_12GA_PUMPACTION = "5a7828548dc32e5a9c28b516"; - public const string SHOTGUN_SAIGA12K_12GA_AUTOMATIC = "674fe9a75e51f1c47c04ec23"; - public const string SHOTGUN_SAIGA12K_VER10_12GA_SEMIAUTOMATIC = "576165642459773c7a400233"; - public const string SHOTGUN_TOZ_KS23M_23X75MM_PUMPACTION = "5e848cc2988a8701445df1e8"; - public const string SHOTGUN_TOZ106_20GA_BOLTACTION = "5a38e6bac4a2826c6e06d79b"; - public const string SIGNALPISTOL_ZID_SP81_26X75_SIGNAL_PISTOL = "620109578d82e67e7911abf2"; - public const string SILENCER_9A91_9X39_SOUND_SUPPRESSOR = "64527a3a7da7133e5a09ca99"; - public const string SILENCER_AAC_762SDN6_MULTICALIBER_SOUND_SUPPRESSOR = - "5a34fe59c4a282000b1521a2"; - public const string SILENCER_AAC_ILLUSION_9_9X19_SOUND_SUPPRESSOR = "5c7e8fab2e22165df16b889b"; - public const string SILENCER_AI_338_LM_TACTICAL_SOUND_MODERATOR = "62811fa609427b40ab14e765"; - public const string SILENCER_AK_HEXAGON_DTKP_MK2_762X39_SOUND_SUPPRESSOR = - "5e208b9842457a4a7a33d074"; - public const string SILENCER_AK12_545X39_SOUND_SUPPRESSOR = "64c196ad26a15b84aa07132f"; - public const string SILENCER_AK74_HEXAGON_545X39_SOUND_SUPPRESSOR = "593d493f86f7745e6b2ceb22"; - public const string SILENCER_AK74_HEXAGON_WAFFLEMAKER_545X39_SOUND_SUPPRESSOR = - "615d8f8567085e45ef1409ca"; - public const string SILENCER_AK74_TGPA_545X39_SOUND_SUPPRESSOR = "564caa3d4bdc2d17108b458e"; - public const string SILENCER_AKM_HEXAGON_762X39_SOUND_SUPPRESSOR = "593d489686f7745c6255d58a"; - public const string SILENCER_AKM_PBS1_762X39_SOUND_SUPPRESSOR = "5a0d63621526d8dba31fe3bf"; - public const string SILENCER_AKM_ZENIT_DTK4M_762X39_SOUND_SUPPRESSOR = - "59fb257e86f7742981561852"; - public const string SILENCER_AKS74U_PBS4_545X39_SOUND_SUPPRESSOR = "57ffb0e42459777d047111c5"; - public const string SILENCER_ALPHA_DOG_ALPHA_9_9X19_SOUND_SUPPRESSOR = - "5a33a8ebc4a282000c5a950d"; - public const string SILENCER_APB_9X18PM_SOUND_SUPPRESSOR = "5abcc328d8ce8700194394f3"; - public const string SILENCER_AR15_GRIFFIN_ARMAMENT_M4SDK_556X45_SOUND_SUPPRESSOR = - "638612b607dfed1ccb7206ba"; - public const string SILENCER_AS_VAL_9X39_INTEGRAL_BARRELSUPPRESSOR = "57c44dd02459772d2e0ae249"; - public const string SILENCER_ASE_UTRA_SL7IBL_BORELOCK_338_LM_SOUND_SUPPRESSOR = - "673f0a38259f5945d70e43a6"; - public const string SILENCER_ASH12_127X55_SOUND_SUPPRESSOR = "5caf187cae92157c28402e43"; - public const string SILENCER_AWC_THOR_PSR_XL_MULTICALIBER_SOUND_SUPPRESSOR = - "63877c99e785640d436458ea"; - public const string SILENCER_CGS_HEKATE_DT_338_LM_SOUND_SUPPRESSOR = "673f0b36536d64240f01acd6"; - public const string SILENCER_CO_HYBRID_46_MULTICALIBER_SOUND_SUPPRESSOR = - "59bffbb386f77435b379b9c2"; - public const string SILENCER_CO_OMEGA_45K_45_ACP_SOUND_SUPPRESSOR = "5fc4b9b17283c4046c5814d7"; - public const string SILENCER_CO_OSPREY_9_9X19_SOUND_SUPPRESSOR = "5a32a064c4a28200741e22de"; - public const string SILENCER_CO_SAKER_ASR_556_556X45_SOUND_SUPPRESSOR = - "60926df0132d4d12c81fd9df"; - public const string SILENCER_CO_SALVO_12_12GA_SOUND_SUPPRESSOR = "5b363dd25acfc4001a598fd2"; - public const string SILENCER_CO_SPARROW_22_SOUND_SUPPRESSOR = "54490a4d4bdc2dbc018b4573"; - public const string SILENCER_DANIEL_DEFENSE_WAVE_QD_SOUND_SUPPRESSOR = - "5cff9e84d7ad1a049e54ed55"; - public const string SILENCER_FN_P90_ATTENUATOR_57X28_SOUND_SUPPRESSOR = - "5cebec00d7f00c065c53522a"; - public const string SILENCER_GEMTECH_ONE_MULTICALIBER_SOUND_SUPPRESSOR = - "5c7955c22e221644f31bfd5e"; - public const string SILENCER_GEMTECH_SFN57_57X28_SOUND_SUPPRESSOR = "5d3ef698a4b9361182109872"; - public const string SILENCER_GLOCK_9X19_FISCHER_DEVELOPMENT_FD917_SOUND_SUPPRESSOR = - "5a7ad74e51dfba0015068f45"; - public const string SILENCER_HEXAGON_12K_12GA_SOUND_SUPPRESSOR = "59c0ec5b86f77435b128bfca"; - public const string SILENCER_HK_G28_BT_QD_762X51_SOUND_SUPPRESSOR = "6171367e1cb55961fa0fdb36"; - public const string SILENCER_HK_MP5SD_9X19_SOUND_SUPPRESSOR = "5926d33d86f77410de68ebc0"; - public const string SILENCER_HK_MP7_BT_ROTEX_2_46X30_SOUND_SUPPRESSOR = - "5ba26ae8d4351e00367f9bdb"; - public const string SILENCER_HK_UMP_BT_OEM_45_ACP_SOUND_SUPPRESSOR = "6130c4d51cb55961fa0fd49f"; - public const string SILENCER_KAC_PRSQDC_762X51_SOUND_SUPPRESSOR = "5dfa3d2b0dee1b22f862eade"; - public const string SILENCER_KAC_QDC_556X45_SOUND_SUPPRESSOR = "626673016f1edc06f30cf6d5"; - public const string SILENCER_KAC_QDC_65X35_SOUND_SUPPRESSOR = "55d617094bdc2d89028b4568"; - public const string SILENCER_KAC_QDSS_NT4_556X45_SOUND_SUPPRESSOR_BLACK = - "57da93632459771cb65bf83f"; - public const string SILENCER_KAC_QDSS_NT4_556X45_SOUND_SUPPRESSOR_FDE = - "57dbb57e2459774673234890"; - public const string SILENCER_MCXSPEAR_SLX68MGQD_68X51_SOUND_SUPPRESSOR = - "652911e650dc782999054b9d"; - public const string SILENCER_MOSIN_RIFLE_BRAMIT_762X54R_SOUND_SUPPRESSOR = - "5b86a0e586f7745b600ccb23"; - public const string SILENCER_MP9_9X19_SOUND_SUPPRESSOR = "5de8f2d5b74cd90030650c72"; - public const string SILENCER_MPX_9X19_RONIN_ARMS_12_INCH_SD_SUPPRESSOR = - "676149d8e889e1972605d6be"; - public const string SILENCER_MPX_9X19_RONIN_ARMS_8_INCH_SD_SUPPRESSOR = - "676149c5062e6212f5058c36"; - public const string SILENCER_MPXSD_9X19_INTEGRATED_SOUND_SUPPRESSOR = - "58aeac1b86f77457c419f475"; - public const string SILENCER_PB_9X18PM_SOUND_SUPPRESSOR = "56e05b06d2720bb2668b4586"; - public const string SILENCER_PL15_9X19_SOUND_SUPPRESSOR = "602a97060ddce744014caf6f"; - public const string SILENCER_PP1901_VITYAZ_9X19_SOUND_SUPPRESSOR = "59bfc5c886f7743bf6794e62"; - public const string SILENCER_PP9101_KEDRB_9X18PM_SOUND_SUPPRESSOR = "57f3c8cc2459773ec4480328"; - public const string SILENCER_ROTOR_43_366_TKM_SOUND_SUPPRESSOR = "5a9fbb74a2750c0032157181"; - public const string SILENCER_ROTOR_43_556X45_SOUND_SUPPRESSOR = "5a9fbb84a2750c00137fa685"; - public const string SILENCER_ROTOR_43_762X39_SOUND_SUPPRESSOR = "5a9fbacda2750c00141e080f"; - public const string SILENCER_ROTOR_43_762X54R_SOUND_SUPPRESSOR = "5e01ea19e9dc277128008c0b"; - public const string SILENCER_ROTOR_43_9X19_SOUND_SUPPRESSOR = "5a9fb739a2750c003215717f"; - public const string SILENCER_SAKO_TRG_PGM_PRECISION_338_LM_SOUND_SUPPRESSOR = - "673f0a9370a3ddcf0d0ee0b8"; - public const string SILENCER_SIG_SAUER_SRD762QD_762X51_SOUND_SUPPRESSOR = - "5fbe760793164a5b6278efc8"; - public const string SILENCER_SIG_SAUER_SRD762TI_762X51_SOUND_SUPPRESSOR = - "5fbe7618d6fa9c00c571bb6c"; - public const string SILENCER_SIG_SAUER_SRD9_9X19_SOUND_SUPPRESSOR = "5c6165902e22160010261b28"; - public const string SILENCER_SKS_HEXAGON_762X39_SOUND_SUPPRESSOR = "593d490386f7745ee97a1555"; - public const string SILENCER_SR1MP_9X21_SOUND_SUPPRESSOR = "5a27b6bec4a282000e496f78"; - public const string SILENCER_SR2M_9X21_SV1381_SOUND_SUPPRESSOR = "62e2a7138e1ac9380579c122"; - public const string SILENCER_SR3M_9X39_SOUND_SUPPRESSOR = "65144ff50e00edc79406836f"; - public const string SILENCER_STEYR_AUG_ASE_UTRA_S_SERIES_SL7I_556X45_SOUND_SUPPRESSOR = - "634eba08f69c710e0108d386"; - public const string SILENCER_STEYR_AUG_RELFEX_T4AUG_RANGER_556X45_SOUND_SUPPRESSOR = - "630f2982cdb9e392db0cbcc7"; - public const string SILENCER_SUREFIRE_SOCOM556MINI_MONSTER_556X45_SOUND_SUPPRESSOR = - "55d6190f4bdc2d87028b4567"; - public const string SILENCER_SUREFIRE_SOCOM556MONSTER_556X45_SOUND_SUPPRESSOR = - "55d614004bdc2d86028b4568"; - public const string SILENCER_SUREFIRE_SOCOM556RC2_556X45_SOUND_SUPPRESSOR = - "5ea17bbc09aa976f2e7a51cd"; - public const string SILENCER_SV98_762X54R_SOUND_SUPPRESSOR = "5c4eecc32e221602b412b440"; - public const string SILENCER_THUNDER_BEAST_ARMS_ULTRA_5_SOUND_SUPPRESSOR = - "5d44064fa4b9361e4f6eb8b5"; - public const string SILENCER_TT_762X25_MAKESHIFT_SOUND_SUPPRESSOR = "571a28e524597720b4066567"; - public const string SILENCER_UZI_9X19_SOUND_SUPPRESSOR = "66993733f74fef4dfd0b04ff"; - public const string SILENCER_VPO101_ROTOR_43_762X51_SOUND_SUPPRESSOR = - "5f63407e1b231926f2329f15"; - public const string SILENCER_VSS_9X39_INTEGRAL_BARRELSUPPRESSOR = "57838c962459774a1651ec63"; - public const string SMG_BT_MP9_9X19_SUBMACHINE_GUN = "5e00903ae9dc277128008b87"; - public const string SMG_BT_MP9N_9X19_SUBMACHINE_GUN = "5de7bd7bfd6b4e6e2276dc25"; - public const string SMG_FN_P90_57X28_SUBMACHINE_GUN = "5cc82d76e24e8d00134b4b83"; - public const string SMG_HK_MP5_9X19_SUBMACHINE_GUN_NAVY_3_ROUND_BURST = - "5926bb2186f7744b1c6c6e60"; - public const string SMG_HK_MP5K_9X19_SUBMACHINE_GUN = "5d2f0d8048f0356c925bc3b0"; - public const string SMG_HK_MP7A1_46X30_SUBMACHINE_GUN = "5ba26383d4351e00334c93d9"; - public const string SMG_HK_MP7A2_46X30_SUBMACHINE_GUN = "5bd70322209c4d00d7167b8f"; - public const string SMG_HK_UMP_45_ACP_SUBMACHINE_GUN = "5fc3e272f8b6a877a729eac5"; - public const string SMG_IWI_UZI_9X19_SUBMACHINE_GUN = "66992b349950f5f4cd06029f"; - public const string SMG_IWI_UZI_PRO_PISTOL_9X19_SUBMACHINE_GUN = "6680304edadb7aa61d00cef0"; - public const string SMG_IWI_UZI_PRO_SMG_9X19_SUBMACHINE_GUN = "668e71a8dadf42204c032ce1"; - public const string SMG_PP1901_VITYAZ_9X19_SUBMACHINE_GUN = "59984ab886f7743e98271174"; - public const string SMG_PP9_KLIN_9X18PMM_SUBMACHINE_GUN = "57f4c844245977379d5c14d1"; - public const string SMG_PP91_KEDR_9X18PM_SUBMACHINE_GUN = "57d14d2524597714373db789"; - public const string SMG_PP9101_KEDRB_9X18PM_SUBMACHINE_GUN = "57f3c6bd24597738e730fa2f"; - public const string SMG_PPSH41_762X25_SUBMACHINE_GUN = "5ea03f7400685063ec28bfa8"; - public const string SMG_SAIGA9_9X19_CARBINE = "59f9cabd86f7743a10721f46"; - public const string SMG_SIG_MPX_9X19_SUBMACHINE_GUN = "58948c8e86f77409493f7266"; - public const string SMG_SOYUZTM_STM9_GEN2_9X19_CARBINE = "60339954d62c9b14ed777c06"; - public const string SMG_SR2M_VERESK_9X21_SUBMACHINE_GUN = "62e14904c2699c0ec93adc47"; - public const string SMG_TDI_KRISS_VECTOR_GEN2_45_ACP_SUBMACHINE_GUN = - "5fb64bc92b1b027b1f50bcf2"; - public const string SMG_TDI_KRISS_VECTOR_GEN2_9X19_SUBMACHINE_GUN = "5fc3f2d5900b1d5091531e57"; - public const string SNIPERRIFLE_ACCURACY_INTERNATIONAL_AXMC_338_LM_BOLTACTION_SNIPER_RIFLE = - "627e14b21713922ded6f2c15"; - public const string SNIPERRIFLE_LOBAEV_ARMS_DVL10_762X51_BOLTACTION_SNIPER_RIFLE = - "588892092459774ac91d4b11"; - public const string SNIPERRIFLE_MOLOT_ARMS_VPO215_GORNOSTAY_366_TKM_BOLTACTION_RIFLE = - "5de652c31b7e3716273428be"; - public const string SNIPERRIFLE_MOSIN_762X54R_BOLTACTION_RIFLE_INFANTRY = - "5bfd297f0db834001a669119"; - public const string SNIPERRIFLE_MOSIN_762X54R_BOLTACTION_RIFLE_SNIPER = - "5ae08f0a5acfc408fb1398a1"; - public const string SNIPERRIFLE_ORSIS_T5000M_762X51_BOLTACTION_SNIPER_RIFLE = - "5df24cf80dee1b22f862e9bc"; - public const string SNIPERRIFLE_REMINGTON_MODEL_700_762X51_BOLTACTION_SNIPER_RIFLE = - "5bfea6e90db834001b7347f3"; - public const string SNIPERRIFLE_SAKO_TRG_M10_338_LM_BOLTACTION_SNIPER_RIFLE = - "673cab3e03c6a20581028bc1"; - public const string SNIPERRIFLE_SV98_762X54R_BOLTACTION_SNIPER_RIFLE = - "55801eed4bdc2d89578b4588"; - public const string SORTINGTABLE_SORTING_TABLE = "602543c13fee350cd564d032"; - public const string SPECIALSCOPE_ARMASIGHT_VULCAN_MG_35X_BRAVO_NIGHT_VISION_SCOPE = - "5b3b6e495acfc4330140bd88"; - public const string SPECIALSCOPE_ARMASIGHT_ZEUSPRO_640_28X50_30HZ_THERMAL_SCOPE = - "63fc44e2429a8a166c7f61e6"; - public const string SPECIALSCOPE_CYCLONE_SHAKHIN_37X_THERMAL_SCOPE = "67641b461c2eb66ade05dba6"; - public const string SPECIALSCOPE_FLIR_RS32_2259X_35MM_60HZ_THERMAL_RIFLESCOPE = - "5d1b5e94d7ad1a2b865a96b0"; - public const string SPECIALSCOPE_MP155_ULTIMA_THERMAL_CAMERA = "606f2696f2cb2e02a42aceb1"; - public const string SPECIALSCOPE_NSPUM_35X_DOVETAIL_NIGHT_VISION_SCOPE = - "5a7c74b3e899ef0014332c29"; - public const string SPECIALSCOPE_SIG_SAUER_ECHO1_12X30MM_30HZ_THERMAL_REFLEX_SCOPE = - "6478641c19d732620e045e17"; - public const string SPECIALSCOPE_TORREY_PINES_LOGIC_T12W_30HZ_THERMAL_REFLEX_SIGHT = - "609bab8b455afd752b2e6138"; - public const string SPECIALSCOPE_TRIJICON_REAPIR_THERMAL_SCOPE = "5a1eaa87fcdbcb001865f75e"; - public const string SPECITEM_IMP_MINE_DETECTOR = "5af056f186f7746da511291f"; - public const string SPECITEM_MS2000_MARKER = "5991b51486f77447b112d44f"; - public const string SPECITEM_RADIO_REPEATER = "63a0b2eabea67a6d93009e52"; - public const string SPECITEM_SIGNAL_JAMMER = "5ac78a9b86f7741cca0bbd8d"; - public const string SPECITEM_THE_EYE_MORTAR_STRIKE_SIGNALING_DEVICE = - "6655e35b6bc645cb7b059912"; - public const string SPECITEM_WIFI_CAMERA = "5b4391a586f7745321235ab2"; - public const string STASH_10X300 = "5c0a596086f7747bef5731c2"; - public const string STASH_EDGE_OF_DARKNESS_STASH_10X68 = "5811ce772459770e9e5f9532"; - public const string STASH_LEFT_BEHIND_STASH_10X40 = "5811ce572459770cba1a34ea"; - public const string STASH_PREPARE_FOR_ESCAPE_STASH_10X50 = "5811ce662459770f6f490f32"; - public const string STASH_QUESTOFFLINE = "5963866b86f7747bfa1c4462"; - public const string STASH_QUESTRAID = "5963866286f7747bf429b572"; - public const string STASH_STANDARD_STASH_10X30 = "566abbc34bdc2d92178b4576"; - public const string STASH_THE_UNHEARD_EDITION_STASH_10X72 = "6602bcf19cc643f44a04274b"; - public const string STATIONARYCONTAINER_DRAWER = "5675838d4bdc2d95058b456e"; - public const string STIM_2A2BTG_STIMULANT_INJECTOR = "66507eabf5ddb0818b085b68"; - public const string STIM_3BTG_STIMULANT_INJECTOR = "5ed515c8d380ab312177c0fa"; - public const string STIM_ADRENALINE_INJECTOR = "5c10c8fd86f7743d7d706df3"; - public const string STIM_AHF1M_STIMULANT_INJECTOR = "5ed515f6915ec335206e4152"; - public const string STIM_ETGCHANGE_REGENERATIVE_STIMULANT_INJECTOR = "5c0e534186f7747fa1419867"; - public const string STIM_L1_NOREPINEPHRINE_INJECTOR = "5ed515e03a40a50460332579"; - public const string STIM_MELDONIN_INJECTOR = "5ed5160a87bb8443d10680b5"; - public const string STIM_MULE_STIMULANT_INJECTOR = "5ed51652f6c34d2cc26336a1"; - public const string STIM_OBDOLBOS_2_COCKTAIL_INJECTOR = "637b60c3b7afa97bfc3d7001"; - public const string STIM_OBDOLBOS_COCKTAIL_INJECTOR = "5ed5166ad380ab312177c100"; - public const string STIM_P22_PRODUCT_22_STIMULANT_INJECTOR = "5ed515ece452db0eb56fc028"; - public const string STIM_PERFOTORAN_BLUE_BLOOD_STIMULANT_INJECTOR = "637b6251104668754b72f8f9"; - public const string STIM_PNB_PRODUCT_16_STIMULANT_INJECTOR = "637b6179104668754b72f8f5"; - public const string STIM_PROPITAL_REGENERATIVE_STIMULANT_INJECTOR = "5c0e530286f7747fa1419862"; - public const string STIM_SJ1_TGLABS_COMBAT_STIMULANT_INJECTOR = "5c0e531286f7747fa54205c2"; - public const string STIM_SJ12_TGLABS_COMBAT_STIMULANT_INJECTOR = "637b612fb7afa97bfc3d7005"; - public const string STIM_SJ6_TGLABS_COMBAT_STIMULANT_INJECTOR = "5c0e531d86f7747fa23f4d42"; - public const string STIM_SJ9_TGLABS_COMBAT_STIMULANT_INJECTOR = "5fca13ca637ee0341a484f46"; - public const string STIM_TRIMADOL_STIMULANT_INJECTOR = "637b620db7afa97bfc3d7009"; - public const string STIM_XTG12_ANTIDOTE_INJECTOR = "5fca138c2a7b221b2852a5c6"; - public const string STIM_ZAGUSTIN_HEMOSTATIC_DRUG_INJECTOR = "5c0e533786f7747fa23f4d47"; - public const string STOCK_9A91_TOPFOLDING = "6451167ad4928d46d30be3fd"; - public const string STOCK_AA12_STOCK_ASSEMBLY = "66ffac9e316b08f6840a73e6"; - public const string STOCK_AA12_STOCK_ASSEMBLY_FDE = "670fd23798663bc4b10e911a"; - public const string STOCK_AA12_STOCK_ASSEMBLY_TERRAGROUP = "6719023b612cc94b9008e78c"; - public const string STOCK_AI_AXMC_AX_BUTT = "62811f828193841aca4a45c3"; - public const string STOCK_AI_AXMC_GTAC_ARTYPE_PISTOL_GRIP_ADAPTER = "62811e335631d45211793c95"; - public const string STOCK_AI_AXMC_PISTOL_GRIP = "62811e2510e26c1f344e6554"; - public const string STOCK_AK_100SERIES_METAL_SKELETONIZED = "6386300124a1dc425c00577a"; - public const string STOCK_AK_AKEVO = "6761779c48fa5c377e06fc3f"; - public const string STOCK_AK_CUSTOM_ARMS_STEF_74_SKELETON_STOCK_EXTENSION = - "6494094948796d891603e59f"; - public const string STOCK_AK_GP25_ACCESSORY_KIT_RECOIL_PAD = "5a0c59791526d8dba737bba7"; - public const string STOCK_AK_SKELETONIZED_STOCK_CUSTOMIZED = "66ac9d9740e27931602042d4"; - public const string STOCK_AK_ZENIT_PT1_KLASSIKA = "5b222d405acfc400153af4fe"; - public const string STOCK_AK_ZENIT_PT3_KLASSIKA = "59ecc3dd86f7746dc827481c"; - public const string STOCK_AK12 = "5beec8c20db834001d2c465c"; - public const string STOCK_AK12_BUFFER_TUBE = "649ec87d8007560a9001ab36"; - public const string STOCK_AK545_BUFFER_TUBE = "628b9a40717774443b15e9f2"; - public const string STOCK_AK74_POLYMER = "5649b0fc4bdc2d17108b4588"; - public const string STOCK_AK74_POLYMER_STOCK_PLUM = "5cbdb1b0ae9215000d50e105"; - public const string STOCK_AK74_WOODEN = "5649b1c04bdc2d16268b457c"; - public const string STOCK_AK74M_CAA_AKTS_AK74_BUFFER_TUBE = "5cf50fc5d7f00c056c53f83c"; - public const string STOCK_AK74M_POLYMER = "5ac50c185acfc400163398d4"; - public const string STOCK_AK74MAK100_ZENIT_PT_LOCK = "5ac78eaf5acfc4001926317a"; - public const string STOCK_AKM_WOODEN = "59d6514b86f774171a068a08"; - public const string STOCK_AKMAK74_CAA_AKTS_BUFFER_TUBE = "5cf518cfd7f00c065b422214"; - public const string STOCK_AKMAK74_FAB_DEFENSE_UAS = "5b04473a5acfc40018632f70"; - public const string STOCK_AKMAK74_HERA_ARMS_CQR47_PISTOL_GRIPBUTT = "619b69037b9de8162902673e"; - public const string STOCK_AKMAK74_HEXAGON_KOCHERGA_STOCK_ANODIZED_RED = - "5e217ba4c1434648c13568cd"; - public const string STOCK_AKMAK74_MAGPUL_ZHUKOVS = "5b0e794b5acfc47a877359b2"; - public const string STOCK_AKMAK74_ME4_BUFFER_TUBE_ADAPTER = "5649b2314bdc2d79388b4576"; - public const string STOCK_AKMAK74_PROMAG_ARCHANGEL_OPFOR_AA47_BUTT = "6087e2a5232e5a31c233d552"; - public const string STOCK_AKMAK74_RD_AK_TO_M4_BUFFER_TUBE_ADAPTER = "628a6678ccaab13006640e49"; - public const string STOCK_AKMAK74_ZENIT_PT_LOCK = "5b222d335acfc4771e1be099"; - public const string STOCK_AKMS_FAB_DEFENSE_M4AKMS_P_STOCK_ADAPTER = "6761763448fa5c377e06fc39"; - public const string STOCK_AKMS_FOLDING = "59ff3b6a86f77477562ff5ed"; - public const string STOCK_AKMSN_FOLDING = "5abcd472d8ce8700166032ae"; - public const string STOCK_AKS74_SKELETONIZED = "5ab626e4d8ce87272e4c6e43"; - public const string STOCK_AKS74AKS74U_ZENIT_PT_LOCK = "59ecc28286f7746d7a68aa8c"; - public const string STOCK_AKS74U_SKELETONIZED = "57dc347d245977596754e7a1"; - public const string STOCK_APB_DETACHABLE_WIRE = "5a17fb9dfcdbcbcae6687291"; - public const string STOCK_AR15_ADAR_215_BUFFER_TUBE = "5c0faeddd174af02a962601f"; - public const string STOCK_AR15_ADAR_215_WOODEN = "5c0e2ff6d174af02a1659d4a"; - public const string STOCK_AR15_B5_SYSTEMS_COLLAPSIBLE_PRECISION = "5fc2369685fd526b824a5713"; - public const string STOCK_AR15_CMMG_BUFFER_TUBE = "606587e18900dc2d9a55b65f"; - public const string STOCK_AR15_CMMG_RIPSTOCK_BUTT = "606587d11246154cad35d635"; - public const string STOCK_AR15_COLT_A2_BUFFER_TUBE = "5a33ca0fc4a282000d72292f"; - public const string STOCK_AR15_COLT_CARBINE_BUFFER_TUBE = "5649be884bdc2d79388b4577"; - public const string STOCK_AR15_DANIEL_DEFENSE_ENHANCED_COLLAPSIBLE_BUTTSTOCK_BLACK = - "6516e91f609aaf354b34b3e2"; - public const string STOCK_AR15_DANIEL_DEFENSE_ENHANCED_COLLAPSIBLE_BUTTSTOCK_FDE = - "6516e971a3d4c6497930b450"; - public const string STOCK_AR15_DOUBLESTAR_ACE_ARFX_SKELETON = "6761777a1f08ed5e8800b7ac"; - public const string STOCK_AR15_DOUBLESTAR_ACE_SOCOM_GEN4 = "5d120a10d7ad1a4e1026ba85"; - public const string STOCK_AR15_ERGO_F93_PRO = "5b0800175acfc400153aebd4"; - public const string STOCK_AR15_FAB_DEFENSE_GLCORE_BUTT = "602e620f9b513876d4338d9a"; - public const string STOCK_AR15_FAB_DEFENSE_GLR16S = "5bfe86df0db834001b734685"; - public const string STOCK_AR15_FAB_DEFENSE_GLSHOCK_BUTT = "5a9eb32da2750c00171b3f9c"; - public const string STOCK_AR15_HERA_ARMS_CQR_PISTOL_GRIPBUTT = "5a33e75ac4a2826c6e06d759"; - public const string STOCK_AR15_HIGH_STANDARD_M4SS = "55d4ae6c4bdc2d8b2f8b456e"; - public const string STOCK_AR15_HK_E1_BUTT = "5c87a07c2e2216001219d4a2"; - public const string STOCK_AR15_HK_SLIM_LINE_BUTT = "5bb20e70d4351e0035629f8f"; - public const string STOCK_AR15_KRISS_DEFIANCE_DS150_STOCK_BLACK = "5fbbaa86f9986c4cff3fe5f6"; - public const string STOCK_AR15_KRISS_DEFIANCE_DS150_STOCK_FDE = "5fce16961f152d4312622bc9"; - public const string STOCK_AR15_LMT_SOPMOD = "5ae30c9a5acfc408fb139a03"; - public const string STOCK_AR15_MAGPUL_CTR_CARBINE_STOCK_BLACK = "5d135e83d7ad1a21b83f42d8"; - public const string STOCK_AR15_MAGPUL_CTR_CARBINE_STOCK_FDE = "5d135ecbd7ad1a21c176542e"; - public const string STOCK_AR15_MAGPUL_MOE_CARBINE_STOCK_BLACK = "56eabf3bd2720b75698b4569"; - public const string STOCK_AR15_MAGPUL_MOE_CARBINE_STOCK_FDE = "58d2946386f774496974c37e"; - public const string STOCK_AR15_MAGPUL_MOE_CARBINE_STOCK_FOLIAGE_GREEN = - "58d2946c86f7744e271174b5"; - public const string STOCK_AR15_MAGPUL_MOE_CARBINE_STOCK_OLIVE_DRAB = "58d2947686f774485c6a1ee5"; - public const string STOCK_AR15_MAGPUL_MOE_CARBINE_STOCK_STEALTH_GREY = - "58d2947e86f77447aa070d53"; - public const string STOCK_AR15_MAGPUL_MOE_SLK_BUTTSTOCK_COYOTE_TAN = "6529370c405a5f51dd023db8"; - public const string STOCK_AR15_MAGPUL_PRS_GEN2_STOCK_FDE = "5a33cae9c4a28232980eb086"; - public const string STOCK_AR15_MAGPUL_PRS_GEN3_STOCK_BLACK = "5d44069ca4b9361ebd26fc37"; - public const string STOCK_AR15_MAGPUL_PRS_GEN3_STOCK_GREY = "5d4406a8a4b9361e4f6eb8b7"; - public const string STOCK_AR15_MAGPUL_UBR_GEN2_STOCK_BLACK = "5947e98b86f774778f1448bc"; - public const string STOCK_AR15_MAGPUL_UBR_GEN2_STOCK_FDE = "5947eab886f77475961d96c5"; - public const string STOCK_AR15_MFT_BUS = "5947c73886f7747701588af5"; - public const string STOCK_AR15_RTM_ATP_BUFFER_TUBE = "638de3603a1a4031d8260b8c"; - public const string STOCK_AR15_SB_TACTICAL_SBA3_BRACE = "628a85ee6b1d481ff772e9d5"; - public const string STOCK_AR15_SOYUZTM_BUFFER_TUBE = "602e3f1254072b51b239f713"; - public const string STOCK_AR15_STRIKE_INDUSTRIES_ADVANCED_RECEIVER_EXTENSION_BUFFER_TUBE = - "5c793fb92e221644f31bfb64"; - public const string STOCK_AR15_STRIKE_INDUSTRIES_ADVANCED_RECEIVER_EXTENSION_BUFFER_TUBE_ANODIZED_RED = - "5c793fc42e221600114ca25d"; - public const string STOCK_AR15_STRIKE_INDUSTRIES_VIPER_MOD_1 = "5c793fde2e221601da358614"; - public const string STOCK_AR15_STRIKE_INDUSTRIES_VIPER_PDW = "627254cc9c563e6e442c398f"; - public const string STOCK_AR15_TROY_M7A1_PDW_STOCK_BLACK = "591aef7986f774139d495f03"; - public const string STOCK_AR15_TROY_M7A1_PDW_STOCK_FDE = "591af10186f774139d495f0e"; - public const string STOCK_AR15_VLTOR_EMOD = "5b39f8db5acfc40016387a1b"; - public const string STOCK_ARMACON_BASKAK = "57ade1442459771557167e15"; - public const string STOCK_AS_VAL_SKELETON = "57c450252459772d28133253"; - public const string STOCK_AVT40_WOODEN = "6410745d5dd49d77bd078485"; - public const string STOCK_BENELLI_M3_MESA_TACTICAL_URBINO = "625eb0faa6e3a82193267ad9"; - public const string STOCK_BENELLI_M3_TELESCOPIC = "6259c3387d6aab70bc23a18d"; - public const string STOCK_CNC_GUNS_OVSV98_M12B = "624c29ce09cd027dff2f8cd7"; - public const string STOCK_DANIEL_DEFENSE_TCS_12MM_BUTTPAD = "6516e9bc5901745209404287"; - public const string STOCK_DANIEL_DEFENSE_TCS_20MM_BUTTPAD = "6516e9d7e239bd0c487e3766"; - public const string STOCK_DOUBLESTAR_ACE_RECOIL_PAD = "5d120a28d7ad1a1c8962e295"; - public const string STOCK_DVL10_LOBAEV_ARMS = "58889d0c2459775bc215d981"; - public const string STOCK_FAB_DEFENSE_BUFFER_TUBE_FOR_AGR870 = "5bfe89510db834001808a127"; - public const string STOCK_FN_P90 = "5cc700b9e4a949000f0f0f25"; - public const string STOCK_FN_P90_BUTTPAD = "5cc700cae4a949035e43ba72"; - public const string STOCK_FN_P90_DAMAGE_INDUSTRIES_BUTTPAD = "5cc700d4e4a949000f0f0f28"; - public const string STOCK_FN_PS90 = "5cebec10d7f00c065703d185"; - public const string STOCK_FN_SCAR_CHEEK_REST = "618167441cb55961fa0fdc71"; - public const string STOCK_FN_SCAR_CHEEK_REST_FDE = "61825d24d3a39d50044c13af"; - public const string STOCK_FN_SCAR_FOLDING_POLYMER = "61816734d8e3106d9806c1f3"; - public const string STOCK_FN_SCAR_FOLDING_POLYMER_STOCK_FDE = "61825d06d92c473c770215de"; - public const string STOCK_FN_SCAR_JMAC_CUSTOMS_RSASCAR_1913_ADAPTER = - "66ffc246a81a4f85e70d4d06"; - public const string STOCK_FN_SCAR_RETRACTABLE_POLYMER = "618167528004cc50514c34f9"; - public const string STOCK_FN_SCAR_RETRACTABLE_POLYMER_STOCK_FDE = "61825d136ef05c2ce828f1cc"; - public const string STOCK_FN_SCAR_RUBBER_BUTTPAD = "618167616ef05c2ce828f1a8"; - public const string STOCK_FN_SCAR_VLTOR_RESCAR_STOCK_ADAPTER = "66ffbfb1a73a7bce3d0b45a8"; - public const string STOCK_FN_SCAR_VLTOR_RESCAR_STOCK_ADAPTER_PATRIOT_BROWN = - "66ffc20ba73a7bce3d0b45ab"; - public const string STOCK_FN_SCAR_VLTOR_VSS11_POLYMER = "66ffc2bd132225f0fe0611d8"; - public const string STOCK_FN_SCAR_VLTOR_VSS11_POLYMER_STOCK_PATRIOT_BROWN = - "66ffc2ecfe9b3825960652f7"; - public const string STOCK_GLOCK_FAB_DEFENSE_GLR17 = "5d1c702ad7ad1a632267f429"; - public const string STOCK_HK_416_ENHANCED_BUFFER_TUBE = "5bb20e58d4351e00320205d7"; - public const string STOCK_HK_ADJUSTABLE_BUTTSTOCK_CHEEK_REST = "61715e7e67085e45ef140b33"; - public const string STOCK_HK_G28_BUFFER_TUBE = "617153016c780c1e710c9a2f"; - public const string STOCK_HK_G36_IDZ_ADJUSTABLE = "67110d06723c2733410161e8"; - public const string STOCK_HK_G36_IDZ_CONCAVE_BUTTPAD = "67110d6fa71d1f123d021cd3"; - public const string STOCK_HK_G36_IDZ_CONVEX_BUTTPAD = "67110d5ed1758189fc0bd221"; - public const string STOCK_HK_G36_KV_ADJUSTABLE = "622f14e899892a7f9e08f6c5"; - public const string STOCK_HK_G36_POLYMER = "622f140da5958f63c67f1735"; - public const string STOCK_HK_G36_TOMMY_BUILT_AR_STOCK_ADAPTER = "6706a159c67236b2f703bb95"; - public const string STOCK_HK_MP5_A2 = "5926d3c686f77410de68ebc8"; - public const string STOCK_HK_MP5_A3_OLD_MODEL = "5926d40686f7740f152b6b7e"; - public const string STOCK_HK_MP5_END_CAP = "5c07c9660db834001a66b588"; - public const string STOCK_HK_MP5K_END_CAP = "5d2f25bc48f03502573e5d85"; - public const string STOCK_HK_MP7A1 = "5bcf0213d4351e0085327c17"; - public const string STOCK_HK_MP7A2 = "5bd704e7209c4d00d7167c31"; - public const string STOCK_HK_UMP_POLYMER = "5fc3e4ee7283c4046c5814af"; - public const string STOCK_HK417_ADJUSTABLE_BUTT = "617155ee50224f204c1da3cd"; - public const string STOCK_HK417_E2_BUTT = "617154aa1cb55961fa0fdb3b"; - public const string STOCK_KRISS_VECTOR_GEN2_FOLDING = "5fb6558ad6f0b2136f2d7eb7"; - public const string STOCK_KRISS_VECTOR_NONFOLDING_STOCK_ADAPTER = "5fb655b748c711690e3a8d5a"; - public const string STOCK_KRISS_VECTOR_PISTOL_SLING_ADAPTER = "5fb655a72b1b027b1f50bd06"; - public const string STOCK_KS23_WOODEN = "5e848db4681bea2ada00daa9"; - public const string STOCK_KS23M_WIRE = "5e848dc4e4dbc5266a4ec63d"; - public const string STOCK_M14_SAGE_INTERNATIONAL_M14ALCS_CHASSIS = "5addc7005acfc4001669f275"; - public const string STOCK_M14_SAGE_INTERNATIONAL_M14ALCS_MOD0 = "5addc7ac5acfc400194dbd90"; - public const string STOCK_M14_TROY_SASS_CHASSIS = "5ab372a310e891001717f0d8"; - public const string STOCK_M1A_PROMAG_ARCHANGEL_CHASSIS = "5addbf175acfc408fb13965b"; - public const string STOCK_M1A_SOCOM_16 = "5aaf8e43e5b5b00015693246"; - public const string STOCK_M60E4_BUTT = "660126161347bc1a5f0f4dba"; - public const string STOCK_M60E6_BUTT = "6615202b96461aa8360271eb"; - public const string STOCK_M60E6_BUTTSTOCK_FDE = "661520fb6f8e1a96340afaa6"; - public const string STOCK_M700_AB_ARMS_MODX_BUFFER_TUBE_ADAPTER = "5cde77a9d7f00c000f261009"; - public const string STOCK_M700_AB_ARMS_MODX_GEN_3_CHASSIS = "5cde739cd7f00c0010373bd3"; - public const string STOCK_M700_AI_AT_AICS_POLYMER_CHASSIS = "5d25d0ac8abbc3054f3e61f7"; - public const string STOCK_M700_HOGUE_OVERMOLDED_GHILLIE = "5bfeb32b0db834001a6694d9"; - public const string STOCK_M700_MAGPUL_PRO_700_CHASSIS = "5cdeac22d7f00c000f26168f"; - public const string STOCK_M700_MAGPUL_PRO_700_FOLDING = "5cdeac42d7f00c000d36ba73"; - public const string STOCK_M700_PROMAG_ARCHANGEL_CHASSIS = "5cf13123d7f00c1085616a50"; - public const string STOCK_M870_MAGPUL_SGA_POLYMER = "5a78813bc5856700186c4abe"; - public const string STOCK_M870_MESA_TACTICAL_LEO_STOCK_ADAPTER = "5ae35b315acfc4001714e8b0"; - public const string STOCK_M870_SHOCKWAVE_RAPTOR_GRIP = "5a788169c5856700142fdd9e"; - public const string STOCK_M870_SPS_POLYMER = "5a7880d0c5856700142fdd9d"; - public const string STOCK_MAGPUL_MOE_CARBINE_RUBBER_BUTTPAD = "58d2912286f7744e27117493"; - public const string STOCK_MESA_TACTICAL_CROSSHAIR_HYDRAULIC_BUFFER_TUBE = - "5ef1ba28c64c5d0dfc0571a5"; - public const string STOCK_MOSIN_RIFLE_AIM_SPORTS_RECOIL_PAD = "5bbde409d4351e003562b036"; - public const string STOCK_MOSIN_RIFLE_ATI_MONTE_CARLO = "5bbdb870d4351e00367fb67d"; - public const string STOCK_MOSIN_RIFLE_CARBINE = "5bfd384c0db834001a6691d3"; - public const string STOCK_MOSIN_RIFLE_INFANTRY = "5bfd35380db83400232fe5cc"; - public const string STOCK_MOSIN_RIFLE_PROMAG_ARCHANGEL_OPFOR_PRS_CHASSIS = - "5bae13bad4351e00320204af"; - public const string STOCK_MOSIN_RIFLE_SAWEDOFF = "5bfd36ad0db834001c38ef66"; - public const string STOCK_MOSIN_RIFLE_SAWEDOFF_SNIPER = "5bfd36290db834001966869a"; - public const string STOCK_MOSIN_RIFLE_SNIPER_CARBINE = "5bfd37c80db834001d23e842"; - public const string STOCK_MOSIN_RIFLE_STANDARD = "5ae096d95acfc400185c2c81"; - public const string STOCK_MOSSBERG_590A1_MAGPUL_SGA = "5eea217fc64c5d0dfc05712a"; - public const string STOCK_MOSSBERG_590A1_MESA_TACTICAL_LEO_GEN1_STOCK_ADAPTER = - "5ef1b9f0c64c5d0dfc0571a1"; - public const string STOCK_MOSSBERG_590A1_POLYMER = "5e87116b81c4ed43e83cefdd"; - public const string STOCK_MP133153_PLASTIC = "56083be64bdc2d20478b456f"; - public const string STOCK_MP133153_PLASTIC_PISTOL_GRIP = "56083a334bdc2dc8488b4571"; - public const string STOCK_MP133153_WOODEN = "56083cba4bdc2de22e8b456f"; - public const string STOCK_MP155_ULTIMA_LARGE_RECOIL_PAD = "606f263a8900dc2d9a55b68d"; - public const string STOCK_MP155_ULTIMA_MEDIUM_RECOIL_PAD = "606f262c6d0bd7580617bafa"; - public const string STOCK_MP155_ULTIMA_POLYMER = "606eef756d0bd7580617baf8"; - public const string STOCK_MP155_ULTIMA_THIN_RECOIL_PAD = "606ef0812535c57a13424d20"; - public const string STOCK_MP155_WALNUT = "607d5a891246154cad35d6aa"; - public const string STOCK_MP18_POLYMER = "61f803b8ced75b2e852e35f8"; - public const string STOCK_MP18_WOODEN = "61f7b234ea4ab34f2f59c3ec"; - public const string STOCK_MP431C_BUTTPAD = "611a31ce5b7ffe001b4649d1"; - public const string STOCK_MP9 = "5de910da8b6c4240ba2651b5"; - public const string STOCK_MPXMCX_MAXIM_DEFENSE_CQB = "5c5db6ee2e221600113fba54"; - public const string STOCK_MPXMCX_PMM_ULSS = "5c5db6f82e2216003a0fe914"; - public const string STOCK_MTS_2001 = "5adf23995acfc400185c2aeb"; - public const string STOCK_MTS25512_WOODEN = "612781056f3d944a17348d60"; - public const string STOCK_OPSKS_WOODEN = "587e0531245977466077a0f7"; - public const string STOCK_ORSIS_T5000M = "5df35ddddfc58d14537c2036"; - public const string STOCK_ORSIS_T5000M_ALUMINIUM_BODY = "5df35e59c41b2312ea3334d5"; - public const string STOCK_PK_ZENIT_PT2_KLASSIKA = "6492d7847363b8a52206bc52"; - public const string STOCK_PKM_WOODEN = "646371a9f2404ab67905c8e6"; - public const string STOCK_PKP_POLYMER = "6492e3a97df7d749100e29ee"; - public const string STOCK_PP1901_VITYAZ_METAL_SKELETON = "599851db86f77467372f0a18"; - public const string STOCK_PPSH41 = "5ea03e9400685063ec28bfa4"; - public const string STOCK_RPD_WOODEN = "6513f1798cb24472490ee331"; - public const string STOCK_RPK16_BUFFER_TUBE = "5beec8b20db834001961942a"; - public const string STOCK_SA58_BRS = "5b7d64555acfc4001876c8e2"; - public const string STOCK_SA58_BUFFER_TUBE_ADAPTER = "5b099bf25acfc4001637e683"; - public const string STOCK_SA58_FOLDING = "5b7d63cf5acfc4001876c8df"; - public const string STOCK_SA58_HUMPBACK_POLYMER = "5b7d645e5acfc400170e2f90"; - public const string STOCK_SA58_SPR = "5b7d63de5acfc400170e2f8d"; - public const string STOCK_SA58FAL_MAGPUL_PRS_2_POLYMER = "5b7d63b75acfc400170e2f8a"; - public const string STOCK_SAKO_TRG_M10_CHASSIS = "673cb212e695740be0047a46"; - public const string STOCK_SB_TACTICAL_MPX_PISTOL_STABILIZING_BRACE = "6761496fe2cf1419500357e9"; - public const string STOCK_SIG_SAUER_COLLAPSINGTELESCOPING = "5894a13e86f7742405482982"; - public const string STOCK_SIG_SAUER_FOLDING_KNUCKLE_STOCK_ADAPTER = "58ac1bf086f77420ed183f9f"; - public const string STOCK_SIG_SAUER_LOCKING_STOCK_HINGE_ASSEMBLY = "6529348224cbe3c74a05e5c4"; - public const string STOCK_SIG_SAUER_STOCK_ADAPTER_LOW_PROFILE_TUBE_COYOTE_TAN = - "6529366450dc782999054ba0"; - public const string STOCK_SIG_SAUER_TELESCOPINGFOLDING = "5fbcc429900b1d5091531dd7"; - public const string STOCK_SIG_SAUER_THIN_SIDEFOLDING = "5fbcc437d724d907e2077d5c"; - public const string STOCK_SKS_ATI_MONTE_CARLO = "653ecef836fae5a82f02b869"; - public const string STOCK_SKS_FAB_DEFENSE_UAS_BUTT = "653ed132896b99b40a0292e6"; - public const string STOCK_SKS_FAB_DEFENSE_UAS_CHASSIS = "5d0236dad7ad1a0940739d29"; - public const string STOCK_SKS_TAPCO_INTRAFUSE_BUFFER_TUBE = "5afd7e095acfc40017541f61"; - public const string STOCK_SKS_TAPCO_INTRAFUSE_CHASSIS = "5afd7ded5acfc40017541f5e"; - public const string STOCK_SKS_TOZ_WOODEN_STOCK_56A231_SB5 = "574dad8024597745964bf05c"; - public const string STOCK_SOK12_AKSTYLE = "57616ca52459773c69055192"; - public const string STOCK_SR2M_TOPFOLDING = "62e292e7b6c0ee2f230cee00"; - public const string STOCK_SR2MP_TOPFOLDING = "62e2969582ebf260c20539c2"; - public const string STOCK_SV98_CNC_GUNS_OVSV98_CHASSIS = "623b2e9d11c3296b440d1638"; - public const string STOCK_SV98_WOODEN = "61faa91878830f069b6b7967"; - public const string STOCK_SVDS_LYNX_ARMS_HINGE_BUFFER_TUBE_ADAPTER = "6197b229af1f5202c57a9bea"; - public const string STOCK_SVDS_POLYMER = "5c471b5d2e221602b21d4e14"; - public const string STOCK_TOZ106 = "5a38ef1fc4a282000b1521f6"; - public const string STOCK_TOZ106_CUSTOM_CUT_MOSIN = "5c99f3592e221644fc633070"; - public const string STOCK_TOZ106_FAB_DEFENSE_GPCP_CHEEK_REST = "626a8ae89e664a2e2a75f409"; - public const string STOCK_UZI_PRO_A3_TACTICAL_MODULAR_FOLDING_BRACE = - "6686717ffb75ee4a5e02eb19"; - public const string STOCK_UZI_PRO_A3_TACTICAL_REAR_STOCK_ADAPTER = "668672b8c99550c6fd0f0b29"; - public const string STOCK_UZI_PRO_BACKPLATE = "66881008f23233ee9a0742e7"; - public const string STOCK_UZI_PRO_CSM_STOCK_ADAPTER = "669cf78806768ff39504fc1c"; - public const string STOCK_UZI_PRO_SBR_BUTT = "66867310f3734a938b077f79"; - public const string STOCK_UZI_PRO_STABILIZING_BRACE = "668032ba74b8f2050c0b917d"; - public const string STOCK_UZI_STORMWERKZ_STOCK_ADAPTER = "66992f4db9f31ddda10dd1c8"; - public const string STOCK_UZI_TYPE_3_BUTT = "6698c9ed36ba38d291017713"; - public const string STOCK_UZI_TYPE_5_BUTT = "6699249f3c4fda6471005cba"; - public const string STOCK_UZI_TYPE_6_BUTT = "669924a69950f5f4cd060295"; - public const string STOCK_UZI_TYPE_7_BUTT = "6698c9e07356874dfe0a0b88"; - public const string STOCK_VPO101_SVDSTYLE_WALNUT = "5f63405df5750b524b45f114"; - public const string STOCK_VPO101_WOODEN = "5c503af12e221602b177ca02"; - public const string STOCK_VPO136_VEPRKM_WOODEN = "59e6227d86f77440d64f5dc2"; - public const string STOCK_VPO209_WOODEN = "59e89d0986f77427600d226e"; - public const string STOCK_VPO215_WOODEN = "5de655be4a9f347bc92edb88"; - public const string STOCK_VSK94 = "6452519e3d52156624001fd5"; - public const string STOCK_VSS_WOODEN = "578395e82459774a0e553c7b"; - public const string TACTICALCOMBO_BE_MEYERS_MAWLC1_TACTICAL_DEVICE = "644a3df63b0b6f03e101e065"; - public const string TACTICALCOMBO_GLOCK_GTL_21_TACTICAL_FLASHLIGHT_WITH_LASER = - "5a800961159bd4315e3a1657"; - public const string TACTICALCOMBO_HOLOSUN_LS321_TACTICAL_DEVICE = "57fd23e32459772d0805bcf1"; - public const string TACTICALCOMBO_INSIGHT_ANPEQ2_TACTICAL_DEVICE = "5d10b49bd7ad1a1a560708b0"; - public const string TACTICALCOMBO_INSIGHT_WMX200_TACTICAL_FLASHLIGHT = - "626becf9582c3e319310b837"; - public const string TACTICALCOMBO_L3HARRIS_ANPEQ15_TACTICAL_DEVICE = "544909bb4bdc2d6f028b4577"; - public const string TACTICALCOMBO_L3HARRIS_LA5BPEQ_TACTICAL_DEVICE = "5c06595c0db834001a66af6c"; - public const string TACTICALCOMBO_NCSTAR_TACTICAL_BLUE_LASER = "5cc9c20cd7f00c001336c65d"; - public const string TACTICALCOMBO_OLIGHT_BALDR_PRO_TACTICAL_FLASHLIGHT_WITH_LASER = - "6272370ee4013c5d7e31f418"; - public const string TACTICALCOMBO_OLIGHT_BALDR_PRO_TACTICAL_FLASHLIGHT_WITH_LASER_TAN = - "6272379924e29f06af4d5ecb"; - public const string TACTICALCOMBO_STEINER_DBALPL_TACTICAL_DEVICE = "5d2369418abbc306c62e0c80"; - public const string TACTICALCOMBO_STEINER_LASTAC_2_TACTICAL_FLASHLIGHT = - "5b07dd285acfc4001754240d"; - public const string TACTICALCOMBO_SUREFIRE_X400_ULTRA_TACTICAL_FLASHLIGHT_WITH_LASER = - "56def37dd2720bec348b456a"; - public const string TACTICALCOMBO_SUREFIRE_XC1_TACTICAL_FLASHLIGHT = "5a7b483fe899ef0016170d15"; - public const string TACTICALCOMBO_TT_DLP_TACTICAL_PRECISION_LASER_SIGHT = - "5c079ed60db834001a66b372"; - public const string TACTICALCOMBO_WILCOX_RAPTAR_ES_TACTICAL_RANGEFINDER = - "61605d88ffa6e502ac5e7eeb"; - public const string TACTICALCOMBO_ZENIT_KLESCH2IKS_IR_ILLUMINATOR_WITH_LASER = - "5a5f1ce64f39f90b401987bc"; - public const string TACTICALCOMBO_ZENIT_KLESCH2P_FLASHLIGHT_WITH_LASER = - "560d657b4bdc2da74d8b4572"; - public const string TACTICALCOMBO_ZENIT_KLESCH2U_TACTICAL_FLASHLIGHT = - "5b3a337e5acfc4704b4a19a0"; - public const string TACTICALCOMBO_ZENIT_PERST3_TACTICAL_DEVICE = "5c5952732e2216398b5abda2"; - public const string THERMALVISION_T7_THERMAL_GOGGLES_WITH_A_NIGHT_VISION_MOUNT = - "5c110624d174af029e69734c"; - public const string VEST_511_TACTICAL_TACTEC_PLATE_CARRIER_RANGER_GREEN = - "5b44cad286f77402a54ae7e5"; - public const string VEST_511_TACTICAL_TACTEC_PLATE_CARRIER_STORM = "67ab4b2d6f7ae4aa550bbcf6"; - public const string VEST_6B3TM01_ARMORED_RIG_KHAKI = "5d5d646386f7742797261fd9"; - public const string VEST_6B515_ZH86_ULEY_ARMORED_RIG_FLORA = "5c0e446786f7742013381639"; - public const string VEST_6B516_ZH86_ULEY_ARMORED_RIG_KHAKI = "5c0e3eb886f7742015526062"; - public const string VEST_ANA_TACTICAL_ALPHA_CHEST_RIG_MULTICAM = "67ab3ea96d7ece17bf0096f6"; - public const string VEST_ANA_TACTICAL_ALPHA_CHEST_RIG_OLIVE_DRAB = "592c2d1a86f7746dbe2af32a"; - public const string VEST_ANA_TACTICAL_M1_PLATE_CARRIER_OLIVE_DRAB = "5c0e722886f7740458316a57"; - public const string VEST_ANA_TACTICAL_M2_PLATE_CARRIER_EMR = "5ab8dced86f774646209ec87"; - public const string VEST_ARS_ARMA_A18_SKANDA_PLATE_CARRIER_MULTICAM = - "5d5d87f786f77427997cfaef"; - public const string VEST_ARS_ARMA_CPC_MOD1_PLATE_CARRIER_ATACS_FG = "5e4ac41886f77406a511c9a8"; - public const string VEST_AZIMUT_SS_KHAMELION_CHEST_HARNESS_OLIVE = "63611865ba5b90db0c0399d1"; - public const string VEST_AZIMUT_SS_ZHUK_CHEST_HARNESS_BLACK = "603648ff5a45383c122086ac"; - public const string VEST_AZIMUT_SS_ZHUK_CHEST_HARNESS_SURPAT = "6040dd4ddcf9592f401632d2"; - public const string VEST_BLACKHAWK_COMMANDO_CHEST_HARNESS_BLACK = "5c0e9f2c86f77432297fe0a3"; - public const string VEST_BLACKHAWK_COMMANDO_CHEST_HARNESS_DESERT_TAN = - "5b44c8ea86f7742d1627baf1"; - public const string VEST_BLACKROCK_CHEST_RIG_GRAY = "5648a69d4bdc2ded0b8b457b"; - public const string VEST_BLACKROCK_CHEST_RIG_KHAKI = "67ab3f146d7ece17bf0096ff"; - public const string VEST_CQC_OSPREY_MK4A_PLATE_CARRIER_ASSAULT_MTP = "60a3c70cde5f453f634816a3"; - public const string VEST_CQC_OSPREY_MK4A_PLATE_CARRIER_PROTECTION_MTP = - "60a3c68c37ea821725773ef5"; - public const string VEST_CRYE_PRECISION_AVS_PLATE_CARRIER_MULTICAM = "67ab49aab9c7a1e18c095686"; - public const string VEST_CRYE_PRECISION_AVS_PLATE_CARRIER_RANGER_GREEN = - "544a5caa4bdc2d1a388b4568"; - public const string VEST_CRYE_PRECISION_AVS_PLATE_CARRIER_TAGILLA_EDITION = - "609e860ebd219504d8507525"; - public const string VEST_CRYE_PRECISION_CPC_PLATE_CARRIER_GOONS_EDITION = - "628b9c7d45122232a872358f"; - public const string VEST_CSA_CHEST_RIG_BLACK = "6034d0230ca681766b6a0fb5"; - public const string VEST_DIRECT_ACTION_THUNDERBOLT_COMPACT_CHEST_RIG_SHADOW_GREY = - "5f5f41f56760b4138443b352"; - public const string VEST_DIY_IDEA_CHEST_RIG = "5fd4c4fa16cac650092f6771"; - public const string VEST_DYNAFORCE_TRITON_M43A_CHEST_HARNESS_BLACK = "5ca20abf86f77418567a43f2"; - public const string VEST_EAGLE_ALLIED_INDUSTRIES_MBSS_PLATE_CARRIER_COYOTE_BROWN = - "64a5366719bab53bd203bf33"; - public const string VEST_EAGLE_INDUSTRIES_MMAC_PLATE_CARRIER_RANGER_GREEN = - "61bc85697113f767765c7fe7"; - public const string VEST_ECLIPSE_RBAVAF_PLATE_CARRIER_RANGER_GREEN = "628dc750b910320f4c27a732"; - public const string VEST_FIRSTSPEAR_STRANDHOGG_PLATE_CARRIER_RANGER_GREEN = - "61bcc89aef0f505f0c6cd0fc"; - public const string VEST_GEAR_CRAFT_GCBSSMK1_CHEST_RIG_ATACS_FG = "5fd4c60f875c30179f5d04c2"; - public const string VEST_HALEY_STRATEGIC_D3CRX_CHEST_HARNESS_RANGER_GREEN = - "5d5d85c586f774279a21cbdb"; - public const string VEST_LBT1961A_LOAD_BEARING_CHEST_RIG_GOONS_EDITION = - "628baf0b967de16aab5a4f36"; - public const string VEST_LBT1961A_LOAD_BEARING_CHEST_RIG_MAS_GREY = "5e9db13186f7742f845ee9d3"; - public const string VEST_NPP_KLASS_BAGARIY_PLATE_CARRIER_EMR = "628d0618d1ba6e4fa07ce5a4"; - public const string VEST_POYASA_POYASB_GEAR_RIG = "5c0e6a1586f77404597b4965"; - public const string VEST_SCAV = "572b7adb24597762ae139821"; - public const string VEST_SECURITY = "5fd4c5477a8d854fa0105061"; - public const string VEST_SHELLBACK_TACTICAL_BANSHEE_PLATE_CARRIER_ATACS_AU = - "639343fce101f4caa40a4ef3"; - public const string VEST_SOE_MICRO_RIG_MULTICAM = "5d5d8ca986f7742798716522"; - public const string VEST_SPIRITUS_SYSTEMS_BANK_ROBBER_CHEST_RIG_MULTICAM_ALPINE = - "674589d98dd67746010329e6"; - public const string VEST_SPIRITUS_SYSTEMS_BANK_ROBBER_CHEST_RIG_MULTICAM_BLACK = - "5e4abc1f86f774069619fbaa"; - public const string VEST_SPLAV_TARZAN_M22_CHEST_RIG_SMOG = "5e4abfed86f77406a2713cf7"; - public const string VEST_SS_PRECISION_PLATEFRAME_PLATE_CARRIER_GOONS_EDITION = - "628b9784bcf6e2659e09b8a2"; - public const string VEST_STICH_PROFI_CHEST_RIG_MK2_ASSAULT_ATACS_FG = - "60a621c49c197e4e8c4455e6"; - public const string VEST_STICH_PROFI_CHEST_RIG_MK2_RECON_ATACS_FG = "60a6220e953894617404b00a"; - public const string VEST_STICH_PROFI_PLATE_CARRIER_V2_BLACK = "66b6296d7994640992013b17"; - public const string VEST_STICH_PROFI_STICH_DEFENSE_MOD2_PLATE_CARRIER_MULTICAM = - "66b6295178bbc0200425f995"; - public const string VEST_TASMANIAN_TIGER_PLATE_CARRIER_MKIII_COYOTE_BROWN = - "66b6295a8ca68c6461709efa"; - public const string VEST_TASMANIAN_TIGER_SK_PLATE_CARRIER_MULTICAM_BLACK = - "628cd624459354321c4b7fa2"; - public const string VEST_TYPE_56_CHICOM_CHEST_HARNESS = "64be7110bf597ba84a0a41ea"; - public const string VEST_UMKA_M33SET1_HUNTER_VEST_OLIVE_DRAB = "6034cf5fffd42c541047f72e"; - public const string VEST_UMTBS_6SH112_SCOUTSNIPER_CHEST_RIG_EMR = "5929a2a086f7744f4b234d43"; - public const string VEST_VELOCITY_SYSTEMS_MPPV_MULTIPURPOSE_PATROL_VEST_WOLF_GREY = - "5df8a42886f77412640e2e75"; - public const string VEST_WARTECH_MK3_TV104_CHEST_RIG_MULTICAM = "5ab8dab586f77441cd04f2a2"; - public const string VEST_WARTECH_TV109_TV106_CHEST_RIG_ATACS_FG = "59e7643b86f7742cbf2c109a"; - public const string VEST_WARTECH_TV110_PLATE_CARRIER_COYOTE = "5c0e746986f7741453628fe5"; - public const string VEST_WARTECH_TV115_PLATE_CARRIER_OLIVE_DRAB = "64a536392d2c4e6e970f4121"; - public const string VEST_ZULU_NYLON_GEAR_M4_REDUCED_SIGNATURE_CHEST_RIG_RANGER_GREEN = - "64be7095047e826eae02b0c1"; - public const string VISORS_6B34_ANTIFRAGMENTATION_GLASSES = "5b432be65acfc433000ed01f"; - public const string VISORS_ANTIFRAGMENTATION_GLASSES = "59e770b986f7742cbd762754"; - public const string VISORS_DUNDUKK_SPORT_SUNGLASSES = "5aa2b986e5b5b00014028f4c"; - public const string VISORS_DUNDUKK_SPORT_SUNGLASSES_ORANGE_LENSES = "67af41dd1eb308667602db4a"; - public const string VISORS_ESS_CROSSBOW_TACTICAL_GLASSES = "5d5fca1ea4b93635fd598c07"; - public const string VISORS_GAS_WELDER_SAFETY_GOGGLES = "61c18d83b00456371a66814b"; - public const string VISORS_JOHNB_LIQUID_DNB_GLASSES = "62a09e410b9d3c46de5b6e78"; - public const string VISORS_NPP_KLASS_CONDOR_GLASSES = "603409c80ca681766b6a0fb2"; - public const string VISORS_OAKLEY_SI_BATWOLF_GLASSES = "62a61c988ec41a51b34758d5"; - public const string VISORS_OAKLEY_SI_GASCAN_GLASSES = "5d6d2e22a4b9361bd5780d05"; - public const string VISORS_OAKLEY_SI_M_FRAME_SAFETY_GLASSES = "5c1a1cc52e221602b3136e3d"; - public const string VISORS_OAKLEY_SI_M_FRAME_SAFETY_GLASSES_ORANGE_LENSES = - "67af42942676ade5750b50e8"; - public const string VISORS_PYRAMEX_PROXIMITY_SAFETY_GLASSES = "5c0d32fcd174af02a1659c75"; - public const string VISORS_RAYBENCH_AVIATOR_GLASSES = "5d6d2ef3a4b93618084f58bd"; - public const string VISORS_RAYBENCH_AVIATOR_GLASSES_GREEN_LENSES = "67af425c2676ade5750b50e6"; - public const string VISORS_RAYBENCH_HIPSTER_RESERVE_SUNGLASSES = "5aa2b9aee5b5b00015693121"; - public const string VISORS_ROUND_FRAME_SUNGLASSES = "5aa2b923e5b5b000137b7589"; - public const string VISORS_ROUND_FRAME_SUNGLASSES_GREEN_LENSES = "67af42b38d9ef5c57e0d5126"; - public const string VISORS_TACTICAL_GLASSES = "557ff21e4bdc2d89578b4586"; - public const string VISORS_TWITCH_RIVALS_2020_GLASSES = "5e71f70186f77429ee09f183"; + public static readonly MongoId AMMO_127X108_B32 = new MongoId("5cde8864d7f00c0010373be1"); + public static readonly MongoId AMMO_127X108_BZT44M = new MongoId("5d2f2ab648f03550091993ca"); + public static readonly MongoId AMMO_127X33_COPPER = new MongoId("66a0d1e0ed648d72fe064d06"); + public static readonly MongoId AMMO_127X33_FMJ = new MongoId("668fe62ac62660a5d8071446"); + public static readonly MongoId AMMO_127X33_HAWK_JSP = new MongoId("66a0d1f88486c69fce00fdf6"); + public static readonly MongoId AMMO_127X33_JHP = new MongoId("66a0d1c87d0d369e270bb9de"); + public static readonly MongoId AMMO_127X55_PS12 = new MongoId("5cadf6ddae9215051e1c23b2"); + public static readonly MongoId AMMO_127X55_PS12A = new MongoId("5cadf6e5ae921500113bb973"); + public static readonly MongoId AMMO_127X55_PS12B = new MongoId("5cadf6eeae921500134b2799"); + public static readonly MongoId AMMO_12G_50_BMG = new MongoId("5d6e68c4a4b9361b93413f79"); + public static readonly MongoId AMMO_12G_525MM = new MongoId("5d6e6772a4b936088465b17c"); + public static readonly MongoId AMMO_12G_7MM = new MongoId("560d5e524bdc2d25448b4571"); + public static readonly MongoId AMMO_12G_AP20 = new MongoId("5d6e68a8a4b9360b6c0d54e2"); + public static readonly MongoId AMMO_12G_CSP = new MongoId("5d6e68b3a4b9361bca7e50b5"); + public static readonly MongoId AMMO_12G_DUALSABOT = new MongoId("5d6e68dea4b9361bcc29e659"); + public static readonly MongoId AMMO_12G_EXPRESS = new MongoId("5d6e67fba4b9361bc73bc779"); + public static readonly MongoId AMMO_12G_FLECHETTE = new MongoId("5d6e6911a4b9361bd5780d52"); + public static readonly MongoId AMMO_12G_FTX = new MongoId("5d6e68e6a4b9361c140bcfe0"); + public static readonly MongoId AMMO_12G_GRIZZLY_40 = new MongoId("5d6e6869a4b9361c140bcfde"); + public static readonly MongoId AMMO_12G_MAGNUM = new MongoId("5d6e6806a4b936088465b17e"); + public static readonly MongoId AMMO_12G_PIRANHA = new MongoId("64b8ee384b75259c590fa89b"); + public static readonly MongoId AMMO_12G_POLEVA3 = new MongoId("5d6e6891a4b9361bd473feea"); + public static readonly MongoId AMMO_12G_POLEVA6U = new MongoId("5d6e689ca4b9361bc8618956"); + public static readonly MongoId AMMO_12G_RIP = new MongoId("5c0d591486f7744c505b416f"); + public static readonly MongoId AMMO_12G_SFORMANCE = new MongoId("5d6e68d1a4b93622fe60e845"); + public static readonly MongoId AMMO_12G_SLUG = new MongoId("58820d1224597753c90aeb13"); + public static readonly MongoId AMMO_20G_56MM = new MongoId("5d6e695fa4b936359b35d852"); + public static readonly MongoId AMMO_20G_62MM = new MongoId("5d6e69b9a4b9361bc8618958"); + public static readonly MongoId AMMO_20G_73MM = new MongoId("5d6e69c7a4b9360b6c0d54e4"); + public static readonly MongoId AMMO_20G_75MM = new MongoId("5a38ebd9c4a282000d722a5b"); + public static readonly MongoId AMMO_20G_DEVASTATOR = new MongoId("5d6e6a5fa4b93614ec501745"); + public static readonly MongoId AMMO_20G_DGS = new MongoId("660137ef76c1b56143052be8"); + public static readonly MongoId AMMO_20G_FLECHETTE = new MongoId("6601380580e77cfd080e3418"); + public static readonly MongoId AMMO_20G_POLEVA3 = new MongoId("5d6e6a53a4b9361bd473feec"); + public static readonly MongoId AMMO_20G_POLEVA6U = new MongoId("5d6e6a42a4b9364f07165f52"); + public static readonly MongoId AMMO_20G_STAR = new MongoId("5d6e6a05a4b93618084f58d0"); + public static readonly MongoId AMMO_20G_TSS_AP = new MongoId("660137d8481cc6907a0c5cda"); + public static readonly MongoId AMMO_20X1MM_DISK = new MongoId("6601546f86889319850bd566"); + public static readonly MongoId AMMO_23X75_BARRIKADA = new MongoId("5e85aa1a988a8701445df1f5"); + public static readonly MongoId AMMO_23X75_CHER7M = new MongoId("5e85aac65505fa48730d8af2"); + public static readonly MongoId AMMO_23X75_SHRAP10 = new MongoId("5e85a9a6eacf8c039e4e2ac1"); + public static readonly MongoId AMMO_23X75_SHRAP25 = new MongoId("5f647f31b6238e5dd066e196"); + public static readonly MongoId AMMO_23X75_VOLNAR = new MongoId("5f647fd3f6e4ab66c82faed6"); + public static readonly MongoId AMMO_23X75_ZVEZDA = new MongoId("5e85a9f4add9fe03027d9bf1"); + public static readonly MongoId AMMO_26X75_AG = new MongoId("635267f063651329f75a4ee8"); + public static readonly MongoId AMMO_26X75_FLARE = new MongoId("62389bc9423ed1685422dc57"); + public static readonly MongoId AMMO_26X75_GREEN = new MongoId("62389aaba63f32501b1b444f"); + public static readonly MongoId AMMO_26X75_RED = new MongoId("62389ba9a63f32501b1b4451"); + public static readonly MongoId AMMO_26X75_SIGNAL_FLARE_BLUE = new MongoId( + "66d97834d2985e11480d5c1e" + ); + public static readonly MongoId AMMO_26X75_SIGNAL_FLARE_GREEN = new MongoId( + "624c0570c9b794431568f5d5" + ); + public static readonly MongoId AMMO_26X75_SIGNAL_FLARE_NEW_YEAR = new MongoId( + "675ea4891b2579e8fe0250aa" + ); + public static readonly MongoId AMMO_26X75_SIGNAL_FLARE_RED = new MongoId( + "624c09cfbc2e27219346d955" + ); + public static readonly MongoId AMMO_26X75_SIGNAL_FLARE_SPECIAL_YELLOW = new MongoId( + "66d9f3047b82b9a9aa055d81" + ); + public static readonly MongoId AMMO_26X75_SIGNAL_FLARE_WHITE = new MongoId( + "624c09da2cec124eb67c1046" + ); + public static readonly MongoId AMMO_26X75_SIGNAL_FLARE_YELLOW = new MongoId( + "624c09e49b98e019a3315b66" + ); + public static readonly MongoId AMMO_26X75_YELLOW = new MongoId("62389be94d5d474bf712e709"); + public static readonly MongoId AMMO_30X29_VOG30 = new MongoId("5d70e500a4b9364de70d38ce"); + public static readonly MongoId AMMO_366TKM_APM = new MongoId("5f0596629e22f464da6bbdd9"); + public static readonly MongoId AMMO_366TKM_EKO = new MongoId("59e655cb86f77411dc52a77b"); + public static readonly MongoId AMMO_366TKM_FMJ = new MongoId("59e6542b86f77411dc52a77a"); + public static readonly MongoId AMMO_366TKM_GEKSA = new MongoId("59e6658b86f77411d949b250"); + public static readonly MongoId AMMO_40MMRU_VOG25 = new MongoId("5656eb674bdc2d35148b457c"); + public static readonly MongoId AMMO_40X46_M381 = new MongoId("5ede474b0c226a66f5402622"); + public static readonly MongoId AMMO_40X46_M386 = new MongoId("5ede475b549eed7c6d5c18fb"); + public static readonly MongoId AMMO_40X46_M406 = new MongoId("5ede4739e0350d05467f73e8"); + public static readonly MongoId AMMO_40X46_M433 = new MongoId("5f0c892565703e5c461894e9"); + public static readonly MongoId AMMO_40X46_M441 = new MongoId("5ede47405b097655935d7d16"); + public static readonly MongoId AMMO_40X46_M576 = new MongoId("5ede475339ee016e8c534742"); + public static readonly MongoId AMMO_40X46_M716 = new MongoId("5ede47641cf3836a88318df1"); + public static readonly MongoId AMMO_45ACP_AP = new MongoId("5efb0cabfb3e451d70735af5"); + public static readonly MongoId AMMO_45ACP_FMJ = new MongoId("5e81f423763d9f754677bf2e"); + public static readonly MongoId AMMO_45ACP_HYDRASHOK = new MongoId("5efb0fc6aeb21837e749c801"); + public static readonly MongoId AMMO_45ACP_LASERMATCH = new MongoId("5efb0d4f4bc50b58e81710f3"); + public static readonly MongoId AMMO_45ACP_RIP = new MongoId("5ea2a8e200685063ec28c05a"); + public static readonly MongoId AMMO_46X30_ACTION_SX = new MongoId("5ba26812d4351e003201fef1"); + public static readonly MongoId AMMO_46X30_AP_SX = new MongoId("5ba26835d4351e0035628ff5"); + public static readonly MongoId AMMO_46X30_FMJ_SX = new MongoId("5ba2678ad4351e44f824b344"); + public static readonly MongoId AMMO_46X30_JSP_SX = new MongoId("64b6979341772715af0f9c39"); + public static readonly MongoId AMMO_46X30_SUBSONIC_SX = new MongoId("5ba26844d4351e00334c9475"); + public static readonly MongoId AMMO_545X39_7N40 = new MongoId("61962b617c6c7b169525f168"); + public static readonly MongoId AMMO_545X39_BP = new MongoId("56dfef82d2720bbd668b4567"); + public static readonly MongoId AMMO_545X39_BS = new MongoId("56dff026d2720bb8668b4567"); + public static readonly MongoId AMMO_545X39_BT = new MongoId("56dff061d2720bb5668b4567"); + public static readonly MongoId AMMO_545X39_FMJ = new MongoId("56dff0bed2720bb0668b4567"); + public static readonly MongoId AMMO_545X39_HP = new MongoId("56dff216d2720bbd668b4568"); + public static readonly MongoId AMMO_545X39_PP = new MongoId("56dff2ced2720bb4668b4567"); + public static readonly MongoId AMMO_545X39_PPBS = new MongoId("5c0d5e4486f77478390952fe"); + public static readonly MongoId AMMO_545X39_PRS = new MongoId("56dff338d2720bbd668b4569"); + public static readonly MongoId AMMO_545X39_PS = new MongoId("56dff3afd2720bba668b4567"); + public static readonly MongoId AMMO_545X39_SP = new MongoId("56dff421d2720b5f5a8b4567"); + public static readonly MongoId AMMO_545X39_T = new MongoId("56dff4a2d2720bbd668b456a"); + public static readonly MongoId AMMO_545X39_US = new MongoId("56dff4ecd2720b5f5a8b4568"); + public static readonly MongoId AMMO_556X45_6MM_BB = new MongoId("6241c316234b593b5676b637"); + public static readonly MongoId AMMO_556X45_FMJ = new MongoId("59e6920f86f77411d82aa167"); + public static readonly MongoId AMMO_556X45_HP = new MongoId("59e6927d86f77411da468256"); + public static readonly MongoId AMMO_556X45_M855 = new MongoId("54527a984bdc2d4e668b4567"); + public static readonly MongoId AMMO_556X45_M855A1 = new MongoId("54527ac44bdc2d36668b4567"); + public static readonly MongoId AMMO_556X45_M856 = new MongoId("59e68f6f86f7746c9f75e846"); + public static readonly MongoId AMMO_556X45_M856A1 = new MongoId("59e6906286f7746c9f75e847"); + public static readonly MongoId AMMO_556X45_M995 = new MongoId("59e690b686f7746c9f75e848"); + public static readonly MongoId AMMO_556X45_RRLP = new MongoId("59e6918f86f7746c9f75e849"); + public static readonly MongoId AMMO_556X45_SOST = new MongoId("60194943740c5d77f6705eea"); + public static readonly MongoId AMMO_556X45_SSA_AP = new MongoId("601949593ae8f707c4608daa"); + public static readonly MongoId AMMO_556X45_WARMAGE = new MongoId("5c0d5ae286f7741e46554302"); + public static readonly MongoId AMMO_57X28_L191 = new MongoId("5cc80f53e4a949000e1ea4f8"); + public static readonly MongoId AMMO_57X28_R37F = new MongoId("5cc86832d7f00c000d3a6e6c"); + public static readonly MongoId AMMO_57X28_R37X = new MongoId("5cc86840d7f00c002412c56c"); + public static readonly MongoId AMMO_57X28_SB193 = new MongoId("5cc80f67e4a949035e43bbba"); + public static readonly MongoId AMMO_57X28_SS190 = new MongoId("5cc80f38e4a949001152b560"); + public static readonly MongoId AMMO_57X28_SS197SR = new MongoId("5cc80f8fe4a949033b0224a2"); + public static readonly MongoId AMMO_57X28_SS198LF = new MongoId("5cc80f79e4a949033c7343b2"); + public static readonly MongoId AMMO_68X51_FMJ = new MongoId("6529302b8c26af6326029fb7"); + public static readonly MongoId AMMO_68X51_HYBRID = new MongoId("6529243824cbe3c74a05e5c1"); + public static readonly MongoId AMMO_762X25TT_AKBS = new MongoId("5735fdcd2459776445391d61"); + public static readonly MongoId AMMO_762X25TT_FMJ43 = new MongoId("5735ff5c245977640e39ba7e"); + public static readonly MongoId AMMO_762X25TT_LRN = new MongoId("573601b42459776410737435"); + public static readonly MongoId AMMO_762X25TT_LRNPC = new MongoId("573602322459776445391df1"); + public static readonly MongoId AMMO_762X25TT_P = new MongoId("5736026a245977644601dc61"); + public static readonly MongoId AMMO_762X25TT_PST = new MongoId("573603562459776430731618"); + public static readonly MongoId AMMO_762X25TT_PT = new MongoId("573603c924597764442bd9cb"); + public static readonly MongoId AMMO_762X35_AP = new MongoId("5fd20ff893a8961fc660a954"); + public static readonly MongoId AMMO_762X35_BCP_FMJ = new MongoId("5fbe3ffdf8b6a877a729ea82"); + public static readonly MongoId AMMO_762X35_CBJ = new MongoId("64b8725c4b75259c590fa899"); + public static readonly MongoId AMMO_762X35_M62 = new MongoId("619636be6db0f2477964e710"); + public static readonly MongoId AMMO_762X35_VMAX = new MongoId("6196364158ef8c428c287d9f"); + public static readonly MongoId AMMO_762X35_WHISPER = new MongoId("6196365d58ef8c428c287da1"); + public static readonly MongoId AMMO_762X39_BP = new MongoId("59e0d99486f7744a32234762"); + public static readonly MongoId AMMO_762X39_FMJ = new MongoId("64b7af5a8532cf95ee0a0dbd"); + public static readonly MongoId AMMO_762X39_HP = new MongoId("59e4d3d286f774176a36250a"); + public static readonly MongoId AMMO_762X39_MAI_AP = new MongoId("601aa3d2b2bcb34913271e6d"); + public static readonly MongoId AMMO_762X39_PP = new MongoId("64b7af434b75259c590fa893"); + public static readonly MongoId AMMO_762X39_PS = new MongoId("5656d7c34bdc2d9d198b4587"); + public static readonly MongoId AMMO_762X39_SP = new MongoId("64b7af734b75259c590fa895"); + public static readonly MongoId AMMO_762X39_T45M1 = new MongoId("59e4cf5286f7741778269d8a"); + public static readonly MongoId AMMO_762X39_US = new MongoId("59e4d24686f7741776641ac7"); + public static readonly MongoId AMMO_762X51_BCP_FMJ = new MongoId("5e023e53d4353e3302577c4c"); + public static readonly MongoId AMMO_762X51_M61 = new MongoId("5a6086ea4f39f99cd479502f"); + public static readonly MongoId AMMO_762X51_M62 = new MongoId("5a608bf24f39f98ffc77720e"); + public static readonly MongoId AMMO_762X51_M80 = new MongoId("58dd3ad986f77403051cba8f"); + public static readonly MongoId AMMO_762X51_M80A1 = new MongoId("6768c25aa7b238f14a08d3f6"); + public static readonly MongoId AMMO_762X51_M993 = new MongoId("5efb0c1bd79ff02a1f5e68d9"); + public static readonly MongoId AMMO_762X51_TCW_SP = new MongoId("5e023e6e34d52a55c3304f71"); + public static readonly MongoId AMMO_762X51_ULTRA_NOSLER = new MongoId( + "5e023e88277cce2b522ff2b1" + ); + public static readonly MongoId AMMO_762X54R_BS = new MongoId("5e023d48186a883be655e551"); + public static readonly MongoId AMMO_762X54R_BT = new MongoId("5e023d34e8a400319a28ed44"); + public static readonly MongoId AMMO_762X54R_FMJ = new MongoId("64b8f7968532cf95ee0a0dbf"); + public static readonly MongoId AMMO_762X54R_HP_BT = new MongoId("64b8f7c241772715af0f9c3d"); + public static readonly MongoId AMMO_762X54R_LPS = new MongoId("5887431f2459777e1612938f"); + public static readonly MongoId AMMO_762X54R_PS = new MongoId("59e77a2386f7742ee578960a"); + public static readonly MongoId AMMO_762X54R_SNB = new MongoId("560d61e84bdc2da74d8b4571"); + public static readonly MongoId AMMO_762X54R_SP_BT = new MongoId("64b8f7b5389d7ffd620ccba2"); + public static readonly MongoId AMMO_762X54R_T46M = new MongoId("5e023cf8186a883be655e54f"); + public static readonly MongoId AMMO_86X70_AP = new MongoId("5fc382a9d724d907e2077dab"); + public static readonly MongoId AMMO_86X70_FMJ = new MongoId("5fc275cf85fd526b824a571a"); + public static readonly MongoId AMMO_86X70_TACX = new MongoId("5fc382b6d6fa9c00c571bbc3"); + public static readonly MongoId AMMO_86X70_UCW = new MongoId("5fc382c1016cce60e8341b20"); + public static readonly MongoId AMMO_9X18PM_BZHT = new MongoId("573718ba2459775a75491131"); + public static readonly MongoId AMMO_9X18PM_P = new MongoId("573719762459775a626ccbc1"); + public static readonly MongoId AMMO_9X18PM_PBM = new MongoId("573719df2459775a626ccbc2"); + public static readonly MongoId AMMO_9X18PM_PPE = new MongoId("57371b192459775a9f58a5e0"); + public static readonly MongoId AMMO_9X18PM_PPT = new MongoId("57371e4124597760ff7b25f1"); + public static readonly MongoId AMMO_9X18PM_PRS = new MongoId("57371eb62459776125652ac1"); + public static readonly MongoId AMMO_9X18PM_PS_PPO = new MongoId("57371f2b24597761224311f1"); + public static readonly MongoId AMMO_9X18PM_PSO = new MongoId("57371f8d24597761006c6a81"); + public static readonly MongoId AMMO_9X18PM_PST = new MongoId("5737201124597760fc4431f1"); + public static readonly MongoId AMMO_9X18PM_PSTM = new MongoId("57371aab2459775a77142f22"); + public static readonly MongoId AMMO_9X18PM_PSV = new MongoId("5737207f24597760ff7b25f2"); + public static readonly MongoId AMMO_9X18PM_RG028 = new MongoId("573720e02459776143012541"); + public static readonly MongoId AMMO_9X18PM_SHRAPNEL = new MongoId("5943d9c186f7745a13413ac9"); + public static readonly MongoId AMMO_9X18PM_SP7 = new MongoId("57372140245977611f70ee91"); + public static readonly MongoId AMMO_9X18PM_SP8 = new MongoId("5737218f245977612125ba51"); + public static readonly MongoId AMMO_9X19_AP_63 = new MongoId("5c925fa22e221601da359b7b"); + public static readonly MongoId AMMO_9X19_GT = new MongoId("5c3df7d588a4501f290594e5"); + public static readonly MongoId AMMO_9X19_LUGER_CCI = new MongoId("5a3c16fe86f77452b62de32a"); + public static readonly MongoId AMMO_9X19_M882 = new MongoId("64b7bbb74b75259c590fa897"); + public static readonly MongoId AMMO_9X19_PBP = new MongoId("5efb0da7a29a85116f6ea05f"); + public static readonly MongoId AMMO_9X19_PSO = new MongoId("58864a4f2459770fcc257101"); + public static readonly MongoId AMMO_9X19_PST = new MongoId("56d59d3ad2720bdb418b4577"); + public static readonly MongoId AMMO_9X19_QUAKEMAKER = new MongoId("5efb0e16aeb21837e749c7ff"); + public static readonly MongoId AMMO_9X19_RIP = new MongoId("5c0d56a986f774449d5de529"); + public static readonly MongoId AMMO_9X21_7N42 = new MongoId("6576f4708ca9c4381d16cd9d"); + public static readonly MongoId AMMO_9X21_7U4 = new MongoId("6576f93989f0062e741ba952"); + public static readonly MongoId AMMO_9X21_BT = new MongoId("5a26ac0ec4a28200741e1e18"); + public static readonly MongoId AMMO_9X21_P = new MongoId("5a26abfac4a28232980eabff"); + public static readonly MongoId AMMO_9X21_PE = new MongoId("5a26ac06c4a282000c5a90a8"); + public static readonly MongoId AMMO_9X21_PS = new MongoId("5a269f97c4a282000b151807"); + public static readonly MongoId AMMO_9X33R_FMJ = new MongoId("62330b3ed4dc74626d570b95"); + public static readonly MongoId AMMO_9X33R_HP = new MongoId("62330bfadc5883093563729b"); + public static readonly MongoId AMMO_9X33R_JHP = new MongoId("62330c18744e5e31df12f516"); + public static readonly MongoId AMMO_9X33R_SP = new MongoId("62330c40bdd19b369e1e53d1"); + public static readonly MongoId AMMO_9X39_BP = new MongoId("5c0d688c86f77413ae3407b2"); + public static readonly MongoId AMMO_9X39_FMJ = new MongoId("6576f96220d53a5b8f3e395e"); + public static readonly MongoId AMMO_9X39_PAB9 = new MongoId("61962d879bb3d20b0946d385"); + public static readonly MongoId AMMO_9X39_SP5 = new MongoId("57a0dfb82459774d3078b56c"); + public static readonly MongoId AMMO_9X39_SP6 = new MongoId("57a0e5022459774d1673f889"); + public static readonly MongoId AMMO_9X39_SPP = new MongoId("5c0d668f86f7747ccb7f13b2"); + public static readonly MongoId AMMOBOX_127X33_COPPER_20RND = new MongoId( + "676009ddb623f3b8ba079419" + ); + public static readonly MongoId AMMOBOX_127X33_FMJ_20RND = new MongoId( + "676009ed8f1fee08740f9479" + ); + public static readonly MongoId AMMOBOX_127X33_JHP_20RND = new MongoId( + "676009fe8f1fee08740f947c" + ); + public static readonly MongoId AMMOBOX_127X33_JSP_20RND = new MongoId( + "67600a0e84e242067d0dc4cd" + ); + public static readonly MongoId AMMOBOX_127X55_PS12_10RND = new MongoId( + "6570241bcfc010a0f50069f5" + ); + public static readonly MongoId AMMOBOX_127X55_PS12A_10RND = new MongoId( + "65702420bfc87b3a34093219" + ); + public static readonly MongoId AMMOBOX_127X55_PS12B_10RND = new MongoId( + "648983d6b5a2df1c815a04ec" + ); + public static readonly MongoId AMMOBOX_12G_50_BMG_25RND = new MongoId( + "65702469c5d7d4cb4d07855b" + ); + public static readonly MongoId AMMOBOX_12G_525MM_25RND = new MongoId( + "65702426cfc010a0f50069f8" + ); + public static readonly MongoId AMMOBOX_12G_7MM_25RND = new MongoId("657024361419851aef03e6fa"); + public static readonly MongoId AMMOBOX_12G_AP20_25RND = new MongoId("64898838d5b4df6140000a20"); + public static readonly MongoId AMMOBOX_12G_CSP_25RND = new MongoId("65702479c5d7d4cb4d07855e"); + public static readonly MongoId AMMOBOX_12G_DUALSABOT_25RND = new MongoId( + "6570243fcfc010a0f50069fb" + ); + public static readonly MongoId AMMOBOX_12G_EXPRESS_25RND = new MongoId( + "65702432bfc87b3a3409321c" + ); + public static readonly MongoId AMMOBOX_12G_FLECHETTE_25RND = new MongoId( + "65702474bfc87b3a34093226" + ); + public static readonly MongoId AMMOBOX_12G_FTX_25RND = new MongoId("65702449bfc87b3a34093223"); + public static readonly MongoId AMMOBOX_12G_GRIZZLY_40_25RND = new MongoId( + "6570244ec5d7d4cb4d078558" + ); + public static readonly MongoId AMMOBOX_12G_MAGNUM_25RND = new MongoId( + "6570243bbfc87b3a3409321f" + ); + public static readonly MongoId AMMOBOX_12G_PIRANHA_25RND = new MongoId( + "657024431419851aef03e6fd" + ); + public static readonly MongoId AMMOBOX_12G_POLEVA3_25RND = new MongoId( + "65702452cfc010a0f50069fe" + ); + public static readonly MongoId AMMOBOX_12G_POLEVA6U_25RND = new MongoId( + "657024581419851aef03e700" + ); + public static readonly MongoId AMMOBOX_12G_RIP_5RND = new MongoId("5c1127d0d174af29be75cf68"); + public static readonly MongoId AMMOBOX_12G_SFORMANCE_25RND = new MongoId( + "6570247ebfc87b3a34093229" + ); + public static readonly MongoId AMMOBOX_12G_SLUG_25RND = new MongoId("6570246fcfc010a0f5006a01"); + public static readonly MongoId AMMOBOX_20G_56MM_25RND = new MongoId("657024831419851aef03e703"); + public static readonly MongoId AMMOBOX_20G_62MM_25RND = new MongoId("6570248dcfc010a0f5006a04"); + public static readonly MongoId AMMOBOX_20G_73MM_25RND = new MongoId("657024921419851aef03e706"); + public static readonly MongoId AMMOBOX_20G_75MM_25RND = new MongoId("65702495c5d7d4cb4d078561"); + public static readonly MongoId AMMOBOX_20G_DEVASTATOR_25RND = new MongoId( + "6570249bcfc010a0f5006a07" + ); + public static readonly MongoId AMMOBOX_20G_DGS_25RND = new MongoId("67657773b83469e4f102dc27"); + public static readonly MongoId AMMOBOX_20G_FLECHETTE_25RND = new MongoId( + "676577166d874f6502106a21" + ); + public static readonly MongoId AMMOBOX_20G_POLEVA3_25RND = new MongoId( + "657024a4bfc87b3a3409322c" + ); + public static readonly MongoId AMMOBOX_20G_POLEVA6U_25RND = new MongoId( + "657024a91419851aef03e70c" + ); + public static readonly MongoId AMMOBOX_20G_STAR_25RND = new MongoId("6570249f1419851aef03e709"); + public static readonly MongoId AMMOBOX_20G_TSS_AP_25RND = new MongoId( + "67657764c832f8c59c016d45" + ); + public static readonly MongoId AMMOBOX_23X75_BARRIKADA_5RND = new MongoId( + "657024b8bfc87b3a34093232" + ); + public static readonly MongoId AMMOBOX_23X75_SHRAP10_5RND = new MongoId( + "657024aebfc87b3a3409322f" + ); + public static readonly MongoId AMMOBOX_23X75_SHRAP25_5RND = new MongoId( + "657024b31419851aef03e70f" + ); + public static readonly MongoId AMMOBOX_23X75_ZVEZDA_5RND = new MongoId( + "657024bdc5d7d4cb4d078564" + ); + public static readonly MongoId AMMOBOX_366TKM_APM_20RND = new MongoId( + "657023f81419851aef03e6f1" + ); + public static readonly MongoId AMMOBOX_366TKM_EKO_20RND = new MongoId( + "657024011419851aef03e6f4" + ); + public static readonly MongoId AMMOBOX_366TKM_FMJ_20RND = new MongoId( + "657023f1bfc87b3a34093210" + ); + public static readonly MongoId AMMOBOX_366TKM_GEKSA_20RND = new MongoId( + "657023fcbfc87b3a34093213" + ); + public static readonly MongoId AMMOBOX_45ACP_AP_50RND = new MongoId("6489879db5a2df1c815a04ef"); + public static readonly MongoId AMMOBOX_45ACP_FMJ_50RND = new MongoId( + "6570240ecfc010a0f50069f2" + ); + public static readonly MongoId AMMOBOX_45ACP_HYDRASHOK_50RND = new MongoId( + "65702406bfc87b3a34093216" + ); + public static readonly MongoId AMMOBOX_45ACP_LASERMATCH_50RND = new MongoId( + "6570240a1419851aef03e6f7" + ); + public static readonly MongoId AMMOBOX_45ACP_RIP_50RND = new MongoId( + "65702414c5d7d4cb4d078555" + ); + public static readonly MongoId AMMOBOX_46X30_ACTION_SX_40RND = new MongoId( + "657024c81419851aef03e712" + ); + public static readonly MongoId AMMOBOX_46X30_AP_SX_40RND = new MongoId( + "6489870774a806211e4fb685" + ); + public static readonly MongoId AMMOBOX_46X30_FMJ_SX_40RND = new MongoId( + "657024cecfc010a0f5006a0a" + ); + public static readonly MongoId AMMOBOX_46X30_JSP_SX_40RND = new MongoId( + "64aceaecc4eda9354b0226b6" + ); + public static readonly MongoId AMMOBOX_46X30_SUBSONIC_SX_40RND = new MongoId( + "657024d2bfc87b3a34093235" + ); + public static readonly MongoId AMMOBOX_545X39_7N40_120RND = new MongoId( + "6570900858b315e8b70a8a98" + ); + public static readonly MongoId AMMOBOX_545X39_7N40_30RND = new MongoId( + "64898602f09d032aa9399d56" + ); + public static readonly MongoId AMMOBOX_545X39_BP_120RND = new MongoId( + "5737292724597765e5728562" + ); + public static readonly MongoId AMMOBOX_545X39_BP_120RND_DAMAGED = new MongoId( + "57372a7f24597766fe0de0c1" + ); + public static readonly MongoId AMMOBOX_545X39_BP_30RND = new MongoId( + "57372ac324597767001bc261" + ); + public static readonly MongoId AMMOBOX_545X39_BS_120RND = new MongoId( + "57372b832459776701014e41" + ); + public static readonly MongoId AMMOBOX_545X39_BS_120RND_DAMAGED = new MongoId( + "57372bad245977670b7cd242" + ); + public static readonly MongoId AMMOBOX_545X39_BS_30RND = new MongoId( + "57372bd3245977670b7cd243" + ); + public static readonly MongoId AMMOBOX_545X39_BT_120RND = new MongoId( + "57372c21245977670937c6c2" + ); + public static readonly MongoId AMMOBOX_545X39_BT_120RND_DAMAGED = new MongoId( + "57372c56245977685e584582" + ); + public static readonly MongoId AMMOBOX_545X39_BT_30RND = new MongoId( + "57372c89245977685d4159b1" + ); + public static readonly MongoId AMMOBOX_545X39_FMJ_30RND = new MongoId( + "5737330a2459776af32363a1" + ); + public static readonly MongoId AMMOBOX_545X39_HP_30RND = new MongoId( + "5737339e2459776af261abeb" + ); + public static readonly MongoId AMMOBOX_545X39_PP_120RND = new MongoId( + "57372d1b2459776862260581" + ); + public static readonly MongoId AMMOBOX_545X39_PP_120RND_DAMAGED = new MongoId( + "57372d4c245977685a3da2a1" + ); + public static readonly MongoId AMMOBOX_545X39_PP_30RND = new MongoId( + "57372db0245977685d4159b2" + ); + public static readonly MongoId AMMOBOX_545X39_PPBS_120RND = new MongoId( + "657025ebc5d7d4cb4d078588" + ); + public static readonly MongoId AMMOBOX_545X39_PPBS_30RND = new MongoId( + "5c1262a286f7743f8a69aab2" + ); + public static readonly MongoId AMMOBOX_545X39_PRS_120RND = new MongoId( + "57372deb245977685d4159b3" + ); + public static readonly MongoId AMMOBOX_545X39_PRS_120RND_DAMAGED = new MongoId( + "57372e1924597768553071c1" + ); + public static readonly MongoId AMMOBOX_545X39_PRS_30RND = new MongoId( + "57372e4a24597768553071c2" + ); + public static readonly MongoId AMMOBOX_545X39_PS_120RND = new MongoId( + "57372e73245977685d4159b4" + ); + public static readonly MongoId AMMOBOX_545X39_PS_120RND_DAMAGED = new MongoId( + "57372e94245977685648d3e1" + ); + public static readonly MongoId AMMOBOX_545X39_PS_30RND = new MongoId( + "57372ebf2459776862260582" + ); + public static readonly MongoId AMMOBOX_545X39_SP_30RND = new MongoId( + "573733c72459776b0b7b51b0" + ); + public static readonly MongoId AMMOBOX_545X39_T_120RND = new MongoId( + "57372ee1245977685d4159b5" + ); + public static readonly MongoId AMMOBOX_545X39_T_120RND_DAMAGED = new MongoId( + "57372f2824597769a270a191" + ); + public static readonly MongoId AMMOBOX_545X39_T_30RND = new MongoId("57372f5c24597769917c0131"); + public static readonly MongoId AMMOBOX_545X39_US_120RND = new MongoId( + "57372f7d245977699b53e301" + ); + public static readonly MongoId AMMOBOX_545X39_US_120RND_DAMAGED = new MongoId( + "57372fc52459776998772ca1" + ); + public static readonly MongoId AMMOBOX_545X39_US_30RND = new MongoId( + "5737300424597769942d5a01" + ); + public static readonly MongoId AMMOBOX_556X45_FMJ_100RND = new MongoId( + "657026451419851aef03e733" + ); + public static readonly MongoId AMMOBOX_556X45_FMJ_50RND = new MongoId( + "657024d8c5d7d4cb4d078567" + ); + public static readonly MongoId AMMOBOX_556X45_HP_100RND = new MongoId( + "6570264acfc010a0f5006a50" + ); + public static readonly MongoId AMMOBOX_556X45_HP_50RND = new MongoId( + "657024debfc87b3a34093238" + ); + public static readonly MongoId AMMOBOX_556X45_M855_100RND = new MongoId( + "6570264d1419851aef03e736" + ); + public static readonly MongoId AMMOBOX_556X45_M855_50RND = new MongoId( + "5447ac644bdc2d6c208b4567" + ); + public static readonly MongoId AMMOBOX_556X45_M855A1_100RND = new MongoId( + "65702652cfc010a0f5006a53" + ); + public static readonly MongoId AMMOBOX_556X45_M855A1_50RND = new MongoId( + "657024e3c5d7d4cb4d07856a" + ); + public static readonly MongoId AMMOBOX_556X45_M856_100RND = new MongoId( + "65702656c5d7d4cb4d078591" + ); + public static readonly MongoId AMMOBOX_556X45_M856_50RND = new MongoId( + "657024e8cfc010a0f5006a0d" + ); + public static readonly MongoId AMMOBOX_556X45_M856A1_100RND = new MongoId( + "6570265bcfc010a0f5006a56" + ); + public static readonly MongoId AMMOBOX_556X45_M856A1_50RND = new MongoId( + "657024ecc5d7d4cb4d07856d" + ); + public static readonly MongoId AMMOBOX_556X45_M995_100RND = new MongoId( + "6570265f1419851aef03e739" + ); + public static readonly MongoId AMMOBOX_556X45_M995_50RND = new MongoId( + "657024f01419851aef03e715" + ); + public static readonly MongoId AMMOBOX_556X45_RRLP_100RND = new MongoId( + "65702664cfc010a0f5006a59" + ); + public static readonly MongoId AMMOBOX_556X45_RRLP_50RND = new MongoId( + "657024f5cfc010a0f5006a10" + ); + public static readonly MongoId AMMOBOX_556X45_SOST_100RND = new MongoId( + "6570266bc5d7d4cb4d078594" + ); + public static readonly MongoId AMMOBOX_556X45_SOST_50RND = new MongoId( + "657024f9bfc87b3a3409323b" + ); + public static readonly MongoId AMMOBOX_556X45_SSA_AP_100RND = new MongoId( + "65702681bfc87b3a3409325f" + ); + public static readonly MongoId AMMOBOX_556X45_SSA_AP_50RND = new MongoId( + "64898583d5b4df6140000a1d" + ); + public static readonly MongoId AMMOBOX_556X45_WARMAGE_20RND = new MongoId( + "5c11279ad174af029d64592b" + ); + public static readonly MongoId AMMOBOX_57X28_L191_50RND = new MongoId( + "657025161419851aef03e718" + ); + public static readonly MongoId AMMOBOX_57X28_R37F_50RND = new MongoId( + "6570251ccfc010a0f5006a13" + ); + public static readonly MongoId AMMOBOX_57X28_R37X_50RND = new MongoId( + "65702520bfc87b3a3409323e" + ); + public static readonly MongoId AMMOBOX_57X28_SB193_50RND = new MongoId( + "65702524cfc010a0f5006a16" + ); + public static readonly MongoId AMMOBOX_57X28_SS190_50RND = new MongoId( + "648986bbc827d4637f01791e" + ); + public static readonly MongoId AMMOBOX_57X28_SS197SR_50RND = new MongoId( + "657025281419851aef03e71b" + ); + public static readonly MongoId AMMOBOX_57X28_SS198LF_50RND = new MongoId( + "6570252dbfc87b3a34093241" + ); + public static readonly MongoId AMMOBOX_68X51_FMJ_20RND = new MongoId( + "67600a42b32eb5d23e0eb459" + ); + public static readonly MongoId AMMOBOX_68X51_HYBRID_20RND = new MongoId( + "67600a516f01341c9106ab4c" + ); + public static readonly MongoId AMMOBOX_762X25TT_AKBS_25RND = new MongoId( + "6570253ec5d7d4cb4d078573" + ); + public static readonly MongoId AMMOBOX_762X25TT_FMJ43_25RND = new MongoId( + "65702532cfc010a0f5006a19" + ); + public static readonly MongoId AMMOBOX_762X25TT_LRN_25RND = new MongoId( + "65702536c5d7d4cb4d078570" + ); + public static readonly MongoId AMMOBOX_762X25TT_LRNPC_25RND = new MongoId( + "6570253acfc010a0f5006a1c" + ); + public static readonly MongoId AMMOBOX_762X25TT_P_25RND = new MongoId( + "657025421419851aef03e71e" + ); + public static readonly MongoId AMMOBOX_762X25TT_PST_25RND = new MongoId( + "65702546cfc010a0f5006a1f" + ); + public static readonly MongoId AMMOBOX_762X25TT_PT_25RND = new MongoId( + "6570254abfc87b3a34093244" + ); + public static readonly MongoId AMMOBOX_762X35_AP_50RND = new MongoId( + "648985c074a806211e4fb682" + ); + public static readonly MongoId AMMOBOX_762X35_CBJ_50RND = new MongoId( + "657023a9126cc4a57d0e17a6" + ); + public static readonly MongoId AMMOBOX_762X35_FMJ_50RND = new MongoId( + "657023bebfc87b3a34093207" + ); + public static readonly MongoId AMMOBOX_762X35_M62_50RND = new MongoId( + "657023b1cfc010a0f50069e5" + ); + public static readonly MongoId AMMOBOX_762X35_VMAX_50RND = new MongoId( + "657023b71419851aef03e6e8" + ); + public static readonly MongoId AMMOBOX_762X35_WHISPER_50RND = new MongoId( + "657023c61419851aef03e6eb" + ); + public static readonly MongoId AMMOBOX_762X39_BP_20RND = new MongoId( + "64acea16c4eda9354b0226b0" + ); + public static readonly MongoId AMMOBOX_762X39_FMJ_20RND = new MongoId( + "64ace9d9b5bf5e95f50a4c1d" + ); + public static readonly MongoId AMMOBOX_762X39_HP_20RND = new MongoId( + "64acea2c03378853630da53e" + ); + public static readonly MongoId AMMOBOX_762X39_MAI_AP_20RND = new MongoId( + "6489851fc827d4637f01791b" + ); + public static readonly MongoId AMMOBOX_762X39_PP_20RND = new MongoId( + "64ace9f9c4eda9354b0226aa" + ); + public static readonly MongoId AMMOBOX_762X39_PS_20RND = new MongoId( + "5649ed104bdc2d3d1c8b458b" + ); + public static readonly MongoId AMMOBOX_762X39_SP_20RND = new MongoId( + "64ace9ff03378853630da538" + ); + public static readonly MongoId AMMOBOX_762X39_T45M1_20RND = new MongoId( + "64acea09c4eda9354b0226ad" + ); + public static readonly MongoId AMMOBOX_762X39_US_20RND = new MongoId( + "64acea0d03378853630da53b" + ); + public static readonly MongoId AMMOBOX_762X51_BCP_FMJ_20RND = new MongoId( + "65702561cfc010a0f5006a28" + ); + public static readonly MongoId AMMOBOX_762X51_M61_20RND = new MongoId( + "6570254fcfc010a0f5006a22" + ); + public static readonly MongoId AMMOBOX_762X51_M62_20RND = new MongoId( + "65702554bfc87b3a34093247" + ); + public static readonly MongoId AMMOBOX_762X51_M80_20RND = new MongoId( + "65702558cfc010a0f5006a25" + ); + public static readonly MongoId AMMOBOX_762X51_M80A1_20RND = new MongoId( + "6769b8e3c1a1466c850658a8" + ); + public static readonly MongoId AMMOBOX_762X51_M993_20RND = new MongoId( + "648984e3f09d032aa9399d53" + ); + public static readonly MongoId AMMOBOX_762X51_TCW_SP_20RND = new MongoId( + "65702566bfc87b3a3409324d" + ); + public static readonly MongoId AMMOBOX_762X51_ULTRA_NOSLER_20RND = new MongoId( + "6570255dbfc87b3a3409324a" + ); + public static readonly MongoId AMMOBOX_762X54R_BS_20RND = new MongoId( + "648984b8d5b4df6140000a1a" + ); + public static readonly MongoId AMMOBOX_762X54R_BT_20RND = new MongoId( + "65702572c5d7d4cb4d078576" + ); + public static readonly MongoId AMMOBOX_762X54R_FMJ_20RND = new MongoId( + "64aceac0c4eda9354b0226b3" + ); + public static readonly MongoId AMMOBOX_762X54R_HP_BT_20RND = new MongoId( + "64acee6903378853630da544" + ); + public static readonly MongoId AMMOBOX_762X54R_LPS_20RND = new MongoId( + "65702577cfc010a0f5006a2c" + ); + public static readonly MongoId AMMOBOX_762X54R_PS_20RND = new MongoId( + "6570257cc5d7d4cb4d078579" + ); + public static readonly MongoId AMMOBOX_762X54R_SNB_20RND = new MongoId( + "560d75f54bdc2da74d8b4573" + ); + public static readonly MongoId AMMOBOX_762X54R_SP_BT_20RND = new MongoId( + "64aceab0426a303417060654" + ); + public static readonly MongoId AMMOBOX_762X54R_T46M_20RND = new MongoId( + "65702584cfc010a0f5006a2f" + ); + public static readonly MongoId AMMOBOX_86X70_AP_20RND = new MongoId("6489848173c462723909a14b"); + public static readonly MongoId AMMOBOX_86X70_FMJ_20RND = new MongoId( + "657023ccbfc87b3a3409320a" + ); + public static readonly MongoId AMMOBOX_86X70_TACX_20RND = new MongoId( + "657023d6cfc010a0f50069e9" + ); + public static readonly MongoId AMMOBOX_86X70_UCW_20RND = new MongoId( + "657023dabfc87b3a3409320d" + ); + public static readonly MongoId AMMOBOX_9X18PM_BZHT_16RND = new MongoId( + "573722e82459776104581c21" + ); + public static readonly MongoId AMMOBOX_9X18PM_BZHT_50RND = new MongoId( + "65702606cfc010a0f5006a3e" + ); + public static readonly MongoId AMMOBOX_9X18PM_P_16RND = new MongoId("573724b42459776125652ac2"); + public static readonly MongoId AMMOBOX_9X18PM_P_50RND = new MongoId("6570260c1419851aef03e727"); + public static readonly MongoId AMMOBOX_9X18PM_PBM_16RND = new MongoId( + "5737250c2459776125652acc" + ); + public static readonly MongoId AMMOBOX_9X18PM_PBM_50RND = new MongoId( + "65702610cfc010a0f5006a41" + ); + public static readonly MongoId AMMOBOX_9X18PM_PPE_16RND = new MongoId( + "573725b0245977612125bae2" + ); + public static readonly MongoId AMMOBOX_9X18PM_PPE_50RND = new MongoId( + "65702619bfc87b3a34093259" + ); + public static readonly MongoId AMMOBOX_9X18PM_PPT_16RND = new MongoId( + "5737260b24597761224311f2" + ); + public static readonly MongoId AMMOBOX_9X18PM_PPT_50RND = new MongoId( + "65702614c5d7d4cb4d07858b" + ); + public static readonly MongoId AMMOBOX_9X18PM_PRS_16RND = new MongoId( + "5737266524597761006c6a8c" + ); + public static readonly MongoId AMMOBOX_9X18PM_PRS_50RND = new MongoId( + "6570261dc5d7d4cb4d07858e" + ); + public static readonly MongoId AMMOBOX_9X18PM_PS_PPO_16RND = new MongoId( + "573726d824597765d96be361" + ); + public static readonly MongoId AMMOBOX_9X18PM_PS_PPO_50RND = new MongoId( + "65702621cfc010a0f5006a44" + ); + public static readonly MongoId AMMOBOX_9X18PM_PSO_16RND = new MongoId( + "5737273924597765dd374461" + ); + public static readonly MongoId AMMOBOX_9X18PM_PSO_50RND = new MongoId( + "65702629cfc010a0f5006a47" + ); + public static readonly MongoId AMMOBOX_9X18PM_PST_16RND = new MongoId( + "573727c624597765cc785b5b" + ); + public static readonly MongoId AMMOBOX_9X18PM_PST_50RND = new MongoId( + "6570262d1419851aef03e72d" + ); + public static readonly MongoId AMMOBOX_9X18PM_PSTM_16RND = new MongoId( + "5737256c2459776125652acd" + ); + public static readonly MongoId AMMOBOX_9X18PM_PSTM_50RND = new MongoId( + "65702640cfc010a0f5006a4d" + ); + public static readonly MongoId AMMOBOX_9X18PM_PSV_16RND = new MongoId( + "5737280e24597765cc785b5c" + ); + public static readonly MongoId AMMOBOX_9X18PM_PSV_50RND = new MongoId( + "657026251419851aef03e72a" + ); + public static readonly MongoId AMMOBOX_9X18PM_RG028_16RND = new MongoId( + "5737287724597765e1625ae2" + ); + public static readonly MongoId AMMOBOX_9X18PM_RG028_50RND = new MongoId( + "65702630cfc010a0f5006a4a" + ); + public static readonly MongoId AMMOBOX_9X18PM_SP7_16RND = new MongoId( + "573728cc24597765cc785b5d" + ); + public static readonly MongoId AMMOBOX_9X18PM_SP7_50RND = new MongoId( + "657026341419851aef03e730" + ); + public static readonly MongoId AMMOBOX_9X18PM_SP8_16RND = new MongoId( + "573728f324597765e5728561" + ); + public static readonly MongoId AMMOBOX_9X18PM_SP8_50RND = new MongoId( + "65702639bfc87b3a3409325c" + ); + public static readonly MongoId AMMOBOX_9X19_AP_63_50RND = new MongoId( + "65702591c5d7d4cb4d07857c" + ); + public static readonly MongoId AMMOBOX_9X19_GT_50RND = new MongoId("657025961419851aef03e721"); + public static readonly MongoId AMMOBOX_9X19_LUGER_CCI_50RND = new MongoId( + "6570259bc5d7d4cb4d07857f" + ); + public static readonly MongoId AMMOBOX_9X19_M882_50RND = new MongoId( + "64aceafcb5bf5e95f50a4c20" + ); + public static readonly MongoId AMMOBOX_9X19_PBP_50RND = new MongoId("648987d673c462723909a151"); + public static readonly MongoId AMMOBOX_9X19_PSO_50RND = new MongoId("657025a4bfc87b3a34093250"); + public static readonly MongoId AMMOBOX_9X19_PST_16RND = new MongoId("5739d41224597779c3645501"); + public static readonly MongoId AMMOBOX_9X19_PST_50RND = new MongoId("657025a81419851aef03e724"); + public static readonly MongoId AMMOBOX_9X19_QUAKEMAKER_50RND = new MongoId( + "6570259fcfc010a0f5006a32" + ); + public static readonly MongoId AMMOBOX_9X19_RIP_20RND = new MongoId("5c1127bdd174af44217ab8b9"); + public static readonly MongoId AMMOBOX_9X21_7N42_30RND = new MongoId( + "6579847c5a0e5879d12f2873" + ); + public static readonly MongoId AMMOBOX_9X21_7U4_30RND = new MongoId("6579846c1ec1943afb14c15a"); + public static readonly MongoId AMMOBOX_9X21_BT_30RND = new MongoId("6489875745f9ca4ba51c4808"); + public static readonly MongoId AMMOBOX_9X21_P_30RND = new MongoId("657025bbcfc010a0f5006a35"); + public static readonly MongoId AMMOBOX_9X21_PE_30RND = new MongoId("657025c9cfc010a0f5006a38"); + public static readonly MongoId AMMOBOX_9X21_PS_30RND = new MongoId("657025c4c5d7d4cb4d078582"); + public static readonly MongoId AMMOBOX_9X33R_FMJ_25RND = new MongoId( + "657023decfc010a0f50069ec" + ); + public static readonly MongoId AMMOBOX_9X33R_HP_25RND = new MongoId("657023e31419851aef03e6ee"); + public static readonly MongoId AMMOBOX_9X33R_JHP_25RND = new MongoId( + "657023e7c5d7d4cb4d078552" + ); + public static readonly MongoId AMMOBOX_9X33R_SP_25RND = new MongoId("657023eccfc010a0f50069ef"); + public static readonly MongoId AMMOBOX_9X39_BP_20RND = new MongoId("6489854673c462723909a14e"); + public static readonly MongoId AMMOBOX_9X39_BP_8RND = new MongoId("5c1260dc86f7746b106e8748"); + public static readonly MongoId AMMOBOX_9X39_FMJ_20RND = new MongoId("657984a50fbff513dd435765"); + public static readonly MongoId AMMOBOX_9X39_PAB9_20RND = new MongoId( + "657025cfbfc87b3a34093253" + ); + public static readonly MongoId AMMOBOX_9X39_SP5_20RND = new MongoId("657025d4c5d7d4cb4d078585"); + public static readonly MongoId AMMOBOX_9X39_SP6_20RND = new MongoId("657025dabfc87b3a34093256"); + public static readonly MongoId AMMOBOX_9X39_SPP_20RND = new MongoId("657025dfcfc010a0f5006a3b"); + public static readonly MongoId AMMOBOX_9X39_SPP_8RND = new MongoId("5c12619186f7743f871c8a32"); + public static readonly MongoId ARMBAND_ALPHA = new MongoId("619bc61e86e01e16f839a999"); + public static readonly MongoId ARMBAND_ARENA = new MongoId("664a5480bfcc521bad3192ca"); + public static readonly MongoId ARMBAND_BEAR = new MongoId("619bdd8886e01e16f839a99c"); + public static readonly MongoId ARMBAND_BLUE = new MongoId("5b3f3af486f774679e752c1f"); + public static readonly MongoId ARMBAND_DEADSKUL = new MongoId("619bddc6c9546643a67df6ee"); + public static readonly MongoId ARMBAND_EVASION = new MongoId("60b0f988c4449e4cb624c1da"); + public static readonly MongoId ARMBAND_GREEN = new MongoId("5b3f3b0186f774021a2afef7"); + public static readonly MongoId ARMBAND_KHOROVOD = new MongoId("67614b3ab8c060ebb204b106"); + public static readonly MongoId ARMBAND_KIBA_ARMS = new MongoId("619bde3dc9546643a67df6f2"); + public static readonly MongoId ARMBAND_LABS = new MongoId("619bde7fc9546643a67df6f4"); + public static readonly MongoId ARMBAND_OF_THE_UNHEARD = new MongoId("660312cc4d6cdfa6f500c703"); + public static readonly MongoId ARMBAND_PRESTIGE_1 = new MongoId("67614b542eb91250020f2b86"); + public static readonly MongoId ARMBAND_PRESTIGE_2 = new MongoId("67614b6b47c71ea3d40256d7"); + public static readonly MongoId ARMBAND_RED = new MongoId("5b3f3ade86f7746b6b790d8e"); + public static readonly MongoId ARMBAND_RFARMY = new MongoId("619bdeb986e01e16f839a99e"); + public static readonly MongoId ARMBAND_RIVALS_2020 = new MongoId("5f9949d869e2777a0e779ba5"); + public static readonly MongoId ARMBAND_TERRAGROUP = new MongoId("619bdef8c9546643a67df6f6"); + public static readonly MongoId ARMBAND_TRAIN_HARD = new MongoId("619bddffc9546643a67df6f0"); + public static readonly MongoId ARMBAND_UNTAR = new MongoId("619bdf9cc9546643a67df6f8"); + public static readonly MongoId ARMBAND_USEC = new MongoId("619bdfd4c9546643a67df6fa"); + public static readonly MongoId ARMBAND_WHITE = new MongoId("5b3f16c486f7747c327f55f7"); + public static readonly MongoId ARMBAND_YELLOW = new MongoId("5b3f3b0e86f7746752107cda"); + public static readonly MongoId ARMOR_511_TACTICAL_HEXGRID_PLATE_CARRIER = new MongoId( + "5fd4c474dd870108a754b241" + ); + public static readonly MongoId ARMOR_6B13_ASSAULT_ARMOR_EMR = new MongoId( + "5c0e53c886f7747fa54205c7" + ); + public static readonly MongoId ARMOR_6B13_ASSAULT_ARMOR_FLORA = new MongoId( + "5c0e51be86f774598e797894" + ); + public static readonly MongoId ARMOR_6B13_M_ASSAULT_ARMOR_CHRISTMAS_EDITION = new MongoId( + "674d91ce6e862d5a95059ed6" + ); + public static readonly MongoId ARMOR_6B13_M_ASSAULT_ARMOR_KILLA_EDITION = new MongoId( + "5c0e541586f7747fa54205c9" + ); + public static readonly MongoId ARMOR_6B2_BODY_ARMOR_FLORA = new MongoId( + "5df8a2ca86f7740bfe6df777" + ); + public static readonly MongoId ARMOR_6B231_BODY_ARMOR_EMR = new MongoId( + "5c0e5bab86f77461f55ed1f3" + ); + public static readonly MongoId ARMOR_6B232_BODY_ARMOR_MOUNTAIN_FLORA = new MongoId( + "5c0e57ba86f7747fa141986d" + ); + public static readonly MongoId ARMOR_6B43_ZABRALOSH_BODY_ARMOR_EMR = new MongoId( + "545cdb794bdc2d3a198b456a" + ); + public static readonly MongoId ARMOR_BNTI_GZHELK_BODY = new MongoId("5ab8e79e86f7742d8b372e78"); + public static readonly MongoId ARMOR_BNTI_KIRASAN_BODY = new MongoId( + "5b44d22286f774172b0c9de8" + ); + public static readonly MongoId ARMOR_BNTI_KIRASAN_BODY_ARMOR_GREEN = new MongoId( + "67ab2f28dafe3b22670c9116" + ); + public static readonly MongoId ARMOR_BNTI_MODULE3M_BODY = new MongoId( + "59e7635f86f7742cbf2c1095" + ); + public static readonly MongoId ARMOR_BNTI_ZHUK_BODY_ARMOR_EMR = new MongoId( + "5c0e625a86f7742d77340f62" + ); + public static readonly MongoId ARMOR_BNTI_ZHUK_BODY_ARMOR_PRESS = new MongoId( + "5c0e5edb86f77461f55ed1f7" + ); + public static readonly MongoId ARMOR_DRD_BODY = new MongoId("62a09d79de7ac81993580530"); + public static readonly MongoId ARMOR_FORT_DEFENDER2_BODY = new MongoId( + "5e9dacf986f774054d6b89f4" + ); + public static readonly MongoId ARMOR_FORT_REDUTM_BODY = new MongoId("5ca2151486f774244a3b8d30"); + public static readonly MongoId ARMOR_FORT_REDUTM_BODY_ARMOR_SK_WOODLAND = new MongoId( + "67ab2f5adafe3b22670c911f" + ); + public static readonly MongoId ARMOR_FORT_REDUTT5_BODY_ARMOR_SMOG = new MongoId( + "5ca21c6986f77479963115a7" + ); + public static readonly MongoId ARMOR_HEXATAC_HPC_PLATE_CARRIER_MULTICAM = new MongoId( + "67ab2eecfe82855dcc0f2af6" + ); + public static readonly MongoId ARMOR_HEXATAC_HPC_PLATE_CARRIER_MULTICAM_BLACK = new MongoId( + "63737f448b28897f2802b874" + ); + public static readonly MongoId ARMOR_HIGHCOM_TROOPER_TFO_BODY_ARMOR_COYOTE = new MongoId( + "67ab2f94dafe3b22670c912c" + ); + public static readonly MongoId ARMOR_HIGHCOM_TROOPER_TFO_BODY_ARMOR_MULTICAM = new MongoId( + "5c0e655586f774045612eeb2" + ); + public static readonly MongoId ARMOR_INTERCEPTOR_OTV_BODY_ARMOR_UCP = new MongoId( + "64abd93857958b4249003418" + ); + public static readonly MongoId ARMOR_IOTV_GEN4_BODY_ARMOR_ASSAULT_KIT_MULTICAM = new MongoId( + "5b44cf1486f77431723e3d05" + ); + public static readonly MongoId ARMOR_IOTV_GEN4_BODY_ARMOR_FULL_PROTECTION_KIT_MULTICAM = + new MongoId("5b44cd8b86f774503d30cba2"); + public static readonly MongoId ARMOR_IOTV_GEN4_BODY_ARMOR_HIGH_MOBILITY_KIT_MULTICAM = + new MongoId("5b44d0de86f774503d30cba8"); + public static readonly MongoId ARMOR_LBT6094A_SLICK_PLATE_CARRIER_BLACK = new MongoId( + "5e4abb5086f77406975c9342" + ); + public static readonly MongoId ARMOR_LBT6094A_SLICK_PLATE_CARRIER_COYOTE_TAN = new MongoId( + "6038b4b292ec1c3103795a0b" + ); + public static readonly MongoId ARMOR_LBT6094A_SLICK_PLATE_CARRIER_OLIVE_DRAB = new MongoId( + "6038b4ca92ec1c3103795a0d" + ); + public static readonly MongoId ARMOR_MFUNTAR_BODY = new MongoId("5ab8e4ed86f7742d8e50c7fa"); + public static readonly MongoId ARMOR_NFM_THOR_CONCEALABLE_REINFORCED_VEST_BODY = new MongoId( + "609e8540d5c319764c2bc2e9" + ); + public static readonly MongoId ARMOR_NFM_THOR_INTEGRATED_CARRIER_BODY = new MongoId( + "60a283193cb70855c43a381d" + ); + public static readonly MongoId ARMOR_NPP_KLASS_KORAKULON_BODY_ARMOR_BLACK = new MongoId( + "64be79c487d1510151095552" + ); + public static readonly MongoId ARMOR_NPP_KLASS_KORAKULON_BODY_ARMOR_EMR = new MongoId( + "64be79e2bf8412471d0d9bcc" + ); + public static readonly MongoId ARMOR_NPP_KLASS_KORUNDVM_BODY_ARMOR_BLACK = new MongoId( + "5f5f41476bdad616ad46d631" + ); + public static readonly MongoId ARMOR_PACA_SOFT = new MongoId("5648a7494bdc2d9d488b4583"); + public static readonly MongoId ARMOR_PACA_SOFT_ARMOR_RIVALS_EDITION = new MongoId( + "607f20859ee58b18e41ecd90" + ); + public static readonly MongoId ARMOREDEQUIPMENT_ALTYN_HELMET_FACE_SHIELD = new MongoId( + "5aa7e373e5b5b000137b76f0" + ); + public static readonly MongoId ARMOREDEQUIPMENT_CRYE_PRECISION_AIRFRAME_CHOPS = new MongoId( + "5c178a942e22164bef5ceca3" + ); + public static readonly MongoId ARMOREDEQUIPMENT_CRYE_PRECISION_AIRFRAME_EARS = new MongoId( + "5c1793902e221602b21d3de2" + ); + public static readonly MongoId ARMOREDEQUIPMENT_DIAMOND_AGE_BASTION_HELMET_ARMOR_PLATE = + new MongoId("5ea18c84ecf1982c7712d9a2"); + public static readonly MongoId ARMOREDEQUIPMENT_DIAMOND_AGE_NEOSTEEL_HELMET_BALLISTIC_MANDIBLE = + new MongoId("6570a88c8f221f3b210353b7"); + public static readonly MongoId ARMOREDEQUIPMENT_GALVION_CAIMAN_FIXED_ARM_VISOR = new MongoId( + "5f60bf4558eff926626a60f2" + ); + public static readonly MongoId ARMOREDEQUIPMENT_GALVION_CAIMAN_HYBRID_BALLISTIC_APPLIQUE = + new MongoId("5f60b85bbdb8e27dee3dc985"); + public static readonly MongoId ARMOREDEQUIPMENT_GALVION_CAIMAN_HYBRID_BALLISTIC_MANDIBLE_GUARD = + new MongoId("5f60c076f2bcbb675b00dac2"); + public static readonly MongoId ARMOREDEQUIPMENT_KIVERM_FACE_SHIELD = new MongoId( + "5b46238386f7741a693bcf9c" + ); + public static readonly MongoId ARMOREDEQUIPMENT_KOLPAK1S_FACE_SHIELD = new MongoId( + "5ac4c50d5acfc40019262e87" + ); + public static readonly MongoId ARMOREDEQUIPMENT_LSHZ2DTM_AVENTAIL = new MongoId( + "5d6d3be5a4b9361bc73bc763" + ); + public static readonly MongoId ARMOREDEQUIPMENT_LSHZ2DTM_COVER_BLACK = new MongoId( + "5d6d3943a4b9360dbc46d0cc" + ); + public static readonly MongoId ARMOREDEQUIPMENT_LSHZ2DTM_FACE_SHIELD = new MongoId( + "5d6d3829a4b9361bc8618943" + ); + public static readonly MongoId ARMOREDEQUIPMENT_MASKA1SCH_FACE_SHIELD_KILLA_EDITION = + new MongoId("5c0e842486f77443a74d2976"); + public static readonly MongoId ARMOREDEQUIPMENT_MASKA1SCH_FACE_SHIELD_OLIVE_DRAB = new MongoId( + "5c0919b50db834001b7ce3b9" + ); + public static readonly MongoId ARMOREDEQUIPMENT_NPP_KLASS_TOR2_HELMET_FACE_SHIELD = new MongoId( + "65719f9ef392ad76c50a2ec8" + ); + public static readonly MongoId ARMOREDEQUIPMENT_OPSCORE_FAST_GUNSIGHT_MANDIBLE = new MongoId( + "5a16ba61fcdbcb098008728a" + ); + public static readonly MongoId ARMOREDEQUIPMENT_OPSCORE_FAST_MULTIHIT_BALLISTIC_FACE_SHIELD = + new MongoId("5a16b7e1fcdbcb00165aa6c9"); + public static readonly MongoId ARMOREDEQUIPMENT_OPSCORE_FAST_SIDE_ARMOR = new MongoId( + "5a16badafcdbcb001865f72d" + ); + public static readonly MongoId ARMOREDEQUIPMENT_OPSCORE_FAST_VISOR = new MongoId( + "5a16b672fcdbcb001912fa83" + ); + public static readonly MongoId ARMOREDEQUIPMENT_OPSCORE_SLAAP_ARMOR_HELMET_PLATE_TAN = + new MongoId("5c0e66e2d174af02a96252f4"); + public static readonly MongoId ARMOREDEQUIPMENT_RYST_FACE_SHIELD = new MongoId( + "5f60c85b58eff926626a60f7" + ); + public static readonly MongoId ARMOREDEQUIPMENT_TACKEK_HEAVY_TROOPER_MASK_FOR_OPSCORETYPE_HELMETS = + new MongoId("5ea058e01dbce517f324b3e2"); + public static readonly MongoId ARMOREDEQUIPMENT_TEAM_WENDY_EXFIL_BALLISTIC_FACE_SHIELD_BLACK = + new MongoId("5e00cdd986f7747473332240"); + public static readonly MongoId ARMOREDEQUIPMENT_TEAM_WENDY_EXFIL_BALLISTIC_FACE_SHIELD_COYOTE_BROWN = + new MongoId("5e01f37686f774773c6f6c15"); + public static readonly MongoId ARMOREDEQUIPMENT_TEAM_WENDY_EXFIL_EAR_COVERS_BLACK = new MongoId( + "5e00cfa786f77469dc6e5685" + ); + public static readonly MongoId ARMOREDEQUIPMENT_TEAM_WENDY_EXFIL_EAR_COVERS_COYOTE_BROWN = + new MongoId("5e01f31d86f77465cf261343"); + public static readonly MongoId ARMOREDEQUIPMENT_VULKAN5_HELMET_FACE_SHIELD = new MongoId( + "5ca2113f86f7740b2547e1d2" + ); + public static readonly MongoId ARMOREDEQUIPMENT_ZSH12M_FACE_SHIELD = new MongoId( + "5aa7e3abe5b5b000171d064d" + ); + public static readonly MongoId ARMORPLATE_6B12_BALLISTIC_PLATES_FRONT = new MongoId( + "654a4dea7c17dec2f50cc86a" + ); + public static readonly MongoId ARMORPLATE_6B13_CUSTOM_BALLISTIC_PLATES_BACK = new MongoId( + "656efd66034e8e01c407f35c" + ); + public static readonly MongoId ARMORPLATE_6B232_BALLISTIC_PLATE_BACK = new MongoId( + "657b22485f444d6dff0c6c2f" + ); + public static readonly MongoId ARMORPLATE_6B33_BALLISTIC_PLATE_FRONT = new MongoId( + "656f603f94b480b8a500c0d6" + ); + public static readonly MongoId ARMORPLATE_AR500_LEGACY_PLATE_BALLISTIC_PLATE = new MongoId( + "656f9d5900d62bcd2e02407c" + ); + public static readonly MongoId ARMORPLATE_ARAMID_INSERT = new MongoId( + "64b111fe1be308f1800688c1" + ); + public static readonly MongoId ARMORPLATE_CULT_LOCUST_BALLISTIC_PLATE = new MongoId( + "656fa8d700d62bcd2e024084" + ); + public static readonly MongoId ARMORPLATE_CULT_TERMITE_BALLISTIC_PLATE = new MongoId( + "656fa99800d62bcd2e024088" + ); + public static readonly MongoId ARMORPLATE_ESAPI_LEVEL_IV_BALLISTIC_PLATE = new MongoId( + "64afdcb83efdfea28601d041" + ); + public static readonly MongoId ARMORPLATE_ESBI_LEVEL_IV_BALLISTIC_PLATE_SIDE = new MongoId( + "64afdb577bb3bfe8fe03fd1d" + ); + public static readonly MongoId ARMORPLATE_GAC_3S15M_BALLISTIC_PLATE = new MongoId( + "656fae5f7c2d57afe200c0d7" + ); + public static readonly MongoId ARMORPLATE_GAC_4SSS2_BALLISTIC_PLATE = new MongoId( + "656faf0ca0dce000a2020f77" + ); + public static readonly MongoId ARMORPLATE_GLOBAL_ARMORS_STEEL_BALLISTIC_PLATE = new MongoId( + "656fa0fb498d1b7e3e071d9c" + ); + public static readonly MongoId ARMORPLATE_GRANIT_4_BALLISTIC_PLATE_FRONT = new MongoId( + "656f611f94b480b8a500c0db" + ); + public static readonly MongoId ARMORPLATE_GRANIT_4_BALLISTIC_PLATES_BACK = new MongoId( + "656efaf54772930db4031ff5" + ); + public static readonly MongoId ARMORPLATE_GRANIT_4RS_BALLISTIC_PLATE_FRONT = new MongoId( + "656f63c027aed95beb08f62c" + ); + public static readonly MongoId ARMORPLATE_GRANIT_4RS_BALLISTIC_PLATES_BACK = new MongoId( + "654a4a964b446df1ad03f192" + ); + public static readonly MongoId ARMORPLATE_GRANIT_BALLISTIC_PLATE_SIDE = new MongoId( + "64afd81707e2cf40e903a316" + ); + public static readonly MongoId ARMORPLATE_GRANIT_BR4_BALLISTIC_PLATE = new MongoId( + "65573fa5655447403702a816" + ); + public static readonly MongoId ARMORPLATE_GRANIT_BR5_BALLISTIC_PLATE = new MongoId( + "64afc71497cf3a403c01ff38" + ); + public static readonly MongoId ARMORPLATE_HELMET_ALL_EXEPTNECK = new MongoId( + "64b11c08506a73f6a10f9364" + ); + public static readonly MongoId ARMORPLATE_KIBA_ARMS_STEEL_BALLISTIC_PLATE = new MongoId( + "656fa76500d62bcd2e024080" + ); + public static readonly MongoId ARMORPLATE_KIBA_ARMS_TITAN_BALLISTIC_PLATE = new MongoId( + "656fa25e94b480b8a500c0e0" + ); + public static readonly MongoId ARMORPLATE_KITECO_SCIV_SA_BALLISTIC_PLATE = new MongoId( + "656fafe3498d1b7e3e071da4" + ); + public static readonly MongoId ARMORPLATE_KORUNDVM_BALLISTIC_PLATE_BACK = new MongoId( + "657b2797c3dbcb01d60c35ea" + ); + public static readonly MongoId ARMORPLATE_KORUNDVM_BALLISTIC_PLATE_SIDE = new MongoId( + "654a4f8bc721968a4404ef18" + ); + public static readonly MongoId ARMORPLATE_KORUNDVM_BALLISTIC_PLATES_FRONT = new MongoId( + "656f664200d62bcd2e024077" + ); + public static readonly MongoId ARMORPLATE_KORUNDVMK_BALLISTIC_PLATE_BACK = new MongoId( + "657b28d25f444d6dff0c6c77" + ); + public static readonly MongoId ARMORPLATE_KORUNDVMK_BALLISTIC_PLATES_FRONT = new MongoId( + "656f66b5c6baea13cd07e108" + ); + public static readonly MongoId ARMORPLATE_MONOCLETE_LEVEL_III_PE_BALLISTIC_PLATE = new MongoId( + "656fad8c498d1b7e3e071da0" + ); + public static readonly MongoId ARMORPLATE_NESCO_4400SAMC_BALLISTIC_PLATE = new MongoId( + "656fa61e94b480b8a500c0e8" + ); + public static readonly MongoId ARMORPLATE_NEWSPHERETECH_LEVEL_III_BALLISTIC_PLATE = new MongoId( + "656fb21fa0dce000a2020f7c" + ); + public static readonly MongoId ARMORPLATE_PRTCTR_LIGHTWEIGHT_BALLISTIC_PLATE = new MongoId( + "656fac30c6baea13cd07e10c" + ); + public static readonly MongoId ARMORPLATE_SAPI_LEVEL_III_BALLISTIC_PLATE = new MongoId( + "655746010177119f4a097ff7" + ); + public static readonly MongoId ARMORPLATE_SPRTN_ELAPHROS_BALLISTIC_PLATE = new MongoId( + "656fb0bd7c2d57afe200c0dc" + ); + public static readonly MongoId ARMORPLATE_SPRTN_OMEGA_BALLISTIC_PLATE = new MongoId( + "656f9fa0498d1b7e3e071d98" + ); + public static readonly MongoId ARMORPLATE_SSAPI_LEVEL_III_BALLISTIC_PLATE_SIDE = new MongoId( + "6557458f83942d705f0c4962" + ); + public static readonly MongoId ARMORPLATE_TALLCOM_GUARDIAN_BALLISTIC_PLATE = new MongoId( + "656fa53d94b480b8a500c0e4" + ); + public static readonly MongoId ARMORPLATE_ZHUK3_BALLISTIC_PLATE_FRONT = new MongoId( + "656f57dc27aed95beb08f628" + ); + public static readonly MongoId ASSAULTCARBINE_AS_VAL_9X39_SPECIAL_ASSAULT_RIFLE = new MongoId( + "57c44b372459772d2b39b8ce" + ); + public static readonly MongoId ASSAULTCARBINE_KBP_9A91_9X39_COMPACT_ASSAULT_RIFLE = new MongoId( + "644674a13d52156624001fbc" + ); + public static readonly MongoId ASSAULTCARBINE_KBP_VSK94_9X39_RIFLE = new MongoId( + "645e0c6b3b381ede770e1cc9" + ); + public static readonly MongoId ASSAULTCARBINE_MOLOT_ARMS_SIMONOV_OPSKS_762X39_CARBINE = + new MongoId("587e02ff24597743df3deaeb"); + public static readonly MongoId ASSAULTCARBINE_MOLOT_ARMS_VPO101_VEPRHUNTER_762X51_CARBINE = + new MongoId("5c501a4d2e221602b412b540"); + public static readonly MongoId ASSAULTCARBINE_SR3M_9X39_COMPACT_ASSAULT_RIFLE = new MongoId( + "651450ce0e00edc794068371" + ); + public static readonly MongoId ASSAULTCARBINE_TOKAREV_AVT40_762X54R_AUTOMATIC_RIFLE = + new MongoId("6410733d5dd49d77bd07847e"); + public static readonly MongoId ASSAULTCARBINE_TOKAREV_SVT40_762X54R_RIFLE = new MongoId( + "643ea5b23db6f9f57107d9fd" + ); + public static readonly MongoId ASSAULTCARBINE_TOZ_SIMONOV_SKS_762X39_CARBINE = new MongoId( + "574d967124597745970e7c94" + ); + public static readonly MongoId ASSAULTRIFLE_ADAR_215_556X45_CARBINE = new MongoId( + "5c07c60e0db834002330051f" + ); + public static readonly MongoId ASSAULTRIFLE_AKLYS_DEFENSE_VELOCIRAPTOR_300_BLACKOUT_ASSAULT_RIFLE = + new MongoId("674d6121c09f69dfb201a888"); + public static readonly MongoId ASSAULTRIFLE_ASH12_127X55_ASSAULT_RIFLE = new MongoId( + "5cadfbf7ae92152ac412eeef" + ); + public static readonly MongoId ASSAULTRIFLE_CMMG_MK47_MUTANT_762X39_ASSAULT_RIFLE = new MongoId( + "606587252535c57a13424cfd" + ); + public static readonly MongoId ASSAULTRIFLE_COLT_M4A1_556X45_ASSAULT_RIFLE = new MongoId( + "5447a9cd4bdc2dbd208b4567" + ); + public static readonly MongoId ASSAULTRIFLE_DESERT_TECH_MDR_556X45_ASSAULT_RIFLE = new MongoId( + "5c488a752e221602b412af63" + ); + public static readonly MongoId ASSAULTRIFLE_DESERT_TECH_MDR_762X51_ASSAULT_RIFLE = new MongoId( + "5dcbd56fdbd3d91b3e5468d5" + ); + public static readonly MongoId ASSAULTRIFLE_DS_ARMS_SA58_762X51_ASSAULT_RIFLE = new MongoId( + "5b0bbe4e5acfc40dc528a72d" + ); + public static readonly MongoId ASSAULTRIFLE_FN_SCARH_762X51_ASSAULT_RIFLE = new MongoId( + "6183afd850224f204c1da514" + ); + public static readonly MongoId ASSAULTRIFLE_FN_SCARH_762X51_ASSAULT_RIFLE_FDE = new MongoId( + "6165ac306ef05c2ce828ef74" + ); + public static readonly MongoId ASSAULTRIFLE_FN_SCARH_X17_762X51_ASSAULT_RIFLE = new MongoId( + "676176d362e0497044079f4c" + ); + public static readonly MongoId ASSAULTRIFLE_FN_SCARL_556X45_ASSAULT_RIFLE = new MongoId( + "6184055050224f204c1da540" + ); + public static readonly MongoId ASSAULTRIFLE_FN_SCARL_556X45_ASSAULT_RIFLE_FDE = new MongoId( + "618428466ef05c2ce828f218" + ); + public static readonly MongoId ASSAULTRIFLE_HK_416A5_556X45_ASSAULT_RIFLE = new MongoId( + "5bb2475ed4351e00853264e3" + ); + public static readonly MongoId ASSAULTRIFLE_HK_G36_556X45_ASSAULT_RIFLE = new MongoId( + "623063e994fc3f7b302a9696" + ); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AK101_556X45_ASSAULT_RIFLE = + new MongoId("5ac66cb05acfc40198510a10"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AK102_556X45_ASSAULT_RIFLE = + new MongoId("5ac66d015acfc400180ae6e4"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AK103_762X39_ASSAULT_RIFLE = + new MongoId("5ac66d2e5acfc43b321d4b53"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AK104_762X39_ASSAULT_RIFLE = + new MongoId("5ac66d725acfc43b321d4b60"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AK105_545X39_ASSAULT_RIFLE = + new MongoId("5ac66d9b5acfc4001633997a"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AK12_545X39_ASSAULT_RIFLE = new MongoId( + "6499849fc93611967b034949" + ); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AK74_545X39_ASSAULT_RIFLE = new MongoId( + "5bf3e03b0db834001d2c4a9c" + ); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AK74M_545X39_ASSAULT_RIFLE = + new MongoId("5ac4cd105acfc40016339859"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AK74N_545X39_ASSAULT_RIFLE = + new MongoId("5644bd2b4bdc2d3b4c8b4572"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AKM_762X39_ASSAULT_RIFLE = new MongoId( + "59d6088586f774275f37482f" + ); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AKMN_762X39_ASSAULT_RIFLE = new MongoId( + "5a0ec13bfcdbcb00165aa685" + ); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AKMS_762X39_ASSAULT_RIFLE = new MongoId( + "59ff346386f77477562ff5e2" + ); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AKMSN_762X39_ASSAULT_RIFLE = + new MongoId("5abcbc27d8ce8700182eceeb"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AKS74_545X39_ASSAULT_RIFLE = + new MongoId("5bf3e0490db83400196199af"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AKS74N_545X39_ASSAULT_RIFLE = + new MongoId("5ab8e9fcd8ce870019439434"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AKS74U_545X39_ASSAULT_RIFLE = + new MongoId("57dc2fa62459775949412633"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AKS74UB_545X39_ASSAULT_RIFLE = + new MongoId("5839a40f24597726f856b511"); + public static readonly MongoId ASSAULTRIFLE_KALASHNIKOV_AKS74UN_545X39_ASSAULT_RIFLE = + new MongoId("583990e32459771419544dd2"); + public static readonly MongoId ASSAULTRIFLE_LONE_STAR_TX15_DML_556X45_CARBINE = new MongoId( + "5d43021ca4b9362eab4b5e25" + ); + public static readonly MongoId ASSAULTRIFLE_MASTER_HAND = new MongoId( + "5ae083b25acfc4001a5fc702" + ); + public static readonly MongoId ASSAULTRIFLE_MOLOT_ARMS_VPO136_VEPRKM_762X39_CARBINE = + new MongoId("59e6152586f77473dc057aa1"); + public static readonly MongoId ASSAULTRIFLE_MOLOT_ARMS_VPO209_366_TKM_CARBINE = new MongoId( + "59e6687d86f77411d949b251" + ); + public static readonly MongoId ASSAULTRIFLE_RIFLE_DYNAMICS_RD704_762X39_ASSAULT_RIFLE = + new MongoId("628a60ae6b1d481ff772e9c8"); + public static readonly MongoId ASSAULTRIFLE_SAG_AK545_545X39_CARBINE = new MongoId( + "628b5638ad252a16da6dd245" + ); + public static readonly MongoId ASSAULTRIFLE_SAG_AK545_SHORT_545X39_CARBINE = new MongoId( + "628b9c37a733087d0d7fe84b" + ); + public static readonly MongoId ASSAULTRIFLE_SIG_MCX_300_BLACKOUT_ASSAULT_RIFLE = new MongoId( + "5fbcc1d9016cce60e8341ab3" + ); + public static readonly MongoId ASSAULTRIFLE_SIG_MCXSPEAR_68X51_ASSAULT_RIFLE = new MongoId( + "65290f395ae2ae97b80fdf2d" + ); + public static readonly MongoId ASSAULTRIFLE_STEYR_AUG_A1_556X45_ASSAULT_RIFLE = new MongoId( + "62e7c4fba689e8c9c50dfc38" + ); + public static readonly MongoId ASSAULTRIFLE_STEYR_AUG_A3_556X45_ASSAULT_RIFLE = new MongoId( + "63171672192e68c5460cebc5" + ); + public static readonly MongoId ASSAULTRIFLE_STEYR_AUG_A3_556X45_ASSAULT_RIFLE_BLACK = + new MongoId("6718817435e3cfd9550d2c27"); + public static readonly MongoId ASSAULTSCOPE_ELCAN_SPECTER_OS4X_ASSAULT_SCOPE = new MongoId( + "544a3f024bdc2d1d388b4568" + ); + public static readonly MongoId ASSAULTSCOPE_ELCAN_SPECTERDR_1X4X_SCOPE = new MongoId( + "57ac965c24597706be5f975c" + ); + public static readonly MongoId ASSAULTSCOPE_ELCAN_SPECTERDR_1X4X_SCOPE_FDE = new MongoId( + "57aca93d2459771f2c7e26db" + ); + public static readonly MongoId ASSAULTSCOPE_HK_G36_HENSOLDT_HKV_3X_CARRY_HANDLE = new MongoId( + "622b4d7df9cfc87d675d2ded" + ); + public static readonly MongoId ASSAULTSCOPE_HK_G36_HENSOLDT_HKV_ZF_15X_CARRY_HANDLE = + new MongoId("622b4f54dc8dcc0ba8742f85"); + public static readonly MongoId ASSAULTSCOPE_KIBA_ARMS_SHORT_PRISM_25X_SCOPE = new MongoId( + "5c1cdd512e22161b267d91ae" + ); + public static readonly MongoId ASSAULTSCOPE_LEUPOLD_MARK_4_HAMR_4X24_DELTAPOINT_HYBRID_ASSAULT_SCOPE = + new MongoId("544a3a774bdc2d3a388b4567"); + public static readonly MongoId ASSAULTSCOPE_MONSTRUM_TACTICAL_COMPACT_PRISM_SCOPE_2X32 = + new MongoId("5d2dc3e548f035404a1a4798"); + public static readonly MongoId ASSAULTSCOPE_SIG_SAUER_BRAVO4_4X30_SCOPE = new MongoId( + "57adff4f24597737f373b6e6" + ); + public static readonly MongoId ASSAULTSCOPE_STEYR_AUG_A1_STG77_15X_OPTIC_SIGHT = new MongoId( + "62ea7c793043d74a0306e19f" + ); + public static readonly MongoId ASSAULTSCOPE_STEYR_AUG_A3_M1_15X_OPTIC_SIGHT = new MongoId( + "62ebd290c427473eff0baafb" + ); + public static readonly MongoId ASSAULTSCOPE_SWAMPFOX_TRIHAWK_PRISM_SCOPE_3X30 = new MongoId( + "626bb8532c923541184624b4" + ); + public static readonly MongoId ASSAULTSCOPE_TRIJICON_ACOG_TA01NSN_4X32_SCOPE_BLACK = + new MongoId("5c05293e0db83400232fff80"); + public static readonly MongoId ASSAULTSCOPE_TRIJICON_ACOG_TA01NSN_4X32_SCOPE_TAN = new MongoId( + "5c052a900db834001a66acbd" + ); + public static readonly MongoId ASSAULTSCOPE_TRIJICON_ACOG_TA11D_35X35_SCOPE = new MongoId( + "59db7e1086f77448be30ddf3" + ); + public static readonly MongoId ASSAULTSCOPE_VALDAY_PS320_16X_SCOPE = new MongoId( + "5c0517910db83400232ffee5" + ); + public static readonly MongoId AUXILIARYMOD_ARMASIGHT_VULCAN_MG_SCOPE_EYECUP = new MongoId( + "5b3cbc235acfc4001863ac44" + ); + public static readonly MongoId AUXILIARYMOD_ARMASIGHT_ZEUSPRO_SCOPE_EYECUP = new MongoId( + "63fc4533b10b17385349b565" + ); + public static readonly MongoId AUXILIARYMOD_AXION_KOBRA_SIGHT_SHADE = new MongoId( + "591c4e1186f77410354b316e" + ); + public static readonly MongoId AUXILIARYMOD_CYCLONE_SHAKHIN_SCOPE_EYECUP = new MongoId( + "67641bec4ad898aa100c1079" + ); + public static readonly MongoId AUXILIARYMOD_FAB_DEFENSE_PROTECTION_CAP_FOR_AGR870 = new MongoId( + "5bfe86bd0db83400232fe959" + ); + public static readonly MongoId AUXILIARYMOD_GLOCK_ZEV_TECH_SIGHT_MOUNT_CAP = new MongoId( + "5a71e1868dc32e00094b97f3" + ); + public static readonly MongoId AUXILIARYMOD_HK_G36_HAND_STOP = new MongoId( + "622f16a1a5958f63c67f1737" + ); + public static readonly MongoId AUXILIARYMOD_HK_USP_HAMMER = new MongoId( + "6193d3be7c6c7b169525f0da" + ); + public static readonly MongoId AUXILIARYMOD_HK_USP_SLIDE_LOCK = new MongoId( + "6193d5d4f8ee7e52e4210a1b" + ); + public static readonly MongoId AUXILIARYMOD_HK_USP_TRIGGER = new MongoId( + "6193d3cded0429009f543e6a" + ); + public static readonly MongoId AUXILIARYMOD_KAC_URX_331_LONG_PANEL = new MongoId( + "5d123b70d7ad1a0ee35e0754" + ); + public static readonly MongoId AUXILIARYMOD_KAC_URX_331_LONG_PANEL_FDE = new MongoId( + "5d124c0ed7ad1a10d168dd9b" + ); + public static readonly MongoId AUXILIARYMOD_KAC_URX_331_SHORT_PANEL = new MongoId( + "5d123a3cd7ad1a004e476058" + ); + public static readonly MongoId AUXILIARYMOD_KAC_URX_331_SHORT_PANEL_FDE = new MongoId( + "5d124c01d7ad1a115c7d59fb" + ); + public static readonly MongoId AUXILIARYMOD_KAC_URX_331_STOPPER_PANEL = new MongoId( + "5d123b7dd7ad1a004f01b262" + ); + public static readonly MongoId AUXILIARYMOD_KAC_URX_331_STOPPER_PANEL_FDE = new MongoId( + "5d124c1ad7ad1a12227c53a7" + ); + public static readonly MongoId AUXILIARYMOD_KMZ_1P59_SCOPE_EYECUP = new MongoId( + "5d0b5cd3d7ad1a3fe32ad263" + ); + public static readonly MongoId AUXILIARYMOD_KPSR2_SIGHT_SHADE = new MongoId( + "62ff9faffe938a24c90c10df" + ); + public static readonly MongoId AUXILIARYMOD_M1911A1_CASPIAN_ARMS_TRIK_TRIGGER = new MongoId( + "5ef32e4d1c1fd62aea6a150d" + ); + public static readonly MongoId AUXILIARYMOD_M1911A1_HAMMER = new MongoId( + "5e81c550763d9f754677befd" + ); + public static readonly MongoId AUXILIARYMOD_M1911A1_SLIDE_STOP = new MongoId( + "5e81c539cb2b95385c177553" + ); + public static readonly MongoId AUXILIARYMOD_M1911A1_STI_HEX_HAMMER = new MongoId( + "5ef35f46382a846010715a96" + ); + public static readonly MongoId AUXILIARYMOD_M1911A1_TRIGGER = new MongoId( + "5e81c6a2ac2bb513793cdc7f" + ); + public static readonly MongoId AUXILIARYMOD_M1911A1_WILSON_EXTENDED_SLIDE_STOP = new MongoId( + "5ef3553c43cb350a955a7ccb" + ); + public static readonly MongoId AUXILIARYMOD_M1911A1_WILSON_RETRO_COMMANDER_HAMMER = new MongoId( + "5ef35d2ac64c5d0dfc0571b0" + ); + public static readonly MongoId AUXILIARYMOD_M1911A1_WILSON_ULTRALIGHT_SKELETONIZED_HAMMER = + new MongoId("5ef35bc243cb350a955a7ccd"); + public static readonly MongoId AUXILIARYMOD_M45A1_HAMMER = new MongoId( + "5f3e76d86cda304dcc634054" + ); + public static readonly MongoId AUXILIARYMOD_M45A1_SLIDE_LOCK = new MongoId( + "5f3e777688ca2d00ad199d25" + ); + public static readonly MongoId AUXILIARYMOD_M45A1_TRIGGER = new MongoId( + "5f3e772a670e2a7b01739a52" + ); + public static readonly MongoId AUXILIARYMOD_MP155_ULTIMA_PISTOL_GRIP_RUBBER_PAD = new MongoId( + "60785c0d232e5a31c233d51c" + ); + public static readonly MongoId AUXILIARYMOD_MP155_ULTIMA_UNDERBARREL_MOUNT = new MongoId( + "606f26752535c57a13424d22" + ); + public static readonly MongoId AUXILIARYMOD_NPZ_1P78_SCOPE_EYECUP = new MongoId( + "618a760e526131765025aae3" + ); + public static readonly MongoId AUXILIARYMOD_NPZ_USP1_SCOPE_EYECUP = new MongoId( + "5cf639aad7f00c065703d455" + ); + public static readonly MongoId AUXILIARYMOD_NSPUM_SCOPE_EYECUP = new MongoId( + "5ba36f85d4351e0085325c81" + ); + public static readonly MongoId AUXILIARYMOD_PSO_SCOPE_EYECUP = new MongoId( + "57f3a5ae2459772b0e0bf19e" + ); + public static readonly MongoId AUXILIARYMOD_SAKO_TRG_M10_REAR_HOOK = new MongoId( + "673ddbb567c759b3c90e5f76" + ); + public static readonly MongoId AUXILIARYMOD_STM9_MAGWELL = new MongoId( + "602f85fd9b513876d4338d9c" + ); + public static readonly MongoId AUXILIARYMOD_STM9_MAGWELL_GREY = new MongoId( + "60338ff388382f4fab3fd2c8" + ); + public static readonly MongoId AUXILIARYMOD_SV98_ANTIHEAT_RIBBON = new MongoId( + "56083eab4bdc2d26448b456a" + ); + public static readonly MongoId AUXILIARYMOD_SV98_SOUND_SUPPRESSOR_HEAT_SHIELD = new MongoId( + "5c4eecde2e221602b3140418" + ); + public static readonly MongoId AUXILIARYMOD_TRIJICON_REAPIR_SCOPE_EYECUP = new MongoId( + "5a1eacb3fcdbcb09800872be" + ); + public static readonly MongoId AUXILIARYMOD_TROPHY = new MongoId("5ae089fb5acfc408fb13989b"); + public static readonly MongoId BACKPACK_3V_GEAR_PARATUS_3DAY_OPERATORS_TACTICAL_BACKPACK_FOLIAGE_GREY = + new MongoId("5c0e805e86f774683f3dd637"); + public static readonly MongoId BACKPACK_511_TACTICAL_RUSH_100_BACKPACK_BLACK = new MongoId( + "67458730df3c1da90b0b052b" + ); + public static readonly MongoId BACKPACK_6SH118_RAID_BACKPACK_EMR = new MongoId( + "5df8a4d786f77412672a1e3b" + ); + public static readonly MongoId BACKPACK_ANA_TACTICAL_BETA_2_BATTLE_BACKPACK_OLIVE_DRAB = + new MongoId("5b44c6ae86f7742d1627baea"); + public static readonly MongoId BACKPACK_CAMELBAK_TRIZIP_ASSAULT_BACKPACK_FOLIAGE = new MongoId( + "545cdae64bdc2d39198b4568" + ); + public static readonly MongoId BACKPACK_CAMELBAK_TRIZIP_ASSAULT_BACKPACK_MULTICAM = new MongoId( + "66b5f22b78bbc0200425f904" + ); + public static readonly MongoId BACKPACK_DIRECT_ACTION_DRAGON_EGG_MARK_II_BACKPACK_BLACK = + new MongoId("656f198fb27298d6fd005466"); + public static readonly MongoId BACKPACK_DUFFLE_BAG = new MongoId("56e33634d2720bd8058b456b"); + public static readonly MongoId BACKPACK_EBERLESTOCK_F4_TERMINATOR_LOAD_BEARING_BACKPACK_TIGER_STRIPE = + new MongoId("5f5e46b96bdad616ad46d613"); + public static readonly MongoId BACKPACK_EBERLESTOCK_F5_SWITCHBLADE_BACKPACK_DRY_EARTH = + new MongoId("5f5e467b0bc58666c37e7821"); + public static readonly MongoId BACKPACK_EBERLESTOCK_G2_GUNSLINGER_II_BACKPACK_DRY_EARTH = + new MongoId("6034d2d697633951dc245ea6"); + public static readonly MongoId BACKPACK_FLYYE_MBSS_BACKPACK_UCP = new MongoId( + "544a5cde4bdc2d39388b456b" + ); + public static readonly MongoId BACKPACK_GRUPPA_99_T20_BACKPACK_MULTICAM = new MongoId( + "619cf0335771dd3c390269ae" + ); + public static readonly MongoId BACKPACK_GRUPPA_99_T20_BACKPACK_UMBER_BROWN = new MongoId( + "618bb76513f5097c8d5aa2d5" + ); + public static readonly MongoId BACKPACK_GRUPPA_99_T30_BACKPACK_BLACK = new MongoId( + "628e1ffc83ec92260c0f437f" + ); + public static readonly MongoId BACKPACK_GRUPPA_99_T30_BACKPACK_MULTICAM = new MongoId( + "62a1b7fbc30cfa1d366af586" + ); + public static readonly MongoId BACKPACK_HAZARD_4_DRAWBRIDGE_BACKPACK_COYOTE_TAN = new MongoId( + "60a272cc93ef783291411d8e" + ); + public static readonly MongoId BACKPACK_HAZARD_4_PILLBOX_BACKPACK_BLACK = new MongoId( + "60a2828e8689911a226117f9" + ); + public static readonly MongoId BACKPACK_HAZARD_4_TAKEDOWN_SLING_BACKPACK_BLACK = new MongoId( + "6034d103ca006d2dca39b3f0" + ); + public static readonly MongoId BACKPACK_HAZARD_4_TAKEDOWN_SLING_BACKPACK_MULTICAM = new MongoId( + "6038d614d10cbf667352dd44" + ); + public static readonly MongoId BACKPACK_LBT1476A_3DAY_PACK_MULTICAM_ALPINE = new MongoId( + "67458794e21e5d724e066976" + ); + public static readonly MongoId BACKPACK_LBT1476A_3DAY_PACK_WOODLAND = new MongoId( + "618cfae774bb2d036a049e7c" + ); + public static readonly MongoId BACKPACK_LBT2670_SLIM_FIELD_MED_PACK_BLACK = new MongoId( + "5e4abc6786f77406812bd572" + ); + public static readonly MongoId BACKPACK_LBT8005A_DAY_PACK_BACKPACK_MULTICAM_BLACK = new MongoId( + "5e9dcf5986f7746c417435b3" + ); + public static readonly MongoId BACKPACK_LOLKEK_3F_TRANSFER_TOURIST = new MongoId( + "5f5e45cc5021ce62144be7aa" + ); + public static readonly MongoId BACKPACK_MYSTERY_RANCH_BLACKJACK_50_BACKPACK_MULTICAM = + new MongoId("5c0e774286f77468413cc5b2"); + public static readonly MongoId BACKPACK_MYSTERY_RANCH_NICE_COMM_3_BVS_FRAME_SYSTEM_COYOTE = + new MongoId("628bc7fb408e2b2e9c0801b1"); + public static readonly MongoId BACKPACK_MYSTERY_RANCH_SATL_BRIDGER_ASSAULT_PACK_FOLIAGE = + new MongoId("656e0436d44a1bb4220303a0"); + public static readonly MongoId BACKPACK_MYSTERY_RANCH_TERRAFRAME_BACKPACK_CHRISTMAS_EDITION = + new MongoId("674da9cf0cb4bcde7103c07b"); + public static readonly MongoId BACKPACK_MYSTERY_RANCH_TERRAFRAME_BACKPACK_OLIVE_DRAB = + new MongoId("674da107c512807d1a0e7436"); + public static readonly MongoId BACKPACK_MYSTERY_RANCH_TERRAPLANE = new MongoId( + "56e294cdd2720b603a8b4575" + ); + public static readonly MongoId BACKPACK_OAKLEY_MECHANISM_HEAVY_DUTY_BACKPACK_BLACK = + new MongoId("5d5d940f86f7742797262046"); + public static readonly MongoId BACKPACK_PARTISANS_BAG = new MongoId("66a9f98f3bd5a41b162030f4"); + public static readonly MongoId BACKPACK_PILGRIM_TOURIST = new MongoId( + "59e763f286f7742ee57895da" + ); + public static readonly MongoId BACKPACK_SANITARS_BAG = new MongoId("5e997f0b86f7741ac73993e2"); + public static readonly MongoId BACKPACK_SANTAS_BAG = new MongoId("61b9e1aaef9a1b5d6a79899a"); + public static readonly MongoId BACKPACK_SCAV = new MongoId("56e335e4d2720b6c058b456d"); + public static readonly MongoId BACKPACK_SSO_ATTACK_2_RAID_BACKPACK_KHAKI = new MongoId( + "5ab8ebf186f7742d8b372e80" + ); + public static readonly MongoId BACKPACK_TACTICAL_SLING_BAG_KHAKI = new MongoId( + "5ab8f04f86f774585f4237d8" + ); + public static readonly MongoId BACKPACK_TASMANIAN_TIGER_TROOPER_35_BACKPACK_KHAKI = new MongoId( + "639346cc1c8f182ad90c8972" + ); + public static readonly MongoId BACKPACK_TEHINKOM_RKPT25_PATROL_BACKPACK_EMR = new MongoId( + "656ddcf0f02d7bcea90bf395" + ); + public static readonly MongoId BACKPACK_TRANSFORMER_BAG = new MongoId( + "56e33680d2720be2748b4576" + ); + public static readonly MongoId BACKPACK_VERTX_READY_PACK_BACKPACK_RED = new MongoId( + "66b5f247af44ca0014063c02" + ); + public static readonly MongoId BACKPACK_VKBO_ARMY_BAG = new MongoId("5ab8ee7786f7742d8f33f0b9"); + public static readonly MongoId BACKPACK_WARTECH_BERKUT_BB102_BACKPACK_ATACS_FG = new MongoId( + "5ca20d5986f774331e7c9602" + ); + public static readonly MongoId BARREL_9A91_9X39 = new MongoId("645122f6d4928d46d30be3ff"); + public static readonly MongoId BARREL_AA12_12GA_330MM = new MongoId("66ffac601f7492c901027bbb"); + public static readonly MongoId BARREL_AA12_12GA_342MM_THREADED = new MongoId( + "670fd03dc424cf758f006946" + ); + public static readonly MongoId BARREL_AA12_12GA_417MM_THREADED = new MongoId( + "670fd0a8d8d4eae4790c8187" + ); + public static readonly MongoId BARREL_AA12_12GA_457MM = new MongoId("670fced86a7e274b1a0964e8"); + public static readonly MongoId BARREL_AI_AXMC_338_LM_28_INCH = new MongoId( + "628121434fa03b6b6c35dc6a" + ); + public static readonly MongoId BARREL_AR10_762X51_18_INCH = new MongoId( + "5a34f7f1c4a2826c6e06d75d" + ); + public static readonly MongoId BARREL_AR10_762X51_22_INCH = new MongoId( + "5a34fae7c4a2826c6e06d760" + ); + public static readonly MongoId BARREL_AR15_556X45_103_INCH = new MongoId( + "55d35ee94bdc2d61338b4568" + ); + public static readonly MongoId BARREL_AR15_556X45_145_INCH = new MongoId( + "55d3632e4bdc2d972f8b4569" + ); + public static readonly MongoId BARREL_AR15_556X45_18_INCH = new MongoId( + "5d440b93a4b9364276578d4b" + ); + public static readonly MongoId BARREL_AR15_556X45_20_INCH = new MongoId( + "5d440b9fa4b93601354d480c" + ); + public static readonly MongoId BARREL_AR15_556X45_BALLISTIC_ADVANTAGE_HANSON_CARBINE_PRO_137_INCH = + new MongoId("63d3ce0446bd475bcb50f55f"); + public static readonly MongoId BARREL_AR15_556X45_BALLISTIC_ADVANTAGE_HANSON_CARBINE_PRO_16_INCH = + new MongoId("63d3d44a2a49307baf09386d"); + public static readonly MongoId BARREL_AR15_556X45_MOLOT_ARMS_16_INCH = new MongoId( + "5c0e2f94d174af029f650d56" + ); + public static readonly MongoId BARREL_BENELLI_M3_SUPER_90_12GA_500MM = new MongoId( + "6259c2c1d714855d182bad85" + ); + public static readonly MongoId BARREL_DESERT_EAGLE_L5_357_127MM = new MongoId( + "669fa4c61bd4416eaa09b3ca" + ); + public static readonly MongoId BARREL_DESERT_EAGLE_L5_50_AE_127MM = new MongoId( + "669fa4ba1bd4416eaa09b3c6" + ); + public static readonly MongoId BARREL_DESERT_EAGLE_L6_50_AE_152MM = new MongoId( + "669fa47da0bab4e8510d9526" + ); + public static readonly MongoId BARREL_DESERT_EAGLE_L6_50_AE_152MM_BARREL_WTS = new MongoId( + "669fa48fa0bab4e8510d952a" + ); + public static readonly MongoId BARREL_DESERT_EAGLE_MK_XIX_50_AE_152MM = new MongoId( + "668fe5f62a0f85eea407cc18" + ); + public static readonly MongoId BARREL_DO_NOT_USEAI_AXMC_762X51_20_INCH = new MongoId( + "628121651d5df4475f46a33c" + ); + public static readonly MongoId BARREL_DO_NOT_USEAI_AXMC_762X51_24_INCH = new MongoId( + "6281215b4fa03b6b6c35dc6c" + ); + public static readonly MongoId BARREL_DO_NOT_USEAI_AXMC_762X51_26_INCH = new MongoId( + "6281214c1d5df4475f46a33a" + ); + public static readonly MongoId BARREL_DVL10_762X51_500MM_SUPPRESSED = new MongoId( + "5888945a2459774bf43ba385" + ); + public static readonly MongoId BARREL_DVL10_M2_762X51_660MM = new MongoId( + "5888956924597752983e182d" + ); + public static readonly MongoId BARREL_FN_FIVESEVEN_57X28_120MM = new MongoId( + "5d3eb5b6a4b9361eab311902" + ); + public static readonly MongoId BARREL_FN_FIVESEVEN_57X28_120MM_THREADED = new MongoId( + "5d3eb59ea4b9361c284bb4b2" + ); + public static readonly MongoId BARREL_FN_P90_57X28_105_INCH = new MongoId( + "5cc701aae4a949000e1ea45c" + ); + public static readonly MongoId BARREL_FN_P90_57X28_16_INCH = new MongoId( + "5cc701d7e4a94900100ac4e7" + ); + public static readonly MongoId BARREL_FN_SCARH_762X51_13_INCH = new MongoId( + "618168b350224f204c1da4d8" + ); + public static readonly MongoId BARREL_FN_SCARH_762X51_16_INCH = new MongoId( + "6183b0711cb55961fa0fdcad" + ); + public static readonly MongoId BARREL_FN_SCARH_762X51_20_INCH = new MongoId( + "6183b084a112697a4b3a6e6c" + ); + public static readonly MongoId BARREL_FN_SCARL_556X45_10_INCH = new MongoId( + "6183fc15d3a39d50044c13e9" + ); + public static readonly MongoId BARREL_FN_SCARL_556X45_14_INCH = new MongoId( + "6183fd911cb55961fa0fdce9" + ); + public static readonly MongoId BARREL_FN_SCARL_556X45_18_INCH = new MongoId( + "6183fd9e8004cc50514c358f" + ); + public static readonly MongoId BARREL_GLOCK_17_9X19_114MM = new MongoId( + "5a6b5f868dc32e000a311389" + ); + public static readonly MongoId BARREL_GLOCK_17_9X19_114MM_COMPENSATED = new MongoId( + "5a6b60158dc32e000a31138b" + ); + public static readonly MongoId BARREL_GLOCK_18C_9X19_114MM_COMPENSATED = new MongoId( + "5b1fa9ea5acfc40018633c0a" + ); + public static readonly MongoId BARREL_GLOCK_19X_9X19_102MM = new MongoId( + "630764fea987397c0816d219" + ); + public static readonly MongoId BARREL_GLOCK_9X19_DOUBLE_DIAMOND_114MM_THREADED = new MongoId( + "5a6b5e468dc32e001207faf5" + ); + public static readonly MongoId BARREL_GLOCK_9X19_LONE_WOLF_ALPHAWOLF_114MM_THREADED = + new MongoId("5a6b5b8a8dc32e001207faf3"); + public static readonly MongoId BARREL_GLOCK_9X19_SAI_114MM_THREADED = new MongoId( + "5a6b5ed88dc32e000c52ec86" + ); + public static readonly MongoId BARREL_HK_416_556X45_106_INCH = new MongoId( + "5c6d85e02e22165df16b81f4" + ); + public static readonly MongoId BARREL_HK_416_556X45_11_INCH = new MongoId( + "5bb20d92d4351e00853263eb" + ); + public static readonly MongoId BARREL_HK_416_556X45_145_INCH_BARREL_WITH_FLIPUP_FRONT_SIGHT = + new MongoId("5bb20d9cd4351e00334c9d8a"); + public static readonly MongoId BARREL_HK_416_556X45_165_INCH_BARREL_WITH_FLIPUP_FRONT_SIGHT = + new MongoId("5bb20da5d4351e0035629dbf"); + public static readonly MongoId BARREL_HK_416_556X45_20_INCH_BARREL_WITH_FLIPUP_FRONT_SIGHT = + new MongoId("5bb20dadd4351e00367faeff"); + public static readonly MongoId BARREL_HK_G36_556X45_228MM = new MongoId( + "622b379bf9cfc87d675d2de5" + ); + public static readonly MongoId BARREL_HK_G36_556X45_318MM = new MongoId( + "622b3858034a3e17ad0b81f5" + ); + public static readonly MongoId BARREL_HK_G36_556X45_480MM = new MongoId( + "622b38c56762c718e457e246" + ); + public static readonly MongoId BARREL_HK_UMP_45_ACP_8_INCH = new MongoId( + "5fc3e4a27283c4046c5814ab" + ); + public static readonly MongoId BARREL_HK_UMP_45_ACP_8_INCH_THREADED = new MongoId( + "6130c3dffaa1272e43151c7d" + ); + public static readonly MongoId BARREL_HK_USP_45_ACP_112MM = new MongoId( + "6194ef39de3cdf1d2614a768" + ); + public static readonly MongoId BARREL_HK_USP_ELITE_45_ACP_153MM = new MongoId( + "6194f017ed0429009f543eaa" + ); + public static readonly MongoId BARREL_HK_USP_EXPERT_45_ACP_132MM = new MongoId( + "6194eff92d2c397d6600348b" + ); + public static readonly MongoId BARREL_HK_USP_MATCH_45_ACP_153MM = new MongoId( + "6194f02d9bb3d20b0946d2f0" + ); + public static readonly MongoId BARREL_HK_USP_TACTICAL_45_ACP_129MM_THREADED = new MongoId( + "6194efe07c6c7b169525f11b" + ); + public static readonly MongoId BARREL_HK417_762X51_165_INCH = new MongoId( + "61702be9faa1272e431522c3" + ); + public static readonly MongoId BARREL_KRISS_VECTOR_45_ACP_5_INCH = new MongoId( + "5fb65363d1409e5ca04b54f5" + ); + public static readonly MongoId BARREL_KRISS_VECTOR_45_ACP_6_INCH = new MongoId( + "5fb653962b1b027b1f50bd03" + ); + public static readonly MongoId BARREL_KRISS_VECTOR_9X19_5_INCH = new MongoId( + "5fbbc366ca32ed67276c1557" + ); + public static readonly MongoId BARREL_KRISS_VECTOR_9X19_6_INCH = new MongoId( + "5fbbc383d5cb881a7363194a" + ); + public static readonly MongoId BARREL_KS23_23X75_510MM = new MongoId( + "5e848d1c264f7c180b5e35a9" + ); + public static readonly MongoId BARREL_KS23_23X75_700MM = new MongoId( + "5e848d2eea0a7c419c2f9bfd" + ); + public static readonly MongoId BARREL_M1911A1_45_ACP_127MM = new MongoId( + "5e81c519cb2b95385c177551" + ); + public static readonly MongoId BARREL_M1911A1_45_ACP_141MM_THREADED = new MongoId( + "5f3e77f59103d430b93f94c1" + ); + public static readonly MongoId BARREL_M1911A1_45_ACP_NATIONAL_MATCH_127MM = new MongoId( + "5f3e7801153b8571434a924c" + ); + public static readonly MongoId BARREL_M1A_762X51_16_INCH = new MongoId( + "5aaf9d53e5b5b00015042a52" + ); + public static readonly MongoId BARREL_M1A_762X51_22_INCH = new MongoId( + "5addbac75acfc400194dbc56" + ); + public static readonly MongoId BARREL_M60E3_762X51_584MM = new MongoId( + "6601279cc752a02bbe05e692" + ); + public static readonly MongoId BARREL_M60E4_762X51_458MM = new MongoId( + "660126f7c752a02bbe05e688" + ); + public static readonly MongoId BARREL_M60E4_762X51_475MM_HEAVY = new MongoId( + "66012788c752a02bbe05e68e" + ); + public static readonly MongoId BARREL_M60E6_762X51_458MM = new MongoId( + "66225d88a1c7e3b81600c76f" + ); + public static readonly MongoId BARREL_M700_762X51_20_INCH_STAINLESS_STEEL_THREADED = + new MongoId("5d2703038abbc3105103d94c"); + public static readonly MongoId BARREL_M700_762X51_20_INCH_THREADED = new MongoId( + "5bfebc320db8340019668d79" + ); + public static readonly MongoId BARREL_M700_762X51_26_INCH = new MongoId( + "5bfebc250db834001a6694e1" + ); + public static readonly MongoId BARREL_M700_762X51_26_INCH_STAINLESS_STEEL = new MongoId( + "5d2702e88abbc31ed91efc44" + ); + public static readonly MongoId BARREL_M870_12GA_355MM = new MongoId("5a787f25c5856700186c4ab9"); + public static readonly MongoId BARREL_M870_12GA_508MM = new MongoId("5a787f7ac5856700177af660"); + public static readonly MongoId BARREL_M870_12GA_508MM_BARREL_WITH_A_FIXED_SIGHT = new MongoId( + "5a787ebcc5856700142fdd98" + ); + public static readonly MongoId BARREL_M870_12GA_660MM_VENT_RIB = new MongoId( + "5a787fadc5856700155a6ca1" + ); + public static readonly MongoId BARREL_M870_12GA_SAWEDOFF_325MM = new MongoId( + "5a787fdfc5856700142fdd9a" + ); + public static readonly MongoId BARREL_M9A3_9X19_127MM_THREADED = new MongoId( + "5cadc1c6ae9215000f2775a4" + ); + public static readonly MongoId BARREL_MCX_300_BLK_675_INCH = new MongoId( + "5fbbfabed5cb881a7363194e" + ); + public static readonly MongoId BARREL_MCX_300_BLK_9_INCH = new MongoId( + "5fbbfacda56d053a3543f799" + ); + public static readonly MongoId BARREL_MCXSPEAR_68X51_13_INCH = new MongoId( + "652910565ae2ae97b80fdf35" + ); + public static readonly MongoId BARREL_MDR_556X45_16_INCH = new MongoId( + "5c48a2852e221602b21d5923" + ); + public static readonly MongoId BARREL_MDR_762X51_16_INCH = new MongoId( + "5dcbe9431e1f4616d354987e" + ); + public static readonly MongoId BARREL_MK18_338_LM_24_INCH = new MongoId( + "5fc23678ab884124df0cd590" + ); + public static readonly MongoId BARREL_MK47_254MM = new MongoId("60658776f2cb2e02a42ace2b"); + public static readonly MongoId BARREL_MK47_409MM = new MongoId("6065878ac9cf8012264142fd"); + public static readonly MongoId BARREL_MOSIN_CARBINE_762X54R_514MM = new MongoId( + "5bfd4cbe0db834001b73449f" + ); + public static readonly MongoId BARREL_MOSIN_RIFLE_762X54R_730MM_REGULAR = new MongoId( + "5ae09bff5acfc4001562219d" + ); + public static readonly MongoId BARREL_MOSIN_RIFLE_762X54R_SAWEDOFF_200MM = new MongoId( + "5bfd4cc90db834001d23e846" + ); + public static readonly MongoId BARREL_MOSIN_RIFLE_762X54R_SAWEDOFF_220MM_THREADED = new MongoId( + "5bfd4cd60db834001c38f095" + ); + public static readonly MongoId BARREL_MOSSBERG_590A1_12GA_20_INCH = new MongoId( + "5e87071478f43e51ca2de5e1" + ); + public static readonly MongoId BARREL_MP133_12GA_510MM = new MongoId( + "55d4491a4bdc2d882f8b456e" + ); + public static readonly MongoId BARREL_MP133_12GA_510MM_BARREL_WITH_RIB = new MongoId( + "560835c74bdc2dc8488b456f" + ); + public static readonly MongoId BARREL_MP133_12GA_540MM = new MongoId( + "560836484bdc2d20478b456e" + ); + public static readonly MongoId BARREL_MP133_12GA_540MM_BARREL_WITH_RIB = new MongoId( + "560836b64bdc2d57468b4567" + ); + public static readonly MongoId BARREL_MP133_12GA_610MM = new MongoId( + "55d448594bdc2d8c2f8b4569" + ); + public static readonly MongoId BARREL_MP133_12GA_610MM_BARREL_WITH_RIB = new MongoId( + "55d449444bdc2d962f8b456d" + ); + public static readonly MongoId BARREL_MP133_12GA_660MM = new MongoId( + "560836fb4bdc2d773f8b4569" + ); + public static readonly MongoId BARREL_MP133_12GA_660MM_BARREL_WITH_RIB = new MongoId( + "560837154bdc2da74d8b4568" + ); + public static readonly MongoId BARREL_MP133_12GA_710MM = new MongoId( + "5608373c4bdc2dc8488b4570" + ); + public static readonly MongoId BARREL_MP133_12GA_710MM_BARREL_WITH_RIB = new MongoId( + "560837544bdc2de22e8b456e" + ); + public static readonly MongoId BARREL_MP133_12GA_750MM = new MongoId( + "560837824bdc2d57468b4568" + ); + public static readonly MongoId BARREL_MP133_12GA_750MM_BARREL_WITH_RIB = new MongoId( + "5608379a4bdc2d26448b4569" + ); + public static readonly MongoId BARREL_MP153_12GA_610MM = new MongoId( + "588200af24597742fa221dfb" + ); + public static readonly MongoId BARREL_MP153_12GA_660MM = new MongoId( + "588200c224597743990da9ed" + ); + public static readonly MongoId BARREL_MP153_12GA_710MM = new MongoId( + "588200cf2459774414733d55" + ); + public static readonly MongoId BARREL_MP153_12GA_750MM = new MongoId( + "56deec93d2720bec348b4568" + ); + public static readonly MongoId BARREL_MP155_12GA_510MM = new MongoId( + "6076c1b9f2cb2e02a42acedc" + ); + public static readonly MongoId BARREL_MP18_762X54R_600MM = new MongoId( + "61f4012adfc9f01a816adda1" + ); + public static readonly MongoId BARREL_MP43_12GA_750MM = new MongoId("611a30addbdd8440277441dc"); + public static readonly MongoId BARREL_MP43_12GA_SAWEDOFF_310MM = new MongoId( + "64748d02d1c009260702b526" + ); + public static readonly MongoId BARREL_MP431C_12GA_510MM = new MongoId( + "5580169d4bdc2d9d138b4585" + ); + public static readonly MongoId BARREL_MP431C_12GA_725MM = new MongoId( + "55d447bb4bdc2d892f8b456f" + ); + public static readonly MongoId BARREL_MPX_9X19_105_INCH = new MongoId( + "5c5db5b82e2216003a0fe71d" + ); + public static readonly MongoId BARREL_MPX_9X19_14_INCH = new MongoId( + "5c5db5c62e22160012542255" + ); + public static readonly MongoId BARREL_MPX_9X19_45_INCH = new MongoId( + "5c5db5852e2216003a0fe71a" + ); + public static readonly MongoId BARREL_MPX_9X19_65_INCH = new MongoId( + "5c5db5962e2216000e5e46eb" + ); + public static readonly MongoId BARREL_MPX_9X19_8_INCH = new MongoId("5894a2c386f77427140b8342"); + public static readonly MongoId BARREL_MPX_9X19_RONIN_ARMS_475_INCH_PORTED_SD = new MongoId( + "67614994e889e1972605d6bb" + ); + public static readonly MongoId BARREL_MPX_9X19_RONIN_ARMS_675_INCH_PORTED_SD = new MongoId( + "676149a3e2cf1419500357eb" + ); + public static readonly MongoId BARREL_MPXSD_9X19_65_INCH_PORTED = new MongoId( + "58aeaaa886f7744fc1560f81" + ); + public static readonly MongoId BARREL_MTS25512_12GA_755MM_BARREL_WITH_RIB = new MongoId( + "612368f58b401f4f51239b33" + ); + public static readonly MongoId BARREL_OPSKS_762X39_520MM = new MongoId( + "634eff66517ccc8a960fc735" + ); + public static readonly MongoId BARREL_ORSIS_T5000M_762X51_660MM = new MongoId( + "5df256570dee1b22f862e9c4" + ); + public static readonly MongoId BARREL_P226_9X19_112MM = new MongoId("56d5a1f7d2720bb3418b456a"); + public static readonly MongoId BARREL_P226_9X19_112MM_THREADED = new MongoId( + "587de4282459771bca0ec90b" + ); + public static readonly MongoId BARREL_PKM_762X54R_658MM = new MongoId( + "646371faf2404ab67905c8e9" + ); + public static readonly MongoId BARREL_PKP_762X54R_658MM = new MongoId( + "64639a9aab86f8fd4300146c" + ); + public static readonly MongoId BARREL_PL15_9X19_112MM = new MongoId("602a95edda11d6478d5a06da"); + public static readonly MongoId BARREL_PL15_9X19_112MM_THREADED = new MongoId( + "602a95fe4e02ce1eaa358729" + ); + public static readonly MongoId BARREL_PPSH41_762X25_269MM = new MongoId( + "5ea02bb600685063ec28bfa1" + ); + public static readonly MongoId BARREL_RFB_762X51_18_INCH = new MongoId( + "5f2aa46b878ef416f538b567" + ); + public static readonly MongoId BARREL_RPD_762X39_520MM = new MongoId( + "6513eff1e06849f06c0957d4" + ); + public static readonly MongoId BARREL_RPD_762X39_SAWEDOFF_350MM = new MongoId( + "65266fd43341ed9aa903dd56" + ); + public static readonly MongoId BARREL_RPK16_545X39_15_INCH = new MongoId( + "5beec1bd0db834001e6006f3" + ); + public static readonly MongoId BARREL_RPK16_545X39_22_INCH = new MongoId( + "5beec2820db834001b095426" + ); + public static readonly MongoId BARREL_SA58_762X51_11_INCH = new MongoId( + "5b099a765acfc47a8607efe3" + ); + public static readonly MongoId BARREL_SA58_762X51_16_INCH = new MongoId( + "5b7be1125acfc4001876c0e5" + ); + public static readonly MongoId BARREL_SA58_762X51_21_INCH = new MongoId( + "5b7be1265acfc400161d0798" + ); + public static readonly MongoId BARREL_SAKO_TRG_M10_338_LM_20_INCH = new MongoId( + "67405d760098dcb5940ea1a6" + ); + public static readonly MongoId BARREL_SAKO_TRG_M10_338_LM_235_INCH = new MongoId( + "673cb551093e0ea7fd0b874a" + ); + public static readonly MongoId BARREL_SAKO_TRG_M10_338_LM_27_INCH = new MongoId( + "67405e3b83ac5c69ae025406" + ); + public static readonly MongoId BARREL_SKS_762X39_520MM = new MongoId( + "634f02331f9f536910079b51" + ); + public static readonly MongoId BARREL_SR25_762X51_16_INCH = new MongoId( + "5df917564a9f347bc92edca3" + ); + public static readonly MongoId BARREL_SR25_762X51_20_INCH = new MongoId( + "5dfa397fb11454561e39246c" + ); + public static readonly MongoId BARREL_STEYR_AUG_A1_556X45_16_INCH = new MongoId( + "6333f05d1bc0e6217a0e9d34" + ); + public static readonly MongoId BARREL_STEYR_AUG_A1_556X45_20_INCH = new MongoId( + "62e7c7f3c34ea971710c32fc" + ); + public static readonly MongoId BARREL_STEYR_AUG_A3_556X45_16_INCH = new MongoId( + "630e39c3bd357927e4007c15" + ); + public static readonly MongoId BARREL_STM9_9X19_105_INCH = new MongoId( + "603372b4da11d6478d5a07ff" + ); + public static readonly MongoId BARREL_STM9_9X19_12_INCH = new MongoId( + "603372d154072b51b239f9e1" + ); + public static readonly MongoId BARREL_STM9_9X19_14_INCH = new MongoId( + "603372f153a60014f970616d" + ); + public static readonly MongoId BARREL_STM9_9X19_16_INCH = new MongoId( + "603373004e02ce1eaa358814" + ); + public static readonly MongoId BARREL_SVD_762X54R_565MM = new MongoId( + "5c471cb32e221602b177afaa" + ); + public static readonly MongoId BARREL_SVT40_762X54R_625MM = new MongoId( + "6410758c857473525b08bb77" + ); + public static readonly MongoId BARREL_TT_762X25_116MM = new MongoId("571a26d524597720680fbe8a"); + public static readonly MongoId BARREL_TT_762X25_116MM_GILDED = new MongoId( + "5b3baf8f5acfc40dc5296692" + ); + public static readonly MongoId BARREL_TT_762X25_121MM_MAKESHIFT_THREADED = new MongoId( + "571a279b24597720b4066566" + ); + public static readonly MongoId BARREL_UZI_238MM_THREADED_3LUG = new MongoId( + "6698c89bfbc8142e60024b0e" + ); + public static readonly MongoId BARREL_UZI_9X19_259MM = new MongoId("6698c8ab29e062525d0ad8ab"); + public static readonly MongoId BARREL_UZI_9X19_409MM = new MongoId("6698c8b7710a4525fe0e9e55"); + public static readonly MongoId BARREL_UZI_PRO_9X19_114MM = new MongoId( + "66866fe776d1a87cd80fd388" + ); + public static readonly MongoId BARREL_UZI_PRO_9X19_170MM = new MongoId( + "6686700a2b934a68630a7fe6" + ); + public static readonly MongoId BARREL_UZI_PRO_9X19_210MM = new MongoId( + "66867023c3d473265104f384" + ); + public static readonly MongoId BARREL_UZI_PRO_9X19_240MM = new MongoId( + "668670432b934a68630a7fe8" + ); + public static readonly MongoId BARREL_UZI_PRO_9X19_PIKE_ARMS_114MM_THREADED = new MongoId( + "668031705014e211b4078046" + ); + public static readonly MongoId BARREL_VPO21502_366TKM_600MM = new MongoId( + "5de65547883dde217541644b" + ); + public static readonly MongoId BARREL_VSK94_9X39 = new MongoId("645123013d52156624001fd1"); + public static readonly MongoId BARTER_42_SIGNATURE_BLEND_ENGLISH_TEA = new MongoId( + "5bc9be8fd4351e00334cae6e" + ); + public static readonly MongoId BARTER_6STEN140M_MILITARY_BATTERY = new MongoId( + "5d03794386f77420415576f5" + ); + public static readonly MongoId BARTER_AA_BATTERY = new MongoId("5672cb124bdc2d1a0f8b4568"); + public static readonly MongoId BARTER_ADVANCED_CURRENT_CONVERTER = new MongoId( + "6389c85357baa773a825b356" + ); + public static readonly MongoId BARTER_ALKALINE_CLEANER_FOR_HEAT_EXCHANGERS = new MongoId( + "59faf98186f774067b6be103" + ); + public static readonly MongoId BARTER_ANALOG_THERMOMETER = new MongoId( + "5d1b32c186f774252167a530" + ); + public static readonly MongoId BARTER_ANTIQUE_TEAPOT = new MongoId("590de71386f774347051a052"); + public static readonly MongoId BARTER_ANTIQUE_VASE = new MongoId("590de7e986f7741b096e5f32"); + public static readonly MongoId BARTER_APOLLO_SOYUZ_CIGARETTES = new MongoId( + "573475fb24597737fb1379e1" + ); + public static readonly MongoId BARTER_AQUAPEPS_WATER_PURIFICATION_TABLETS = new MongoId( + "6389c6c7dbfd5e4b95197e68" + ); + public static readonly MongoId BARTER_ARAMID_FIBER_FABRIC = new MongoId( + "5e2af4d286f7746d4159f07a" + ); + public static readonly MongoId BARTER_AWL = new MongoId("62a0a098de7ac8199358053b"); + public static readonly MongoId BARTER_AXEL_PARROT_FIGURINE = new MongoId( + "62a091170b9d3c46de5b6cf2" + ); + public static readonly MongoId BARTER_BATTERED_ANTIQUE_BOOK = new MongoId( + "5bc9c049d4351e44f824d360" + ); + public static readonly MongoId BARTER_BEAR_BUDDY_PLUSH_TOY = new MongoId( + "62a08f4c4f842e1bd12d9d62" + ); + public static readonly MongoId BARTER_BEAR_OPERATIVE_FIGURINE = new MongoId( + "655c652d60d0ac437100fed7" + ); + public static readonly MongoId BARTER_BOLTS = new MongoId("57347c5b245977448d35f6e1"); + public static readonly MongoId BARTER_BOTTLE_OF_HYDROGEN_PEROXIDE = new MongoId( + "59e361e886f774176c10a2a5" + ); + public static readonly MongoId BARTER_BOTTLE_OF_OLOLO_MULTIVITAMINS = new MongoId( + "62a0a043cf4a99369e2624a5" + ); + public static readonly MongoId BARTER_BOTTLE_OF_SALINE_SOLUTION = new MongoId( + "59e3606886f77417674759a5" + ); + public static readonly MongoId BARTER_BROKEN_GPHONE_SMARTPHONE = new MongoId( + "56742c324bdc2d150f8b456d" + ); + public static readonly MongoId BARTER_BROKEN_GPHONE_X_SMARTPHONE = new MongoId( + "5c1265fc86f7743f896a21c2" + ); + public static readonly MongoId BARTER_BROKEN_LCD = new MongoId("5d1b309586f77425227d1676"); + public static readonly MongoId BARTER_BRONZE_LION_FIGURINE = new MongoId( + "59e3639286f7741777737013" + ); + public static readonly MongoId BARTER_BULBEX_CABLE_CUTTER = new MongoId( + "619cbfeb6b8a1b37a54eebfa" + ); + public static readonly MongoId BARTER_BUNDLE_OF_WIRES = new MongoId("5c06779c86f77426e00dd782"); + public static readonly MongoId BARTER_CAN_OF_DR_LUPOS_COFFEE_BEANS = new MongoId( + "5e54f6af86f7742199090bf3" + ); + public static readonly MongoId BARTER_CAN_OF_MAJAICA_COFFEE_BEANS = new MongoId( + "5af0484c86f7740f02001f7f" + ); + public static readonly MongoId BARTER_CAN_OF_THERMITE = new MongoId("60391a8b3364dc22b04d0ce5"); + public static readonly MongoId BARTER_CAN_OF_WHITE_SALT = new MongoId( + "62a09ee4cf4a99369e262453" + ); + public static readonly MongoId BARTER_CAPACITORS = new MongoId("5c06782b86f77426df5407d2"); + public static readonly MongoId BARTER_CAR_BATTERY = new MongoId("5733279d245977289b77ec24"); + public static readonly MongoId BARTER_CASE_KEY = new MongoId("67449b6c89d5e1ddc603f504"); + public static readonly MongoId BARTER_CAT_FIGURINE = new MongoId("59e3658a86f7741776641ac4"); + public static readonly MongoId BARTER_CHAIN_WITH_PROKILL_MEDALLION = new MongoId( + "5c1267ee86f77416ec610f72" + ); + public static readonly MongoId BARTER_CHAINLET = new MongoId("573474f924597738002c6174"); + public static readonly MongoId BARTER_CHRISTMAS_TREE_ORNAMENT_RED = new MongoId( + "5df8a6a186f77412640e2e80" + ); + public static readonly MongoId BARTER_CHRISTMAS_TREE_ORNAMENT_SILVER = new MongoId( + "5df8a72c86f77412640e2e83" + ); + public static readonly MongoId BARTER_CHRISTMAS_TREE_ORNAMENT_VIOLET = new MongoId( + "5df8a77486f77412672a1e3f" + ); + public static readonly MongoId BARTER_CLASSIC_MATCHES = new MongoId("57347b8b24597737dd42e192"); + public static readonly MongoId BARTER_CLIN_WINDOW_CLEANER = new MongoId( + "59e358a886f7741776641ac3" + ); + public static readonly MongoId BARTER_CONSTRUCTION_MEASURING_TAPE = new MongoId( + "590c2c9c86f774245b1f03f2" + ); + public static readonly MongoId BARTER_CONTRABAND_BOX = new MongoId("67408903268737ef6908d432"); + public static readonly MongoId BARTER_CORDURA_POLYAMIDE_FABRIC = new MongoId( + "5e2af41e86f774755a234b67" + ); + public static readonly MongoId BARTER_CORRUGATED_HOSE = new MongoId("59e35cbb86f7741778269d83"); + public static readonly MongoId BARTER_COUNT_BLOODSUCKER_FIGURINE = new MongoId( + "679b9d4b3374fb14f40efe6d" + ); + public static readonly MongoId BARTER_CPU_FAN = new MongoId("5734779624597737e04bf329"); + public static readonly MongoId BARTER_CRICKENT_LIGHTER = new MongoId( + "56742c284bdc2d98058b456d" + ); + public static readonly MongoId BARTER_CULTIST_FIGURINE = new MongoId( + "655c669103999d3c810c025b" + ); + public static readonly MongoId BARTER_CYCLON_RECHARGEABLE_BATTERY = new MongoId( + "5e2aee0a86f774755a234b62" + ); + public static readonly MongoId BARTER_D_SIZE_BATTERY = new MongoId("5672cb304bdc2dc2088b456a"); + public static readonly MongoId BARTER_DAMAGED_HARD_DRIVE = new MongoId( + "590a386e86f77429692b27ab" + ); + public static readonly MongoId BARTER_DEADLYSLOBS_BEARD_OIL = new MongoId( + "5bc9b9ecd4351e3bac122519" + ); + public static readonly MongoId BARTER_DED_MOROZ_FIGURINE = new MongoId( + "655c67ab0d37ca5135388f4b" + ); + public static readonly MongoId BARTER_DEN_FIGURINE = new MongoId("66572b8d80b1cd4b6a67847f"); + public static readonly MongoId BARTER_DISPOSABLE_SYRINGE = new MongoId( + "5d1b3f2d86f774253763b735" + ); + public static readonly MongoId BARTER_DOGTAG_BEAR = new MongoId("59f32bb586f774757e1e8442"); + public static readonly MongoId BARTER_DOGTAG_BEAR_EOD = new MongoId("6662e9aca7e0b43baa3d5f74"); + public static readonly MongoId BARTER_DOGTAG_BEAR_PRESTIGE_1 = new MongoId( + "675dc9d37ae1a8792107ca96" + ); + public static readonly MongoId BARTER_DOGTAG_BEAR_PRESTIGE_2 = new MongoId( + "675dcb0545b1a2d108011b2b" + ); + public static readonly MongoId BARTER_DOGTAG_BEAR_TUE = new MongoId("6662e9cda7e0b43baa3d5f76"); + public static readonly MongoId BARTER_DOGTAG_USEC = new MongoId("59f32c3b86f77472a31742f0"); + public static readonly MongoId BARTER_DOGTAG_USEC_EOD = new MongoId("6662e9f37fa79a6d83730fa0"); + public static readonly MongoId BARTER_DOGTAG_USEC_PRESTIGE_1 = new MongoId( + "6764207f2fa5e32733055c4a" + ); + public static readonly MongoId BARTER_DOGTAG_USEC_PRESTIGE_2 = new MongoId( + "6764202ae307804338014c1a" + ); + public static readonly MongoId BARTER_DOGTAG_USEC_TUE = new MongoId("6662ea05f6259762c56f3189"); + public static readonly MongoId BARTER_DOGTAGT = new MongoId("5b9b9020e7ef6f5716480215"); + public static readonly MongoId BARTER_DRY_FUEL = new MongoId("590a373286f774287540368b"); + public static readonly MongoId BARTER_DUCT_TAPE = new MongoId("57347c1124597737fb1379e3"); + public static readonly MongoId BARTER_DVD_DRIVE = new MongoId("5734781f24597737e04bf32a"); + public static readonly MongoId BARTER_ELECTRIC_DRILL = new MongoId("59e35de086f7741778269d84"); + public static readonly MongoId BARTER_ELECTRIC_MOTOR = new MongoId("5d1b2fa286f77425227d1674"); + public static readonly MongoId BARTER_ELECTRONIC_COMPONENTS = new MongoId( + "6389c70ca33d8c4cdf4932c6" + ); + public static readonly MongoId BARTER_ENERGYSAVING_LAMP = new MongoId( + "590a3cd386f77436f20848cb" + ); + public static readonly MongoId BARTER_EXPEDITIONARY_FUEL_TANK = new MongoId( + "5d1b371186f774253763a656" + ); + public static readonly MongoId BARTER_FARFORWARD_GPS_SIGNAL_AMPLIFIER_UNIT = new MongoId( + "6389c7f115805221fb410466" + ); + public static readonly MongoId BARTER_FIERCE_BLOW_SLEDGEHAMMER = new MongoId( + "63a0b208f444d32d6f03ea1e" + ); + public static readonly MongoId BARTER_FIREKLEAN_GUN_LUBE = new MongoId( + "5bc9b355d4351e6d1509862a" + ); + public static readonly MongoId BARTER_FLAT_SCREWDRIVER = new MongoId( + "5d63d33b86f7746ea9275524" + ); + public static readonly MongoId BARTER_FLAT_SCREWDRIVER_LONG = new MongoId( + "5d4042a986f7743185265463" + ); + public static readonly MongoId BARTER_FLEECE_FABRIC = new MongoId("5e2af47786f7746d404f3aaa"); + public static readonly MongoId BARTER_FP100_FILTER_ABSORBER = new MongoId( + "5d1b2f3f86f774252167a52c" + ); + public static readonly MongoId BARTER_FUEL_CONDITIONER = new MongoId( + "5b43575a86f77424f443fe62" + ); + public static readonly MongoId BARTER_GARY_ZONT_PORTABLE_ELECTRONIC_WARFARE_DEVICE = + new MongoId("66d9f8744827a77e870ecaf1"); + public static readonly MongoId BARTER_GAS_ANALYZER = new MongoId("590a3efd86f77437d351a25b"); + public static readonly MongoId BARTER_GAS_MASK_AIR_FILTER = new MongoId( + "590c595c86f7747884343ad7" + ); + public static readonly MongoId BARTER_GEIGERMULLER_COUNTER = new MongoId( + "5672cb724bdc2dc2088b456b" + ); + public static readonly MongoId BARTER_GOLD_SKULL_RING = new MongoId("5d235a5986f77443f6329bc6"); + public static readonly MongoId BARTER_GOLDEN_1GPHONE_SMARTPHONE = new MongoId( + "5bc9b720d4351e450201234b" + ); + public static readonly MongoId BARTER_GOLDEN_EGG = new MongoId("62a09cfe4f842e1bd12da3e4"); + public static readonly MongoId BARTER_GOLDEN_NECK_CHAIN = new MongoId( + "5734758f24597738025ee253" + ); + public static readonly MongoId BARTER_GOLDEN_ROOSTER_FIGURINE = new MongoId( + "5bc9bc53d4351e00367fbcee" + ); + public static readonly MongoId BARTER_GRAPHICS_CARD = new MongoId("57347ca924597744596b4e71"); + public static readonly MongoId BARTER_GREENBAT_LITHIUM_BATTERY = new MongoId( + "5e2aedd986f7746d404f3aa4" + ); + public static readonly MongoId BARTER_GUNPOWDER_EAGLE = new MongoId("5d6fc78386f77449d825f9dc"); + public static readonly MongoId BARTER_GUNPOWDER_HAWK = new MongoId("5d6fc87386f77449db3db94e"); + public static readonly MongoId BARTER_GUNPOWDER_KITE = new MongoId("590c5a7286f7747884343aea"); + public static readonly MongoId BARTER_HAND_DRILL = new MongoId("5d1b317c86f7742523398392"); + public static readonly MongoId BARTER_HORSE_FIGURINE = new MongoId("573478bc24597738002c6175"); + public static readonly MongoId BARTER_HUNTING_MATCHES = new MongoId("5e2af2bc86f7746d3f3c33fc"); + public static readonly MongoId BARTER_INSEQ_GAS_PIPE_WRENCH = new MongoId( + "66b37f114410565a8f6789e2" + ); + public static readonly MongoId BARTER_INSULATING_TAPE = new MongoId("5734795124597738002c6176"); + public static readonly MongoId BARTER_IRIDIUM_MILITARY_THERMAL_VISION_MODULE = new MongoId( + "5d0377ce86f774186372f689" + ); + public static readonly MongoId BARTER_JAR_OF_PICKLES = new MongoId("67586af7036d7f3da60c3612"); + public static readonly MongoId BARTER_KEKTAPE_DUCT_TAPE = new MongoId( + "5e2af29386f7746d4159f077" + ); + public static readonly MongoId BARTER_KILLA_FIGURINE = new MongoId("66572c82ad599021091c6118"); + public static readonly MongoId BARTER_KOSA_UAV_ELECTRONIC_JAMMING_DEVICE = new MongoId( + "66d9f7e7099cf6adcc07a369" + ); + public static readonly MongoId BARTER_LEDX_SKIN_TRANSILLUMINATOR = new MongoId( + "5c0530ee86f774697952d952" + ); + public static readonly MongoId BARTER_LEGA_MEDAL = new MongoId("6656560053eaaa7a23349c86"); + public static readonly MongoId BARTER_LIGHT_BULB = new MongoId("5d1b392c86f77425243e98fe"); + public static readonly MongoId BARTER_LOCKED_CASE = new MongoId("6740987b89d5e1ddc603f4f0"); + public static readonly MongoId BARTER_LOCKED_EQUIPMENT_CRATE_BATTLEPASS_0 = new MongoId( + "67cad1ec19b006e9e50f44d6" + ); + public static readonly MongoId BARTER_LOCKED_EQUIPMENT_CRATE_COMMON = new MongoId( + "66588b514de4820934746dc6" + ); + public static readonly MongoId BARTER_LOCKED_EQUIPMENT_CRATE_EPIC = new MongoId( + "6658285190486915542256c4" + ); + public static readonly MongoId BARTER_LOCKED_EQUIPMENT_CRATE_RARE = new MongoId( + "66571bf06a723f7f005a0619" + ); + public static readonly MongoId BARTER_LOCKED_SUPPLY_CRATE_COMMON = new MongoId( + "66588ba291f6e93c4c06efef" + ); + public static readonly MongoId BARTER_LOCKED_SUPPLY_CRATE_EPIC = new MongoId( + "665828c44de4820934746ce4" + ); + public static readonly MongoId BARTER_LOCKED_SUPPLY_CRATE_RARE = new MongoId( + "66572b88ac60f009f270d1dc" + ); + public static readonly MongoId BARTER_LOCKED_VALUABLES_CRATE_COMMON = new MongoId( + "66588bb047fbd536a674240e" + ); + public static readonly MongoId BARTER_LOCKED_VALUABLES_CRATE_EPIC = new MongoId( + "665828f490486915542256c6" + ); + public static readonly MongoId BARTER_LOCKED_VALUABLES_CRATE_RARE = new MongoId( + "66572bb3ac60f009f270d1df" + ); + public static readonly MongoId BARTER_LOCKED_WEAPON_CRATE_COMMON = new MongoId( + "66588b6dcb48a73e674b2649" + ); + public static readonly MongoId BARTER_LOCKED_WEAPON_CRATE_EPIC = new MongoId( + "66582889efd94e2d665b14a2" + ); + public static readonly MongoId BARTER_LOCKED_WEAPON_CRATE_RARE = new MongoId( + "66572b3f6a723f7f005a066c" + ); + public static readonly MongoId BARTER_LOOT_LORD_PLUSHIE = new MongoId( + "60b0f7057897d47c5b04ab94" + ); + public static readonly MongoId BARTER_LVNDMARKS_RAT_POISON = new MongoId( + "60b0f561c4449e4cb624c1d7" + ); + public static readonly MongoId BARTER_MAGNET = new MongoId("590a391c86f774385a33c404"); + public static readonly MongoId BARTER_MALBORO_CIGARETTES = new MongoId( + "573476d324597737da2adc13" + ); + public static readonly MongoId BARTER_MEDICAL_BLOODSET = new MongoId( + "5b4335ba86f7744d2837a264" + ); + public static readonly MongoId BARTER_MEDICAL_TOOLS = new MongoId("619cc01e0a7c3a1a2731940c"); + public static readonly MongoId BARTER_METAL_CUTTING_SCISSORS = new MongoId( + "5d40419286f774318526545f" + ); + public static readonly MongoId BARTER_METAL_FUEL_TANK = new MongoId("5d1b36a186f7742523398433"); + public static readonly MongoId BARTER_METAL_SPARE_PARTS = new MongoId( + "61bf7b6302b3924be92fa8c3" + ); + public static readonly MongoId BARTER_MICROCONTROLLER_BOARD = new MongoId( + "6389c7750ef44505c87f5996" + ); + public static readonly MongoId BARTER_MILITARY_CABLE = new MongoId("5d0375ff86f774186372f685"); + public static readonly MongoId BARTER_MILITARY_CIRCUIT_BOARD = new MongoId( + "5d0376a486f7747d8050965c" + ); + public static readonly MongoId BARTER_MILITARY_COFDM_WIRELESS_SIGNAL_TRANSMITTER = new MongoId( + "5c052f6886f7746b1e3db148" + ); + public static readonly MongoId BARTER_MILITARY_CORRUGATED_TUBE = new MongoId( + "619cbf476b8a1b37a54eebf8" + ); + public static readonly MongoId BARTER_MILITARY_GYROTACHOMETER = new MongoId( + "5d03784a86f774203e7e0c4d" + ); + public static readonly MongoId BARTER_MILITARY_POWER_FILTER = new MongoId( + "5d0378d486f77420421a5ff4" + ); + public static readonly MongoId BARTER_MR_KERMANS_CAT_HOLOGRAM = new MongoId( + "6638a5474e92f038531e210e" + ); + public static readonly MongoId BARTER_NAILHEAD_FIGURINE = new MongoId( + "679b9cce4e4ed4b3b40ae5c5" + ); + public static readonly MongoId BARTER_NIPPERS = new MongoId("5d40425986f7743185265461"); + public static readonly MongoId BARTER_NIXXOR_LENS = new MongoId("5d1b2ffd86f77425243e8d17"); + public static readonly MongoId BARTER_OFZ_30X165MM_SHELL = new MongoId( + "5d0379a886f77420407aa271" + ); + public static readonly MongoId BARTER_OLD_FIRESTEEL = new MongoId("5bc9c377d4351e3bac12251b"); + public static readonly MongoId BARTER_OLIVIER_SALAD_BOX = new MongoId( + "67586b7e49c2fa592e0d8ed9" + ); + public static readonly MongoId BARTER_OPHTHALMOSCOPE = new MongoId("5af0534a86f7743b6f354284"); + public static readonly MongoId BARTER_ORTODONTOX_TOOTHPASTE = new MongoId( + "5d4041f086f7743cac3f22a7" + ); + public static readonly MongoId BARTER_OX_BLEACH = new MongoId("59e3556c86f7741776641ac2"); + public static readonly MongoId BARTER_PACK_OF_ARSENIY_BUCKWHEAT = new MongoId( + "6389c6463485cf0eeb260715" + ); + public static readonly MongoId BARTER_PACK_OF_CHLORINE = new MongoId( + "5e2af02c86f7746d420957d4" + ); + public static readonly MongoId BARTER_PACK_OF_NAILS = new MongoId("590c31c586f774245e3141b2"); + public static readonly MongoId BARTER_PACK_OF_SCREWS = new MongoId("59e35ef086f7741777737012"); + public static readonly MongoId BARTER_PACK_OF_SODIUM_BICARBONATE = new MongoId( + "59e35abd86f7741778269d82" + ); + public static readonly MongoId BARTER_PAID_ANTIROACH_SPRAY = new MongoId( + "59e3596386f774176c10a2a2" + ); + public static readonly MongoId BARTER_PARACORD = new MongoId("5c12688486f77426843c7d32"); + public static readonly MongoId BARTER_PC_CPU = new MongoId("573477e124597737dd42e191"); + public static readonly MongoId BARTER_PETYA_CROOKER_FIGURINE = new MongoId( + "679b9d43597ba2ed120c3d44" + ); + public static readonly MongoId BARTER_PHASE_CONTROL_RELAY = new MongoId( + "5d1b313086f77425227d1678" + ); + public static readonly MongoId BARTER_PHASED_ARRAY_ELEMENT = new MongoId( + "5d03775b86f774203e7e0c4b" + ); + public static readonly MongoId BARTER_PHYSICAL_BITCOIN = new MongoId( + "59faff1d86f7746c51718c9c" + ); + public static readonly MongoId BARTER_PIECE_OF_PLEXIGLASS = new MongoId( + "59e366c186f7741778269d85" + ); + public static readonly MongoId BARTER_PILE_OF_MEDS = new MongoId("5d1b3a5d86f774252167ba22"); + public static readonly MongoId BARTER_PIPE_GRIP_WRENCH = new MongoId( + "619cbfccbedcde2f5b3f7bdd" + ); + public static readonly MongoId BARTER_PLIERS = new MongoId("590c2b4386f77425357b6123"); + public static readonly MongoId BARTER_PLIERS_ELITE = new MongoId("5af04b6486f774195a3ebb49"); + public static readonly MongoId BARTER_POINTY_GUY_FIGURINE = new MongoId( + "679b9d6390622daf9708da76" + ); + public static readonly MongoId BARTER_POLITICIAN_MUTKEVICH_FIGURINE = new MongoId( + "655c66e40b2de553b618d4b8" + ); + public static readonly MongoId BARTER_PORTABLE_DEFIBRILLATOR = new MongoId( + "5c052e6986f7746b207bc3c9" + ); + public static readonly MongoId BARTER_PORTABLE_POWERBANK = new MongoId( + "5af0561e86f7745f5f3ad6ac" + ); + public static readonly MongoId BARTER_POWER_CORD = new MongoId("59e36c6f86f774176c10a2a7"); + public static readonly MongoId BARTER_POWER_SUPPLY_UNIT = new MongoId( + "57347c2e24597744902c94a1" + ); + public static readonly MongoId BARTER_PRESS_PASS_ISSUED_FOR_NOICEGUY = new MongoId( + "62a09cb7a04c0c5c6e0a84f8" + ); + public static readonly MongoId BARTER_PRESSURE_GAUGE = new MongoId("5d1b327086f7742525194449"); + public static readonly MongoId BARTER_PRINTED_CIRCUIT_BOARD = new MongoId( + "590a3b0486f7743954552bdb" + ); + public static readonly MongoId BARTER_PRINTER_PAPER = new MongoId("577e1c9d2459773cd707c525"); + public static readonly MongoId BARTER_PROPANE_TANK_5L = new MongoId("59fafb5d86f774067a6f2084"); + public static readonly MongoId BARTER_RADAR_STATION_SPARE_PARTS = new MongoId( + "66d9f7256916142b3b02276e" + ); + public static readonly MongoId BARTER_RADIATOR_HELIX = new MongoId("5d1c774f86f7746d6620f8db"); + public static readonly MongoId BARTER_RAM_STICK = new MongoId("57347baf24597738002c6178"); + public static readonly MongoId BARTER_RATCHET_WRENCH = new MongoId("60391afc25aff57af81f7085"); + public static readonly MongoId BARTER_RAVEN_FIGURINE = new MongoId("5e54f62086f774219b0f1937"); + public static readonly MongoId BARTER_RECHARGEABLE_BATTERY = new MongoId( + "590a358486f77429692b2790" + ); + public static readonly MongoId BARTER_REPELLENT = new MongoId("5e2aef7986f7746d3f3c33f5"); + public static readonly MongoId BARTER_RESHALA_FIGURINE = new MongoId( + "66572be36a723f7f005a066e" + ); + public static readonly MongoId BARTER_RIPSTOP_FABRIC = new MongoId("5e2af4a786f7746d3f3c3400"); + public static readonly MongoId BARTER_ROLER_SUBMARINER_GOLD_WRIST_WATCH = new MongoId( + "59faf7ca86f7740dbe19f6c2" + ); + public static readonly MongoId BARTER_ROUND_PLIERS = new MongoId("5d1b31ce86f7742523398394"); + public static readonly MongoId BARTER_RYZHY_FIGURINE = new MongoId("655c67782a1356436041c9c5"); + public static readonly MongoId BARTER_SCAV_FIGURINE = new MongoId("655c673673a43e23e857aebd"); + public static readonly MongoId BARTER_SCHAMAN_SHAMPOO = new MongoId("5d40412b86f7743cb332ac3a"); + public static readonly MongoId BARTER_SCREW_NUTS = new MongoId("57347c77245977448d35f6e2"); + public static readonly MongoId BARTER_SCREWDRIVER = new MongoId("590c2d8786f774245b1f03f3"); + public static readonly MongoId BARTER_SEALED_BOX = new MongoId("67409848d0b2f8eb9b034db9"); + public static readonly MongoId BARTER_SET_OF_FILES_MASTER = new MongoId( + "62a0a0bb621468534a797ad5" + ); + public static readonly MongoId BARTER_SEWING_KIT = new MongoId("61bf83814088ec1a363d7097"); + public static readonly MongoId BARTER_SHUSTRILO_SEALING_FOAM = new MongoId( + "590c35a486f774273531c822" + ); + public static readonly MongoId BARTER_SHYSHKA_CHRISTMAS_TREE_LIFE_EXTENDER = new MongoId( + "67586c61a0c49554ed0bb4a8" + ); + public static readonly MongoId BARTER_SILICONE_TUBE = new MongoId("5d1b39a386f774252339976f"); + public static readonly MongoId BARTER_SILVER_BADGE = new MongoId("5bc9bdb8d4351e003562b8a1"); + public static readonly MongoId BARTER_SMOKED_CHIMNEY_DRAIN_CLEANER = new MongoId( + "5e2af00086f7746d3f3c33f7" + ); + public static readonly MongoId BARTER_SOAP = new MongoId("5c13cd2486f774072c757944"); + public static readonly MongoId BARTER_SPARK_PLUG = new MongoId("590a3c0a86f774385a33c450"); + public static readonly MongoId BARTER_SPECIAL_40DEGREE_FUEL = new MongoId( + "67586bee39b1b82b0d0f9d06" + ); + public static readonly MongoId BARTER_STRIKE_CIGARETTES = new MongoId( + "5734770f24597738025ee254" + ); + public static readonly MongoId BARTER_SURVL_SURVIVOR_LIGHTER = new MongoId( + "5e2af37686f774755a234b65" + ); + public static readonly MongoId BARTER_TAGILLA_FIGURINE = new MongoId( + "66572cbdad599021091c611a" + ); + public static readonly MongoId BARTER_TAGILLAS_WELDING_MASK_ZABEY_REPLICA = new MongoId( + "67ea616a74f765cefd009fb7" + ); + public static readonly MongoId BARTER_TAMATTHI_KUNAI_KNIFE_REPLICA = new MongoId( + "66b37ea4c5d72b0277488439" + ); + public static readonly MongoId BARTER_TETRIZ_PORTABLE_GAME_CONSOLE = new MongoId( + "5c12620d86f7743f8b198b72" + ); + public static readonly MongoId BARTER_TOILET_PAPER = new MongoId("5c13cef886f774072e618e82"); + public static readonly MongoId BARTER_TOOLSET = new MongoId("590c2e1186f77425357b6124"); + public static readonly MongoId BARTER_TOOTHPASTE = new MongoId("57347c93245977448d35f6e3"); + public static readonly MongoId BARTER_TP200_TNT_BRICK = new MongoId("60391b0fb847c71012789415"); + public static readonly MongoId BARTER_TSHAPED_PLUG = new MongoId("57347cd0245977445a2d6ff1"); + public static readonly MongoId BARTER_TUBE_OF_POXERAM_COLD_WELDING = new MongoId( + "5e2af22086f7746d3f3c33fa" + ); + public static readonly MongoId BARTER_UHF_RFID_READER = new MongoId("5c052fb986f7746b2101e909"); + public static readonly MongoId BARTER_ULTRALINK_SATELLITE_INTERNET_STATION = new MongoId( + "6389c88b33a719183c7f63b6" + ); + public static readonly MongoId BARTER_ULTRAVIOLET_LAMP = new MongoId( + "590a3d9c86f774385926e510" + ); + public static readonly MongoId BARTER_USB_ADAPTER = new MongoId("5909e99886f7740c983b9984"); + public static readonly MongoId BARTER_USEC_OPERATIVE_FIGURINE = new MongoId( + "655c663a6689c676ce57af85" + ); + public static readonly MongoId BARTER_UZRGM_GRENADE_FUZE = new MongoId( + "5e2af51086f7746d3f3c3402" + ); + public static readonly MongoId BARTER_VERITAS_GUITAR_PICK = new MongoId( + "5f745ee30acaeb0d490d8c5b" + ); + public static readonly MongoId BARTER_VIIBIIN_SNEAKER = new MongoId("66b37eb4acff495a29492407"); + public static readonly MongoId BARTER_VIRTEX_PROGRAMMABLE_PROCESSOR = new MongoId( + "5c05308086f7746b2101e90b" + ); + public static readonly MongoId BARTER_VPX_FLASH_STORAGE_MODULE = new MongoId( + "5c05300686f7746dce784e5d" + ); + public static readonly MongoId BARTER_WATER_FILTER = new MongoId("5d1b385e86f774252167b98a"); + public static readonly MongoId BARTER_WD40_100ML = new MongoId("590c5bbd86f774785762df04"); + public static readonly MongoId BARTER_WD40_400ML = new MongoId("590c5c9f86f77477c91c36e7"); + public static readonly MongoId BARTER_WEAPON_PARTS = new MongoId("5d1c819a86f774771b0acd6c"); + public static readonly MongoId BARTER_WILSTON_CIGARETTES = new MongoId( + "573476f124597737e04bf328" + ); + public static readonly MongoId BARTER_WOODEN_CLOCK = new MongoId("59e3647686f774176a362507"); + public static readonly MongoId BARTER_WORKING_LCD = new MongoId("5d1b304286f774253763a528"); + public static readonly MongoId BARTER_WRENCH = new MongoId("590c311186f77424d1667482"); + public static readonly MongoId BARTER_XENOALIEN_FIGURINE = new MongoId( + "679b9d55708cfcb2060b9ae3" + ); + public static readonly MongoId BARTER_XENOMORPH_SEALING_FOAM = new MongoId( + "590c346786f77423e50ed342" + ); + public static readonly MongoId BARTER_ZIBBO_LIGHTER = new MongoId("56742c2e4bdc2d95058b456d"); + public static readonly MongoId BIPOD_ALL_TEST = new MongoId("665745c8a3c672c7b00bb355"); + public static readonly MongoId BIPOD_BT10_V8_ATLAS = new MongoId("6644920d49817dc7d505ca71"); + public static readonly MongoId BIPOD_HARRIS_SBRM_69 = new MongoId("5888961624597754281f93f3"); + public static readonly MongoId BIPOD_HK_G36 = new MongoId("622b397c9a3d4327e41843b6"); + public static readonly MongoId BIPOD_M60 = new MongoId("66012d9a3dff5074ed002e33"); + public static readonly MongoId BIPOD_PK = new MongoId("6464d870bb2c580352070cc4"); + public static readonly MongoId BIPOD_RPD = new MongoId("6513f037e06849f06c0957d7"); + public static readonly MongoId BIPOD_SV98 = new MongoId("56ea8222d2720b69698b4567"); + public static readonly MongoId BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575ea4cf6a13a7b7100adc4" + ); + public static readonly MongoId BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_COLLAR = new MongoId( + "6575ea719c7cad336508e418" + ); + public static readonly MongoId BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575ea3060703324250610da" + ); + public static readonly MongoId BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_GROIN_FRONT = + new MongoId("6575ea7c60703324250610e2"); + public static readonly MongoId BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_LEFT_SIDE = + new MongoId("6575ea5cf6a13a7b7100adc8"); + public static readonly MongoId BUILTININSERTS_6B13_KILLA_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6575ea6760703324250610de"); + public static readonly MongoId BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "654a8976f414fcea4004d78b" + ); + public static readonly MongoId BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_COLLAR = new MongoId( + "654a8ae00337d53f9102c2aa" + ); + public static readonly MongoId BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "654a8b0b0337d53f9102c2ae" + ); + public static readonly MongoId BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_GROIN = new MongoId( + "654a8bc5f414fcea4004d79b" + ); + public static readonly MongoId BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "654a8b3df414fcea4004d78f" + ); + public static readonly MongoId BUILTININSERTS_6B13_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = new MongoId( + "654a8b80f414fcea4004d797" + ); + public static readonly MongoId BUILTININSERTS_6B2_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "656fd89bf5a9631d4e042575" + ); + public static readonly MongoId BUILTININSERTS_6B2_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "656fd7c32668ef0402028fb9" + ); + public static readonly MongoId BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6571baa74cb80d995d0a1490" + ); + public static readonly MongoId BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_COLLAR = new MongoId( + "6571babb4076795e5e07383f" + ); + public static readonly MongoId BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "6571b27a6d84a2b8b6007f92" + ); + public static readonly MongoId BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_GROIN_BACK = new MongoId( + "6571babf4cb80d995d0a1494" + ); + public static readonly MongoId BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_GROIN_FRONT = new MongoId( + "6571bac34076795e5e073843" + ); + public static readonly MongoId BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "6571baac6d84a2b8b6007fa3" + ); + public static readonly MongoId BUILTININSERTS_6B231_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = new MongoId( + "6571bab0f41985531a038091" + ); + public static readonly MongoId BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6570800612755ae0d907acf8" + ); + public static readonly MongoId BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_COLLAR = new MongoId( + "657080ca12755ae0d907ad5e" + ); + public static readonly MongoId BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "65707fc348c7a887f2010432" + ); + public static readonly MongoId BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_GROIN_BACK = new MongoId( + "65708165696fe382cf073255" + ); + public static readonly MongoId BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_GROIN_FRONT = new MongoId( + "65708122f65e2491bf009755" + ); + public static readonly MongoId BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_LEFT = new MongoId( + "65708070f65e2491bf00972c" + ); + public static readonly MongoId BUILTININSERTS_6B232_LEVEL2_SOFT_ARMOR_RIGHT = new MongoId( + "657080a212755ae0d907ad04" + ); + public static readonly MongoId BUILTININSERTS_6B3TM_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "65764fae2bc38ef78e07648d" + ); + public static readonly MongoId BUILTININSERTS_6B3TM_LEVEL2_SOFT_ARMOR_GROIN_BACK = new MongoId( + "6576500f526e320fbe03577f" + ); + public static readonly MongoId BUILTININSERTS_6B3TM_LEVEL4_SOFT_ARMOR_FRONT = new MongoId( + "65764e1e2bc38ef78e076489" + ); + public static readonly MongoId BUILTININSERTS_6B3TM_LEVEL4_SOFT_ARMOR_GROIN_FRONT = new MongoId( + "6576504b526e320fbe035783" + ); + public static readonly MongoId BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575ce45dc9932aed601c616" + ); + public static readonly MongoId BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_COLLAR = new MongoId( + "6575ce6f16c2762fba005806" + ); + public static readonly MongoId BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575ce3716c2762fba0057fd" + ); + public static readonly MongoId BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_GROIN_FRONT = + new MongoId("6575ce8bdc9932aed601c61e"); + public static readonly MongoId BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_LEFT_ARM = new MongoId( + "6575ce9db15fef3dd4051628" + ); + public static readonly MongoId BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "6575ce5016c2762fba005802" + ); + public static readonly MongoId BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_RIGHT_ARM = new MongoId( + "6575cea8b15fef3dd405162c" + ); + public static readonly MongoId BUILTININSERTS_6B43_6A_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6575ce5befc786cd9101a671"); + public static readonly MongoId BUILTININSERTS_6B515_LEVEL2_SOFT_ARMOR_COLLAR = new MongoId( + "65708afe4a747dbb63005eee" + ); + public static readonly MongoId BUILTININSERTS_6B515_LEVEL4_SOFT_ARMOR_BACK = new MongoId( + "6570880f4a747dbb63005ee5" + ); + public static readonly MongoId BUILTININSERTS_6B515_LEVEL4_SOFT_ARMOR_FRONT = new MongoId( + "657087577f6d4590ac0d2109" + ); + public static readonly MongoId BUILTININSERTS_6B515_LEVEL4_SOFT_ARMOR_GROIN = new MongoId( + "65708b4c4a747dbb63005ef3" + ); + public static readonly MongoId BUILTININSERTS_6B516_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "65764bc22bc38ef78e076485" + ); + public static readonly MongoId BUILTININSERTS_6B516_LEVEL2_SOFT_ARMOR_COLLAR = new MongoId( + "65764c39526e320fbe035777" + ); + public static readonly MongoId BUILTININSERTS_6B516_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "65764a4cd8537eb26a0355ee" + ); + public static readonly MongoId BUILTININSERTS_6B516_LEVEL3_SOFT_ARMOR_GROIN = new MongoId( + "65764c6b526e320fbe03577b" + ); + public static readonly MongoId BUILTININSERTS_ADEPT_NEOSTEEL_LEVEL4_HELMET_ARMOR_NAPE = + new MongoId("657f9ef6c6679fefb3051e1f"); + public static readonly MongoId BUILTININSERTS_ADEPT_NEOSTEEL_LEVEL4_HELMET_ARMOR_TOP = + new MongoId("657f9eb7e9433140ad0baf86"); + public static readonly MongoId BUILTININSERTS_ALTIN_LEVEL5_HELMET_ARMOR_EARS = new MongoId( + "657bc107aab96fccee08be9f" + ); + public static readonly MongoId BUILTININSERTS_ALTIN_LEVEL5_HELMET_ARMOR_NAPE = new MongoId( + "657bc0d8a1c61ee0c303632f" + ); + public static readonly MongoId BUILTININSERTS_ALTIN_LEVEL5_HELMET_ARMOR_TOP = new MongoId( + "657bc06daab96fccee08be9b" + ); + public static readonly MongoId BUILTININSERTS_ANA_M1_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "65730c2213a2f660f60bea96" + ); + public static readonly MongoId BUILTININSERTS_ANA_M1_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "65730c0e292ecadbfa09ad49" + ); + public static readonly MongoId BUILTININSERTS_ANA_M1_LEVEL2_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "65730c2b292ecadbfa09ad50" + ); + public static readonly MongoId BUILTININSERTS_ANA_M1_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = new MongoId( + "65730c35292ecadbfa09ad54" + ); + public static readonly MongoId BUILTININSERTS_ANA_TACT_M2_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6570f71dd67d0309980a7af8" + ); + public static readonly MongoId BUILTININSERTS_ANA_TACT_M2_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6570f6e774d84423df065f21" + ); + public static readonly MongoId BUILTININSERTS_ANA_TACT_M2_LEVEL3_SOFT_ARMOR_LEFT = new MongoId( + "6570f74774d84423df065f25" + ); + public static readonly MongoId BUILTININSERTS_ANA_TACT_M2_LEVEL3_SOFT_ARMOR_RIGHT = new MongoId( + "6570f79c4c65ab77a6015121" + ); + public static readonly MongoId BUILTININSERTS_ARS_CPC_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575ef6bf6a13a7b7100b093" + ); + public static readonly MongoId BUILTININSERTS_ARS_CPC_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575ef599c7cad336508e453" + ); + public static readonly MongoId BUILTININSERTS_ARS_CPC_LEVEL3_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "6575ef78da698a4e980677eb" + ); + public static readonly MongoId BUILTININSERTS_ARS_CPC_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6575ef7f9c7cad336508e457"); + public static readonly MongoId BUILTININSERTS_ARSARMA_A18_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6570e479a6560e4ee50c2b02" + ); + public static readonly MongoId BUILTININSERTS_ARSARMA_A18_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "6570e5100b57c03ec90b970a" + ); + public static readonly MongoId BUILTININSERTS_ARSARMA_A18_LEVEL2_SOFT_ARMOR_LEFT = new MongoId( + "6570e5674cc0d2ab1e05edbb" + ); + public static readonly MongoId BUILTININSERTS_ARSARMA_A18_LEVEL2_SOFT_ARMOR_RIGHT = new MongoId( + "6570e59b0b57c03ec90b970e" + ); + public static readonly MongoId BUILTININSERTS_AVS_MBAV_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575f5e1da698a4e98067869" + ); + public static readonly MongoId BUILTININSERTS_AVS_MBAV_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575f5cbf6a13a7b7100b0bf" + ); + public static readonly MongoId BUILTININSERTS_BAGARII_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "657322a4cea9255e21023651" + ); + public static readonly MongoId BUILTININSERTS_BAGARII_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "657322988c1cc6dcd9098b2d" + ); + public static readonly MongoId BUILTININSERTS_BAGARII_LEVEL3_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "657322acd9d89ff7ac0d961b" + ); + public static readonly MongoId BUILTININSERTS_BAGARII_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("657322b7d9d89ff7ac0d961f"); + public static readonly MongoId BUILTININSERTS_BALLISTICARMORCO_BASTION_LEVEL4_HELMET_ARMOR_NAPE = + new MongoId("66b61ce0c5d72b027748867e"); + public static readonly MongoId BUILTININSERTS_BALLISTICARMORCO_BASTION_LEVEL4_HELMET_ARMOR_TOP = + new MongoId("66b61cfae98be930d701c029"); + public static readonly MongoId BUILTININSERTS_BANSHEE_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6573102b292ecadbfa09b38d" + ); + public static readonly MongoId BUILTININSERTS_BANSHEE_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "6573101e292ecadbfa09b389" + ); + public static readonly MongoId BUILTININSERTS_BANSHEE_LEVEL2_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "65731038292ecadbfa09b391" + ); + public static readonly MongoId BUILTININSERTS_BANSHEE_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("65731045f31d5be00e08a75a"); + public static readonly MongoId BUILTININSERTS_BNTI_LSHZ_2DTM_LEVEL4_HELMET_ARMOR_EARS = + new MongoId("657fa07387e11c61f70bface"); + public static readonly MongoId BUILTININSERTS_BNTI_LSHZ_2DTM_LEVEL4_HELMET_ARMOR_NAPE = + new MongoId("657fa04ac6679fefb3051e24"); + public static readonly MongoId BUILTININSERTS_BNTI_LSHZ_2DTM_LEVEL4_HELMET_ARMOR_TOP = + new MongoId("657fa009d4caf976440afe3a"); + public static readonly MongoId BUILTININSERTS_CLASS_TOR2_LEVEL3_HELMET_ARMOR_EARS = new MongoId( + "657fa186d4caf976440afe42" + ); + public static readonly MongoId BUILTININSERTS_CLASS_TOR2_LEVEL3_HELMET_ARMOR_NAPE = new MongoId( + "657fa168e9433140ad0baf8e" + ); + public static readonly MongoId BUILTININSERTS_CLASS_TOR2_LEVEL3_HELMET_ARMOR_TOP = new MongoId( + "657fa0fcd4caf976440afe3e" + ); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6570fa1f4c65ab77a601512f" + ); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_COLLAR = new MongoId( + "6570fb8f4c65ab77a601514d" + ); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "6570fae34c65ab77a6015146" + ); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_LEFT = new MongoId( + "6570fb22584a51c23e03251f" + ); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_LEFT_ARM = new MongoId( + "6570fbdd74d84423df065f60" + ); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_RIGHT = new MongoId( + "6570fb6ad3eefd23430f8c7c" + ); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_LEVEL2_SOFT_ARMOR_RIGHT_ARM = + new MongoId("6570fc41d3eefd23430f8c83"); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "657333232cc8dfad2c0a3d97" + ); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_COLLAR = new MongoId( + "6573334aca0ca984940a2d5b" + ); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "65733312ca0ca984940a2d53" + ); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_LEFT_ARM = + new MongoId("65733375b7a8d286530e3dd7"); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_LEFT_SIDE = + new MongoId("657333302cc8dfad2c0a3d9b"); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_RIGHT_ARM = + new MongoId("6573337f2cc8dfad2c0a3da7"); + public static readonly MongoId BUILTININSERTS_CQC_MK4A_P_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6573333eca0ca984940a2d57"); + public static readonly MongoId BUILTININSERTS_CRYE_AVS_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6570e87c23c1f638ef0b0ee2" + ); + public static readonly MongoId BUILTININSERTS_CRYE_AVS_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6570e83223c1f638ef0b0ede" + ); + public static readonly MongoId BUILTININSERTS_CRYE_AVS_LEVEL3_SOFT_ARMOR_GROIN = new MongoId( + "6570e90b3a5689d85f08db97" + ); + public static readonly MongoId BUILTININSERTS_CRYE_AVS_LEVEL3_SOFT_ARMOR_LEFT = new MongoId( + "6570e8a623c1f638ef0b0ee6" + ); + public static readonly MongoId BUILTININSERTS_CRYE_AVS_LEVEL3_SOFT_ARMOR_RIGHT = new MongoId( + "6570e8e7ab49e964120b4563" + ); + public static readonly MongoId BUILTININSERTS_CRYE_CPC_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575f25ada698a4e98067836" + ); + public static readonly MongoId BUILTININSERTS_CRYE_CPC_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575f24ff6a13a7b7100b09e" + ); + public static readonly MongoId BUILTININSERTS_CRYE_CPC_LEVEL3_SOFT_ARMOR_LEFT_SIDE = + new MongoId("6575f2649cfdfe416f0399b8"); + public static readonly MongoId BUILTININSERTS_CRYE_CPC_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6575f26d9c7cad336508e480"); + public static readonly MongoId BUILTININSERTS_CRYE_PRECISION_AIRFRAME_LEVEL4_HELMET_ARMOR_NAPE = + new MongoId("657f98fbada5fadd1f07a585"); + public static readonly MongoId BUILTININSERTS_CRYE_PRECISION_AIRFRAME_LEVEL4_HELMET_ARMOR_TOP = + new MongoId("657f9897f4c82973640b235e"); + public static readonly MongoId BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "65732df4d0acf75aea06c87b" + ); + public static readonly MongoId BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_COLLAR = new MongoId( + "65732e215d3a3129fb05f3e1" + ); + public static readonly MongoId BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "65732de75d3a3129fb05f3dd" + ); + public static readonly MongoId BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_GROIN_FRONT = + new MongoId("65732e30dd8739f6440ef383"); + public static readonly MongoId BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_LEFT_SIDE = + new MongoId("65732e05d0acf75aea06c87f"); + public static readonly MongoId BUILTININSERTS_DEFENDER2_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("65732e0f6784ca384b0167ad"); + public static readonly MongoId BUILTININSERTS_DIAMOND_AGE_BASTION_LEVEL4_HELMET_ARMOR_NAPE = + new MongoId("657f9a94ada5fadd1f07a589"); + public static readonly MongoId BUILTININSERTS_DIAMOND_AGE_BASTION_LEVEL4_HELMET_ARMOR_TOP = + new MongoId("657f9a55c6679fefb3051e19"); + public static readonly MongoId BUILTININSERTS_DJETA_PSH97_LEVEL2_HELMET_ARMOR_EARS = + new MongoId("657ba75e23918923cb0df573"); + public static readonly MongoId BUILTININSERTS_DJETA_PSH97_LEVEL2_HELMET_ARMOR_NAPE = + new MongoId("657ba737b7e9ca9a02045bf6"); + public static readonly MongoId BUILTININSERTS_DJETA_PSH97_LEVEL2_HELMET_ARMOR_SHIELD = + new MongoId("658188edf026a90c1708c827"); + public static readonly MongoId BUILTININSERTS_DJETA_PSH97_LEVEL2_HELMET_ARMOR_TOP = new MongoId( + "657ba6c3c6f689d3a205b857" + ); + public static readonly MongoId BUILTININSERTS_DRD_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6572e059371fccfbf909d5dc" + ); + public static readonly MongoId BUILTININSERTS_DRD_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6572e048371fccfbf909d5d8" + ); + public static readonly MongoId BUILTININSERTS_DRD_LEVEL3_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "6572e06219b4b511af012f89" + ); + public static readonly MongoId BUILTININSERTS_DRD_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = new MongoId( + "6572e06819b4b511af012f8d" + ); + public static readonly MongoId BUILTININSERTS_EXFIL_LEVEL4_HELMET_ARMOR_NAPE = new MongoId( + "655200ba0ef76cf7be09d528" + ); + public static readonly MongoId BUILTININSERTS_EXFIL_LEVEL4_HELMET_ARMOR_TOP = new MongoId( + "6551fec55d0cf82e51014288" + ); + public static readonly MongoId BUILTININSERTS_FIREFIGHTER_SHPM_LEVEL2_HELMET_ARMOR_EARS = + new MongoId("657ba8eab7e9ca9a02045bfd"); + public static readonly MongoId BUILTININSERTS_FIREFIGHTER_SHPM_LEVEL2_HELMET_ARMOR_NAPE = + new MongoId("657ba8bccfcf63c951052dab"); + public static readonly MongoId BUILTININSERTS_FIREFIGHTER_SHPM_LEVEL2_HELMET_ARMOR_SHIELD = + new MongoId("65818e4e566d2de69901b1b1"); + public static readonly MongoId BUILTININSERTS_FIREFIGHTER_SHPM_LEVEL2_HELMET_ARMOR_TOP = + new MongoId("657ba85ecfcf63c951052da7"); + public static readonly MongoId BUILTININSERTS_FORT_KIVER_M_LEVEL3_HELMET_ARMOR_EARS = + new MongoId("657baecbc6f689d3a205b863"); + public static readonly MongoId BUILTININSERTS_FORT_KIVER_M_LEVEL3_HELMET_ARMOR_NAPE = + new MongoId("657baeaacfcf63c951052db3"); + public static readonly MongoId BUILTININSERTS_FORT_KIVER_M_LEVEL3_HELMET_ARMOR_TOP = + new MongoId("657bae18b7e9ca9a02045c0a"); + public static readonly MongoId BUILTININSERTS_GALVION_CAIMAN_LEVEL3_HELMET_ARMOR_NAPE = + new MongoId("657bbb31b30eca9763051183"); + public static readonly MongoId BUILTININSERTS_GALVION_CAIMAN_LEVEL3_HELMET_ARMOR_TOP = + new MongoId("657bbad7a1c61ee0c3036323"); + public static readonly MongoId BUILTININSERTS_GJEL_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "657326978c1cc6dcd9098b56" + ); + public static readonly MongoId BUILTININSERTS_GJEL_LEVEL3_SOFT_ARMOR_COLLAR = new MongoId( + "657326bc5d3a3129fb05f36b" + ); + public static readonly MongoId BUILTININSERTS_GJEL_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "65732688d9d89ff7ac0d9c4c" + ); + public static readonly MongoId BUILTININSERTS_GJEL_LEVEL3_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "657326a28c1cc6dcd9098b5a" + ); + public static readonly MongoId BUILTININSERTS_GJEL_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = new MongoId( + "657326b08c1cc6dcd9098b5e" + ); + public static readonly MongoId BUILTININSERTS_HIGHCOM_STRIKER_ACHHC_LEVEL4_HELMET_ARMOR_NAPE = + new MongoId("657f9605f4c82973640b2358"); + public static readonly MongoId BUILTININSERTS_HIGHCOM_STRIKER_ACHHC_LEVEL4_HELMET_ARMOR_TOP = + new MongoId("657f95bff92cd718b701550c"); + public static readonly MongoId BUILTININSERTS_INTERCEPTOR_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6570f35cd67d0309980a7acb" + ); + public static readonly MongoId BUILTININSERTS_INTERCEPTOR_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "6570f30b0921c914bf07964c" + ); + public static readonly MongoId BUILTININSERTS_INTERCEPTOR_LEVEL2_SOFT_ARMOR_LEFT = new MongoId( + "6570f3890b4ae5847f060dad" + ); + public static readonly MongoId BUILTININSERTS_INTERCEPTOR_LEVEL2_SOFT_ARMOR_RIGHT = new MongoId( + "6570f3bb0b4ae5847f060db2" + ); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575c3beefc786cd9101a5ed" + ); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_COLLAR = + new MongoId("6575c3ec52b7f8c76a05ee39"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575c3b3dc9932aed601c5f4" + ); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_LEFT_ARM = + new MongoId("6575c3fd52b7f8c76a05ee3d"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_LEFT_SIDE = + new MongoId("6575c3cdc6700bd6b40e8a90"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_RIGHT_ARM = + new MongoId("6575c40c52b7f8c76a05ee41"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_A_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6575c3dfdc9932aed601c5f8"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575c2be52b7f8c76a05ee25" + ); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_COLLAR = + new MongoId("6575c2e4efc786cd9101a5dd"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575c2adefc786cd9101a5d9" + ); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_GROIN_BACK = + new MongoId("6575c326c6700bd6b40e8a80"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_GROIN_FRONT = + new MongoId("6575c31b52b7f8c76a05ee35"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_LEFT_ARM = + new MongoId("6575c2f7efc786cd9101a5e1"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_LEFT_SIDE = + new MongoId("6575c2cd52b7f8c76a05ee29"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_RIGHT_ARM = + new MongoId("6575c30352b7f8c76a05ee31"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_F_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6575c2d852b7f8c76a05ee2d"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575c34bc6700bd6b40e8a84" + ); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_COLLAR = + new MongoId("6575c373dc9932aed601c5ec"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575c342efc786cd9101a5e5" + ); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_GROIN_BACK = + new MongoId("6575c390efc786cd9101a5e9"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_GROIN_FRONT = + new MongoId("6575c385dc9932aed601c5f0"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_LEFT_SIDE = + new MongoId("6575c35bc6700bd6b40e8a88"); + public static readonly MongoId BUILTININSERTS_IOTV_GEN4_M_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6575c366c6700bd6b40e8a8c"); + public static readonly MongoId BUILTININSERTS_KIRASAN_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "65705c3c14f2ed6d7d0b7738" + ); + public static readonly MongoId BUILTININSERTS_KIRASAN_LEVEL2_SOFT_ARMOR_COLLAR = new MongoId( + "65705cea4916448ae1050897" + ); + public static readonly MongoId BUILTININSERTS_KIRASAN_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "65704de13e7bba58ea0285c8" + ); + public static readonly MongoId BUILTININSERTS_KIRASAN_LEVEL2_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "65705c777260e1139e091408" + ); + public static readonly MongoId BUILTININSERTS_KIRASAN_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("65705cb314f2ed6d7d0b773c"); + public static readonly MongoId BUILTININSERTS_KOLPAK_1S_4ML_LEVEL2_HELMET_ARMOR_EARS = + new MongoId("657ba57af58ba5a62501079e"); + public static readonly MongoId BUILTININSERTS_KOLPAK_1S_4ML_LEVEL2_HELMET_ARMOR_NAPE = + new MongoId("657ba5439ba22f103e08139f"); + public static readonly MongoId BUILTININSERTS_KOLPAK_1S_4ML_LEVEL2_HELMET_ARMOR_TOP = + new MongoId("657ba50c23918923cb0df56c"); + public static readonly MongoId BUILTININSERTS_KORA_KULON_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "657049d23425b19bbc0502f0" + ); + public static readonly MongoId BUILTININSERTS_KORA_KULON_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6570495b45d573133d0d6adb" + ); + public static readonly MongoId BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "65731b4fcea9255e2102360e" + ); + public static readonly MongoId BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_COLLAR = new MongoId( + "65731b666e709cddd001ec43" + ); + public static readonly MongoId BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "65731b46cea9255e2102360a" + ); + public static readonly MongoId BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_GROIN_BACK = + new MongoId("65731b6b6042b0f210020ef6"); + public static readonly MongoId BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_GROIN_FRONT = + new MongoId("65731b716e709cddd001ec47"); + public static readonly MongoId BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_LEFT_SIDE = + new MongoId("65731b576e709cddd001ec3f"); + public static readonly MongoId BUILTININSERTS_KORUNDVM_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("65731b60ff6dc44a7d068c4a"); + public static readonly MongoId BUILTININSERTS_LEVEL2_SOFT_ARMOR_LEFT_ARM = new MongoId( + "654a8b60f414fcea4004d793" + ); + public static readonly MongoId BUILTININSERTS_LEVEL2_SOFT_ARMOR_PLATE_BACK = new MongoId( + "655751db58aa1b6dbd0cc295" + ); + public static readonly MongoId BUILTININSERTS_LEVEL2_SOFT_ARMOR_PLATE_FRONT = new MongoId( + "6557519ac9b1d9bdcb0777e1" + ); + public static readonly MongoId BUILTININSERTS_LEVEL2_SOFT_ARMOR_RIGHT_ARM = new MongoId( + "654a8ba90337d53f9102c2b2" + ); + public static readonly MongoId BUILTININSERTS_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "64ad2d8d7e2fcecf0305533f" + ); + public static readonly MongoId BUILTININSERTS_LEVEL3_SOFT_ARMOR_COLLAR = new MongoId( + "64ad2dd30b9840e4c80c2489" + ); + public static readonly MongoId BUILTININSERTS_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "64ad2dac6f9247c2f4012439" + ); + public static readonly MongoId BUILTININSERTS_LEVEL3_SOFT_ARMOR_LEFT_ARM = new MongoId( + "64afee8e9f589807e30dc68a" + ); + public static readonly MongoId BUILTININSERTS_LEVEL3_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "64ad2dba0b9840e4c80c2485" + ); + public static readonly MongoId BUILTININSERTS_LEVEL3_SOFT_ARMOR_RIGHT_ARM = new MongoId( + "64afeecb977493a0ee026213" + ); + public static readonly MongoId BUILTININSERTS_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = new MongoId( + "64ad2dc66f9247c2f401243d" + ); + public static readonly MongoId BUILTININSERTS_LEVEL3_SOFT_ARMOR_STOMACH = new MongoId( + "64afef49977493a0ee026217" + ); + public static readonly MongoId BUILTININSERTS_LSHZ_LEVEL3_HELMET_ARMOR_NAPE = new MongoId( + "657bb99db30eca976305117f" + ); + public static readonly MongoId BUILTININSERTS_LSHZ_LEVEL3_HELMET_ARMOR_TOP = new MongoId( + "657bb92fa1c61ee0c303631f" + ); + public static readonly MongoId BUILTININSERTS_LSHZ5_VULKAN5_LEVEL6_HELMET_ARMOR_EARS = + new MongoId("657bbefeb30eca9763051189"); + public static readonly MongoId BUILTININSERTS_LSHZ5_VULKAN5_LEVEL6_HELMET_ARMOR_NAPE = + new MongoId("657bbed0aab96fccee08be96"); + public static readonly MongoId BUILTININSERTS_LSHZ5_VULKAN5_LEVEL6_HELMET_ARMOR_TOP = + new MongoId("657bbe73a1c61ee0c303632b"); + public static readonly MongoId BUILTININSERTS_MASKA1SHA_LEVEL4_HELMET_ARMOR_EARS = new MongoId( + "657112fa818110db4600aa6b" + ); + public static readonly MongoId BUILTININSERTS_MASKA1SHA_LEVEL4_HELMET_ARMOR_NAPE = new MongoId( + "6571138e818110db4600aa71" + ); + public static readonly MongoId BUILTININSERTS_MASKA1SHA_LEVEL4_HELMET_ARMOR_TOP = new MongoId( + "6571133d22996eaf11088200" + ); + public static readonly MongoId BUILTININSERTS_MMAC_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6572fc8c9a866b80ab07eb5d" + ); + public static readonly MongoId BUILTININSERTS_MMAC_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "6572fc809a866b80ab07eb59" + ); + public static readonly MongoId BUILTININSERTS_MMAC_LEVEL2_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "6572fc989a866b80ab07eb61" + ); + public static readonly MongoId BUILTININSERTS_MMAC_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = new MongoId( + "6572fca39a866b80ab07eb65" + ); + public static readonly MongoId BUILTININSERTS_MODULE3M_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "65702fe593b7ea9c330f4ce8" + ); + public static readonly MongoId BUILTININSERTS_MODULE3M_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "65702f87722744627e05cdb8" + ); + public static readonly MongoId BUILTININSERTS_MODULE3M_LEVEL2_SOFT_ARMOR_LEFT_SIDE = + new MongoId("6570305d93b7ea9c330f4ced"); + public static readonly MongoId BUILTININSERTS_MODULE3M_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("65703472c9030b928a0a8a78"); + public static readonly MongoId BUILTININSERTS_MSA_GALLET_TC800_LEVEL4_HELMET_ARMOR_NAPE = + new MongoId("657f9cb587e11c61f70bfaca"); + public static readonly MongoId BUILTININSERTS_MSA_GALLET_TC800_LEVEL4_HELMET_ARMOR_TOP = + new MongoId("657f9c78ada5fadd1f07a58d"); + public static readonly MongoId BUILTININSERTS_MSA_TC2001_LEVEL4_HELMET_ARMOR_NAPE = new MongoId( + "657f8b05f4c82973640b2348" + ); + public static readonly MongoId BUILTININSERTS_MSA_TC2001_LEVEL4_HELMET_ARMOR_TOP = new MongoId( + "657f8a8d7db258e5600fe33d" + ); + public static readonly MongoId BUILTININSERTS_MSA_TC2002_LEVEL4_HELMET_ARMOR_NAPE = new MongoId( + "657f8b43f92cd718b70154fb" + ); + public static readonly MongoId BUILTININSERTS_MSA_TC2002_LEVEL4_HELMET_ARMOR_TOP = new MongoId( + "657f8b94f92cd718b70154ff" + ); + public static readonly MongoId BUILTININSERTS_MTEK_FLUX_LEVEL4_HELMET_ARMOR_NAPE = new MongoId( + "676307b4d9ec0af3d9001fa8" + ); + public static readonly MongoId BUILTININSERTS_MTEK_FLUX_LEVEL4_HELMET_ARMOR_TOP = new MongoId( + "676307c004856a0b3c0dfffd" + ); + public static readonly MongoId BUILTININSERTS_MTEK_STRIKE_LEVEL4_HELMET_ARMOR_NAPE = + new MongoId("676307d3d9ec0af3d9001fac"); + public static readonly MongoId BUILTININSERTS_MTEK_STRIKE_LEVEL4_HELMET_ARMOR_TOP = new MongoId( + "676307ded8b241b4f703a3e8" + ); + public static readonly MongoId BUILTININSERTS_NFM_HJELM_LEVEL3_HELMET_ARMOR_NAPE = new MongoId( + "657bbcffbbd440df880b2dd5" + ); + public static readonly MongoId BUILTININSERTS_NFM_HJELM_LEVEL3_HELMET_ARMOR_TOP = new MongoId( + "657bbcc9a1c61ee0c3036327" + ); + public static readonly MongoId BUILTININSERTS_OPS_CORE_FASTMT_LEVEL4_HELMET_ARMOR_NAPE = + new MongoId("657f8f10f4c82973640b2350"); + public static readonly MongoId BUILTININSERTS_OPS_CORE_FASTMT_LEVEL4_HELMET_ARMOR_TOP = + new MongoId("657f8ec5f4c82973640b234c"); + public static readonly MongoId BUILTININSERTS_PACA_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "65703fa06584602f7d057a8e" + ); + public static readonly MongoId BUILTININSERTS_PACA_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "65703d866584602f7d057a8a" + ); + public static readonly MongoId BUILTININSERTS_PACA_LEVEL2_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "65703fe46a912c8b5c03468b" + ); + public static readonly MongoId BUILTININSERTS_PACA_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = new MongoId( + "657040374e67e8ec7a0d261c" + ); + public static readonly MongoId BUILTININSERTS_RATNIK_6B47_LEVEL3_HELMET_ARMOR_EARS = + new MongoId("657babc6f58ba5a6250107a2"); + public static readonly MongoId BUILTININSERTS_RATNIK_6B47_LEVEL3_HELMET_ARMOR_NAPE = + new MongoId("657bab6ec6f689d3a205b85f"); + public static readonly MongoId BUILTININSERTS_RATNIK_6B47_LEVEL3_HELMET_ARMOR_TOP = new MongoId( + "657baaf0b7e9ca9a02045c02" + ); + public static readonly MongoId BUILTININSERTS_RBAV_AF_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6572f1d60103b4a3270332db" + ); + public static readonly MongoId BUILTININSERTS_RBAV_AF_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "6572f1ca4c8d903cc60c874e" + ); + public static readonly MongoId BUILTININSERTS_RBAV_AF_LEVEL2_SOFT_ARMOR_GROIN_FRONT = + new MongoId("6572f1f7ea457732140ce879"); + public static readonly MongoId BUILTININSERTS_RBAV_AF_LEVEL2_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "6572f1e10103b4a3270332df" + ); + public static readonly MongoId BUILTININSERTS_RBAV_AF_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6572f1edea457732140ce875"); + public static readonly MongoId BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575dd519e27f4a85e081146" + ); + public static readonly MongoId BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_COLLAR = new MongoId( + "6575dd769d3a0ddf660b904b" + ); + public static readonly MongoId BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575dd3e9e27f4a85e081142" + ); + public static readonly MongoId BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_GROIN_BACK = + new MongoId("6575dd94945bf78edd04c43c"); + public static readonly MongoId BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_GROIN_FRONT = + new MongoId("6575dd800546f8b1de093df6"); + public static readonly MongoId BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "6575dd64945bf78edd04c438" + ); + public static readonly MongoId BUILTININSERTS_REDUT_M_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6575dd6e9d3a0ddf660b9047"); + public static readonly MongoId BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575d9b8945bf78edd04c427" + ); + public static readonly MongoId BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_COLLAR = new MongoId( + "6575d9d8945bf78edd04c42b" + ); + public static readonly MongoId BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575d9a79e27f4a85e08112d" + ); + public static readonly MongoId BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_GROIN_BACK = + new MongoId("6575d9f816c2762fba00588d"); + public static readonly MongoId BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_GROIN_FRONT = + new MongoId("6575d9e7945bf78edd04c42f"); + public static readonly MongoId BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_LEFT_ARM = new MongoId( + "6575da07945bf78edd04c433" + ); + public static readonly MongoId BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "6575d9c40546f8b1de093dee" + ); + public static readonly MongoId BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_RIGHT_ARM = new MongoId( + "6575da159e27f4a85e081131" + ); + public static readonly MongoId BUILTININSERTS_REDUT_T_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6575d9cf0546f8b1de093df2"); + public static readonly MongoId BUILTININSERTS_RONIN_LEVEL3_HELMET_ARMOR_EARS = new MongoId( + "66bdc2c90b603c26902b2018" + ); + public static readonly MongoId BUILTININSERTS_RONIN_LEVEL3_HELMET_ARMOR_EYES = new MongoId( + "66bdc2d051aa8c345646d03f" + ); + public static readonly MongoId BUILTININSERTS_RONIN_LEVEL3_HELMET_ARMOR_JAW = new MongoId( + "66bdc2d9408f1e66eb4fd957" + ); + public static readonly MongoId BUILTININSERTS_RONIN_LEVEL3_HELMET_ARMOR_NAPE = new MongoId( + "66bdc2e25f17154509115d1e" + ); + public static readonly MongoId BUILTININSERTS_RONIN_LEVEL3_HELMET_ARMOR_TOP = new MongoId( + "66bdc2ea8cbd597c9c2f9360" + ); + public static readonly MongoId BUILTININSERTS_RONIN_LEVEL4_HELMET_ARMOR_EARS = new MongoId( + "65711b706d197c216005b31c" + ); + public static readonly MongoId BUILTININSERTS_RONIN_LEVEL4_HELMET_ARMOR_EYES = new MongoId( + "65711b9b65daf6aa960c9b1b" + ); + public static readonly MongoId BUILTININSERTS_RONIN_LEVEL4_HELMET_ARMOR_JAW = new MongoId( + "65711bc79eb8c145180dbba1" + ); + public static readonly MongoId BUILTININSERTS_RONIN_LEVEL4_HELMET_ARMOR_NAPE = new MongoId( + "65711b489eb8c145180dbb9d" + ); + public static readonly MongoId BUILTININSERTS_RONIN_LEVEL4_HELMET_ARMOR_TOP = new MongoId( + "65711b07a330b8c9060f7b01" + ); + public static readonly MongoId BUILTININSERTS_RYS_T_LEVEL5_HELMET_ARMOR_EARS = new MongoId( + "657bc2e7b30eca976305118d" + ); + public static readonly MongoId BUILTININSERTS_RYS_T_LEVEL5_HELMET_ARMOR_NAPE = new MongoId( + "657bc2c5a1c61ee0c3036333" + ); + public static readonly MongoId BUILTININSERTS_RYS_T_LEVEL5_HELMET_ARMOR_TOP = new MongoId( + "657bc285aab96fccee08bea3" + ); + public static readonly MongoId BUILTININSERTS_SFERAS_SSSH94_LEVEL3_HELMET_ARMOR_EARS = + new MongoId("657bb7d7b30eca9763051176"); + public static readonly MongoId BUILTININSERTS_SFERAS_SSSH94_LEVEL3_HELMET_ARMOR_NAPE = + new MongoId("657bb79ba1c61ee0c303631a"); + public static readonly MongoId BUILTININSERTS_SFERAS_SSSH94_LEVEL3_HELMET_ARMOR_TOP = + new MongoId("657bb70486c7f9ef7a009936"); + public static readonly MongoId BUILTININSERTS_SHLEMOFON_TSH_4ML_LEVEL1_HELMET_ARMOR_EARS = + new MongoId("657ba18923918923cb0df568"); + public static readonly MongoId BUILTININSERTS_SHLEMOFON_TSH_4ML_LEVEL1_HELMET_ARMOR_NAPE = + new MongoId("657ba145e57570b7f80a17ff"); + public static readonly MongoId BUILTININSERTS_SHLEMOFON_TSH_4ML_LEVEL1_HELMET_ARMOR_TOP = + new MongoId("657ba096e57570b7f80a17fb"); + public static readonly MongoId BUILTININSERTS_SLICK_BLACK_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575e72660703324250610c7" + ); + public static readonly MongoId BUILTININSERTS_SLICK_BLACK_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575e71760703324250610c3" + ); + public static readonly MongoId BUILTININSERTS_SSH68_LEVEL3_HELMET_ARMOR_EARS = new MongoId( + "657119fea330b8c9060f7afc" + ); + public static readonly MongoId BUILTININSERTS_SSH68_LEVEL3_HELMET_ARMOR_NAPE = new MongoId( + "657119d49eb8c145180dbb95" + ); + public static readonly MongoId BUILTININSERTS_SSH68_LEVEL3_HELMET_ARMOR_TOP = new MongoId( + "6571199565daf6aa960c9b10" + ); + public static readonly MongoId BUILTININSERTS_STICH_DEFENSE_M2_LEVEL3_SOFT_ARMOR_BACK = + new MongoId("66b8b20c5891c84aab75cb96"); + public static readonly MongoId BUILTININSERTS_STICH_DEFENSE_M2_LEVEL3_SOFT_ARMOR_FRONT = + new MongoId("66b8b217c5d72b02774887b4"); + public static readonly MongoId BUILTININSERTS_STICH_DEFENSE_M2_LEVEL3_SOFT_ARMOR_LEFT_SIDE = + new MongoId("66b8b223a7f72d197e70bed3"); + public static readonly MongoId BUILTININSERTS_STICH_DEFENSE_M2_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("66b8b22b78bbc0200425fb20"); + public static readonly MongoId BUILTININSERTS_STICHPROFI_PCV2_LEVEL2_SOFT_ARMOR_BACK = + new MongoId("66b884eaacff495a29492849"); + public static readonly MongoId BUILTININSERTS_STICHPROFI_PCV2_LEVEL2_SOFT_ARMOR_FRONT = + new MongoId("66b884f4c5d72b02774886eb"); + public static readonly MongoId BUILTININSERTS_STICHPROFI_PCV2_LEVEL2_SOFT_ARMOR_GROIN_FRONT = + new MongoId("66b884fd7994640992013b37"); + public static readonly MongoId BUILTININSERTS_STICHPROFI_PCV2_LEVEL2_SOFT_ARMOR_LEFT_SIDE = + new MongoId("66b8851678bbc0200425fa03"); + public static readonly MongoId BUILTININSERTS_STICHPROFI_PCV2_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("66b88521a7f72d197e70be3b"); + public static readonly MongoId BUILTININSERTS_STRANDHOGG_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6572eb1b04ee6483ef039882" + ); + public static readonly MongoId BUILTININSERTS_STRANDHOGG_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "6572eb0e55beba16bc04079f" + ); + public static readonly MongoId BUILTININSERTS_STRANDHOGG_LEVEL2_SOFT_ARMOR_GROIN_FRONT = + new MongoId("6572eb865b5eac12f10a03ee"); + public static readonly MongoId BUILTININSERTS_STRANDHOGG_LEVEL2_SOFT_ARMOR_LEFT_SIDE = + new MongoId("6572eb3004ee6483ef039886"); + public static readonly MongoId BUILTININSERTS_STRANDHOGG_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6572eb3b04ee6483ef03988a"); + public static readonly MongoId BUILTININSERTS_TAC_KEK_FAST_MT_LEVEL1_HELMET_ARMOR_NAPE = + new MongoId("657ba34b9ba22f103e08139b"); + public static readonly MongoId BUILTININSERTS_TAC_KEK_FAST_MT_LEVEL1_HELMET_ARMOR_TOP = + new MongoId("657ba2eef58ba5a625010798"); + public static readonly MongoId BUILTININSERTS_TACTEC_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575bca0dc9932aed601c5d7" + ); + public static readonly MongoId BUILTININSERTS_TACTEC_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575bc88c6700bd6b40e8a57" + ); + public static readonly MongoId BUILTININSERTS_THORCRV_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6572e52f73c0eabb700109a0" + ); + public static readonly MongoId BUILTININSERTS_THORCRV_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6572e5221b5bc1185508c24f" + ); + public static readonly MongoId BUILTININSERTS_THORCRV_LEVEL3_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "6572e53c73c0eabb700109a4" + ); + public static readonly MongoId BUILTININSERTS_THORCRV_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6572e54873c0eabb700109a8"); + public static readonly MongoId BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6575d56b16c2762fba005818" + ); + public static readonly MongoId BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_COLLAR = new MongoId( + "6575d598b15fef3dd4051678" + ); + public static readonly MongoId BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6575d561b15fef3dd4051670" + ); + public static readonly MongoId BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_GROIN_FRONT = + new MongoId("6575d5a616c2762fba005820"); + public static readonly MongoId BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_LEFT_ARM = + new MongoId("6575d5b316c2762fba005824"); + public static readonly MongoId BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_LEFT_SIDE = + new MongoId("6575d57a16c2762fba00581c"); + public static readonly MongoId BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_RIGHT_ARM = + new MongoId("6575d5bd16c2762fba005828"); + public static readonly MongoId BUILTININSERTS_THORINTCAR_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = + new MongoId("6575d589b15fef3dd4051674"); + public static readonly MongoId BUILTININSERTS_TROOPER_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "6570e0610b57c03ec90b96ef" + ); + public static readonly MongoId BUILTININSERTS_TROOPER_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "6570e025615f54368b04fcb0" + ); + public static readonly MongoId BUILTININSERTS_TV110_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6570df9c615f54368b04fca9" + ); + public static readonly MongoId BUILTININSERTS_TV110_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "6570df294cc0d2ab1e05ed74" + ); + public static readonly MongoId BUILTININSERTS_TV115_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6570658a89fd4926380b7346" + ); + public static readonly MongoId BUILTININSERTS_TV115_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "6570653e89fd4926380b733e" + ); + public static readonly MongoId BUILTININSERTS_ULACH_LEVEL4_HELMET_ARMOR_EARS = new MongoId( + "657112ce22996eaf110881fb" + ); + public static readonly MongoId BUILTININSERTS_ULACH_LEVEL4_HELMET_ARMOR_NAPE = new MongoId( + "657112a4818110db4600aa66" + ); + public static readonly MongoId BUILTININSERTS_ULACH_LEVEL4_HELMET_ARMOR_TOP = new MongoId( + "657112234269e9a568089eac" + ); + public static readonly MongoId BUILTININSERTS_UNTAR_LEVEL3_HELMET_ARMOR_EARS = new MongoId( + "654a9189bcc67a392b056c79" + ); + public static readonly MongoId BUILTININSERTS_UNTAR_LEVEL3_HELMET_ARMOR_NAPE = new MongoId( + "654a91068e1ce698150fd1e2" + ); + public static readonly MongoId BUILTININSERTS_UNTAR_LEVEL3_HELMET_ARMOR_TOP = new MongoId( + "654a90aff4f81a421b0a7c86" + ); + public static readonly MongoId BUILTININSERTS_UNTAR_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "657045741bd9beedc40b7299" + ); + public static readonly MongoId BUILTININSERTS_UNTAR_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "657044e971369562b300ce9b" + ); + public static readonly MongoId BUILTININSERTS_UNTAR_LEVEL3_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "657045b97e80617cee095bda" + ); + public static readonly MongoId BUILTININSERTS_UNTAR_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = new MongoId( + "6570460471369562b300ce9f" + ); + public static readonly MongoId BUILTININSERTS_ZHUK3_LEVEL2_SOFT_ARMOR_BACK = new MongoId( + "6571dbda88ead79fcf091d75" + ); + public static readonly MongoId BUILTININSERTS_ZHUK3_LEVEL2_SOFT_ARMOR_COLLAR = new MongoId( + "6571dbef88ead79fcf091d79" + ); + public static readonly MongoId BUILTININSERTS_ZHUK3_LEVEL2_SOFT_ARMOR_FRONT = new MongoId( + "6571dbd388ead79fcf091d71" + ); + public static readonly MongoId BUILTININSERTS_ZHUK3_LEVEL2_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "6571dbe07c02ae206002502e" + ); + public static readonly MongoId BUILTININSERTS_ZHUK3_LEVEL2_SOFT_ARMOR_RIGHT_SIDE = new MongoId( + "6571dbeaee8ec43d520cf89e" + ); + public static readonly MongoId BUILTININSERTS_ZHUK6_LEVEL3_SOFT_ARMOR_BACK = new MongoId( + "657642b0e6d5dd75f40688a5" + ); + public static readonly MongoId BUILTININSERTS_ZHUK6_LEVEL3_SOFT_ARMOR_COLLAR = new MongoId( + "657643a220cc24d17102b14c" + ); + public static readonly MongoId BUILTININSERTS_ZHUK6_LEVEL3_SOFT_ARMOR_FRONT = new MongoId( + "65764275d8537eb26a0355e9" + ); + public static readonly MongoId BUILTININSERTS_ZHUK6_LEVEL3_SOFT_ARMOR_LEFT_SIDE = new MongoId( + "6576434820cc24d17102b148" + ); + public static readonly MongoId BUILTININSERTS_ZHUK6_LEVEL3_SOFT_ARMOR_RIGHT_SIDE = new MongoId( + "657643732bc38ef78e076477" + ); + public static readonly MongoId BUILTININSERTS_ZSH_1_2M_LEVEL4_HELMET_ARMOR_EARS = new MongoId( + "657f92e7f4c82973640b2354" + ); + public static readonly MongoId BUILTININSERTS_ZSH_1_2M_LEVEL4_HELMET_ARMOR_NAPE = new MongoId( + "657f92acada5fadd1f07a57e" + ); + public static readonly MongoId BUILTININSERTS_ZSH_1_2M_LEVEL4_HELMET_ARMOR_TOP = new MongoId( + "657f925dada5fadd1f07a57a" + ); + public static readonly MongoId CHARGE_AI_AXMC_338_LM_BOLT_ASSEMBLY = new MongoId( + "62811cd7308cb521f87a8f99" + ); + public static readonly MongoId CHARGE_AK_CSS_KNURLED_CHARGING_HANDLE = new MongoId( + "6130ca3fd92c473c77020dbd" + ); + public static readonly MongoId CHARGE_AK_ZENIT_RP1_CHARGING_HANDLE = new MongoId( + "5648ac824bdc2ded0b8b457d" + ); + public static readonly MongoId CHARGE_AR10_KAC_AMBIDEXTROUS_CHARGING_HANDLE = new MongoId( + "5df8e085bb49d91fb446d6a8" + ); + public static readonly MongoId CHARGE_AR10_KAC_CHARGING_HANDLE = new MongoId( + "5df8e053bb49d91fb446d6a6" + ); + public static readonly MongoId CHARGE_AR15_ADAR_215_CHARGING_HANDLE = new MongoId( + "5c0faf68d174af02a96260b8" + ); + public static readonly MongoId CHARGE_AR15_BADGER_ORDNANCE_TACTICAL_CHARGING_HANDLE_LATCH = + new MongoId("56ea7165d2720b6e518b4583"); + public static readonly MongoId CHARGE_AR15_COLT_CHARGING_HANDLE = new MongoId( + "55d44fd14bdc2d962f8b456e" + ); + public static readonly MongoId CHARGE_AR15_DANIEL_DEFENSE_GRIPNRIP_CHARGING_HANDLE = + new MongoId("651bf5617b3b552ef6712cb7"); + public static readonly MongoId CHARGE_AR15_GEISSELE_ACH_CHARGING_HANDLE_DDC = new MongoId( + "5ea16d4d5aad6446a939753d" + ); + public static readonly MongoId CHARGE_AR15_HK_EXTENDED_LATCH_CHARGING_HANDLE = new MongoId( + "5bb20dbcd4351e44f824c04e" + ); + public static readonly MongoId CHARGE_AR15_MAGPUL_BAD_LEVER_BOLT_RELEASE = new MongoId( + "675307301f7c19a9780f2668" + ); + public static readonly MongoId CHARGE_AR15_MASP_INDUSTRIES_AMBIDEXTROUS_BATTLE_CHARGING_HANDLE = + new MongoId("6033749e88382f4fab3fd2c5"); + public static readonly MongoId CHARGE_AR15_RADIAN_WEAPONS_RAPTOR_CHARGING_HANDLE_FDE = + new MongoId("5b2240bf5acfc40dc528af69"); + public static readonly MongoId CHARGE_AR15_RADIAN_WEAPONS_RAPTOR_CHARGING_HANDLE_TUNGSTEN_GREY = + new MongoId("5d44334ba4b9362b346d1948"); + public static readonly MongoId CHARGE_AR15_RAINIER_ARMS_AVALANCHE_MOD2_CHARGING_HANDLE = + new MongoId("5f633ff5c444ce7e3c30a006"); + public static readonly MongoId CHARGE_BENELLI_M3_SUPER_90_CHARGING_HANDLE = new MongoId( + "625ec45bb14d7326ac20f572" + ); + public static readonly MongoId CHARGE_DO_NOT_USEAI_AXMC_762X51MM_BOLT_ASSEMBLY = new MongoId( + "62811d61578c54356d6d67ea" + ); + public static readonly MongoId CHARGE_FN_P90_CHARGING_HANDLE = new MongoId( + "5cc6ea78e4a949000e1ea3c1" + ); + public static readonly MongoId CHARGE_FN_P90_KM_THE_HANDLER_CHARGING_HANDLE = new MongoId( + "5cc6ea85e4a949000e1ea3c3" + ); + public static readonly MongoId CHARGE_FN_SCAR_CHARGING_HANDLE = new MongoId( + "6181688c6c780c1e710c9b04" + ); + public static readonly MongoId CHARGE_HK_MP5_COCKING_HANDLE = new MongoId( + "5926c32286f774616e42de99" + ); + public static readonly MongoId CHARGE_HK_MP5K_COCKING_HANDLE = new MongoId( + "5d2f2d5748f03572ec0c0139" + ); + public static readonly MongoId CHARGE_HK417_E1_EXTENDED_CHARGING_HANDLE = new MongoId( + "61702d8a67085e45ef140b24" + ); + public static readonly MongoId CHARGE_MCX_CHARGING_HANDLE = new MongoId( + "5fbcc640016cce60e8341acc" + ); + public static readonly MongoId CHARGE_MCXSPEAR_CHARGING_HANDLE = new MongoId( + "6529109524cbe3c74a05e5b7" + ); + public static readonly MongoId CHARGE_MK47_AMBIDEXTROUS_CHARGING_HANDLE = new MongoId( + "606587bd6d0bd7580617bacc" + ); + public static readonly MongoId CHARGE_MP9_CHARGING_HANDLE = new MongoId( + "5de922d4b11454561e39239f" + ); + public static readonly MongoId CHARGE_MPX_AMBIDEXTROUS_CHARGING_HANDLE = new MongoId( + "58949edd86f77409483e16a9" + ); + public static readonly MongoId CHARGE_MPX_GEISSELE_SCH_CHARGING_HANDLE = new MongoId( + "5c5db6b32e221600102611a0" + ); + public static readonly MongoId CHARGE_MPX_GEN_2_AMBIDEXTROUS_CHARGING_HANDLE = new MongoId( + "6761492dc53ebe8c0f0a5efe" + ); + public static readonly MongoId CHARGE_MPX_SINGLE_LATCH_CHARGING_HANDLE = new MongoId( + "58949fac86f77409483e16aa" + ); + public static readonly MongoId CHARGE_SAKO_TRG_M10_338_LM_BOLT_ASSEMBLY = new MongoId( + "673cb4054ff4aa8f86076f4a" + ); + public static readonly MongoId CHARGE_STEYR_AUG_A1_CHARGING_HANDLE = new MongoId( + "62e7c880f68e7a0676050c7c" + ); + public static readonly MongoId CHARGE_STEYR_AUG_A3_CHARGING_HANDLE = new MongoId( + "62ebbc53e3c1e1ec7c02c44f" + ); + public static readonly MongoId COLLIMATOR_AIMPOINT_COMPM4_REFLEX_SIGHT = new MongoId( + "5c7d55de2e221644f31bff68" + ); + public static readonly MongoId COLLIMATOR_AIMPOINT_PRO_REFLEX_SIGHT = new MongoId( + "61659f79d92c473c770213ee" + ); + public static readonly MongoId COLLIMATOR_AXION_KOBRA_EKP1S03_REFLEX_SIGHT_DOVETAIL = + new MongoId("6544d4187c5457729210d277"); + public static readonly MongoId COLLIMATOR_AXION_KOBRA_EKP802_REFLEX_SIGHT_DOVETAIL = + new MongoId("5947db3f86f77447880cf76f"); + public static readonly MongoId COLLIMATOR_AXION_KOBRA_EKP818_REFLEX_SIGHT = new MongoId( + "591c4efa86f7741030027726" + ); + public static readonly MongoId COLLIMATOR_BELOMO_PKAA_DOVETAIL_REFLEX_SIGHT = new MongoId( + "6113d6c3290d254f5e6b27db" + ); + public static readonly MongoId COLLIMATOR_ELCAN_SPECTER_HCO_HOLOGRAPHIC_SIGHT = new MongoId( + "64785e7c19d732620e045e15" + ); + public static readonly MongoId COLLIMATOR_EOTECH_553_HOLOGRAPHIC_SIGHT = new MongoId( + "570fd6c2d2720bc6458b457f" + ); + public static readonly MongoId COLLIMATOR_EOTECH_EXPS30_HOLOGRAPHIC_SIGHT_TAN = new MongoId( + "558022b54bdc2dac148b458d" + ); + public static readonly MongoId COLLIMATOR_EOTECH_HHS1_HYBRID_SIGHT = new MongoId( + "5c07dd120db834001c39092d" + ); + public static readonly MongoId COLLIMATOR_EOTECH_HHS1_HYBRID_SIGHT_TAN = new MongoId( + "5c0a2cec0db834001b7ce47d" + ); + public static readonly MongoId COLLIMATOR_EOTECH_XPS30_HOLOGRAPHIC_SIGHT = new MongoId( + "58491f3324597764bc48fa02" + ); + public static readonly MongoId COLLIMATOR_EOTECH_XPS32_HOLOGRAPHIC_SIGHT = new MongoId( + "584924ec24597768f12ae244" + ); + public static readonly MongoId COLLIMATOR_FN_P90_RING_SIGHT_REFLEX_SIGHT = new MongoId( + "5cebec38d7f00c00110a652a" + ); + public static readonly MongoId COLLIMATOR_HENSOLDT_RV_RED_DOT_SIGHT = new MongoId( + "622efbcb99f4ea1a4d6c9a15" + ); + public static readonly MongoId COLLIMATOR_HOLOSUN_HS401G5_REFLEX_SIGHT = new MongoId( + "5b30b0dc5acfc400153b7124" + ); + public static readonly MongoId COLLIMATOR_KOMZ_RUSAK_REFLEX_SIGHT = new MongoId( + "65f05b9d39dab9e9ec049cfd" + ); + public static readonly MongoId COLLIMATOR_LEAPERS_UTG_REFLEX_SIGHT = new MongoId( + "6165ac8c290d254f5e6b2f6c" + ); + public static readonly MongoId COLLIMATOR_MILKOR_M2A1_GRENADE_LAUNCHER_REFLEX_SIGHT = + new MongoId("6284bd5f95250a29bc628a30"); + public static readonly MongoId COLLIMATOR_NPZ_PK1_OBZOR_DOVETAIL_REFLEX_SIGHT = new MongoId( + "618a5d5852ecee1505530b2a" + ); + public static readonly MongoId COLLIMATOR_OKP7_REFLEX_SIGHT = new MongoId( + "570fd79bd2720bc7458b4583" + ); + public static readonly MongoId COLLIMATOR_OKP7_REFLEX_SIGHT_DOVETAIL = new MongoId( + "57486e672459770abd687134" + ); + public static readonly MongoId COLLIMATOR_SIG_SAUER_ROMEO7_1X30_REFLEX_SIGHT_PROTOTYPE = + new MongoId("6477772ea8a38bb2050ed4db"); + public static readonly MongoId COLLIMATOR_SIG_SAUER_ROMEO8T_REFLEX_SIGHT = new MongoId( + "60a23797a37c940de7062d02" + ); + public static readonly MongoId COLLIMATOR_SR2M_KPSR2_REFLEX_SIGHT = new MongoId( + "62ff9920fe938a24c90c10d2" + ); + public static readonly MongoId COLLIMATOR_TRIJICON_SRS02_REFLEX_SIGHT = new MongoId( + "5d2da1e948f035477b1ce2ba" + ); + public static readonly MongoId COLLIMATOR_VALDAY_KRECHET_REFLEX_SIGHT = new MongoId( + "609a63b6e2ff132951242d09" + ); + public static readonly MongoId COLLIMATOR_VALDAY_PK120_1P87_REFLEX_SIGHT = new MongoId( + "5c0505e00db834001b735073" + ); + public static readonly MongoId COLLIMATOR_VOMZ_PILAD_P1X42_WEAVER_REFLEX_SIGHT = new MongoId( + "584984812459776a704a82a6" + ); + public static readonly MongoId COLLIMATOR_VOMZ_PILAD_TARGETRING_REFLEX_SIGHT = new MongoId( + "609b9e31506cf869cf3eaf41" + ); + public static readonly MongoId COLLIMATOR_VORTEX_RAZOR_AMG_UH1_HOLOGRAPHIC_SIGHT = new MongoId( + "59f9d81586f7744c7506ee62" + ); + public static readonly MongoId COLLIMATOR_WALTHER_MRS_REFLEX_SIGHT = new MongoId( + "570fd721d2720bc5458b4596" + ); + public static readonly MongoId COLLIMATOR_WILCOX_BOSS_XE_REFLEX_SIGHT = new MongoId( + "655f13e0a246670fb0373245" + ); + public static readonly MongoId COMPACTCOLLIMATOR_AIMPOINT_ACRO_P1_REFLEX_SIGHT = new MongoId( + "616442e4faa1272e43152193" + ); + public static readonly MongoId COMPACTCOLLIMATOR_AIMPOINT_MICRO_H2_REFLEX_SIGHT = new MongoId( + "61657230d92c473c770213d7" + ); + public static readonly MongoId COMPACTCOLLIMATOR_AIMPOINT_MICRO_T1_REFLEX_SIGHT = new MongoId( + "58d399e486f77442e0016fe7" + ); + public static readonly MongoId COMPACTCOLLIMATOR_BELOMO_PK06_REFLEX_SIGHT = new MongoId( + "57ae0171245977343c27bfcf" + ); + public static readonly MongoId COMPACTCOLLIMATOR_BURRIS_FASTFIRE_3_REFLEX_SIGHT = new MongoId( + "577d141e24597739c5255e01" + ); + public static readonly MongoId COMPACTCOLLIMATOR_LEUPOLD_DELTAPOINT_REFLEX_SIGHT = new MongoId( + "58d268fc86f774111273f8c2" + ); + public static readonly MongoId COMPACTCOLLIMATOR_SIG_SAUER_ROMEO4_REFLEX_SIGHT = new MongoId( + "5b3116595acfc40019476364" + ); + public static readonly MongoId COMPACTCOLLIMATOR_TRIJICON_RMR_REFLEX_SIGHT = new MongoId( + "5a32aa8bc4a2826c6e06d737" + ); + public static readonly MongoId COMPASS_EYE_MK2_PROFESSIONAL_HANDHELD = new MongoId( + "5f4f9eb969cdc30ff33f09db" + ); + public static readonly MongoId CONTAINER_AMMUNITION_CASE = new MongoId( + "5aafbde786f774389d0cbc0f" + ); + public static readonly MongoId CONTAINER_BALLISTIC_PLATE_CASE = new MongoId( + "67600929bd0a0549d70993f6" + ); + public static readonly MongoId CONTAINER_DOCUMENTS_CASE = new MongoId( + "590c60fc86f77412b13fddcf" + ); + public static readonly MongoId CONTAINER_DOGTAG_CASE = new MongoId("5c093e3486f77430cb02e593"); + public static readonly MongoId CONTAINER_GINGY_KEYCHAIN = new MongoId( + "62a09d3bcf4a99369e262447" + ); + public static readonly MongoId CONTAINER_GRENADE_CASE = new MongoId("5e2af55f86f7746d4159f07c"); + public static readonly MongoId CONTAINER_INJECTOR_CASE = new MongoId( + "619cbf7d23893217ec30b689" + ); + public static readonly MongoId CONTAINER_ITEM_CASE = new MongoId("59fb042886f7746c5005a7b2"); + public static readonly MongoId CONTAINER_KEY_CASE = new MongoId("67d3ed3271c17ff82e0a5b0b"); + public static readonly MongoId CONTAINER_KEY_TOOL = new MongoId("59fafd4b86f7745ca07e1232"); + public static readonly MongoId CONTAINER_KEYCARD_HOLDER_CASE = new MongoId( + "619cbf9e0a7c3a1a2731940a" + ); + public static readonly MongoId CONTAINER_LUCKY_DEVELOPER_JUNKBOX = new MongoId( + "5c0a5f6c86f774753654890e" + ); + public static readonly MongoId CONTAINER_LUCKY_SCAV_JUNK_BOX = new MongoId( + "5b7c710788a4506dec015957" + ); + public static readonly MongoId CONTAINER_MAGAZINE_CASE = new MongoId( + "5c127c4486f7745625356c13" + ); + public static readonly MongoId CONTAINER_MEDICINE_CASE = new MongoId( + "5aafbcd986f7745e590fff23" + ); + public static readonly MongoId CONTAINER_MONEY_CASE = new MongoId("59fb016586f7746d0d4b423a"); + public static readonly MongoId CONTAINER_MR_HOLODILNICK_THERMAL_BAG = new MongoId( + "5c093db286f7740a1b2617e3" + ); + public static readonly MongoId CONTAINER_SICC = new MongoId("5d235bb686f77443f4331278"); + public static readonly MongoId CONTAINER_SIMPLE_WALLET = new MongoId( + "5783c43d2459774bbe137486" + ); + public static readonly MongoId CONTAINER_STREAMER_ITEM_CASE = new MongoId( + "66bc98a01a47be227a5e956e" + ); + public static readonly MongoId CONTAINER_THICC_ITEM_CASE = new MongoId( + "5c0a840b86f7742ffa4f2482" + ); + public static readonly MongoId CONTAINER_THICC_WEAPON_CASE = new MongoId( + "5b6d9ce188a4501afc1b2b25" + ); + public static readonly MongoId CONTAINER_WEAPON_CASE = new MongoId("59fb023c86f7746d0d4b423c"); + public static readonly MongoId CONTAINER_WZ_WALLET = new MongoId("60b0f6c058e0b0481a09ad11"); + public static readonly MongoId CULTISTAMULET_SACRED_AMULET = new MongoId( + "64d0b40fbe2eed70e254e2d4" + ); + public static readonly MongoId DRINK_AQUAMARI_WATER_BOTTLE_WITH_FILTER = new MongoId( + "5c0fa877d174af02a012e1cf" + ); + public static readonly MongoId DRINK_BOTTLE_OF_DAN_JACKIEL_WHISKEY = new MongoId( + "5d403f9186f7743cac3f229b" + ); + public static readonly MongoId DRINK_BOTTLE_OF_FIERCE_HATCHLING_MOONSHINE = new MongoId( + "5d1b376e86f774252519444e" + ); + public static readonly MongoId DRINK_BOTTLE_OF_NORVINSKY_YADRENIY_PREMIUM_KVASS_06L = + new MongoId("5e8f3423fd7471236e6e3b64"); + public static readonly MongoId DRINK_BOTTLE_OF_PEVKO_LIGHT_BEER = new MongoId( + "62a09f32621468534a797acb" + ); + public static readonly MongoId DRINK_BOTTLE_OF_TARKOVSKAYA_VODKA = new MongoId( + "5d40407c86f774318526545a" + ); + public static readonly MongoId DRINK_BOTTLE_OF_TARKOVSKAYA_VODKA_BAD = new MongoId( + "614451b71e5874611e2c7ae5" + ); + public static readonly MongoId DRINK_BOTTLE_OF_WATER_06L = new MongoId( + "5448fee04bdc2dbc018b4567" + ); + public static readonly MongoId DRINK_CAN_OF_HOT_ROD_ENERGY = new MongoId( + "5751496424597720a27126da" + ); + public static readonly MongoId DRINK_CAN_OF_ICE_GREEN_TEA = new MongoId( + "575062b524597720a31c09a1" + ); + public static readonly MongoId DRINK_CAN_OF_MAX_ENERGY_ENERGY = new MongoId( + "5751435d24597720a27126d1" + ); + public static readonly MongoId DRINK_CAN_OF_RATCOLA_SODA = new MongoId( + "60b0f93284c20f0feb453da7" + ); + public static readonly MongoId DRINK_CAN_OF_TARCOLA_SODA = new MongoId( + "57514643245977207f2c2d09" + ); + public static readonly MongoId DRINK_CANISTER_WITH_PURIFIED_WATER = new MongoId( + "5d1b33a686f7742523398398" + ); + public static readonly MongoId DRINK_EMERGENCY_WATER_RATION = new MongoId( + "60098b1705871270cd5352a1" + ); + public static readonly MongoId DRINK_PACK_OF_APPLE_JUICE = new MongoId( + "57513f07245977207e26a311" + ); + public static readonly MongoId DRINK_PACK_OF_GRAND_JUICE = new MongoId( + "57513f9324597720a7128161" + ); + public static readonly MongoId DRINK_PACK_OF_MILK = new MongoId("575146b724597720a27126d5"); + public static readonly MongoId DRINK_PACK_OF_RUSSIAN_ARMY_PINEAPPLE_JUICE = new MongoId( + "544fb62a4bdc2dfb738b4568" + ); + public static readonly MongoId DRINK_PACK_OF_VITA_JUICE = new MongoId( + "57513fcc24597720a31c09a6" + ); + public static readonly MongoId DRUGS_ANALGIN_PAINKILLERS = new MongoId( + "544fb37f4bdc2dee738b4567" + ); + public static readonly MongoId DRUGS_AUGMENTIN_ANTIBIOTIC_PILLS = new MongoId( + "590c695186f7741e566b64a2" + ); + public static readonly MongoId DRUGS_GOLDEN_STAR_BALM = new MongoId("5751a89d24597722aa0e8db0"); + public static readonly MongoId DRUGS_IBUPROFEN_PAINKILLERS = new MongoId( + "5af0548586f7743a532b7e99" + ); + public static readonly MongoId DRUGS_MORPHINE_INJECTOR = new MongoId( + "544fb3f34bdc2d03748b456a" + ); + public static readonly MongoId DRUGS_VASELINE_BALM = new MongoId("5755383e24597772cb798966"); + public static readonly MongoId FACECOVER_ARENA_CUP_SERIES_BALACLAVA = new MongoId( + "67f90180f07898267b0a4ed7" + ); + public static readonly MongoId FACECOVER_ASTRONOMER_MASK = new MongoId( + "67602a39c8e72a73250de739" + ); + public static readonly MongoId FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_DEMON = new MongoId( + "67a5c61c7f52620c5b05b4d8" + ); + public static readonly MongoId FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_EL_DA_DE_MUERTOS = + new MongoId("67a5c657782ce4655104db16"); + public static readonly MongoId FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_SCARS = new MongoId( + "67a5c5df782ce4655104db14" + ); + public static readonly MongoId FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_SKULL = new MongoId( + "67a5c6068fcd9fb73f0752cf" + ); + public static readonly MongoId FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_SMILE = new MongoId( + "67a4b71ad3228756b6088ee2" + ); + public static readonly MongoId FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_STOP_ME = + new MongoId("67a5c5b6dfdf568c9009af66"); + public static readonly MongoId FACECOVER_ATOMIC_DEFENSE_CQCM_BALLISTIC_MASK_TARGET = + new MongoId("67a5c5f37f52620c5b05b4d6"); + public static readonly MongoId FACECOVER_ATOMIC_DEFENSE_CQCM_UP_ARMORED_BALLISTIC_MASK_BLACK = + new MongoId("657089638db3adca1009f4ca"); + public static readonly MongoId FACECOVER_AYBOLIT_MASK = new MongoId("676029e22749de558a0b7e69"); + public static readonly MongoId FACECOVER_BADDIES_RED_BEARD = new MongoId( + "62a09dd4621468534a797ac7" + ); + public static readonly MongoId FACECOVER_BALACLAVA = new MongoId("572b7f1624597762ae139822"); + public static readonly MongoId FACECOVER_BALACLAVA_BORN_TO_DIE = new MongoId( + "67a9cd28cade15e0f00123b6" + ); + public static readonly MongoId FACECOVER_BALACLAVA_DEMON = new MongoId( + "67a9e9e0c185de5a4d0c2a13" + ); + public static readonly MongoId FACECOVER_BALACLAVA_DEV = new MongoId( + "58ac60eb86f77401897560ff" + ); + public static readonly MongoId FACECOVER_BALACLAVA_FEAR = new MongoId( + "67a9ea004fb4a4a8a00d2828" + ); + public static readonly MongoId FACECOVER_BALACLAVA_GREEN = new MongoId( + "67a9cc9cf05be177170bcd76" + ); + public static readonly MongoId FACECOVER_BALACLAVA_LUXURY = new MongoId( + "67a9cd6ecade15e0f00123b8" + ); + public static readonly MongoId FACECOVER_BALACLAVA_NOT_NICE = new MongoId( + "67a9cd381fb22063280728a6" + ); + public static readonly MongoId FACECOVER_BALACLAVA_RED_NOSE = new MongoId( + "67a9e9d04fb4a4a8a00d2826" + ); + public static readonly MongoId FACECOVER_BALACLAVA_RED_ONI = new MongoId( + "67a9ea39de7fb0f19e077da6" + ); + public static readonly MongoId FACECOVER_BALACLAVA_SCARS = new MongoId( + "67a9ccfff05be177170bcd78" + ); + public static readonly MongoId FACECOVER_BALACLAVA_SCRATCHES = new MongoId( + "67a9cd18f05be177170bcd7a" + ); + public static readonly MongoId FACECOVER_BALACLAVA_SKULL = new MongoId( + "67a9e9f09de6826a650ee074" + ); + public static readonly MongoId FACECOVER_BALACLAVA_SMILE = new MongoId( + "67a9ea98de7fb0f19e077da8" + ); + public static readonly MongoId FACECOVER_BALACLAVA_TEST = new MongoId( + "59e8936686f77467ce798647" + ); + public static readonly MongoId FACECOVER_BALACLAVA_WHITE = new MongoId( + "675ac888803644528007b3f6" + ); + public static readonly MongoId FACECOVER_BALACLAVA_WHITE_ONI = new MongoId( + "67a9ea7e4fb4a4a8a00d282a" + ); + public static readonly MongoId FACECOVER_BALACLAVA_YELLOW = new MongoId( + "67a9cd55c2a2d940930aec86" + ); + public static readonly MongoId FACECOVER_BALACLAVA_YELLOW_ONI = new MongoId( + "67a9ea10c185de5a4d0c2a15" + ); + public static readonly MongoId FACECOVER_BIG_PIPES_SMOKING_PIPE = new MongoId( + "62a61bbf8ec41a51b34758d2" + ); + public static readonly MongoId FACECOVER_CIPOLLINO_MASK = new MongoId( + "676029ca2749de558a0b7e67" + ); + public static readonly MongoId FACECOVER_COLD_FEAR_INFRARED_BALACLAVA = new MongoId( + "5ab8f39486f7745cd93a1cca" + ); + public static readonly MongoId FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_DPM_DESERT = new MongoId( + "67a9dccf9de6826a650ee06a" + ); + public static readonly MongoId FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_GREEN = new MongoId( + "67a9dc769de6826a650ee066" + ); + public static readonly MongoId FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_MULTICAM_TROPIC = + new MongoId("67a9dce47faa4210bb0807c8"); + public static readonly MongoId FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_OAK = new MongoId( + "67a9dca99de6826a650ee068" + ); + public static readonly MongoId FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_SBEU = new MongoId( + "67a9dc997faa4210bb0807c6" + ); + public static readonly MongoId FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_SURPAT = new MongoId( + "67a9dcbac185de5a4d0c2a06" + ); + public static readonly MongoId FACECOVER_COLD_FEAR_INFRARED_BALACLAVA_TIGER_STRIPE = + new MongoId("67a9dd619de6826a650ee06c"); + public static readonly MongoId FACECOVER_DEADLY_SKULL_MASK = new MongoId( + "5b432b6c5acfc4001a599bf0" + ); + public static readonly MongoId FACECOVER_DEATH_KNIGHT_MASK = new MongoId( + "62963c18dbc8ab5f0d382d0b" + ); + public static readonly MongoId FACECOVER_DEATH_SHADOW_LIGHTWEIGHT_ARMORED_MASK = new MongoId( + "6570aead4d84f81fd002a033" + ); + public static readonly MongoId FACECOVER_FACELESS_MASK = new MongoId( + "6176a48d732a664031271438" + ); + public static readonly MongoId FACECOVER_FAKE_MUSTACHE = new MongoId( + "5bd073a586f7747e6f135799" + ); + public static readonly MongoId FACECOVER_FAKE_WHITE_BEARD = new MongoId( + "5c1a1e3f2e221602b66cc4c2" + ); + public static readonly MongoId FACECOVER_FOX_MASK = new MongoId("676029f997f19b78f00a0197"); + public static readonly MongoId FACECOVER_GHOST_BALACLAVA = new MongoId( + "5ab8f4ff86f77431c60d91ba" + ); + public static readonly MongoId FACECOVER_GHOST_HALFMASK = new MongoId( + "6571bde39837cc51b800c212" + ); + public static readonly MongoId FACECOVER_GHOUL_MASK = new MongoId("62a5c2c98ec41a51b34739c0"); + public static readonly MongoId FACECOVER_GHOUL_MASK_2 = new MongoId("6176a40f0b8c0312ac75a3d3"); + public static readonly MongoId FACECOVER_GLORIOUS_E_LIGHTWEIGHT_ARMORED_MASK = new MongoId( + "62a09e08de7ac81993580532" + ); + public static readonly MongoId FACECOVER_GP5_GAS_MASK = new MongoId("5b432c305acfc40019478128"); + public static readonly MongoId FACECOVER_GP7_GAS_MASK = new MongoId("60363c0c92ec1c31037959f5"); + public static readonly MongoId FACECOVER_GRINCH_MASK = new MongoId("67602a0f97f19b78f00a0199"); + public static readonly MongoId FACECOVER_HARE_MASK = new MongoId("67602a23c8e72a73250de737"); + public static readonly MongoId FACECOVER_JASON_MASK = new MongoId("5bd071d786f7747e707b93a3"); + public static readonly MongoId FACECOVER_LOWER_HALFMASK = new MongoId( + "572b7fa524597762b747ce82" + ); + public static readonly MongoId FACECOVER_LOWER_HALFMASK_BALACLAVAS = new MongoId( + "67a5fa01fafb8efd440694ba" + ); + public static readonly MongoId FACECOVER_LOWER_HALFMASK_BALACLAVAS_GREEN = new MongoId( + "67a5f9c8fafb8efd440694b8" + ); + public static readonly MongoId FACECOVER_LOWER_HALFMASK_BALACLAVAS_RED = new MongoId( + "67a5f9e7f7041a25760dda38" + ); + public static readonly MongoId FACECOVER_LOWER_HALFMASK_EL_DA_DE_MUERTOS = new MongoId( + "67a5f989f7041a25760dda36" + ); + public static readonly MongoId FACECOVER_LOWER_HALFMASK_MOSS = new MongoId( + "67a5f968fafb8efd440694b6" + ); + public static readonly MongoId FACECOVER_LOWER_HALFMASK_MULTICAM = new MongoId( + "67a5f917dfdf568c9009af6b" + ); + public static readonly MongoId FACECOVER_LOWER_HALFMASK_WRAITH = new MongoId( + "67a5f9a193f7b62b6b0f6576" + ); + public static readonly MongoId FACECOVER_LOWER_HALFMASK_ZOMBIE = new MongoId( + "67a5f94e802d287c670bb966" + ); + public static readonly MongoId FACECOVER_MISHA_MAYOROV_MASK = new MongoId( + "5bd0716d86f774171822ef4b" + ); + public static readonly MongoId FACECOVER_MOMEX_BALACLAVA = new MongoId( + "5b432f3d5acfc4704b4a1dfb" + ); + public static readonly MongoId FACECOVER_NEOPRENE_MASK = new MongoId( + "5b4326435acfc433000ed01d" + ); + public static readonly MongoId FACECOVER_NEOPRENE_MASK_LOUISE_PITTON = new MongoId( + "67aaf82d508ee9b6440e9c46" + ); + public static readonly MongoId FACECOVER_NEOPRENE_MASK_LUCHA_LIBRE = new MongoId( + "67aaf84104dca1c82c071cf6" + ); + public static readonly MongoId FACECOVER_NEOPRENE_MASK_M90_DESERT = new MongoId( + "67aaf808bf7609058606a926" + ); + public static readonly MongoId FACECOVER_NEOPRENE_MASK_ONI = new MongoId( + "67aaf879508ee9b6440e9c48" + ); + public static readonly MongoId FACECOVER_NEOPRENE_MASK_SAY_NOTHING = new MongoId( + "67aaf863de7fb0f19e077db9" + ); + public static readonly MongoId FACECOVER_NEOPRENE_MASK_ZOMBIE = new MongoId( + "67aaf851bf7609058606a928" + ); + public static readonly MongoId FACECOVER_PESTILY_PLAGUE_MASK = new MongoId( + "5e54f79686f7744022011103" + ); + public static readonly MongoId FACECOVER_RESPIRATOR = new MongoId("59e7715586f7742ee5789605"); + public static readonly MongoId FACECOVER_ROOSTER_MASK = new MongoId("676029a6bdead929d40bc368"); + public static readonly MongoId FACECOVER_SHATTERED_LIGHTWEIGHT_ARMORED_MASK = new MongoId( + "5b432b2f5acfc4771e1c6622" + ); + public static readonly MongoId FACECOVER_SHEMAGH_GREEN = new MongoId( + "5ab8f85d86f7745cd93a1cf5" + ); + public static readonly MongoId FACECOVER_SHEMAGH_TAN = new MongoId("5b4325355acfc40019478126"); + public static readonly MongoId FACECOVER_SHROUD_HALFMASK = new MongoId( + "5e54f76986f7740366043752" + ); + public static readonly MongoId FACECOVER_SLENDER_MASK = new MongoId("62a5c41e8ec41a51b34739c3"); + public static readonly MongoId FACECOVER_SLENDER_MASK_2 = new MongoId( + "5bd06f5d86f77427101ad47c" + ); + public static readonly MongoId FACECOVER_SMOKE_BALACLAVA = new MongoId( + "5fd8d28367cb5e077335170f" + ); + public static readonly MongoId FACECOVER_SPOOKY_SKULL_MASK = new MongoId( + "62a5c333ec21e50cad3b5dc6" + ); + public static readonly MongoId FACECOVER_SPOOKY_SKULL_MASK_2 = new MongoId( + "635267ab3c89e2112001f826" + ); + public static readonly MongoId FACECOVER_TAGILLAS_WELDING_MASK_GORILLA = new MongoId( + "60a7ad3a0c5cb24b0134664a" + ); + public static readonly MongoId FACECOVER_TAGILLAS_WELDING_MASK_UBEY = new MongoId( + "60a7ad2a2198820d95707a2e" + ); + public static readonly MongoId FACECOVER_TAGILLAS_WELDING_MASK_ZABEY = new MongoId( + "678f84bb9e85556ca60f0362" + ); + public static readonly MongoId FACECOVER_TWITCH_RIVALS_2020_HALFMASK = new MongoId( + "5e71fad086f77422443d4604" + ); + public static readonly MongoId FACECOVER_TWITCH_RIVALS_2020_MASK = new MongoId( + "5e71f6be86f77429f2683c44" + ); + public static readonly MongoId FACECOVER_TWITCH_RIVALS_2021_BALACLAVA = new MongoId( + "607f201b3c672b3b3a24a800" + ); + public static readonly MongoId FACECOVER_VENGEFUL_ZRYACHIYS_BALACLAVA = new MongoId( + "6530e8587cbfc1e309011e37" + ); + public static readonly MongoId FACECOVER_ZRYACHIYS_BALACLAVA = new MongoId( + "63626d904aa74b8fe30ab426" + ); + public static readonly MongoId FLARE_ROP30_REACTIVE_FLARE_CARTRIDGE_WHITE = new MongoId( + "62178be9d0050232da3485d9" + ); + public static readonly MongoId FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_BLUE = new MongoId( + "66d98233302686954b0c6f81" + ); + public static readonly MongoId FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_FIREWORK = new MongoId( + "675ea3d6312c0a5c4e04e317" + ); + public static readonly MongoId FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_GREEN = new MongoId( + "6217726288ed9f0845317459" + ); + public static readonly MongoId FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_RED = new MongoId( + "62178c4d4ecf221597654e3d" + ); + public static readonly MongoId FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_SPECIAL_YELLOW = + new MongoId("66d9f1abb16d9aacf5068468"); + public static readonly MongoId FLARE_RSP30_REACTIVE_SIGNAL_CARTRIDGE_YELLOW = new MongoId( + "624c0b3340357b5f566e8766" + ); + public static readonly MongoId FLASHHIDER_AI_338_LM_TACTICAL_MUZZLE_BRAKE = new MongoId( + "62812081d23f207deb0ab216" + ); + public static readonly MongoId FLASHHIDER_AK_HEXAGON_REACTOR_545X39_MUZZLE_BRAKE = new MongoId( + "615d8f5dd92c473c770212ef" + ); + public static readonly MongoId FLASHHIDER_AK_LANTAC_DRAKON_762X39_MUZZLE_BRAKE = new MongoId( + "5c878ebb2e2216001219d48a" + ); + public static readonly MongoId FLASHHIDER_AK_SPIKES_TACTICAL_DYNACOMP_762X39_MUZZLE_BRAKECOMPENSATOR = + new MongoId("5a9ea27ca2750c00137fa672"); + public static readonly MongoId FLASHHIDER_AK_SRVV_762X39_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5cc9ad73d7f00c000e2579d4" + ); + public static readonly MongoId FLASHHIDER_AK_VECTOR_VR05T_762X39_MUZZLE_BRAKE = new MongoId( + "64942bfc6ee699f6890dff95" + ); + public static readonly MongoId FLASHHIDER_AK_VENOM_TACTICAL_ANTIDOTE_762X39_MUZZLE_BRAKECOMPENSATOR = + new MongoId("5c7951452e221644f31bfd5c"); + public static readonly MongoId FLASHHIDER_AK_ZENIT_DTK1_762X39545X39_MUZZLE_BRAKECOMPENSATOR = + new MongoId("5649ab884bdc2ded0b8b457f"); + public static readonly MongoId FLASHHIDER_AK101_556X45_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5ac72e615acfc43f67248aa0" + ); + public static readonly MongoId FLASHHIDER_AK102_556X45_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5ac72e725acfc400180ae701" + ); + public static readonly MongoId FLASHHIDER_AK103_762X39_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5ac72e7d5acfc40016339a02" + ); + public static readonly MongoId FLASHHIDER_AK104_762X39_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5ac72e895acfc43b321d4bd5" + ); + public static readonly MongoId FLASHHIDER_AK105_545X39_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5ac72e945acfc43f3b691116" + ); + public static readonly MongoId FLASHHIDER_AK12_545X39_MUZZLE_BRAKE = new MongoId( + "649ec2af961514b22506b10f" + ); + public static readonly MongoId FLASHHIDER_AK74_545X39_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5649aa744bdc2ded0b8b457e" + ); + public static readonly MongoId FLASHHIDER_AK74_PWS_CQB_74_545X39_MUZZLE_BRAKE = new MongoId( + "5943eeeb86f77412d6384f6b" + ); + public static readonly MongoId FLASHHIDER_AK74_SRVV_MBR_JET_545X39_MUZZLE_BRAKE = new MongoId( + "5cc9a96cd7f00c011c04e04a" + ); + public static readonly MongoId FLASHHIDER_AK74_THREAD_TYPE_JMAC_CUSTOMS_RRD4C_MULTICALIBER_MUZZLE_BRAKE = + new MongoId("5f633f791b231926f2329f13"); + public static readonly MongoId FLASHHIDER_AK74M_545X39_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5ac7655e5acfc40016339a19" + ); + public static readonly MongoId FLASHHIDER_AKM_762X39_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "59d64fc686f774171b243fe2" + ); + public static readonly MongoId FLASHHIDER_AKM_THREAD_TYPE_JMAC_CUSTOMS_RRD4C_762X39_MUZZLE_BRAKE = + new MongoId("5f633f68f5750b524b45f112"); + public static readonly MongoId FLASHHIDER_AKML_SYSTEM_762X39_FLASH_HIDER = new MongoId( + "5a0d716f1526d8000d26b1e2" + ); + public static readonly MongoId FLASHHIDER_AKS74U_545X39_MUZZLE_BRAKE = new MongoId( + "57dc324a24597759501edc20" + ); + public static readonly MongoId FLASHHIDER_AR10_2A_ARMANENT_X3_762X51_COMPENSATOR = new MongoId( + "5b7d693d5acfc43bca706a3d" + ); + public static readonly MongoId FLASHHIDER_AR10_AAC_BLACKOUT_51T_762X51_FLASH_HIDER = + new MongoId("5a34fd2bc4a282329a73b4c5"); + public static readonly MongoId FLASHHIDER_AR10_AAC_SCARSD_51T_762X51_FLASH_HIDER = new MongoId( + "618178aa1cb55961fa0fdc80" + ); + public static readonly MongoId FLASHHIDER_AR10_AWC_PSR_762X51_MUZZLE_BRAKE = new MongoId( + "612e0d3767085e45ef14057f" + ); + public static readonly MongoId FLASHHIDER_AR10_CMMG_SV_BRAKE_762X51_MUZZLE_BRAKE = new MongoId( + "6065c6e7132d4d12c81fd8e1" + ); + public static readonly MongoId FLASHHIDER_AR10_DANIEL_DEFENSE_WAVE_762X51_MUZZLE_BRAKE = + new MongoId("5d1f819086f7744b355c219b"); + public static readonly MongoId FLASHHIDER_AR10_DEAD_AIR_KEYMOUNT_762X51_MUZZLE_BRAKE = + new MongoId("628a66b41d5e41750e314f34"); + public static readonly MongoId FLASHHIDER_AR10_DELTATEK_DTKAR10_762X51_MUZZLE_BRAKE = + new MongoId("6642f63667f5cb56a00662eb"); + public static readonly MongoId FLASHHIDER_AR10_DESERT_TECH_762X51_FLASH_HIDER = new MongoId( + "5dcbe965e4ed22586443a79d" + ); + public static readonly MongoId FLASHHIDER_AR10_FORTIS_RED_BRAKE_762X51_MUZZLE_BRAKE = + new MongoId("5d026791d7ad1a04a067ea63"); + public static readonly MongoId FLASHHIDER_AR10_KAC_QDC_762X51_FLASH_SUPPRESSOR_KIT = + new MongoId("5dfa3cd1b33c0951220c079b"); + public static readonly MongoId FLASHHIDER_AR10_KAC_QDC_762X51_MUZZLE_BRAKE_KIT = new MongoId( + "6130c43c67085e45ef1405a1" + ); + public static readonly MongoId FLASHHIDER_AR10_KEENO_ARMS_SHREWD_762X51_MUZZLE_BRAKE = + new MongoId("5cdd7685d7f00c000f260ed2"); + public static readonly MongoId FLASHHIDER_AR10_LANTAC_DRAGON_762X51_MUZZLE_BRAKECOMPENSATOR = + new MongoId("5c878e9d2e2216000f201903"); + public static readonly MongoId FLASHHIDER_AR10_NORDIC_COMPONENTS_CORVETTE_762X51_COMPENSATOR = + new MongoId("5d02677ad7ad1a04a15c0f95"); + public static readonly MongoId FLASHHIDER_AR10_ODIN_WORKS_ATLAS7_762X51_MUZZLE_BRAKE = + new MongoId("5bbdb8bdd4351e4502011460"); + public static readonly MongoId FLASHHIDER_AR10_PRECISION_ARMANENT_M11_SEVEREDUTY_762X51_MUZZLE_BRAKE = + new MongoId("5cdd7693d7f00c0010373aa5"); + public static readonly MongoId FLASHHIDER_AR10_SUREFIRE_PROCOMP_762X51_MUZZLE_BRAKE = + new MongoId("607ffb988900dc2d9a55b6e4"); + public static readonly MongoId FLASHHIDER_AR10_SUREFIRE_WARDEN_762X51_BLAST_REGULATOR = + new MongoId("615d8eb350224f204c1da1cf"); + public static readonly MongoId FLASHHIDER_AR10_TAA_ZK38_762X51_MUZZLE_BRAKE = new MongoId( + "612e0e3c290d254f5e6b291d" + ); + public static readonly MongoId FLASHHIDER_AR10_THUNDER_BEAST_ARMS_30CB_762X51_MUZZLE_BRAKE = + new MongoId("5d443f8fa4b93678dd4a01aa"); + public static readonly MongoId FLASHHIDER_AR15_AAC_BLACKOUT_51T_556X45_FLASH_HIDER = + new MongoId("5c7e5f112e221600106f4ede"); + public static readonly MongoId FLASHHIDER_AR15_ADAR_215_556X45_FLASH_HIDER = new MongoId( + "5c0fafb6d174af02a96260ba" + ); + public static readonly MongoId FLASHHIDER_AR15_AEROKNOX_BUTTERFLY_556X45_MUZZLE_BRAKE = + new MongoId("6405ff6bd4578826ec3e377a"); + public static readonly MongoId FLASHHIDER_AR15_ALIENTECH_556X45_MUZZLE_BRAKE = new MongoId( + "63ac5c9658d0485fc039f0b8" + ); + public static readonly MongoId FLASHHIDER_AR15_AWC_PSR_556X45_MUZZLE_BRAKE = new MongoId( + "612e0cfc8004cc50514c2d9e" + ); + public static readonly MongoId FLASHHIDER_AR15_BULLETEC_ST6012_556X45_MUZZLE_BRAKE = + new MongoId("5cf6937cd7f00c056c53fb39"); + public static readonly MongoId FLASHHIDER_AR15_COLT_USGI_A2_556X45_FLASH_HIDER = new MongoId( + "544a38634bdc2d58388b4568" + ); + public static readonly MongoId FLASHHIDER_AR15_DANIEL_DEFENSE_WAVE_556X45_MUZZLE_BRAKE = + new MongoId("5cff9e5ed7ad1a09407397d4"); + public static readonly MongoId FLASHHIDER_AR15_DELTATEK_DTKM16_556X45_MUZZLE_BRAKE = + new MongoId("664301213dd83ddae20dda18"); + public static readonly MongoId FLASHHIDER_AR15_DESERT_TECH_556X45_FLASH_HIDER = new MongoId( + "5c48a2a42e221602b66d1e07" + ); + public static readonly MongoId FLASHHIDER_AR15_DOUBLESTAR_CARLSON_TAC_COMP_556X45_COMPENSATOR = + new MongoId("6621455e3aceea9e2b0b01e7"); + public static readonly MongoId FLASHHIDER_AR15_FERFRANS_CQB_556X45_MUZZLE_BRAKE = new MongoId( + "5f6372e2865db925d54f3869" + ); + public static readonly MongoId FLASHHIDER_AR15_GRIFFIN_ARMAMENT_GATELOK_HAMMER_556X45_FLASH_HIDER = + new MongoId("6386120cd6baa055ad1e201c"); + public static readonly MongoId FLASHHIDER_AR15_HK_BLITZ_556X45_FLASH_HIDER = new MongoId( + "615d8e2f1cb55961fa0fd9a4" + ); + public static readonly MongoId FLASHHIDER_AR15_KAC_QDC_556X45_3PRONG_FLASH_ELIMINATOR = + new MongoId("626667e87379c44d557b7550"); + public static readonly MongoId FLASHHIDER_AR15_KAC_QDC_556X45_FLASH_SUPPRESSOR_KIT = + new MongoId("56ea8180d2720bf2698b456a"); + public static readonly MongoId FLASHHIDER_AR15_NORDIC_COMPONENTS_CORVETTE_556X45_COMPENSATOR = + new MongoId("5d02676dd7ad1a049e54f6dc"); + public static readonly MongoId FLASHHIDER_AR15_NOVESKE_KX3_556X45_FLASH_HIDER = new MongoId( + "56ea6fafd2720b844b8b4593" + ); + public static readonly MongoId FLASHHIDER_AR15_PWS_CQB_556X45_MUZZLE_BRAKE = new MongoId( + "5943ee5a86f77413872d25ec" + ); + public static readonly MongoId FLASHHIDER_AR15_SAI_JAILBRAKE_556X45_MUZZLE_DEVICE = new MongoId( + "5c78f2882e22165df16b832e" + ); + public static readonly MongoId FLASHHIDER_AR15_SILENCERCO_ASR_556X45_FLASH_HIDER = new MongoId( + "609269c3b0e443224b421cc1" + ); + public static readonly MongoId FLASHHIDER_AR15_SUREFIRE_SF3P_556X45_FLASH_HIDER = new MongoId( + "5c7fb51d2e2216001219ce11" + ); + public static readonly MongoId FLASHHIDER_AR15_SUREFIRE_SF4P_556X45_FLASH_HIDER = new MongoId( + "5ea172e498dacb342978818e" + ); + public static readonly MongoId FLASHHIDER_AR15_SUREFIRE_WARCOMP_556X45_FLASH_HIDER = + new MongoId("5c6d710d2e22165df16b81e7"); + public static readonly MongoId FLASHHIDER_AR15_SUREFIRE_WARDEN_556X45_BLAST_REGULATOR = + new MongoId("62669bccdb9ebb4daa44cd14"); + public static readonly MongoId FLASHHIDER_AR15_TAA_ZK23_556X45_MUZZLE_BRAKE = new MongoId( + "612e0e55a112697a4b3a66e7" + ); + public static readonly MongoId FLASHHIDER_AR15_THUNDER_BEAST_ARMS_223CB_556X45_MUZZLE_BRAKE = + new MongoId("5d440625a4b9361eec4ae6c5"); + public static readonly MongoId FLASHHIDER_AR15_TROY_CLAYMORE_556X45_MUZZLE_BRAKE = new MongoId( + "5cc9b815d7f00c000e2579d6" + ); + public static readonly MongoId FLASHHIDER_AR15_VENDETTA_PRECISION_VP09_INTERCEPTOR_556X45_MUZZLE_BRAKE = + new MongoId("5a7c147ce899ef00150bd8b8"); + public static readonly MongoId FLASHHIDER_AR15_WDR_NERO_556_556X45_MUZZLE_BRAKE = new MongoId( + "64943b74e9998d641b0412ed" + ); + public static readonly MongoId FLASHHIDER_AR15_YANKEE_HILL_PHANTOM_556X45_FLASH_HIDER = + new MongoId("626a74340be03179a165e30c"); + public static readonly MongoId FLASHHIDER_ASE_UTRA_BORELOCK_338_LM_MUZZLE_BRAKE = new MongoId( + "673f3ef1259f5945d70e43a8" + ); + public static readonly MongoId FLASHHIDER_ASH12_127X55_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5caf17c9ae92150b30006be1" + ); + public static readonly MongoId FLASHHIDER_AWC_PSR_338_LM_MUZZLE_BRAKE = new MongoId( + "612e0d81290d254f5e6b291a" + ); + public static readonly MongoId FLASHHIDER_DVL10_762X51_MUZZLE_DEVICE = new MongoId( + "58889c7324597754281f9439" + ); + public static readonly MongoId FLASHHIDER_DVL10_M2_762X51_MUZZLE_BRAKE = new MongoId( + "5888996c24597754281f9419" + ); + public static readonly MongoId FLASHHIDER_FERFRANS_CRD_556X45_CONCUSSION_REDUCTION_DEVICE = + new MongoId("5f6339d53ada5942720e2dc3"); + public static readonly MongoId FLASHHIDER_FN_P90_57X28_FLASH_HIDER = new MongoId( + "5cc82796e24e8d000f5859a8" + ); + public static readonly MongoId FLASHHIDER_FN_SCARL_556X45_FLASH_HIDER = new MongoId( + "618407a850224f204c1da549" + ); + public static readonly MongoId FLASHHIDER_GLOCK_9X19_CARVER_CUSTOM_4_PORT_COMPENSATOR = + new MongoId("5a7ad0c451dfba0013379712"); + public static readonly MongoId FLASHHIDER_GLOCK_9X19_CARVER_CUSTOM_DECELERATOR_3_PORT_COMPENSATOR = + new MongoId("5a7037338dc32e000d46d257"); + public static readonly MongoId FLASHHIDER_GLOCK_9X19_DOUBLE_DIAMOND_FLASH_HIDER = new MongoId( + "5a70366c8dc32e001207fb06" + ); + public static readonly MongoId FLASHHIDER_GLOCK_9X19_LONE_WOLF_ALPHAWOLF_BULLNOSE_COMPENSATOR = + new MongoId("5a705e128dc32e000d46d258"); + public static readonly MongoId FLASHHIDER_GLOCK_9X19_LONE_WOLF_LWDCOMP9_COMPENSATOR = + new MongoId("5a7ad1fb51dfba0013379715"); + public static readonly MongoId FLASHHIDER_GLOCK_9X19_STRIKE_INDUSTRIES_G4_SLIDECOMP_COMPENSATOR = + new MongoId("5a7b32a2e899ef00135e345a"); + public static readonly MongoId FLASHHIDER_HK_G36_556X45_4PRONG_FLASH_HIDER = new MongoId( + "622f128cec80d870d349b4e8" + ); + public static readonly MongoId FLASHHIDER_HK_G36_556X45_FLASH_HIDER = new MongoId( + "622f07cfae33bc505b2c4dd5" + ); + public static readonly MongoId FLASHHIDER_HK_G36C_556X45_4PRONG_FLASH_HIDER = new MongoId( + "622f0ee47762f55aaa68ac87" + ); + public static readonly MongoId FLASHHIDER_HK_MP5_BT_QD_9X19_MUZZLE_BRAKE = new MongoId( + "615d8df08004cc50514c3236" + ); + public static readonly MongoId FLASHHIDER_HK_MP5_NOVESKESTYLE_9X19_MUZZLE_BRAKECOMPENSATOR = + new MongoId("5c07c5ed0db834001b73571c"); + public static readonly MongoId FLASHHIDER_HK_MP7A1_46X30_FLASH_HIDER = new MongoId( + "5ba26acdd4351e003562908e" + ); + public static readonly MongoId FLASHHIDER_HK_PROLONGED_762X51_FLASH_HIDER = new MongoId( + "61713308d92c473c770214a0" + ); + public static readonly MongoId FLASHHIDER_KRISS_VECTOR_45_ACP_FLASH_HIDER = new MongoId( + "5fb65424956329274326f316" + ); + public static readonly MongoId FLASHHIDER_KRISS_VECTOR_9X19_FLASH_HIDER = new MongoId( + "5fbbc3324e8a554c40648348" + ); + public static readonly MongoId FLASHHIDER_LANTAC_BMD_762X51_BLAST_MITIGATION_DEVICE = + new MongoId("5cf78720d7f00c06595bc93e"); + public static readonly MongoId FLASHHIDER_M14_JP_ENTERPRISES_762X51_TACTICAL_COMPENSATOR = + new MongoId("5addbb825acfc408fb139400"); + public static readonly MongoId FLASHHIDER_M14_SMITH_ENTERPRISE_GOOD_IRON_762X51_MUZZLE_BRAKE = + new MongoId("5addbb945acfc4001a5fc44e"); + public static readonly MongoId FLASHHIDER_M14_SMITH_ENTERPRISE_VORTEX_762X51_MUZZLE_BRAKE = + new MongoId("5addbba15acfc400185c2854"); + public static readonly MongoId FLASHHIDER_M14_YANKEE_HILL_PHANTOM_762X51_FLASH_HIDER = + new MongoId("5addbbb25acfc40015621bd9"); + public static readonly MongoId FLASHHIDER_M1911_ANARCHY_OUTDOORS_45_ACP_MUZZLE_BRAKE = + new MongoId("5ef61964ec7f42238c31e0c1"); + public static readonly MongoId FLASHHIDER_M1A_NATIONAL_MATCH_762X51_FLASH_SUPPRESSOR = + new MongoId("5addbb6e5acfc408fb1393fd"); + public static readonly MongoId FLASHHIDER_M1A_SMITH_ENTERPRISE_SOCOM_16_762X51_THREADED_MUZZLE_BRAKE_GAS_BLOCK = + new MongoId("5ab3afb2d8ce87001660304d"); + public static readonly MongoId FLASHHIDER_M1A_SOCOM_16_762X51_MUZZLE_BRAKECOMPENSATOR = + new MongoId("5aafa1c2e5b5b00015042a56"); + public static readonly MongoId FLASHHIDER_M60E3_762X51_FLASH_HIDER = new MongoId( + "6601281fc752a02bbe05e696" + ); + public static readonly MongoId FLASHHIDER_M60E6_762X51_FLASH_HIDER = new MongoId( + "66012a1d3dff5074ed002e2a" + ); + public static readonly MongoId FLASHHIDER_MCXSPEAR_CLUTCHLOK_QD_68X51_SHOULDERED_FLASH_HIDER = + new MongoId("6529113b5ae2ae97b80fdf39"); + public static readonly MongoId FLASHHIDER_MOSIN_RIFLE_TACFIRE_TANKER_STYLE_762X54R_MUZZLE_BRAKE = + new MongoId("5bbdb83fd4351e44f824c44b"); + public static readonly MongoId FLASHHIDER_MOSIN_RIFLE_TEXAS_PRECISION_PRODUCTS_762X54R_MUZZLE_BRAKE = + new MongoId("5bc5a351d4351e003477a414"); + public static readonly MongoId FLASHHIDER_MOSIN_RIFLE_WITT_MACHINE_762X54R_MUZZLE_BRAKE = + new MongoId("5bc5a35cd4351e450201232f"); + public static readonly MongoId FLASHHIDER_MPX_A2_9X19_FLASH_HIDER = new MongoId( + "58949dea86f77409483e16a8" + ); + public static readonly MongoId FLASHHIDER_ORSIS_T5000M_762X51_MUZZLE_BRAKECOMPENSATOR = + new MongoId("5df35e7f2a78646d96665dd4"); + public static readonly MongoId FLASHHIDER_P226_TJS_CUSTOM_9X19_COMPENSATOR = new MongoId( + "5c6beec32e221601da3578f2" + ); + public static readonly MongoId FLASHHIDER_PK_ZENIT_DTK1P_762X54R_MUZZLE_BRAKE = new MongoId( + "6492ef63cfcf7c89e701abf1" + ); + public static readonly MongoId FLASHHIDER_PKM_762X54R_MUZZLE_BRAKE = new MongoId( + "6492efe46cc7e29a6f03b2a0" + ); + public static readonly MongoId FLASHHIDER_PKM_762X54R_SLOTTED_FLASH_HIDER = new MongoId( + "6492efb8cfcf7c89e701abf3" + ); + public static readonly MongoId FLASHHIDER_PP1901_VITYAZ_9X19_MUZZLE_BRAKECOMPENSATOR = + new MongoId("5998597786f77414ea6da093"); + public static readonly MongoId FLASHHIDER_RFB_762X51_FLASH_HIDER = new MongoId( + "5f2aa4559b44de6b1b4e68d1" + ); + public static readonly MongoId FLASHHIDER_RPK16_545X39_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5beec3420db834001b095429" + ); + public static readonly MongoId FLASHHIDER_SA58_3PRONG_TRIDENT_762X51_FLASH_HIDER = new MongoId( + "5b099b7d5acfc400186331e4" + ); + public static readonly MongoId FLASHHIDER_SA58_AUSTRIAN_STYLE_762X51_MUZZLE_BRAKE = new MongoId( + "5b7d68af5acfc400170e30c3" + ); + public static readonly MongoId FLASHHIDER_SAIGA9_9X19_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5998598e86f7740b3f498a86" + ); + public static readonly MongoId FLASHHIDER_SAKO_TRG_2242M10_338_LM_MUZZLE_BRAKE = new MongoId( + "673f4046259f5945d70e43ab" + ); + public static readonly MongoId FLASHHIDER_SAKO_TRG_CORETAC_COREBRAKE_338_LM_MUZZLE_BRAKE = + new MongoId("673f3f9840aeca974e0b5c68"); + public static readonly MongoId FLASHHIDER_SIG_SAUER_762X51_3PRONG_FLASH_HIDER = new MongoId( + "5fbcbcf593164a5b6278efb2" + ); + public static readonly MongoId FLASHHIDER_SIG_SAUER_MICRO_BRAKE_762X51_MUZZLE_BRAKE = + new MongoId("5fbcbd02900b1d5091531dd3"); + public static readonly MongoId FLASHHIDER_SIG_SAUER_TWO_PORT_BRAKE_762X51_MUZZLE_BRAKE = + new MongoId("5fbcbd10ab884124df0cd563"); + public static readonly MongoId FLASHHIDER_SILENCERCO_AC858_ASR_338_LM_MUZZLE_BRAKE = + new MongoId("5fc23636016cce60e8341b05"); + public static readonly MongoId FLASHHIDER_STEYR_AUG_A1_556X45_CLOSED_FLASH_HIDER = new MongoId( + "630f2872911356c17d06abc5" + ); + public static readonly MongoId FLASHHIDER_STEYR_AUG_A3_556X45_CLOSED_FLASH_HIDER = new MongoId( + "630f28f0cadb1fe05e06f004" + ); + public static readonly MongoId FLASHHIDER_STEYR_AUG_A3_556X45_MUZZLE_BRAKE = new MongoId( + "630f291b9f66a28b37094bb8" + ); + public static readonly MongoId FLASHHIDER_STM9_9X19_MUZZLE_BRAKE = new MongoId( + "60337f5dce399e10262255d1" + ); + public static readonly MongoId FLASHHIDER_SV98_762X54R_MUZZLE_DEVICE = new MongoId( + "560e620e4bdc2d724b8b456b" + ); + public static readonly MongoId FLASHHIDER_SV98_762X54R_THREAD_ADAPTER = new MongoId( + "5c4eec9b2e2216398b5aaba2" + ); + public static readonly MongoId FLASHHIDER_SV98_SRVV_MK20_762X54R_MUZZLE_BRAKECOMPENSATOR = + new MongoId("5c4ee3d62e2216152006f302"); + public static readonly MongoId FLASHHIDER_SVDS_762X54R_MUZZLE_BRAKECOMPENSATOR = new MongoId( + "5c471bfc2e221602b21d4e17" + ); + public static readonly MongoId FLASHHIDER_SVT40_762X54R_MUZZLE_BRAKE = new MongoId( + "64119d1f2c6d6f921a0929f8" + ); + public static readonly MongoId FLASHHIDER_TACCOM_CARBINE_BRAKE_9X19_MUZZLE_BRAKE = new MongoId( + "5cf6935bd7f00c06585fb791" + ); + public static readonly MongoId FLASHHIDER_TT_PMLASER_DTKTT_MUZZLE_BRAKECOMPENSATOR = + new MongoId("5bffd7ed0db834001d23ebf9"); + public static readonly MongoId FLASHHIDER_UZI_VENTED_BARREL_SHROUD = new MongoId( + "6699370c57df3e2b4e0a0dab" + ); + public static readonly MongoId FLASHHIDER_VPO136_VEPRKM_762X39_MUZZLE_BRAKECOMPENSATOR = + new MongoId("59e61eb386f77440d64f5daf"); + public static readonly MongoId FLASHHIDER_VPO209_THREAD_PROTECTOR = new MongoId( + "59e8a00d86f7742ad93b569c" + ); + public static readonly MongoId FLASHHIDER_YANKEE_HILL_ANNIHILATOR_MULTICALIBER_FLASH_HIDER = + new MongoId("5b3a16655acfc40016387a2a"); + public static readonly MongoId FLASHLIGHT_ARMYTEK_PREDATOR_PRO_V3_XHP35_HI = new MongoId( + "59d790f486f77403cb06aec6" + ); + public static readonly MongoId FLASHLIGHT_ULTRAFIRE_WF501B = new MongoId( + "57d17c5e2459775a5c57d17d" + ); + public static readonly MongoId FLASHLIGHT_ZENIT_2D = new MongoId("646f62fee779812413011ab7"); + public static readonly MongoId FLYER_ALEX_GREEN_POSTER = new MongoId( + "675a06b84ff23436160d802f" + ); + public static readonly MongoId FLYER_ARENA_POSTER = new MongoId("675a0288c3102563bd01c9c3"); + public static readonly MongoId FLYER_ARENA_POSTER_2 = new MongoId("675a046b8f547d6cae01922e"); + public static readonly MongoId FLYER_ARENA_POSTER_3 = new MongoId("675a04c01474133a0d0bb212"); + public static readonly MongoId FLYER_DEN_OF_WOLVES_POSTER = new MongoId( + "675a0eacf905bde03d0f8253" + ); + public static readonly MongoId FLYER_EXODUS_POSTER = new MongoId("675a0d2d57dd12f0260c4a31"); + public static readonly MongoId FLYER_FINAL_MOMENT_POSTER = new MongoId( + "679b946f90622daf9708da6d" + ); + public static readonly MongoId FLYER_GENEBURN_CONCERT_ADVERTISEMENT = new MongoId( + "675a0b8d4ff23436160d8031" + ); + public static readonly MongoId FLYER_GIRL_POSTER_1 = new MongoId("6759e19a8367ee2b0c0f4b92"); + public static readonly MongoId FLYER_GIRL_POSTER_2 = new MongoId("6759e61067c8eb5cd10352f1"); + public static readonly MongoId FLYER_GIRL_POSTER_3 = new MongoId("6759e6c39422e1708e0e9b81"); + public static readonly MongoId FLYER_GIRL_POSTER_4 = new MongoId("6759e7a44ff23436160d7ff5"); + public static readonly MongoId FLYER_GIRL_POSTER_5 = new MongoId("6759e8b1c3102563bd01c985"); + public static readonly MongoId FLYER_GRENADE_GIRL_POSTER = new MongoId( + "67f924adb45d94a2600a8cc8" + ); + public static readonly MongoId FLYER_GUNFIGHT_POSTER = new MongoId("675a191f67c8eb5cd1035305"); + public static readonly MongoId FLYER_HELL_OR_HIGHWATER_POSTER = new MongoId( + "675a125caf26c56ee109072a" + ); + public static readonly MongoId FLYER_HIGHWAY_POSTER = new MongoId("675a0fbbb98bf391510bafcd"); + public static readonly MongoId FLYER_I_BEAR_LOOT_POSTER = new MongoId( + "6759e07e4ff23436160d7fed" + ); + public static readonly MongoId FLYER_KILLA_AND_TAGILLA_POSTER = new MongoId( + "675a04fdb8913ff13e0496bb" + ); + public static readonly MongoId FLYER_KILLA_FANGIRL_POSTER = new MongoId( + "67f924a9154a04c33b0a3c57" + ); + public static readonly MongoId FLYER_LAST_BREATH_POSTER = new MongoId( + "679b944d597ba2ed120c3d3c" + ); + public static readonly MongoId FLYER_LAST_FLIGHT_POSTER = new MongoId( + "675a1a244ff23436160d8033" + ); + public static readonly MongoId FLYER_RUN_POSTER = new MongoId("675a1e502eac6c76e104ea1e"); + public static readonly MongoId FLYER_SHARPSHOOTER_POSTER = new MongoId( + "675a1f5c1474133a0d0bb218" + ); + public static readonly MongoId FLYER_SPECIAL_GIRL_POSTER = new MongoId( + "6759e91d8367ee2b0c0f4b94" + ); + public static readonly MongoId FLYER_SPOOKY_MOVIE_POSTER = new MongoId( + "675a1af21474133a0d0bb216" + ); + public static readonly MongoId FLYER_TARK_SOULS_POSTER = new MongoId( + "679b9477708cfcb2060b9ade" + ); + public static readonly MongoId FLYER_TAURUS_POSTER = new MongoId("679b94734e9ca6b3d80586a7"); + public static readonly MongoId FLYER_TERRAGROUP_LABS_ADVERTISEMENT = new MongoId( + "675a0a91af26c56ee1090728" + ); + public static readonly MongoId FLYER_THE_AMBUSH_POSTER = new MongoId( + "675a202b6aaafea7210915fd" + ); + public static readonly MongoId FLYER_THE_HUNTED_POSTER = new MongoId( + "675a20c83fb2de89670113b4" + ); + public static readonly MongoId FLYER_THINGS_SURE_ARE_STRANGE_POSTER = new MongoId( + "675a081c1474133a0d0bb214" + ); + public static readonly MongoId FLYER_UNUSUAL_LEATHER_RIG_POSTER = new MongoId( + "67f924b1b07831a6ef0ce317" + ); + public static readonly MongoId FLYER_USEC_POSTER = new MongoId("675a213ff905bde03d0f8255"); + public static readonly MongoId FLYER_VASILY_POSTER = new MongoId("675a1c129422e1708e0e9baa"); + public static readonly MongoId FLYER_WHAT_YOU_SEEK_POSTER = new MongoId( + "6759bb94b8913ff13e049669" + ); + public static readonly MongoId FOOD_ALYONKA_CHOCOLATE_BAR = new MongoId( + "57505f6224597709a92585a9" + ); + public static readonly MongoId FOOD_ARMY_CRACKERS = new MongoId("5448ff904bdc2d6f028b456e"); + public static readonly MongoId FOOD_CAN_OF_BEEF_STEW_LARGE = new MongoId( + "57347da92459774491567cf5" + ); + public static readonly MongoId FOOD_CAN_OF_BEEF_STEW_SMALL = new MongoId( + "57347d7224597744596b4e72" + ); + public static readonly MongoId FOOD_CAN_OF_CONDENSED_MILK = new MongoId( + "5734773724597737fd047c14" + ); + public static readonly MongoId FOOD_CAN_OF_GREEN_PEAS = new MongoId("57347d692459774491567cf1"); + public static readonly MongoId FOOD_CAN_OF_HERRING = new MongoId("57347d9c245977448b40fa85"); + public static readonly MongoId FOOD_CAN_OF_HUMPBACK_SALMON = new MongoId( + "57347d5f245977448b40fa81" + ); + public static readonly MongoId FOOD_CAN_OF_PACIFIC_SAURY = new MongoId( + "5673de654bdc2d180f8b456d" + ); + public static readonly MongoId FOOD_CAN_OF_SPRATS = new MongoId("5bc9c29cd4351e003562b8a3"); + public static readonly MongoId FOOD_CAN_OF_SQUASH_SPREAD = new MongoId( + "57347d8724597744596b4e76" + ); + public static readonly MongoId FOOD_EMELYA_RYE_CROUTONS = new MongoId( + "5751487e245977207e26a315" + ); + public static readonly MongoId FOOD_ISKRA_RATION_PACK = new MongoId("590c5d4b86f774784e1b9c45"); + public static readonly MongoId FOOD_JAR_OF_DEVILDOG_MAYO = new MongoId( + "5bc9b156d4351e00367fbce9" + ); + public static readonly MongoId FOOD_MRE_RATION_PACK = new MongoId("590c5f0d86f77413997acfab"); + public static readonly MongoId FOOD_PACK_OF_INSTANT_NOODLES = new MongoId( + "656df4fec921ad01000481a2" + ); + public static readonly MongoId FOOD_PACK_OF_OAT_FLAKES = new MongoId( + "57347d90245977448f7b7f65" + ); + public static readonly MongoId FOOD_PACK_OF_SUGAR = new MongoId("59e3577886f774176a362503"); + public static readonly MongoId FOOD_PACK_OF_TARKER_DRIED_MEAT = new MongoId( + "65815f0e647e3d7246384e14" + ); + public static readonly MongoId FOOD_RYE_CROUTONS = new MongoId("57347d3d245977448f7b7f61"); + public static readonly MongoId FOOD_SALTY_DOG_BEEF_SAUSAGE = new MongoId( + "635a758bfefc88a93f021b8a" + ); + public static readonly MongoId FOOD_SLICKERS_CHOCOLATE_BAR = new MongoId( + "544fb6cc4bdc2d34748b456e" + ); + public static readonly MongoId FOREGRIP_A3_TACTICAL_MVF001_KEYMOD_VERTICAL_FOREGRIP_BLACK = + new MongoId("5fc0f9b5d724d907e2077d82"); + public static readonly MongoId FOREGRIP_AI_AXMC_PADDED_HANDGUARD_GRIP = new MongoId( + "6281212a09427b40ab14e770" + ); + public static readonly MongoId FOREGRIP_ASH12_VERTICAL = new MongoId( + "5cda9bcfd7f00c0c0b53e900" + ); + public static readonly MongoId FOREGRIP_BCM_GUNFIGHTER_MOD_3_MLOK_FOREGRIP_BLACK = new MongoId( + "665d5d9e338229cfd6078da1" + ); + public static readonly MongoId FOREGRIP_BCM_GUNFIGHTER_MOD_3_MLOK_FOREGRIP_FDE = new MongoId( + "665edce564fb556f940ab32a" + ); + public static readonly MongoId FOREGRIP_BCM_GUNFIGHTER_MOD_3_VERTICAL = new MongoId( + "5c7fc87d2e221644f31c0298" + ); + public static readonly MongoId FOREGRIP_DANIEL_DEFENSE_ENHANCED_MLOK_VERTICAL_FOREGRIP_BLACK = + new MongoId("651a8bf3a8520e48047bf708"); + public static readonly MongoId FOREGRIP_DANIEL_DEFENSE_ENHANCED_MLOK_VERTICAL_FOREGRIP_COYOTE_BROWN = + new MongoId("651a8e529829226ceb67c319"); + public static readonly MongoId FOREGRIP_FORTIS_SHIFT_TACTICAL = new MongoId( + "59f8a37386f7747af3328f06" + ); + public static readonly MongoId FOREGRIP_HERA_ARMS_CQR_TACTICAL = new MongoId( + "5a7dbfc1159bd40016548fde" + ); + public static readonly MongoId FOREGRIP_HK_STURMGRIFF = new MongoId("619386379fb0c665d5490dbe"); + public static readonly MongoId FOREGRIP_KAC_VERTICAL = new MongoId("5c87ca002e221600114cb150"); + public static readonly MongoId FOREGRIP_MAGPUL_AFG_TACTICAL_FOREGRIP_BLACK = new MongoId( + "588226d124597767ad33f787" + ); + public static readonly MongoId FOREGRIP_MAGPUL_AFG_TACTICAL_FOREGRIP_FDE = new MongoId( + "588226dd24597767ad33f789" + ); + public static readonly MongoId FOREGRIP_MAGPUL_AFG_TACTICAL_FOREGRIP_FOREST_GREEN = new MongoId( + "588226e62459776e3e094af7" + ); + public static readonly MongoId FOREGRIP_MAGPUL_AFG_TACTICAL_FOREGRIP_OLIVE_DRAB = new MongoId( + "588226ef24597767af46e39c" + ); + public static readonly MongoId FOREGRIP_MAGPUL_MLOK_AFG_TACTICAL_FOREGRIP_BLACK = new MongoId( + "57cffb66245977632f391a99" + ); + public static readonly MongoId FOREGRIP_MAGPUL_MLOK_AFG_TACTICAL_FOREGRIP_FDE = new MongoId( + "57cffcd624597763133760c5" + ); + public static readonly MongoId FOREGRIP_MAGPUL_MLOK_AFG_TACTICAL_FOREGRIP_OLIVE_DRAB = + new MongoId("57cffcdd24597763f5110006"); + public static readonly MongoId FOREGRIP_MAGPUL_MLOK_AFG_TACTICAL_FOREGRIP_STEALTH_GREY = + new MongoId("57cffce524597763b31685d8"); + public static readonly MongoId FOREGRIP_MAGPUL_RVG_FOREGRIP_BLACK = new MongoId( + "59fc48e086f77463b1118392" + ); + public static readonly MongoId FOREGRIP_MAGPUL_RVG_FOREGRIP_FDE = new MongoId( + "5fce0cf655375d18a253eff0" + ); + public static readonly MongoId FOREGRIP_MONSTRUM_TACTICAL_VERTICAL_FORE_GRIP_KEYMOD = + new MongoId("615d8fd3290d254f5e6b2edc"); + public static readonly MongoId FOREGRIP_MP9N_VERTICAL = new MongoId("5de8fbad2fbe23140d3ee9c4"); + public static readonly MongoId FOREGRIP_ORSIS_T5000M_PADDED_HANDGUARD_GRIP = new MongoId( + "5df36948bb49d91fb446d5ad" + ); + public static readonly MongoId FOREGRIP_RTM_OSOVETS_P2_TACTICAL = new MongoId( + "64806bdd26c80811d408d37a" + ); + public static readonly MongoId FOREGRIP_RTM_OSOVETS_P2_TACTICAL_FOREGRIP_KHAKI = new MongoId( + "64807a29e5ffe165600abc97" + ); + public static readonly MongoId FOREGRIP_RTM_PILLAU_P2_TACTICAL_FOREGRIP_RED = new MongoId( + "65169d5b30425317755f8e25" + ); + public static readonly MongoId FOREGRIP_RTM_PILLAU_TACTICAL = new MongoId( + "5cf4fb76d7f00c065703d3ac" + ); + public static readonly MongoId FOREGRIP_RTM_PILLAU_TACTICAL_FOREGRIP_SAND = new MongoId( + "648067db042be0705c0b3009" + ); + public static readonly MongoId FOREGRIP_SAKO_TRG_M10_GRIP_PAD = new MongoId( + "673cb81f5b1511adb10cd326" + ); + public static readonly MongoId FOREGRIP_SIG_SAUER_VERTICAL_FOREGRIP_KEYMOD_BLACK = new MongoId( + "5fc0f9cbd6fa9c00c571bb90" + ); + public static readonly MongoId FOREGRIP_SR3M_POLYMER_FOREGRIP_BLACK = new MongoId( + "65329ebcc0d50d0c9204ace1" + ); + public static readonly MongoId FOREGRIP_SR3M_POLYMER_FOREGRIP_PLUM = new MongoId( + "6565c0c2ff7eb7070409084c" + ); + public static readonly MongoId FOREGRIP_STARK_SE5_EXPRESS_FORWARD = new MongoId( + "5b057b4f5acfc4771e1bd3e9" + ); + public static readonly MongoId FOREGRIP_STARK_SE5_EXPRESS_FORWARD_FOREGRIP_FDE = new MongoId( + "655df24fdf80b12750626d0a" + ); + public static readonly MongoId FOREGRIP_STEYR_AUG_VERTICAL = new MongoId( + "634e61b0767cb15c4601a877" + ); + public static readonly MongoId FOREGRIP_STEYR_AUG_VERTICAL_FOREGRIP_BLACK = new MongoId( + "671883292e2eeb98d406f3b8" + ); + public static readonly MongoId FOREGRIP_STRIKE_INDUSTRIES_COBRA_TACTICAL = new MongoId( + "5c791e872e2216001219c40a" + ); + public static readonly MongoId FOREGRIP_STRIKE_INDUSTRIES_COBRA_TACTICAL_FOREGRIP_FDE = + new MongoId("655dccfdbdcc6b5df71382b6"); + public static readonly MongoId FOREGRIP_TACTICAL_DYNAMICS_SKELETONIZED = new MongoId( + "5f6340d3ca442212f4047eb2" + ); + public static readonly MongoId FOREGRIP_TANGODOWN_BGVQDITI_FOREGRIP_BLACK = new MongoId( + "661e52e29c8b4dadef008577" + ); + public static readonly MongoId FOREGRIP_TANGODOWN_BGVQDITI_FOREGRIP_FDE = new MongoId( + "661e53149c8b4dadef008579" + ); + public static readonly MongoId FOREGRIP_TANGODOWN_STUBBY_BGVMK46K_FOREGRIP_BLACK = new MongoId( + "558032614bdc2de7118b4585" + ); + public static readonly MongoId FOREGRIP_TANGODOWN_STUBBY_BGVMK46K_FOREGRIP_FDE = new MongoId( + "58c157be86f77403c74b2bb6" + ); + public static readonly MongoId FOREGRIP_TANGODOWN_STUBBY_BGVMK46K_FOREGRIP_STEALTH_GREY = + new MongoId("58c157c886f774032749fb06"); + public static readonly MongoId FOREGRIP_TANGODOWN_STUBBY_BGVQDK_FOREGRIP_BLACK = new MongoId( + "661e52415be02310ed07a07a" + ); + public static readonly MongoId FOREGRIP_TANGODOWN_STUBBY_BGVQDK_FOREGRIP_FDE = new MongoId( + "661e52b5b099f32c28003586" + ); + public static readonly MongoId FOREGRIP_VIKING_TACTICS_UVG_TACTICAL = new MongoId( + "591af28e86f77414a27a9e1d" + ); + public static readonly MongoId FOREGRIP_ZENIT_RK0_TACTICAL = new MongoId( + "5c1bc4812e22164bef5cfde7" + ); + public static readonly MongoId FOREGRIP_ZENIT_RK1_TACTICAL = new MongoId( + "5c1bc5612e221602b5429350" + ); + public static readonly MongoId FOREGRIP_ZENIT_RK1_TACTICAL_FOREGRIP_ON_B25U_MOUNT = new MongoId( + "5c1cd46f2e22164bef5cfedb" + ); + public static readonly MongoId FOREGRIP_ZENIT_RK2_TACTICAL = new MongoId( + "5c1bc5af2e221602b412949b" + ); + public static readonly MongoId FOREGRIP_ZENIT_RK4_TACTICAL = new MongoId( + "5c1bc5fb2e221602b1779b32" + ); + public static readonly MongoId FOREGRIP_ZENIT_RK5_TACTICAL = new MongoId( + "5c1bc7432e221602b412949d" + ); + public static readonly MongoId FOREGRIP_ZENIT_RK6_TACTICAL = new MongoId( + "5c1bc7752e221602b1779b34" + ); + public static readonly MongoId GASBLOCK_AK_KIBA_ARMS_VDM_CS_GAS_TUBE = new MongoId( + "5a01ad4786f77450561fda02" + ); + public static readonly MongoId GASBLOCK_AK_TROY_FULL_LENGTH_RAIL_HANDGUARD_WITH_GAS_TUBE = + new MongoId("5b237e425acfc4771e1be0b6"); + public static readonly MongoId GASBLOCK_AK_ULTIMAK_M1B_HANDGUARD_WITH_GAS_TUBE = new MongoId( + "59ccfdba86f7747f2109a587" + ); + public static readonly MongoId GASBLOCK_AK_VEZHLIVYY_STRELOK_VS24_VS33C_HANDGUARD_WITH_GAS_TUBE = + new MongoId("5cf656f2d7f00c06585fb6eb"); + public static readonly MongoId GASBLOCK_AK_VEZHLIVYY_STRELOK_VS24_VS33C_HANDGUARD_WITH_GAS_TUBE_WHITE = + new MongoId("5d4aab30a4b9365435358c55"); + public static readonly MongoId GASBLOCK_AK12_GAS_TUBE = new MongoId("649ec107961514b22506b10c"); + public static readonly MongoId GASBLOCK_AK545_MK_21_GAS_TUBE = new MongoId( + "628b8d83717774443b15e248" + ); + public static readonly MongoId GASBLOCK_AK74_GAS_TUBE = new MongoId("59c6633186f7740cf0493bb9"); + public static readonly MongoId GASBLOCK_AKM_GAS_TUBE = new MongoId("59d64ec286f774171d1e0a42"); + public static readonly MongoId GASBLOCK_AKS74U_GAS_TUBE = new MongoId( + "59d36a0086f7747e673f3946" + ); + public static readonly MongoId GASBLOCK_AR10_CMMG_LOW_PROFILE_GAS_BLOCK = new MongoId( + "6065dc8a132d4d12c81fd8e3" + ); + public static readonly MongoId GASBLOCK_AR10_JP_ENTERPRISES_GAS_SYSTEM6 = new MongoId( + "5a34fbadc4a28200741e230a" + ); + public static readonly MongoId GASBLOCK_AR10_KAC_LOW_PROFILE_GAS_BLOCK = new MongoId( + "5dfa3d45dfc58d14537c20b0" + ); + public static readonly MongoId GASBLOCK_AR15_BALLISTIC_ADVANTAGE_LOPRO_GAS_BLOCK = new MongoId( + "63d3ce281fe77d0f2801859e" + ); + public static readonly MongoId GASBLOCK_AR15_DANIEL_DEFENSE_MK12_LOW_PROFILE_GAS_BLOCK = + new MongoId("56eabcd4d2720b66698b4574"); + public static readonly MongoId GASBLOCK_AR15_JP_ENTERPRISES_GAS_SYSTEM5B = new MongoId( + "5d00ec68d7ad1a04a067e5be" + ); + public static readonly MongoId GASBLOCK_AR15_WINDHAM_WEAPONRY_RAIL_GAS_BLOCK = new MongoId( + "56ea8d2fd2720b7c698b4570" + ); + public static readonly MongoId GASBLOCK_HK_416A5_LOW_PROFILE_GAS_BLOCK = new MongoId( + "5bb20dcad4351e3bac1212da" + ); + public static readonly MongoId GASBLOCK_HK_G36_GAS_BLOCK = new MongoId( + "622b327b267a1b13a44abea3" + ); + public static readonly MongoId GASBLOCK_HK417_LOW_PROFILE_GAS_BLOCK = new MongoId( + "61702f1b67085e45ef140b26" + ); + public static readonly MongoId GASBLOCK_M4A1_FRONT_SIGHT_WITH_GAS_BLOCK = new MongoId( + "5ae30e795acfc408fb139a0b" + ); + public static readonly MongoId GASBLOCK_MCX_GAS_BLOCK = new MongoId("5fbc210bf24b94483f726481"); + public static readonly MongoId GASBLOCK_MCXSPEAR_ADJUSTABLE_GAS_PISTON = new MongoId( + "652910bc24cbe3c74a05e5b9" + ); + public static readonly MongoId GASBLOCK_MK18_GAS_BLOCK = new MongoId( + "5fc2360f900b1d5091531e19" + ); + public static readonly MongoId GASBLOCK_MOLOT_ARMS_AKMTYPE_GAS_TUBE = new MongoId( + "59e649f986f77411d949b246" + ); + public static readonly MongoId GASBLOCK_OPSKS_GAS_TUBE = new MongoId( + "634f036a517ccc8a960fc746" + ); + public static readonly MongoId GASBLOCK_PP1901_VITYAZ_GAS_TUBE = new MongoId( + "59ccd11386f77428f24a488f" + ); + public static readonly MongoId GASBLOCK_PP1901_VITYAZ_SAG_MK1_MLOK_HANDGUARD_WITH_GAS_TUBE = + new MongoId("676177df1f08ed5e8800b7ae"); + public static readonly MongoId GASBLOCK_PP1901_VITYAZ_VECTOR_VRLPS_LEFTSIDE_CHARGING_HANDLE = + new MongoId("65ae4f57e343f0acc00824da"); + public static readonly MongoId GASBLOCK_RD704_SLR_ION_LITE_RAILED_GAS_TUBE_HANDGUARD_WITH_GAS_TUBE = + new MongoId("628a83c29179c324ed269508"); + public static readonly MongoId GASBLOCK_SKS_GAS_TUBE = new MongoId("634f02d7517ccc8a960fc744"); + public static readonly MongoId GASBLOCK_SVDS_GAS_TUBE = new MongoId("5c471c842e221615214259b5"); + public static readonly MongoId GASBLOCK_VPO101_GAS_TUBE = new MongoId( + "5c5039be2e221602b177c9ff" + ); + public static readonly MongoId GRENADE_F1_HAND = new MongoId("5710c24ad2720bc3458b45a3"); + public static readonly MongoId GRENADE_F1_HAND_GRENADE_REDUCED_DELAY = new MongoId( + "67b49e7335dec48e3e05e057" + ); + public static readonly MongoId GRENADE_M18_SMOKE_GRENADE_GREEN = new MongoId( + "617aa4dd8166f034d57de9c5" + ); + public static readonly MongoId GRENADE_M67_HAND = new MongoId("58d3db5386f77426186285a0"); + public static readonly MongoId GRENADE_MODEL_7290_FLASH_BANG = new MongoId( + "619256e5f8af2c1a4e1f5d92" + ); + public static readonly MongoId GRENADE_RDG2B_SMOKE = new MongoId("5a2a57cfc4a2826c6e06d44a"); + public static readonly MongoId GRENADE_RGD5_HAND = new MongoId("5448be9a4bdc2dfd2f8b456a"); + public static readonly MongoId GRENADE_RGN_HAND = new MongoId("617fd91e5539a84ec44ce155"); + public static readonly MongoId GRENADE_RGO_HAND = new MongoId("618a431df1eb8e24b8741deb"); + public static readonly MongoId GRENADE_V40_MINI = new MongoId("66dae7cbeb28f0f96809f325"); + public static readonly MongoId GRENADE_VOG17_KHATTABKA_IMPROVISED_HAND = new MongoId( + "5e32f56fcb6d5863cc5e5ee4" + ); + public static readonly MongoId GRENADE_VOG25_KHATTABKA_IMPROVISED_HAND = new MongoId( + "5e340dcdcb6d5863cc5e5efb" + ); + public static readonly MongoId GRENADE_ZARYA_STUN = new MongoId("5a0c27731526d80618476ac4"); + public static readonly MongoId GRENADELAUNCHER_FN40GL_01 = new MongoId( + "5e81ebcd8e146c7080625e15" + ); + public static readonly MongoId GRENADELAUNCHER_FN40GL_02 = new MongoId( + "639c3fbbd0446708ee622ee9" + ); + public static readonly MongoId GRENADELAUNCHER_FN40GL_03 = new MongoId( + "639af924d0446708ee62294e" + ); + public static readonly MongoId HANDGUARD_9A91 = new MongoId("644675573d52156624001fc9"); + public static readonly MongoId HANDGUARD_AI_AXMC_AX_KEYSLOT_16_INCH = new MongoId( + "6281209662cba23f6c4d7a19" + ); + public static readonly MongoId HANDGUARD_AK_100SERIES_POLYMER = new MongoId( + "5cbda392ae92155f3c17c39f" + ); + public static readonly MongoId HANDGUARD_AK_545_DESIGN_AGGRESSOR = new MongoId( + "5cf4e3f3d7f00c06595bc7f0" + ); + public static readonly MongoId HANDGUARD_AK_AKDEMIA_DOMINATOR = new MongoId( + "647dba3142c479dde701b654" + ); + public static readonly MongoId HANDGUARD_AK_ALFA_ARMS_ASPID = new MongoId( + "647dd2b8a12ebf96c3031655" + ); + public static readonly MongoId HANDGUARD_AK_CAA_RS47 = new MongoId("5648ae314bdc2d3d1c8b457f"); + public static readonly MongoId HANDGUARD_AK_CNC_GUNS_OV_GP = new MongoId( + "6389f1dfc879ce63f72fc43e" + ); + public static readonly MongoId HANDGUARD_AK_HEXAGON_TUBULAR = new MongoId( + "5b800e9286f7747a8b04f3ff" + ); + public static readonly MongoId HANDGUARD_AK_HEXAGON_TUBULAR_HANDGUARD_ANODIZED_RED = + new MongoId("5b80242286f77429445e0b47"); + public static readonly MongoId HANDGUARD_AK_KREBS_CUSTOM_UFM_KEYMOD = new MongoId( + "59fb375986f7741b681b81a6" + ); + public static readonly MongoId HANDGUARD_AK_MAGPUL_MOE_AKM_HANDGUARD_BLACK = new MongoId( + "57cff947245977638e6f2a19" + ); + public static readonly MongoId HANDGUARD_AK_MAGPUL_MOE_AKM_HANDGUARD_FDE = new MongoId( + "57cffd8224597763b03fc609" + ); + public static readonly MongoId HANDGUARD_AK_MAGPUL_MOE_AKM_HANDGUARD_OLIVE_DRAB = new MongoId( + "57cffddc24597763133760c6" + ); + public static readonly MongoId HANDGUARD_AK_MAGPUL_MOE_AKM_HANDGUARD_PLUM = new MongoId( + "57cffe0024597763b03fc60b" + ); + public static readonly MongoId HANDGUARD_AK_MAGPUL_MOE_AKM_HANDGUARD_STEALTH_GREY = new MongoId( + "57cffe20245977632f391a9d" + ); + public static readonly MongoId HANDGUARD_AK_MAGPUL_ZHUKOVU_HANDGUARD_BLACK = new MongoId( + "5c9a07572e221644f31c4b32" + ); + public static readonly MongoId HANDGUARD_AK_MAGPUL_ZHUKOVU_HANDGUARD_FDE = new MongoId( + "5c9a1c3a2e2216000e69fb6a" + ); + public static readonly MongoId HANDGUARD_AK_MAGPUL_ZHUKOVU_HANDGUARD_PLUM = new MongoId( + "5c9a1c422e221600106f69f0" + ); + public static readonly MongoId HANDGUARD_AK_STRIKE_INDUSTRIES_TRAX_1 = new MongoId( + "5a9d56c8a2750c0032157146" + ); + public static readonly MongoId HANDGUARD_AK_STRIKE_INDUSTRIES_TRAX_2_HANDGUARD_EXTENSION = + new MongoId("5a9d6d34a2750c00141e07da"); + public static readonly MongoId HANDGUARD_AK_TDI_AKML = new MongoId("5d1b198cd7ad1a604869ad72"); + public static readonly MongoId HANDGUARD_AK_TDI_AKML_HANDGUARD_ANODIZED_BRONZE = new MongoId( + "5d4aaa73a4b9365392071175" + ); + public static readonly MongoId HANDGUARD_AK_TDI_AKML_HANDGUARD_ANODIZED_RED = new MongoId( + "5d4aaa54a4b9365392071170" + ); + public static readonly MongoId HANDGUARD_AK_TDI_X47_TACTICAL_HANDGUARD_RAIL_SYSTEM = + new MongoId("5f6331e097199b7db2128dc2"); + public static readonly MongoId HANDGUARD_AK_VLTOR_CMRD_KEYMOD = new MongoId( + "5c17664f2e2216398b5a7e3c" + ); + public static readonly MongoId HANDGUARD_AK_ZENIT_B10 = new MongoId("5c617a5f2e2216000f1e81b3"); + public static readonly MongoId HANDGUARD_AK_ZENIT_B10M_HANDGUARD_WITH_B19_UPPER_MOUNT = + new MongoId("5648b4534bdc2d3d1c8b4580"); + public static readonly MongoId HANDGUARD_AK_ZENIT_B30_HANDGUARD_WITH_B31S_UPPER_HANDGUARD_RAIL = + new MongoId("5efaf417aeb21837e749c7f2"); + public static readonly MongoId HANDGUARD_AK12 = new MongoId("649ec127c93611967b034957"); + public static readonly MongoId HANDGUARD_AK545_MK3 = new MongoId("628b916469015a4e1711ed8d"); + public static readonly MongoId HANDGUARD_AK74_POLYMER_HANDGUARD_PLUM = new MongoId( + "5cbda9f4ae9215000e5b9bfc" + ); + public static readonly MongoId HANDGUARD_AK74_WOODEN = new MongoId("5648b0744bdc2d363b8b4578"); + public static readonly MongoId HANDGUARD_AK74M_POLYMER = new MongoId( + "5648b1504bdc2d9d488b4584" + ); + public static readonly MongoId HANDGUARD_AKM_WOODEN = new MongoId("59d64f2f86f77417193ef8b3"); + public static readonly MongoId HANDGUARD_AKS74U_ALFA_ARMS_GOLIAF = new MongoId( + "5d15ce51d7ad1a1eff619092" + ); + public static readonly MongoId HANDGUARD_AKS74U_ALFA_ARMS_GOLIAF_MLOK = new MongoId( + "647db1eca8d3399c380d195c" + ); + public static readonly MongoId HANDGUARD_AKS74U_CAA_XRSU47SU_TACTICAL = new MongoId( + "5a957c3fa2750c00137fa5f7" + ); + public static readonly MongoId HANDGUARD_AKS74U_WOODEN = new MongoId( + "57dc32dc245977596d4ef3d3" + ); + public static readonly MongoId HANDGUARD_AKS74U_ZENIT_B11 = new MongoId( + "57ffa9f4245977728561e844" + ); + public static readonly MongoId HANDGUARD_AR10_CMMG_MK3_RML15_15_INCH_MLOK = new MongoId( + "6065881d1246154cad35d637" + ); + public static readonly MongoId HANDGUARD_AR10_CMMG_MK3_RML9_9_INCH_MLOK = new MongoId( + "6065880c132d4d12c81fd8da" + ); + public static readonly MongoId HANDGUARD_AR10_KAC_URX_4_145_INCH = new MongoId( + "5df916dfbb49d91fb446d6b9" + ); + public static readonly MongoId HANDGUARD_AR10_LANCER_LCH7_125_INCH_MLOK = new MongoId( + "5f6336bbda967c74a42e9932" + ); + public static readonly MongoId HANDGUARD_AR10_NOVESKE_SWS_N6_105_INCH = new MongoId( + "5d00ede1d7ad1a0940739a76" + ); + public static readonly MongoId HANDGUARD_AR10_NOVESKE_SWS_N6_SPLIT = new MongoId( + "5d00ef6dd7ad1a0940739b16" + ); + public static readonly MongoId HANDGUARD_AR15_AB_ARMS_MOD1 = new MongoId( + "647de824196bf69818044c93" + ); + public static readonly MongoId HANDGUARD_AR15_AB_ARMS_MOD1_LOWER = new MongoId( + "647def638295ebcb5b02f05b" + ); + public static readonly MongoId HANDGUARD_AR15_ADAR_215_WOODEN = new MongoId( + "5c0e2f5cd174af02a012cfc9" + ); + public static readonly MongoId HANDGUARD_AR15_AEROKNOX_AX15_105_INCH_MLOK = new MongoId( + "619b5db699fb192e7430664f" + ); + public static readonly MongoId HANDGUARD_AR15_AEROKNOX_AX15_158_INCH_MLOK = new MongoId( + "640b20359ab20e15ee445fa9" + ); + public static readonly MongoId HANDGUARD_AR15_AEROKNOX_AX15_4_INCH_MLOK = new MongoId( + "63f4ba71f31d4a33b87bd046" + ); + public static readonly MongoId HANDGUARD_AR15_ALEXANDER_ARMS_MK10_RIFLE_LENGTH = new MongoId( + "5b2cfa535acfc432ff4db7a0" + ); + public static readonly MongoId HANDGUARD_AR15_COLT_M4_CARBINE_LENGTH = new MongoId( + "5ae30db85acfc408fb139a05" + ); + public static readonly MongoId HANDGUARD_AR15_COLT_M4_CARBINE_LENGTH_LOWER = new MongoId( + "637f57a68d137b27f70c4968" + ); + public static readonly MongoId HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_1225_HANDGUARD_COYOTE_BROWN = + new MongoId("5c9a25172e2216000f20314e"); + public static readonly MongoId HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_1225_LOWER_HANDGUARD_COYOTE_BROWN = + new MongoId("638f2003bbd47aeb9e0ff637"); + public static readonly MongoId HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_95_HANDGUARD_BLACK = + new MongoId("588b56d02459771481110ae2"); + public static readonly MongoId HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_95_HANDGUARD_COYOTE_BROWN = + new MongoId("55f84c3c4bdc2d5f408b4576"); + public static readonly MongoId HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_95_LOWER_HANDGUARD_BLACK = + new MongoId("6396aaa9a52ace83df0840ab"); + public static readonly MongoId HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_95_LOWER_HANDGUARD_COYOTE_BROWN = + new MongoId("638f1ff84822287cad04be9d"); + public static readonly MongoId HANDGUARD_AR15_DANIEL_DEFENSE_RIS_II_FSP_95_HANDGUARD_COYOTE_BROWN = + new MongoId("5c9a26332e2216001219ea70"); + public static readonly MongoId HANDGUARD_AR15_GEISSELE_SMR_MK16_135_INCH_MLOK_HANDGUARD_DDC = + new MongoId("5ea16ada09aa976f2e7a51be"); + public static readonly MongoId HANDGUARD_AR15_GEISSELE_SMR_MK16_95_INCH_MLOK_HANDGUARD_DDC = + new MongoId("5ea16acdfadf1d18c87b0784"); + public static readonly MongoId HANDGUARD_AR15_KAC_RIS = new MongoId("55d459824bdc2d892f8b4573"); + public static readonly MongoId HANDGUARD_AR15_KAC_RIS_LOWER = new MongoId( + "637f57b78d137b27f70c496a" + ); + public static readonly MongoId HANDGUARD_AR15_KAC_URX_3_8_INCH = new MongoId( + "5d123102d7ad1a004e475fe5" + ); + public static readonly MongoId HANDGUARD_AR15_KAC_URX_3_8_INCH_LOWER = new MongoId( + "637f57d2f5ef8c33840d36c4" + ); + public static readonly MongoId HANDGUARD_AR15_KAC_URX_31_1075_INCH = new MongoId( + "5d122e7bd7ad1a07102d6d7f" + ); + public static readonly MongoId HANDGUARD_AR15_KAC_URX_31_1075_INCH_LOWER = new MongoId( + "637f57c532b66e7e320a6676" + ); + public static readonly MongoId HANDGUARD_AR15_LONE_STAR_ION_LITE = new MongoId( + "5d4405f0a4b9361e6a4e6bd9" + ); + public static readonly MongoId HANDGUARD_AR15_MAGPUL_MOE_SL_CARBINE_LENGTH_MLOK = new MongoId( + "5c78f2792e221600106f4683" + ); + public static readonly MongoId HANDGUARD_AR15_MAGPUL_MOE_SL_MEDIUM_LENGTH_MLOK = new MongoId( + "5c78f26f2e221601da3581d1" + ); + public static readonly MongoId HANDGUARD_AR15_PRECISION_REFLEX_GEN_III_DELTA_CARBON = + new MongoId("63888bbd28e5cc32cc09d2b6"); + public static readonly MongoId HANDGUARD_AR15_SAI_10_INCH_QD_RAIL = new MongoId( + "5c78f2612e221600114c9f0d" + ); + public static readonly MongoId HANDGUARD_AR15_SAI_145_INCH_QD_RAIL = new MongoId( + "5c78f2492e221600114c9f04" + ); + public static readonly MongoId HANDGUARD_AR15_SOYUZTM_12_INCH_MLOK = new MongoId( + "6034e3e20ddce744014cb878" + ); + public static readonly MongoId HANDGUARD_AR15_SOYUZTM_15_INCH_MLOK = new MongoId( + "6034e3d953a60014f970617b" + ); + public static readonly MongoId HANDGUARD_AR15_SOYUZTM_9_INCH_MLOK = new MongoId( + "6034e3cb0ddce744014cb870" + ); + public static readonly MongoId HANDGUARD_AR15_STNGR_VYPR_10_INCH_MLOK = new MongoId( + "5c6d5d8b2e221644fc630b39" + ); + public static readonly MongoId HANDGUARD_AR15_STRIKE_INDUSTRIES_VIPER_CARBINE_LENGTH_MLOK = + new MongoId("5d00e0cbd7ad1a6c6566a42d"); + public static readonly MongoId HANDGUARD_AR15_STRIKE_INDUSTRIES_VIPER_CARBINE_LENGTH_MLOK_HANDGUARD_FDE = + new MongoId("5d00f63bd7ad1a59283b1c1e"); + public static readonly MongoId HANDGUARD_AR15_STRIKE_INDUSTRIES_VIPER_CARBINE_LENGTH_MLOK_LOWER = + new MongoId("637f589af5ef8c33840d36d3"); + public static readonly MongoId HANDGUARD_AR15_STRIKE_INDUSTRIES_VIPER_CARBINE_LENGTH_MLOK_LOWER_HANDGUARD_FDE = + new MongoId("63969c9019971040b005049b"); + public static readonly MongoId HANDGUARD_AR15_UNIQUEARS_WING_SKULL_12_INCH = new MongoId( + "6087e0336d0bd7580617bb7a" + ); + public static readonly MongoId HANDGUARD_AR15_WAR_SPORT_LVOAC_HANDGUARD_BLACK = new MongoId( + "595cfa8b86f77427437e845b" + ); + public static readonly MongoId HANDGUARD_AR15_WAR_SPORT_LVOAS_HANDGUARD_BLACK = new MongoId( + "595cf16b86f77427440c32e2" + ); + public static readonly MongoId HANDGUARD_ASH12_POLYMER = new MongoId( + "5cdaa99dd7f00c002412d0b2" + ); + public static readonly MongoId HANDGUARD_BENELLI_M3_FOREND = new MongoId( + "6259c4347d6aab70bc23a190" + ); + public static readonly MongoId HANDGUARD_DVL10_M2 = new MongoId("5888976c24597754281f93f5"); + public static readonly MongoId HANDGUARD_FAL_ORIGINAL = new MongoId("5b7bed205acfc400161d08cc"); + public static readonly MongoId HANDGUARD_HK_416_MIDWEST_INDUSTRIES_135_INCH_MLOK = new MongoId( + "5c6d11072e2216000e69d2e4" + ); + public static readonly MongoId HANDGUARD_HK_416_MIDWEST_INDUSTRIES_9_INCH_MLOK = new MongoId( + "5c6d10fa2e221600106f3f23" + ); + public static readonly MongoId HANDGUARD_HK_416_MRS_KEYMOD_14_INCH = new MongoId( + "5c6d10e82e221601da357b07" + ); + public static readonly MongoId HANDGUARD_HK_416_QUAD_RAIL = new MongoId( + "5bb20de5d4351e0035629e59" + ); + public static readonly MongoId HANDGUARD_HK_416_QUAD_RAIL_EXTENDED = new MongoId( + "5bb20dfcd4351e00334c9e24" + ); + public static readonly MongoId HANDGUARD_HK_416_QUAD_RAIL_HANDGUARD_WITH_FLIPUP_FRONT_SIGHT = + new MongoId("5bb20df1d4351e00347787d5"); + public static readonly MongoId HANDGUARD_HK_416_STRIKE_INDUSTRIES_CRUX_15_INCH_MLOK = + new MongoId("5c6d11152e2216000f2003e7"); + public static readonly MongoId HANDGUARD_HK_416_TROY_MLOK_13_INCH = new MongoId( + "5c6c2c9c2e2216000f2002e4" + ); + public static readonly MongoId HANDGUARD_HK_G36_2VENT = new MongoId("62386b2adf47d66e835094b2"); + public static readonly MongoId HANDGUARD_HK_G36_4VENT = new MongoId("62386b7153757417e93a4e9f"); + public static readonly MongoId HANDGUARD_HK_G36_6VENT = new MongoId("6231654c71b5bc3baa1078e5"); + public static readonly MongoId HANDGUARD_HK_G36_KAC_QUAD_RAIL = new MongoId( + "67069d66af4890b09f0006ec" + ); + public static readonly MongoId HANDGUARD_HK_G36_SLIM_LINE_HKEY = new MongoId( + "67069d8dad91f3a63c0bc2b4" + ); + public static readonly MongoId HANDGUARD_HK_MP5_BT_TL99_ALUMINUM = new MongoId( + "5a9548c9159bd400133e97b3" + ); + public static readonly MongoId HANDGUARD_HK_MP5_CAA_HX5 = new MongoId( + "5d010d1cd7ad1a59283b1ce7" + ); + public static readonly MongoId HANDGUARD_HK_MP5_PTR_TRIRAIL = new MongoId( + "5d19cd96d7ad1a4a992c9f52" + ); + public static readonly MongoId HANDGUARD_HK_MP5_WIDE_TROPICAL_POLYMER = new MongoId( + "5926c36d86f77467a92a8629" + ); + public static readonly MongoId HANDGUARD_HK_MP5K_POLYMER = new MongoId( + "5d2f259b48f0355a844acd74" + ); + public static readonly MongoId HANDGUARD_HK_MP5SD_POLYMER = new MongoId( + "5926f34786f77469195bfe92" + ); + public static readonly MongoId HANDGUARD_HK417_EXTENDED_FREE_FLOAT_HANDGUARD_WITH_FLIPUP_FRONT_SIGHT = + new MongoId("61703001d92c473c77021497"); + public static readonly MongoId HANDGUARD_HK417_PATROL_HANDGUARD_WITH_FLIPUP_FRONT_SIGHT = + new MongoId("61712eae6c780c1e710c9a1d"); + public static readonly MongoId HANDGUARD_KS23M_FORESTOCK = new MongoId( + "5e848d51e4dbc5266a4ec63b" + ); + public static readonly MongoId HANDGUARD_M60E4_MOD_1 = new MongoId("66012d64c752a02bbe05e69b"); + public static readonly MongoId HANDGUARD_M60E4_MOD_1_HANDGUARD_FDE = new MongoId( + "661fbe066751ee51930b01f2" + ); + public static readonly MongoId HANDGUARD_M60E6 = new MongoId("66012d003dff5074ed002e2c"); + public static readonly MongoId HANDGUARD_M700_AB_ARMS_MODX_GEN_3_KEYMOD = new MongoId( + "5cde7afdd7f00c000d36b89d" + ); + public static readonly MongoId HANDGUARD_M870_FAB_DEFENSE_PR870_FORESTOCK = new MongoId( + "5a788031c585673f2b5c1c79" + ); + public static readonly MongoId HANDGUARD_M870_MAGPUL_MOE = new MongoId( + "5a788068c5856700137e4c8f" + ); + public static readonly MongoId HANDGUARD_M870_SPEEDFEED_SHORT = new MongoId( + "5a788089c5856700142fdd9c" + ); + public static readonly MongoId HANDGUARD_MCX_GEN1_KEYMOD_12_INCH = new MongoId( + "5fbc227aa56d053a3543f79e" + ); + public static readonly MongoId HANDGUARD_MCX_GEN1_KEYMOD_8_INCH = new MongoId( + "5fbc226eca32ed67276c155d" + ); + public static readonly MongoId HANDGUARD_MCXSPEAR_11_INCH_MLOK = new MongoId( + "652910ef50dc782999054b97" + ); + public static readonly MongoId HANDGUARD_MDR_HANDGUARD_BLACK = new MongoId( + "5dcbd6b46ec07c0c4347a564" + ); + public static readonly MongoId HANDGUARD_MDR_HANDGUARD_FDE = new MongoId( + "5c48a14f2e2216152006edd7" + ); + public static readonly MongoId HANDGUARD_MK18_18_INCH = new MongoId("5fc235db2770a0045c59c683"); + public static readonly MongoId HANDGUARD_MOSSBERG_590A1_MAGPUL_MOE_FORESTOCK = new MongoId( + "5eea21647547d6330471b3c9" + ); + public static readonly MongoId HANDGUARD_MOSSBERG_590A1_SPEEDFEED_SHORT = new MongoId( + "5e87076ce2db31558c75a11d" + ); + public static readonly MongoId HANDGUARD_MP133_BEECHWOOD_FORESTOCK = new MongoId( + "55d45d3f4bdc2d972f8b456c" + ); + public static readonly MongoId HANDGUARD_MP133_CUSTOM_PLASTIC_FORESTOCK_WITH_RAILS = + new MongoId("55d45f484bdc2d972f8b456d"); + public static readonly MongoId HANDGUARD_MP153_POLYMER_FORESTOCK = new MongoId( + "56deed6ed2720b4c698b4583" + ); + public static readonly MongoId HANDGUARD_MP155_ULTIMA_POLYMER_FORESTOCK = new MongoId( + "606ee5c81246154cad35d65e" + ); + public static readonly MongoId HANDGUARD_MP155_WALNUT_FORESTOCK = new MongoId( + "607d5aa50494a626335e12ed" + ); + public static readonly MongoId HANDGUARD_MP18_POLYMER = new MongoId("61f8024263dc1250e26eb029"); + public static readonly MongoId HANDGUARD_MP18_WOODEN = new MongoId("61f7b85367ddd414173fdb36"); + public static readonly MongoId HANDGUARD_MPX_GEN1_4_INCH = new MongoId( + "676149fbe2cf1419500357ee" + ); + public static readonly MongoId HANDGUARD_MPX_GEN1_6_INCH = new MongoId( + "5894a42086f77426d2590762" + ); + public static readonly MongoId HANDGUARD_MPX_GEN1_8_INCH = new MongoId( + "67614a0be889e1972605d6c0" + ); + public static readonly MongoId HANDGUARD_MPX_GEN2_4_INCH_MLOK = new MongoId( + "67614a225152c0eaed08ec86" + ); + public static readonly MongoId HANDGUARD_MPX_GEN2_6_INCH_MLOK = new MongoId( + "67614a3ce2cf1419500357f4" + ); + public static readonly MongoId HANDGUARD_MPX_GEN2_8_INCH_MLOK = new MongoId( + "67614a31062e6212f5058c38" + ); + public static readonly MongoId HANDGUARD_MPX_LANCER_OEM_14_INCH_MLOK = new MongoId( + "5c59529a2e221602b177d160" + ); + public static readonly MongoId HANDGUARD_MPX_MIDWEST_INDUSTRIES_105_INCH_MLOK = new MongoId( + "5c5db6302e2216000e5e47f0" + ); + public static readonly MongoId HANDGUARD_MPX_MIDWEST_INDUSTRIES_14_INCH_MLOK = new MongoId( + "5c5db63a2e2216000f1b284a" + ); + public static readonly MongoId HANDGUARD_MPX_MIDWEST_INDUSTRIES_45_INCH_MLOK = new MongoId( + "5c5db5f22e2216000e5e47e8" + ); + public static readonly MongoId HANDGUARD_MPX_MIDWEST_INDUSTRIES_65_INCH_MLOK = new MongoId( + "5c5db5fc2e2216000f1b2842" + ); + public static readonly MongoId HANDGUARD_MTS25512_BEECHWOOD_FORESTOCK = new MongoId( + "6123649463849f3d843da7c4" + ); + public static readonly MongoId HANDGUARD_OPSKS_GAS_TUBE_COVER = new MongoId( + "634f03d40384a3ba4f06f874" + ); + public static readonly MongoId HANDGUARD_ORSIS_T5000M = new MongoId("5df25d3bfd6b4e6e2276dc9a"); + public static readonly MongoId HANDGUARD_PK_ZENIT_B50 = new MongoId("6491c6f6ef312a876705191b"); + public static readonly MongoId HANDGUARD_R11_RSASS = new MongoId("5a329052c4a28200741e22d3"); + public static readonly MongoId HANDGUARD_RFB = new MongoId("5f2aa47a200e2c0ee46efa71"); + public static readonly MongoId HANDGUARD_RPD_WOODEN = new MongoId("6513f05a94c72326990a3866"); + public static readonly MongoId HANDGUARD_RPK16 = new MongoId("5beec3e30db8340019619424"); + public static readonly MongoId HANDGUARD_SA58_QUAD_RAIL = new MongoId( + "5b099a9d5acfc47a8607efe7" + ); + public static readonly MongoId HANDGUARD_SA58_QUAD_RAIL_FULL_LENGTH = new MongoId( + "5b7be1ca5acfc400170e2d2f" + ); + public static readonly MongoId HANDGUARD_SA58FAL_AIM_SPORTS_UNIVERSAL_KEYMOD = new MongoId( + "5b7be2345acfc400196d524a" + ); + public static readonly MongoId HANDGUARD_SA58FAL_AIM_SPORTS_UNIVERSAL_MLOK = new MongoId( + "5b7bebc85acfc43bca706666" + ); + public static readonly MongoId HANDGUARD_SA58FAL_BELGIAN_STYLE = new MongoId( + "5b7d671b5acfc43d82528ddd" + ); + public static readonly MongoId HANDGUARD_SA58FAL_VLTOR_CASVFAL = new MongoId( + "5b7bedd75acfc43d825283f9" + ); + public static readonly MongoId HANDGUARD_SA58FAL_VLTOR_CASVFAS = new MongoId( + "5b7bee755acfc400196d5383" + ); + public static readonly MongoId HANDGUARD_SAIGA9_HARTMAN_GYURZA = new MongoId( + "651bfe4d1065f87f082e7209" + ); + public static readonly MongoId HANDGUARD_SAKO_TRG_M10_11_INCH_HANDGUARD_ASSEMBLY = new MongoId( + "67405ef125beb509e8070276" + ); + public static readonly MongoId HANDGUARD_SAKO_TRG_M10_15_INCH_HANDGUARD_ASSEMBLY = new MongoId( + "673cb5d1280680de5e02ff3b" + ); + public static readonly MongoId HANDGUARD_SAKO_TRG_M10_MLOK_15_INCH_HANDGUARD_ASSEMBLY = + new MongoId("67405fd0812f476fb2020066"); + public static readonly MongoId HANDGUARD_SKS_ATI_MONTE_CARLO_GAS_TUBE_COVER = new MongoId( + "653ecc425a1690d9d90491e4" + ); + public static readonly MongoId HANDGUARD_SKS_FAB_DEFENSE_UAS_GAS_TUBE_COVER = new MongoId( + "653ece125a1690d9d90491e8" + ); + public static readonly MongoId HANDGUARD_SKS_GAS_TUBE_COVER = new MongoId( + "634f08a21f9f536910079b5a" + ); + public static readonly MongoId HANDGUARD_SKS_TAPCO_RAILED_GAS_TUBE_COVER = new MongoId( + "653ecd065a1690d9d90491e6" + ); + public static readonly MongoId HANDGUARD_SOK12_BRAVO18_ALUMINIUM = new MongoId( + "5f63418ef5750b524b45f116" + ); + public static readonly MongoId HANDGUARD_SOK12_CHAOS_TITAN_QUAD_RAIL = new MongoId( + "674fe57721a9aa6be6045b96" + ); + public static readonly MongoId HANDGUARD_SOK12_CUSTOM_GUNS_TYPE340 = new MongoId( + "6086b5731246154cad35d6c7" + ); + public static readonly MongoId HANDGUARD_SOK12_LEAPERS_UTG_PRO_MTU002_LONG_TOP_ALUMINUM = + new MongoId("5827272a24597748c74bdeea"); + public static readonly MongoId HANDGUARD_SOK12_LEAPERS_UTG_PRO_MTU002_SHORT_TOP_ALUMINUM = + new MongoId("58272b392459774b4c7b3ccd"); + public static readonly MongoId HANDGUARD_SOK12_POLYMER = new MongoId( + "576169e62459773c69055191" + ); + public static readonly MongoId HANDGUARD_SR2M_POLYMER_HANDGUARD_BLACK = new MongoId( + "637ba19df7ca6372bf2613d7" + ); + public static readonly MongoId HANDGUARD_SR2M_POLYMER_HANDGUARD_PLUM = new MongoId( + "62e15547db1a5c41971c1b5e" + ); + public static readonly MongoId HANDGUARD_SR3M_POLYMER_HANDGUARD_BLACK = new MongoId( + "65144f546ddb773afa0e35e1" + ); + public static readonly MongoId HANDGUARD_SR3M_POLYMER_HANDGUARD_PLUM = new MongoId( + "6565c3ab977bcc2dbb01c2e7" + ); + public static readonly MongoId HANDGUARD_SR3M_RAILED_POLYMER_HANDGUARD_BLACK = new MongoId( + "6568a6bf2c5fb7afc70bc424" + ); + public static readonly MongoId HANDGUARD_SV98_CNC_GUNS_OVSV98_KEYMOD = new MongoId( + "623c3c1f37b4b31470357737" + ); + public static readonly MongoId HANDGUARD_SVD_CAA_XRSDRG = new MongoId( + "5e5699df2161e06ac158df6f" + ); + public static readonly MongoId HANDGUARD_SVD_MODERNIZATION_KIT = new MongoId( + "5e56991336989c75ab4f03f6" + ); + public static readonly MongoId HANDGUARD_SVD_SAG_MK1_CHASSIS = new MongoId( + "5dfcd0e547101c39625f66f9" + ); + public static readonly MongoId HANDGUARD_SVDS_POLYMER = new MongoId("5c471c6c2e221602b66cd9ae"); + public static readonly MongoId HANDGUARD_UZI_HANDGUARD_WITH_FOREGRIP = new MongoId( + "66993149558c59581e03c028" + ); + public static readonly MongoId HANDGUARD_UZI_KGRIP = new MongoId("6699313af74fef4dfd0b04f6"); + public static readonly MongoId HANDGUARD_UZI_POLYMER = new MongoId("6698c8c736ba38d29101770b"); + public static readonly MongoId HANDGUARD_UZI_PRO_A3_TACTICAL_MLOK = new MongoId( + "668031bde3e7eb26e8004cd7" + ); + public static readonly MongoId HANDGUARD_VELOCIRAPTOR_POLYMER = new MongoId( + "674d5e287075e056160e0176" + ); + public static readonly MongoId HANDGUARD_VPO136_VEPRKM_WOODEN = new MongoId( + "59e6284f86f77440d569536f" + ); + public static readonly MongoId HANDGUARD_VPO209_WOODEN = new MongoId( + "59e898ee86f77427614bd225" + ); + public static readonly MongoId HANDGUARD_VSK94 = new MongoId("6448f2f6d4928d46d30be3f6"); + public static readonly MongoId HANDGUARD_VSSVAL_POLYMER_HANDGUARD_BLACK = new MongoId( + "6565bb7eb4b12a56eb04b084" + ); + public static readonly MongoId HANDGUARD_VSSVAL_POLYMER_HANDGUARD_PLUM = new MongoId( + "651178336cad06c37c049eb4" + ); + public static readonly MongoId HANDGUARD_WASR1063_CAF_WOODEN_FOREGRIP = new MongoId( + "5d2c829448f0353a5c7d6674" + ); + public static readonly MongoId HEADPHONES_GSSH01_ACTIVE_HEADSET = new MongoId( + "5b432b965acfc47a8774094e" + ); + public static readonly MongoId HEADPHONES_MSA_SORDIN_SUPREME_PROXL_HEADSET = new MongoId( + "5aa2ba71e5b5b000137b758f" + ); + public static readonly MongoId HEADPHONES_OPSCORE_FAST_RAC_HEADSET = new MongoId( + "5a16b9fffcdbcb0176308b34" + ); + public static readonly MongoId HEADPHONES_OPSMEN_EARMOR_M32_HEADSET = new MongoId( + "6033fa48ffd42c541047f728" + ); + public static readonly MongoId HEADPHONES_PELTOR_COMTAC_II_HEADSET_OD_GREEN = new MongoId( + "5645bcc04bdc2d363b8b4572" + ); + public static readonly MongoId HEADPHONES_PELTOR_COMTAC_IV_HYBRID_HEADSET_COYOTE_BROWN = + new MongoId("628e4e576d783146b124c64d"); + public static readonly MongoId HEADPHONES_PELTOR_COMTAC_V_HEADSET_OD_GREEN = new MongoId( + "66b5f693acff495a294927e3" + ); + public static readonly MongoId HEADPHONES_PELTOR_COMTAC_VI_HEADSET_COYOTE_BROWN = new MongoId( + "66b5f6985891c84aab75ca76" + ); + public static readonly MongoId HEADPHONES_PELTOR_TACTICAL_SPORT_HEADSET = new MongoId( + "5c165d832e2216398b5a7e36" + ); + public static readonly MongoId HEADPHONES_SAFARILAND_LIBERATOR_HP_20_HEARING_PROTECTION_HEADSET_FDE = + new MongoId("66b5f68de98be930d701c00e"); + public static readonly MongoId HEADPHONES_TW_EXFIL_PELTOR_COMTAC_V_HEADSET_OD_GREEN = + new MongoId("66b5f69ea7f72d197e70bcdb"); + public static readonly MongoId HEADPHONES_TW_EXFIL_PELTOR_COMTAC_VI_HEADSET_COYOTE_BROWN = + new MongoId("66b5f6a28ca68c6461709ed8"); + public static readonly MongoId HEADPHONES_WALKERS_RAZOR_DIGITAL_HEADSET = new MongoId( + "5e4d34ca86f774264f758330" + ); + public static readonly MongoId HEADPHONES_WALKERS_XCEL_500BT_DIGITAL_HEADSET = new MongoId( + "5f60cd6cf2bcbb675b00dac6" + ); + public static readonly MongoId HEADWEAR_6B47_RATNIKBSH_HELMET_EMR_ARCTIC_COVER = new MongoId( + "6745895717824b1ec20570a6" + ); + public static readonly MongoId HEADWEAR_6B47_RATNIKBSH_HELMET_EMR_COVER = new MongoId( + "5aa7cfc0e5b5b00015693143" + ); + public static readonly MongoId HEADWEAR_6B47_RATNIKBSH_HELMET_OLIVE_DRAB = new MongoId( + "5a7c4850e899ef00150be885" + ); + public static readonly MongoId HEADWEAR_ALTYN_BULLETPROOF_HELMET_OLIVE_DRAB = new MongoId( + "5aa7e276e5b5b000171d0647" + ); + public static readonly MongoId HEADWEAR_ARMASIGHT_NVG_HEAD_STRAP = new MongoId( + "5c066ef40db834001966a595" + ); + public static readonly MongoId HEADWEAR_ARMY_CAP = new MongoId("59e770f986f7742cbe3164ef"); + public static readonly MongoId HEADWEAR_ARMY_CAP_BLACK = new MongoId( + "603618feffd42c541047f771" + ); + public static readonly MongoId HEADWEAR_ARMY_CAP_CADPAT = new MongoId( + "6040de02647ad86262233012" + ); + public static readonly MongoId HEADWEAR_ARMY_CAP_COYOTE_TAN = new MongoId( + "603619720ca681766b6a0fc4" + ); + public static readonly MongoId HEADWEAR_ARMY_CAP_DESERT = new MongoId( + "60361b0b5a45383c122086a1" + ); + public static readonly MongoId HEADWEAR_ARMY_CAP_FLORA = new MongoId( + "60361a7497633951dc245eb4" + ); + public static readonly MongoId HEADWEAR_ARMY_CAP_UCP = new MongoId("60361b5a9a15b10d96792291"); + public static readonly MongoId HEADWEAR_BALLISTIC_ARMOR_CO_BASTION_HELMET_ARMOR_BLACK = + new MongoId("66b5f65ca7f72d197e70bcd6"); + public static readonly MongoId HEADWEAR_BALLISTIC_ARMOR_CO_BASTION_HELMET_MULTICAM = + new MongoId("66b5f666cad6f002ab7214c2"); + public static readonly MongoId HEADWEAR_BALLISTIC_ARMOR_CO_BASTION_HELMET_OD_GREEN = + new MongoId("66b5f661af44ca0014063c05"); + public static readonly MongoId HEADWEAR_BANDANA = new MongoId("5b43271c5acfc432ff4dce65"); + public static readonly MongoId HEADWEAR_BASEBALL_CAP = new MongoId("572b7d8524597762b472f9d1"); + public static readonly MongoId HEADWEAR_BASMACH_LEATHER_CAP = new MongoId( + "65749ccf33fdc9c0cf06d3ca" + ); + public static readonly MongoId HEADWEAR_BEANIE = new MongoId("572b7fa124597762b472f9d2"); + public static readonly MongoId HEADWEAR_BEAR_BASEBALL_CAP_BLACK = new MongoId( + "5b40e5e25acfc4001a599bea" + ); + public static readonly MongoId HEADWEAR_BEAR_BASEBALL_CAP_OLIVE_DRAB = new MongoId( + "5aa2b87de5b5b00016327c25" + ); + public static readonly MongoId HEADWEAR_BERET_BLACK = new MongoId("5f60e6403b85f6263c14558c"); + public static readonly MongoId HEADWEAR_BERET_BLUE = new MongoId("5f60e7788adaa7100c3adb49"); + public static readonly MongoId HEADWEAR_BERET_OLIVE_DRAB = new MongoId( + "5f60e784f2bcbb675b00dac7" + ); + public static readonly MongoId HEADWEAR_BIG_PIPES_BANDANA = new MongoId( + "628e4dd1f477aa12234918aa" + ); + public static readonly MongoId HEADWEAR_BNTI_LSHZ2DTM_HELMET_BLACK = new MongoId( + "5d6d3716a4b9361bc8618872" + ); + public static readonly MongoId HEADWEAR_BOMBER_BEANIE = new MongoId("60bf74184a63fc79b60c57f6"); + public static readonly MongoId HEADWEAR_BOSS_CAP = new MongoId("60a7acf20c5cb24b01346648"); + public static readonly MongoId HEADWEAR_CRYE_PRECISION_AIRFRAME_HELMET_TAN = new MongoId( + "5c17a7ed2e2216152142459c" + ); + public static readonly MongoId HEADWEAR_DED_MOROZ_HAT = new MongoId("5a43943586f77416ad2f06e2"); + public static readonly MongoId HEADWEAR_DEVTAC_RONIN_BALLISTIC_HELMET = new MongoId( + "66bdc28a0b603c26902b2011" + ); + public static readonly MongoId HEADWEAR_DEVTAC_RONIN_RESPIRATOR = new MongoId( + "5b4329f05acfc47a86086aa1" + ); + public static readonly MongoId HEADWEAR_DIAMOND_AGE_BASTION_HELMET_BLACK = new MongoId( + "5ea17ca01412a1425304d1c0" + ); + public static readonly MongoId HEADWEAR_DIAMOND_AGE_NEOSTEEL_HIGH_CUT_HELMET_BLACK = + new MongoId("65709d2d21b9f815e208ff95"); + public static readonly MongoId HEADWEAR_DOOR_KICKER_BOONIE_HAT = new MongoId( + "5d96141523f0ea1b7f2aacab" + ); + public static readonly MongoId HEADWEAR_ELF_HAT = new MongoId("675aadf3003bb2e826030996"); + public static readonly MongoId HEADWEAR_EMERCOM_CAP = new MongoId("5aa2b89be5b5b0001569311f"); + public static readonly MongoId HEADWEAR_FORT_KIVERM_BULLETPROOF_HELMET = new MongoId( + "5645bc214bdc2d363b8b4571" + ); + public static readonly MongoId HEADWEAR_GALVION_CAIMAN_HYBRID_HELMET_GREY = new MongoId( + "5f60b34a41e30a4ab12a6947" + ); + public static readonly MongoId HEADWEAR_GUS_BASEBALL_CAP = new MongoId( + "65749cb8e0423b9ebe0c79c9" + ); + public static readonly MongoId HEADWEAR_HAT_WITH_HORNS = new MongoId( + "675aae1c26dc64e17800fee6" + ); + public static readonly MongoId HEADWEAR_HIGHCOM_STRIKER_ACHHC_IIIA_HELMET_BLACK = new MongoId( + "5b40e3f35acfc40016388218" + ); + public static readonly MongoId HEADWEAR_HIGHCOM_STRIKER_ACHHC_IIIA_HELMET_OLIVE_DRAB = + new MongoId("5b40e4035acfc47a87740943"); + public static readonly MongoId HEADWEAR_HIGHCOM_STRIKER_ULACH_IIIA_HELMET_BLACK = new MongoId( + "5b40e1525acfc4771e1c6611" + ); + public static readonly MongoId HEADWEAR_HIGHCOM_STRIKER_ULACH_IIIA_HELMET_DESERT_TAN = + new MongoId("5b40e2bc5acfc40016388216"); + public static readonly MongoId HEADWEAR_JACK_PYKE_HUNTING_LLCS_BOONIE_HAT = new MongoId( + "618aef6d0a5a59657e5f55ee" + ); + public static readonly MongoId HEADWEAR_JACKOLANTERN_TACTICAL_PUMPKIN_HELMET = new MongoId( + "59ef13ca86f77445fd0e2483" + ); + public static readonly MongoId HEADWEAR_KINDA_COWBOY_HAT = new MongoId( + "5aa2b9ede5b5b000137b758b" + ); + public static readonly MongoId HEADWEAR_KOLPAK1S_RIOT_HELMET = new MongoId( + "59e7711e86f7746cae05fbe1" + ); + public static readonly MongoId HEADWEAR_KOTTON_BEANIE = new MongoId("5bd073c986f7747f627e796c"); + public static readonly MongoId HEADWEAR_LEATHER_CAP = new MongoId("61c18db6dfd64163ea78fbb4"); + public static readonly MongoId HEADWEAR_LSHZ_LIGHTWEIGHT_HELMET_OLIVE_DRAB = new MongoId( + "5b432d215acfc4771e1c6624" + ); + public static readonly MongoId HEADWEAR_MASKA1SCH_BULLETPROOF_HELMET_CHRISTMAS_EDITION = + new MongoId("6759af0f9c8a538dd70bfae6"); + public static readonly MongoId HEADWEAR_MASKA1SCH_BULLETPROOF_HELMET_KILLA_EDITION = + new MongoId("5c0e874186f7745dc7616606"); + public static readonly MongoId HEADWEAR_MASKA1SCH_BULLETPROOF_HELMET_OLIVE_DRAB = new MongoId( + "5c091a4e0db834001d5addc8" + ); + public static readonly MongoId HEADWEAR_MILTEC_BOONIE_HAT = new MongoId( + "5b4327aa5acfc400175496e0" + ); + public static readonly MongoId HEADWEAR_MSA_ACH_TC2001_MICH_SERIES_HELMET_OLIVE_DRAB = + new MongoId("5d5e7d28a4b936645d161203"); + public static readonly MongoId HEADWEAR_MSA_ACH_TC2002_MICH_SERIES_HELMET_OLIVE_DRAB = + new MongoId("5d5e9c74a4b9364855191c40"); + public static readonly MongoId HEADWEAR_MSA_GALLET_TC_800_HIGH_CUT_COMBAT_HELMET_BLACK = + new MongoId("5e4bfc1586f774264f7582d3"); + public static readonly MongoId HEADWEAR_MTEK_FLUX_BALLISTIC_HELMET_MULTICAM_ALPINE = + new MongoId("675956062f6ddfe8ff0e2806"); + public static readonly MongoId HEADWEAR_MTEK_FLUX_BALLISTIC_HELMET_OLIVE_DRAB = new MongoId( + "6759655674aa5e0825040d62" + ); + public static readonly MongoId HEADWEAR_MTEK_STRIKE_BALLISTIC_HELMET_COYOTE = new MongoId( + "67597ceea35600b4c10cea86" + ); + public static readonly MongoId HEADWEAR_MTEK_STRIKE_BALLISTIC_HELMET_COYOTEMULTICAM_ARID = + new MongoId("67597d241d5a44f2f605df06"); + public static readonly MongoId HEADWEAR_NFM_HJELM_HELMET_HELLHOUND_GREY = new MongoId( + "61bca7cda0eae612383adf57" + ); + public static readonly MongoId HEADWEAR_NPP_KLASS_TOR2_HELMET_OLIVE_DRAB = new MongoId( + "65719f0775149d62ce0a670b" + ); + public static readonly MongoId HEADWEAR_OPSCORE_FAST_MT_SUPER_HIGH_CUT_HELMET_BLACK = + new MongoId("5a154d5cfcdbcb001a3b00da"); + public static readonly MongoId HEADWEAR_OPSCORE_FAST_MT_SUPER_HIGH_CUT_HELMET_URBAN_TAN = + new MongoId("5ac8d6885acfc400180ae7b0"); + public static readonly MongoId HEADWEAR_POLICE_CAP = new MongoId("5aa2b8d7e5b5b00014028f4a"); + public static readonly MongoId HEADWEAR_POMPON_HAT = new MongoId("5b4329075acfc400153b78ff"); + public static readonly MongoId HEADWEAR_PSH97_DJETA_RIOT_HELMET = new MongoId( + "5c0d2727d174af02a012cf58" + ); + public static readonly MongoId HEADWEAR_RIVALS_2020_BEANIE = new MongoId( + "5f994730c91ed922dd355de3" + ); + public static readonly MongoId HEADWEAR_RIVALS_2020_CAP = new MongoId( + "5f99418230835532b445e954" + ); + public static readonly MongoId HEADWEAR_RYST_BULLETPROOF_HELMET_BLACK = new MongoId( + "5f60c74e3b85f6263c145586" + ); + public static readonly MongoId HEADWEAR_SANTA_HAT = new MongoId("5a43957686f7742a2c2f11b0"); + public static readonly MongoId HEADWEAR_SHPM_FIREFIGHTER_HELMET = new MongoId( + "5c08f87c0db8340019124324" + ); + public static readonly MongoId HEADWEAR_SKI_HAT_WITH_HOLES_FOR_EYES = new MongoId( + "5ab8f20c86f7745cdb629fb2" + ); + public static readonly MongoId HEADWEAR_SSH68_STEEL_HELMET_OLIVE_DRAB = new MongoId( + "5c06c6a80db834001b735491" + ); + public static readonly MongoId HEADWEAR_SSSH94_SFERAS_HELMET = new MongoId( + "5aa7d193e5b5b000171d063f" + ); + public static readonly MongoId HEADWEAR_STICH_PROFI_CHIMERA_BOONIE_HAT = new MongoId( + "60b52e5bc7d8103275739d67" + ); + public static readonly MongoId HEADWEAR_TACKEK_FAST_MT_HELMET_REPLICA = new MongoId( + "5ea05cf85ad9772e6624305d" + ); + public static readonly MongoId HEADWEAR_TACTICAL_FLEECE_BEANIE_TAN = new MongoId( + "5aa2ba19e5b5b00014028f4e" + ); + public static readonly MongoId HEADWEAR_TEAM_WENDY_EXFIL_BALLISTIC_HELMET_BLACK = new MongoId( + "5e00c1ad86f774747333222c" + ); + public static readonly MongoId HEADWEAR_TEAM_WENDY_EXFIL_BALLISTIC_HELMET_COYOTE_BROWN = + new MongoId("5e01ef6886f77445f643baa4"); + public static readonly MongoId HEADWEAR_TSH4ML_SOFT_TANK_CREW_HELMET = new MongoId( + "5df8a58286f77412631087ed" + ); + public static readonly MongoId HEADWEAR_UNTAR_HELMET = new MongoId("5aa7d03ae5b5b00016327db5"); + public static readonly MongoId HEADWEAR_USEC_BASEBALL_CAP_BLACK = new MongoId( + "5b40e61f5acfc4001a599bec" + ); + public static readonly MongoId HEADWEAR_USEC_BASEBALL_CAP_COYOTE = new MongoId( + "5aa2a7e8e5b5b00016327c16" + ); + public static readonly MongoId HEADWEAR_USHANKA_EAR_FLAP_HAT = new MongoId( + "59e7708286f7742cbd762753" + ); + public static readonly MongoId HEADWEAR_UX_PRO_BEANIE = new MongoId("5aa2ba46e5b5b000137b758d"); + public static readonly MongoId HEADWEAR_VENGEFUL_ZRYACHIYS_BALACLAVA_FOLDED = new MongoId( + "6531119b9afebff7ff0a1769" + ); + public static readonly MongoId HEADWEAR_VULKAN5_LSHZ5_BULLETPROOF_HELMET_BLACK = new MongoId( + "5ca20ee186f774799474abc2" + ); + public static readonly MongoId HEADWEAR_WILCOX_SKULL_LOCK_HEAD_MOUNT = new MongoId( + "5a16bb52fcdbcb001a3b00dc" + ); + public static readonly MongoId HEADWEAR_ZRYACHIYS_BALACLAVA_FOLDED = new MongoId( + "636270263f2495c26f00b007" + ); + public static readonly MongoId HEADWEAR_ZSH12M_HELMET_BLACK_COVER = new MongoId( + "5aa7e4a4e5b5b000137b76f2" + ); + public static readonly MongoId HEADWEAR_ZSH12M_HELMET_OLIVE_DRAB = new MongoId( + "5aa7e454e5b5b0214e506fa2" + ); + public static readonly MongoId HIDEOUTAREACONTAINER_CIRCLEOFCULTISTS_STASH_1 = new MongoId( + "66740c3739b9da6ce402ee65" + ); + public static readonly MongoId HIDEOUTAREACONTAINER_CUSTOMIZATION = new MongoId( + "673c7b00cbf4b984b5099181" + ); + public static readonly MongoId HIDEOUTAREACONTAINER_EQUIPMENTPRESETSTAND_STASH_1 = new MongoId( + "65e5957613227bb7690ce9f6" + ); + public static readonly MongoId HIDEOUTAREACONTAINER_EQUIPMENTPRESETSTAND_STASH_2 = new MongoId( + "65e597266017f07a3204b775" + ); + public static readonly MongoId HIDEOUTAREACONTAINER_EQUIPMENTPRESETSTAND_STASH_3 = new MongoId( + "65e5972a13227bb7690cea07" + ); + public static readonly MongoId HIDEOUTAREACONTAINER_PLACEOFFAME_STASH_1 = new MongoId( + "63dbd45917fff4dee40fe16e" + ); + public static readonly MongoId HIDEOUTAREACONTAINER_PLACEOFFAME_STASH_2 = new MongoId( + "65424185a57eea37ed6562e9" + ); + public static readonly MongoId HIDEOUTAREACONTAINER_PLACEOFFAME_STASH_3 = new MongoId( + "6542435ea57eea37ed6562f0" + ); + public static readonly MongoId HIDEOUTAREACONTAINER_WEAPONSTAND_STASH_1 = new MongoId( + "6401c7b213d9b818bf0e7dd7" + ); + public static readonly MongoId HIDEOUTAREACONTAINER_WEAPONSTAND_STASH_2 = new MongoId( + "64381b582bb1c5dedd0fc925" + ); + public static readonly MongoId HIDEOUTAREACONTAINER_WEAPONSTAND_STASH_3 = new MongoId( + "64381b6e44b37a080d0245b9" + ); + public static readonly MongoId INFO_ADVANCED_ELECTRONIC_MATERIALS_TEXTBOOK = new MongoId( + "6389c92d52123d5dd17f8876" + ); + public static readonly MongoId INFO_BAKEEZY_COOK_BOOK = new MongoId("62a09e73af34e73a266d932a"); + public static readonly MongoId INFO_DECRYPTED_FLASH_DRIVE = new MongoId( + "660bbc98c38b837877075e4a" + ); + public static readonly MongoId INFO_DIARY = new MongoId("590c645c86f77412b01304d9"); + public static readonly MongoId INFO_DOCUMENTS_WITH_DECRYPTED_DATA = new MongoId( + "660bc341c38b837877075e4c" + ); + public static readonly MongoId INFO_ENCRYPTED_FLASH_DRIVE = new MongoId( + "660bbc47c38b837877075e47" + ); + public static readonly MongoId INFO_FLASH_DRIVE_WITH_SPECIAL_SOFTWARE = new MongoId( + "6707d13e4e617ec94f0e5631" + ); + public static readonly MongoId INFO_INTELLIGENCE_FOLDER = new MongoId( + "5c12613b86f7743bbe2c3f76" + ); + public static readonly MongoId INFO_LABRYS_RESEARCH_NOTES = new MongoId( + "679b992329acd1f2f60985a5" + ); + public static readonly MongoId INFO_MILITARY_FLASH_DRIVE = new MongoId( + "62a0a16d0b9d3c46de5b6e97" + ); + public static readonly MongoId INFO_MINEFIELD_MAP_LIGHTHOUSE = new MongoId( + "675aaa8f7f3c962069072b27" + ); + public static readonly MongoId INFO_MINEFIELD_MAP_RESERVE = new MongoId( + "675aaa003107dac10006332f" + ); + public static readonly MongoId INFO_MINEFIELD_MAP_WOODS = new MongoId( + "675aaa9a3107dac100063331" + ); + public static readonly MongoId INFO_NOTE_WITH_CODE_WORD_ADAPTATION = new MongoId( + "675aaae75a3ab8372d0b02a7" + ); + public static readonly MongoId INFO_NOTE_WITH_CODE_WORD_ARK = new MongoId( + "675aaaf674a7619a5304c233" + ); + public static readonly MongoId INFO_NOTE_WITH_CODE_WORD_HEARTBEAT = new MongoId( + "675aab0d6b6addc02a08f097" + ); + public static readonly MongoId INFO_NOTE_WITH_CODE_WORD_ONYX = new MongoId( + "675aaae1dcf102478202c537" + ); + public static readonly MongoId INFO_NOTE_WITH_CODE_WORD_VORON = new MongoId( + "675aaab74bca0b001d02f356" + ); + public static readonly MongoId INFO_SAS_DRIVE = new MongoId("590c37d286f77443be3d7827"); + public static readonly MongoId INFO_SECURE_FLASH_DRIVE = new MongoId( + "590c621186f774138d11ea29" + ); + public static readonly MongoId INFO_SECURE_FLASH_DRIVE_V2 = new MongoId( + "6331ba83f2ab4f3f09502983" + ); + public static readonly MongoId INFO_SECURE_MAGNETIC_TAPE_CASSETTE = new MongoId( + "61bf7c024770ee6f9c6b8b53" + ); + public static readonly MongoId INFO_SILICON_OPTOELECTRONIC_INTEGRATED_CIRCUITS_TEXTBOOK = + new MongoId("6389c8fb46b54c634724d847"); + public static readonly MongoId INFO_SLIM_DIARY = new MongoId("590c651286f7741e566b6461"); + public static readonly MongoId INFO_SSD_DRIVE = new MongoId("590c392f86f77444754deb29"); + public static readonly MongoId INFO_TECH_MANUAL = new MongoId("590c639286f774151567fa95"); + public static readonly MongoId INFO_TERRAGROUP_BLUE_FOLDERS_MATERIALS = new MongoId( + "6389c8c5dbfd5e4b95197e6b" + ); + public static readonly MongoId INFO_TGVI24_LETHAL_VACCINE = new MongoId( + "6707d0804e617ec94f0e562f" + ); + public static readonly MongoId INFO_TGVI24_TRUE_VACCINE = new MongoId( + "6707d0bdaab679420007e01a" + ); + public static readonly MongoId INFO_TOPOGRAPHIC_SURVEY_MAPS = new MongoId( + "62a0a124de7ac81993580542" + ); + public static readonly MongoId INFO_VIDEO_CASSETTE_WITH_THE_CYBORG_KILLER_MOVIE = new MongoId( + "62a09e974f842e1bd12da3f0" + ); + public static readonly MongoId INVENTORY_DEFAULT = new MongoId("55d7217a4bdc2d86028b456d"); + public static readonly MongoId IRONSIGHT_AK_RD_ENHANCED_V2_REAR_SIGHT = new MongoId( + "628a7b23b0f75035732dd565" + ); + public static readonly MongoId IRONSIGHT_AK_TAKTIKA_TULA_TT01_REAR_SIGHT_RAIL = new MongoId( + "5649d9a14bdc2d79388b4580" + ); + public static readonly MongoId IRONSIGHT_AK105_REAR_SIGHT = new MongoId( + "5ac733a45acfc400192630e2" + ); + public static readonly MongoId IRONSIGHT_AK12_REAR_SIGHT = new MongoId( + "649ec2cec93611967b03495e" + ); + public static readonly MongoId IRONSIGHT_AK12_REAR_SIGHT_MOUNT = new MongoId( + "649ec2da59cbb3c813042dca" + ); + public static readonly MongoId IRONSIGHT_AK545_REAR_SIGHT = new MongoId( + "628b9471078f94059a4b9bfb" + ); + public static readonly MongoId IRONSIGHT_AK74_REAR_SIGHT = new MongoId( + "5649b0544bdc2d1b2b8b458a" + ); + public static readonly MongoId IRONSIGHT_AK74M_REAR_SIGHT = new MongoId( + "5ac72e475acfc400180ae6fe" + ); + public static readonly MongoId IRONSIGHT_AKM_REAR_SIGHT = new MongoId( + "59d650cf86f7741b846413a4" + ); + public static readonly MongoId IRONSIGHT_AKMB_SYSTEM_REAR_SIGHT = new MongoId( + "5a0eb980fcdbcb001a3b00a6" + ); + public static readonly MongoId IRONSIGHT_AKMP_SYSTEM_FRONT_SIGHT_DEVICE = new MongoId( + "5a0f096dfcdbcb0176308b15" + ); + public static readonly MongoId IRONSIGHT_AKMP_SYSTEM_REAR_SIGHT_DEVICE = new MongoId( + "5a0ed824fcdbcb0176308b0d" + ); + public static readonly MongoId IRONSIGHT_APB_REAR_SIGHT = new MongoId( + "5aba639ed8ce8700182ece67" + ); + public static readonly MongoId IRONSIGHT_APS_FRONT_SIGHT = new MongoId( + "5aba62f8d8ce87001943946b" + ); + public static readonly MongoId IRONSIGHT_APS_REAR_SIGHT = new MongoId( + "5aba637ad8ce87001773e17f" + ); + public static readonly MongoId IRONSIGHT_AR15_COLT_A2_REAR_SIGHT = new MongoId( + "55d5f46a4bdc2d1b198b4567" + ); + public static readonly MongoId IRONSIGHT_AR15_LEAPERS_UTG_LOW_PROFILE_A2_FRONT_SIGHT = + new MongoId("55d4af3a4bdc2d972f8b456f"); + public static readonly MongoId IRONSIGHT_AR15_REAR_SIGHT_CARRY_HANDLE = new MongoId( + "5ae30bad5acfc400185c2dc4" + ); + public static readonly MongoId IRONSIGHT_AS_VAL_REAR_SIGHT = new MongoId( + "57c44e7b2459772d28133248" + ); + public static readonly MongoId IRONSIGHT_ASH12_FOLDING_FRONT_SIGHT = new MongoId( + "5caf16a2ae92152ac412efbc" + ); + public static readonly MongoId IRONSIGHT_ASH12_REAR_SIGHT_CARRY_HANDLE = new MongoId( + "5caf1691ae92152ac412efb9" + ); + public static readonly MongoId IRONSIGHT_BENELLI_M3_GHOST_RING_REAR_SIGHT = new MongoId( + "625ebcef6f53af4aa66b44dc" + ); + public static readonly MongoId IRONSIGHT_CHAOS_HK_STYLE_FRONT_SIGHT = new MongoId( + "674fe8dd362ea1f88b0e2792" + ); + public static readonly MongoId IRONSIGHT_CHAOS_HK_STYLE_REAR_SIGHT = new MongoId( + "674fe8cf4472d471fb0f07df" + ); + public static readonly MongoId IRONSIGHT_CHIAPPA_RHINO_FRONT_SIGHT = new MongoId( + "619f4d304c58466fe1228437" + ); + public static readonly MongoId IRONSIGHT_CHIAPPA_RHINO_REAR_SIGHT = new MongoId( + "619f4cee4c58466fe1228435" + ); + public static readonly MongoId IRONSIGHT_CHIAPPA_RHINO_RED_FIBER_OPTIC_FRONT_SIGHT = + new MongoId("619f52454c58466fe122843b"); + public static readonly MongoId IRONSIGHT_CHIAPPA_RHINO_RED_FIBER_OPTIC_REAR_SIGHT = new MongoId( + "619f4f8c4c58466fe1228439" + ); + public static readonly MongoId IRONSIGHT_DESERT_EAGLE_FRONT_SIGHT = new MongoId( + "668fe5ec4315934ba10c6f96" + ); + public static readonly MongoId IRONSIGHT_DESERT_EAGLE_REAR_SIGHT = new MongoId( + "668fe5e1800f0244f9036e46" + ); + public static readonly MongoId IRONSIGHT_FN_FIVESEVEN_MK2_FRONT_SIGHT = new MongoId( + "5d3eb536a4b9363b1f22f8e2" + ); + public static readonly MongoId IRONSIGHT_FN_FIVESEVEN_MK2_REAR_SIGHT = new MongoId( + "5d3eb4aba4b93650d64e497d" + ); + public static readonly MongoId IRONSIGHT_FN_SCAR_FLIPUP_FRONT_SIGHT = new MongoId( + "61816fcad92c473c770215cc" + ); + public static readonly MongoId IRONSIGHT_FN_SCAR_FLIPUP_REAR_SIGHT = new MongoId( + "61817865d3a39d50044c13a4" + ); + public static readonly MongoId IRONSIGHT_GLOCK_19X_FRONT_SIGHT = new MongoId( + "630765777d50ff5e8a1ea718" + ); + public static readonly MongoId IRONSIGHT_GLOCK_19X_REAR_SIGHT = new MongoId( + "630765cb962d0247b029dc45" + ); + public static readonly MongoId IRONSIGHT_GLOCK_DEAD_RINGER_SNAKE_EYE_FRONT_SIGHT = new MongoId( + "5a7d90eb159bd400165484f1" + ); + public static readonly MongoId IRONSIGHT_GLOCK_DEAD_RINGER_SNAKE_EYE_REAR_SIGHT = new MongoId( + "5a7d9122159bd4001438dbf4" + ); + public static readonly MongoId IRONSIGHT_GLOCK_FRONT_SIGHT = new MongoId( + "5a6f58f68dc32e000a311390" + ); + public static readonly MongoId IRONSIGHT_GLOCK_REAR_SIGHT = new MongoId( + "5a6f5d528dc32e00094b97d9" + ); + public static readonly MongoId IRONSIGHT_GLOCK_TRUGLO_TFX_FRONT_SIGHT = new MongoId( + "5a7d9104159bd400134c8c21" + ); + public static readonly MongoId IRONSIGHT_GLOCK_TRUGLO_TFX_REAR_SIGHT = new MongoId( + "5a7d912f159bd400165484f3" + ); + public static readonly MongoId IRONSIGHT_GLOCK_ZEV_TECH_FRONT_SIGHT = new MongoId( + "5a71e0048dc32e000c52ecc8" + ); + public static readonly MongoId IRONSIGHT_GLOCK_ZEV_TECH_REAR_SIGHT = new MongoId( + "5a71e0fb8dc32e00094b97f2" + ); + public static readonly MongoId IRONSIGHT_HK_416A5_FLIPUP_REAR_SIGHT = new MongoId( + "5bb20e49d4351e3bac1212de" + ); + public static readonly MongoId IRONSIGHT_HK_G36_FRONT_SIGHT = new MongoId( + "623166e08c43374ca1567195" + ); + public static readonly MongoId IRONSIGHT_HK_G36_REAR_SIGHT = new MongoId( + "6231670f0b8aa5472d060095" + ); + public static readonly MongoId IRONSIGHT_HK_MP5_DRUM_REAR_SIGHT = new MongoId( + "5926d2be86f774134d668e4e" + ); + public static readonly MongoId IRONSIGHT_HK_MP7_FLIPUP_FRONT_SIGHT = new MongoId( + "5ba26b01d4351e0085325a51" + ); + public static readonly MongoId IRONSIGHT_HK_MP7_FLIPUP_REAR_SIGHT = new MongoId( + "5ba26b17d4351e00367f9bdd" + ); + public static readonly MongoId IRONSIGHT_HK_USP_FRONT_SIGHT = new MongoId( + "6194f35c18a3974e5e7421e6" + ); + public static readonly MongoId IRONSIGHT_HK_USP_REAR_SIGHT = new MongoId( + "6194f2912d2c397d6600348d" + ); + public static readonly MongoId IRONSIGHT_HK_USP_RED_DOT_SIGHT_MOUNT = new MongoId( + "61963a852d2c397d660036ad" + ); + public static readonly MongoId IRONSIGHT_HK_USP_TACTICAL_FRONT_SIGHT = new MongoId( + "6194f3286db0f2477964e67d" + ); + public static readonly MongoId IRONSIGHT_HK_USP_TACTICAL_REAR_SIGHT = new MongoId( + "6194f2df645b5d229654ad77" + ); + public static readonly MongoId IRONSIGHT_KAC_FOLDING_FRONT_SIGHT = new MongoId( + "5c17804b2e2216152006c02f" + ); + public static readonly MongoId IRONSIGHT_KAC_FOLDING_MICRO_FRONT_SIGHT = new MongoId( + "5dfa3d950dee1b22f862eae0" + ); + public static readonly MongoId IRONSIGHT_KAC_FOLDING_MICRO_REAR_SIGHT = new MongoId( + "5dfa3d7ac41b2312ea33362a" + ); + public static readonly MongoId IRONSIGHT_KAC_FOLDING_REAR_SIGHT = new MongoId( + "5c1780312e221602b66cc189" + ); + public static readonly MongoId IRONSIGHT_KRISS_DEFIANCE_LOW_PROFILE_FLIPUP_FRONT_SIGHT = + new MongoId("5fb6567747ce63734e3fa1dc"); + public static readonly MongoId IRONSIGHT_KRISS_DEFIANCE_LOW_PROFILE_FLIPUP_REAR_SIGHT = + new MongoId("5fb6564947ce63734e3fa1da"); + public static readonly MongoId IRONSIGHT_M14_SA_ENLARGED_MILITARY_APERTURE_REAR_SIGHT = + new MongoId("5abcbb20d8ce87001773e258"); + public static readonly MongoId IRONSIGHT_M1911A1_FRONT_SIGHT = new MongoId( + "5e81ee213397a21db957f6a6" + ); + public static readonly MongoId IRONSIGHT_M1911A1_REAR_SIGHT = new MongoId( + "5e81ee4dcb2b95385c177582" + ); + public static readonly MongoId IRONSIGHT_M1A_SA_NATIONAL_MATCH_062_BLADE_FRONT_SIGHT = + new MongoId("5addba3e5acfc4001669f0ab"); + public static readonly MongoId IRONSIGHT_M1A_SA_XS_POST_125_BLADE_FRONT_SIGHT = new MongoId( + "5aafa49ae5b5b00015042a58" + ); + public static readonly MongoId IRONSIGHT_M45A1_NOVAK_LOMOUNT_FRONT_SIGHT = new MongoId( + "5f3e78a7fbf956000b716b8e" + ); + public static readonly MongoId IRONSIGHT_M45A1_NOVAK_LOMOUNT_REAR_SIGHT = new MongoId( + "5f3e7897ddc4f03b010e204a" + ); + public static readonly MongoId IRONSIGHT_M60_REAR_SIGHT = new MongoId( + "6601265f98a610c1aa0ea637" + ); + public static readonly MongoId IRONSIGHT_M60E4_FRONT_SIGHT = new MongoId( + "6601268bc752a02bbe05e686" + ); + public static readonly MongoId IRONSIGHT_M60E6_FRONT_SIGHT_RAIL = new MongoId( + "660126a98f2b23af220b27e7" + ); + public static readonly MongoId IRONSIGHT_M9A3_FRONT_SIGHT = new MongoId( + "5cadd919ae921500126a77f3" + ); + public static readonly MongoId IRONSIGHT_M9A3_REAR_SIGHT = new MongoId( + "5cadd940ae9215051e1c2316" + ); + public static readonly MongoId IRONSIGHT_M9A3_SIGHT_MOUNT_REAR_SIGHT_RAIL = new MongoId( + "5cadd954ae921500103bb3c2" + ); + public static readonly MongoId IRONSIGHT_MAGPUL_MBUS_GEN2_FLIPUP_FRONT_SIGHT = new MongoId( + "5bc09a30d4351e00367fb7c8" + ); + public static readonly MongoId IRONSIGHT_MAGPUL_MBUS_GEN2_FLIPUP_FRONT_SIGHT_FDE = new MongoId( + "5c18b90d2e2216152142466b" + ); + public static readonly MongoId IRONSIGHT_MAGPUL_MBUS_GEN2_FLIPUP_REAR_SIGHT = new MongoId( + "5bc09a18d4351e003562b68e" + ); + public static readonly MongoId IRONSIGHT_MAGPUL_MBUS_GEN2_FLIPUP_REAR_SIGHT_FDE = new MongoId( + "5c18b9192e2216398b5a8104" + ); + public static readonly MongoId IRONSIGHT_MCX_FLIPUP_FRONT_SIGHT = new MongoId( + "5fc0fa362770a0045c59c677" + ); + public static readonly MongoId IRONSIGHT_MCX_FLIPUP_REAR_SIGHT = new MongoId( + "5fc0fa957283c4046c58147e" + ); + public static readonly MongoId IRONSIGHT_MOSIN_RIFLE_CARBINE_REAR_SIGHT = new MongoId( + "5bfd4c980db834001b73449d" + ); + public static readonly MongoId IRONSIGHT_MOSIN_RIFLE_FRONT_SIGHT = new MongoId( + "5ae099875acfc4001714e593" + ); + public static readonly MongoId IRONSIGHT_MOSIN_RIFLE_REAR_SIGHT = new MongoId( + "5ae099925acfc4001a5fc7b3" + ); + public static readonly MongoId IRONSIGHT_MOSSBERG_590_GHOST_RING_FRONT_SIGHT = new MongoId( + "5e8708d4ae379e67d22e0102" + ); + public static readonly MongoId IRONSIGHT_MOSSBERG_590_GHOST_RING_REAR_SIGHT = new MongoId( + "5e87114fe2db31558c75a120" + ); + public static readonly MongoId IRONSIGHT_MP9_REAR_SIGHT = new MongoId( + "5de8fb539f98ac2bc659513a" + ); + public static readonly MongoId IRONSIGHT_MPX_FLIPUP_FRONT_SIGHT = new MongoId( + "5894a73486f77426d259076c" + ); + public static readonly MongoId IRONSIGHT_MPX_FLIPUP_REAR_SIGHT = new MongoId( + "5894a81786f77427140b8347" + ); + public static readonly MongoId IRONSIGHT_P226_FRONT_SIGHT = new MongoId( + "56d5a661d2720bd8418b456b" + ); + public static readonly MongoId IRONSIGHT_P226_MEPROLIGHT_TRUDOT_NIGHT_FRONT_SIGHT = new MongoId( + "5c07b36c0db834002a1259e9" + ); + public static readonly MongoId IRONSIGHT_P226_MEPROLIGHT_TRUDOT_NIGHT_REAR_SIGHT = new MongoId( + "5c07b3850db834002330045b" + ); + public static readonly MongoId IRONSIGHT_P226_REAR_SIGHT = new MongoId( + "56d5a77ed2720b90418b4568" + ); + public static readonly MongoId IRONSIGHT_P226_SIGHT_MOUNT_220239_REAR_SIGHT_BEARING = + new MongoId("56ea7293d2720b8d4b8b45ba"); + public static readonly MongoId IRONSIGHT_PK_REAR_SIGHT = new MongoId( + "6492fb8253acae0af00a29b6" + ); + public static readonly MongoId IRONSIGHT_PL15_EXTENDED_FRONT_SIGHT = new MongoId( + "60228a850ddce744014caf69" + ); + public static readonly MongoId IRONSIGHT_PL15_EXTENDED_REAR_SIGHT = new MongoId( + "602293f023506e50807090cb" + ); + public static readonly MongoId IRONSIGHT_PL15_FRONT_SIGHT = new MongoId( + "60228a76d62c9b14ed777a66" + ); + public static readonly MongoId IRONSIGHT_PL15_REAR_SIGHT = new MongoId( + "60229948cacb6b0506369e27" + ); + public static readonly MongoId IRONSIGHT_PM_REAR_SIGHT = new MongoId( + "63c6adcfb4ba094317063742" + ); + public static readonly MongoId IRONSIGHT_PP1901_VITYAZ_REAR_SIGHT = new MongoId( + "599860e986f7743bb57573a6" + ); + public static readonly MongoId IRONSIGHT_RPD_REAR_SIGHT = new MongoId( + "6513f153e63f29908d0ffaba" + ); + public static readonly MongoId IRONSIGHT_RPK16_REAR_SIGHT = new MongoId( + "5bf3f59f0db834001a6fa060" + ); + public static readonly MongoId IRONSIGHT_RPK16_REAR_SIGHT_BASE = new MongoId( + "5beec9450db83400970084fd" + ); + public static readonly MongoId IRONSIGHT_SA58_HOLLAND_TYPE_REAR_SIGHT = new MongoId( + "5b0bc22d5acfc47a8607f085" + ); + public static readonly MongoId IRONSIGHT_SKS_REAR_SIGHT = new MongoId( + "574db213245977459a2f3f5d" + ); + public static readonly MongoId IRONSIGHT_SOK12_CSS_REAR_SIGHT_RAIL_MOUNT = new MongoId( + "58272b842459774abc128d50" + ); + public static readonly MongoId IRONSIGHT_SOK12_REAR_SIGHT = new MongoId( + "57a9b9ce2459770ee926038d" + ); + public static readonly MongoId IRONSIGHT_SV98_REAR_SIGHT = new MongoId( + "56083e1b4bdc2dc8488b4572" + ); + public static readonly MongoId IRONSIGHT_SVDS_FRONT_SIGHT = new MongoId( + "5c471ba12e221602b3137d76" + ); + public static readonly MongoId IRONSIGHT_SVDS_REAR_SIGHT = new MongoId( + "5c471b7e2e2216152006e46c" + ); + public static readonly MongoId IRONSIGHT_SVT40_FRONT_SIGHT = new MongoId( + "64119d672c6d6f921a0929fb" + ); + public static readonly MongoId IRONSIGHT_SVT40_REAR_SIGHT = new MongoId( + "64119d90dcf48d656f0aa275" + ); + public static readonly MongoId IRONSIGHT_TRIJICON_ACOG_BACKUP_REAR_SIGHT = new MongoId( + "5c05295e0db834001a66acbb" + ); + public static readonly MongoId IRONSIGHT_VPO101_REAR_SIGHT = new MongoId( + "5c503b1c2e221602b21d6e9d" + ); + public static readonly MongoId IRONSIGHT_VPO209_REAR_SIGHT = new MongoId( + "59e8977386f77415a553c453" + ); + public static readonly MongoId IRONSIGHT_VSS_REAR_SIGHT = new MongoId( + "57838e1b2459774a256959b1" + ); + public static readonly MongoId KEY_01 = new MongoId("679baa2c61f588ae2b062a24"); + public static readonly MongoId KEY_02 = new MongoId("679baa4f59b8961f370dd683"); + public static readonly MongoId KEY_03 = new MongoId("679baa5a59b8961f370dd685"); + public static readonly MongoId KEY_04 = new MongoId("679baa9091966fe40408f149"); + public static readonly MongoId KEY_2 = new MongoId("5751916f24597720a27126df"); + public static readonly MongoId KEY_3 = new MongoId("57518f7724597720a31c09ab"); + public static readonly MongoId KEY_5 = new MongoId("57518fd424597720c85dbaaa"); + public static readonly MongoId KEY_ABANDONED_FACTORY_MARKED = new MongoId( + "63a3a93f8a56922e82001f5d" + ); + public static readonly MongoId KEY_APARTMENT_LOCKED_ROOM_SAFE = new MongoId( + "63a39ddda3a2b32b5f6e007a" + ); + public static readonly MongoId KEY_ARCHIVE_ROOM = new MongoId("63a39e49cd6db0635c1975fc"); + public static readonly MongoId KEY_ARIADNE_SYMBOL = new MongoId("67e183377c6c2011970f3149"); + public static readonly MongoId KEY_ASPECT_COMPANY_OFFICE = new MongoId( + "64ce572331dd890873175115" + ); + public static readonly MongoId KEY_BACKUP_HIDEOUT = new MongoId("6398fd8ad3de3849057f5128"); + public static readonly MongoId KEY_BBQS43_GAS_TORCH = new MongoId("67ab3d4b83869afd170fdd3f"); + public static readonly MongoId KEY_BELUGA_RESTAURANT_DIRECTOR = new MongoId( + "64ccc1fe088064307e14a6f7" + ); + public static readonly MongoId KEY_CAR_DEALERSHIP_CLOSED_SECTION = new MongoId( + "63a397d3af870e651d58e65b" + ); + public static readonly MongoId KEY_CAR_DEALERSHIP_DIRECTORS_OFFICE_ROOM = new MongoId( + "63a399193901f439517cafb6" + ); + public static readonly MongoId KEY_CARGO_CONTAINER_MESH_DOOR = new MongoId( + "63a39fdf1e21260da44a0256" + ); + public static readonly MongoId KEY_CHEKANNAYA_15_APARTMENT = new MongoId( + "63a39fc0af870e651d58e6ae" + ); + public static readonly MongoId KEY_CITY_KEY_26 = new MongoId("63a71f1a0aa9fb29da61c537"); + public static readonly MongoId KEY_CITY_KEY_X = new MongoId("63a39e0f64283b5e9c56b282"); + public static readonly MongoId KEY_COLD_STORAGE_ROOM = new MongoId("61a6446f4b5f8b70f451b166"); + public static readonly MongoId KEY_COMPANY_DIRECTORS_ROOM = new MongoId( + "6761a6f90575f25e020816a4" + ); + public static readonly MongoId KEY_CONCORDIA_APARTMENT_34_ROOM = new MongoId( + "64ccc1d4a0f13c24561edf27" + ); + public static readonly MongoId KEY_CONCORDIA_APARTMENT_63_ROOM = new MongoId( + "64ccc1f4ff54fb38131acf27" + ); + public static readonly MongoId KEY_CONCORDIA_APARTMENT_64 = new MongoId( + "63a71e922b25f7513905ca20" + ); + public static readonly MongoId KEY_CONCORDIA_APARTMENT_64_OFFICE_ROOM = new MongoId( + "63a71e86b7f4570d3a293169" + ); + public static readonly MongoId KEY_CONCORDIA_APARTMENT_8_HOME_CINEMA = new MongoId( + "64ccc1ec1779ad6ba200a137" + ); + public static readonly MongoId KEY_CONCORDIA_APARTMENT_8_ROOM = new MongoId( + "63a71e781031ac76fe773c7d" + ); + public static readonly MongoId KEY_CONCORDIA_SECURITY_ROOM = new MongoId( + "63a39c7964283b5e9c56b280" + ); + public static readonly MongoId KEY_CONFERENCE_ROOM = new MongoId("62987cb98081af308d7558c8"); + public static readonly MongoId KEY_CONSTRUCTION_SITE_BUNKHOUSE = new MongoId( + "63a39cb1c9b3aa4b61683ee2" + ); + public static readonly MongoId KEY_CONVENIENCE_STORE_STORAGE_ROOM = new MongoId( + "61a64428a8c6aa1b795f0ba1" + ); + public static readonly MongoId KEY_CORPSE_ROOM = new MongoId("679bab714e9ca6b3d80586b4"); + public static readonly MongoId KEY_COTTAGE_BACK_DOOR = new MongoId("5a0eb6ac86f7743124037a28"); + public static readonly MongoId KEY_COTTAGE_SAFE = new MongoId("5a0f068686f7745b0d4ea242"); + public static readonly MongoId KEY_DORM_GUARD_DESK = new MongoId("59136a4486f774447a1ed172"); + public static readonly MongoId KEY_DORM_OVERSEER = new MongoId("664d4b0103ef2c61246afb56"); + public static readonly MongoId KEY_DORM_ROOM_103 = new MongoId("5938994586f774523a425196"); + public static readonly MongoId KEY_DORM_ROOM_104 = new MongoId("591383f186f7744a4c5edcf3"); + public static readonly MongoId KEY_DORM_ROOM_105 = new MongoId("591382d986f774465a6413a7"); + public static readonly MongoId KEY_DORM_ROOM_108 = new MongoId("5914578086f774123569ffa4"); + public static readonly MongoId KEY_DORM_ROOM_110 = new MongoId("59136e1e86f774432f15d133"); + public static readonly MongoId KEY_DORM_ROOM_114 = new MongoId("59387a4986f77401cc236e62"); + public static readonly MongoId KEY_DORM_ROOM_118 = new MongoId("5672c92d4bdc2d180f8b4567"); + public static readonly MongoId KEY_DORM_ROOM_203 = new MongoId("5938504186f7740991483f30"); + public static readonly MongoId KEY_DORM_ROOM_204 = new MongoId("59148c8a86f774197930e983"); + public static readonly MongoId KEY_DORM_ROOM_206 = new MongoId("5938603e86f77435642354f4"); + public static readonly MongoId KEY_DORM_ROOM_214 = new MongoId("5780cf942459777df90dcb72"); + public static readonly MongoId KEY_DORM_ROOM_218 = new MongoId("5780cf9e2459777df90dcb73"); + public static readonly MongoId KEY_DORM_ROOM_220 = new MongoId("5780cfa52459777dfb276eb1"); + public static readonly MongoId KEY_DORM_ROOM_303 = new MongoId("593aa4be86f77457f56379f8"); + public static readonly MongoId KEY_DORM_ROOM_306 = new MongoId("5780cda02459777b272ede61"); + public static readonly MongoId KEY_DORM_ROOM_308 = new MongoId("5780cf722459777a5108b9a1"); + public static readonly MongoId KEY_DORM_ROOM_314_MARKED = new MongoId( + "5780cf7f2459777de4559322" + ); + public static readonly MongoId KEY_DORM_ROOM_315 = new MongoId("5780cf692459777de4559321"); + public static readonly MongoId KEY_EMERCOM_MEDICAL_UNIT = new MongoId( + "5ad5db3786f7743568421cce" + ); + public static readonly MongoId KEY_FACTORY_EMERGENCY_EXIT = new MongoId( + "5448ba0b4bdc2d02308b456c" + ); + public static readonly MongoId KEY_FINANCIAL_INSTITUTION_OFFICE = new MongoId( + "63a39667c9b3aa4b61683e98" + ); + public static readonly MongoId KEY_FINANCIAL_INSTITUTION_SMALL_OFFICE = new MongoId( + "63a71ed21031ac76fe773c7f" + ); + public static readonly MongoId KEY_FOLDING_AUTOMOBILE = new MongoId("590de4a286f77423d9312a32"); + public static readonly MongoId KEY_FOLDING_CAR = new MongoId("59136f6f86f774447a1ed173"); + public static readonly MongoId KEY_GAS_STATION_OFFICE = new MongoId("5780d0652459777df90dcb74"); + public static readonly MongoId KEY_GAS_STATION_SAFE = new MongoId("5a0f045e86f7745b0f0d0e42"); + public static readonly MongoId KEY_GAS_STATION_STORAGE_ROOM = new MongoId( + "5913877a86f774432f15d444" + ); + public static readonly MongoId KEY_GOSHAN_CASH_REGISTER = new MongoId( + "5ad7247386f7747487619dc3" + ); + public static readonly MongoId KEY_GRUMPYS_HIDEOUT = new MongoId("664d3dd590294949fe2d81b7"); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_OFFICE_ROOM_107 = new MongoId( + "5a0ea64786f7741707720468" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_OFFICE_ROOM_108 = new MongoId( + "5a0ea69f86f7741cd5406619" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_205 = new MongoId( + "5a144bdb86f7741d374bbde0" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_206 = new MongoId( + "5a0ee4b586f7743698200d22" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_209 = new MongoId( + "5a0ee62286f774369454a7ac" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_213 = new MongoId( + "5a0ee72c86f77436955d3435" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_216 = new MongoId( + "5a0ee76686f7743698200d5c" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_222 = new MongoId( + "5a13f24186f77410e57c5626" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_226 = new MongoId( + "5a13f35286f77413ef1436b0" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_306 = new MongoId( + "5a145d4786f7744cbb6f4a12" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_308 = new MongoId( + "5a145d7b86f7744cbb6f4a13" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_310 = new MongoId( + "5a0eec9686f77402ac5c39f2" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_313 = new MongoId( + "5a0eecf686f7740350630097" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_314 = new MongoId( + "5a0eed4386f77405112912aa" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_316 = new MongoId( + "5a145ebb86f77458f1796f05" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_322 = new MongoId( + "5a0eedb386f77403506300be" + ); + public static readonly MongoId KEY_HEALTH_RESORT_EAST_WING_ROOM_328 = new MongoId( + "5a0eee1486f77402aa773226" + ); + public static readonly MongoId KEY_HEALTH_RESORT_MANAGEMENT_OFFICE_SAFE = new MongoId( + "5a0f08bc86f77478f33b84c2" + ); + public static readonly MongoId KEY_HEALTH_RESORT_MANAGEMENT_WAREHOUSE_SAFE = new MongoId( + "5a0f0f5886f7741c4e32a472" + ); + public static readonly MongoId KEY_HEALTH_RESORT_OFFICE_KEY_WITH_A_BLUE_TAPE = new MongoId( + "5eff09cd30a7dc22fd1ddfed" + ); + public static readonly MongoId KEY_HEALTH_RESORT_UNIVERSAL_UTILITY_ROOM = new MongoId( + "5a0ea79b86f7741d4a35298e" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_OFFICE_ROOM_104 = new MongoId( + "5a0dc45586f7742f6b0b73e3" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_OFFICE_ROOM_112 = new MongoId( + "5a0dc95c86f77452440fc675" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_203 = new MongoId( + "5a144dfd86f77445cb5a0982" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_205 = new MongoId( + "5a0ec6d286f7742c0b518fb5" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_207 = new MongoId( + "5a0ec70e86f7742c0b518fba" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_216 = new MongoId( + "5a0ee30786f774023b6ee08f" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_218 = new MongoId( + "5a13eebd86f7746fd639aa93" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_219 = new MongoId( + "5a13ef0686f7746e5a411744" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_220 = new MongoId( + "5a0ee34586f774023b6ee092" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_221 = new MongoId( + "5a0ee37f86f774023657a86f" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_222 = new MongoId( + "5a1452ee86f7746f33111763" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_301 = new MongoId( + "5a13ef7e86f7741290491063" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_303 = new MongoId( + "5a0eeb1a86f774688b70aa5c" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_306 = new MongoId( + "5a13f46386f7741dd7384b04" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_309 = new MongoId( + "5a0eeb8e86f77461257ed71a" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_321_SAFE = new MongoId( + "5a0eff2986f7741fd654e684" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_323 = new MongoId( + "5a13ee1986f774794d4c14cd" + ); + public static readonly MongoId KEY_HEALTH_RESORT_WEST_WING_ROOM_325 = new MongoId( + "5a0eebed86f77461230ddb3d" + ); + public static readonly MongoId KEY_HEP_STATION_STORAGE_ROOM = new MongoId( + "5d8e15b686f774445103b190" + ); + public static readonly MongoId KEY_HILLSIDE_HOUSE = new MongoId("61a6444b8c141d68246e2d2f"); + public static readonly MongoId KEY_HORSE_RESTAURANT_TOILET = new MongoId( + "658199a0490414548c0fa83b" + ); + public static readonly MongoId KEY_HOUSING_OFFICE_FIRST_FLOOR_SAFE = new MongoId( + "63a39e6acd6db0635c1975fe" + ); + public static readonly MongoId KEY_HOUSING_OFFICE_SECOND_FLOOR_SAFE = new MongoId( + "63a39e5b234195315d4020bf" + ); + public static readonly MongoId KEY_IDEA_CASH_REGISTER = new MongoId("5ad7242b86f7740a6a3abd43"); + public static readonly MongoId KEY_IRON_GATE = new MongoId("63a39f6e64283b5e9c56b289"); + public static readonly MongoId KEY_ITY = new MongoId("63a71f3b0aa9fb29da61c539"); + public static readonly MongoId KEY_KIBA_ARMS_INNER_GRATE_DOOR = new MongoId( + "5addaffe86f77470b455f900" + ); + public static readonly MongoId KEY_KIBA_ARMS_OUTER_DOOR = new MongoId( + "5ad5d7d286f77450166e0a89" + ); + public static readonly MongoId KEY_KNOSSOS_LLC_FACILITY = new MongoId( + "679b9716597ba2ed120c3d3f" + ); + public static readonly MongoId KEY_LABYRINTH = new MongoId("679bac1d61f588ae2b062a26"); + public static readonly MongoId KEY_LEONS_HIDEOUT = new MongoId("664d3de85f2355673b09aed5"); + public static readonly MongoId KEY_MACHINERY = new MongoId("5937ee6486f77408994ba448"); + public static readonly MongoId KEY_MACHINERY_TECH = new MongoId("590de52486f774226a0c24c2"); + public static readonly MongoId KEY_MERIN_CAR_TRUNK = new MongoId("61aa5b518f5e7a39b41416e2"); + public static readonly MongoId KEY_MILITARY_CHECKPOINT = new MongoId( + "5913915886f774123603c392" + ); + public static readonly MongoId KEY_MISSAM_FORKLIFT = new MongoId("62a09ec84f842e1bd12da3f2"); + public static readonly MongoId KEY_MVD_ACADEMY_ENTRANCE_HALL_GUARD_ROOM = new MongoId( + "6582dc4b6ba9e979af6b79f4" + ); + public static readonly MongoId KEY_MYSTERIOUS_ROOM_MARKED = new MongoId( + "64ccc25f95763a1ae376e447" + ); + public static readonly MongoId KEY_NECRUSPHARM_PHARMACY = new MongoId( + "5ad5d64486f774079b080af8" + ); + public static readonly MongoId KEY_NEGOTIATION_ROOM = new MongoId("6582dbe43a2e5248357dbe9a"); + public static readonly MongoId KEY_OBSERVATION_ROOM = new MongoId("679baace4e9ca6b3d80586b2"); + public static readonly MongoId KEY_OLD_HOUSE_ROOM = new MongoId("6761a6ccd9bbb27ad703c48a"); + public static readonly MongoId KEY_OLI_ADMINISTRATION_OFFICE = new MongoId( + "5ad5ccd186f774446d5706e9" + ); + public static readonly MongoId KEY_OLI_CASH_REGISTER = new MongoId("5ad7217186f7746744498875"); + public static readonly MongoId KEY_OLI_LOGISTICS_DEPARTMENT_OFFICE = new MongoId( + "5ad5cfbd86f7742c825d6104" + ); + public static readonly MongoId KEY_OLI_OUTLET_UTILITY_ROOM = new MongoId( + "5ad5d20586f77449be26d877" + ); + public static readonly MongoId KEY_OPERATING_ROOM = new MongoId("62987da96188c076bc0d8c51"); + public static readonly MongoId KEY_PE_TEACHERS_OFFICE = new MongoId("64ccc268c41e91416064ebc7"); + public static readonly MongoId KEY_PINEWOOD_HOTEL_ROOM_206 = new MongoId( + "63a39f18c2d53c2c6839c1d3" + ); + public static readonly MongoId KEY_PINEWOOD_HOTEL_ROOM_215 = new MongoId( + "63a39f08cd6db0635c197600" + ); + public static readonly MongoId KEY_PISTOL_CASE = new MongoId("5671446a4bdc2d97058b4569"); + public static readonly MongoId KEY_POLICE_TRUCK_CABIN = new MongoId("61aa5aed32a4743c3453d319"); + public static readonly MongoId KEY_PORTABLE_BUNKHOUSE = new MongoId("5938144586f77473c2087145"); + public static readonly MongoId KEY_PORTABLE_CABIN = new MongoId("5780d07a2459777de4559324"); + public static readonly MongoId KEY_POWER_SUBSTATION_UTILITY_CABIN = new MongoId( + "5ad5d49886f77455f9731921" + ); + public static readonly MongoId KEY_PRIMORSKY_4648_SKYBRIDGE = new MongoId( + "63a39e1d234195315d4020bd" + ); + public static readonly MongoId KEY_PRIMORSKY_48_APARTMENT = new MongoId( + "63a71eb5b7f4570d3a29316b" + ); + public static readonly MongoId KEY_PRIMORSKY_AVE_APARTMENT = new MongoId( + "6391fcf5744e45201147080f" + ); + public static readonly MongoId KEY_PUMPING_STATION_BACK_DOOR = new MongoId( + "593858c486f774253a24cb52" + ); + public static readonly MongoId KEY_PUMPING_STATION_FRONT_DOOR = new MongoId( + "57a349b2245977762b199ec7" + ); + public static readonly MongoId KEY_RADAR_STATION_COMMANDANT_ROOM = new MongoId( + "62987c658081af308d7558c6" + ); + public static readonly MongoId KEY_RBAK = new MongoId("5d80c78786f774403a401e3e"); + public static readonly MongoId KEY_RBAM = new MongoId("5d80c88d86f77440556dbf07"); + public static readonly MongoId KEY_RBAO = new MongoId("5d80c66d86f774405611c7d6"); + public static readonly MongoId KEY_RBBK_MARKED = new MongoId("5d80c60f86f77440373c4ece"); + public static readonly MongoId KEY_RBGN = new MongoId("5d8e3ecc86f774414c78d05e"); + public static readonly MongoId KEY_RBKORL = new MongoId("5d8e0db586f7744450412a42"); + public static readonly MongoId KEY_RBKPRL = new MongoId("5d8e0e0e86f774321140eb56"); + public static readonly MongoId KEY_RBKSM = new MongoId("5d947d4e86f774447b415895"); + public static readonly MongoId KEY_RBMP11 = new MongoId("5d80c93086f7744036212b41"); + public static readonly MongoId KEY_RBMP12 = new MongoId("5d80c95986f77440351beef3"); + public static readonly MongoId KEY_RBMP13 = new MongoId("5d80cbd886f77470855c26c2"); + public static readonly MongoId KEY_RBMP21 = new MongoId("5d80ca9086f774403a401e40"); + public static readonly MongoId KEY_RBMP22 = new MongoId("5d80cab086f77440535be201"); + public static readonly MongoId KEY_RBOB = new MongoId("5d80c6c586f77440351beef1"); + public static readonly MongoId KEY_RBOP = new MongoId("5d80c8f586f77440373c4ed0"); + public static readonly MongoId KEY_RBORB1 = new MongoId("5d80ccac86f77470841ff452"); + public static readonly MongoId KEY_RBORB2 = new MongoId("5d80ccdd86f77474f7575e02"); + public static readonly MongoId KEY_RBORB3 = new MongoId("5d80cd1a86f77402aa362f42"); + public static readonly MongoId KEY_RBPKPM_MARKED = new MongoId("5ede7a8229445733cb4c18e2"); + public static readonly MongoId KEY_RBPP = new MongoId("5d80cb8786f774405611c7d9"); + public static readonly MongoId KEY_RBPSP1 = new MongoId("5d80cb3886f77440556dbf09"); + public static readonly MongoId KEY_RBPSP2 = new MongoId("5d95d6fa86f77424484aa5e9"); + public static readonly MongoId KEY_RBPSV1 = new MongoId("5d80cb5686f77440545d1286"); + public static readonly MongoId KEY_RBPSV2 = new MongoId("5d95d6be86f77424444eb3a7"); + public static readonly MongoId KEY_RBRH = new MongoId("5da5cdcd86f774529238fb9b"); + public static readonly MongoId KEY_RBRLSA = new MongoId("5ede7b0c6d23e5473e6e8c66"); + public static readonly MongoId KEY_RBRS = new MongoId("5da46e3886f774653b7a83fe"); + public static readonly MongoId KEY_RBSMP = new MongoId("5d947d3886f774447b415893"); + public static readonly MongoId KEY_RBST = new MongoId("5d9f1fa686f774726974a992"); + public static readonly MongoId KEY_RBTB = new MongoId("5d80c6fc86f774403a401e3c"); + public static readonly MongoId KEY_RBVO_MARKED = new MongoId("5d80c62a86f7744036212b3f"); + public static readonly MongoId KEY_REAL_ESTATE_AGENCY_OFFICE_ROOM = new MongoId( + "6582dc5740562727a654ebb1" + ); + public static readonly MongoId KEY_RELAXATION_ROOM = new MongoId("6582dbf0b8d7830efc45016f"); + public static readonly MongoId KEY_ROGUE_USEC_BARRACK = new MongoId("62a9cb937377a65d7b070cef"); + public static readonly MongoId KEY_ROGUE_USEC_STASH = new MongoId("61a64492ba05ef10d62adcc1"); + public static readonly MongoId KEY_ROGUE_USEC_WORKSHOP = new MongoId( + "61aa81fcb225ac1ead7957c3" + ); + public static readonly MongoId KEY_RUSTED_BLOODY = new MongoId("64d4b23dc1b37504b41ac2b6"); + public static readonly MongoId KEY_SHARED_BEDROOM_MARKED = new MongoId( + "62987dfc402c7f69bf010923" + ); + public static readonly MongoId KEY_SHATUNS_HIDEOUT = new MongoId("664d3db6db5dea2bad286955"); + public static readonly MongoId KEY_SHTURMANS_STASH = new MongoId("5d08d21286f774736e7c94c3"); + public static readonly MongoId KEY_SMW_CAR = new MongoId("5a0eb38b86f774153b320eb0"); + public static readonly MongoId KEY_STAIR_LANDING = new MongoId("63a39fd1c9b3aa4b61683efb"); + public static readonly MongoId KEY_STORE_MANAGERS = new MongoId("63a39c69af870e651d58e6aa"); + public static readonly MongoId KEY_STORE_SAFE = new MongoId("5a0f075686f7745bcc42ee12"); + public static readonly MongoId KEY_SUPPLY_DEPARTMENT_DIRECTORS_OFFICE = new MongoId( + "63a39ce4cd6db0635c1975fa" + ); + public static readonly MongoId KEY_TARBANK_CASH_REGISTER_DEPARTMENT = new MongoId( + "64ccc2111779ad6ba200a139" + ); + public static readonly MongoId KEY_TARCONE_DIRECTORS_OFFICE = new MongoId( + "5780d0532459777a5108b9a2" + ); + public static readonly MongoId KEY_TERRAGROUP_LABS_ARSENAL_STORAGE_ROOM = new MongoId( + "5c1f79a086f7746ed066fb8f" + ); + public static readonly MongoId KEY_TERRAGROUP_LABS_MANAGERS_OFFICE_ROOM = new MongoId( + "5c1e2a1e86f77431ea0ea84c" + ); + public static readonly MongoId KEY_TERRAGROUP_LABS_WEAPON_TESTING_AREA = new MongoId( + "5c1e2d1f86f77431e9280bee" + ); + public static readonly MongoId KEY_TERRAGROUP_MEETING_ROOM = new MongoId( + "64ccc206793ca11c8f450a38" + ); + public static readonly MongoId KEY_TERRAGROUP_SCIENCE_OFFICE = new MongoId( + "658199aa38c79576a2569e13" + ); + public static readonly MongoId KEY_TERRAGROUP_SECURITY_ARMORY = new MongoId( + "64ccc24de61ea448b507d34d" + ); + public static readonly MongoId KEY_TORTURE_ROOM = new MongoId("679baae891966fe40408f14c"); + public static readonly MongoId KEY_TRAILER_PARK_PORTABLE_CABIN = new MongoId( + "5913611c86f77479e0084092" + ); + public static readonly MongoId KEY_ULTRA_MEDICAL_STORAGE = new MongoId( + "5e42c71586f7747f245e1343" + ); + public static readonly MongoId KEY_UNDERGROUND_PARKING_UTILITY_ROOM = new MongoId( + "658199972dc4e60f6d556a2f" + ); + public static readonly MongoId KEY_UNITY_CREDIT_BANK_ARCHIVE_ROOM = new MongoId( + "6582dc63cafcd9485374dbc5" + ); + public static readonly MongoId KEY_UNITY_CREDIT_BANK_CASH_REGISTER = new MongoId( + "6581998038c79576a2569e11" + ); + public static readonly MongoId KEY_UNKNOWN = new MongoId("593962ca86f774068014d9af"); + public static readonly MongoId KEY_USEC_COTTAGE_FIRST_SAFE = new MongoId( + "61aa5b7db225ac1ead7957c1" + ); + public static readonly MongoId KEY_USEC_COTTAGE_ROOM = new MongoId("66265d7be65f224b2e17c6aa"); + public static readonly MongoId KEY_USEC_COTTAGE_SECOND_SAFE = new MongoId( + "61aa5ba8018e9821b7368da9" + ); + public static readonly MongoId KEY_USEC_STASH = new MongoId("5da743f586f7744014504f72"); + public static readonly MongoId KEY_VALVE_HANDWHEEL = new MongoId("678fa929819ddc4c350c0317"); + public static readonly MongoId KEY_VAZ_CAR = new MongoId("5913651986f774432f15d132"); + public static readonly MongoId KEY_VORONS_HIDEOUT = new MongoId("664d3ddfdda2e85aca370d75"); + public static readonly MongoId KEY_WATER_TREATMENT_PLANT_STORAGE_ROOM = new MongoId( + "62987e26a77ec735f90a2995" + ); + public static readonly MongoId KEY_WEAPON_SAFE = new MongoId("59148f8286f7741b951ea113"); + public static readonly MongoId KEY_WEATHER_STATION_SAFE = new MongoId( + "5a0f006986f7741ffd2fe484" + ); + public static readonly MongoId KEY_XRAY_ROOM = new MongoId("64ccc246ff54fb38131acf29"); + public static readonly MongoId KEY_YOTOTA_CAR = new MongoId("591ae8f986f77406f854be45"); + public static readonly MongoId KEY_ZB014 = new MongoId("591afe0186f77431bd616a11"); + public static readonly MongoId KEY_ZMEISKY_3_APARTMENT_8 = new MongoId( + "63a39dfe3901f439517cafba" + ); + public static readonly MongoId KEY_ZMEISKY_5_APARTMENT_20 = new MongoId( + "63a39df18a56922e82001f25" + ); + public static readonly MongoId KEYCARD_LABRYS_ACCESS = new MongoId("679b9819a2f2dd4da9023512"); + public static readonly MongoId KEYCARD_OBJECT_11SR = new MongoId("5e42c81886f7742a01529f57"); + public static readonly MongoId KEYCARD_OBJECT_21WS = new MongoId("5e42c83786f7742a021fdf3c"); + public static readonly MongoId KEYCARD_OFFBLACK = new MongoId("5751961824597720a31c09ac"); + public static readonly MongoId KEYCARD_TERRAGROUP_LABS_ACCESS = new MongoId( + "5c94bbff86f7747ee735c08f" + ); + public static readonly MongoId KEYCARD_TERRAGROUP_LABS_KEYCARD_BLACK = new MongoId( + "5c1d0f4986f7744bb01837fa" + ); + public static readonly MongoId KEYCARD_TERRAGROUP_LABS_KEYCARD_BLUE = new MongoId( + "5c1d0c5f86f7744bb2683cf0" + ); + public static readonly MongoId KEYCARD_TERRAGROUP_LABS_KEYCARD_GREEN = new MongoId( + "5c1d0dc586f7744baf2e7b79" + ); + public static readonly MongoId KEYCARD_TERRAGROUP_LABS_KEYCARD_RED = new MongoId( + "5c1d0efb86f7744baf2e7b7b" + ); + public static readonly MongoId KEYCARD_TERRAGROUP_LABS_KEYCARD_VIOLET = new MongoId( + "5c1e495a86f7743109743dfb" + ); + public static readonly MongoId KEYCARD_TERRAGROUP_LABS_KEYCARD_YELLOW = new MongoId( + "5c1d0d6d86f7744bb2683e1f" + ); + public static readonly MongoId KEYCARD_TERRAGROUP_LABS_RESIDENTIAL_UNIT = new MongoId( + "6711039f9e648049e50b3307" + ); + public static readonly MongoId KEYCARD_TERRAGROUP_STORAGE_ROOM = new MongoId( + "66acd6702b17692df20144c0" + ); + public static readonly MongoId KEYCARD_WITH_A_BLUE_MARKING = new MongoId( + "5efde6b4f5448336730dbd61" + ); + public static readonly MongoId KNIFE_6KH5_BAYONET = new MongoId("5bffdc370db834001d23eca8"); + public static readonly MongoId KNIFE_AKULA_PUSH_DAGGER = new MongoId( + "674d90b55704568fe60bc8f5" + ); + public static readonly MongoId KNIFE_ANTIQUE_AXE = new MongoId("5bc9c1e2d4351e00367fbcf0"); + public static readonly MongoId KNIFE_APOK_TACTICAL_WASTELAND_GLADIUS = new MongoId( + "664a5428d5e33a713b622379" + ); + public static readonly MongoId KNIFE_BARS_A2607_95KH18 = new MongoId( + "57e26fc7245977162a14b800" + ); + public static readonly MongoId KNIFE_BARS_A2607_DAMASCUS = new MongoId( + "57e26ea924597715ca604a09" + ); + public static readonly MongoId KNIFE_CAMPER_AXE = new MongoId("5c012ffc0db834001d23f03f"); + public static readonly MongoId KNIFE_CHAINED_LABRYS = new MongoId("679ba90d269ddfea47012159"); + public static readonly MongoId KNIFE_CRASH_AXE = new MongoId("5bffe7930db834001b734a39"); + public static readonly MongoId KNIFE_CULTIST = new MongoId("5fc64ea372b0dd78d51159dc"); + public static readonly MongoId KNIFE_ER_FULCRUM_BAYONET = new MongoId( + "54491bb74bdc2d09088b4567" + ); + public static readonly MongoId KNIFE_FREEMAN_CROWBAR = new MongoId("5c07df7f0db834001b73588a"); + public static readonly MongoId KNIFE_INFECTIOUS_STRIKE = new MongoId( + "670ad7f1ad195290cd00da7a" + ); + public static readonly MongoId KNIFE_KIBA_ARMS_TACTICAL_TOMAHAWK = new MongoId( + "57cd379a24597778e7682ecf" + ); + public static readonly MongoId KNIFE_MILLER_BROS_BLADES_M2_TACTICAL_SWORD = new MongoId( + "5bffdd7e0db834001b734a1a" + ); + public static readonly MongoId KNIFE_MPL50_ENTRENCHING_TOOL = new MongoId( + "5bead2e00db834001c062938" + ); + public static readonly MongoId KNIFE_OLD_HAND_SCYTHE = new MongoId("63495c500c297e20065a08b1"); + public static readonly MongoId KNIFE_PRTARAN_POLICE_BATON = new MongoId( + "6540d2162ae6d96b540afcaf" + ); + public static readonly MongoId KNIFE_RED_REBEL_ICE_PICK = new MongoId( + "5c0126f40db834002a125382" + ); + public static readonly MongoId KNIFE_SOG_VOODOO_HAWK_TACTICAL_TOMAHAWK = new MongoId( + "63920105a83e15700a00f168" + ); + public static readonly MongoId KNIFE_SP8_SURVIVAL_MACHETE = new MongoId( + "5c010e350db83400232feec7" + ); + public static readonly MongoId KNIFE_SUPERFORS_DB_2020_DEAD_BLOW_HAMMER = new MongoId( + "6087e570b998180e9f76dc24" + ); + public static readonly MongoId KNIFE_UNITED_CUTLERY_M48_TACTICAL_KUKRI = new MongoId( + "65ca457b4aafb5d7fc0dcb5d" + ); + public static readonly MongoId KNIFE_UVSR_TAIGA1_SURVIVAL_MACHETE = new MongoId( + "601948682627df266209af05" + ); + public static readonly MongoId LAUNCHER_GP25_KOSTYOR_40MM_UNDERBARREL_GRENADE = new MongoId( + "62e7e7bbe6da9612f743f1e0" + ); + public static readonly MongoId LAUNCHER_GP34_40MM_UNDERBARREL_GRENADE = new MongoId( + "5648b62b4bdc2d9d488b4585" + ); + public static readonly MongoId LAUNCHER_M203_40MM_UNDERBARREL_GRENADE = new MongoId( + "6357c98711fb55120211f7e1" + ); + public static readonly MongoId LOCKABLECONTAINER_PISTOL_CASE = new MongoId( + "567143bf4bdc2d1a0f8b4567" + ); + public static readonly MongoId LOOTCONTAINER_AIRDROP_COMMON_SUPPLY_CRATE = new MongoId( + "6223349b3136504a544d1608" + ); + public static readonly MongoId LOOTCONTAINER_AIRDROP_MEDICAL_CRATE = new MongoId( + "622334c873090231d904a9fc" + ); + public static readonly MongoId LOOTCONTAINER_AIRDROP_SUPPLY_CRATE = new MongoId( + "622334fa3136504a544d160c" + ); + public static readonly MongoId LOOTCONTAINER_AIRDROP_SUPPLY_CRATE_2 = new MongoId( + "61a89e812cc17d60cc5f9879" + ); + public static readonly MongoId LOOTCONTAINER_AIRDROP_TECHNICAL_SUPPLY_CRATE_EVENT_1 = + new MongoId("66da1b49099cf6adcc07a36b"); + public static readonly MongoId LOOTCONTAINER_AIRDROP_TECHNICAL_SUPPLY_CRATE_EVENT_2 = + new MongoId("66da1b546916142b3b022777"); + public static readonly MongoId LOOTCONTAINER_AIRDROP_TECHNICAL_SUPPLY_CRATE_EVENT_3 = + new MongoId("61a89e5445a2672acf66c877"); + public static readonly MongoId LOOTCONTAINER_AIRDROP_WEAPON_CRATE = new MongoId( + "6223351bb5d97a7b2c635ca7" + ); + public static readonly MongoId LOOTCONTAINER_BANK_CASH_REGISTER = new MongoId( + "64d116f41a9c6143a956127d" + ); + public static readonly MongoId LOOTCONTAINER_BANK_SAFE_3X3 = new MongoId( + "66acff0a1d8e1083b303f5af" + ); + public static readonly MongoId LOOTCONTAINER_BANK_SAFE_4X4 = new MongoId( + "64d11702dd0cd96ab82c3280" + ); + public static readonly MongoId LOOTCONTAINER_BOX_FULL_OF_JUNK = new MongoId( + "566966cd4bdc2d0c4c8b4578" + ); + public static readonly MongoId LOOTCONTAINER_BURIED_BARREL_CACHE = new MongoId( + "5d6d2bb386f774785b07a77a" + ); + public static readonly MongoId LOOTCONTAINER_CASH_REGISTER = new MongoId( + "578f879c24597735401e6bc6" + ); + public static readonly MongoId LOOTCONTAINER_CASH_REGISTER_TAR22 = new MongoId( + "5ad74cf586f774391278f6f0" + ); + public static readonly MongoId LOOTCONTAINER_CIVILIAN_BODY = new MongoId( + "658420d8085fea07e674cdb6" + ); + public static readonly MongoId LOOTCONTAINER_COMMON_FUND_STASH = new MongoId( + "5d07b91b86f7745a077a9432" + ); + public static readonly MongoId LOOTCONTAINER_DEAD_SCAV = new MongoId( + "5909e4b686f7747f5b744fa4" + ); + public static readonly MongoId LOOTCONTAINER_DEAD_SCAV_4X4_2 = new MongoId( + "67adf5752fc5ee84020a9940" + ); + public static readonly MongoId LOOTCONTAINER_DRAWER = new MongoId("578f87b7245977356274f2cd"); + public static readonly MongoId LOOTCONTAINER_DUFFLE_BAG = new MongoId( + "578f87a3245977356274f2cb" + ); + public static readonly MongoId LOOTCONTAINER_DUFFLE_BAG_ADV = new MongoId( + "61aa1e9a32a4743c3453d2cf" + ); + public static readonly MongoId LOOTCONTAINER_FESTIVE_AIRDROP_SUPPLY_CRATE = new MongoId( + "67614e3a6a90e4f10b0b140d" + ); + public static readonly MongoId LOOTCONTAINER_GRENADE_BOX = new MongoId( + "67adf4eb110ba15da90c6413" + ); + public static readonly MongoId LOOTCONTAINER_GRENADE_BOX_3X2_2 = new MongoId( + "5909d36d86f774660f0bb900" + ); + public static readonly MongoId LOOTCONTAINER_GROUND_CACHE = new MongoId( + "5d6d2b5486f774785c2ba8ea" + ); + public static readonly MongoId LOOTCONTAINER_JACKET = new MongoId("578f8778245977358849a9b5"); + public static readonly MongoId LOOTCONTAINER_JACKET_114KEY = new MongoId( + "59387ac686f77401442ddd61" + ); + public static readonly MongoId LOOTCONTAINER_JACKET_204KEY = new MongoId( + "5914944186f774189e5e76c2" + ); + public static readonly MongoId LOOTCONTAINER_JACKET_2X2_2 = new MongoId( + "67adf4a95247ac91530fcec7" + ); + public static readonly MongoId LOOTCONTAINER_JACKET_MACHINERYKEY = new MongoId( + "5937ef2b86f77408a47244b3" + ); + public static readonly MongoId LOOTCONTAINER_LAB_TECHNICIAN_BODY = new MongoId( + "6582e6c6edf14c4c6023adf2" + ); + public static readonly MongoId LOOTCONTAINER_LONG_WEAPON_BOX = new MongoId( + "61aa1e6984ea0800645777f9" + ); + public static readonly MongoId LOOTCONTAINER_MEDBAG_SMU06 = new MongoId( + "5909d24f86f77466f56e6855" + ); + public static readonly MongoId LOOTCONTAINER_MEDBAG_SMU06_ADV = new MongoId( + "61aa1ead84ea0800645777fd" + ); + public static readonly MongoId LOOTCONTAINER_MEDCASE = new MongoId("5909d4c186f7746ad34e805a"); + public static readonly MongoId LOOTCONTAINER_MEDICAL_SUPPLY_CRATE = new MongoId( + "5d6fe50986f77449d97f7463" + ); + public static readonly MongoId LOOTCONTAINER_PC_BLOCK = new MongoId("59139c2186f77411564f8e42"); + public static readonly MongoId LOOTCONTAINER_PLASTIC_SUITCASE = new MongoId( + "5c052cea86f7746b2101e8d8" + ); + public static readonly MongoId LOOTCONTAINER_PMC_BODY = new MongoId("6582e6d7b14c3f72eb071420"); + public static readonly MongoId LOOTCONTAINER_RATION_SUPPLY_CRATE = new MongoId( + "5d6fd13186f77424ad2a8c69" + ); + public static readonly MongoId LOOTCONTAINER_SAFE = new MongoId("578f8782245977354405a1e3"); + public static readonly MongoId LOOTCONTAINER_SCAV_BODY = new MongoId( + "6582e6bb0c3b9823fe6d1840" + ); + public static readonly MongoId LOOTCONTAINER_TECHNICAL_SUPPLY_CRATE = new MongoId( + "67adf5f7adc1f43b0702b826" + ); + public static readonly MongoId LOOTCONTAINER_TECHNICAL_SUPPLY_CRATE_5X5_2 = new MongoId( + "5d6fd45b86f774317075ed43" + ); + public static readonly MongoId LOOTCONTAINER_TOOLBOX = new MongoId("67adf54d1c58bd68b2002ff0"); + public static readonly MongoId LOOTCONTAINER_TOOLBOX_4X3_2 = new MongoId( + "5909d50c86f774659e6aaebe" + ); + public static readonly MongoId LOOTCONTAINER_WEAPON_BOX_4X4 = new MongoId( + "5909d7cf86f77470ee57d75a" + ); + public static readonly MongoId LOOTCONTAINER_WEAPON_BOX_5X2 = new MongoId( + "5909d5ef86f77467974efbd8" + ); + public static readonly MongoId LOOTCONTAINER_WEAPON_BOX_5X5 = new MongoId( + "5909d89086f77472591234a0" + ); + public static readonly MongoId LOOTCONTAINER_WEAPON_BOX_6X3 = new MongoId( + "5909d76c86f77471e53d2adf" + ); + public static readonly MongoId LOOTCONTAINER_WOODEN_AMMO_BOX = new MongoId( + "67adf4b81c58bd68b2002fec" + ); + public static readonly MongoId LOOTCONTAINER_WOODEN_AMMO_BOX_3X3_2 = new MongoId( + "5909d45286f77465a8136dc6" + ); + public static readonly MongoId LOOTCONTAINER_WOODEN_CRATE = new MongoId( + "578f87ad245977356274f2cc" + ); + public static readonly MongoId LOOTCONTAINER_WOODEN_CRATE_5X2_2 = new MongoId( + "67adf4db515e3dd542077a1d" + ); + public static readonly MongoId MACHINEGUN_AGS30_30X29MM_AUTOMATIC_GRENADE_LAUNCHER = + new MongoId("5d52cc5ba4b9367408500062"); + public static readonly MongoId MACHINEGUN_DEGTYAREV_RPD_762X39_MACHINE_GUN = new MongoId( + "6513ef33e06849f06c0957ca" + ); + public static readonly MongoId MACHINEGUN_DEGTYAREV_RPDN_762X39_MACHINE_GUN = new MongoId( + "65268d8ecb944ff1e90ea385" + ); + public static readonly MongoId MACHINEGUN_KALASHNIKOV_PKM_762X54R_MACHINE_GUN = new MongoId( + "64637076203536ad5600c990" + ); + public static readonly MongoId MACHINEGUN_KALASHNIKOV_PKP_762X54R_INFANTRY_MACHINE_GUN = + new MongoId("64ca3d3954fc657e230529cc"); + public static readonly MongoId MACHINEGUN_KALASHNIKOV_PKTM_762X54R_MODERNIZED_TANK_MACHINE_GUN = + new MongoId("657857faeff4c850222dff1b"); + public static readonly MongoId MACHINEGUN_NSV_UTYOS_127X108_HEAVY_MACHINE_GUN = new MongoId( + "5cdeb229d7f00c000e7ce174" + ); + public static readonly MongoId MACHINEGUN_RPK16_545X39_LIGHT_MACHINE_GUN = new MongoId( + "5beed0f50db834001c062b12" + ); + public static readonly MongoId MACHINEGUN_US_ORDNANCE_M60E4_762X51_LIGHT_MACHINE_GUN = + new MongoId("65fb023261d5829b2d090755"); + public static readonly MongoId MACHINEGUN_US_ORDNANCE_M60E6_762X51_LIGHT_MACHINE_GUN = + new MongoId("661ceb1b9311543c7104149b"); + public static readonly MongoId MACHINEGUN_US_ORDNANCE_M60E6_762X51_LIGHT_MACHINE_GUN_FDE = + new MongoId("661cec09b2c6356b4d0c7a36"); + public static readonly MongoId MAGAZINE_127X108_100_100RND = new MongoId( + "5cffa483d7ad1a049e54ef1c" + ); + public static readonly MongoId MAGAZINE_127X33_DE_7RND = new MongoId( + "668fe5c5f35310705d02b696" + ); + public static readonly MongoId MAGAZINE_127X55_ASH12_10RND = new MongoId( + "5caf1041ae92157c28402e3f" + ); + public static readonly MongoId MAGAZINE_127X55_ASH12_20RND = new MongoId( + "5caf1109ae9215753c44119f" + ); + public static readonly MongoId MAGAZINE_127X55_RSH12_CYL_5RND = new MongoId( + "633ec6ee025b096d320a3b15" + ); + public static readonly MongoId MAGAZINE_12G_255_CYL_5RND = new MongoId( + "60dc519adf4c47305f6d410d" + ); + public static readonly MongoId MAGAZINE_12G_590A1X8_8RND = new MongoId( + "5e87080c81c4ed43e83cefda" + ); + public static readonly MongoId MAGAZINE_12G_AA12_20RND = new MongoId( + "6709133fa532466d5403fb7c" + ); + public static readonly MongoId MAGAZINE_12G_AA12_8RND = new MongoId("66ffaab91f7492c901027bb8"); + public static readonly MongoId MAGAZINE_12G_M3X11_11RND = new MongoId( + "625ff3046d721f05d93bf2ee" + ); + public static readonly MongoId MAGAZINE_12G_M3X13_13RND = new MongoId( + "625ff31daaaa8c1130599f64" + ); + public static readonly MongoId MAGAZINE_12G_M3X5_5RND = new MongoId("625ff2ccb8c587128c1a01dd"); + public static readonly MongoId MAGAZINE_12G_M3X7_7RND = new MongoId("6259bdcabd28e4721447a2aa"); + public static readonly MongoId MAGAZINE_12G_M3X9_9RND = new MongoId("625ff2eb9f5537057932257d"); + public static readonly MongoId MAGAZINE_12G_M870X10_10RND = new MongoId( + "5a78832ec5856700155a6ca3" + ); + public static readonly MongoId MAGAZINE_12G_M870X4_4RND = new MongoId( + "5a7882dcc5856700177af662" + ); + public static readonly MongoId MAGAZINE_12G_M870X7_7RND = new MongoId( + "5a78830bc5856700137e4c90" + ); + public static readonly MongoId MAGAZINE_12G_MD_ARMS_20RND = new MongoId( + "674fe8f6f34d761ab8020cc8" + ); + public static readonly MongoId MAGAZINE_12G_MP133X6_6RND = new MongoId( + "55d484b44bdc2d1d4e8b456d" + ); + public static readonly MongoId MAGAZINE_12G_MP133X8_8RND = new MongoId( + "55d485804bdc2d8c2f8b456b" + ); + public static readonly MongoId MAGAZINE_12G_MP153X4_4RND = new MongoId( + "56deee15d2720bee328b4567" + ); + public static readonly MongoId MAGAZINE_12G_MP153X5_5RND = new MongoId( + "5882163e24597758206fee8c" + ); + public static readonly MongoId MAGAZINE_12G_MP153X6_6RND = new MongoId( + "5882163824597757561aa922" + ); + public static readonly MongoId MAGAZINE_12G_MP153X7_7RND = new MongoId( + "5882163224597757561aa920" + ); + public static readonly MongoId MAGAZINE_12G_MP153X8_8RND = new MongoId( + "56deeefcd2720bc8328b4568" + ); + public static readonly MongoId MAGAZINE_12G_MP155X6_6RND = new MongoId( + "6076c87f232e5a31c233d50e" + ); + public static readonly MongoId MAGAZINE_12G_POWERMAG_20RND = new MongoId( + "5cf8f3b0d7f00c00217872ef" + ); + public static readonly MongoId MAGAZINE_12G_SAI02_10RND = new MongoId( + "5a966f51a2750c00156aacf6" + ); + public static readonly MongoId MAGAZINE_12G_SB5_5RND = new MongoId("57616a9e2459773c7a400234"); + public static readonly MongoId MAGAZINE_20G_2001_SB3X2_2RND = new MongoId( + "5a38ee51c4a282000c5a955c" + ); + public static readonly MongoId MAGAZINE_20G_SB3X4_4RND = new MongoId( + "5a38ed75c4a28232996e40c6" + ); + public static readonly MongoId MAGAZINE_20G_SB3X5_5RND = new MongoId( + "5c6161fb2e221600113fbde5" + ); + public static readonly MongoId MAGAZINE_20X1MM_DRUM_20RND = new MongoId( + "66015dc4aaad2f54cb04c56a" + ); + public static readonly MongoId MAGAZINE_23X75_KS23MX3_3RND = new MongoId( + "5f647d9f8499b57dc40ddb93" + ); + public static readonly MongoId MAGAZINE_30X29_AGS30_99RND = new MongoId( + "5d52d479a4b936793d58c76b" + ); + public static readonly MongoId MAGAZINE_366TKM_6610_20RND = new MongoId( + "587df583245977373c4f1129" + ); + public static readonly MongoId MAGAZINE_366TKM_6L10_30RND = new MongoId( + "5a01c29586f77474660c694c" + ); + public static readonly MongoId MAGAZINE_366TKM_6P2_BAK_40RND = new MongoId( + "5b1fb3e15acfc4001637f068" + ); + public static readonly MongoId MAGAZINE_366TKM_6P2SB11_40RND = new MongoId( + "59e5f5a486f7746c530b3ce2" + ); + public static readonly MongoId MAGAZINE_366TKM_AK_AL_10RND = new MongoId( + "5b1fd4e35acfc40018633c39" + ); + public static readonly MongoId MAGAZINE_366TKM_AK_RIBBED_10RND = new MongoId( + "59e5d83b86f7745aed03d262" + ); + public static readonly MongoId MAGAZINE_366TKM_AK103_30RND = new MongoId( + "5ac66bea5acfc43b321d4aec" + ); + public static readonly MongoId MAGAZINE_366TKM_AK30_30RND = new MongoId( + "59fafc5086f7740dbe19f6c3" + ); + public static readonly MongoId MAGAZINE_366TKM_AK30_FDE_30RND = new MongoId( + "59fafc9386f774067d462453" + ); + public static readonly MongoId MAGAZINE_366TKM_AK55_30RND = new MongoId( + "59d625f086f774661516605d" + ); + public static readonly MongoId MAGAZINE_366TKM_AKA16_73RND = new MongoId( + "5c6175362e221600133e3b94" + ); + public static readonly MongoId MAGAZINE_366TKM_AKMS_AL_30RND = new MongoId( + "5a0060fc86f7745793204432" + ); + public static readonly MongoId MAGAZINE_366TKM_GEN_M3_20RND = new MongoId( + "64b9cf0ac12b9c38db26923a" + ); + public static readonly MongoId MAGAZINE_366TKM_GEN_M3_30RND = new MongoId( + "59d6272486f77466146386ff" + ); + public static readonly MongoId MAGAZINE_366TKM_GEN_M3_BANANA_30RND = new MongoId( + "5e21a3c67e40bd02257a008a" + ); + public static readonly MongoId MAGAZINE_366TKM_KCI_SKS_75RND = new MongoId( + "61695095d92c473c7702147a" + ); + public static readonly MongoId MAGAZINE_366TKM_MOLOT_75RND = new MongoId( + "5cbdc23eae9215001136a407" + ); + public static readonly MongoId MAGAZINE_366TKM_SKS_AALVX_35RND = new MongoId( + "5c5970672e221602b21d7855" + ); + public static readonly MongoId MAGAZINE_366TKM_SKS_INT_10RND = new MongoId( + "587df3a12459772c28142567" + ); + public static readonly MongoId MAGAZINE_366TKM_ULTIMAG_30RND = new MongoId( + "6272874a6c47bd74f92e2087" + ); + public static readonly MongoId MAGAZINE_366TKM_VPO215_4RND = new MongoId( + "5de653abf76fdc1ce94a5a2a" + ); + public static readonly MongoId MAGAZINE_366TKM_X47_762_50RND = new MongoId( + "5cfe8010d7ad1a59283b14c6" + ); + public static readonly MongoId MAGAZINE_40X46_MSGL_0RND = new MongoId( + "627bce33f21bc425b06ab967" + ); + public static readonly MongoId MAGAZINE_45ACP_1911_7RND = new MongoId( + "5e81c4ca763d9f754677befa" + ); + public static readonly MongoId MAGAZINE_45ACP_G30_MAGEX_30RND = new MongoId( + "5fb651dc85f90547f674b6f4" + ); + public static readonly MongoId MAGAZINE_45ACP_GLOCK_45_13RND = new MongoId( + "5fb651b52b1b027b1f50bcff" + ); + public static readonly MongoId MAGAZINE_45ACP_MECGAR_11RND = new MongoId( + "5ef3448ab37dfd6af863525c" + ); + public static readonly MongoId MAGAZINE_45ACP_UMP_45_25RND = new MongoId( + "5fc3e466187fea44d52eda90" + ); + public static readonly MongoId MAGAZINE_45ACP_USP45_12RND = new MongoId( + "6193d338de3cdf1d2614a6fc" + ); + public static readonly MongoId MAGAZINE_45ACP_USP45T_12RND = new MongoId( + "6193d3149fb0c665d5490e32" + ); + public static readonly MongoId MAGAZINE_45ACP_USP45T_999RND = new MongoId( + "671d8b8c0959c721a50ca838" + ); + public static readonly MongoId MAGAZINE_45ACP_WILSON_7RND = new MongoId( + "5f3e77b26cda304dcc634057" + ); + public static readonly MongoId MAGAZINE_45ACP_WILSON_999RND = new MongoId( + "671d8b38b769f0d88c0950f8" + ); + public static readonly MongoId MAGAZINE_46X30_MP7_20RND = new MongoId( + "5ba264f6d4351e0034777d52" + ); + public static readonly MongoId MAGAZINE_46X30_MP7_30RND = new MongoId( + "5ba2657ed4351e0035628ff2" + ); + public static readonly MongoId MAGAZINE_46X30_MP7_40RND = new MongoId( + "5ba26586d4351e44f824b340" + ); + public static readonly MongoId MAGAZINE_545X39_6L18_45RND = new MongoId( + "564ca9df4bdc2d35148b4569" + ); + public static readonly MongoId MAGAZINE_545X39_6L20_30RND = new MongoId( + "564ca99c4bdc2d16268b4589" + ); + public static readonly MongoId MAGAZINE_545X39_6L23_30RND = new MongoId( + "55d480c04bdc2d1d4e8b456a" + ); + public static readonly MongoId MAGAZINE_545X39_6L23_PLUM_30RND = new MongoId( + "5cbdaf89ae9215000e5b9c94" + ); + public static readonly MongoId MAGAZINE_545X39_6L26_45RND = new MongoId( + "55d481904bdc2d8c2f8b456a" + ); + public static readonly MongoId MAGAZINE_545X39_6L31_60RND = new MongoId( + "55d482194bdc2d1d4e8b456b" + ); + public static readonly MongoId MAGAZINE_545X39_AK12_30RND = new MongoId( + "5bed61680db834001d2c45ab" + ); + public static readonly MongoId MAGAZINE_545X39_AK12_OLD_30RND = new MongoId( + "649ec30cb013f04a700e60fb" + ); + public static readonly MongoId MAGAZINE_545X39_GEN_M3_30RND = new MongoId( + "5aaa4194e5b5b055d06310a5" + ); + public static readonly MongoId MAGAZINE_545X39_RPK16_DRUM_95RND = new MongoId( + "5bed625c0db834001c062946" + ); + public static readonly MongoId MAGAZINE_545X39_SAIGA_545_10RND = new MongoId( + "55d4837c4bdc2d1d4e8b456c" + ); + public static readonly MongoId MAGAZINE_545X39_SAIGA_545_20RND = new MongoId( + "64b9e265c94d0d15c5027e35" + ); + public static readonly MongoId MAGAZINE_556X45_6L29_30RND = new MongoId( + "5ac66c5d5acfc4001718d314" + ); + public static readonly MongoId MAGAZINE_556X45_AR_CMAG_100RND = new MongoId( + "6761765f1f08ed5e8800b7a6" + ); + public static readonly MongoId MAGAZINE_556X45_AUG_10RND = new MongoId( + "630e1adbbd357927e4007c09" + ); + public static readonly MongoId MAGAZINE_556X45_AUG_30RND = new MongoId( + "62e7c98b550c8218d602cbb4" + ); + public static readonly MongoId MAGAZINE_556X45_AUG_42RND = new MongoId( + "630e295c984633f1fb0e7c30" + ); + public static readonly MongoId MAGAZINE_556X45_BATTLEMAG_30RND = new MongoId( + "5c6d46132e221601da357d56" + ); + public static readonly MongoId MAGAZINE_556X45_C10_AK_30RND = new MongoId( + "5c0548ae0db834001966a3c2" + ); + public static readonly MongoId MAGAZINE_556X45_G36_30RND = new MongoId( + "62307b7b10d2321fa8741921" + ); + public static readonly MongoId MAGAZINE_556X45_GEN_M3_10RND = new MongoId( + "5aaa5e60e5b5b000140293d6" + ); + public static readonly MongoId MAGAZINE_556X45_GEN_M3_20RND = new MongoId( + "5448c1d04bdc2dff2f8b4569" + ); + public static readonly MongoId MAGAZINE_556X45_GEN_M3_30RND = new MongoId( + "5aaa5dfee5b5b000140293d3" + ); + public static readonly MongoId MAGAZINE_556X45_GEN_M3_40RND = new MongoId( + "544a378f4bdc2d30388b4567" + ); + public static readonly MongoId MAGAZINE_556X45_GEN_M3_AIRSOFT_30RND = new MongoId( + "6241c2c2117ad530666a5108" + ); + public static readonly MongoId MAGAZINE_556X45_GEN_M3_FDE_30RND = new MongoId( + "5d1340b3d7ad1a0b52682ed7" + ); + public static readonly MongoId MAGAZINE_556X45_GEN_M3_FDE_40RND = new MongoId( + "5d1340bdd7ad1a0e8d245aab" + ); + public static readonly MongoId MAGAZINE_556X45_GEN_M3_WINDOW_30RND = new MongoId( + "55802d5f4bdc2dac148b458e" + ); + public static readonly MongoId MAGAZINE_556X45_GEN_M3_WINDOW_FDE_30RND = new MongoId( + "5d1340cad7ad1a0b0b249869" + ); + public static readonly MongoId MAGAZINE_556X45_HK_POLY_30RND = new MongoId( + "5c6d42cb2e2216000e69d7d1" + ); + public static readonly MongoId MAGAZINE_556X45_HK_STEEL_30RND = new MongoId( + "5c05413a0db834001c390617" + ); + public static readonly MongoId MAGAZINE_556X45_MAG5100_100RND = new MongoId( + "5c6592372e221600133e47d7" + ); + public static readonly MongoId MAGAZINE_556X45_MAG560_60RND = new MongoId( + "544a37c44bdc2d25388b4567" + ); + public static readonly MongoId MAGAZINE_556X45_MK16_30RND = new MongoId( + "61840bedd92c473c77021635" + ); + public static readonly MongoId MAGAZINE_556X45_MK16_FDE_30RND = new MongoId( + "61840d85568c120fdd2962a5" + ); + public static readonly MongoId MAGAZINE_556X45_PM_GEN2_30RND = new MongoId( + "5c6d450c2e221600114c997d" + ); + public static readonly MongoId MAGAZINE_556X45_PMAG_D60_60RND = new MongoId( + "59c1383d86f774290a37e0ca" + ); + public static readonly MongoId MAGAZINE_556X45_STANAG_30RND = new MongoId( + "55d4887d4bdc2d962f8b4570" + ); + public static readonly MongoId MAGAZINE_57X28_57_20RND = new MongoId( + "5d3eb5eca4b9363b1f22f8e4" + ); + public static readonly MongoId MAGAZINE_57X28_P90_50RND = new MongoId( + "5cc70093e4a949033c734312" + ); + public static readonly MongoId MAGAZINE_762X25TT_PPSH_35RND = new MongoId( + "5ea034eb5aad6446a939737b" + ); + public static readonly MongoId MAGAZINE_762X25TT_PPSH_71RND = new MongoId( + "5ea034f65aad6446a939737e" + ); + public static readonly MongoId MAGAZINE_762X25TT_TT105_8RND = new MongoId( + "571a29dc2459771fb2755a6a" + ); + public static readonly MongoId MAGAZINE_762X25TT_TT105_999RND = new MongoId( + "671d85439ae8365d69117ba6" + ); + public static readonly MongoId MAGAZINE_762X35_MOLOT_223_45RND = new MongoId( + "6764139c44b3c96e7b0e2f7b" + ); + public static readonly MongoId MAGAZINE_762X39_BUBEN_100RND = new MongoId( + "6513f0a194c72326990a3868" + ); + public static readonly MongoId MAGAZINE_762X51_417_762_10RND = new MongoId( + "617130016c780c1e710c9a24" + ); + public static readonly MongoId MAGAZINE_762X51_417_762_20RND = new MongoId( + "617131a4568c120fdd29482d" + ); + public static readonly MongoId MAGAZINE_762X51_AA70_10RND = new MongoId( + "5d25af8f8abbc3055079fec5" + ); + public static readonly MongoId MAGAZINE_762X51_AA70_20RND = new MongoId( + "5cf12a15d7f00c05464b293f" + ); + public static readonly MongoId MAGAZINE_762X51_AICS_10RND = new MongoId( + "5d25a6538abbc306c62e630d" + ); + public static readonly MongoId MAGAZINE_762X51_AICS_5RND = new MongoId( + "5d25a4a98abbc30b917421a4" + ); + public static readonly MongoId MAGAZINE_762X51_ASSAULT_BOX_100RND = new MongoId( + "660ea4453786cc0af808a1be" + ); + public static readonly MongoId MAGAZINE_762X51_AXMC_308_10RND = new MongoId( + "628120f210e26c1f344e6558" + ); + public static readonly MongoId MAGAZINE_762X51_DVL10_10RND = new MongoId( + "5888988e24597752fe43a6fa" + ); + public static readonly MongoId MAGAZINE_762X51_FEED_TRAY_POUCH_100RND = new MongoId( + "660ea4ba5a58d057b009efab" + ); + public static readonly MongoId MAGAZINE_762X51_KAC_762_10RND = new MongoId( + "5df8f535bb49d91fb446d6b0" + ); + public static readonly MongoId MAGAZINE_762X51_KAC_762_20RND = new MongoId( + "5df8f541c41b2312ea3335e3" + ); + public static readonly MongoId MAGAZINE_762X51_L1A1_30RND = new MongoId( + "5b7d37845acfc400170e2f87" + ); + public static readonly MongoId MAGAZINE_762X51_L7AWM_20RND = new MongoId( + "65293c38fc460e50a509cb25" + ); + public static readonly MongoId MAGAZINE_762X51_L7AWM_25RND = new MongoId( + "65293c7a17e14363030ad308" + ); + public static readonly MongoId MAGAZINE_762X51_M14_30RND = new MongoId( + "5addcce35acfc4001a5fc635" + ); + public static readonly MongoId MAGAZINE_762X51_M1A_10RND = new MongoId( + "64b9e2037fdfb81df81e3c25" + ); + public static readonly MongoId MAGAZINE_762X51_M1A_20RND = new MongoId( + "5aaf8a0be5b5b00015693243" + ); + public static readonly MongoId MAGAZINE_762X51_MDT_12RND = new MongoId( + "5d25a6a48abbc306c62e6310" + ); + public static readonly MongoId MAGAZINE_762X51_MK17_20RND = new MongoId( + "618168dc8004cc50514c34fc" + ); + public static readonly MongoId MAGAZINE_762X51_MK17_20RND_FDE = new MongoId( + "6183d53f1cb55961fa0fdcda" + ); + public static readonly MongoId MAGAZINE_762X51_PMAG_762_20RND = new MongoId( + "5a3501acc4a282000d72293a" + ); + public static readonly MongoId MAGAZINE_762X51_PMAG_AC_10RND = new MongoId( + "5d25a7b88abbc3054f3e60bc" + ); + public static readonly MongoId MAGAZINE_762X51_PMAG_AC_5RND = new MongoId( + "5ce69cbad7f00c00b61c5098" + ); + public static readonly MongoId MAGAZINE_762X51_SA58_MMW_20RND = new MongoId( + "5b7c2d1d5acfc43d1028532a" + ); + public static readonly MongoId MAGAZINE_762X51_SA58FAL_10RND = new MongoId( + "5b7bef1e5acfc43d82528402" + ); + public static readonly MongoId MAGAZINE_762X51_SA58FAL_20RND = new MongoId( + "5b099ac65acfc400186331e1" + ); + public static readonly MongoId MAGAZINE_762X51_SA58FAL_30RND = new MongoId( + "5b7bef5d5acfc43bca7067a3" + ); + public static readonly MongoId MAGAZINE_762X51_T5000M_5RND = new MongoId( + "5df25b6c0b92095fd441e4cf" + ); + public static readonly MongoId MAGAZINE_762X51_VPO101_10RND = new MongoId( + "5c503ad32e2216398b5aada2" + ); + public static readonly MongoId MAGAZINE_762X51_VPO101_5RND = new MongoId( + "5c503ac82e221602b21d6e9a" + ); + public static readonly MongoId MAGAZINE_762X51_WYATT_10RND = new MongoId( + "5bfeaa0f0db834001b734927" + ); + public static readonly MongoId MAGAZINE_762X51_WYATT_5RND = new MongoId( + "5bfea7ad0db834001c38f1ee" + ); + public static readonly MongoId MAGAZINE_762X51_X14_762_50RND = new MongoId( + "5addccf45acfc400185c2989" + ); + public static readonly MongoId MAGAZINE_762X51_X25_50RND = new MongoId( + "6761770e48fa5c377e06fc3c" + ); + public static readonly MongoId MAGAZINE_762X51_XFAL_50RND = new MongoId( + "5b7bef9c5acfc43d102852ec" + ); + public static readonly MongoId MAGAZINE_762X54R_AA762R_02_10RND = new MongoId( + "5bae13ded4351e44f824bf38" + ); + public static readonly MongoId MAGAZINE_762X54R_AVT_15RND = new MongoId( + "641074a07fd350b98c0b3f96" + ); + public static readonly MongoId MAGAZINE_762X54R_MOSIN_5RND = new MongoId( + "5ae0973a5acfc4001562206c" + ); + public static readonly MongoId MAGAZINE_762X54R_PK_100RND = new MongoId( + "646372518610c40fc20204e8" + ); + public static readonly MongoId MAGAZINE_762X54R_PKTM_250RND = new MongoId( + "65785979bec02a3fe82c181e" + ); + public static readonly MongoId MAGAZINE_762X54R_SV98_10RND = new MongoId( + "559ba5b34bdc2d1f1a8b4582" + ); + public static readonly MongoId MAGAZINE_762X54R_SVD_10RND = new MongoId( + "5c471c442e221602b542a6f8" + ); + public static readonly MongoId MAGAZINE_762X54R_SVD_20RND = new MongoId( + "5c88f24b2e22160bc12c69a6" + ); + public static readonly MongoId MAGAZINE_762X54R_SVT_10_10RND = new MongoId( + "6422e1ea3c0f06190302161a" + ); + public static readonly MongoId MAGAZINE_86X70_AXMC_338LM_10RND = new MongoId( + "628120fd5631d45211793c9f" + ); + public static readonly MongoId MAGAZINE_86X70_M10_338_8RND = new MongoId( + "673cbdfad0453ba50c0f76d6" + ); + public static readonly MongoId MAGAZINE_86X70_MK18_10RND = new MongoId( + "5fc23426900b1d5091531e15" + ); + public static readonly MongoId MAGAZINE_9X18PM_APS_20RND = new MongoId( + "5a17fb03fcdbcbcae668728f" + ); + public static readonly MongoId MAGAZINE_9X18PM_PM_8RND = new MongoId( + "5448c12b4bdc2d02308b456f" + ); + public static readonly MongoId MAGAZINE_9X18PM_PM_999RND = new MongoId( + "670e8eab8c1bb0e5a7075acf" + ); + public static readonly MongoId MAGAZINE_9X18PM_PM_DRUM_84RND = new MongoId( + "55d485be4bdc2d962f8b456f" + ); + public static readonly MongoId MAGAZINE_9X18PM_PP91_20RND = new MongoId( + "57d14e1724597714010c3f4b" + ); + public static readonly MongoId MAGAZINE_9X18PM_PP91_30RND = new MongoId( + "57d1519e24597714373db79d" + ); + public static readonly MongoId MAGAZINE_9X19_BIG_STICK_24RND = new MongoId( + "630769c4962d0247b029dc60" + ); + public static readonly MongoId MAGAZINE_9X19_BIG_STICK_31RND = new MongoId( + "630767c37d50ff5e8a1ea71a" + ); + public static readonly MongoId MAGAZINE_9X19_BIG_STICK_33RND = new MongoId( + "5a7ad2e851dfba0016153692" + ); + public static readonly MongoId MAGAZINE_9X19_CR_CYL_6RND = new MongoId( + "624c3074dbbd335e8e6becf3" + ); + public static readonly MongoId MAGAZINE_9X19_CX4_30RND = new MongoId( + "676176b762e0497044079f49" + ); + public static readonly MongoId MAGAZINE_9X19_G_SGMT_50RND = new MongoId( + "5a718f958dc32e00094b97e7" + ); + public static readonly MongoId MAGAZINE_9X19_G19X_19RND = new MongoId( + "63076701a987397c0816d21b" + ); + public static readonly MongoId MAGAZINE_9X19_G19X_999RND = new MongoId( + "671d8ac8a3e45c1f59082799" + ); + public static readonly MongoId MAGAZINE_9X19_GL9_21RND = new MongoId( + "5a718da68dc32e000d46d264" + ); + public static readonly MongoId MAGAZINE_9X19_GLOCK_9X19_17RND = new MongoId( + "5a718b548dc32e000d46d262" + ); + public static readonly MongoId MAGAZINE_9X19_M9A3_17RND = new MongoId( + "5cadc2e0ae9215051e1c21e7" + ); + public static readonly MongoId MAGAZINE_9X19_MP443_18RND = new MongoId( + "576a5ed62459771e9c2096cb" + ); + public static readonly MongoId MAGAZINE_9X19_MP443_999RND = new MongoId( + "671d8617a3e45c1f5908278c" + ); + public static readonly MongoId MAGAZINE_9X19_MP5_20RND = new MongoId( + "5d2f213448f0355009199284" + ); + public static readonly MongoId MAGAZINE_9X19_MP5_30RND = new MongoId( + "5926c3b286f774640d189b6b" + ); + public static readonly MongoId MAGAZINE_9X19_MP9_15RND = new MongoId( + "5de8e8dafd6b4e6e2276dc32" + ); + public static readonly MongoId MAGAZINE_9X19_MP9_20RND = new MongoId( + "5de8ea8ffd6b4e6e2276dc35" + ); + public static readonly MongoId MAGAZINE_9X19_MP9_25RND = new MongoId( + "5de8eaadbbaf010b10528a6d" + ); + public static readonly MongoId MAGAZINE_9X19_MP9_30RND = new MongoId( + "5de8eac42a78646d96665d91" + ); + public static readonly MongoId MAGAZINE_9X19_MPX_20RND = new MongoId( + "5c5db6552e2216001026119d" + ); + public static readonly MongoId MAGAZINE_9X19_MPX_30RND = new MongoId( + "5894a05586f774094708ef75" + ); + public static readonly MongoId MAGAZINE_9X19_MPX_F5_50RND = new MongoId( + "5c5db6742e2216000f1b2852" + ); + public static readonly MongoId MAGAZINE_9X19_MPX_TTI_41RND = new MongoId( + "5c5db6652e221600113fba51" + ); + public static readonly MongoId MAGAZINE_9X19_P226_15RND = new MongoId( + "56d59948d2720bb7418b4582" + ); + public static readonly MongoId MAGAZINE_9X19_P226_20RND = new MongoId( + "5c920e902e221644f31c3c99" + ); + public static readonly MongoId MAGAZINE_9X19_PL15_16RND = new MongoId( + "602286df23506e50807090c6" + ); + public static readonly MongoId MAGAZINE_9X19_PP19_F5_50RND = new MongoId( + "6749c40822a2740bb408d066" + ); + public static readonly MongoId MAGAZINE_9X19_PP1901_30RND = new MongoId( + "599860ac86f77436b225ed1a" + ); + public static readonly MongoId MAGAZINE_9X19_SB7_10RND = new MongoId( + "5998529a86f774647f44f421" + ); + public static readonly MongoId MAGAZINE_9X19_SG919_20RND = new MongoId( + "5c0673fb0db8340023300271" + ); + public static readonly MongoId MAGAZINE_9X19_SG919_30RND = new MongoId( + "5c0672ed0db834001b7353f3" + ); + public static readonly MongoId MAGAZINE_9X19_UZI_20RND = new MongoId( + "66992713ae08c5c29e0c4f97" + ); + public static readonly MongoId MAGAZINE_9X19_UZI_25RND = new MongoId( + "6699271b9950f5f4cd060299" + ); + public static readonly MongoId MAGAZINE_9X19_UZI_32RND = new MongoId( + "669927203c4fda6471005cbe" + ); + public static readonly MongoId MAGAZINE_9X19_UZI_40RND = new MongoId( + "66992725ae08c5c29e0c4f9a" + ); + public static readonly MongoId MAGAZINE_9X19_UZI_50RND = new MongoId( + "6699272a3c4fda6471005cc1" + ); + public static readonly MongoId MAGAZINE_9X19_UZI_CMAG_100RND = new MongoId( + "676176a162e0497044079f46" + ); + public static readonly MongoId MAGAZINE_9X19_UZI_PRO_20RND = new MongoId( + "668031ffe3e7eb26e8004cdd" + ); + public static readonly MongoId MAGAZINE_9X19_UZI_PRO_25RND = new MongoId( + "66866f4ec3d473265104f381" + ); + public static readonly MongoId MAGAZINE_9X19_UZI_PRO_32RND = new MongoId( + "66866f622a2296a8d9099639" + ); + public static readonly MongoId MAGAZINE_9X19_X5_MP5_50RND = new MongoId( + "5a351711c4a282000b1521a4" + ); + public static readonly MongoId MAGAZINE_9X21_SR1MP_18RND = new MongoId( + "59f99a7d86f7745b134aa97b" + ); + public static readonly MongoId MAGAZINE_9X21_SR2M_20RND = new MongoId( + "633a98eab8b0506e48497c1a" + ); + public static readonly MongoId MAGAZINE_9X21_SR2M_30RND = new MongoId( + "62e153bcdb1a5c41971c1b5b" + ); + public static readonly MongoId MAGAZINE_9X33R_CR_CYL_6RND = new MongoId( + "619f54a1d25cbd424731fb99" + ); + public static readonly MongoId MAGAZINE_9X33R_CR_LOAD_0RND = new MongoId( + "61a4cda622af7f4f6a3ce617" + ); + public static readonly MongoId MAGAZINE_9X33R_DE_9RND = new MongoId("669fa435803b94fb5d0e3a76"); + public static readonly MongoId MAGAZINE_9X39_6L24_10RND = new MongoId( + "57838f0b2459774a256959b2" + ); + public static readonly MongoId MAGAZINE_9X39_6L25_20RND = new MongoId( + "57838f9f2459774a150289a0" + ); + public static readonly MongoId MAGAZINE_9X39_9A91_20RND = new MongoId( + "6450ec2e7da7133e5a09ca96" + ); + public static readonly MongoId MAGAZINE_9X39_SR3M130_30RND = new MongoId( + "5a9e81fba2750c00164f6b11" + ); + public static readonly MongoId MAGAZINE_9X39_VSSVAL_30RND = new MongoId( + "65118f531b90b4fc77015083" + ); + public static readonly MongoId MAP_CUSTOMS_PLAN = new MongoId("5798a2832459774b53341029"); + public static readonly MongoId MAP_FACTORY_PLAN = new MongoId("574eb85c245977648157eec3"); + public static readonly MongoId MAP_INTERCHANGE_PLAN = new MongoId("5be4038986f774527d3fae60"); + public static readonly MongoId MAP_SHORELINE_HEALTH_RESORT_PLAN = new MongoId( + "5a80a29286f7742b25692012" + ); + public static readonly MongoId MAP_SHORELINE_PLAN = new MongoId("5a8036fb86f77407252ddc02"); + public static readonly MongoId MAP_WOODS_PLAN = new MongoId("5900b89686f7744e704a8747"); + public static readonly MongoId MARKOFUNKNOWN_MARK_OF_THE_UNHEARD = new MongoId( + "65ddcc9cfa85b9f17d0dfb07" + ); + public static readonly MongoId MARKSMANRIFLE_HK_G28_762X51_MARKSMAN_RIFLE = new MongoId( + "6176aca650224f204c1da3fb" + ); + public static readonly MongoId MARKSMANRIFLE_KELTEC_RFB_762X51_RIFLE = new MongoId( + "5f2a9575926fd9352339381f" + ); + public static readonly MongoId MARKSMANRIFLE_KNIGHTS_ARMAMENT_COMPANY_SR25_762X51_MARKSMAN_RIFLE = + new MongoId("5df8ce05b11454561e39243b"); + public static readonly MongoId MARKSMANRIFLE_REMINGTON_R11_RSASS_762X51_MARKSMAN_RIFLE = + new MongoId("5a367e5dc4a282000e49738f"); + public static readonly MongoId MARKSMANRIFLE_SPRINGFIELD_ARMORY_M1A_762X51_RIFLE = new MongoId( + "5aafa857e5b5b00018480968" + ); + public static readonly MongoId MARKSMANRIFLE_SVDS_762X54R_SNIPER_RIFLE = new MongoId( + "5c46fbd72e2216398b5a8c9c" + ); + public static readonly MongoId MARKSMANRIFLE_SWORD_INTERNATIONAL_MK18_338_LM_MARKSMAN_RIFLE = + new MongoId("5fc22d7c187fea44d52eda44"); + public static readonly MongoId MARKSMANRIFLE_VSS_VINTOREZ_9X39_SPECIAL_SNIPER_RIFLE = + new MongoId("57838ad32459774a17445cd2"); + public static readonly MongoId MEDICAL_ALUMINUM_SPLINT = new MongoId( + "5af0454c86f7746bf20992e8" + ); + public static readonly MongoId MEDICAL_ARMY_BANDAGE = new MongoId("5751a25924597722c463c472"); + public static readonly MongoId MEDICAL_ASEPTIC_BANDAGE = new MongoId( + "544fb25a4bdc2dfb738b4567" + ); + public static readonly MongoId MEDICAL_CALOKB_HEMOSTATIC_APPLICATOR = new MongoId( + "5e8488fa988a8701445df1e4" + ); + public static readonly MongoId MEDICAL_CAT_HEMOSTATIC_TOURNIQUET = new MongoId( + "60098af40accd37ef2175f27" + ); + public static readonly MongoId MEDICAL_CMS_SURGICAL_KIT = new MongoId( + "5d02778e86f774203e7dedbe" + ); + public static readonly MongoId MEDICAL_ESMARCH_TOURNIQUET = new MongoId( + "5e831507ea0a7c419c2f9bd9" + ); + public static readonly MongoId MEDICAL_IMMOBILIZING_SPLINT = new MongoId( + "544fb3364bdc2d34748b456a" + ); + public static readonly MongoId MEDICAL_SANITAR_KIT = new MongoId("5e99735686f7744bfc4af32c"); + public static readonly MongoId MEDICAL_SURV12_FIELD_SURGICAL_KIT = new MongoId( + "5d02797c86f774203f38e30a" + ); + public static readonly MongoId MEDKIT_AFAK_TACTICAL_INDIVIDUAL_FIRST_AID_KIT = new MongoId( + "60098ad7c2240c0fe85c570a" + ); + public static readonly MongoId MEDKIT_AI2 = new MongoId("5755356824597772cb798962"); + public static readonly MongoId MEDKIT_CAR_FIRST_AID_KIT = new MongoId( + "590c661e86f7741e566b646a" + ); + public static readonly MongoId MEDKIT_GRIZZLY_MEDICAL_KIT = new MongoId( + "590c657e86f77412b013051d" + ); + public static readonly MongoId MEDKIT_IFAK_INDIVIDUAL_FIRST_AID_KIT = new MongoId( + "590c678286f77426c9660122" + ); + public static readonly MongoId MEDKIT_SALEWA_FIRST_AID_KIT = new MongoId( + "544fb45d4bdc2dee738b4568" + ); + public static readonly MongoId MEDKIT_SANITARS_FIRST_AID_KIT = new MongoId( + "5e99711486f7744bfc4af328" + ); + public static readonly MongoId MONEY_DOLLARS = new MongoId("5696686a4bdc2da3298b456a"); + public static readonly MongoId MONEY_EUROS = new MongoId("569668774bdc2da2298b4568"); + public static readonly MongoId MONEY_GP_COIN = new MongoId("5d235b4d86f7742e017bc88a"); + public static readonly MongoId MONEY_ROUBLES = new MongoId("5449016a4bdc2d6f028b456f"); + public static readonly MongoId MOUNT_AI_AX50_34MM_SCOPE = new MongoId( + "62811f461d5df4475f46a332" + ); + public static readonly MongoId MOUNT_AI_AXMC_ADAPTER_KIT_MEDIUM_LENGTH_RAIL = new MongoId( + "628120dd308cb521f87a8fa1" + ); + public static readonly MongoId MOUNT_AI_AXMC_ADAPTER_KIT_SHORT_LENGTH_RAIL = new MongoId( + "628120d309427b40ab14e76d" + ); + public static readonly MongoId MOUNT_AI_AXMC_AT_X_TOP_RAIL = new MongoId( + "628120c21d5df4475f46a337" + ); + public static readonly MongoId MOUNT_AI_AXMC_KEYSLOT_HARRIS_BIPOD = new MongoId( + "671126a210d67adb5b08e925" + ); + public static readonly MongoId MOUNT_AIMPOINT_COMPM4PRO_LRP = new MongoId( + "5c7d55f52e221644f31bff6a" + ); + public static readonly MongoId MOUNT_AIMPOINT_COMPM4PRO_QRP2 = new MongoId( + "616584766ef05c2ce828ef57" + ); + public static readonly MongoId MOUNT_AIMPOINT_MICRO_H2_STANDARD = new MongoId( + "616554fe50224f204c1da2aa" + ); + public static readonly MongoId MOUNT_AIMPOINT_MICRO_SPACER_HIGH = new MongoId( + "58d39b0386f77443380bf13c" + ); + public static readonly MongoId MOUNT_AIMPOINT_MICRO_STANDARD = new MongoId( + "58d39d3d86f77445bb794ae7" + ); + public static readonly MongoId MOUNT_AIMPOINT_STANDARD_SPACER = new MongoId( + "5c7d560b2e22160bc12c6139" + ); + public static readonly MongoId MOUNT_AK_ZENIT_B12 = new MongoId("57ffaea724597779f52b3a4d"); + public static readonly MongoId MOUNT_AKS74U_ZENIT_B18 = new MongoId("57ffb0062459777a045af529"); + public static readonly MongoId MOUNT_ALEXANDER_ARMS_10_INCH_RAIL = new MongoId( + "5b30bc285acfc47a8608615d" + ); + public static readonly MongoId MOUNT_ALEXANDER_ARMS_3_INCH_RAIL = new MongoId( + "5b30bc165acfc40016387293" + ); + public static readonly MongoId MOUNT_ANPVS14_NOROTOS_DUAL_DOVETAIL = new MongoId( + "5a16b93dfcdbcbcae6687261" + ); + public static readonly MongoId MOUNT_ARMASIGHT_VULCAN_UNIVERSAL_BASE = new MongoId( + "5b3b6dc75acfc47a8773fb1e" + ); + public static readonly MongoId MOUNT_ARMASIGHT_ZEUS_UNIVERSAL_BASE = new MongoId( + "63fc449f5bd61c6cf3784a88" + ); + public static readonly MongoId MOUNT_AXION_KOBRA_DOVETAIL = new MongoId( + "591ee00d86f774592f7b841e" + ); + public static readonly MongoId MOUNT_BENELLI_M3_SUPER_90_UPPER_RECEIVER_TOP_RAIL = new MongoId( + "625ed7c64d9b6612df732146" + ); + public static readonly MongoId MOUNT_BT_QD_NAR_MOUNT_FOR_AIMPOINT_ACRO = new MongoId( + "615d8d878004cc50514c3233" + ); + public static readonly MongoId MOUNT_BURRIS_ARPEPR_30MM_RING_SCOPE = new MongoId( + "5b2389515acfc4771e1be0c0" + ); + public static readonly MongoId MOUNT_BURRIS_FASTFIRE_WEAVER_BASE = new MongoId( + "577d128124597739d65d0e56" + ); + public static readonly MongoId MOUNT_CNC_GUNS_KEYMOD_2_INCH_RAIL = new MongoId( + "623c2f652febb22c2777d8d7" + ); + public static readonly MongoId MOUNT_CNC_GUNS_KEYMOD_4_INCH_RAIL = new MongoId( + "623c2f4242aee3103f1c44b7" + ); + public static readonly MongoId MOUNT_CORVUS_DEFENSIO_KEYMOD_18_INCH_RAIL_SECTION = new MongoId( + "67111094d1758189fc0bd223" + ); + public static readonly MongoId MOUNT_CORVUS_DEFENSIO_KEYMOD_68_INCH_RAIL_SECTION = new MongoId( + "6711109e723c2733410161eb" + ); + public static readonly MongoId MOUNT_CUSTOM_GUNS_HANDGUARD_RAIL = new MongoId( + "6086b5392535c57a13424d70" + ); + public static readonly MongoId MOUNT_CYCLONE_SHAKHIN = new MongoId("67641a851b2899700609901a"); + public static readonly MongoId MOUNT_DANIEL_DEFENSE_25MM_ACCESSORY_RING = new MongoId( + "6267c6396b642f77f56f5c1c" + ); + public static readonly MongoId MOUNT_DELTAPOINT_CROSS_SLOT_MOUNT_BASE = new MongoId( + "58d2664f86f7747fec5834f6" + ); + public static readonly MongoId MOUNT_DELTATEK_SPRUT_MOUNT_FOR_PUMPACTION_SHOTGUNS = new MongoId( + "55d48ebc4bdc2d8c2f8b456c" + ); + public static readonly MongoId MOUNT_ETMI019_SHOTGUN_RAIL = new MongoId( + "5dfe14f30b92095fd441edaf" + ); + public static readonly MongoId MOUNT_FN_FIVESEVEN_MK2_RMR = new MongoId( + "5d7b6bafa4b93652786f4c76" + ); + public static readonly MongoId MOUNT_FN_P90_EFFEN_90_RECEIVER_RAIL = new MongoId( + "5cc7012ae4a949001252b43e" + ); + public static readonly MongoId MOUNT_FN_P90_UPPER_RECEIVER_SIDE_RAIL = new MongoId( + "5cc70146e4a949000d73bf6b" + ); + public static readonly MongoId MOUNT_FN_P90_UPPER_RECEIVER_TOP_RAIL = new MongoId( + "5cc7015ae4a949001152b4c6" + ); + public static readonly MongoId MOUNT_FN_SCAR_BOTTOM_RAIL = new MongoId( + "61816df1d3a39d50044c139e" + ); + public static readonly MongoId MOUNT_FN_SCAR_KINETIC_MREX_65_MLOK_RAIL = new MongoId( + "619666f4af1f5202c57a952d" + ); + public static readonly MongoId MOUNT_FN_SCAR_KINETIC_MREX_65_MLOK_RAIL_FDE = new MongoId( + "66ffc6ceb7ff397142017c3a" + ); + public static readonly MongoId MOUNT_FN_SCAR_PMM_MLOK_LOWER_RAIL = new MongoId( + "66ffc72082d36dec82030c1f" + ); + public static readonly MongoId MOUNT_FN_SCAR_PMM_MLOK_LOWER_RAIL_FDE = new MongoId( + "66ffc903fe9b382596065304" + ); + public static readonly MongoId MOUNT_FN_SCAR_PMM_MLOK_SIDE_RAILS = new MongoId( + "66ffe6c36f11538c7d0581e3" + ); + public static readonly MongoId MOUNT_FN_SCAR_PMM_MLOK_SIDE_RAILS_FDE = new MongoId( + "66ffe7bab8da88805e07a03e" + ); + public static readonly MongoId MOUNT_FN_SCAR_PMM_MRE_XL_RAIL_EXTENSION = new MongoId( + "66ffe2fbab3336cc0106382b" + ); + public static readonly MongoId MOUNT_FN_SCAR_PMM_MRE_XL_RAIL_EXTENSION_FDE = new MongoId( + "66ffe5edfe9b38259606530d" + ); + public static readonly MongoId MOUNT_FN_SCAR_PMM_RAIL_ELIMINATION_PANELS = new MongoId( + "66ffe66a20771d839f0fb4a9" + ); + public static readonly MongoId MOUNT_FN_SCAR_PMM_RAIL_ELIMINATION_PANELS_FDE = new MongoId( + "66ffe6916f11538c7d0581e1" + ); + public static readonly MongoId MOUNT_FN_SCAR_PWS_SRX_RAIL_EXTENSION = new MongoId( + "61965d9058ef8c428c287e0d" + ); + public static readonly MongoId MOUNT_FN_SCAR_SIDE_RAILS = new MongoId( + "61816dfa6ef05c2ce828f1ad" + ); + public static readonly MongoId MOUNT_FN_SCAR_VLTOR_CASVSCAR_HANDGUARD = new MongoId( + "66ffe811f5d758d71101e89a" + ); + public static readonly MongoId MOUNT_FN_SCAR_VLTOR_CASVSCAR_HANDGUARD_EXTENDER = new MongoId( + "66ffea456be19fd81e0ef742" + ); + public static readonly MongoId MOUNT_FN_SCAR_VLTOR_CASVSCAR_HANDGUARD_EXTENDER_PATRIOT_BROWN = + new MongoId("66ffeab4ab3336cc01063833"); + public static readonly MongoId MOUNT_FN_SCAR_VLTOR_CASVSCAR_HANDGUARD_PATRIOT_BROWN = + new MongoId("66ffea06132225f0fe061394"); + public static readonly MongoId MOUNT_GBRS_AIMPOINT_HYDRA_MOUNT_KIT_BLACK = new MongoId( + "65392f611406374f82152ba5" + ); + public static readonly MongoId MOUNT_GBRS_AIMPOINT_HYDRA_MOUNT_KIT_FDE = new MongoId( + "653931da5db71d30ab1d6296" + ); + public static readonly MongoId MOUNT_GEISSELE_SUPER_PRECISION_30MM_RING_SCOPE = new MongoId( + "618b9643526131765025ab35" + ); + public static readonly MongoId MOUNT_GEISSELE_SUPER_PRECISION_30MM_RING_SCOPE_MOUNT_DDC = + new MongoId("618bab21526131765025ab3f"); + public static readonly MongoId MOUNT_GEISSELE_SUPER_PRECISION_TOP_RING_CAP = new MongoId( + "618b9671d14d6d5ab879c5ea" + ); + public static readonly MongoId MOUNT_GEISSELE_SUPER_PRECISION_TOP_RING_CAP_DDC = new MongoId( + "618ba91477b82356f91ae0e8" + ); + public static readonly MongoId MOUNT_GLOCK_AIMTECH_MOUNT_BASE = new MongoId( + "5a7ad4af51dfba0013379717" + ); + public static readonly MongoId MOUNT_GLOCK_AIMTECH_TIGER_SHARK_SIGHT = new MongoId( + "5a7ad55551dfba0015068f42" + ); + public static readonly MongoId MOUNT_GLOCK_TANGODOWN_AAM01_ACRO_MOUNT_BASE = new MongoId( + "615d8da4d3a39d50044c10e8" + ); + public static readonly MongoId MOUNT_HARTMAN_LENOK_70MM_RAIL = new MongoId( + "65434a4e4e3a01736a6c9706" + ); + public static readonly MongoId MOUNT_HENSOLDT_RIS_TOP_RAIL = new MongoId( + "622efdf8ec80d870d349b4e5" + ); + public static readonly MongoId MOUNT_HEXAGON_MEDIUM_LENGTH_RAIL = new MongoId( + "5b800ebc86f774394e230a90" + ); + public static readonly MongoId MOUNT_HEXAGON_MEDIUM_LENGTH_RAIL_ANODIZED_RED = new MongoId( + "5b8403a086f7747ff856f4e2" + ); + public static readonly MongoId MOUNT_HEXAGON_SHORT_LENGTH_RAIL = new MongoId( + "5b800ed086f7747baf6e2f9e" + ); + public static readonly MongoId MOUNT_HEXAGON_SHORT_LENGTH_RAIL_ANODIZED_RED = new MongoId( + "5b84038986f774774913b0c1" + ); + public static readonly MongoId MOUNT_HK_G36_BOTTOM_HANDGUARD_RAIL = new MongoId( + "62444cb99f47004c781903eb" + ); + public static readonly MongoId MOUNT_HK_G36_MAGWELL = new MongoId("622f02437762f55aaa68ac85"); + public static readonly MongoId MOUNT_HK_G36_OPTIC_RAIL_WITH_FLIPUP_SIGHTS = new MongoId( + "622b3d5cf9cfc87d675d2de9" + ); + public static readonly MongoId MOUNT_HK_G36_SIDE_HANDGUARD_RAIL = new MongoId( + "62444cd3674028188b052799" + ); + public static readonly MongoId MOUNT_HK_G36_SIGHT = new MongoId("622b3c081b89c677a33bcda6"); + public static readonly MongoId MOUNT_HK_G36_STANAG_MAGWELL = new MongoId( + "622f039199f4ea1a4d6c9a17" + ); + public static readonly MongoId MOUNT_HK_HKEY_3_INCH_RAIL = new MongoId( + "67069d3bb29a2cd338033390" + ); + public static readonly MongoId MOUNT_HK_MP5_BT_TRIRAIL_RECEIVER = new MongoId( + "5a966ec8a2750c00171b3f36" + ); + public static readonly MongoId MOUNT_HK_MP5_MFI_HK_UNIVERSAL_LOW_PROFILE_SCOPE = new MongoId( + "5926dad986f7741f82604363" + ); + public static readonly MongoId MOUNT_HK_MP5SD_BT_TRIRAIL_RING = new MongoId( + "59c63b4486f7747afb151c1c" + ); + public static readonly MongoId MOUNT_HK_UMP_BOTTOM_HANDGUARD_RAIL = new MongoId( + "5fc53954f8b6a877a729eaeb" + ); + public static readonly MongoId MOUNT_HK_UMP_SIDE_HANDGUARD_RAIL = new MongoId( + "5fc5396e900b1d5091531e72" + ); + public static readonly MongoId MOUNT_HK_USP_45_ACP_ELITE_COMPENSATOR = new MongoId( + "619621a4de3cdf1d2614a7a7" + ); + public static readonly MongoId MOUNT_HK_USP_45_ACP_MATCH_COMPENSATOR = new MongoId( + "619624b26db0f2477964e6b0" + ); + public static readonly MongoId MOUNT_HK_USP_RAIL_ADAPTER = new MongoId( + "6196255558ef8c428c287d1c" + ); + public static readonly MongoId MOUNT_IEA_MILOPTICS_KHF_34MM_ONEPIECE_MAG = new MongoId( + "5c86592b2e2216000e69e77c" + ); + public static readonly MongoId MOUNT_JP_ENTERPRISES_FLATTOP_30MM_RING_SCOPE = new MongoId( + "5a37ca54c4a282000d72296a" + ); + public static readonly MongoId MOUNT_KAC_MWS_BIPOD_ADAPTER = new MongoId( + "676175bb48fa5c377e06fc36" + ); + public static readonly MongoId MOUNT_KAC_URX_3_3_INCH_RAIL = new MongoId( + "5d133067d7ad1a33013f95b4" + ); + public static readonly MongoId MOUNT_KIBA_ARMS_25MM_ACCESSORY_RING = new MongoId( + "57d17e212459775a1179a0f5" + ); + public static readonly MongoId MOUNT_KIBA_ARMS_SHORT_MOUNT_SIGHT_ADAPTER = new MongoId( + "5c1cdd302e221602b3137250" + ); + public static readonly MongoId MOUNT_KIBA_ARMS_SPRM_RAIL_MOUNT_FOR_PUMPACTION_SHOTGUNS = + new MongoId("55d48a634bdc2d8b2f8b456a"); + public static readonly MongoId MOUNT_KMZ_1P59_DOVETAIL = new MongoId( + "5d0a29ead7ad1a0026013f27" + ); + public static readonly MongoId MOUNT_KMZ_1P69_WEAVER = new MongoId("5d0a29fed7ad1a002769ad08"); + public static readonly MongoId MOUNT_KRISS_VECTOR_BOTTOM_RAIL = new MongoId( + "5fbb976df9986c4cff3fe5f2" + ); + public static readonly MongoId MOUNT_KRISS_VECTOR_MK5_MODULAR_RAIL = new MongoId( + "5fbb978207e8a97d1f0902d3" + ); + public static readonly MongoId MOUNT_KRISS_VECTOR_SIDE_RAIL = new MongoId( + "5fce0f9b55375d18a253eff2" + ); + public static readonly MongoId MOUNT_LARUE_LT101_QD_TACTICAL_PICATINNY_RISER = new MongoId( + "5c064c400db834001d23f468" + ); + public static readonly MongoId MOUNT_LEAPERS_UTG_25MM_RING_SCOPE = new MongoId( + "5dff77c759400025ea5150cf" + ); + public static readonly MongoId MOUNT_LEAPERS_UTG_UNIVERSAL_SHOTGUN_BARREL = new MongoId( + "6710cea62bb09af72f0e6bf8" + ); + public static readonly MongoId MOUNT_LEUPOLD_MARK_IMS_35MM_RING_SCOPE = new MongoId( + "6761759e7ee06333f108bf86" + ); + public static readonly MongoId MOUNT_LOBAEV_ARMS_30MM_SCOPE = new MongoId( + "57c69dd424597774c03b7bbc" + ); + public static readonly MongoId MOUNT_M14_AMEGA_MINI_SCOUT_MOUNT_SYSTEM = new MongoId( + "5addbfd15acfc40015621bde" + ); + public static readonly MongoId MOUNT_M14_ARMS_18_SCOPE = new MongoId( + "5addbfe15acfc4001a5fc58b" + ); + public static readonly MongoId MOUNT_M14_LEAPERS_UTG_4POINT_LOCKING_DELUXE = new MongoId( + "5addbfef5acfc400185c2857" + ); + public static readonly MongoId MOUNT_M14_SAGE_INTERNATIONAL_DCSB = new MongoId( + "5addbffe5acfc4001714dfac" + ); + public static readonly MongoId MOUNT_M14_ULTIMAK_M8_FORWARD_OPTIC = new MongoId( + "5addbfbb5acfc400194dbcf7" + ); + public static readonly MongoId MOUNT_M14_VLTOR_CASV14_RAIL_SYSTEM = new MongoId( + "5addc00b5acfc4001669f144" + ); + public static readonly MongoId MOUNT_M1911A1_NCSTAR_TRIGGER_GUARD = new MongoId( + "5ef369b08cef260c0642acaf" + ); + public static readonly MongoId MOUNT_M1911A1_WEIGAND_WEIGATINNY_RAIL = new MongoId( + "5ef5d994dfbc9f3c660ded95" + ); + public static readonly MongoId MOUNT_M1A_SOCOM_16_UPPER_PART = new MongoId( + "5ab24ef9e5b5b00fe93c9209" + ); + public static readonly MongoId MOUNT_M700_30MM_INTEGRAL_RING_SCOPE = new MongoId( + "5bfebc5e0db834001a6694e5" + ); + public static readonly MongoId MOUNT_M700_AB_ARMS_MODX_RAIL = new MongoId( + "5cde7b43d7f00c000d36b93e" + ); + public static readonly MongoId MOUNT_M700_BADGER_ORDNANCE_SCOPE_RAIL = new MongoId( + "65f064eec4da400cbb0dc1fe" + ); + public static readonly MongoId MOUNT_M700_EXTENDED_MULTISLOT_WEAVER_RAIL_BASE = new MongoId( + "5bfebc530db834001d23eb65" + ); + public static readonly MongoId MOUNT_M700_MAGPUL_PRO_700_CHASSIS_INLINE = new MongoId( + "5cdeaca5d7f00c00b61c4b70" + ); + public static readonly MongoId MOUNT_M870_LEAPERS_UTG_PRO_MTU028SG_RAIL = new MongoId( + "5a7893c1c585673f2b5c374d" + ); + public static readonly MongoId MOUNT_M870_MESA_TACTICAL_MAGAZINE_CLAMP = new MongoId( + "5a789261c5856700186c65d3" + ); + public static readonly MongoId MOUNT_M870_XS_SHOTRAIL_RAIL_WITH_GHOST_RING_REAR_SIGHT = + new MongoId("5a78948ec5856700177b1124"); + public static readonly MongoId MOUNT_MAGPUL_MLOK_093_INCH_RAIL = new MongoId( + "669a6a4a525be1d2d004b8eb" + ); + public static readonly MongoId MOUNT_MAGPUL_MLOK_25_INCH_RAIL = new MongoId( + "5b7be47f5acfc400170e2dd2" + ); + public static readonly MongoId MOUNT_MAGPUL_MLOK_41_INCH_RAIL = new MongoId( + "5b7be4895acfc400170e2dd5" + ); + public static readonly MongoId MOUNT_MAGPUL_MLOK_BIPOD = new MongoId( + "671126b049e181972e0681fa" + ); + public static readonly MongoId MOUNT_MAGPUL_MLOK_CANTILEVER = new MongoId( + "6269220d70b6c02e665f2635" + ); + public static readonly MongoId MOUNT_MAGPUL_MLOK_OFFSET_LIGHT = new MongoId( + "6269545d0e57f218e4548ca2" + ); + public static readonly MongoId MOUNT_MOSIN_RIFLE_AIM_SPORTS_MNG_RAIL = new MongoId( + "5bc5a372d4351e44f824d17f" + ); + public static readonly MongoId MOUNT_MOSIN_RIFLE_AIM_SPORTS_TRIRAIL = new MongoId( + "5bbdb811d4351e45020113c7" + ); + public static readonly MongoId MOUNT_MOSIN_RIFLE_ARBALET_PATRIOT_KW_RAIL = new MongoId( + "5d024f5cd7ad1a04a067e91a" + ); + public static readonly MongoId MOUNT_MOSIN_RIFLE_KOCHETOV = new MongoId( + "5b3f7bf05acfc433000ecf6b" + ); + public static readonly MongoId MOUNT_MOSSBERG_590A1_TACTICAL_RAIL = new MongoId( + "5eeb2ff5ea4f8b73c827350b" + ); + public static readonly MongoId MOUNT_MP133153_TAKTIKA_TULA_12003_STOCK_ADAPTER = new MongoId( + "5bfe7fb30db8340018089fed" + ); + public static readonly MongoId MOUNT_MP155_ULTIMA_SHORT_RAIL = new MongoId( + "607ea812232e5a31c233d53c" + ); + public static readonly MongoId MOUNT_MP155_ULTIMA_TOP_RAIL = new MongoId( + "60785ce5132d4d12c81fd918" + ); + public static readonly MongoId MOUNT_MP18_SIGHT = new MongoId("61f804acfcba9556ea304cb8"); + public static readonly MongoId MOUNT_MP443_GRACH_ZENIT_B8 = new MongoId( + "576a7c512459771e796e0e17" + ); + public static readonly MongoId MOUNT_MP9_BOTTOM_RAIL = new MongoId("5de8fbf2b74cd90030650c79"); + public static readonly MongoId MOUNT_MP9_SIDE_RAIL = new MongoId("5de8fc0b205ddc616a6bc51b"); + public static readonly MongoId MOUNT_MPX_GEN1_HANDGUARD_2_INCH_RAIL = new MongoId( + "58a56f8d86f774651579314c" + ); + public static readonly MongoId MOUNT_MPX_GEN1_HANDGUARD_4_INCH_RAIL = new MongoId( + "58a5c12e86f7745d585a2b9e" + ); + public static readonly MongoId MOUNT_NCSTAR_MPR45_BACKUP = new MongoId( + "5649a2464bdc2d91118b45a8" + ); + public static readonly MongoId MOUNT_NIGHTFORCE_MAGMOUNT_30MM_RING_SCOPE = new MongoId( + "5b3b99265acfc4704b4a1afb" + ); + public static readonly MongoId MOUNT_NIGHTFORCE_MAGMOUNT_34MM_RING_SCOPE = new MongoId( + "5aa66a9be5b5b0214e506e89" + ); + public static readonly MongoId MOUNT_NIGHTFORCE_MAGMOUNT_34MM_RING_SCOPE_MOUNT_WITH_RUGGEDIZED_ACCESSORY_PLATFORM = + new MongoId("5aa66c72e5b5b00016327c93"); + public static readonly MongoId MOUNT_NOROTOS_TITANIUM_ADVANCED_TACTICAL = new MongoId( + "5a16b8a9fcdbcb00165aa6ca" + ); + public static readonly MongoId MOUNT_NPZ_1P781_DOVETAIL = new MongoId( + "618a75c9a3884f56c957ca1b" + ); + public static readonly MongoId MOUNT_ODIN_WORKS_KPOD_KEYMOD_BIPOD_ADAPTER = new MongoId( + "67112695fe5c8bf33f02476d" + ); + public static readonly MongoId MOUNT_OPSCORE_PICATINNY_RAIL_ADAPTER = new MongoId( + "5a398b75c4a282000a51a266" + ); + public static readonly MongoId MOUNT_OPSCORE_SINGLE_CLAMP_RAIL_ADAPTER = new MongoId( + "5a398ab9c4a282000c5a9842" + ); + public static readonly MongoId MOUNT_OPSKS_DOVETAIL = new MongoId("587e08ee245977446b4410cf"); + public static readonly MongoId MOUNT_OPSKS_UPPER_BAND = new MongoId("634f05a21f9f536910079b56"); + public static readonly MongoId MOUNT_ORSIS_T5000M_LONG_LENGTH_RAIL = new MongoId( + "5df35ea9c41b2312ea3334d8" + ); + public static readonly MongoId MOUNT_ORSIS_T5000M_MEDIUM_LENGTH_RAIL = new MongoId( + "5df35eb2b11454561e3923e2" + ); + public static readonly MongoId MOUNT_ORSIS_T5000M_SCOPE = new MongoId( + "5df35e970b92095fd441e4d2" + ); + public static readonly MongoId MOUNT_P226_BRIDGE_SIGHT = new MongoId( + "5b3a08b25acfc4001754880c" + ); + public static readonly MongoId MOUNT_P226_TRIJICON_RMR = new MongoId( + "5a32aa0cc4a28232996e405f" + ); + public static readonly MongoId MOUNT_PK_ZENIT_B50_16MM_TOP = new MongoId( + "6492c6dd60fdb10a020621a2" + ); + public static readonly MongoId MOUNT_PK_ZENIT_B50_66MM_TOP = new MongoId( + "6492c8bba6e68e06fb0bae87" + ); + public static readonly MongoId MOUNT_PNV10T_DOVETAIL_ADAPTER = new MongoId( + "5c0695860db834001b735461" + ); + public static readonly MongoId MOUNT_PP91_KEDR_ROTOR_43_RIS = new MongoId( + "57ee59b42459771c7b045da5" + ); + public static readonly MongoId MOUNT_PRECISION_REFLEX_HANDGUARD_BOTTOM_RAIL = new MongoId( + "6388c4ac8d895f557a0c6515" + ); + public static readonly MongoId MOUNT_PRECISION_REFLEX_HANDGUARD_LONG_TOP_RAIL = new MongoId( + "6388c5d19c00405f4717c0f0" + ); + public static readonly MongoId MOUNT_PRECISION_REFLEX_HANDGUARD_SHORT_SIDE_RAIL = new MongoId( + "6388c4478d895f557a0c6512" + ); + public static readonly MongoId MOUNT_PU_35X_RING_SCOPE = new MongoId( + "5b3f7c005acfc4704b4a1de8" + ); + public static readonly MongoId MOUNT_PVS7_WILCOX_ADAPTER = new MongoId( + "5c11046cd174af02a012e42b" + ); + public static readonly MongoId MOUNT_RECKNAGEL_ERATAC_30MM_RING_SCOPE = new MongoId( + "6171407e50224f204c1da3c5" + ); + public static readonly MongoId MOUNT_RECKNAGEL_ERATAC_34MM_RING_SCOPE = new MongoId( + "61713cc4d8e3106d9806c109" + ); + public static readonly MongoId MOUNT_RECKNAGEL_ERATAC_SUNSHADE_MOUNT_FOR_AIMPOINT_T1_SIGHTS = + new MongoId("61714b2467085e45ef140b2c"); + public static readonly MongoId MOUNT_REMINGTON_RAHG_2_INCH_RAIL = new MongoId( + "5c0102aa0db834001b734ba1" + ); + public static readonly MongoId MOUNT_REMINGTON_RAHG_4_INCH_RAIL = new MongoId( + "5c0102b20db834001d23eebc" + ); + public static readonly MongoId MOUNT_REPTILIA_ROF90_RMR_MOUNT_FOR_GEISSELE_SCOPE_MOUNTS = + new MongoId("618b9682a3884f56c957ca78"); + public static readonly MongoId MOUNT_REPTILIA_ROF90_RMR_MOUNT_FOR_GEISSELE_SCOPE_MOUNTS_DDC = + new MongoId("618ba92152ecee1505530bd3"); + public static readonly MongoId MOUNT_RFB_HANDGUARD_RAIL = new MongoId( + "5f2aa493cd375f14e15eea72" + ); + public static readonly MongoId MOUNT_RFB_QUAD_RAIL_3_INCH = new MongoId( + "676177591f08ed5e8800b7a9" + ); + public static readonly MongoId MOUNT_RFB_SCOPE_RAIL = new MongoId("5f2aa49f9b44de6b1b4e68d4"); + public static readonly MongoId MOUNT_RPK16_HANDGUARD_RAIL = new MongoId( + "5beecbb80db834001d2c465e" + ); + public static readonly MongoId MOUNT_RS_REGULATE_AK303M_FULL_LENGTH_LOWER_DOVETAIL = + new MongoId("65f1b1176dbd6c5ba2082eed"); + public static readonly MongoId MOUNT_RS_REGULATE_AKR_TOP = new MongoId( + "65f1b2a5c14a07890801fc70" + ); + public static readonly MongoId MOUNT_SAG_AK_DOVETAIL_SIDE = new MongoId( + "63d114019e35b334d82302f7" + ); + public static readonly MongoId MOUNT_SAG_BIT_LOW_PROFILE_DOVETAIL_SIDE = new MongoId( + "638db77630c4240f9e06f8b6" + ); + public static readonly MongoId MOUNT_SAKO_TRG_M10_SCOPE = new MongoId( + "673cb51e093e0ea7fd0b8746" + ); + public static readonly MongoId MOUNT_SAKO_TRG_MEDIUM_LENGTH_RAIL = new MongoId( + "673dd617912f68467c0615b6" + ); + public static readonly MongoId MOUNT_SAKO_TRG_SHORT_LENGTH_RAIL = new MongoId( + "673dd5f73f92dc7e120d20a9" + ); + public static readonly MongoId MOUNT_SIG_SAUER_ALPHA4_30MM_RING_SCOPE = new MongoId( + "6567e751a715f85433025998" + ); + public static readonly MongoId MOUNT_SIG_SAUER_ROMEO_SIGHT = new MongoId( + "5b31163c5acfc400153b71cb" + ); + public static readonly MongoId MOUNT_SKS_CHOATE_SCOPE = new MongoId("6415d33eda439c6a97048b5b"); + public static readonly MongoId MOUNT_SKS_LEAPERS_UTG_SOCOM_RAIL = new MongoId( + "593d1fa786f7746da62d61ac" + ); + public static readonly MongoId MOUNT_SKS_TAPCO_INTRAFUSE_CHASSIS_LOWER_RAIL = new MongoId( + "653ed19d22e1ef3d9002c328" + ); + public static readonly MongoId MOUNT_SKS_UPPER_BAND = new MongoId("634f04d82e5def262d0b30c6"); + public static readonly MongoId MOUNT_SOK12_CHAOS_TITAN_QUAD_RAIL_HANDGUARD_TOP_COVER = + new MongoId("674fe89a4472d471fb0f07d8"); + public static readonly MongoId MOUNT_SOK12_CHAOS_TITAN_RECEIVER_TOP_RAIL = new MongoId( + "674fe8b9362ea1f88b0e278d" + ); + public static readonly MongoId MOUNT_SR1MP_QUAD_RAIL = new MongoId("5a27bad7c4a282000b15184b"); + public static readonly MongoId MOUNT_SR1MP_SINGLE_RAIL = new MongoId( + "5a27b281c4a28200741e1e52" + ); + public static readonly MongoId MOUNT_SR1MP_SOUND_SUPPRESSOR = new MongoId( + "5a27b3d0c4a282000d721ec1" + ); + public static readonly MongoId MOUNT_SR2M_SHORT_SIDE_RAIL = new MongoId( + "62ed189fb3608410ef5a2bfc" + ); + public static readonly MongoId MOUNT_SR2M_SIDE_RAIL = new MongoId("62ed1921b3608410ef5a2c04"); + public static readonly MongoId MOUNT_SR2M_ZENIT_B17 = new MongoId("62e281349ecd3f493f6df954"); + public static readonly MongoId MOUNT_SR3MP_DOVETAIL_SIDE_RAIL_BLACK = new MongoId( + "67069c8cee8138ed2f05ad34" + ); + public static readonly MongoId MOUNT_SR3MP_DOVETAIL_SIDE_RAIL_PLUM = new MongoId( + "67069cbbb29a2cd33803338c" + ); + public static readonly MongoId MOUNT_SR3MP_SIDE_RAILS_BLACK = new MongoId( + "67069cf1af4890b09f0006e8" + ); + public static readonly MongoId MOUNT_SR3MP_SIDE_RAILS_PLUM = new MongoId( + "67069d02ad91f3a63c0bc2b0" + ); + public static readonly MongoId MOUNT_STEYR_AUG_A3_CORVUS_DEFENSIO_RECEIVER_RAIL_MOI_30_SLOTS = + new MongoId("67110dd41ad01bb88705347b"); + public static readonly MongoId MOUNT_STEYR_AUG_A3_M1_HIGH_SIGHT = new MongoId( + "62e7c8f91cd3fde4d503d690" + ); + public static readonly MongoId MOUNT_STEYR_AUG_A3_M1_LOW_SIGHT = new MongoId( + "62ebba1fb658e07ef9082b5a" + ); + public static readonly MongoId MOUNT_STEYR_AUG_CORVUS_DEFENSIO_KEYMOD_FORWARD_ACCESSORY_RAIL = + new MongoId("6711107e1ad01bb88705347e"); + public static readonly MongoId MOUNT_STRIKE_INDUSTRIES_KEYMOD_4_INCH_RAIL = new MongoId( + "5a9d6d00a2750c5c985b5305" + ); + public static readonly MongoId MOUNT_STRIKE_INDUSTRIES_KEYMOD_6_INCH_RAIL = new MongoId( + "5a9d6d13a2750c00164f6b03" + ); + public static readonly MongoId MOUNT_STRIKE_INDUSTRIES_TRAX_BRIDGE_RAIL = new MongoId( + "5a9d6d21a2750c00137fa649" + ); + public static readonly MongoId MOUNT_SVD_CAA_DRG_L1_BARREL_MOUNT_RAIL = new MongoId( + "5e569a132642e66b0b68015c" + ); + public static readonly MongoId MOUNT_SVD_CAA_XD_RGL_RECEIVER = new MongoId( + "5e569a2e56edd02abe09f280" + ); + public static readonly MongoId MOUNT_SVD_MODERNIZATION_KIT_TOP_RAIL = new MongoId( + "5e569a0156edd02abe09f27d" + ); + public static readonly MongoId MOUNT_SVD_SAG_LOW_PROFILE_SIDE = new MongoId( + "5dff8db859400025ea5150d4" + ); + public static readonly MongoId MOUNT_SVDS_UPPER_BAND = new MongoId("5c471c2d2e22164bef5d077f"); + public static readonly MongoId MOUNT_SVT40_TOKAREV_PU = new MongoId("641dc35e19604f20c800be18"); + public static readonly MongoId MOUNT_TONI_SYSTEM_TACTICAL_BARREL_CLAMP = new MongoId( + "676177b09cfcc4c25b027446" + ); + public static readonly MongoId MOUNT_TOZ106_DOVETAIL = new MongoId("5c6162682e22160010261a2b"); + public static readonly MongoId MOUNT_TOZ106_RAIL_SCOPE = new MongoId( + "5c61627a2e22160012542c55" + ); + public static readonly MongoId MOUNT_TRIJICON_RMR_HIGH_PROFILE = new MongoId( + "5a33b652c4a28232996e407c" + ); + public static readonly MongoId MOUNT_TRIJICON_RMR_LOW_PROFILE = new MongoId( + "5a33b2c9c4a282000c5a9511" + ); + public static readonly MongoId MOUNT_TRIJICON_RMR_MOUNT_FOR_ACOG_SCOPES = new MongoId( + "5a33bab6c4a28200741e22f8" + ); + public static readonly MongoId MOUNT_TRIJICON_TA51_SIGHT = new MongoId( + "59db7eed86f77461f8380365" + ); + public static readonly MongoId MOUNT_TROY_QARS_32_INCH_RAIL = new MongoId( + "5b4736a986f774040571e998" + ); + public static readonly MongoId MOUNT_TROY_QARS_42_INCH_RAIL = new MongoId( + "5b4736b986f77405cb415c10" + ); + public static readonly MongoId MOUNT_UM_TACTICAL_UM3_PISTOL_SIGHT = new MongoId( + "5a7b4900e899ef197b331a2a" + ); + public static readonly MongoId MOUNT_UNV_DLOCIRD_SIGHT = new MongoId( + "5a1ead28fcdbcb001912fa9f" + ); + public static readonly MongoId MOUNT_UZI_HANDGUARD_RAIL = new MongoId( + "6698c8f4710a4525fe0e9e57" + ); + public static readonly MongoId MOUNT_UZI_PRO_SMG_RAIL_ADAPTER = new MongoId( + "668ea3f68117e4968b0cff4a" + ); + public static readonly MongoId MOUNT_UZI_STORMWERKZ_LOWER_HANDGUARD_RAIL = new MongoId( + "66992f7d9950f5f4cd0602a8" + ); + public static readonly MongoId MOUNT_UZI_STORMWERKZ_SCOPE = new MongoId( + "6698c90829e062525d0ad8ad" + ); + public static readonly MongoId MOUNT_VLTOR_CASV_2_INCH_RAIL = new MongoId( + "5b7be4575acfc400161d0832" + ); + public static readonly MongoId MOUNT_VLTOR_CASV_4_INCH_RAIL = new MongoId( + "5b7be4645acfc400170e2dcc" + ); + public static readonly MongoId MOUNT_VLTOR_CASV_5_INCH_RAIL = new MongoId( + "5b7be46e5acfc400170e2dcf" + ); + public static readonly MongoId MOUNT_VLTOR_CASV_KEYMOD_2_INCH_RAIL = new MongoId( + "59e0bdb186f774156f04ce82" + ); + public static readonly MongoId MOUNT_VLTOR_CASV_KEYMOD_4_INCH_RAIL = new MongoId( + "59e0be5d86f7742d48765bd2" + ); + public static readonly MongoId MOUNT_VLTOR_CASV_KEYMOD_6_INCH_RAIL = new MongoId( + "59e0bed186f774156f04ce84" + ); + public static readonly MongoId MOUNT_VOMZ_PILAD_04302_DOVETAIL = new MongoId( + "57acb6222459771ec34b5cb0" + ); + public static readonly MongoId MOUNT_VPO102_ARBALET = new MongoId("609a4b4fe2ff132951242d04"); + public static readonly MongoId MOUNT_VPO215_SCOPE_RAIL = new MongoId( + "5de6558e9f98ac2bc65950fc" + ); + public static readonly MongoId MOUNT_VSSVAL_TOZ_6P29M = new MongoId("59eb7ebe86f7740b373438ce"); + public static readonly MongoId MOUNT_VSSVAL_ZENIT_B3_MOUNT_COMBO = new MongoId( + "5a9fc7e6a2750c0032157184" + ); + public static readonly MongoId MOUNT_VSSVAL_ZENIT_B3_RING = new MongoId( + "57a3459f245977764a01f703" + ); + public static readonly MongoId MOUNT_ZENIT_B13_KLASSIKA_DOVETAIL_RAIL_PLATFORM = new MongoId( + "5c61a40d2e2216001403158d" + ); + public static readonly MongoId MOUNT_ZENIT_B13V_KLASSIKA_DOVETAIL_RAIL_PLATFORM = new MongoId( + "5c90c3622e221601da359851" + ); + public static readonly MongoId MOUNT_ZENIT_KR2_OLD_GEN = new MongoId( + "646f6322f43d0c5d62063715" + ); + public static readonly MongoId MULTITOOLS_LEATHERMAN_MULTITOOL = new MongoId( + "544fb5454bdc2df8738b456a" + ); + public static readonly MongoId MUZZLECOMBO_9A91_HANDGUARD_RETAINER = new MongoId( + "64527a263d52156624001fd7" + ); + public static readonly MongoId MUZZLECOMBO_AA12_12GA_CHOKE = new MongoId( + "670fd1cc95c92bfc8e0bea39" + ); + public static readonly MongoId MUZZLECOMBO_AA12_THREAD_PROTECTOR = new MongoId( + "670fd0eed8d4eae4790c818a" + ); + public static readonly MongoId MUZZLECOMBO_AI_AXMC_THREAD_PROTECTOR = new MongoId( + "628120621d5df4475f46a335" + ); + public static readonly MongoId MUZZLECOMBO_AK_762X39_TAKTIKA_TULA_MUZZLE_ADAPTER = new MongoId( + "5a0abb6e1526d8000a025282" + ); + public static readonly MongoId MUZZLECOMBO_AK_CNC_WARRIOR_556X45_MUZZLE_DEVICE_ADAPTER = + new MongoId("5e21ca18e4d47f0da15e77dd"); + public static readonly MongoId MUZZLECOMBO_AKM_762X39_KIBA_ARMS_308_MUZZLE_DEVICE_ADAPTER = + new MongoId("615d8e9867085e45ef1409c6"); + public static readonly MongoId MUZZLECOMBO_ASE_UTRA_BORELOCK_THREAD_PROTECTOR = new MongoId( + "673f3f2f40aeca974e0b5c66" + ); + public static readonly MongoId MUZZLECOMBO_AWC_PSR_MUZZLE_BRAKE_PROTECTOR = new MongoId( + "612e0e04568c120fdd294258" + ); + public static readonly MongoId MUZZLECOMBO_GEMTECH_ONE_DIRECT_THREAD_MOUNT_ADAPTER = + new MongoId("5c7954d52e221600106f4cc7"); + public static readonly MongoId MUZZLECOMBO_GK01_12GA_COMPENSATOR = new MongoId( + "5580239d4bdc2de7118b4583" + ); + public static readonly MongoId MUZZLECOMBO_GK02_12GA_MUZZLE_BRAKE = new MongoId( + "58272d7f2459774f6311ddfd" + ); + public static readonly MongoId MUZZLECOMBO_GLOCK_9X19_DOUBLE_DIAMOND_THREAD_PROTECTOR = + new MongoId("5a6b592c8dc32e00094b97bf"); + public static readonly MongoId MUZZLECOMBO_GLOCK_9X19_LONE_WOLF_ALPHAWOLF_THREAD_PROTECTOR = + new MongoId("5a6b585a8dc32e5a9c28b4f1"); + public static readonly MongoId MUZZLECOMBO_GLOCK_SAI_9X19_THREAD_PROTECTOR = new MongoId( + "5a6b59a08dc32e000b452fb7" + ); + public static readonly MongoId MUZZLECOMBO_HK_MP5_3LUG_MUZZLE_ADAPTER = new MongoId( + "5926e16e86f7742f5a0f7ecb" + ); + public static readonly MongoId MUZZLECOMBO_HK_MP5_NAVY_STYLE_3LUG_SUPPRESSOR_ADAPTER = + new MongoId("5c0000c00db834001a6697fc"); + public static readonly MongoId MUZZLECOMBO_HK_USP_TACTICAL_THREAD_PROTECTOR = new MongoId( + "6194f1f918a3974e5e7421e4" + ); + public static readonly MongoId MUZZLECOMBO_KRISS_VECTOR_45_ACP_THREAD_PROTECTOR = new MongoId( + "5fb6548dd1409e5ca04b54f9" + ); + public static readonly MongoId MUZZLECOMBO_KRISS_VECTOR_9X19_THREAD_PROTECTOR = new MongoId( + "5fbbc34106bde7524f03cbe9" + ); + public static readonly MongoId MUZZLECOMBO_LANTAC_BMD_BLAST_MITIGATION_DEVICE_A3_DIRECT_THREAD_ADAPTER = + new MongoId("5cf78496d7f00c065703d6ca"); + public static readonly MongoId MUZZLECOMBO_M700_STAINLESS_STEEL_THREAD_PROTECTOR = new MongoId( + "5d270ca28abbc31ee25ee821" + ); + public static readonly MongoId MUZZLECOMBO_M700_THREAD_PROTECTOR = new MongoId( + "5d270b3c8abbc3105335cfb8" + ); + public static readonly MongoId MUZZLECOMBO_M9A3_THREAD_PROTECTOR = new MongoId( + "5cadc390ae921500126a77f1" + ); + public static readonly MongoId MUZZLECOMBO_ME_CYLINDER_12GA_MUZZLE_ADAPTER = new MongoId( + "5c0111ab0db834001966914d" + ); + public static readonly MongoId MUZZLECOMBO_MOSIN_RIFLE_KIBA_ARMS_762X54R_CUSTOM_THREAD_ADAPTER = + new MongoId("5cf79389d7f00c10941a0c4d"); + public static readonly MongoId MUZZLECOMBO_MOSIN_RIFLE_TIGER_ROCK_762X51_THREAD_ADAPTER = + new MongoId("5cf79599d7f00c10875d9212"); + public static readonly MongoId MUZZLECOMBO_MOSIN_RIFLE_WEAPON_TUNING_762X39_THREAD_ADAPTER = + new MongoId("5cf67a1bd7f00c06585fb6f3"); + public static readonly MongoId MUZZLECOMBO_MP9_9X19_SOUND_SUPPRESSOR_MOUNT = new MongoId( + "5de8f237bbaf010b10528a70" + ); + public static readonly MongoId MUZZLECOMBO_MTS25512_12GA_CHOKE = new MongoId( + "619d36da53b4d42ee724fae4" + ); + public static readonly MongoId MUZZLECOMBO_P226_THREAD_PROTECTOR = new MongoId( + "587de5ba2459771c0f1e8a58" + ); + public static readonly MongoId MUZZLECOMBO_PP9101_KEDRB_THREADED_SUPPRESSOR_ADAPTER = + new MongoId("57f3c7e024597738ea4ba286"); + public static readonly MongoId MUZZLECOMBO_REMINGTON_TACTICAL_CHOKE_12GA = new MongoId( + "560838c94bdc2d77798b4569" + ); + public static readonly MongoId MUZZLECOMBO_RFB_THREAD_PROTECTOR = new MongoId( + "5f2aa4464b50c14bcf07acdb" + ); + public static readonly MongoId MUZZLECOMBO_RFB_THREAD_SPACER = new MongoId( + "5f2aa43ba9b91d26f20ae6d2" + ); + public static readonly MongoId MUZZLECOMBO_RPD_BARREL_THREAD_PROTECTOR = new MongoId( + "6513f0f5e63f29908d0ffab8" + ); + public static readonly MongoId MUZZLECOMBO_SAKO_TRG_338_LM_THREAD_PROTECTOR = new MongoId( + "673f3f5eef7545280c00f026" + ); + public static readonly MongoId MUZZLECOMBO_SIG_SAUER_TAPERLOK_762X51300_BLK_MUZZLE_ADAPTER = + new MongoId("5fbc22ccf24b94483f726483"); + public static readonly MongoId MUZZLECOMBO_SILENCERCO_HYBRID_46_DIRECT_THREAD_MOUNT_ADAPTER = + new MongoId("59bffc1f86f77435b128b872"); + public static readonly MongoId MUZZLECOMBO_SILENCERCO_OMEGA_45K_DIRECT_THREAD_MOUNT_ADAPTER = + new MongoId("5fc4b992187fea44d52edaa9"); + public static readonly MongoId MUZZLECOMBO_SILENCERCO_OMEGA_45K_PISTON_MOUNT_ADAPTER = + new MongoId("5fc4b97bab884124df0cd5e3"); + public static readonly MongoId MUZZLECOMBO_SILENCERCO_SALVO_12_CHOKE_ADAPTER = new MongoId( + "5b363dea5acfc4771e1c5e7e" + ); + public static readonly MongoId MUZZLECOMBO_SILENCERCO_SALVO_12_THREAD_ADAPTER = new MongoId( + "5b363e1b5acfc4771e1c5e80" + ); + public static readonly MongoId MUZZLECOMBO_SKS_WEAPON_TUNING_762X39_THREAD_ADAPTER = + new MongoId("5cf67cadd7f00c065a5abab7"); + public static readonly MongoId MUZZLECOMBO_SOK12_THREAD_PROTECTOR = new MongoId( + "576167ab2459773cad038c43" + ); + public static readonly MongoId MUZZLECOMBO_SR2M_9X21_HAND_STOPPER = new MongoId( + "62e2a754b6c0ee2f230cee0f" + ); + public static readonly MongoId MUZZLECOMBO_STEYR_AUG_RAT_WORX_556X45_MUZZLE_DEVICE_ADAPTER = + new MongoId("630f27f04f3f6281050b94d7"); + public static readonly MongoId MUZZLECOMBO_SVDS_ROTOR_43_THREAD_ADAPTER = new MongoId( + "5e01e9e273d8eb11426f5bc3" + ); + public static readonly MongoId MUZZLECOMBO_TROMIX_MONSTER_CLAW_12GA_MUZZLE_BRAKE = new MongoId( + "59fb137a86f7740adb646af1" + ); + public static readonly MongoId MUZZLECOMBO_UZI_9X19_3LUG_BARREL_RETAINING_NUT = new MongoId( + "6698c9ba29e062525d0ad8b1" + ); + public static readonly MongoId MUZZLECOMBO_UZI_9X19_3LUG_BARREL_THREAD_PROTECTOR = new MongoId( + "6698c9c636ba38d291017711" + ); + public static readonly MongoId MUZZLECOMBO_UZI_9X19_BARREL_RETAINING_NUT = new MongoId( + "6698c9aa36ba38d29101770f" + ); + public static readonly MongoId MUZZLECOMBO_UZI_PRO_9X19_BARREL_RETAINING_NUT = new MongoId( + "668670e3fb75ee4a5e02eb16" + ); + public static readonly MongoId MUZZLECOMBO_UZI_PRO_9X19_MASADA_THREAD_PROTECTOR = new MongoId( + "668670f52a2296a8d909963c" + ); + public static readonly MongoId MUZZLECOMBO_VPO215_THREAD_PROTECTOR = new MongoId( + "5de6556a205ddc616a6bc4f7" + ); + public static readonly MongoId NIGHTVISION_ARMASIGHT_N15_NIGHT_VISION_GOGGLES = new MongoId( + "5c066e3a0db834001b7353f0" + ); + public static readonly MongoId NIGHTVISION_L3HARRIS_ANPVS14_NIGHT_VISION_MONOCULAR = + new MongoId("57235b6f24597759bf5a30f1"); + public static readonly MongoId NIGHTVISION_L3HARRIS_GPNVG18_NIGHT_VISION_GOGGLES = new MongoId( + "5c0558060db834001b735271" + ); + public static readonly MongoId NIGHTVISION_PNV10T_NIGHT_VISION_GOGGLES = new MongoId( + "5c0696830db834001d23f5da" + ); + public static readonly MongoId NIGHTVISION_PNV57E_NIGHT_VISION_GOGGLES = new MongoId( + "67506ca81f18589016006aa6" + ); + public static readonly MongoId OPTICSCOPE_BELOMO_PSO1_4X24_SCOPE = new MongoId( + "5c82342f2e221644f31c060e" + ); + public static readonly MongoId OPTICSCOPE_BELOMO_PSO1M2_4X24_SCOPE = new MongoId( + "5c82343a2e221644f31c0611" + ); + public static readonly MongoId OPTICSCOPE_BELOMO_PSO1M21_4X24_SCOPE = new MongoId( + "576fd4ec2459777f0b518431" + ); + public static readonly MongoId OPTICSCOPE_BURRIS_FULLFIELD_TAC30_14X24_30MM_RIFLESCOPE = + new MongoId("5b2388675acfc4771e1be0be"); + public static readonly MongoId OPTICSCOPE_EOTECH_VUDU_16X24_30MM_RIFLESCOPE = new MongoId( + "5b3b99475acfc432ff4dcbee" + ); + public static readonly MongoId OPTICSCOPE_HENSOLDT_FF_416X56_34MM_RIFLESCOPE = new MongoId( + "56ea70acd2720b844b8b4594" + ); + public static readonly MongoId OPTICSCOPE_KMZ_1P59_310X_RIFLESCOPE = new MongoId( + "5d0a3a58d7ad1a669c15ca14" + ); + public static readonly MongoId OPTICSCOPE_KMZ_1P69_310X_RIFLESCOPE = new MongoId( + "5d0a3e8cd7ad1a6f6a3d35bd" + ); + public static readonly MongoId OPTICSCOPE_LEUPOLD_MARK_4_LR_6520X50_30MM_RIFLESCOPE = + new MongoId("5a37cb10c4a282329a73b4e7"); + public static readonly MongoId OPTICSCOPE_LEUPOLD_MARK_5HD_525X56MM_35MM_RIFLESCOPE_FDE = + new MongoId("676175789dcee773150c6925"); + public static readonly MongoId OPTICSCOPE_MARCH_TACTICAL_324X42_FFP_30MM_RIFLESCOPE = + new MongoId("57c5ac0824597754771e88a9"); + public static readonly MongoId OPTICSCOPE_NCSTAR_ADO_P4_SNIPER_39X42_RIFLESCOPE = new MongoId( + "5dfe6104585a0c3e995c7b82" + ); + public static readonly MongoId OPTICSCOPE_NIGHTFORCE_ATACR_735X56_34MM_RIFLESCOPE = new MongoId( + "5aa66be6e5b5b0214e506e97" + ); + public static readonly MongoId OPTICSCOPE_NIGHTFORCE_NXS_2510X24_SCOPE = new MongoId( + "544a3d0a4bdc2d1b388b4567" + ); + public static readonly MongoId OPTICSCOPE_NPZ_1P781_28X_SCOPE = new MongoId( + "618a75f0bd321d49084cd399" + ); + public static readonly MongoId OPTICSCOPE_NPZ_USP1_TYULPAN_4X_SCOPE = new MongoId( + "5cf638cbd7f00c06595bc936" + ); + public static readonly MongoId OPTICSCOPE_PAG17_SCOPE = new MongoId("5d53f4b7a4b936793d58c780"); + public static readonly MongoId OPTICSCOPE_PU_35X_RIFLESCOPE = new MongoId( + "5b3f7c1c5acfc40dc5296b1d" + ); + public static readonly MongoId OPTICSCOPE_SCHMIDT_BENDER_PM_II_18X24_30MM_RIFLESCOPE = + new MongoId("617151c1d92c473c770214ab"); + public static readonly MongoId OPTICSCOPE_SCHMIDT_BENDER_PM_II_320X50_34MM_RIFLESCOPE = + new MongoId("61714eec290d254f5e6b2ffc"); + public static readonly MongoId OPTICSCOPE_SCHMIDT_BENDER_PM_II_525X56_34MM_RIFLESCOPE = + new MongoId("62850c28da09541f43158cca"); + public static readonly MongoId OPTICSCOPE_SIG_SAUER_TANGO6T_16X24_30MM_RIFLESCOPE = new MongoId( + "6567e7681265c8a131069b0f" + ); + public static readonly MongoId OPTICSCOPE_VOMZ_PILAD_4X32_254MM_RIFLESCOPE = new MongoId( + "5dff772da3651922b360bf91" + ); + public static readonly MongoId OPTICSCOPE_VORTEX_RAZOR_HD_GEN2_16X24_30MM_RIFLESCOPE = + new MongoId("618ba27d9008e4636a67f61d"); + public static readonly MongoId PISTOL_20X1MM_TOY_GUN = new MongoId("66015072e9f84d5680039678"); + public static readonly MongoId PISTOL_BERETTA_M9A3_9X19 = new MongoId( + "5cadc190ae921500103bb3b6" + ); + public static readonly MongoId PISTOL_COLT_M1911A1_45_ACP = new MongoId( + "5e81c3cbac2bb513793cdc75" + ); + public static readonly MongoId PISTOL_COLT_M45A1_45_ACP = new MongoId( + "5f36a0e5fbf956000b716b65" + ); + public static readonly MongoId PISTOL_FN_FIVESEVEN_MK2_57X28 = new MongoId( + "5d3eb3b0a4b93615055e84d2" + ); + public static readonly MongoId PISTOL_FN_FIVESEVEN_MK2_57X28_PISTOL_FDE = new MongoId( + "5d67abc1a4b93614ec50137f" + ); + public static readonly MongoId PISTOL_GLOCK_17_9X19 = new MongoId("5a7ae0c351dfba0017554310"); + public static readonly MongoId PISTOL_GLOCK_18C_9X19_MACHINE = new MongoId( + "5b1fa9b25acfc40018633c01" + ); + public static readonly MongoId PISTOL_GLOCK_19X_9X19 = new MongoId("63088377b5cd696784087147"); + public static readonly MongoId PISTOL_HK_USP_45_ACP = new MongoId("6193a720f8ee7e52e42109ed"); + public static readonly MongoId PISTOL_LEBEDEV_PL15_9X19 = new MongoId( + "602a9740da11d6478d5a06dc" + ); + public static readonly MongoId PISTOL_MAGNUM_RESEARCH_DESERT_EAGLE_L5_357 = new MongoId( + "669fa409933e898cce0c2166" + ); + public static readonly MongoId PISTOL_MAGNUM_RESEARCH_DESERT_EAGLE_L5_50_AE = new MongoId( + "669fa3f88abd2662d80eee77" + ); + public static readonly MongoId PISTOL_MAGNUM_RESEARCH_DESERT_EAGLE_L6_50_AE = new MongoId( + "669fa39b48fc9f8db6035a0c" + ); + public static readonly MongoId PISTOL_MAGNUM_RESEARCH_DESERT_EAGLE_L6_50_AE_PISTOL_WTS = + new MongoId("669fa3d876116c89840b1217"); + public static readonly MongoId PISTOL_MAGNUM_RESEARCH_DESERT_EAGLE_MK_XIX_50_AE = new MongoId( + "668fe5a998b5ad715703ddd6" + ); + public static readonly MongoId PISTOL_MAKAROV_PM_9X18PM = new MongoId( + "5448bd6b4bdc2dfc2f8b4569" + ); + public static readonly MongoId PISTOL_MAKAROV_PM_T_9X18PM = new MongoId( + "579204f224597773d619e051" + ); + public static readonly MongoId PISTOL_PB_9X18PM_SILENCED = new MongoId( + "56e0598dd2720bb5668b45a6" + ); + public static readonly MongoId PISTOL_SERDYUKOV_SR1MP_GYURZA_9X21 = new MongoId( + "59f98b4986f7746f546d2cef" + ); + public static readonly MongoId PISTOL_SIG_P226R_9X19 = new MongoId("56d59856d2720bd8418b456a"); + public static readonly MongoId PISTOL_STECHKIN_APB_9X18PM_SILENCED_MACHINE = new MongoId( + "5abccb7dd8ce87001773e277" + ); + public static readonly MongoId PISTOL_STECHKIN_APS_9X18PM_MACHINE = new MongoId( + "5a17f98cfcdbcb0980087290" + ); + public static readonly MongoId PISTOL_TT33_762X25_TT = new MongoId("571a12c42459771f627b58a0"); + public static readonly MongoId PISTOL_TT33_762X25_TT_PISTOL_GOLDEN = new MongoId( + "5b3b713c5acfc4330140bd8d" + ); + public static readonly MongoId PISTOL_YARYGIN_MP443_GRACH_9X19 = new MongoId( + "576a581d2459771e7b1bc4f1" + ); + public static readonly MongoId PISTOLGRIP_9A91_PISTOL_GRIP = new MongoId( + "6450f21a3d52156624001fcf" + ); + public static readonly MongoId PISTOLGRIP_AK_AEROKNOX_SCORPIUS_PISTOL_GRIP = new MongoId( + "5f6341043ada5942720e2dc5" + ); + public static readonly MongoId PISTOLGRIP_AK_CUSTOM_ARMS_AGS74_PRO_SNIPER_KIT_PISTOL_GRIP = + new MongoId("6087e663132d4d12c81fd96b"); + public static readonly MongoId PISTOLGRIP_AK_CUSTOM_GUNS_CG101_ARTYPE_PISTOL_GRIP_ADAPTER = + new MongoId("648ae3e356c6310a830fc291"); + public static readonly MongoId PISTOLGRIP_AK_FAB_DEFENSE_AGR47_PISTOL_GRIP_FDE = new MongoId( + "623c3be0484b5003161840dc" + ); + public static readonly MongoId PISTOLGRIP_AK_KGB_MG47_PISTOL_GRIP = new MongoId( + "5cf54404d7f00c108840b2ef" + ); + public static readonly MongoId PISTOLGRIP_AK_KGB_MG47_PISTOL_GRIP_ANODIZED_RED = new MongoId( + "5e2192a498a36665e8337386" + ); + public static readonly MongoId PISTOLGRIP_AK_MAGPUL_MOE_PISTOL_GRIP_BLACK = new MongoId( + "5b30ac585acfc433000eb79c" + ); + public static readonly MongoId PISTOLGRIP_AK_MISSION_FIRST_TACTICAL_ENGAGE_AK47_PISTOL_GRIP = + new MongoId("63f4da90f31d4a33b87bd054"); + public static readonly MongoId PISTOLGRIP_AK_MOLOT_BAKELITE_PISTOL_GRIP = new MongoId( + "59e6318286f77444dd62c4cc" + ); + public static readonly MongoId PISTOLGRIP_AK_PUFGUN_SGM2_PISTOL_GRIP = new MongoId( + "651580dc71a4f10aec4b6056" + ); + public static readonly MongoId PISTOLGRIP_AK_STRIKE_INDUSTRIES_ENHANCED_PISTOL_GRIP_BLACK = + new MongoId("5cf50850d7f00c056e24104c"); + public static readonly MongoId PISTOLGRIP_AK_STRIKE_INDUSTRIES_ENHANCED_PISTOL_GRIP_FDE = + new MongoId("5cf508bfd7f00c056e24104e"); + public static readonly MongoId PISTOLGRIP_AK_TANGODOWN_BATTLE_GRIP_PISTOL_GRIP = new MongoId( + "628a664bccaab13006640e47" + ); + public static readonly MongoId PISTOLGRIP_AK_TANGODOWN_BATTLE_GRIP_PISTOL_GRIP_FDE = + new MongoId("628c9ab845c59e5b80768a81"); + public static readonly MongoId PISTOLGRIP_AK_TAPCO_SAWSTYLE_PISTOL_GRIP_BLACK = new MongoId( + "5947f92f86f77427344a76b1" + ); + public static readonly MongoId PISTOLGRIP_AK_TAPCO_SAWSTYLE_PISTOL_GRIP_FDE = new MongoId( + "5947fa2486f77425b47c1a9b" + ); + public static readonly MongoId PISTOLGRIP_AK_US_PALM_PISTOL_GRIP = new MongoId( + "5c6bf4aa2e2216001219b0ae" + ); + public static readonly MongoId PISTOLGRIP_AK_ZENIT_RK3_PISTOL_GRIP = new MongoId( + "5649ae4a4bdc2d1b2b8b4588" + ); + public static readonly MongoId PISTOLGRIP_AK12_PISTOL_GRIP = new MongoId( + "5beec8ea0db834001a6f9dbf" + ); + public static readonly MongoId PISTOLGRIP_AK74_BAKELITE_PISTOL_GRIP = new MongoId( + "5649ad3f4bdc2df8348b4585" + ); + public static readonly MongoId PISTOLGRIP_AK74_POLYMER_PISTOL_GRIP = new MongoId( + "5649ade84bdc2d1b2b8b4587" + ); + public static readonly MongoId PISTOLGRIP_AKM_BAKELITE_PISTOL_GRIP = new MongoId( + "59e62cc886f77440d40b52a1" + ); + public static readonly MongoId PISTOLGRIP_AKM_WOODEN_PISTOL_GRIP = new MongoId( + "5a0071d486f77404e23a12b2" + ); + public static readonly MongoId PISTOLGRIP_AKS74U_BAKELITE_PISTOL_GRIP = new MongoId( + "57e3dba62459770f0c32322b" + ); + public static readonly MongoId PISTOLGRIP_APS_BAKELITE_SIDEPIECES = new MongoId( + "5a17fc70fcdbcb0176308b3d" + ); + public static readonly MongoId PISTOLGRIP_AR15_AEROKNOX_ORION_PISTOL_GRIP = new MongoId( + "63f5feead259b42f0b4d6d0f" + ); + public static readonly MongoId PISTOLGRIP_AR15_COLT_A2_PISTOL_GRIP = new MongoId( + "55d4b9964bdc2d1d4e8b456e" + ); + public static readonly MongoId PISTOLGRIP_AR15_DAMAGE_INDUSTRIES_ECS_PISTOL_GRIP_FDE = + new MongoId("571659bb2459771fb2755a12"); + public static readonly MongoId PISTOLGRIP_AR15_DLG_TACTICAL_DLG123_PISTOL_GRIP = new MongoId( + "602e71bd53a60014f9705bfa" + ); + public static readonly MongoId PISTOLGRIP_AR15_F1_FIREARMS_SKELETONIZED_STYLE_1_PISTOL_GRIP = + new MongoId("6113c3586c780c1e710c90bc"); + public static readonly MongoId PISTOLGRIP_AR15_F1_FIREARMS_SKELETONIZED_STYLE_2_PC_PISTOL_GRIP = + new MongoId("6113cc78d3a39d50044c065a"); + public static readonly MongoId PISTOLGRIP_AR15_F1_FIREARMS_SKELETONIZED_STYLE_2_PISTOL_GRIP = + new MongoId("6113cce3d92c473c770200c7"); + public static readonly MongoId PISTOLGRIP_AR15_HERA_ARMS_HG15_PISTOL_GRIP = new MongoId( + "5cc9bcaed7f00c011c04e179" + ); + public static readonly MongoId PISTOLGRIP_AR15_HK_BATTLE_GRIP_BEAVERTAIL_PISTOL_GRIP = + new MongoId("5bb20e0ed4351e3bac1212dc"); + public static readonly MongoId PISTOLGRIP_AR15_HK_BATTLE_GRIP_BEAVERTAIL_PISTOL_GRIP_RAL_8000 = + new MongoId("6193dcd0f8ee7e52e4210a28"); + public static readonly MongoId PISTOLGRIP_AR15_HK_BATTLE_GRIP_PISTOL_GRIP = new MongoId( + "5bb20e18d4351e00320205d5" + ); + public static readonly MongoId PISTOLGRIP_AR15_HK_ERGO_PSG1_STYLE_PISTOL_GRIP = new MongoId( + "5d025cc1d7ad1a53845279ef" + ); + public static readonly MongoId PISTOLGRIP_AR15_HK_V2_PISTOL_GRIP = new MongoId( + "5c6d7b3d2e221600114c9b7d" + ); + public static readonly MongoId PISTOLGRIP_AR15_MAGPUL_MIAD_PISTOL_GRIP_FDE = new MongoId( + "5a339805c4a2826c6e06d73d" + ); + public static readonly MongoId PISTOLGRIP_AR15_MAGPUL_MOE_PISTOL_GRIP_BLACK = new MongoId( + "55802f5d4bdc2dac148b458f" + ); + public static readonly MongoId PISTOLGRIP_AR15_MAGPUL_MOE_PISTOL_GRIP_FDE = new MongoId( + "5d15cf3bd7ad1a67e71518b2" + ); + public static readonly MongoId PISTOLGRIP_AR15_NAROH_ARMS_GRALS_PISTOL_GRIP = new MongoId( + "59db3a1d86f77429e05b4e92" + ); + public static readonly MongoId PISTOLGRIP_AR15_SIG_SAUER_REDUCED_ANGLE_PISTOL_GRIP_COYOTE_TAN = + new MongoId("652911675ae2ae97b80fdf3c"); + public static readonly MongoId PISTOLGRIP_AR15_STARK_AR_RIFLE_GRIP_BLACK = new MongoId( + "59db3acc86f7742a2c4ab912" + ); + public static readonly MongoId PISTOLGRIP_AR15_STARK_AR_RIFLE_GRIP_FDE = new MongoId( + "59db3b0886f77429d72fb895" + ); + public static readonly MongoId PISTOLGRIP_AR15_TACTICAL_DYNAMICS_HEXGRIP_PISTOL_GRIP = + new MongoId("615d8faecabb9b7ad90f4d5d"); + public static readonly MongoId PISTOLGRIP_AR15_TACTICAL_DYNAMICS_SKELETONIZED_PISTOL_GRIP = + new MongoId("5b07db875acfc40dc528a5f6"); + public static readonly MongoId PISTOLGRIP_AS_VAL_PISTOL_GRIP_BLACK = new MongoId( + "6565b91666492762f5029c0b" + ); + public static readonly MongoId PISTOLGRIP_AS_VAL_PISTOL_GRIP_PLUM = new MongoId( + "57c44fa82459772d2d75e415" + ); + public static readonly MongoId PISTOLGRIP_AS_VAL_ROTOR_43_PISTOL_GRIP_WITH_BUFFER_TUBE = + new MongoId("5a69a2ed8dc32e000d46d1f1"); + public static readonly MongoId PISTOLGRIP_BENELLI_M3_TELESCOPIC_STOCK_PISTOL_GRIP = new MongoId( + "6259c3d8012d6678ec38eeb8" + ); + public static readonly MongoId PISTOLGRIP_CHIAPPA_RHINO_PLASTIC_PISTOL_GRIP = new MongoId( + "619f4ab2d25cbd424731fb95" + ); + public static readonly MongoId PISTOLGRIP_CHIAPPA_RHINO_WOODEN_PISTOL_GRIP = new MongoId( + "619f4bffd25cbd424731fb97" + ); + public static readonly MongoId PISTOLGRIP_DESERT_EAGLE_HOGUE_RUBBER_GRIP = new MongoId( + "668fe5d42a0f85eea407cc16" + ); + public static readonly MongoId PISTOLGRIP_DESERT_EAGLE_HOGUE_RUBBER_GRIP_WITH_FINGER_GROOVES = + new MongoId("66a0da76b6f47fcfeb025e96"); + public static readonly MongoId PISTOLGRIP_GLOCK_PACHMAYR_TACTICAL_GRIP_GLOVE = new MongoId( + "5a7b4960e899ef197b331a2d" + ); + public static readonly MongoId PISTOLGRIP_HOGUE_OVERMOLDED_RUBBER_GRIP_BLACK = new MongoId( + "57c55efc2459772d2c6271e7" + ); + public static readonly MongoId PISTOLGRIP_HOGUE_OVERMOLDED_RUBBER_GRIP_FDE = new MongoId( + "57af48872459771f0b2ebf11" + ); + public static readonly MongoId PISTOLGRIP_HOGUE_OVERMOLDED_RUBBER_GRIP_GHILLIE_EARTH = + new MongoId("57c55f092459772d291a8463"); + public static readonly MongoId PISTOLGRIP_HOGUE_OVERMOLDED_RUBBER_GRIP_GHILLIE_GREEN = + new MongoId("57c55f112459772d28133310"); + public static readonly MongoId PISTOLGRIP_HOGUE_OVERMOLDED_RUBBER_GRIP_OLIVE_DRAB = new MongoId( + "57c55f172459772d27602381" + ); + public static readonly MongoId PISTOLGRIP_KS23M_PISTOL_GRIP = new MongoId( + "5e848d99865c0f329958c83b" + ); + public static readonly MongoId PISTOLGRIP_M14_SAGE_INTERNATIONAL_M14ALCS_MOD0_PISTOL_GRIP = + new MongoId("5addc7db5acfc4001669f279"); + public static readonly MongoId PISTOLGRIP_M1911_KIBA_ARMS_GENEBURN_CUSTOM_SIDE_GRIPS = + new MongoId("626a9cb151cb5849f6002890"); + public static readonly MongoId PISTOLGRIP_M1911_PACHMAYR_AMERICAN_LEGEND_GRIP_423 = new MongoId( + "5ef366938cef260c0642acad" + ); + public static readonly MongoId PISTOLGRIP_M1911A1_SIDE_GRIPS = new MongoId( + "5e81c6bf763d9f754677beff" + ); + public static readonly MongoId PISTOLGRIP_M45A1_MILTAC_GVT_G10_SIDE_GRIPS = new MongoId( + "5f3e778efcd9b651187d7201" + ); + public static readonly MongoId PISTOLGRIP_M60E4_PISTOL_GRIP = new MongoId( + "660125bf1d087a96c60a54db" + ); + public static readonly MongoId PISTOLGRIP_M60E4_TRIGGER_GROUP = new MongoId( + "6601257f1347bc1a5f0f4db6" + ); + public static readonly MongoId PISTOLGRIP_M60E6_PISTOL_GRIP = new MongoId( + "66152060a031cbb5570e3466" + ); + public static readonly MongoId PISTOLGRIP_M60E6_PISTOL_GRIP_FDE = new MongoId( + "6615211ca031cbb5570e346d" + ); + public static readonly MongoId PISTOLGRIP_M60E6_TRIGGER_GROUP = new MongoId( + "6615208aa031cbb5570e346a" + ); + public static readonly MongoId PISTOLGRIP_M60E6_TRIGGER_GROUP_FDE = new MongoId( + "66152153a031cbb5570e346f" + ); + public static readonly MongoId PISTOLGRIP_M700_MAGPUL_PRO_700_PISTOL_GRIP = new MongoId( + "5cdeac5cd7f00c000f261694" + ); + public static readonly MongoId PISTOLGRIP_M870_FAB_DEFENSE_AGR870_PISTOL_GRIP = new MongoId( + "5bfe86a20db834001d23e8f7" + ); + public static readonly MongoId PISTOLGRIP_M9A3_POLYMER_SIDE_GRIPS = new MongoId( + "5cadc431ae921500113bb8d5" + ); + public static readonly MongoId PISTOLGRIP_MCX_PISTOL_GRIP = new MongoId( + "5fbcbd6c187fea44d52eda14" + ); + public static readonly MongoId PISTOLGRIP_MDR_PISTOL_GRIP_BLACK = new MongoId( + "5dcbd6dddbd3d91b3e5468de" + ); + public static readonly MongoId PISTOLGRIP_MDR_PISTOL_GRIP_FDE = new MongoId( + "5c48a2c22e221602b313fb6c" + ); + public static readonly MongoId PISTOLGRIP_MOSIN_RIFLE_TACFIRE_PISTOL_GRIP = new MongoId( + "5bbde41ed4351e003562b038" + ); + public static readonly MongoId PISTOLGRIP_MP155_ULTIMA_PISTOL_GRIP = new MongoId( + "606eef46232e5a31c233d500" + ); + public static readonly MongoId PISTOLGRIP_MP443_GRACH_POLYMER_PISTOL_GRIP = new MongoId( + "576a63cd2459771e796e0e11" + ); + public static readonly MongoId PISTOLGRIP_MPX_PISTOL_GRIP = new MongoId( + "5894a51286f77426d13baf02" + ); + public static readonly MongoId PISTOLGRIP_ORSIS_T5000M_PISTOL_GRIP = new MongoId( + "5df38a5fb74cd90030650cb6" + ); + public static readonly MongoId PISTOLGRIP_P226_AXELSON_TACTICAL_MK25_PISTOL_GRIP = new MongoId( + "5bffec120db834001c38f5fa" + ); + public static readonly MongoId PISTOLGRIP_P226_COMBAT_PISTOL_GRIP_FDE = new MongoId( + "57c9a89124597704ee6faec1" + ); + public static readonly MongoId PISTOLGRIP_P226_EMPEROR_SCORPION_PISTOL_GRIP = new MongoId( + "5c0006470db834001a6697fe" + ); + public static readonly MongoId PISTOLGRIP_P226_HOGUE_G10_CHAIN_LINK_PISTOL_GRIP = new MongoId( + "5bffef760db8340019668fe4" + ); + public static readonly MongoId PISTOLGRIP_P226_HOGUE_RUBBERIZED_PISTOL_GRIP = new MongoId( + "5b39ffbd5acfc47a8773fb06" + ); + public static readonly MongoId PISTOLGRIP_P226_POLYMER_PISTOL_GRIP_BLACK = new MongoId( + "56d5a2bbd2720bb8418b456a" + ); + public static readonly MongoId PISTOLGRIP_P226_STAINLESS_ELITE_WOODEN_PISTOL_GRIP = new MongoId( + "5c00076d0db834001d23ee1f" + ); + public static readonly MongoId PISTOLGRIP_PB_BAKELITE_SIDE_GRIPS = new MongoId( + "56e05a6ed2720bd0748b4567" + ); + public static readonly MongoId PISTOLGRIP_PK_PISTOL_GRIP = new MongoId( + "646371779f5f0ea59a04c204" + ); + public static readonly MongoId PISTOLGRIP_PK_PISTOL_GRIP_BLACK = new MongoId( + "64cbad529f7cf7f75c077fd5" + ); + public static readonly MongoId PISTOLGRIP_PM_BAKELITE_GRIP = new MongoId( + "6374a7e7417239a7bf00f042" + ); + public static readonly MongoId PISTOLGRIP_PM_FAB_DEFENSE_PMG_PISTOL_GRIP = new MongoId( + "637784c5f7b3f4ac1a0d1a9a" + ); + public static readonly MongoId PISTOLGRIP_PM_FAB_DEFENSE_PMG_PISTOL_GRIP_OLIVE_DRAB = + new MongoId("648afce7ec6bb25b2608defb"); + public static readonly MongoId PISTOLGRIP_PM_PMLASER_GRIP_WITH_LASER_SIGHT = new MongoId( + "661f8995c341ea101e0d33e8" + ); + public static readonly MongoId PISTOLGRIP_PM_TACTIC_KIT_PISTOL_GRIP = new MongoId( + "637b6d610aef6cfc5e02dd14" + ); + public static readonly MongoId PISTOLGRIP_PP1901_VITYAZ_PISTOL_GRIP = new MongoId( + "5998517986f7746017232f7e" + ); + public static readonly MongoId PISTOLGRIP_PP91_KEDR_POLYMER_PISTOL_GRIP = new MongoId( + "57d152ec245977144076ccdf" + ); + public static readonly MongoId PISTOLGRIP_RPD_WOODEN_PISTOL_GRIP = new MongoId( + "6513f13a8cb24472490ee32f" + ); + public static readonly MongoId PISTOLGRIP_RSH12_PISTOL_GRIP = new MongoId( + "633ec8e4025b096d320a3b1e" + ); + public static readonly MongoId PISTOLGRIP_SA58_FAB_DEFENSE_AGFAL_PISTOL_GRIP = new MongoId( + "5b7d679f5acfc4001a5c4024" + ); + public static readonly MongoId PISTOLGRIP_SA58_PISTOL_GRIP = new MongoId( + "5b7d678a5acfc4001a5c4022" + ); + public static readonly MongoId PISTOLGRIP_SA58_SAWSTYLE_PISTOL_GRIP_BLACK = new MongoId( + "5b099b965acfc400186331e6" + ); + public static readonly MongoId PISTOLGRIP_SKS_TAPCO_INTRAFUSE_SAWSTYLE_PISTOL_GRIP = + new MongoId("5afd7e445acfc4001637e35a"); + public static readonly MongoId PISTOLGRIP_SKSVZ58_FAB_DEFENSE_AG58_PISTOL_GRIP = new MongoId( + "5d023784d7ad1a049d4aa7f2" + ); + public static readonly MongoId PISTOLGRIP_SR2M_PISTOL_GRIP_BLACK = new MongoId( + "637ba29bf7ca6372bf2613db" + ); + public static readonly MongoId PISTOLGRIP_SR2M_PISTOL_GRIP_PLUM = new MongoId( + "637b9c37b7e3bc41b21ce71a" + ); + public static readonly MongoId PISTOLGRIP_SVDS_LYNX_ARMS_AKSERIES_PISTOL_GRIP_ADAPTER = + new MongoId("6516b129609aaf354b34b3a8"); + public static readonly MongoId PISTOLGRIP_SVDS_PISTOL_GRIP = new MongoId( + "5c471be12e221602b66cd9ac" + ); + public static readonly MongoId PISTOLGRIP_TOZ106_002_PISTOL_GRIP = new MongoId( + "5a38eecdc4a282329a73b512" + ); + public static readonly MongoId PISTOLGRIP_TT_HOGUELIKE_RUBBER_GRIP = new MongoId( + "5c0684e50db834002a12585a" + ); + public static readonly MongoId PISTOLGRIP_TT_ORNATED_SIDE_GRIPS = new MongoId( + "5b3cadf35acfc400194776a0" + ); + public static readonly MongoId PISTOLGRIP_TT_PMLASER_TT206_SIDE_GRIPS_WITH_LASER_SIGHT = + new MongoId("5bffcf7a0db83400232fea79"); + public static readonly MongoId PISTOLGRIP_TT_RAZOR_ARMS_RUBBER_GRIP = new MongoId( + "5c079ec50db834001966a706" + ); + public static readonly MongoId PISTOLGRIP_TT_SIDE_GRIPS = new MongoId( + "571a282c2459771fb2755a69" + ); + public static readonly MongoId PISTOLGRIP_UZI_PISTOL_GRIP_COVER = new MongoId( + "669946c157df3e2b4e0a0dc5" + ); + public static readonly MongoId PLANTINGKITS_TRIPWIRE_INSTALLATION_KIT = new MongoId( + "666b11055a706400b717cfa5" + ); + public static readonly MongoId POCKETS_1X3 = new MongoId("60c7272c204bc17802313365"); + public static readonly MongoId POCKETS_1X4 = new MongoId("557ffd194bdc2d28148b457f"); + public static readonly MongoId POCKETS_1X4_SPECIAL = new MongoId("627a4e6b255f7527fb05a0f6"); + public static readonly MongoId POCKETS_1X4_TUE = new MongoId("65e080be269cbd5c5005e529"); + public static readonly MongoId POCKETS_2X3 = new MongoId("64cbd95a29b9b4283e216ff5"); + public static readonly MongoId POCKETS_LARGE = new MongoId("5af99e9186f7747c447120b8"); + public static readonly MongoId QUEST_ACCOUNTANTS_JOURNAL = new MongoId( + "638cbb0f7f97256fac16167a" + ); + public static readonly MongoId QUEST_ACCOUNTANTS_NOTES = new MongoId( + "63a943cead5cc12f22161ff7" + ); + public static readonly MongoId QUEST_AG_GUITAR_PICK = new MongoId("638df4cc7b560b03794a18d2"); + public static readonly MongoId QUEST_ARENA_POSTER_BISON = new MongoId( + "664a5775f3d3570fba06be64" + ); + public static readonly MongoId QUEST_ARENA_POSTER_EASY_MONEY = new MongoId( + "664b69e8e1238e506d3630af" + ); + public static readonly MongoId QUEST_ARENA_POSTER_KILLA = new MongoId( + "664b69c5a082271bc46c4e11" + ); + public static readonly MongoId QUEST_BANK_CASE = new MongoId("590dde5786f77405e71908b2"); + public static readonly MongoId QUEST_BATTERED_DIARY = new MongoId("666073159916667083033cb9"); + public static readonly MongoId QUEST_BLOOD_SAMPLE = new MongoId("5a687e7886f7740c4a5133fb"); + public static readonly MongoId QUEST_BLOOD_SAMPLE_NF2024 = new MongoId( + "66a0f0926fee20fa70036da6" + ); + public static readonly MongoId QUEST_BOTTLE_OF_LE_JEAN_WINE = new MongoId( + "6582bd252b50c61c565828e2" + ); + public static readonly MongoId QUEST_BOX_WITH_UPGRADED_TOOLS = new MongoId( + "675f80d4fe1b59cf490d3527" + ); + public static readonly MongoId QUEST_BTR_QUEST_ELECTRONIC_JAMMING_DEVICE = new MongoId( + "67499d4deca8acb2d206163b" + ); + public static readonly MongoId QUEST_CADASTRAL_REGISTRY_RECORDS = new MongoId( + "657acb2ac900be5902191ac9" + ); + public static readonly MongoId QUEST_CARBON_CASE = new MongoId("5910922b86f7747d96753483"); + public static readonly MongoId QUEST_CARGO_FOR_PRAPOR = new MongoId("67499adbeca8acb2d2061634"); + public static readonly MongoId QUEST_CASE_FROM_SAFETY_DEPOSIT_BOX = new MongoId( + "590de5d986f77417a4293192" + ); + public static readonly MongoId QUEST_CASE_WITH_PRECISION_TOOLS = new MongoId( + "66b22630a6b4e5ec7c02cdb7" + ); + public static readonly MongoId QUEST_CHEFS_DIARY = new MongoId("64f69b4267e11a7c6206e010"); + public static readonly MongoId QUEST_CHEMCONT_SAMPLES = new MongoId("63927b29c115f907b14700b9"); + public static readonly MongoId QUEST_CHEMICAL_CONTAINER = new MongoId( + "66a0e523e749756c920d02d0" + ); + public static readonly MongoId QUEST_CHEMICAL_CONTAINER_1 = new MongoId( + "5b43237186f7742f3a4ab252" + ); + public static readonly MongoId QUEST_CHEMICAL_CONTAINER_2 = new MongoId( + "5b4c81a086f77417d26be63f" + ); + public static readonly MongoId QUEST_CHEMICAL_CONTAINER_3 = new MongoId( + "5b4c81bd86f77418a75ae159" + ); + public static readonly MongoId QUEST_CHEMICAL_SAMPLE = new MongoId("669fac549b0ce3feae01a137"); + public static readonly MongoId QUEST_CLOTHES_DESIGN_HANDBOOK_PART_1 = new MongoId( + "5ae9a3f586f7740aab00e4e6" + ); + public static readonly MongoId QUEST_CLOTHES_DESIGN_HANDBOOK_PART_2 = new MongoId( + "5ae9a4fc86f7746e381e1753" + ); + public static readonly MongoId QUEST_CONTAINER_WITH_SUSPICIOUS_SUBSTANCE = new MongoId( + "679b98e429acd1f2f60985a3" + ); + public static readonly MongoId QUEST_DELIVERY_CREW_REPORT = new MongoId( + "675f7b168d28a25ec7007dbb" + ); + public static readonly MongoId QUEST_EASY_MONEY_POSTER_PACK = new MongoId( + "664b69f3a082271bc46c4e13" + ); + public static readonly MongoId QUEST_ENCRYPTED_MESSAGE = new MongoId( + "5d3ec50586f774183a607442" + ); + public static readonly MongoId QUEST_FLASH_DRIVE_WITH_FAKE_INFO = new MongoId( + "5c12301c86f77419522ba7e4" + ); + public static readonly MongoId QUEST_FLASHDRIVE_CAR_SERVICE = new MongoId( + "638cbb3ba63f1b49be6a300e" + ); + public static readonly MongoId QUEST_FLASHDRIVE_TERRAGROUP_EMPLOYEE = new MongoId( + "5eff135be0d3331e9d282b7b" + ); + public static readonly MongoId QUEST_FLASHDRIVE_WATCHING_YOU = new MongoId( + "638e9d5536b3b72c944e2fc7" + ); + public static readonly MongoId QUEST_FLASHDRIVE_WET_JOB_PT_4 = new MongoId( + "5a29357286f77409c705e025" + ); + public static readonly MongoId QUEST_GAMING_MAGAZINE = new MongoId("667a8ef464eea5fdef0db135"); + public static readonly MongoId QUEST_GOLDEN_ZIBBO_LIGHTER = new MongoId( + "5939a00786f7742fe8132936" + ); + public static readonly MongoId QUEST_GOSHAN_CARGO_MANIFESTS = new MongoId( + "5ae9a0dd86f7742e5f454a05" + ); + public static readonly MongoId QUEST_HARD_DRIVE = new MongoId("661666458c2aa9cb1602503b"); + public static readonly MongoId QUEST_HARD_DRIVE_TERRAGROUP_SCIENTIST = new MongoId( + "6575a6ca8778e96ded05a802" + ); + public static readonly MongoId QUEST_HDD_SURVEILLANCE = new MongoId("638dfc803083a019d447768e"); + public static readonly MongoId QUEST_HDD_TOP_SECRET = new MongoId("628393620d8524273e7eb028"); + public static readonly MongoId QUEST_HDD_UNUSED = new MongoId("66760b3deb51b08bd40c2b08"); + public static readonly MongoId QUEST_HDD_WET_JOB = new MongoId("5a29276886f77435ed1b117c"); + public static readonly MongoId QUEST_HOUSING_JOURNAL = new MongoId("638e0057ab150a5f56238960"); + public static readonly MongoId QUEST_IDEA_CARGO_MANIFESTS = new MongoId( + "5ae9a1b886f77404c8537c62" + ); + public static readonly MongoId QUEST_INCRIMINATING_LETTER = new MongoId( + "67499d0eeca8acb2d2061639" + ); + public static readonly MongoId QUEST_INFECTED_BLOOD_SAMPLE = new MongoId( + "6707cc67cc1667e49e0f7232" + ); + public static readonly MongoId QUEST_INFORMANT_JOURNAL = new MongoId( + "63989ced706b793c7d60cfef" + ); + public static readonly MongoId QUEST_JOURNAL = new MongoId("64f07f7726cfa02c506f8ac0"); + public static readonly MongoId QUEST_KEY_TO_THE_CLOSED_PREMISES_OF_THE_HEALTH_RESORT = + new MongoId("5a0448bc86f774736f14efa8"); + public static readonly MongoId QUEST_KNOSSOS_SENIOR_MANAGERS_DIARY = new MongoId( + "679b9a1a4e4ed4b3b40ae5c2" + ); + public static readonly MongoId QUEST_KOSA_UAV_ELECTRONIC_JAMMING_DEVICE = new MongoId( + "67499b9b909d2013670a5029" + ); + public static readonly MongoId QUEST_LAB_JOURNAL = new MongoId("66c0b39ca1f68fcc1d0c0cc3"); + public static readonly MongoId QUEST_LEDX_SKIN_TRANSILLUMINATOR_US_VERSION = new MongoId( + "666879d498b97e3a8f09f1ae" + ); + public static readonly MongoId QUEST_LETTER_GOT_MAIL = new MongoId("638cbc68a63f1b49be6a3010"); + public static readonly MongoId QUEST_LETTER_HERMIT = new MongoId("61904c9df62c89219a56e034"); + public static readonly MongoId QUEST_LETTER_POSTMAN_PAT = new MongoId( + "591093bb86f7747caa7bb2ee" + ); + public static readonly MongoId QUEST_LETTER_TERRAGROUP = new MongoId( + "5939e9b286f77462a709572c" + ); + public static readonly MongoId QUEST_LIGHTKEEPER_BTR_QUEST_RPG_AMMO_CASE = new MongoId( + "67499d2c69a58fceba104a43" + ); + public static readonly MongoId QUEST_LIGHTKEEPER_INTEL = new MongoId( + "6398a072e301557ae24cec92" + ); + public static readonly MongoId QUEST_LIGHTKEEPER_INTEL_2 = new MongoId( + "638e0752ab150a5f56238962" + ); + public static readonly MongoId QUEST_LIGHTKEEPER_INTEL_2_FORGED = new MongoId( + "638e06c4b8bac37a110ed56d" + ); + public static readonly MongoId QUEST_LIGHTKEEPER_INTEL_FORGED = new MongoId( + "6398a0861c712b1e1d4dadf1" + ); + public static readonly MongoId QUEST_LIGHTKEEPERS_CASE = new MongoId( + "67499b3eeca8acb2d2061636" + ); + public static readonly MongoId QUEST_MARKED_OPHTHALMOSCOPE = new MongoId( + "5efdaf6de6a30218ed211a48" + ); + public static readonly MongoId QUEST_MBT_INTEGRATED_NAVIGATION_SYSTEM = new MongoId( + "60c080eb991ac167ad1c3ad4" + ); + public static readonly MongoId QUEST_MEDICAL_RECORD = new MongoId("6393262086e646067c176aa2"); + public static readonly MongoId QUEST_MEDICAL_RECORD_1 = new MongoId("608c22a003292f4ba43f8a1a"); + public static readonly MongoId QUEST_MEDICAL_RECORD_2 = new MongoId("60a3b5b05f84d429b732e934"); + public static readonly MongoId QUEST_MILITARY_DOCUMENTS_1 = new MongoId( + "60915994c49cf53e4772cc38" + ); + public static readonly MongoId QUEST_MILITARY_DOCUMENTS_2 = new MongoId( + "60a3b6359c427533db36cf84" + ); + public static readonly MongoId QUEST_MILITARY_DOCUMENTS_3 = new MongoId( + "60a3b65c27adf161da7b6e14" + ); + public static readonly MongoId QUEST_MOTOR_CONTROLLER_1 = new MongoId( + "5af04c0b86f774138708f78e" + ); + public static readonly MongoId QUEST_MOTOR_CONTROLLER_2 = new MongoId( + "5b4c72b386f7745b453af9c0" + ); + public static readonly MongoId QUEST_MOTOR_CONTROLLER_3 = new MongoId( + "5b4c72c686f77462ac37e907" + ); + public static readonly MongoId QUEST_NOTE_FOR_THERAPIST = new MongoId( + "5ae9a34d86f7740aab00e4de" + ); + public static readonly MongoId QUEST_OLI_CARGO_MANIFESTS = new MongoId( + "5ae9a18586f7746e381e16a3" + ); + public static readonly MongoId QUEST_OLI_CARGO_ROUTE_DOCUMENTS = new MongoId( + "5ae9a25386f7746dd946e6d9" + ); + public static readonly MongoId QUEST_PACKAGE_FOR_PRAPOR = new MongoId( + "67499a9669a58fceba104a41" + ); + public static readonly MongoId QUEST_PACKAGE_OF_GRAPHICS_CARDS = new MongoId( + "5ac620eb86f7743a8e6e0da0" + ); + public static readonly MongoId QUEST_PARAMEDICS_GPHONE_X = new MongoId( + "64f09c02b63b74469b6c149f" + ); + public static readonly MongoId QUEST_PHOTO_ALBUM = new MongoId("5d357d6b86f7745b606e3508"); + public static readonly MongoId QUEST_PICTURE_1 = new MongoId("64e73909cd54ef0580746af3"); + public static readonly MongoId QUEST_PICTURE_10 = new MongoId("64e74a534d49d23b2c39d31b"); + public static readonly MongoId QUEST_PICTURE_11 = new MongoId("64e74a5ac2b4f829615ec336"); + public static readonly MongoId QUEST_PICTURE_12 = new MongoId("64e74a64aac4cd0a7264ecdf"); + public static readonly MongoId QUEST_PICTURE_2 = new MongoId("64e74a186393886f74114a96"); + public static readonly MongoId QUEST_PICTURE_3 = new MongoId("64e74a1faac4cd0a7264ecd9"); + public static readonly MongoId QUEST_PICTURE_4 = new MongoId("64e74a274d49d23b2c39d317"); + public static readonly MongoId QUEST_PICTURE_5 = new MongoId("64e74a2fc2b4f829615ec332"); + public static readonly MongoId QUEST_PICTURE_6 = new MongoId("64e74a35aac4cd0a7264ecdb"); + public static readonly MongoId QUEST_PICTURE_7 = new MongoId("64e74a3d4d49d23b2c39d319"); + public static readonly MongoId QUEST_PICTURE_8 = new MongoId("64e74a44c2b4f829615ec334"); + public static readonly MongoId QUEST_PICTURE_9 = new MongoId("64e74a4baac4cd0a7264ecdd"); + public static readonly MongoId QUEST_PILOT_LOGBOOK = new MongoId("66c0b90c8398582e4b0c2e27"); + public static readonly MongoId QUEST_PUMPING_STATION_OPERATION_REPORT = new MongoId( + "619268ad78f4fa33f173dbe5" + ); + public static readonly MongoId QUEST_RADIO_TRANSMITTER_BODY = new MongoId( + "6399f54b0a36db13c823ad21" + ); + public static readonly MongoId QUEST_RECRUITERS_NOTES = new MongoId("67f3fd9bdb1fbd5add090f96"); + public static readonly MongoId QUEST_REF_DIRT = new MongoId("664fce7a90294949fe2d81cb"); + public static readonly MongoId QUEST_SECRET_COMPONENT = new MongoId("64f5b4f71a5f313cb144c06c"); + public static readonly MongoId QUEST_SECURE_FLASH_DRIVE = new MongoId( + "59f9ddae86f77407ab46e047" + ); + public static readonly MongoId QUEST_SECURE_FLASH_DRIVE_V3 = new MongoId( + "6331bb0d1aa9f42b804997a6" + ); + public static readonly MongoId QUEST_SECURE_FOLDER_0013 = new MongoId( + "5939e5a786f77461f11c0098" + ); + public static readonly MongoId QUEST_SECURE_FOLDER_0022 = new MongoId( + "591092ef86f7747bb8703422" + ); + public static readonly MongoId QUEST_SECURE_FOLDER_0031 = new MongoId( + "5938188786f77474f723e87f" + ); + public static readonly MongoId QUEST_SECURE_FOLDER_0048 = new MongoId( + "593965cf86f774087a77e1b6" + ); + public static readonly MongoId QUEST_SECURE_FOLDER_0052 = new MongoId( + "5938878586f7741b797c562f" + ); + public static readonly MongoId QUEST_SECURE_FOLDER_0060 = new MongoId( + "5a6860d886f77411cd3a9e47" + ); + public static readonly MongoId QUEST_SECURED_TAPE = new MongoId("6398a4cfb5992f573c6562b3"); + public static readonly MongoId QUEST_SINGLEAXIS_FIBER_OPTIC_GYROSCOPE_1 = new MongoId( + "5af04e0a86f7743a532b79e2" + ); + public static readonly MongoId QUEST_SINGLEAXIS_FIBER_OPTIC_GYROSCOPE_2 = new MongoId( + "5b4c72fb86f7745cef1cffc5" + ); + public static readonly MongoId QUEST_SKIER_AND_PEACEKEEPER_CORRESPONDENCE = new MongoId( + "6614238e0d240a5f5d0f679d" + ); + public static readonly MongoId QUEST_SKIERS_WALLET = new MongoId("675f7f224076a741a3061568"); + public static readonly MongoId QUEST_SLAUGHTER_VIDEOTAPE = new MongoId( + "679b998180a165f7a40b4c2c" + ); + public static readonly MongoId QUEST_SLIDERKEY_SECURE_FLASH_DRIVE = new MongoId( + "590c62a386f77412b0130255" + ); + public static readonly MongoId QUEST_STOLEN_MILITARY_DOCUMENTS = new MongoId( + "61a00bcb177fb945751bbe6a" + ); + public static readonly MongoId QUEST_STOLEN_WEAPON_CASE = new MongoId( + "671a406a6d315b526708f103" + ); + public static readonly MongoId QUEST_SURGERY_KIT_MARKED_WITH_A_BLUE_SYMBOL = new MongoId( + "5efdafc1e70b5e33f86de058" + ); + public static readonly MongoId QUEST_SYRINGE_WITH_A_CHEMICAL = new MongoId( + "593a87af86f774122f54a951" + ); + public static readonly MongoId QUEST_T90M_COMMANDER_CONTROL_PANEL = new MongoId( + "609267a2bb3f46069c3e6c7d" + ); + public static readonly MongoId QUEST_TARKOV_CITY_SOUVENIR_KEY = new MongoId( + "66687bc89111279d600b5062" + ); + public static readonly MongoId QUEST_TERRAGROUP_SHIPMENT_REPORT = new MongoId( + "675f7acc4076a741a3061566" + ); + public static readonly MongoId QUEST_TEST_KEY = new MongoId("5a043f2c86f7741aa57b5145"); + public static readonly MongoId QUEST_TGVI24_SAMPLE = new MongoId("6707cd70aab679420007e018"); + public static readonly MongoId QUEST_TOUGHBOOK_CARGO = new MongoId("5a29284f86f77463ef3db363"); + public static readonly MongoId QUEST_TOUGHBOOK_SEASIDE_VACATION = new MongoId( + "619252352be33f26043400a7" + ); + public static readonly MongoId QUEST_TRUE_VACCINE_RECIPE = new MongoId( + "6707d1f9571b50abc703b651" + ); + public static readonly MongoId QUEST_UAV_SAS_DISK_1 = new MongoId("5a294d7c86f7740651337cf9"); + public static readonly MongoId QUEST_UAV_SAS_DISK_2 = new MongoId("5a294d8486f774068638cd93"); + public static readonly MongoId QUEST_UNHEARD_LAPTOP = new MongoId("661421c7c1f2f548c50ee649"); + public static readonly MongoId QUEST_UNHEARD_LAPTOP_2 = new MongoId("661423200d240a5f5d0f679b"); + public static readonly MongoId QUEST_UNHEARD_PHONE = new MongoId("6614217b6d9d5abcad0ff098"); + public static readonly MongoId QUEST_UNHEARD_PHONE_2 = new MongoId("6614230055afee107f05e998"); + public static readonly MongoId QUEST_VACCINE_SAMPLE_IV = new MongoId( + "6707cf827d279daad80fa95f" + ); + public static readonly MongoId QUEST_VO_SIGNED_DIARY = new MongoId("6707cef3571b50abc703b64f"); + public static readonly MongoId QUEST_VPX_FLASH_STORAGE_MODULE_MARKED_GROUP_3 = new MongoId( + "679b9aa490622daf9708da73" + ); + public static readonly MongoId QUEST_WATCH_BRONZE = new MongoId("5937fd0086f7742bf33fc198"); + public static readonly MongoId QUEST_WATCH_GOLD = new MongoId("590de92486f77423d9312a33"); + public static readonly MongoId QUEST_WATCH_SILVER = new MongoId("5937fc6786f7742cab753590"); + public static readonly MongoId QUEST_WATER_PUMP_OPERATION_DATA = new MongoId( + "619268de2be33f2604340159" + ); + public static readonly MongoId RADIOTRANSMITTER_DIGITAL_SECURE_DSP_RADIO_TRANSMITTER = + new MongoId("62e910aaf957f2915e0a5e36"); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_GEARCRATE_BLUE_OPEN = new MongoId( + "665730fa4de4820934746c48" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_GEARCRATE_BP_SEASON0_OPEN = + new MongoId("67cad3226bf74131800752b7"); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_GEARCRATE_GREEN_OPEN = new MongoId( + "6658876e146af22739040fad" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_GEARCRATE_VIOLET_OPEN = new MongoId( + "6658291eefd94e2d665b14a4" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_JEWELRYCRATE_BLUE_OPEN = new MongoId( + "66573310a1657263d816a139" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_JEWELRYCRATE_GREEN_OPEN = new MongoId( + "665886abdaadd1069736c539" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_JEWELRYCRATE_VIOLET_OPEN = new MongoId( + "665829a6efd94e2d665b14a8" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_JUNKCRATE_BLUE_OPEN = new MongoId( + "665732f4464c4b4ba4670fa9" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_JUNKCRATE_GREEN_OPEN = new MongoId( + "6658892e6e007c6f33662002" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_JUNKCRATE_VIOLET_OPEN = new MongoId( + "66582972ac60f009f270d2aa" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_WEAPONCRATE_BLUE_OPEN = new MongoId( + "665732e7ac60f009f270d1ef" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_WEAPONCRATE_GREEN_OPEN = new MongoId( + "665888282c4a1b73af576b77" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_ARENA_WEAPONCRATE_VIOLET_OPEN = new MongoId( + "665829424de4820934746ce6" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_01 = new MongoId( + "64897ffc3656831810043165" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_02 = new MongoId( + "64898e9db18e646e992aba47" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_03 = new MongoId( + "648990314b4d2b31b63a46fc" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_04 = new MongoId( + "648996987063b903ff4b8561" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_05 = new MongoId( + "6489981f7063b903ff4b8565" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_06 = new MongoId( + "64899a35fc093676bb0f57e3" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_07 = new MongoId( + "64899ec0a236de328b12db52" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_08 = new MongoId( + "64899f4189de40533661a0c0" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_09 = new MongoId( + "6489a0a4fc493c59d15fec05" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_10 = new MongoId( + "6489a233a236de328b12db56" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_11 = new MongoId( + "6489a344fc493c59d15fec0f" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_12 = new MongoId( + "6489a7d87063b903ff4b85cc" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_13 = new MongoId( + "6489a97645f9ca4ba51c4dd0" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_14 = new MongoId( + "6489aa584b6fc03d00374e59" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_15 = new MongoId( + "6489ab9645f9ca4ba51c4dd7" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_16 = new MongoId( + "6489b2b131a2135f0d7d0fcb" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_17 = new MongoId( + "6489b73cebac5a4a1b73cab7" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_18 = new MongoId( + "6489b88bcf0cd80b7e749069" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_19 = new MongoId( + "6489b91dd0c36c0a4925c4b4" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_20 = new MongoId( + "6489b99eebac5a4a1b73cabc" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_21 = new MongoId( + "6489ba157c07471efa3e03b4" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_22 = new MongoId( + "6489ba92a74e43447b64d5e2" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_23 = new MongoId( + "6489bbd6d0c36c0a4925c4b8" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_24 = new MongoId( + "6489bd7b79295b4f753d486a" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_25 = new MongoId( + "6489bed4a53c8c047c3dc361" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_26 = new MongoId( + "6489bfa844d98e01bc4c420e" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_27 = new MongoId( + "6489c03c8bc5233fdc78e788" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_28 = new MongoId( + "6489c0508bc5233fdc78e78c" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_29 = new MongoId( + "6489c0df7c07471efa3e03b8" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_30 = new MongoId( + "6489c0f731a2135f0d7d0fd5" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_31 = new MongoId( + "6489c12f8bc5233fdc78e790" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_32 = new MongoId( + "6489c164a53c8c047c3dc365" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_33 = new MongoId( + "6489c200cf0cd80b7e74906d" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_34 = new MongoId( + "6489c2aad0c36c0a4925c4bc" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_35 = new MongoId( + "6489c30331a2135f0d7d0fd9" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_36 = new MongoId( + "6489c46eebac5a4a1b73cac0" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_37 = new MongoId( + "6489c5cb44d98e01bc4c4212" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_38 = new MongoId( + "6489c65cd0c36c0a4925c4c0" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_39 = new MongoId( + "6489c753a74e43447b64d5e6" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_40 = new MongoId( + "6489c80e7c07471efa3e03bc" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_41 = new MongoId( + "6489c8a1a53c8c047c3dc369" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_42 = new MongoId( + "6489c8dba53c8c047c3dc36d" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_43 = new MongoId( + "6489c99f7c07471efa3e03c0" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_44 = new MongoId( + "6489ca66d0c36c0a4925c4c4" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_45 = new MongoId( + "6489cad98bc5233fdc78e794" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_46 = new MongoId( + "6489cb4fa74e43447b64d5ea" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_47 = new MongoId( + "6489cc4379295b4f753d486e" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_48 = new MongoId( + "6489cca131a2135f0d7d0fdd" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_49 = new MongoId( + "6489d812cf0cd80b7e749071" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_AIRDROP_50 = new MongoId( + "6489d89debac5a4a1b73caf7" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_CONTRABAND_FAKE = + new MongoId("674098588466ebb03408b210"); + public static readonly MongoId RANDOMLOOTCONTAINER_EVENT_CONTAINER_CONTRABAND_MAIN = + new MongoId("674078c4a9c9adf0450d59f9"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_LATAM_DROPS_2025_COMMON = + new MongoId("67b70e43f753cf9f7a0a07a6"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_LATAM_DROPS_2025_EPIC = + new MongoId("67b72c64f753cf9f7a0a07aa"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_LATAM_DROPS_2025_RARE = + new MongoId("67b72271e5673725070b0456"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_COMMON = + new MongoId("6694f4101ae1778e310f4f8e"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_COMMON_PLUS_1 = + new MongoId("66a3896972c8e72507028806"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_COMMON_PLUS_2 = + new MongoId("66a3896de45f71bf1009e45a"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_EPIC = + new MongoId("6694f423909d2322a8073151"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_EPIC_PLUS_1 = + new MongoId("66a389c0705adefa710cdeaa"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_EPIC_PLUS_2 = + new MongoId("66a389c60982fc7e4c091c51"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_RARE = + new MongoId("6694f418c74d8a180f0f78c0"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_RARE_PLUS_1 = + new MongoId("66a3898c1df2a447cc0d3c35"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_SUMMER_DROPS_2024_RARE_PLUS_2 = + new MongoId("66a3898f0982fc7e4c091c4d"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY0 = + new MongoId("676a93c51888885b4e008b18"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY1 = + new MongoId("676a95041888885b4e008b36"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY2 = + new MongoId("676a98d7b4ba2f4afa04c704"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY3 = + new MongoId("676a9a5c744595610f0ed501"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY4 = + new MongoId("676a9b15b4ba2f4afa04c7ad"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY5 = + new MongoId("676a9b1afe1fc45172014d32"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_COMMON_DAY6 = + new MongoId("676a9bc6744595610f0ed52e"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY0 = + new MongoId("676aa104fe1fc45172014da3"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY1 = + new MongoId("676aa29243000db5340061b5"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY2 = + new MongoId("676aa30ffe1fc45172014dce"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY3 = + new MongoId("676aa37ff90b6f429601afb5"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY4 = + new MongoId("676aa3cf7a232aa5c70bda8d"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY5 = + new MongoId("676aa3fc20a7cc6f4309e078"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_EPIC_DAY6 = + new MongoId("676aa450fe1fc45172014df2"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY0 = + new MongoId("676a9da81888885b4e008c51"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY1 = + new MongoId("676a9e46744595610f0ed53f"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY2 = + new MongoId("676a9f03744595610f0ed55f"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY3 = + new MongoId("676a9fc7a65670a58c084c9e"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY4 = + new MongoId("676aa016744595610f0ed563"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY5 = + new MongoId("676aa025fe1fc45172014d9f"); + public static readonly MongoId RANDOMLOOTCONTAINER_ITEM_CONTAINER_EVENT_TWITCH_WINTER_DROPS_2025_RARE_DAY6 = + new MongoId("676aa0f11888885b4e008c8b"); + public static readonly MongoId RANDOMLOOTCONTAINER_NEW_YEAR_GIFT_BIG = new MongoId( + "63a897c6b1ff6e29734fcc95" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_NEW_YEAR_GIFT_MEDIUM = new MongoId( + "63a898a328e385334e0640a5" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_NEW_YEAR_GIFT_SMALL = new MongoId( + "63a8970d7108f713591149f5" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_PUMPKIN_RAND_LOOT_CONTAINER = new MongoId( + "634959225289190e5e773b3b" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_RAND_LOOT_CONTAINER_TWITCH_EVENT = + new MongoId("66aa3a180d6ecb50a21a4e1a"); + public static readonly MongoId RANDOMLOOTCONTAINER_RAND_LOOT_CONTAINER_TWITCH_EVENT_PLUS_1 = + new MongoId("66aa3a31efb1b8119f0196c7"); + public static readonly MongoId RANDOMLOOTCONTAINER_RAND_LOOT_CONTAINER_TWITCH_EVENT_PLUS_2 = + new MongoId("66aa3a3800b2c42adb07d13e"); + public static readonly MongoId RANDOMLOOTCONTAINER_RANDOM_LOOT_CONTAINER = new MongoId( + "62f10b79e7ee985f386b2f47" + ); + public static readonly MongoId RANDOMLOOTCONTAINER_RANDOM_LOOT_QUEST_CONTAINER = new MongoId( + "633ffb5d419dbf4bea7004c6" + ); + public static readonly MongoId RANGEFINDER_VORTEX_RANGER_1500 = new MongoId( + "61605e13ffa6e502ac5e7eef" + ); + public static readonly MongoId RECEIVER_AI_AXMC_338_LM_CHASSIS = new MongoId( + "6281204f308cb521f87a8f9b" + ); + public static readonly MongoId RECEIVER_AI_AXMC_UPPER = new MongoId("62811fbf09427b40ab14e767"); + public static readonly MongoId RECEIVER_AK_AKADEMIA_BASTION_DUST_COVER = new MongoId( + "5d2c76ed48f03532f2136169" + ); + public static readonly MongoId RECEIVER_AK_FAB_DEFENSE_PDC_DUST_COVER = new MongoId( + "5d2c770c48f0354b4a07c100" + ); + public static readonly MongoId RECEIVER_AK_TWS_DOG_LEG_RAIL_DUST_COVER = new MongoId( + "5d2c772c48f0355d95672c25" + ); + public static readonly MongoId RECEIVER_AK_ZENIT_B33_DUST_COVER = new MongoId( + "5649af884bdc2d1b2b8b4589" + ); + public static readonly MongoId RECEIVER_AK12_RAILED_DUST_COVER = new MongoId( + "649ec2f3961514b22506b111" + ); + public static readonly MongoId RECEIVER_AK545_RAILED_DUST_COVER = new MongoId( + "628b9be6cff66b70c002b14c" + ); + public static readonly MongoId RECEIVER_AK74_DUST_COVER = new MongoId( + "5649af094bdc2df8348b4586" + ); + public static readonly MongoId RECEIVER_AK74M_DUST_COVER = new MongoId( + "5ac50da15acfc4001718d287" + ); + public static readonly MongoId RECEIVER_AKM_DUST_COVER = new MongoId( + "59d6507c86f7741b846413a2" + ); + public static readonly MongoId RECEIVER_AKS74U_DUST_COVER = new MongoId( + "57dc334d245977597164366f" + ); + public static readonly MongoId RECEIVER_AKS74U_LEGAL_ARSENAL_PILGRIM_RAILED_DUST_COVER = + new MongoId("655cb6b5d680a544f30607fa"); + public static readonly MongoId RECEIVER_AKS74UB_DUST_COVER = new MongoId( + "5839a7742459773cf9693481" + ); + public static readonly MongoId RECEIVER_AR15_ADAR_215_556X45_UPPER = new MongoId( + "5c0e2f26d174af02a9625114" + ); + public static readonly MongoId RECEIVER_AR15_AEROKNOX_AX15_556X45_UPPER = new MongoId( + "63f5ed14534b2c3d5479a677" + ); + public static readonly MongoId RECEIVER_AR15_NOVESKE_GEN3_556X45_UPPER = new MongoId( + "5c07a8770db8340023300450" + ); + public static readonly MongoId RECEIVER_AR15_VLTOR_MUR1S_556X45_UPPER = new MongoId( + "59bfe68886f7746004266202" + ); + public static readonly MongoId RECEIVER_AS_VAL_DUST_COVER = new MongoId( + "57c44f4f2459772d2c627113" + ); + public static readonly MongoId RECEIVER_DESERT_EAGLE_L5_357_PISTOL_SLIDE = new MongoId( + "669fa5127a09bc295603b499" + ); + public static readonly MongoId RECEIVER_DESERT_EAGLE_L5_50_AE_PISTOL_SLIDE = new MongoId( + "669fa5019aa2a422600442f6" + ); + public static readonly MongoId RECEIVER_DESERT_EAGLE_L6_PISTOL_SLIDE = new MongoId( + "669fa4d97a09bc295603b496" + ); + public static readonly MongoId RECEIVER_DESERT_EAGLE_L6_PISTOL_SLIDE_WTS = new MongoId( + "669fa5271bd4416eaa09b3ce" + ); + public static readonly MongoId RECEIVER_DESERT_EAGLE_MK_XIX_PISTOL_SLIDE = new MongoId( + "668fe60b56984d93550462c6" + ); + public static readonly MongoId RECEIVER_DO_NOT_USEAI_AXMC_762X51MM_CHASSIS = new MongoId( + "628120415631d45211793c99" + ); + public static readonly MongoId RECEIVER_FAL_STANDARD_DUST_COVER = new MongoId( + "5b7d6c105acfc40015109a5f" + ); + public static readonly MongoId RECEIVER_FN_FIVESEVEN_MK2_PISTOL_SLIDE = new MongoId( + "5d3eb44aa4b93650d64e4979" + ); + public static readonly MongoId RECEIVER_FN_P90_57X28_UPPER = new MongoId( + "5cc70102e4a949035e43ba74" + ); + public static readonly MongoId RECEIVER_FN_P90_EFFEN_90_57X28_UPPER = new MongoId( + "5cc700ede4a949033c734315" + ); + public static readonly MongoId RECEIVER_FN_PS90_57X28_UPPER = new MongoId( + "5cf7acfcd7f00c1084477cf2" + ); + public static readonly MongoId RECEIVER_FN_SCARH_762X51_UPPER = new MongoId( + "6165adcdd3a39d50044c120f" + ); + public static readonly MongoId RECEIVER_FN_SCARH_762X51_UPPER_RECEIVER_FDE = new MongoId( + "6165aeedfaa1272e431521e3" + ); + public static readonly MongoId RECEIVER_FN_SCARL_556X45_UPPER = new MongoId( + "618405198004cc50514c3594" + ); + public static readonly MongoId RECEIVER_FN_SCARL_556X45_UPPER_RECEIVER_FDE = new MongoId( + "618426d96c780c1e710c9b9f" + ); + public static readonly MongoId RECEIVER_GLOCK_17_MOS_PISTOL_SLIDE = new MongoId( + "615d8dbd290d254f5e6b2ed6" + ); + public static readonly MongoId RECEIVER_GLOCK_17_PISTOL_SLIDE = new MongoId( + "5a6f5e048dc32e00094b97da" + ); + public static readonly MongoId RECEIVER_GLOCK_18C_PISTOL_SLIDE = new MongoId( + "5b1faa0f5acfc40dc528aeb5" + ); + public static readonly MongoId RECEIVER_GLOCK_19X_PISTOL_SLIDE = new MongoId( + "63075cc5962d0247b029dc2a" + ); + public static readonly MongoId RECEIVER_GLOCK_LONE_WOLF_ALPHAWOLF_CUSTOM_PISTOL_SLIDE = + new MongoId("5a7033908dc32e000a311392"); + public static readonly MongoId RECEIVER_GLOCK_LONE_WOLF_ALPHAWOLF_PISTOL_SLIDE = new MongoId( + "5a702d198dc32e000b452fc3" + ); + public static readonly MongoId RECEIVER_GLOCK_MOTO_CUT_PISTOL_SLIDE = new MongoId( + "5a9685b1a2750c0032157104" + ); + public static readonly MongoId RECEIVER_GLOCK_POLYMER80_PS9_PISTOL_SLIDE = new MongoId( + "5a7afa25e899ef00135e31b0" + ); + public static readonly MongoId RECEIVER_GLOCK_VIPER_CUT_PISTOL_SLIDE = new MongoId( + "5a6f5f078dc32e00094b97dd" + ); + public static readonly MongoId RECEIVER_GLOCK_ZEV_TECH_HEX_GEN3_RMR_PISTOL_SLIDE = new MongoId( + "5a71e22f8dc32e00094b97f4" + ); + public static readonly MongoId RECEIVER_GLOCK_ZEV_TECH_HEX_SPARTAN_RMR_PISTOL_SLIDE = + new MongoId("5a71e4f48dc32e001207fb26"); + public static readonly MongoId RECEIVER_HK_416A5_556X45_UPPER = new MongoId( + "5bb20d53d4351e4502010a69" + ); + public static readonly MongoId RECEIVER_HK_G28_762X51_UPPER = new MongoId( + "61713a8fd92c473c770214a4" + ); + public static readonly MongoId RECEIVER_HK_MP5_9X19_UPPER = new MongoId( + "5926c0df86f77462f647f764" + ); + public static readonly MongoId RECEIVER_HK_MP5K_9X19_UPPER = new MongoId( + "5d2f261548f03576f500e7b7" + ); + public static readonly MongoId RECEIVER_HK_MP5SD_9X19_UPPER = new MongoId( + "5926f2e086f7745aae644231" + ); + public static readonly MongoId RECEIVER_HK_USP_45_ACP_PISTOL_SLIDE = new MongoId( + "6193d382ed0429009f543e65" + ); + public static readonly MongoId RECEIVER_HK_USP_ELITE_45_ACP_PISTOL_SLIDE = new MongoId( + "6194f5d418a3974e5e7421ef" + ); + public static readonly MongoId RECEIVER_HK_USP_EXPERT_45_ACP_PISTOL_SLIDE = new MongoId( + "6194f5722d2c397d6600348f" + ); + public static readonly MongoId RECEIVER_HK_USP_MATCH_45_ACP_PISTOL_SLIDE = new MongoId( + "6194f5a318a3974e5e7421eb" + ); + public static readonly MongoId RECEIVER_HK_USP_TACTICAL_45_ACP_PISTOL_SLIDE = new MongoId( + "6194f41f9fb0c665d5490e75" + ); + public static readonly MongoId RECEIVER_M1911A1_PISTOL_SLIDE = new MongoId( + "5e81edc13397a21db957f6a1" + ); + public static readonly MongoId RECEIVER_M45A1_PISTOL_SLIDE = new MongoId( + "5f3e7823ddc4f03b010e2045" + ); + public static readonly MongoId RECEIVER_M4A1_556X45_UPPER = new MongoId( + "55d355e64bdc2d962f8b4569" + ); + public static readonly MongoId RECEIVER_M9A3_PISTOL_SLIDE = new MongoId( + "5cadc55cae921500103bb3be" + ); + public static readonly MongoId RECEIVER_MCX_GEN1_300_BLK_UPPER = new MongoId( + "5fbcc3e4d6fa9c00c571bb58" + ); + public static readonly MongoId RECEIVER_MCXSPEAR_68X51_UPPER = new MongoId( + "6529119424cbe3c74a05e5bb" + ); + public static readonly MongoId RECEIVER_MK18_338_LM_UPPER = new MongoId( + "5fc278107283c4046c581489" + ); + public static readonly MongoId RECEIVER_MK47_RESOLUTE_762X39_UPPER = new MongoId( + "606587a88900dc2d9a55b659" + ); + public static readonly MongoId RECEIVER_MOLOT_ARMS_AKMTYPE_DUST_COVER = new MongoId( + "59e6449086f7746c9f75e822" + ); + public static readonly MongoId RECEIVER_MP9_9X19_UPPER = new MongoId( + "5e0090f7e9dc277128008b93" + ); + public static readonly MongoId RECEIVER_MP9N_9X19_UPPER = new MongoId( + "5de8e67c4a9f347bc92edbd7" + ); + public static readonly MongoId RECEIVER_MPX_GEN1_9X19_UPPER = new MongoId( + "5894a5b586f77426d2590767" + ); + public static readonly MongoId RECEIVER_OPSKS_DUST_COVER = new MongoId( + "634f06262e5def262d0b30ca" + ); + public static readonly MongoId RECEIVER_P226_AXELSON_TACTICAL_MK25_PISTOL_SLIDE = new MongoId( + "5bffe7c50db834001d23ece1" + ); + public static readonly MongoId RECEIVER_P226_EMPEROR_SCORPION_PISTOL_SLIDE = new MongoId( + "5c010a700db834001d23ef5d" + ); + public static readonly MongoId RECEIVER_P226_LEGION_FULL_SIZE_PISTOL_SLIDE = new MongoId( + "5c0125fc0db834001a669aa3" + ); + public static readonly MongoId RECEIVER_P226_STAINLESS_ELITE_PISTOL_SLIDE = new MongoId( + "5c0009510db834001966907f" + ); + public static readonly MongoId RECEIVER_P226R_MK25_PISTOL_SLIDE = new MongoId( + "56d5a407d2720bb3418b456b" + ); + public static readonly MongoId RECEIVER_PL15_PISTOL_SLIDE = new MongoId( + "60228924961b8d75ee233c32" + ); + public static readonly MongoId RECEIVER_PM_PISTOL_SLIDE = new MongoId( + "6374a822e629013b9c0645c8" + ); + public static readonly MongoId RECEIVER_PP1901_VITYAZ_DUST_COVER = new MongoId( + "59985a8086f77414ec448d1a" + ); + public static readonly MongoId RECEIVER_PP1901_VITYAZSN_DUST_COVER = new MongoId( + "59985a6c86f77414ec448d17" + ); + public static readonly MongoId RECEIVER_PPSH41_DUST_COVER = new MongoId( + "5ea03e5009aa976f2e7a514b" + ); + public static readonly MongoId RECEIVER_RD704_DUST_COVER = new MongoId( + "628a665a86cbd9750d2ff5e5" + ); + public static readonly MongoId RECEIVER_RPK16_DUST_COVER = new MongoId( + "5beec91a0db834001961942d" + ); + public static readonly MongoId RECEIVER_SA58_EXTREME_DUTY_DUST_COVER = new MongoId( + "5b099bb25acfc400186331e8" + ); + public static readonly MongoId RECEIVER_SAKO_TRG_M10_338_LM = new MongoId( + "673cb491280680de5e02ff36" + ); + public static readonly MongoId RECEIVER_SKS_DUST_COVER = new MongoId( + "634f05ca517ccc8a960fc748" + ); + public static readonly MongoId RECEIVER_SKS_LEAPERS_UTG_PRO_MTU017_RECEIVER_COVER_MOUNT = + new MongoId("6415c694da439c6a97048b56"); + public static readonly MongoId RECEIVER_SOK12_DUST_COVER = new MongoId( + "57616c112459773cce774d66" + ); + public static readonly MongoId RECEIVER_SOK12_KIBA_ARMS_ZOMBIE_CUSTOM_DUST_COVER = new MongoId( + "676017fe8cfeeba9f707c8d6" + ); + public static readonly MongoId RECEIVER_SR25_762X51_UPPER = new MongoId( + "5df8e4080b92095fd441e594" + ); + public static readonly MongoId RECEIVER_SR2M_DUST_COVER = new MongoId( + "62e27a7865f0b1592a49e17b" + ); + public static readonly MongoId RECEIVER_STEYR_AUG_A3_556X45 = new MongoId( + "62e7c72df68e7a0676050c77" + ); + public static readonly MongoId RECEIVER_STEYR_AUG_A3_VLTOR_556X45 = new MongoId( + "67110d8d388bded67304ceb4" + ); + public static readonly MongoId RECEIVER_STM9_9X19_UPPER = new MongoId( + "602e63fb6335467b0c5ac94d" + ); + public static readonly MongoId RECEIVER_SVDS_CUSTOM_CUT_DUST_COVER = new MongoId( + "5dfce88fe9dc277128008b2e" + ); + public static readonly MongoId RECEIVER_SVDS_DUST_COVER = new MongoId( + "5c471bd12e221602b4129c3a" + ); + public static readonly MongoId RECEIVER_SVT_DUST_COVER = new MongoId( + "64119cdbdcf48d656f0aa272" + ); + public static readonly MongoId RECEIVER_TX15_556X45_LIGHTWEIGHT_UPPER = new MongoId( + "5d4405aaa4b9361e6a4e6bd3" + ); + public static readonly MongoId RECEIVER_UZI_PRO_DUST_COVER = new MongoId( + "6680326874b8f2050c0b9178" + ); + public static readonly MongoId RECEIVER_VPO101_DUST_COVER = new MongoId( + "5c503d0a2e221602b542b7ef" + ); + public static readonly MongoId RECEIVER_VSS_DUST_COVER = new MongoId( + "578395402459774a256959b5" + ); + public static readonly MongoId REPAIRKITS_BODY_ARMOR_REPAIR_KIT = new MongoId( + "591094e086f7747caa7bb2ef" + ); + public static readonly MongoId REPAIRKITS_WEAPON_REPAIR_KIT = new MongoId( + "5910968f86f77425cf569c32" + ); + public static readonly MongoId REVOLVER_CHIAPPA_RHINO_200DS_9X19 = new MongoId( + "624c2e8614da335f1e034d8c" + ); + public static readonly MongoId REVOLVER_CHIAPPA_RHINO_50DS_357 = new MongoId( + "61a4c8884f95bc3b2c5dc96f" + ); + public static readonly MongoId REVOLVER_MILKOR_M32A1_MSGL_40MM_GRENADE_LAUNCHER = new MongoId( + "6275303a9f372d6ea97f9ec7" + ); + public static readonly MongoId REVOLVER_MTS25512_12GA_SHOTGUN = new MongoId( + "60db29ce99594040e04c4a27" + ); + public static readonly MongoId REVOLVER_RSH12_127X55 = new MongoId("633ec7c2a6918cb895019c6c"); + public static readonly MongoId ROCKET_725_SHG2 = new MongoId("67446fdd752be02c220f27b3"); + public static readonly MongoId ROCKETLAUNCHER_RSHG2_725MM_ROCKET_LAUNCHER = new MongoId( + "676bf44c5539167c3603e869" + ); + public static readonly MongoId SECURE_CONTAINER_ALPHA = new MongoId("544a11ac4bdc2d470e8b456a"); + public static readonly MongoId SECURE_CONTAINER_BETA = new MongoId("5857a8b324597729ab0a0e7d"); + public static readonly MongoId SECURE_CONTAINER_BOSS = new MongoId("5c0a794586f77461c458f892"); + public static readonly MongoId SECURE_CONTAINER_EPSILON = new MongoId( + "59db794186f77448bc595262" + ); + public static readonly MongoId SECURE_CONTAINER_GAMMA = new MongoId("5857a8bc2459772bad15db29"); + public static readonly MongoId SECURE_CONTAINER_GAMMA_TUE = new MongoId( + "665ee77ccf2d642e98220bca" + ); + public static readonly MongoId SECURE_CONTAINER_KAPPA = new MongoId("5c093ca986f7740a1867ab12"); + public static readonly MongoId SECURE_CONTAINER_KAPPA_DESECRATED = new MongoId( + "676008db84e242067d0dc4c9" + ); + public static readonly MongoId SECURE_CONTAINER_THETA = new MongoId("664a55d84a90fc2c8a6305c9"); + public static readonly MongoId SECURE_DEVELOPER_SECURE_CONTAINER = new MongoId( + "5c0a5a5986f77476aa30ae64" + ); + public static readonly MongoId SECURE_TOURNAMENT_SECURED_CONTAINER = new MongoId( + "64f6f4c5911bcdfe8b03b0dc" + ); + public static readonly MongoId SECURE_WAIST_POUCH = new MongoId("5732ee6a24597719ae0c0281"); + public static readonly MongoId SHOTGUN_BENELLI_M3_SUPER_90_12GA_DUALMODE = new MongoId( + "6259b864ebedf17603599e88" + ); + public static readonly MongoId SHOTGUN_MOSSBERG_590A1_12GA_PUMPACTION = new MongoId( + "5e870397991fd70db46995c8" + ); + public static readonly MongoId SHOTGUN_MP133_12GA_PUMPACTION = new MongoId( + "54491c4f4bdc2db1078b4568" + ); + public static readonly MongoId SHOTGUN_MP153_12GA_SEMIAUTOMATIC = new MongoId( + "56dee2bdd2720bc8328b4567" + ); + public static readonly MongoId SHOTGUN_MP155_12GA_SEMIAUTOMATIC = new MongoId( + "606dae0ab0e443224b421bb7" + ); + public static readonly MongoId SHOTGUN_MP18_762X54R_SINGLESHOT_RIFLE = new MongoId( + "61f7c9e189e6fb1a5e3ea78d" + ); + public static readonly MongoId SHOTGUN_MP43_12GA_SAWEDOFF_DOUBLEBARREL = new MongoId( + "64748cb8de82c85eaf0a273a" + ); + public static readonly MongoId SHOTGUN_MP431C_12GA_DOUBLEBARREL = new MongoId( + "5580223e4bdc2d1c128b457f" + ); + public static readonly MongoId SHOTGUN_MPS_AUTO_ASSAULT12_GEN_1_12GA_AUTOMATIC = new MongoId( + "66ffa9b66e19cc902401c5e8" + ); + public static readonly MongoId SHOTGUN_MPS_AUTO_ASSAULT12_GEN_2_12GA_AUTOMATIC = new MongoId( + "67124dcfa3541f2a1f0e788b" + ); + public static readonly MongoId SHOTGUN_REMINGTON_MODEL_870_12GA_PUMPACTION = new MongoId( + "5a7828548dc32e5a9c28b516" + ); + public static readonly MongoId SHOTGUN_SAIGA12K_12GA_AUTOMATIC = new MongoId( + "674fe9a75e51f1c47c04ec23" + ); + public static readonly MongoId SHOTGUN_SAIGA12K_VER10_12GA_SEMIAUTOMATIC = new MongoId( + "576165642459773c7a400233" + ); + public static readonly MongoId SHOTGUN_TOZ_KS23M_23X75MM_PUMPACTION = new MongoId( + "5e848cc2988a8701445df1e8" + ); + public static readonly MongoId SHOTGUN_TOZ106_20GA_BOLTACTION = new MongoId( + "5a38e6bac4a2826c6e06d79b" + ); + public static readonly MongoId SIGNALPISTOL_ZID_SP81_26X75_SIGNAL_PISTOL = new MongoId( + "620109578d82e67e7911abf2" + ); + public static readonly MongoId SILENCER_9A91_9X39_SOUND_SUPPRESSOR = new MongoId( + "64527a3a7da7133e5a09ca99" + ); + public static readonly MongoId SILENCER_AAC_762SDN6_MULTICALIBER_SOUND_SUPPRESSOR = new MongoId( + "5a34fe59c4a282000b1521a2" + ); + public static readonly MongoId SILENCER_AAC_ILLUSION_9_9X19_SOUND_SUPPRESSOR = new MongoId( + "5c7e8fab2e22165df16b889b" + ); + public static readonly MongoId SILENCER_AI_338_LM_TACTICAL_SOUND_MODERATOR = new MongoId( + "62811fa609427b40ab14e765" + ); + public static readonly MongoId SILENCER_AK_HEXAGON_DTKP_MK2_762X39_SOUND_SUPPRESSOR = + new MongoId("5e208b9842457a4a7a33d074"); + public static readonly MongoId SILENCER_AK12_545X39_SOUND_SUPPRESSOR = new MongoId( + "64c196ad26a15b84aa07132f" + ); + public static readonly MongoId SILENCER_AK74_HEXAGON_545X39_SOUND_SUPPRESSOR = new MongoId( + "593d493f86f7745e6b2ceb22" + ); + public static readonly MongoId SILENCER_AK74_HEXAGON_WAFFLEMAKER_545X39_SOUND_SUPPRESSOR = + new MongoId("615d8f8567085e45ef1409ca"); + public static readonly MongoId SILENCER_AK74_TGPA_545X39_SOUND_SUPPRESSOR = new MongoId( + "564caa3d4bdc2d17108b458e" + ); + public static readonly MongoId SILENCER_AKM_HEXAGON_762X39_SOUND_SUPPRESSOR = new MongoId( + "593d489686f7745c6255d58a" + ); + public static readonly MongoId SILENCER_AKM_PBS1_762X39_SOUND_SUPPRESSOR = new MongoId( + "5a0d63621526d8dba31fe3bf" + ); + public static readonly MongoId SILENCER_AKM_ZENIT_DTK4M_762X39_SOUND_SUPPRESSOR = new MongoId( + "59fb257e86f7742981561852" + ); + public static readonly MongoId SILENCER_AKS74U_PBS4_545X39_SOUND_SUPPRESSOR = new MongoId( + "57ffb0e42459777d047111c5" + ); + public static readonly MongoId SILENCER_ALPHA_DOG_ALPHA_9_9X19_SOUND_SUPPRESSOR = new MongoId( + "5a33a8ebc4a282000c5a950d" + ); + public static readonly MongoId SILENCER_APB_9X18PM_SOUND_SUPPRESSOR = new MongoId( + "5abcc328d8ce8700194394f3" + ); + public static readonly MongoId SILENCER_AR15_GRIFFIN_ARMAMENT_M4SDK_556X45_SOUND_SUPPRESSOR = + new MongoId("638612b607dfed1ccb7206ba"); + public static readonly MongoId SILENCER_AS_VAL_9X39_INTEGRAL_BARRELSUPPRESSOR = new MongoId( + "57c44dd02459772d2e0ae249" + ); + public static readonly MongoId SILENCER_ASE_UTRA_SL7IBL_BORELOCK_338_LM_SOUND_SUPPRESSOR = + new MongoId("673f0a38259f5945d70e43a6"); + public static readonly MongoId SILENCER_ASH12_127X55_SOUND_SUPPRESSOR = new MongoId( + "5caf187cae92157c28402e43" + ); + public static readonly MongoId SILENCER_AWC_THOR_PSR_XL_MULTICALIBER_SOUND_SUPPRESSOR = + new MongoId("63877c99e785640d436458ea"); + public static readonly MongoId SILENCER_CGS_HEKATE_DT_338_LM_SOUND_SUPPRESSOR = new MongoId( + "673f0b36536d64240f01acd6" + ); + public static readonly MongoId SILENCER_CO_HYBRID_46_MULTICALIBER_SOUND_SUPPRESSOR = + new MongoId("59bffbb386f77435b379b9c2"); + public static readonly MongoId SILENCER_CO_OMEGA_45K_45_ACP_SOUND_SUPPRESSOR = new MongoId( + "5fc4b9b17283c4046c5814d7" + ); + public static readonly MongoId SILENCER_CO_OSPREY_9_9X19_SOUND_SUPPRESSOR = new MongoId( + "5a32a064c4a28200741e22de" + ); + public static readonly MongoId SILENCER_CO_SAKER_ASR_556_556X45_SOUND_SUPPRESSOR = new MongoId( + "60926df0132d4d12c81fd9df" + ); + public static readonly MongoId SILENCER_CO_SALVO_12_12GA_SOUND_SUPPRESSOR = new MongoId( + "5b363dd25acfc4001a598fd2" + ); + public static readonly MongoId SILENCER_CO_SPARROW_22_SOUND_SUPPRESSOR = new MongoId( + "54490a4d4bdc2dbc018b4573" + ); + public static readonly MongoId SILENCER_DANIEL_DEFENSE_WAVE_QD_SOUND_SUPPRESSOR = new MongoId( + "5cff9e84d7ad1a049e54ed55" + ); + public static readonly MongoId SILENCER_FN_P90_ATTENUATOR_57X28_SOUND_SUPPRESSOR = new MongoId( + "5cebec00d7f00c065c53522a" + ); + public static readonly MongoId SILENCER_GEMTECH_ONE_MULTICALIBER_SOUND_SUPPRESSOR = new MongoId( + "5c7955c22e221644f31bfd5e" + ); + public static readonly MongoId SILENCER_GEMTECH_SFN57_57X28_SOUND_SUPPRESSOR = new MongoId( + "5d3ef698a4b9361182109872" + ); + public static readonly MongoId SILENCER_GLOCK_9X19_FISCHER_DEVELOPMENT_FD917_SOUND_SUPPRESSOR = + new MongoId("5a7ad74e51dfba0015068f45"); + public static readonly MongoId SILENCER_HEXAGON_12K_12GA_SOUND_SUPPRESSOR = new MongoId( + "59c0ec5b86f77435b128bfca" + ); + public static readonly MongoId SILENCER_HK_G28_BT_QD_762X51_SOUND_SUPPRESSOR = new MongoId( + "6171367e1cb55961fa0fdb36" + ); + public static readonly MongoId SILENCER_HK_MP5SD_9X19_SOUND_SUPPRESSOR = new MongoId( + "5926d33d86f77410de68ebc0" + ); + public static readonly MongoId SILENCER_HK_MP7_BT_ROTEX_2_46X30_SOUND_SUPPRESSOR = new MongoId( + "5ba26ae8d4351e00367f9bdb" + ); + public static readonly MongoId SILENCER_HK_UMP_BT_OEM_45_ACP_SOUND_SUPPRESSOR = new MongoId( + "6130c4d51cb55961fa0fd49f" + ); + public static readonly MongoId SILENCER_KAC_PRSQDC_762X51_SOUND_SUPPRESSOR = new MongoId( + "5dfa3d2b0dee1b22f862eade" + ); + public static readonly MongoId SILENCER_KAC_QDC_556X45_SOUND_SUPPRESSOR = new MongoId( + "626673016f1edc06f30cf6d5" + ); + public static readonly MongoId SILENCER_KAC_QDC_65X35_SOUND_SUPPRESSOR = new MongoId( + "55d617094bdc2d89028b4568" + ); + public static readonly MongoId SILENCER_KAC_QDSS_NT4_556X45_SOUND_SUPPRESSOR_BLACK = + new MongoId("57da93632459771cb65bf83f"); + public static readonly MongoId SILENCER_KAC_QDSS_NT4_556X45_SOUND_SUPPRESSOR_FDE = new MongoId( + "57dbb57e2459774673234890" + ); + public static readonly MongoId SILENCER_MCXSPEAR_SLX68MGQD_68X51_SOUND_SUPPRESSOR = new MongoId( + "652911e650dc782999054b9d" + ); + public static readonly MongoId SILENCER_MOSIN_RIFLE_BRAMIT_762X54R_SOUND_SUPPRESSOR = + new MongoId("5b86a0e586f7745b600ccb23"); + public static readonly MongoId SILENCER_MP9_9X19_SOUND_SUPPRESSOR = new MongoId( + "5de8f2d5b74cd90030650c72" + ); + public static readonly MongoId SILENCER_MPX_9X19_RONIN_ARMS_12_INCH_SD_SUPPRESSOR = new MongoId( + "676149d8e889e1972605d6be" + ); + public static readonly MongoId SILENCER_MPX_9X19_RONIN_ARMS_8_INCH_SD_SUPPRESSOR = new MongoId( + "676149c5062e6212f5058c36" + ); + public static readonly MongoId SILENCER_MPXSD_9X19_INTEGRATED_SOUND_SUPPRESSOR = new MongoId( + "58aeac1b86f77457c419f475" + ); + public static readonly MongoId SILENCER_PB_9X18PM_SOUND_SUPPRESSOR = new MongoId( + "56e05b06d2720bb2668b4586" + ); + public static readonly MongoId SILENCER_PL15_9X19_SOUND_SUPPRESSOR = new MongoId( + "602a97060ddce744014caf6f" + ); + public static readonly MongoId SILENCER_PP1901_VITYAZ_9X19_SOUND_SUPPRESSOR = new MongoId( + "59bfc5c886f7743bf6794e62" + ); + public static readonly MongoId SILENCER_PP9101_KEDRB_9X18PM_SOUND_SUPPRESSOR = new MongoId( + "57f3c8cc2459773ec4480328" + ); + public static readonly MongoId SILENCER_ROTOR_43_366_TKM_SOUND_SUPPRESSOR = new MongoId( + "5a9fbb74a2750c0032157181" + ); + public static readonly MongoId SILENCER_ROTOR_43_556X45_SOUND_SUPPRESSOR = new MongoId( + "5a9fbb84a2750c00137fa685" + ); + public static readonly MongoId SILENCER_ROTOR_43_762X39_SOUND_SUPPRESSOR = new MongoId( + "5a9fbacda2750c00141e080f" + ); + public static readonly MongoId SILENCER_ROTOR_43_762X54R_SOUND_SUPPRESSOR = new MongoId( + "5e01ea19e9dc277128008c0b" + ); + public static readonly MongoId SILENCER_ROTOR_43_9X19_SOUND_SUPPRESSOR = new MongoId( + "5a9fb739a2750c003215717f" + ); + public static readonly MongoId SILENCER_SAKO_TRG_PGM_PRECISION_338_LM_SOUND_SUPPRESSOR = + new MongoId("673f0a9370a3ddcf0d0ee0b8"); + public static readonly MongoId SILENCER_SIG_SAUER_SRD762QD_762X51_SOUND_SUPPRESSOR = + new MongoId("5fbe760793164a5b6278efc8"); + public static readonly MongoId SILENCER_SIG_SAUER_SRD762TI_762X51_SOUND_SUPPRESSOR = + new MongoId("5fbe7618d6fa9c00c571bb6c"); + public static readonly MongoId SILENCER_SIG_SAUER_SRD9_9X19_SOUND_SUPPRESSOR = new MongoId( + "5c6165902e22160010261b28" + ); + public static readonly MongoId SILENCER_SKS_HEXAGON_762X39_SOUND_SUPPRESSOR = new MongoId( + "593d490386f7745ee97a1555" + ); + public static readonly MongoId SILENCER_SR1MP_9X21_SOUND_SUPPRESSOR = new MongoId( + "5a27b6bec4a282000e496f78" + ); + public static readonly MongoId SILENCER_SR2M_9X21_SV1381_SOUND_SUPPRESSOR = new MongoId( + "62e2a7138e1ac9380579c122" + ); + public static readonly MongoId SILENCER_SR3M_9X39_SOUND_SUPPRESSOR = new MongoId( + "65144ff50e00edc79406836f" + ); + public static readonly MongoId SILENCER_STEYR_AUG_ASE_UTRA_S_SERIES_SL7I_556X45_SOUND_SUPPRESSOR = + new MongoId("634eba08f69c710e0108d386"); + public static readonly MongoId SILENCER_STEYR_AUG_RELFEX_T4AUG_RANGER_556X45_SOUND_SUPPRESSOR = + new MongoId("630f2982cdb9e392db0cbcc7"); + public static readonly MongoId SILENCER_SUREFIRE_SOCOM556MINI_MONSTER_556X45_SOUND_SUPPRESSOR = + new MongoId("55d6190f4bdc2d87028b4567"); + public static readonly MongoId SILENCER_SUREFIRE_SOCOM556MONSTER_556X45_SOUND_SUPPRESSOR = + new MongoId("55d614004bdc2d86028b4568"); + public static readonly MongoId SILENCER_SUREFIRE_SOCOM556RC2_556X45_SOUND_SUPPRESSOR = + new MongoId("5ea17bbc09aa976f2e7a51cd"); + public static readonly MongoId SILENCER_SV98_762X54R_SOUND_SUPPRESSOR = new MongoId( + "5c4eecc32e221602b412b440" + ); + public static readonly MongoId SILENCER_THUNDER_BEAST_ARMS_ULTRA_5_SOUND_SUPPRESSOR = + new MongoId("5d44064fa4b9361e4f6eb8b5"); + public static readonly MongoId SILENCER_TT_762X25_MAKESHIFT_SOUND_SUPPRESSOR = new MongoId( + "571a28e524597720b4066567" + ); + public static readonly MongoId SILENCER_UZI_9X19_SOUND_SUPPRESSOR = new MongoId( + "66993733f74fef4dfd0b04ff" + ); + public static readonly MongoId SILENCER_VPO101_ROTOR_43_762X51_SOUND_SUPPRESSOR = new MongoId( + "5f63407e1b231926f2329f15" + ); + public static readonly MongoId SILENCER_VSS_9X39_INTEGRAL_BARRELSUPPRESSOR = new MongoId( + "57838c962459774a1651ec63" + ); + public static readonly MongoId SMG_BT_MP9_9X19_SUBMACHINE_GUN = new MongoId( + "5e00903ae9dc277128008b87" + ); + public static readonly MongoId SMG_BT_MP9N_9X19_SUBMACHINE_GUN = new MongoId( + "5de7bd7bfd6b4e6e2276dc25" + ); + public static readonly MongoId SMG_FN_P90_57X28_SUBMACHINE_GUN = new MongoId( + "5cc82d76e24e8d00134b4b83" + ); + public static readonly MongoId SMG_HK_MP5_9X19_SUBMACHINE_GUN_NAVY_3_ROUND_BURST = new MongoId( + "5926bb2186f7744b1c6c6e60" + ); + public static readonly MongoId SMG_HK_MP5K_9X19_SUBMACHINE_GUN = new MongoId( + "5d2f0d8048f0356c925bc3b0" + ); + public static readonly MongoId SMG_HK_MP7A1_46X30_SUBMACHINE_GUN = new MongoId( + "5ba26383d4351e00334c93d9" + ); + public static readonly MongoId SMG_HK_MP7A2_46X30_SUBMACHINE_GUN = new MongoId( + "5bd70322209c4d00d7167b8f" + ); + public static readonly MongoId SMG_HK_UMP_45_ACP_SUBMACHINE_GUN = new MongoId( + "5fc3e272f8b6a877a729eac5" + ); + public static readonly MongoId SMG_IWI_UZI_9X19_SUBMACHINE_GUN = new MongoId( + "66992b349950f5f4cd06029f" + ); + public static readonly MongoId SMG_IWI_UZI_PRO_PISTOL_9X19_SUBMACHINE_GUN = new MongoId( + "6680304edadb7aa61d00cef0" + ); + public static readonly MongoId SMG_IWI_UZI_PRO_SMG_9X19_SUBMACHINE_GUN = new MongoId( + "668e71a8dadf42204c032ce1" + ); + public static readonly MongoId SMG_PP1901_VITYAZ_9X19_SUBMACHINE_GUN = new MongoId( + "59984ab886f7743e98271174" + ); + public static readonly MongoId SMG_PP9_KLIN_9X18PMM_SUBMACHINE_GUN = new MongoId( + "57f4c844245977379d5c14d1" + ); + public static readonly MongoId SMG_PP91_KEDR_9X18PM_SUBMACHINE_GUN = new MongoId( + "57d14d2524597714373db789" + ); + public static readonly MongoId SMG_PP9101_KEDRB_9X18PM_SUBMACHINE_GUN = new MongoId( + "57f3c6bd24597738e730fa2f" + ); + public static readonly MongoId SMG_PPSH41_762X25_SUBMACHINE_GUN = new MongoId( + "5ea03f7400685063ec28bfa8" + ); + public static readonly MongoId SMG_SAIGA9_9X19_CARBINE = new MongoId( + "59f9cabd86f7743a10721f46" + ); + public static readonly MongoId SMG_SIG_MPX_9X19_SUBMACHINE_GUN = new MongoId( + "58948c8e86f77409493f7266" + ); + public static readonly MongoId SMG_SOYUZTM_STM9_GEN2_9X19_CARBINE = new MongoId( + "60339954d62c9b14ed777c06" + ); + public static readonly MongoId SMG_SR2M_VERESK_9X21_SUBMACHINE_GUN = new MongoId( + "62e14904c2699c0ec93adc47" + ); + public static readonly MongoId SMG_TDI_KRISS_VECTOR_GEN2_45_ACP_SUBMACHINE_GUN = new MongoId( + "5fb64bc92b1b027b1f50bcf2" + ); + public static readonly MongoId SMG_TDI_KRISS_VECTOR_GEN2_9X19_SUBMACHINE_GUN = new MongoId( + "5fc3f2d5900b1d5091531e57" + ); + public static readonly MongoId SNIPERRIFLE_ACCURACY_INTERNATIONAL_AXMC_338_LM_BOLTACTION_SNIPER_RIFLE = + new MongoId("627e14b21713922ded6f2c15"); + public static readonly MongoId SNIPERRIFLE_LOBAEV_ARMS_DVL10_762X51_BOLTACTION_SNIPER_RIFLE = + new MongoId("588892092459774ac91d4b11"); + public static readonly MongoId SNIPERRIFLE_MOLOT_ARMS_VPO215_GORNOSTAY_366_TKM_BOLTACTION_RIFLE = + new MongoId("5de652c31b7e3716273428be"); + public static readonly MongoId SNIPERRIFLE_MOSIN_762X54R_BOLTACTION_RIFLE_INFANTRY = + new MongoId("5bfd297f0db834001a669119"); + public static readonly MongoId SNIPERRIFLE_MOSIN_762X54R_BOLTACTION_RIFLE_SNIPER = new MongoId( + "5ae08f0a5acfc408fb1398a1" + ); + public static readonly MongoId SNIPERRIFLE_ORSIS_T5000M_762X51_BOLTACTION_SNIPER_RIFLE = + new MongoId("5df24cf80dee1b22f862e9bc"); + public static readonly MongoId SNIPERRIFLE_REMINGTON_MODEL_700_762X51_BOLTACTION_SNIPER_RIFLE = + new MongoId("5bfea6e90db834001b7347f3"); + public static readonly MongoId SNIPERRIFLE_SAKO_TRG_M10_338_LM_BOLTACTION_SNIPER_RIFLE = + new MongoId("673cab3e03c6a20581028bc1"); + public static readonly MongoId SNIPERRIFLE_SV98_762X54R_BOLTACTION_SNIPER_RIFLE = new MongoId( + "55801eed4bdc2d89578b4588" + ); + public static readonly MongoId SORTINGTABLE_SORTING_TABLE = new MongoId( + "602543c13fee350cd564d032" + ); + public static readonly MongoId SPECIALSCOPE_ARMASIGHT_VULCAN_MG_35X_BRAVO_NIGHT_VISION_SCOPE = + new MongoId("5b3b6e495acfc4330140bd88"); + public static readonly MongoId SPECIALSCOPE_ARMASIGHT_ZEUSPRO_640_28X50_30HZ_THERMAL_SCOPE = + new MongoId("63fc44e2429a8a166c7f61e6"); + public static readonly MongoId SPECIALSCOPE_CYCLONE_SHAKHIN_37X_THERMAL_SCOPE = new MongoId( + "67641b461c2eb66ade05dba6" + ); + public static readonly MongoId SPECIALSCOPE_FLIR_RS32_2259X_35MM_60HZ_THERMAL_RIFLESCOPE = + new MongoId("5d1b5e94d7ad1a2b865a96b0"); + public static readonly MongoId SPECIALSCOPE_MP155_ULTIMA_THERMAL_CAMERA = new MongoId( + "606f2696f2cb2e02a42aceb1" + ); + public static readonly MongoId SPECIALSCOPE_NSPUM_35X_DOVETAIL_NIGHT_VISION_SCOPE = new MongoId( + "5a7c74b3e899ef0014332c29" + ); + public static readonly MongoId SPECIALSCOPE_SIG_SAUER_ECHO1_12X30MM_30HZ_THERMAL_REFLEX_SCOPE = + new MongoId("6478641c19d732620e045e17"); + public static readonly MongoId SPECIALSCOPE_TORREY_PINES_LOGIC_T12W_30HZ_THERMAL_REFLEX_SIGHT = + new MongoId("609bab8b455afd752b2e6138"); + public static readonly MongoId SPECIALSCOPE_TRIJICON_REAPIR_THERMAL_SCOPE = new MongoId( + "5a1eaa87fcdbcb001865f75e" + ); + public static readonly MongoId SPECITEM_IMP_MINE_DETECTOR = new MongoId( + "5af056f186f7746da511291f" + ); + public static readonly MongoId SPECITEM_MS2000_MARKER = new MongoId("5991b51486f77447b112d44f"); + public static readonly MongoId SPECITEM_RADIO_REPEATER = new MongoId( + "63a0b2eabea67a6d93009e52" + ); + public static readonly MongoId SPECITEM_SIGNAL_JAMMER = new MongoId("5ac78a9b86f7741cca0bbd8d"); + public static readonly MongoId SPECITEM_THE_EYE_MORTAR_STRIKE_SIGNALING_DEVICE = new MongoId( + "6655e35b6bc645cb7b059912" + ); + public static readonly MongoId SPECITEM_WIFI_CAMERA = new MongoId("5b4391a586f7745321235ab2"); + public static readonly MongoId STASH_10X300 = new MongoId("5c0a596086f7747bef5731c2"); + public static readonly MongoId STASH_EDGE_OF_DARKNESS_STASH_10X68 = new MongoId( + "5811ce772459770e9e5f9532" + ); + public static readonly MongoId STASH_LEFT_BEHIND_STASH_10X40 = new MongoId( + "5811ce572459770cba1a34ea" + ); + public static readonly MongoId STASH_PREPARE_FOR_ESCAPE_STASH_10X50 = new MongoId( + "5811ce662459770f6f490f32" + ); + public static readonly MongoId STASH_QUESTOFFLINE = new MongoId("5963866b86f7747bfa1c4462"); + public static readonly MongoId STASH_QUESTRAID = new MongoId("5963866286f7747bf429b572"); + public static readonly MongoId STASH_STANDARD_STASH_10X30 = new MongoId( + "566abbc34bdc2d92178b4576" + ); + public static readonly MongoId STASH_THE_UNHEARD_EDITION_STASH_10X72 = new MongoId( + "6602bcf19cc643f44a04274b" + ); + public static readonly MongoId STATIONARYCONTAINER_DRAWER = new MongoId( + "5675838d4bdc2d95058b456e" + ); + public static readonly MongoId STIM_2A2BTG_STIMULANT_INJECTOR = new MongoId( + "66507eabf5ddb0818b085b68" + ); + public static readonly MongoId STIM_3BTG_STIMULANT_INJECTOR = new MongoId( + "5ed515c8d380ab312177c0fa" + ); + public static readonly MongoId STIM_ADRENALINE_INJECTOR = new MongoId( + "5c10c8fd86f7743d7d706df3" + ); + public static readonly MongoId STIM_AHF1M_STIMULANT_INJECTOR = new MongoId( + "5ed515f6915ec335206e4152" + ); + public static readonly MongoId STIM_ETGCHANGE_REGENERATIVE_STIMULANT_INJECTOR = new MongoId( + "5c0e534186f7747fa1419867" + ); + public static readonly MongoId STIM_L1_NOREPINEPHRINE_INJECTOR = new MongoId( + "5ed515e03a40a50460332579" + ); + public static readonly MongoId STIM_MELDONIN_INJECTOR = new MongoId("5ed5160a87bb8443d10680b5"); + public static readonly MongoId STIM_MULE_STIMULANT_INJECTOR = new MongoId( + "5ed51652f6c34d2cc26336a1" + ); + public static readonly MongoId STIM_OBDOLBOS_2_COCKTAIL_INJECTOR = new MongoId( + "637b60c3b7afa97bfc3d7001" + ); + public static readonly MongoId STIM_OBDOLBOS_COCKTAIL_INJECTOR = new MongoId( + "5ed5166ad380ab312177c100" + ); + public static readonly MongoId STIM_P22_PRODUCT_22_STIMULANT_INJECTOR = new MongoId( + "5ed515ece452db0eb56fc028" + ); + public static readonly MongoId STIM_PERFOTORAN_BLUE_BLOOD_STIMULANT_INJECTOR = new MongoId( + "637b6251104668754b72f8f9" + ); + public static readonly MongoId STIM_PNB_PRODUCT_16_STIMULANT_INJECTOR = new MongoId( + "637b6179104668754b72f8f5" + ); + public static readonly MongoId STIM_PROPITAL_REGENERATIVE_STIMULANT_INJECTOR = new MongoId( + "5c0e530286f7747fa1419862" + ); + public static readonly MongoId STIM_SJ1_TGLABS_COMBAT_STIMULANT_INJECTOR = new MongoId( + "5c0e531286f7747fa54205c2" + ); + public static readonly MongoId STIM_SJ12_TGLABS_COMBAT_STIMULANT_INJECTOR = new MongoId( + "637b612fb7afa97bfc3d7005" + ); + public static readonly MongoId STIM_SJ6_TGLABS_COMBAT_STIMULANT_INJECTOR = new MongoId( + "5c0e531d86f7747fa23f4d42" + ); + public static readonly MongoId STIM_SJ9_TGLABS_COMBAT_STIMULANT_INJECTOR = new MongoId( + "5fca13ca637ee0341a484f46" + ); + public static readonly MongoId STIM_TRIMADOL_STIMULANT_INJECTOR = new MongoId( + "637b620db7afa97bfc3d7009" + ); + public static readonly MongoId STIM_XTG12_ANTIDOTE_INJECTOR = new MongoId( + "5fca138c2a7b221b2852a5c6" + ); + public static readonly MongoId STIM_ZAGUSTIN_HEMOSTATIC_DRUG_INJECTOR = new MongoId( + "5c0e533786f7747fa23f4d47" + ); + public static readonly MongoId STOCK_9A91_TOPFOLDING = new MongoId("6451167ad4928d46d30be3fd"); + public static readonly MongoId STOCK_AA12_STOCK_ASSEMBLY = new MongoId( + "66ffac9e316b08f6840a73e6" + ); + public static readonly MongoId STOCK_AA12_STOCK_ASSEMBLY_FDE = new MongoId( + "670fd23798663bc4b10e911a" + ); + public static readonly MongoId STOCK_AA12_STOCK_ASSEMBLY_TERRAGROUP = new MongoId( + "6719023b612cc94b9008e78c" + ); + public static readonly MongoId STOCK_AI_AXMC_AX_BUTT = new MongoId("62811f828193841aca4a45c3"); + public static readonly MongoId STOCK_AI_AXMC_GTAC_ARTYPE_PISTOL_GRIP_ADAPTER = new MongoId( + "62811e335631d45211793c95" + ); + public static readonly MongoId STOCK_AI_AXMC_PISTOL_GRIP = new MongoId( + "62811e2510e26c1f344e6554" + ); + public static readonly MongoId STOCK_AK_100SERIES_METAL_SKELETONIZED = new MongoId( + "6386300124a1dc425c00577a" + ); + public static readonly MongoId STOCK_AK_AKEVO = new MongoId("6761779c48fa5c377e06fc3f"); + public static readonly MongoId STOCK_AK_CUSTOM_ARMS_STEF_74_SKELETON_STOCK_EXTENSION = + new MongoId("6494094948796d891603e59f"); + public static readonly MongoId STOCK_AK_GP25_ACCESSORY_KIT_RECOIL_PAD = new MongoId( + "5a0c59791526d8dba737bba7" + ); + public static readonly MongoId STOCK_AK_SKELETONIZED_STOCK_CUSTOMIZED = new MongoId( + "66ac9d9740e27931602042d4" + ); + public static readonly MongoId STOCK_AK_ZENIT_PT1_KLASSIKA = new MongoId( + "5b222d405acfc400153af4fe" + ); + public static readonly MongoId STOCK_AK_ZENIT_PT3_KLASSIKA = new MongoId( + "59ecc3dd86f7746dc827481c" + ); + public static readonly MongoId STOCK_AK12 = new MongoId("5beec8c20db834001d2c465c"); + public static readonly MongoId STOCK_AK12_BUFFER_TUBE = new MongoId("649ec87d8007560a9001ab36"); + public static readonly MongoId STOCK_AK545_BUFFER_TUBE = new MongoId( + "628b9a40717774443b15e9f2" + ); + public static readonly MongoId STOCK_AK74_POLYMER = new MongoId("5649b0fc4bdc2d17108b4588"); + public static readonly MongoId STOCK_AK74_POLYMER_STOCK_PLUM = new MongoId( + "5cbdb1b0ae9215000d50e105" + ); + public static readonly MongoId STOCK_AK74_WOODEN = new MongoId("5649b1c04bdc2d16268b457c"); + public static readonly MongoId STOCK_AK74M_CAA_AKTS_AK74_BUFFER_TUBE = new MongoId( + "5cf50fc5d7f00c056c53f83c" + ); + public static readonly MongoId STOCK_AK74M_POLYMER = new MongoId("5ac50c185acfc400163398d4"); + public static readonly MongoId STOCK_AK74MAK100_ZENIT_PT_LOCK = new MongoId( + "5ac78eaf5acfc4001926317a" + ); + public static readonly MongoId STOCK_AKM_WOODEN = new MongoId("59d6514b86f774171a068a08"); + public static readonly MongoId STOCK_AKMAK74_CAA_AKTS_BUFFER_TUBE = new MongoId( + "5cf518cfd7f00c065b422214" + ); + public static readonly MongoId STOCK_AKMAK74_FAB_DEFENSE_UAS = new MongoId( + "5b04473a5acfc40018632f70" + ); + public static readonly MongoId STOCK_AKMAK74_HERA_ARMS_CQR47_PISTOL_GRIPBUTT = new MongoId( + "619b69037b9de8162902673e" + ); + public static readonly MongoId STOCK_AKMAK74_HEXAGON_KOCHERGA_STOCK_ANODIZED_RED = new MongoId( + "5e217ba4c1434648c13568cd" + ); + public static readonly MongoId STOCK_AKMAK74_MAGPUL_ZHUKOVS = new MongoId( + "5b0e794b5acfc47a877359b2" + ); + public static readonly MongoId STOCK_AKMAK74_ME4_BUFFER_TUBE_ADAPTER = new MongoId( + "5649b2314bdc2d79388b4576" + ); + public static readonly MongoId STOCK_AKMAK74_PROMAG_ARCHANGEL_OPFOR_AA47_BUTT = new MongoId( + "6087e2a5232e5a31c233d552" + ); + public static readonly MongoId STOCK_AKMAK74_RD_AK_TO_M4_BUFFER_TUBE_ADAPTER = new MongoId( + "628a6678ccaab13006640e49" + ); + public static readonly MongoId STOCK_AKMAK74_ZENIT_PT_LOCK = new MongoId( + "5b222d335acfc4771e1be099" + ); + public static readonly MongoId STOCK_AKMS_FAB_DEFENSE_M4AKMS_P_STOCK_ADAPTER = new MongoId( + "6761763448fa5c377e06fc39" + ); + public static readonly MongoId STOCK_AKMS_FOLDING = new MongoId("59ff3b6a86f77477562ff5ed"); + public static readonly MongoId STOCK_AKMSN_FOLDING = new MongoId("5abcd472d8ce8700166032ae"); + public static readonly MongoId STOCK_AKS74_SKELETONIZED = new MongoId( + "5ab626e4d8ce87272e4c6e43" + ); + public static readonly MongoId STOCK_AKS74AKS74U_ZENIT_PT_LOCK = new MongoId( + "59ecc28286f7746d7a68aa8c" + ); + public static readonly MongoId STOCK_AKS74U_SKELETONIZED = new MongoId( + "57dc347d245977596754e7a1" + ); + public static readonly MongoId STOCK_APB_DETACHABLE_WIRE = new MongoId( + "5a17fb9dfcdbcbcae6687291" + ); + public static readonly MongoId STOCK_AR15_ADAR_215_BUFFER_TUBE = new MongoId( + "5c0faeddd174af02a962601f" + ); + public static readonly MongoId STOCK_AR15_ADAR_215_WOODEN = new MongoId( + "5c0e2ff6d174af02a1659d4a" + ); + public static readonly MongoId STOCK_AR15_B5_SYSTEMS_COLLAPSIBLE_PRECISION = new MongoId( + "5fc2369685fd526b824a5713" + ); + public static readonly MongoId STOCK_AR15_CMMG_BUFFER_TUBE = new MongoId( + "606587e18900dc2d9a55b65f" + ); + public static readonly MongoId STOCK_AR15_CMMG_RIPSTOCK_BUTT = new MongoId( + "606587d11246154cad35d635" + ); + public static readonly MongoId STOCK_AR15_COLT_A2_BUFFER_TUBE = new MongoId( + "5a33ca0fc4a282000d72292f" + ); + public static readonly MongoId STOCK_AR15_COLT_CARBINE_BUFFER_TUBE = new MongoId( + "5649be884bdc2d79388b4577" + ); + public static readonly MongoId STOCK_AR15_DANIEL_DEFENSE_ENHANCED_COLLAPSIBLE_BUTTSTOCK_BLACK = + new MongoId("6516e91f609aaf354b34b3e2"); + public static readonly MongoId STOCK_AR15_DANIEL_DEFENSE_ENHANCED_COLLAPSIBLE_BUTTSTOCK_FDE = + new MongoId("6516e971a3d4c6497930b450"); + public static readonly MongoId STOCK_AR15_DOUBLESTAR_ACE_ARFX_SKELETON = new MongoId( + "6761777a1f08ed5e8800b7ac" + ); + public static readonly MongoId STOCK_AR15_DOUBLESTAR_ACE_SOCOM_GEN4 = new MongoId( + "5d120a10d7ad1a4e1026ba85" + ); + public static readonly MongoId STOCK_AR15_ERGO_F93_PRO = new MongoId( + "5b0800175acfc400153aebd4" + ); + public static readonly MongoId STOCK_AR15_FAB_DEFENSE_GLCORE_BUTT = new MongoId( + "602e620f9b513876d4338d9a" + ); + public static readonly MongoId STOCK_AR15_FAB_DEFENSE_GLR16S = new MongoId( + "5bfe86df0db834001b734685" + ); + public static readonly MongoId STOCK_AR15_FAB_DEFENSE_GLSHOCK_BUTT = new MongoId( + "5a9eb32da2750c00171b3f9c" + ); + public static readonly MongoId STOCK_AR15_HERA_ARMS_CQR_PISTOL_GRIPBUTT = new MongoId( + "5a33e75ac4a2826c6e06d759" + ); + public static readonly MongoId STOCK_AR15_HIGH_STANDARD_M4SS = new MongoId( + "55d4ae6c4bdc2d8b2f8b456e" + ); + public static readonly MongoId STOCK_AR15_HK_E1_BUTT = new MongoId("5c87a07c2e2216001219d4a2"); + public static readonly MongoId STOCK_AR15_HK_SLIM_LINE_BUTT = new MongoId( + "5bb20e70d4351e0035629f8f" + ); + public static readonly MongoId STOCK_AR15_KRISS_DEFIANCE_DS150_STOCK_BLACK = new MongoId( + "5fbbaa86f9986c4cff3fe5f6" + ); + public static readonly MongoId STOCK_AR15_KRISS_DEFIANCE_DS150_STOCK_FDE = new MongoId( + "5fce16961f152d4312622bc9" + ); + public static readonly MongoId STOCK_AR15_LMT_SOPMOD = new MongoId("5ae30c9a5acfc408fb139a03"); + public static readonly MongoId STOCK_AR15_MAGPUL_CTR_CARBINE_STOCK_BLACK = new MongoId( + "5d135e83d7ad1a21b83f42d8" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_CTR_CARBINE_STOCK_FDE = new MongoId( + "5d135ecbd7ad1a21c176542e" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_MOE_CARBINE_STOCK_BLACK = new MongoId( + "56eabf3bd2720b75698b4569" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_MOE_CARBINE_STOCK_FDE = new MongoId( + "58d2946386f774496974c37e" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_MOE_CARBINE_STOCK_FOLIAGE_GREEN = new MongoId( + "58d2946c86f7744e271174b5" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_MOE_CARBINE_STOCK_OLIVE_DRAB = new MongoId( + "58d2947686f774485c6a1ee5" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_MOE_CARBINE_STOCK_STEALTH_GREY = new MongoId( + "58d2947e86f77447aa070d53" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_MOE_SLK_BUTTSTOCK_COYOTE_TAN = new MongoId( + "6529370c405a5f51dd023db8" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_PRS_GEN2_STOCK_FDE = new MongoId( + "5a33cae9c4a28232980eb086" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_PRS_GEN3_STOCK_BLACK = new MongoId( + "5d44069ca4b9361ebd26fc37" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_PRS_GEN3_STOCK_GREY = new MongoId( + "5d4406a8a4b9361e4f6eb8b7" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_UBR_GEN2_STOCK_BLACK = new MongoId( + "5947e98b86f774778f1448bc" + ); + public static readonly MongoId STOCK_AR15_MAGPUL_UBR_GEN2_STOCK_FDE = new MongoId( + "5947eab886f77475961d96c5" + ); + public static readonly MongoId STOCK_AR15_MFT_BUS = new MongoId("5947c73886f7747701588af5"); + public static readonly MongoId STOCK_AR15_RTM_ATP_BUFFER_TUBE = new MongoId( + "638de3603a1a4031d8260b8c" + ); + public static readonly MongoId STOCK_AR15_SB_TACTICAL_SBA3_BRACE = new MongoId( + "628a85ee6b1d481ff772e9d5" + ); + public static readonly MongoId STOCK_AR15_SOYUZTM_BUFFER_TUBE = new MongoId( + "602e3f1254072b51b239f713" + ); + public static readonly MongoId STOCK_AR15_STRIKE_INDUSTRIES_ADVANCED_RECEIVER_EXTENSION_BUFFER_TUBE = + new MongoId("5c793fb92e221644f31bfb64"); + public static readonly MongoId STOCK_AR15_STRIKE_INDUSTRIES_ADVANCED_RECEIVER_EXTENSION_BUFFER_TUBE_ANODIZED_RED = + new MongoId("5c793fc42e221600114ca25d"); + public static readonly MongoId STOCK_AR15_STRIKE_INDUSTRIES_VIPER_MOD_1 = new MongoId( + "5c793fde2e221601da358614" + ); + public static readonly MongoId STOCK_AR15_STRIKE_INDUSTRIES_VIPER_PDW = new MongoId( + "627254cc9c563e6e442c398f" + ); + public static readonly MongoId STOCK_AR15_TROY_M7A1_PDW_STOCK_BLACK = new MongoId( + "591aef7986f774139d495f03" + ); + public static readonly MongoId STOCK_AR15_TROY_M7A1_PDW_STOCK_FDE = new MongoId( + "591af10186f774139d495f0e" + ); + public static readonly MongoId STOCK_AR15_VLTOR_EMOD = new MongoId("5b39f8db5acfc40016387a1b"); + public static readonly MongoId STOCK_ARMACON_BASKAK = new MongoId("57ade1442459771557167e15"); + public static readonly MongoId STOCK_AS_VAL_SKELETON = new MongoId("57c450252459772d28133253"); + public static readonly MongoId STOCK_AVT40_WOODEN = new MongoId("6410745d5dd49d77bd078485"); + public static readonly MongoId STOCK_BENELLI_M3_MESA_TACTICAL_URBINO = new MongoId( + "625eb0faa6e3a82193267ad9" + ); + public static readonly MongoId STOCK_BENELLI_M3_TELESCOPIC = new MongoId( + "6259c3387d6aab70bc23a18d" + ); + public static readonly MongoId STOCK_CNC_GUNS_OVSV98_M12B = new MongoId( + "624c29ce09cd027dff2f8cd7" + ); + public static readonly MongoId STOCK_DANIEL_DEFENSE_TCS_12MM_BUTTPAD = new MongoId( + "6516e9bc5901745209404287" + ); + public static readonly MongoId STOCK_DANIEL_DEFENSE_TCS_20MM_BUTTPAD = new MongoId( + "6516e9d7e239bd0c487e3766" + ); + public static readonly MongoId STOCK_DOUBLESTAR_ACE_RECOIL_PAD = new MongoId( + "5d120a28d7ad1a1c8962e295" + ); + public static readonly MongoId STOCK_DVL10_LOBAEV_ARMS = new MongoId( + "58889d0c2459775bc215d981" + ); + public static readonly MongoId STOCK_FAB_DEFENSE_BUFFER_TUBE_FOR_AGR870 = new MongoId( + "5bfe89510db834001808a127" + ); + public static readonly MongoId STOCK_FN_P90 = new MongoId("5cc700b9e4a949000f0f0f25"); + public static readonly MongoId STOCK_FN_P90_BUTTPAD = new MongoId("5cc700cae4a949035e43ba72"); + public static readonly MongoId STOCK_FN_P90_DAMAGE_INDUSTRIES_BUTTPAD = new MongoId( + "5cc700d4e4a949000f0f0f28" + ); + public static readonly MongoId STOCK_FN_PS90 = new MongoId("5cebec10d7f00c065703d185"); + public static readonly MongoId STOCK_FN_SCAR_CHEEK_REST = new MongoId( + "618167441cb55961fa0fdc71" + ); + public static readonly MongoId STOCK_FN_SCAR_CHEEK_REST_FDE = new MongoId( + "61825d24d3a39d50044c13af" + ); + public static readonly MongoId STOCK_FN_SCAR_FOLDING_POLYMER = new MongoId( + "61816734d8e3106d9806c1f3" + ); + public static readonly MongoId STOCK_FN_SCAR_FOLDING_POLYMER_STOCK_FDE = new MongoId( + "61825d06d92c473c770215de" + ); + public static readonly MongoId STOCK_FN_SCAR_JMAC_CUSTOMS_RSASCAR_1913_ADAPTER = new MongoId( + "66ffc246a81a4f85e70d4d06" + ); + public static readonly MongoId STOCK_FN_SCAR_RETRACTABLE_POLYMER = new MongoId( + "618167528004cc50514c34f9" + ); + public static readonly MongoId STOCK_FN_SCAR_RETRACTABLE_POLYMER_STOCK_FDE = new MongoId( + "61825d136ef05c2ce828f1cc" + ); + public static readonly MongoId STOCK_FN_SCAR_RUBBER_BUTTPAD = new MongoId( + "618167616ef05c2ce828f1a8" + ); + public static readonly MongoId STOCK_FN_SCAR_VLTOR_RESCAR_STOCK_ADAPTER = new MongoId( + "66ffbfb1a73a7bce3d0b45a8" + ); + public static readonly MongoId STOCK_FN_SCAR_VLTOR_RESCAR_STOCK_ADAPTER_PATRIOT_BROWN = + new MongoId("66ffc20ba73a7bce3d0b45ab"); + public static readonly MongoId STOCK_FN_SCAR_VLTOR_VSS11_POLYMER = new MongoId( + "66ffc2bd132225f0fe0611d8" + ); + public static readonly MongoId STOCK_FN_SCAR_VLTOR_VSS11_POLYMER_STOCK_PATRIOT_BROWN = + new MongoId("66ffc2ecfe9b3825960652f7"); + public static readonly MongoId STOCK_GLOCK_FAB_DEFENSE_GLR17 = new MongoId( + "5d1c702ad7ad1a632267f429" + ); + public static readonly MongoId STOCK_HK_416_ENHANCED_BUFFER_TUBE = new MongoId( + "5bb20e58d4351e00320205d7" + ); + public static readonly MongoId STOCK_HK_ADJUSTABLE_BUTTSTOCK_CHEEK_REST = new MongoId( + "61715e7e67085e45ef140b33" + ); + public static readonly MongoId STOCK_HK_G28_BUFFER_TUBE = new MongoId( + "617153016c780c1e710c9a2f" + ); + public static readonly MongoId STOCK_HK_G36_IDZ_ADJUSTABLE = new MongoId( + "67110d06723c2733410161e8" + ); + public static readonly MongoId STOCK_HK_G36_IDZ_CONCAVE_BUTTPAD = new MongoId( + "67110d6fa71d1f123d021cd3" + ); + public static readonly MongoId STOCK_HK_G36_IDZ_CONVEX_BUTTPAD = new MongoId( + "67110d5ed1758189fc0bd221" + ); + public static readonly MongoId STOCK_HK_G36_KV_ADJUSTABLE = new MongoId( + "622f14e899892a7f9e08f6c5" + ); + public static readonly MongoId STOCK_HK_G36_POLYMER = new MongoId("622f140da5958f63c67f1735"); + public static readonly MongoId STOCK_HK_G36_TOMMY_BUILT_AR_STOCK_ADAPTER = new MongoId( + "6706a159c67236b2f703bb95" + ); + public static readonly MongoId STOCK_HK_MP5_A2 = new MongoId("5926d3c686f77410de68ebc8"); + public static readonly MongoId STOCK_HK_MP5_A3_OLD_MODEL = new MongoId( + "5926d40686f7740f152b6b7e" + ); + public static readonly MongoId STOCK_HK_MP5_END_CAP = new MongoId("5c07c9660db834001a66b588"); + public static readonly MongoId STOCK_HK_MP5K_END_CAP = new MongoId("5d2f25bc48f03502573e5d85"); + public static readonly MongoId STOCK_HK_MP7A1 = new MongoId("5bcf0213d4351e0085327c17"); + public static readonly MongoId STOCK_HK_MP7A2 = new MongoId("5bd704e7209c4d00d7167c31"); + public static readonly MongoId STOCK_HK_UMP_POLYMER = new MongoId("5fc3e4ee7283c4046c5814af"); + public static readonly MongoId STOCK_HK417_ADJUSTABLE_BUTT = new MongoId( + "617155ee50224f204c1da3cd" + ); + public static readonly MongoId STOCK_HK417_E2_BUTT = new MongoId("617154aa1cb55961fa0fdb3b"); + public static readonly MongoId STOCK_KRISS_VECTOR_GEN2_FOLDING = new MongoId( + "5fb6558ad6f0b2136f2d7eb7" + ); + public static readonly MongoId STOCK_KRISS_VECTOR_NONFOLDING_STOCK_ADAPTER = new MongoId( + "5fb655b748c711690e3a8d5a" + ); + public static readonly MongoId STOCK_KRISS_VECTOR_PISTOL_SLING_ADAPTER = new MongoId( + "5fb655a72b1b027b1f50bd06" + ); + public static readonly MongoId STOCK_KS23_WOODEN = new MongoId("5e848db4681bea2ada00daa9"); + public static readonly MongoId STOCK_KS23M_WIRE = new MongoId("5e848dc4e4dbc5266a4ec63d"); + public static readonly MongoId STOCK_M14_SAGE_INTERNATIONAL_M14ALCS_CHASSIS = new MongoId( + "5addc7005acfc4001669f275" + ); + public static readonly MongoId STOCK_M14_SAGE_INTERNATIONAL_M14ALCS_MOD0 = new MongoId( + "5addc7ac5acfc400194dbd90" + ); + public static readonly MongoId STOCK_M14_TROY_SASS_CHASSIS = new MongoId( + "5ab372a310e891001717f0d8" + ); + public static readonly MongoId STOCK_M1A_PROMAG_ARCHANGEL_CHASSIS = new MongoId( + "5addbf175acfc408fb13965b" + ); + public static readonly MongoId STOCK_M1A_SOCOM_16 = new MongoId("5aaf8e43e5b5b00015693246"); + public static readonly MongoId STOCK_M60E4_BUTT = new MongoId("660126161347bc1a5f0f4dba"); + public static readonly MongoId STOCK_M60E6_BUTT = new MongoId("6615202b96461aa8360271eb"); + public static readonly MongoId STOCK_M60E6_BUTTSTOCK_FDE = new MongoId( + "661520fb6f8e1a96340afaa6" + ); + public static readonly MongoId STOCK_M700_AB_ARMS_MODX_BUFFER_TUBE_ADAPTER = new MongoId( + "5cde77a9d7f00c000f261009" + ); + public static readonly MongoId STOCK_M700_AB_ARMS_MODX_GEN_3_CHASSIS = new MongoId( + "5cde739cd7f00c0010373bd3" + ); + public static readonly MongoId STOCK_M700_AI_AT_AICS_POLYMER_CHASSIS = new MongoId( + "5d25d0ac8abbc3054f3e61f7" + ); + public static readonly MongoId STOCK_M700_HOGUE_OVERMOLDED_GHILLIE = new MongoId( + "5bfeb32b0db834001a6694d9" + ); + public static readonly MongoId STOCK_M700_MAGPUL_PRO_700_CHASSIS = new MongoId( + "5cdeac22d7f00c000f26168f" + ); + public static readonly MongoId STOCK_M700_MAGPUL_PRO_700_FOLDING = new MongoId( + "5cdeac42d7f00c000d36ba73" + ); + public static readonly MongoId STOCK_M700_PROMAG_ARCHANGEL_CHASSIS = new MongoId( + "5cf13123d7f00c1085616a50" + ); + public static readonly MongoId STOCK_M870_MAGPUL_SGA_POLYMER = new MongoId( + "5a78813bc5856700186c4abe" + ); + public static readonly MongoId STOCK_M870_MESA_TACTICAL_LEO_STOCK_ADAPTER = new MongoId( + "5ae35b315acfc4001714e8b0" + ); + public static readonly MongoId STOCK_M870_SHOCKWAVE_RAPTOR_GRIP = new MongoId( + "5a788169c5856700142fdd9e" + ); + public static readonly MongoId STOCK_M870_SPS_POLYMER = new MongoId("5a7880d0c5856700142fdd9d"); + public static readonly MongoId STOCK_MAGPUL_MOE_CARBINE_RUBBER_BUTTPAD = new MongoId( + "58d2912286f7744e27117493" + ); + public static readonly MongoId STOCK_MESA_TACTICAL_CROSSHAIR_HYDRAULIC_BUFFER_TUBE = + new MongoId("5ef1ba28c64c5d0dfc0571a5"); + public static readonly MongoId STOCK_MOSIN_RIFLE_AIM_SPORTS_RECOIL_PAD = new MongoId( + "5bbde409d4351e003562b036" + ); + public static readonly MongoId STOCK_MOSIN_RIFLE_ATI_MONTE_CARLO = new MongoId( + "5bbdb870d4351e00367fb67d" + ); + public static readonly MongoId STOCK_MOSIN_RIFLE_CARBINE = new MongoId( + "5bfd384c0db834001a6691d3" + ); + public static readonly MongoId STOCK_MOSIN_RIFLE_INFANTRY = new MongoId( + "5bfd35380db83400232fe5cc" + ); + public static readonly MongoId STOCK_MOSIN_RIFLE_PROMAG_ARCHANGEL_OPFOR_PRS_CHASSIS = + new MongoId("5bae13bad4351e00320204af"); + public static readonly MongoId STOCK_MOSIN_RIFLE_SAWEDOFF = new MongoId( + "5bfd36ad0db834001c38ef66" + ); + public static readonly MongoId STOCK_MOSIN_RIFLE_SAWEDOFF_SNIPER = new MongoId( + "5bfd36290db834001966869a" + ); + public static readonly MongoId STOCK_MOSIN_RIFLE_SNIPER_CARBINE = new MongoId( + "5bfd37c80db834001d23e842" + ); + public static readonly MongoId STOCK_MOSIN_RIFLE_STANDARD = new MongoId( + "5ae096d95acfc400185c2c81" + ); + public static readonly MongoId STOCK_MOSSBERG_590A1_MAGPUL_SGA = new MongoId( + "5eea217fc64c5d0dfc05712a" + ); + public static readonly MongoId STOCK_MOSSBERG_590A1_MESA_TACTICAL_LEO_GEN1_STOCK_ADAPTER = + new MongoId("5ef1b9f0c64c5d0dfc0571a1"); + public static readonly MongoId STOCK_MOSSBERG_590A1_POLYMER = new MongoId( + "5e87116b81c4ed43e83cefdd" + ); + public static readonly MongoId STOCK_MP133153_PLASTIC = new MongoId("56083be64bdc2d20478b456f"); + public static readonly MongoId STOCK_MP133153_PLASTIC_PISTOL_GRIP = new MongoId( + "56083a334bdc2dc8488b4571" + ); + public static readonly MongoId STOCK_MP133153_WOODEN = new MongoId("56083cba4bdc2de22e8b456f"); + public static readonly MongoId STOCK_MP155_ULTIMA_LARGE_RECOIL_PAD = new MongoId( + "606f263a8900dc2d9a55b68d" + ); + public static readonly MongoId STOCK_MP155_ULTIMA_MEDIUM_RECOIL_PAD = new MongoId( + "606f262c6d0bd7580617bafa" + ); + public static readonly MongoId STOCK_MP155_ULTIMA_POLYMER = new MongoId( + "606eef756d0bd7580617baf8" + ); + public static readonly MongoId STOCK_MP155_ULTIMA_THIN_RECOIL_PAD = new MongoId( + "606ef0812535c57a13424d20" + ); + public static readonly MongoId STOCK_MP155_WALNUT = new MongoId("607d5a891246154cad35d6aa"); + public static readonly MongoId STOCK_MP18_POLYMER = new MongoId("61f803b8ced75b2e852e35f8"); + public static readonly MongoId STOCK_MP18_WOODEN = new MongoId("61f7b234ea4ab34f2f59c3ec"); + public static readonly MongoId STOCK_MP431C_BUTTPAD = new MongoId("611a31ce5b7ffe001b4649d1"); + public static readonly MongoId STOCK_MP9 = new MongoId("5de910da8b6c4240ba2651b5"); + public static readonly MongoId STOCK_MPXMCX_MAXIM_DEFENSE_CQB = new MongoId( + "5c5db6ee2e221600113fba54" + ); + public static readonly MongoId STOCK_MPXMCX_PMM_ULSS = new MongoId("5c5db6f82e2216003a0fe914"); + public static readonly MongoId STOCK_MTS_2001 = new MongoId("5adf23995acfc400185c2aeb"); + public static readonly MongoId STOCK_MTS25512_WOODEN = new MongoId("612781056f3d944a17348d60"); + public static readonly MongoId STOCK_OPSKS_WOODEN = new MongoId("587e0531245977466077a0f7"); + public static readonly MongoId STOCK_ORSIS_T5000M = new MongoId("5df35ddddfc58d14537c2036"); + public static readonly MongoId STOCK_ORSIS_T5000M_ALUMINIUM_BODY = new MongoId( + "5df35e59c41b2312ea3334d5" + ); + public static readonly MongoId STOCK_PK_ZENIT_PT2_KLASSIKA = new MongoId( + "6492d7847363b8a52206bc52" + ); + public static readonly MongoId STOCK_PKM_WOODEN = new MongoId("646371a9f2404ab67905c8e6"); + public static readonly MongoId STOCK_PKP_POLYMER = new MongoId("6492e3a97df7d749100e29ee"); + public static readonly MongoId STOCK_PP1901_VITYAZ_METAL_SKELETON = new MongoId( + "599851db86f77467372f0a18" + ); + public static readonly MongoId STOCK_PPSH41 = new MongoId("5ea03e9400685063ec28bfa4"); + public static readonly MongoId STOCK_RPD_WOODEN = new MongoId("6513f1798cb24472490ee331"); + public static readonly MongoId STOCK_RPK16_BUFFER_TUBE = new MongoId( + "5beec8b20db834001961942a" + ); + public static readonly MongoId STOCK_SA58_BRS = new MongoId("5b7d64555acfc4001876c8e2"); + public static readonly MongoId STOCK_SA58_BUFFER_TUBE_ADAPTER = new MongoId( + "5b099bf25acfc4001637e683" + ); + public static readonly MongoId STOCK_SA58_FOLDING = new MongoId("5b7d63cf5acfc4001876c8df"); + public static readonly MongoId STOCK_SA58_HUMPBACK_POLYMER = new MongoId( + "5b7d645e5acfc400170e2f90" + ); + public static readonly MongoId STOCK_SA58_SPR = new MongoId("5b7d63de5acfc400170e2f8d"); + public static readonly MongoId STOCK_SA58FAL_MAGPUL_PRS_2_POLYMER = new MongoId( + "5b7d63b75acfc400170e2f8a" + ); + public static readonly MongoId STOCK_SAKO_TRG_M10_CHASSIS = new MongoId( + "673cb212e695740be0047a46" + ); + public static readonly MongoId STOCK_SB_TACTICAL_MPX_PISTOL_STABILIZING_BRACE = new MongoId( + "6761496fe2cf1419500357e9" + ); + public static readonly MongoId STOCK_SIG_SAUER_COLLAPSINGTELESCOPING = new MongoId( + "5894a13e86f7742405482982" + ); + public static readonly MongoId STOCK_SIG_SAUER_FOLDING_KNUCKLE_STOCK_ADAPTER = new MongoId( + "58ac1bf086f77420ed183f9f" + ); + public static readonly MongoId STOCK_SIG_SAUER_LOCKING_STOCK_HINGE_ASSEMBLY = new MongoId( + "6529348224cbe3c74a05e5c4" + ); + public static readonly MongoId STOCK_SIG_SAUER_STOCK_ADAPTER_LOW_PROFILE_TUBE_COYOTE_TAN = + new MongoId("6529366450dc782999054ba0"); + public static readonly MongoId STOCK_SIG_SAUER_TELESCOPINGFOLDING = new MongoId( + "5fbcc429900b1d5091531dd7" + ); + public static readonly MongoId STOCK_SIG_SAUER_THIN_SIDEFOLDING = new MongoId( + "5fbcc437d724d907e2077d5c" + ); + public static readonly MongoId STOCK_SKS_ATI_MONTE_CARLO = new MongoId( + "653ecef836fae5a82f02b869" + ); + public static readonly MongoId STOCK_SKS_FAB_DEFENSE_UAS_BUTT = new MongoId( + "653ed132896b99b40a0292e6" + ); + public static readonly MongoId STOCK_SKS_FAB_DEFENSE_UAS_CHASSIS = new MongoId( + "5d0236dad7ad1a0940739d29" + ); + public static readonly MongoId STOCK_SKS_TAPCO_INTRAFUSE_BUFFER_TUBE = new MongoId( + "5afd7e095acfc40017541f61" + ); + public static readonly MongoId STOCK_SKS_TAPCO_INTRAFUSE_CHASSIS = new MongoId( + "5afd7ded5acfc40017541f5e" + ); + public static readonly MongoId STOCK_SKS_TOZ_WOODEN_STOCK_56A231_SB5 = new MongoId( + "574dad8024597745964bf05c" + ); + public static readonly MongoId STOCK_SOK12_AKSTYLE = new MongoId("57616ca52459773c69055192"); + public static readonly MongoId STOCK_SR2M_TOPFOLDING = new MongoId("62e292e7b6c0ee2f230cee00"); + public static readonly MongoId STOCK_SR2MP_TOPFOLDING = new MongoId("62e2969582ebf260c20539c2"); + public static readonly MongoId STOCK_SV98_CNC_GUNS_OVSV98_CHASSIS = new MongoId( + "623b2e9d11c3296b440d1638" + ); + public static readonly MongoId STOCK_SV98_WOODEN = new MongoId("61faa91878830f069b6b7967"); + public static readonly MongoId STOCK_SVDS_LYNX_ARMS_HINGE_BUFFER_TUBE_ADAPTER = new MongoId( + "6197b229af1f5202c57a9bea" + ); + public static readonly MongoId STOCK_SVDS_POLYMER = new MongoId("5c471b5d2e221602b21d4e14"); + public static readonly MongoId STOCK_TOZ106 = new MongoId("5a38ef1fc4a282000b1521f6"); + public static readonly MongoId STOCK_TOZ106_CUSTOM_CUT_MOSIN = new MongoId( + "5c99f3592e221644fc633070" + ); + public static readonly MongoId STOCK_TOZ106_FAB_DEFENSE_GPCP_CHEEK_REST = new MongoId( + "626a8ae89e664a2e2a75f409" + ); + public static readonly MongoId STOCK_UZI_PRO_A3_TACTICAL_MODULAR_FOLDING_BRACE = new MongoId( + "6686717ffb75ee4a5e02eb19" + ); + public static readonly MongoId STOCK_UZI_PRO_A3_TACTICAL_REAR_STOCK_ADAPTER = new MongoId( + "668672b8c99550c6fd0f0b29" + ); + public static readonly MongoId STOCK_UZI_PRO_BACKPLATE = new MongoId( + "66881008f23233ee9a0742e7" + ); + public static readonly MongoId STOCK_UZI_PRO_CSM_STOCK_ADAPTER = new MongoId( + "669cf78806768ff39504fc1c" + ); + public static readonly MongoId STOCK_UZI_PRO_SBR_BUTT = new MongoId("66867310f3734a938b077f79"); + public static readonly MongoId STOCK_UZI_PRO_STABILIZING_BRACE = new MongoId( + "668032ba74b8f2050c0b917d" + ); + public static readonly MongoId STOCK_UZI_STORMWERKZ_STOCK_ADAPTER = new MongoId( + "66992f4db9f31ddda10dd1c8" + ); + public static readonly MongoId STOCK_UZI_TYPE_3_BUTT = new MongoId("6698c9ed36ba38d291017713"); + public static readonly MongoId STOCK_UZI_TYPE_5_BUTT = new MongoId("6699249f3c4fda6471005cba"); + public static readonly MongoId STOCK_UZI_TYPE_6_BUTT = new MongoId("669924a69950f5f4cd060295"); + public static readonly MongoId STOCK_UZI_TYPE_7_BUTT = new MongoId("6698c9e07356874dfe0a0b88"); + public static readonly MongoId STOCK_VPO101_SVDSTYLE_WALNUT = new MongoId( + "5f63405df5750b524b45f114" + ); + public static readonly MongoId STOCK_VPO101_WOODEN = new MongoId("5c503af12e221602b177ca02"); + public static readonly MongoId STOCK_VPO136_VEPRKM_WOODEN = new MongoId( + "59e6227d86f77440d64f5dc2" + ); + public static readonly MongoId STOCK_VPO209_WOODEN = new MongoId("59e89d0986f77427600d226e"); + public static readonly MongoId STOCK_VPO215_WOODEN = new MongoId("5de655be4a9f347bc92edb88"); + public static readonly MongoId STOCK_VSK94 = new MongoId("6452519e3d52156624001fd5"); + public static readonly MongoId STOCK_VSS_WOODEN = new MongoId("578395e82459774a0e553c7b"); + public static readonly MongoId TACTICALCOMBO_BE_MEYERS_MAWLC1_TACTICAL_DEVICE = new MongoId( + "644a3df63b0b6f03e101e065" + ); + public static readonly MongoId TACTICALCOMBO_GLOCK_GTL_21_TACTICAL_FLASHLIGHT_WITH_LASER = + new MongoId("5a800961159bd4315e3a1657"); + public static readonly MongoId TACTICALCOMBO_HOLOSUN_LS321_TACTICAL_DEVICE = new MongoId( + "57fd23e32459772d0805bcf1" + ); + public static readonly MongoId TACTICALCOMBO_INSIGHT_ANPEQ2_TACTICAL_DEVICE = new MongoId( + "5d10b49bd7ad1a1a560708b0" + ); + public static readonly MongoId TACTICALCOMBO_INSIGHT_WMX200_TACTICAL_FLASHLIGHT = new MongoId( + "626becf9582c3e319310b837" + ); + public static readonly MongoId TACTICALCOMBO_L3HARRIS_ANPEQ15_TACTICAL_DEVICE = new MongoId( + "544909bb4bdc2d6f028b4577" + ); + public static readonly MongoId TACTICALCOMBO_L3HARRIS_LA5BPEQ_TACTICAL_DEVICE = new MongoId( + "5c06595c0db834001a66af6c" + ); + public static readonly MongoId TACTICALCOMBO_NCSTAR_TACTICAL_BLUE_LASER = new MongoId( + "5cc9c20cd7f00c001336c65d" + ); + public static readonly MongoId TACTICALCOMBO_OLIGHT_BALDR_PRO_TACTICAL_FLASHLIGHT_WITH_LASER = + new MongoId("6272370ee4013c5d7e31f418"); + public static readonly MongoId TACTICALCOMBO_OLIGHT_BALDR_PRO_TACTICAL_FLASHLIGHT_WITH_LASER_TAN = + new MongoId("6272379924e29f06af4d5ecb"); + public static readonly MongoId TACTICALCOMBO_STEINER_DBALPL_TACTICAL_DEVICE = new MongoId( + "5d2369418abbc306c62e0c80" + ); + public static readonly MongoId TACTICALCOMBO_STEINER_LASTAC_2_TACTICAL_FLASHLIGHT = new MongoId( + "5b07dd285acfc4001754240d" + ); + public static readonly MongoId TACTICALCOMBO_SUREFIRE_X400_ULTRA_TACTICAL_FLASHLIGHT_WITH_LASER = + new MongoId("56def37dd2720bec348b456a"); + public static readonly MongoId TACTICALCOMBO_SUREFIRE_XC1_TACTICAL_FLASHLIGHT = new MongoId( + "5a7b483fe899ef0016170d15" + ); + public static readonly MongoId TACTICALCOMBO_TT_DLP_TACTICAL_PRECISION_LASER_SIGHT = + new MongoId("5c079ed60db834001a66b372"); + public static readonly MongoId TACTICALCOMBO_WILCOX_RAPTAR_ES_TACTICAL_RANGEFINDER = + new MongoId("61605d88ffa6e502ac5e7eeb"); + public static readonly MongoId TACTICALCOMBO_ZENIT_KLESCH2IKS_IR_ILLUMINATOR_WITH_LASER = + new MongoId("5a5f1ce64f39f90b401987bc"); + public static readonly MongoId TACTICALCOMBO_ZENIT_KLESCH2P_FLASHLIGHT_WITH_LASER = new MongoId( + "560d657b4bdc2da74d8b4572" + ); + public static readonly MongoId TACTICALCOMBO_ZENIT_KLESCH2U_TACTICAL_FLASHLIGHT = new MongoId( + "5b3a337e5acfc4704b4a19a0" + ); + public static readonly MongoId TACTICALCOMBO_ZENIT_PERST3_TACTICAL_DEVICE = new MongoId( + "5c5952732e2216398b5abda2" + ); + public static readonly MongoId THERMALVISION_T7_THERMAL_GOGGLES_WITH_A_NIGHT_VISION_MOUNT = + new MongoId("5c110624d174af029e69734c"); + public static readonly MongoId VEST_511_TACTICAL_TACTEC_PLATE_CARRIER_RANGER_GREEN = + new MongoId("5b44cad286f77402a54ae7e5"); + public static readonly MongoId VEST_511_TACTICAL_TACTEC_PLATE_CARRIER_STORM = new MongoId( + "67ab4b2d6f7ae4aa550bbcf6" + ); + public static readonly MongoId VEST_6B3TM01_ARMORED_RIG_KHAKI = new MongoId( + "5d5d646386f7742797261fd9" + ); + public static readonly MongoId VEST_6B515_ZH86_ULEY_ARMORED_RIG_FLORA = new MongoId( + "5c0e446786f7742013381639" + ); + public static readonly MongoId VEST_6B516_ZH86_ULEY_ARMORED_RIG_KHAKI = new MongoId( + "5c0e3eb886f7742015526062" + ); + public static readonly MongoId VEST_ANA_TACTICAL_ALPHA_CHEST_RIG_MULTICAM = new MongoId( + "67ab3ea96d7ece17bf0096f6" + ); + public static readonly MongoId VEST_ANA_TACTICAL_ALPHA_CHEST_RIG_OLIVE_DRAB = new MongoId( + "592c2d1a86f7746dbe2af32a" + ); + public static readonly MongoId VEST_ANA_TACTICAL_M1_PLATE_CARRIER_OLIVE_DRAB = new MongoId( + "5c0e722886f7740458316a57" + ); + public static readonly MongoId VEST_ANA_TACTICAL_M2_PLATE_CARRIER_EMR = new MongoId( + "5ab8dced86f774646209ec87" + ); + public static readonly MongoId VEST_ARS_ARMA_A18_SKANDA_PLATE_CARRIER_MULTICAM = new MongoId( + "5d5d87f786f77427997cfaef" + ); + public static readonly MongoId VEST_ARS_ARMA_CPC_MOD1_PLATE_CARRIER_ATACS_FG = new MongoId( + "5e4ac41886f77406a511c9a8" + ); + public static readonly MongoId VEST_AZIMUT_SS_KHAMELION_CHEST_HARNESS_OLIVE = new MongoId( + "63611865ba5b90db0c0399d1" + ); + public static readonly MongoId VEST_AZIMUT_SS_ZHUK_CHEST_HARNESS_BLACK = new MongoId( + "603648ff5a45383c122086ac" + ); + public static readonly MongoId VEST_AZIMUT_SS_ZHUK_CHEST_HARNESS_SURPAT = new MongoId( + "6040dd4ddcf9592f401632d2" + ); + public static readonly MongoId VEST_BLACKHAWK_COMMANDO_CHEST_HARNESS_BLACK = new MongoId( + "5c0e9f2c86f77432297fe0a3" + ); + public static readonly MongoId VEST_BLACKHAWK_COMMANDO_CHEST_HARNESS_DESERT_TAN = new MongoId( + "5b44c8ea86f7742d1627baf1" + ); + public static readonly MongoId VEST_BLACKROCK_CHEST_RIG_GRAY = new MongoId( + "5648a69d4bdc2ded0b8b457b" + ); + public static readonly MongoId VEST_BLACKROCK_CHEST_RIG_KHAKI = new MongoId( + "67ab3f146d7ece17bf0096ff" + ); + public static readonly MongoId VEST_CQC_OSPREY_MK4A_PLATE_CARRIER_ASSAULT_MTP = new MongoId( + "60a3c70cde5f453f634816a3" + ); + public static readonly MongoId VEST_CQC_OSPREY_MK4A_PLATE_CARRIER_PROTECTION_MTP = new MongoId( + "60a3c68c37ea821725773ef5" + ); + public static readonly MongoId VEST_CRYE_PRECISION_AVS_PLATE_CARRIER_MULTICAM = new MongoId( + "67ab49aab9c7a1e18c095686" + ); + public static readonly MongoId VEST_CRYE_PRECISION_AVS_PLATE_CARRIER_RANGER_GREEN = new MongoId( + "544a5caa4bdc2d1a388b4568" + ); + public static readonly MongoId VEST_CRYE_PRECISION_AVS_PLATE_CARRIER_TAGILLA_EDITION = + new MongoId("609e860ebd219504d8507525"); + public static readonly MongoId VEST_CRYE_PRECISION_CPC_PLATE_CARRIER_GOONS_EDITION = + new MongoId("628b9c7d45122232a872358f"); + public static readonly MongoId VEST_CSA_CHEST_RIG_BLACK = new MongoId( + "6034d0230ca681766b6a0fb5" + ); + public static readonly MongoId VEST_DIRECT_ACTION_THUNDERBOLT_COMPACT_CHEST_RIG_SHADOW_GREY = + new MongoId("5f5f41f56760b4138443b352"); + public static readonly MongoId VEST_DIY_IDEA_CHEST_RIG = new MongoId( + "5fd4c4fa16cac650092f6771" + ); + public static readonly MongoId VEST_DYNAFORCE_TRITON_M43A_CHEST_HARNESS_BLACK = new MongoId( + "5ca20abf86f77418567a43f2" + ); + public static readonly MongoId VEST_EAGLE_ALLIED_INDUSTRIES_MBSS_PLATE_CARRIER_COYOTE_BROWN = + new MongoId("64a5366719bab53bd203bf33"); + public static readonly MongoId VEST_EAGLE_INDUSTRIES_MMAC_PLATE_CARRIER_RANGER_GREEN = + new MongoId("61bc85697113f767765c7fe7"); + public static readonly MongoId VEST_ECLIPSE_RBAVAF_PLATE_CARRIER_RANGER_GREEN = new MongoId( + "628dc750b910320f4c27a732" + ); + public static readonly MongoId VEST_FIRSTSPEAR_STRANDHOGG_PLATE_CARRIER_RANGER_GREEN = + new MongoId("61bcc89aef0f505f0c6cd0fc"); + public static readonly MongoId VEST_GEAR_CRAFT_GCBSSMK1_CHEST_RIG_ATACS_FG = new MongoId( + "5fd4c60f875c30179f5d04c2" + ); + public static readonly MongoId VEST_HALEY_STRATEGIC_D3CRX_CHEST_HARNESS_RANGER_GREEN = + new MongoId("5d5d85c586f774279a21cbdb"); + public static readonly MongoId VEST_LBT1961A_LOAD_BEARING_CHEST_RIG_GOONS_EDITION = new MongoId( + "628baf0b967de16aab5a4f36" + ); + public static readonly MongoId VEST_LBT1961A_LOAD_BEARING_CHEST_RIG_MAS_GREY = new MongoId( + "5e9db13186f7742f845ee9d3" + ); + public static readonly MongoId VEST_NPP_KLASS_BAGARIY_PLATE_CARRIER_EMR = new MongoId( + "628d0618d1ba6e4fa07ce5a4" + ); + public static readonly MongoId VEST_POYASA_POYASB_GEAR_RIG = new MongoId( + "5c0e6a1586f77404597b4965" + ); + public static readonly MongoId VEST_SCAV = new MongoId("572b7adb24597762ae139821"); + public static readonly MongoId VEST_SECURITY = new MongoId("5fd4c5477a8d854fa0105061"); + public static readonly MongoId VEST_SHELLBACK_TACTICAL_BANSHEE_PLATE_CARRIER_ATACS_AU = + new MongoId("639343fce101f4caa40a4ef3"); + public static readonly MongoId VEST_SOE_MICRO_RIG_MULTICAM = new MongoId( + "5d5d8ca986f7742798716522" + ); + public static readonly MongoId VEST_SPIRITUS_SYSTEMS_BANK_ROBBER_CHEST_RIG_MULTICAM_ALPINE = + new MongoId("674589d98dd67746010329e6"); + public static readonly MongoId VEST_SPIRITUS_SYSTEMS_BANK_ROBBER_CHEST_RIG_MULTICAM_BLACK = + new MongoId("5e4abc1f86f774069619fbaa"); + public static readonly MongoId VEST_SPLAV_TARZAN_M22_CHEST_RIG_SMOG = new MongoId( + "5e4abfed86f77406a2713cf7" + ); + public static readonly MongoId VEST_SS_PRECISION_PLATEFRAME_PLATE_CARRIER_GOONS_EDITION = + new MongoId("628b9784bcf6e2659e09b8a2"); + public static readonly MongoId VEST_STICH_PROFI_CHEST_RIG_MK2_ASSAULT_ATACS_FG = new MongoId( + "60a621c49c197e4e8c4455e6" + ); + public static readonly MongoId VEST_STICH_PROFI_CHEST_RIG_MK2_RECON_ATACS_FG = new MongoId( + "60a6220e953894617404b00a" + ); + public static readonly MongoId VEST_STICH_PROFI_PLATE_CARRIER_V2_BLACK = new MongoId( + "66b6296d7994640992013b17" + ); + public static readonly MongoId VEST_STICH_PROFI_STICH_DEFENSE_MOD2_PLATE_CARRIER_MULTICAM = + new MongoId("66b6295178bbc0200425f995"); + public static readonly MongoId VEST_TASMANIAN_TIGER_PLATE_CARRIER_MKIII_COYOTE_BROWN = + new MongoId("66b6295a8ca68c6461709efa"); + public static readonly MongoId VEST_TASMANIAN_TIGER_SK_PLATE_CARRIER_MULTICAM_BLACK = + new MongoId("628cd624459354321c4b7fa2"); + public static readonly MongoId VEST_TYPE_56_CHICOM_CHEST_HARNESS = new MongoId( + "64be7110bf597ba84a0a41ea" + ); + public static readonly MongoId VEST_UMKA_M33SET1_HUNTER_VEST_OLIVE_DRAB = new MongoId( + "6034cf5fffd42c541047f72e" + ); + public static readonly MongoId VEST_UMTBS_6SH112_SCOUTSNIPER_CHEST_RIG_EMR = new MongoId( + "5929a2a086f7744f4b234d43" + ); + public static readonly MongoId VEST_VELOCITY_SYSTEMS_MPPV_MULTIPURPOSE_PATROL_VEST_WOLF_GREY = + new MongoId("5df8a42886f77412640e2e75"); + public static readonly MongoId VEST_WARTECH_MK3_TV104_CHEST_RIG_MULTICAM = new MongoId( + "5ab8dab586f77441cd04f2a2" + ); + public static readonly MongoId VEST_WARTECH_TV109_TV106_CHEST_RIG_ATACS_FG = new MongoId( + "59e7643b86f7742cbf2c109a" + ); + public static readonly MongoId VEST_WARTECH_TV110_PLATE_CARRIER_COYOTE = new MongoId( + "5c0e746986f7741453628fe5" + ); + public static readonly MongoId VEST_WARTECH_TV115_PLATE_CARRIER_OLIVE_DRAB = new MongoId( + "64a536392d2c4e6e970f4121" + ); + public static readonly MongoId VEST_ZULU_NYLON_GEAR_M4_REDUCED_SIGNATURE_CHEST_RIG_RANGER_GREEN = + new MongoId("64be7095047e826eae02b0c1"); + public static readonly MongoId VISORS_6B34_ANTIFRAGMENTATION_GLASSES = new MongoId( + "5b432be65acfc433000ed01f" + ); + public static readonly MongoId VISORS_ANTIFRAGMENTATION_GLASSES = new MongoId( + "59e770b986f7742cbd762754" + ); + public static readonly MongoId VISORS_DUNDUKK_SPORT_SUNGLASSES = new MongoId( + "5aa2b986e5b5b00014028f4c" + ); + public static readonly MongoId VISORS_DUNDUKK_SPORT_SUNGLASSES_ORANGE_LENSES = new MongoId( + "67af41dd1eb308667602db4a" + ); + public static readonly MongoId VISORS_ESS_CROSSBOW_TACTICAL_GLASSES = new MongoId( + "5d5fca1ea4b93635fd598c07" + ); + public static readonly MongoId VISORS_GAS_WELDER_SAFETY_GOGGLES = new MongoId( + "61c18d83b00456371a66814b" + ); + public static readonly MongoId VISORS_JOHNB_LIQUID_DNB_GLASSES = new MongoId( + "62a09e410b9d3c46de5b6e78" + ); + public static readonly MongoId VISORS_NPP_KLASS_CONDOR_GLASSES = new MongoId( + "603409c80ca681766b6a0fb2" + ); + public static readonly MongoId VISORS_OAKLEY_SI_BATWOLF_GLASSES = new MongoId( + "62a61c988ec41a51b34758d5" + ); + public static readonly MongoId VISORS_OAKLEY_SI_GASCAN_GLASSES = new MongoId( + "5d6d2e22a4b9361bd5780d05" + ); + public static readonly MongoId VISORS_OAKLEY_SI_M_FRAME_SAFETY_GLASSES = new MongoId( + "5c1a1cc52e221602b3136e3d" + ); + public static readonly MongoId VISORS_OAKLEY_SI_M_FRAME_SAFETY_GLASSES_ORANGE_LENSES = + new MongoId("67af42942676ade5750b50e8"); + public static readonly MongoId VISORS_PYRAMEX_PROXIMITY_SAFETY_GLASSES = new MongoId( + "5c0d32fcd174af02a1659c75" + ); + public static readonly MongoId VISORS_RAYBENCH_AVIATOR_GLASSES = new MongoId( + "5d6d2ef3a4b93618084f58bd" + ); + public static readonly MongoId VISORS_RAYBENCH_AVIATOR_GLASSES_GREEN_LENSES = new MongoId( + "67af425c2676ade5750b50e6" + ); + public static readonly MongoId VISORS_RAYBENCH_HIPSTER_RESERVE_SUNGLASSES = new MongoId( + "5aa2b9aee5b5b00015693121" + ); + public static readonly MongoId VISORS_ROUND_FRAME_SUNGLASSES = new MongoId( + "5aa2b923e5b5b000137b7589" + ); + public static readonly MongoId VISORS_ROUND_FRAME_SUNGLASSES_GREEN_LENSES = new MongoId( + "67af42b38d9ef5c57e0d5126" + ); + public static readonly MongoId VISORS_TACTICAL_GLASSES = new MongoId( + "557ff21e4bdc2d89578b4586" + ); + public static readonly MongoId VISORS_TWITCH_RIVALS_2020_GLASSES = new MongoId( + "5e71f70186f77429ee09f183" + ); } diff --git a/Libraries/SPTarkov.Server.Core/Models/Enums/Money.cs b/Libraries/SPTarkov.Server.Core/Models/Enums/Money.cs index a8c9ca5e..573dd584 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Enums/Money.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Enums/Money.cs @@ -8,12 +8,12 @@ public record Money [JsonExtensionData] public Dictionary? ExtensionData { get; set; } - public static readonly MongoId ROUBLES = new MongoId("5449016a4bdc2d6f028b456f"); - public static readonly MongoId EUROS = new MongoId("569668774bdc2da2298b4568"); - public static readonly MongoId DOLLARS = new MongoId("5696686a4bdc2da3298b456a"); - public static readonly MongoId GP = new MongoId("5d235b4d86f7742e017bc88a"); + public static readonly MongoId ROUBLES = new("5449016a4bdc2d6f028b456f"); + public static readonly MongoId EUROS = new("569668774bdc2da2298b4568"); + public static readonly MongoId DOLLARS = new("5696686a4bdc2da3298b456a"); + public static readonly MongoId GP = new("5d235b4d86f7742e017bc88a"); - public static HashSet GetMoneyTpls() + public static HashSet GetMoneyTpls() { return [ROUBLES, EUROS, DOLLARS, GP]; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Enums/Weapons.cs b/Libraries/SPTarkov.Server.Core/Models/Enums/Weapons.cs index 54112120..7b399839 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Enums/Weapons.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Enums/Weapons.cs @@ -1,166 +1,368 @@ +using SPTarkov.Server.Core.Models.Common; + // This is an auto generated file, do not modify. Re-generate by running ItemTplGenerator.exe public static class Weapons { - public const string ASSAULTCARBINE_762X39_OP_SKS = "587e02ff24597743df3deaeb"; - public const string ASSAULTCARBINE_762X39_SKS = "574d967124597745970e7c94"; - public const string ASSAULTCARBINE_762X51_VPO_101_VEPR_HUNTER = "5c501a4d2e221602b412b540"; - public const string ASSAULTCARBINE_762X54R_AVT_40 = "6410733d5dd49d77bd07847e"; - public const string ASSAULTCARBINE_762X54R_SVT_40 = "643ea5b23db6f9f57107d9fd"; - public const string ASSAULTCARBINE_9X39_9A_91 = "644674a13d52156624001fbc"; - public const string ASSAULTCARBINE_9X39_AS_VAL = "57c44b372459772d2b39b8ce"; - public const string ASSAULTCARBINE_9X39_SR_3M = "651450ce0e00edc794068371"; - public const string ASSAULTCARBINE_9X39_VSK_94 = "645e0c6b3b381ede770e1cc9"; - public const string ASSAULTRIFLE_127X55_ASH_12 = "5cadfbf7ae92152ac412eeef"; - public const string ASSAULTRIFLE_366TKM_VPO_209 = "59e6687d86f77411d949b251"; - public const string ASSAULTRIFLE_545X39_AK_105 = "5ac66d9b5acfc4001633997a"; - public const string ASSAULTRIFLE_545X39_AK_12 = "6499849fc93611967b034949"; - public const string ASSAULTRIFLE_545X39_AK_545 = "628b5638ad252a16da6dd245"; - public const string ASSAULTRIFLE_545X39_AK_545_SHORT = "628b9c37a733087d0d7fe84b"; - public const string ASSAULTRIFLE_545X39_AK_74 = "5bf3e03b0db834001d2c4a9c"; - public const string ASSAULTRIFLE_545X39_AK_74M = "5ac4cd105acfc40016339859"; - public const string ASSAULTRIFLE_545X39_AK_74N = "5644bd2b4bdc2d3b4c8b4572"; - public const string ASSAULTRIFLE_545X39_AKS_74 = "5bf3e0490db83400196199af"; - public const string ASSAULTRIFLE_545X39_AKS_74N = "5ab8e9fcd8ce870019439434"; - public const string ASSAULTRIFLE_545X39_AKS_74U = "57dc2fa62459775949412633"; - public const string ASSAULTRIFLE_545X39_AKS_74UB = "5839a40f24597726f856b511"; - public const string ASSAULTRIFLE_545X39_AKS_74UN = "583990e32459771419544dd2"; - public const string ASSAULTRIFLE_556X45_ADAR_2_15 = "5c07c60e0db834002330051f"; - public const string ASSAULTRIFLE_556X45_AK_101 = "5ac66cb05acfc40198510a10"; - public const string ASSAULTRIFLE_556X45_AK_102 = "5ac66d015acfc400180ae6e4"; - public const string ASSAULTRIFLE_556X45_AUG_A1 = "62e7c4fba689e8c9c50dfc38"; - public const string ASSAULTRIFLE_556X45_AUG_A3 = "63171672192e68c5460cebc5"; - public const string ASSAULTRIFLE_556X45_AUG_A3_BLACK = "6718817435e3cfd9550d2c27"; - public const string ASSAULTRIFLE_556X45_G36 = "623063e994fc3f7b302a9696"; - public const string ASSAULTRIFLE_556X45_HK_416A5 = "5bb2475ed4351e00853264e3"; - public const string ASSAULTRIFLE_556X45_M4A1 = "5447a9cd4bdc2dbd208b4567"; - public const string ASSAULTRIFLE_556X45_MDR = "5c488a752e221602b412af63"; - public const string ASSAULTRIFLE_556X45_MK_16 = "6184055050224f204c1da540"; - public const string ASSAULTRIFLE_556X45_MK_16_FDE = "618428466ef05c2ce828f218"; - public const string ASSAULTRIFLE_556X45_TX_15_DML = "5d43021ca4b9362eab4b5e25"; - public const string ASSAULTRIFLE_68X51_SPEAR_68 = "65290f395ae2ae97b80fdf2d"; - public const string ASSAULTRIFLE_762X35_MCX_300_BLK = "5fbcc1d9016cce60e8341ab3"; - public const string ASSAULTRIFLE_762X35_VELOCIRAPTOR_300_BLK = "674d6121c09f69dfb201a888"; - public const string ASSAULTRIFLE_762X39_AK_103 = "5ac66d2e5acfc43b321d4b53"; - public const string ASSAULTRIFLE_762X39_AK_104 = "5ac66d725acfc43b321d4b60"; - public const string ASSAULTRIFLE_762X39_AKM = "59d6088586f774275f37482f"; - public const string ASSAULTRIFLE_762X39_AKMN = "5a0ec13bfcdbcb00165aa685"; - public const string ASSAULTRIFLE_762X39_AKMS = "59ff346386f77477562ff5e2"; - public const string ASSAULTRIFLE_762X39_AKMSN = "5abcbc27d8ce8700182eceeb"; - public const string ASSAULTRIFLE_762X39_MK47 = "606587252535c57a13424cfd"; - public const string ASSAULTRIFLE_762X39_RD_704 = "628a60ae6b1d481ff772e9c8"; - public const string ASSAULTRIFLE_762X39_VPO_136_VEPR_KM = "59e6152586f77473dc057aa1"; - public const string ASSAULTRIFLE_762X51_MDR = "5dcbd56fdbd3d91b3e5468d5"; - public const string ASSAULTRIFLE_762X51_MK_17 = "6183afd850224f204c1da514"; - public const string ASSAULTRIFLE_762X51_MK_17_FDE = "6165ac306ef05c2ce828ef74"; - public const string ASSAULTRIFLE_762X51_SA58 = "5b0bbe4e5acfc40dc528a72d"; - public const string ASSAULTRIFLE_762X51_X_17 = "676176d362e0497044079f4c"; - public const string ASSAULTRIFLE_9X18PM_MASTER_HAND = "5ae083b25acfc4001a5fc702"; - public const string FLARE_26X75_BLUE = "66d98233302686954b0c6f81"; - public const string FLARE_26X75_FIREWORK = "675ea3d6312c0a5c4e04e317"; - public const string FLARE_26X75_FLARE_WHITE = "62178be9d0050232da3485d9"; - public const string FLARE_26X75_GREEN = "6217726288ed9f0845317459"; - public const string FLARE_26X75_RED = "62178c4d4ecf221597654e3d"; - public const string FLARE_26X75_S_YELLOW_SPECIAL_YELLOW = "66d9f1abb16d9aacf5068468"; - public const string FLARE_26X75_YELLOW = "624c0b3340357b5f566e8766"; - public const string GRENADELAUNCHER_40MMRU_FN40GL = "639af924d0446708ee62294e"; - public const string GRENADELAUNCHER_40X46_FN40GL = "5e81ebcd8e146c7080625e15"; - public const string GRENADELAUNCHER_40X46_FN40GL_2 = "639c3fbbd0446708ee622ee9"; - public const string MACHINEGUN_30X29_AGS_30 = "5d52cc5ba4b9367408500062"; - public const string MACHINEGUN_545X39_NSV_UTYOS = "5cdeb229d7f00c000e7ce174"; - public const string MACHINEGUN_545X39_RPK_16 = "5beed0f50db834001c062b12"; - public const string MACHINEGUN_762X39_RPD = "6513ef33e06849f06c0957ca"; - public const string MACHINEGUN_762X39_RPDN = "65268d8ecb944ff1e90ea385"; - public const string MACHINEGUN_762X51_M60E6 = "661ceb1b9311543c7104149b"; - public const string MACHINEGUN_762X51_M60E6_FDE = "661cec09b2c6356b4d0c7a36"; - public const string MACHINEGUN_762X51_MK_43_MOD_1 = "65fb023261d5829b2d090755"; - public const string MACHINEGUN_762X54R_PKM = "64637076203536ad5600c990"; - public const string MACHINEGUN_762X54R_PKP = "64ca3d3954fc657e230529cc"; - public const string MACHINEGUN_762X54R_PKTM = "657857faeff4c850222dff1b"; - public const string MARKSMANRIFLE_762X51_G28 = "6176aca650224f204c1da3fb"; - public const string MARKSMANRIFLE_762X51_M1A = "5aafa857e5b5b00018480968"; - public const string MARKSMANRIFLE_762X51_RFB = "5f2a9575926fd9352339381f"; - public const string MARKSMANRIFLE_762X51_RSASS = "5a367e5dc4a282000e49738f"; - public const string MARKSMANRIFLE_762X51_SR_25 = "5df8ce05b11454561e39243b"; - public const string MARKSMANRIFLE_762X54R_SVDS = "5c46fbd72e2216398b5a8c9c"; - public const string MARKSMANRIFLE_86X70_MK_18_MJLNIR = "5fc22d7c187fea44d52eda44"; - public const string MARKSMANRIFLE_9X39_VSS_VINTOREZ = "57838ad32459774a17445cd2"; - public const string PISTOL_127X33_DESERT_EAGLE_L5 = "669fa3f88abd2662d80eee77"; - public const string PISTOL_127X33_DESERT_EAGLE_L6 = "669fa39b48fc9f8db6035a0c"; - public const string PISTOL_127X33_DESERT_EAGLE_L6_WTS = "669fa3d876116c89840b1217"; - public const string PISTOL_127X33_DESERT_EAGLE_MK_XIX = "668fe5a998b5ad715703ddd6"; - public const string PISTOL_20X1MM_BLICKY = "66015072e9f84d5680039678"; - public const string PISTOL_45ACP_M1911A1 = "5e81c3cbac2bb513793cdc75"; - public const string PISTOL_45ACP_M45A1 = "5f36a0e5fbf956000b716b65"; - public const string PISTOL_45ACP_USP_45 = "6193a720f8ee7e52e42109ed"; - public const string PISTOL_57X28_FN_5_7 = "5d3eb3b0a4b93615055e84d2"; - public const string PISTOL_57X28_FN_5_7_FDE = "5d67abc1a4b93614ec50137f"; - public const string PISTOL_762X25TT_TT = "571a12c42459771f627b58a0"; - public const string PISTOL_762X25TT_TT_GOLD_GOLDEN = "5b3b713c5acfc4330140bd8d"; - public const string PISTOL_9X18PM_APB = "5abccb7dd8ce87001773e277"; - public const string PISTOL_9X18PM_APS = "5a17f98cfcdbcb0980087290"; - public const string PISTOL_9X18PM_PB = "56e0598dd2720bb5668b45a6"; - public const string PISTOL_9X18PM_PM = "5448bd6b4bdc2dfc2f8b4569"; - public const string PISTOL_9X18PM_PM_T = "579204f224597773d619e051"; - public const string PISTOL_9X19_GLOCK_17 = "5a7ae0c351dfba0017554310"; - public const string PISTOL_9X19_GLOCK_18C = "5b1fa9b25acfc40018633c01"; - public const string PISTOL_9X19_GLOCK_19X = "63088377b5cd696784087147"; - public const string PISTOL_9X19_M9A3 = "5cadc190ae921500103bb3b6"; - public const string PISTOL_9X19_MP_443_GRACH = "576a581d2459771e7b1bc4f1"; - public const string PISTOL_9X19_P226R = "56d59856d2720bd8418b456a"; - public const string PISTOL_9X19_PL_15 = "602a9740da11d6478d5a06dc"; - public const string PISTOL_9X21_SR_1MP = "59f98b4986f7746f546d2cef"; - public const string PISTOL_9X33R_DESERT_EAGLE_L5 = "669fa409933e898cce0c2166"; - public const string REVOLVER_127X55_RSH_12 = "633ec7c2a6918cb895019c6c"; - public const string REVOLVER_12G_MTS_255_12 = "60db29ce99594040e04c4a27"; - public const string REVOLVER_40X46_MSGL = "6275303a9f372d6ea97f9ec7"; - public const string REVOLVER_9X19_CR_200DS = "624c2e8614da335f1e034d8c"; - public const string REVOLVER_9X33R_CR_50DS = "61a4c8884f95bc3b2c5dc96f"; - public const string ROCKETLAUNCHER_725_RSHG_2 = "676bf44c5539167c3603e869"; - public const string SHOTGUN_12G_590A1 = "5e870397991fd70db46995c8"; - public const string SHOTGUN_12G_AA_12_GEN_1 = "66ffa9b66e19cc902401c5e8"; - public const string SHOTGUN_12G_AA_12_GEN_2 = "67124dcfa3541f2a1f0e788b"; - public const string SHOTGUN_12G_M3_SUPER_90 = "6259b864ebedf17603599e88"; - public const string SHOTGUN_12G_M870 = "5a7828548dc32e5a9c28b516"; - public const string SHOTGUN_12G_MP_133 = "54491c4f4bdc2db1078b4568"; - public const string SHOTGUN_12G_MP_153 = "56dee2bdd2720bc8328b4567"; - public const string SHOTGUN_12G_MP_155 = "606dae0ab0e443224b421bb7"; - public const string SHOTGUN_12G_MP_43_1C = "5580223e4bdc2d1c128b457f"; - public const string SHOTGUN_12G_SAIGA_12K = "576165642459773c7a400233"; - public const string SHOTGUN_12G_SAIGA_12K_FA = "674fe9a75e51f1c47c04ec23"; - public const string SHOTGUN_12G_SAWED_OFF = "64748cb8de82c85eaf0a273a"; - public const string SHOTGUN_20G_TOZ_106 = "5a38e6bac4a2826c6e06d79b"; - public const string SHOTGUN_23X75_KS_23M = "5e848cc2988a8701445df1e8"; - public const string SHOTGUN_762X54R_MP_18 = "61f7c9e189e6fb1a5e3ea78d"; - public const string SIGNALPISTOL_26X75_SP_81 = "620109578d82e67e7911abf2"; - public const string SMG_45ACP_UMP_45 = "5fc3e272f8b6a877a729eac5"; - public const string SMG_45ACP_VECTOR_45ACP = "5fb64bc92b1b027b1f50bcf2"; - public const string SMG_46X30_MP7A1 = "5ba26383d4351e00334c93d9"; - public const string SMG_46X30_MP7A2 = "5bd70322209c4d00d7167b8f"; - public const string SMG_57X28_P90 = "5cc82d76e24e8d00134b4b83"; - public const string SMG_762X25TT_PPSH41 = "5ea03f7400685063ec28bfa8"; - public const string SMG_9X18PM_PP_91_01_KEDR_B = "57f3c6bd24597738e730fa2f"; - public const string SMG_9X18PM_PP_91_KEDR = "57d14d2524597714373db789"; - public const string SMG_9X18PMM_PP_9_KLIN = "57f4c844245977379d5c14d1"; - public const string SMG_9X19_MP5_NAVY_3_ROUND_BURST = "5926bb2186f7744b1c6c6e60"; - public const string SMG_9X19_MP5K_N = "5d2f0d8048f0356c925bc3b0"; - public const string SMG_9X19_MP9 = "5e00903ae9dc277128008b87"; - public const string SMG_9X19_MP9_N = "5de7bd7bfd6b4e6e2276dc25"; - public const string SMG_9X19_MPX = "58948c8e86f77409493f7266"; - public const string SMG_9X19_PP_19_01 = "59984ab886f7743e98271174"; - public const string SMG_9X19_SAIGA_9 = "59f9cabd86f7743a10721f46"; - public const string SMG_9X19_STM_9 = "60339954d62c9b14ed777c06"; - public const string SMG_9X19_UZI = "66992b349950f5f4cd06029f"; - public const string SMG_9X19_UZI_PRO_PISTOL = "6680304edadb7aa61d00cef0"; - public const string SMG_9X19_UZI_PRO_SMG = "668e71a8dadf42204c032ce1"; - public const string SMG_9X19_VECTOR_9X19 = "5fc3f2d5900b1d5091531e57"; - public const string SMG_9X21_SR_2M = "62e14904c2699c0ec93adc47"; - public const string SNIPERRIFLE_366TKM_VPO_215_GORNOSTAY = "5de652c31b7e3716273428be"; - public const string SNIPERRIFLE_762X51_DVL_10 = "588892092459774ac91d4b11"; - public const string SNIPERRIFLE_762X51_M700 = "5bfea6e90db834001b7347f3"; - public const string SNIPERRIFLE_762X51_T_5000M = "5df24cf80dee1b22f862e9bc"; - public const string SNIPERRIFLE_762X54R_MOSIN_INFANTRY = "5bfd297f0db834001a669119"; - public const string SNIPERRIFLE_762X54R_MOSIN_SNIPER = "5ae08f0a5acfc408fb1398a1"; - public const string SNIPERRIFLE_762X54R_SV_98 = "55801eed4bdc2d89578b4588"; - public const string SNIPERRIFLE_86X70_AXMC = "627e14b21713922ded6f2c15"; - public const string SNIPERRIFLE_86X70_TRG_M10 = "673cab3e03c6a20581028bc1"; + public static readonly MongoId ASSAULTCARBINE_762X39_OP_SKS = new MongoId( + "587e02ff24597743df3deaeb" + ); + public static readonly MongoId ASSAULTCARBINE_762X39_SKS = new MongoId( + "574d967124597745970e7c94" + ); + public static readonly MongoId ASSAULTCARBINE_762X51_VPO_101_VEPR_HUNTER = new MongoId( + "5c501a4d2e221602b412b540" + ); + public static readonly MongoId ASSAULTCARBINE_762X54R_AVT_40 = new MongoId( + "6410733d5dd49d77bd07847e" + ); + public static readonly MongoId ASSAULTCARBINE_762X54R_SVT_40 = new MongoId( + "643ea5b23db6f9f57107d9fd" + ); + public static readonly MongoId ASSAULTCARBINE_9X39_9A_91 = new MongoId( + "644674a13d52156624001fbc" + ); + public static readonly MongoId ASSAULTCARBINE_9X39_AS_VAL = new MongoId( + "57c44b372459772d2b39b8ce" + ); + public static readonly MongoId ASSAULTCARBINE_9X39_SR_3M = new MongoId( + "651450ce0e00edc794068371" + ); + public static readonly MongoId ASSAULTCARBINE_9X39_VSK_94 = new MongoId( + "645e0c6b3b381ede770e1cc9" + ); + public static readonly MongoId ASSAULTRIFLE_127X55_ASH_12 = new MongoId( + "5cadfbf7ae92152ac412eeef" + ); + public static readonly MongoId ASSAULTRIFLE_366TKM_VPO_209 = new MongoId( + "59e6687d86f77411d949b251" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AK_105 = new MongoId( + "5ac66d9b5acfc4001633997a" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AK_12 = new MongoId( + "6499849fc93611967b034949" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AK_545 = new MongoId( + "628b5638ad252a16da6dd245" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AK_545_SHORT = new MongoId( + "628b9c37a733087d0d7fe84b" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AK_74 = new MongoId( + "5bf3e03b0db834001d2c4a9c" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AK_74M = new MongoId( + "5ac4cd105acfc40016339859" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AK_74N = new MongoId( + "5644bd2b4bdc2d3b4c8b4572" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AKS_74 = new MongoId( + "5bf3e0490db83400196199af" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AKS_74N = new MongoId( + "5ab8e9fcd8ce870019439434" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AKS_74U = new MongoId( + "57dc2fa62459775949412633" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AKS_74UB = new MongoId( + "5839a40f24597726f856b511" + ); + public static readonly MongoId ASSAULTRIFLE_545X39_AKS_74UN = new MongoId( + "583990e32459771419544dd2" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_ADAR_2_15 = new MongoId( + "5c07c60e0db834002330051f" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_AK_101 = new MongoId( + "5ac66cb05acfc40198510a10" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_AK_102 = new MongoId( + "5ac66d015acfc400180ae6e4" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_AUG_A1 = new MongoId( + "62e7c4fba689e8c9c50dfc38" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_AUG_A3 = new MongoId( + "63171672192e68c5460cebc5" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_AUG_A3_BLACK = new MongoId( + "6718817435e3cfd9550d2c27" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_G36 = new MongoId( + "623063e994fc3f7b302a9696" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_HK_416A5 = new MongoId( + "5bb2475ed4351e00853264e3" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_M4A1 = new MongoId( + "5447a9cd4bdc2dbd208b4567" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_MDR = new MongoId( + "5c488a752e221602b412af63" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_MK_16 = new MongoId( + "6184055050224f204c1da540" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_MK_16_FDE = new MongoId( + "618428466ef05c2ce828f218" + ); + public static readonly MongoId ASSAULTRIFLE_556X45_TX_15_DML = new MongoId( + "5d43021ca4b9362eab4b5e25" + ); + public static readonly MongoId ASSAULTRIFLE_68X51_SPEAR_68 = new MongoId( + "65290f395ae2ae97b80fdf2d" + ); + public static readonly MongoId ASSAULTRIFLE_762X35_MCX_300_BLK = new MongoId( + "5fbcc1d9016cce60e8341ab3" + ); + public static readonly MongoId ASSAULTRIFLE_762X35_VELOCIRAPTOR_300_BLK = new MongoId( + "674d6121c09f69dfb201a888" + ); + public static readonly MongoId ASSAULTRIFLE_762X39_AK_103 = new MongoId( + "5ac66d2e5acfc43b321d4b53" + ); + public static readonly MongoId ASSAULTRIFLE_762X39_AK_104 = new MongoId( + "5ac66d725acfc43b321d4b60" + ); + public static readonly MongoId ASSAULTRIFLE_762X39_AKM = new MongoId( + "59d6088586f774275f37482f" + ); + public static readonly MongoId ASSAULTRIFLE_762X39_AKMN = new MongoId( + "5a0ec13bfcdbcb00165aa685" + ); + public static readonly MongoId ASSAULTRIFLE_762X39_AKMS = new MongoId( + "59ff346386f77477562ff5e2" + ); + public static readonly MongoId ASSAULTRIFLE_762X39_AKMSN = new MongoId( + "5abcbc27d8ce8700182eceeb" + ); + public static readonly MongoId ASSAULTRIFLE_762X39_MK47 = new MongoId( + "606587252535c57a13424cfd" + ); + public static readonly MongoId ASSAULTRIFLE_762X39_RD_704 = new MongoId( + "628a60ae6b1d481ff772e9c8" + ); + public static readonly MongoId ASSAULTRIFLE_762X39_VPO_136_VEPR_KM = new MongoId( + "59e6152586f77473dc057aa1" + ); + public static readonly MongoId ASSAULTRIFLE_762X51_MDR = new MongoId( + "5dcbd56fdbd3d91b3e5468d5" + ); + public static readonly MongoId ASSAULTRIFLE_762X51_MK_17 = new MongoId( + "6183afd850224f204c1da514" + ); + public static readonly MongoId ASSAULTRIFLE_762X51_MK_17_FDE = new MongoId( + "6165ac306ef05c2ce828ef74" + ); + public static readonly MongoId ASSAULTRIFLE_762X51_SA58 = new MongoId( + "5b0bbe4e5acfc40dc528a72d" + ); + public static readonly MongoId ASSAULTRIFLE_762X51_X_17 = new MongoId( + "676176d362e0497044079f4c" + ); + public static readonly MongoId ASSAULTRIFLE_9X18PM_MASTER_HAND = new MongoId( + "5ae083b25acfc4001a5fc702" + ); + public static readonly MongoId FLARE_26X75_BLUE = new MongoId("66d98233302686954b0c6f81"); + public static readonly MongoId FLARE_26X75_FIREWORK = new MongoId("675ea3d6312c0a5c4e04e317"); + public static readonly MongoId FLARE_26X75_FLARE_WHITE = new MongoId( + "62178be9d0050232da3485d9" + ); + public static readonly MongoId FLARE_26X75_GREEN = new MongoId("6217726288ed9f0845317459"); + public static readonly MongoId FLARE_26X75_RED = new MongoId("62178c4d4ecf221597654e3d"); + public static readonly MongoId FLARE_26X75_S_YELLOW_SPECIAL_YELLOW = new MongoId( + "66d9f1abb16d9aacf5068468" + ); + public static readonly MongoId FLARE_26X75_YELLOW = new MongoId("624c0b3340357b5f566e8766"); + public static readonly MongoId GRENADELAUNCHER_40MMRU_FN40GL = new MongoId( + "639af924d0446708ee62294e" + ); + public static readonly MongoId GRENADELAUNCHER_40X46_FN40GL = new MongoId( + "5e81ebcd8e146c7080625e15" + ); + public static readonly MongoId GRENADELAUNCHER_40X46_FN40GL_2 = new MongoId( + "639c3fbbd0446708ee622ee9" + ); + public static readonly MongoId MACHINEGUN_30X29_AGS_30 = new MongoId( + "5d52cc5ba4b9367408500062" + ); + public static readonly MongoId MACHINEGUN_545X39_NSV_UTYOS = new MongoId( + "5cdeb229d7f00c000e7ce174" + ); + public static readonly MongoId MACHINEGUN_545X39_RPK_16 = new MongoId( + "5beed0f50db834001c062b12" + ); + public static readonly MongoId MACHINEGUN_762X39_RPD = new MongoId("6513ef33e06849f06c0957ca"); + public static readonly MongoId MACHINEGUN_762X39_RPDN = new MongoId("65268d8ecb944ff1e90ea385"); + public static readonly MongoId MACHINEGUN_762X51_M60E6 = new MongoId( + "661ceb1b9311543c7104149b" + ); + public static readonly MongoId MACHINEGUN_762X51_M60E6_FDE = new MongoId( + "661cec09b2c6356b4d0c7a36" + ); + public static readonly MongoId MACHINEGUN_762X51_MK_43_MOD_1 = new MongoId( + "65fb023261d5829b2d090755" + ); + public static readonly MongoId MACHINEGUN_762X54R_PKM = new MongoId("64637076203536ad5600c990"); + public static readonly MongoId MACHINEGUN_762X54R_PKP = new MongoId("64ca3d3954fc657e230529cc"); + public static readonly MongoId MACHINEGUN_762X54R_PKTM = new MongoId( + "657857faeff4c850222dff1b" + ); + public static readonly MongoId MARKSMANRIFLE_762X51_G28 = new MongoId( + "6176aca650224f204c1da3fb" + ); + public static readonly MongoId MARKSMANRIFLE_762X51_M1A = new MongoId( + "5aafa857e5b5b00018480968" + ); + public static readonly MongoId MARKSMANRIFLE_762X51_RFB = new MongoId( + "5f2a9575926fd9352339381f" + ); + public static readonly MongoId MARKSMANRIFLE_762X51_RSASS = new MongoId( + "5a367e5dc4a282000e49738f" + ); + public static readonly MongoId MARKSMANRIFLE_762X51_SR_25 = new MongoId( + "5df8ce05b11454561e39243b" + ); + public static readonly MongoId MARKSMANRIFLE_762X54R_SVDS = new MongoId( + "5c46fbd72e2216398b5a8c9c" + ); + public static readonly MongoId MARKSMANRIFLE_86X70_MK_18_MJLNIR = new MongoId( + "5fc22d7c187fea44d52eda44" + ); + public static readonly MongoId MARKSMANRIFLE_9X39_VSS_VINTOREZ = new MongoId( + "57838ad32459774a17445cd2" + ); + public static readonly MongoId PISTOL_127X33_DESERT_EAGLE_L5 = new MongoId( + "669fa3f88abd2662d80eee77" + ); + public static readonly MongoId PISTOL_127X33_DESERT_EAGLE_L6 = new MongoId( + "669fa39b48fc9f8db6035a0c" + ); + public static readonly MongoId PISTOL_127X33_DESERT_EAGLE_L6_WTS = new MongoId( + "669fa3d876116c89840b1217" + ); + public static readonly MongoId PISTOL_127X33_DESERT_EAGLE_MK_XIX = new MongoId( + "668fe5a998b5ad715703ddd6" + ); + public static readonly MongoId PISTOL_20X1MM_BLICKY = new MongoId("66015072e9f84d5680039678"); + public static readonly MongoId PISTOL_45ACP_M1911A1 = new MongoId("5e81c3cbac2bb513793cdc75"); + public static readonly MongoId PISTOL_45ACP_M45A1 = new MongoId("5f36a0e5fbf956000b716b65"); + public static readonly MongoId PISTOL_45ACP_USP_45 = new MongoId("6193a720f8ee7e52e42109ed"); + public static readonly MongoId PISTOL_57X28_FN_5_7 = new MongoId("5d3eb3b0a4b93615055e84d2"); + public static readonly MongoId PISTOL_57X28_FN_5_7_FDE = new MongoId( + "5d67abc1a4b93614ec50137f" + ); + public static readonly MongoId PISTOL_762X25TT_TT = new MongoId("571a12c42459771f627b58a0"); + public static readonly MongoId PISTOL_762X25TT_TT_GOLD_GOLDEN = new MongoId( + "5b3b713c5acfc4330140bd8d" + ); + public static readonly MongoId PISTOL_9X18PM_APB = new MongoId("5abccb7dd8ce87001773e277"); + public static readonly MongoId PISTOL_9X18PM_APS = new MongoId("5a17f98cfcdbcb0980087290"); + public static readonly MongoId PISTOL_9X18PM_PB = new MongoId("56e0598dd2720bb5668b45a6"); + public static readonly MongoId PISTOL_9X18PM_PM = new MongoId("5448bd6b4bdc2dfc2f8b4569"); + public static readonly MongoId PISTOL_9X18PM_PM_T = new MongoId("579204f224597773d619e051"); + public static readonly MongoId PISTOL_9X19_GLOCK_17 = new MongoId("5a7ae0c351dfba0017554310"); + public static readonly MongoId PISTOL_9X19_GLOCK_18C = new MongoId("5b1fa9b25acfc40018633c01"); + public static readonly MongoId PISTOL_9X19_GLOCK_19X = new MongoId("63088377b5cd696784087147"); + public static readonly MongoId PISTOL_9X19_M9A3 = new MongoId("5cadc190ae921500103bb3b6"); + public static readonly MongoId PISTOL_9X19_MP_443_GRACH = new MongoId( + "576a581d2459771e7b1bc4f1" + ); + public static readonly MongoId PISTOL_9X19_P226R = new MongoId("56d59856d2720bd8418b456a"); + public static readonly MongoId PISTOL_9X19_PL_15 = new MongoId("602a9740da11d6478d5a06dc"); + public static readonly MongoId PISTOL_9X21_SR_1MP = new MongoId("59f98b4986f7746f546d2cef"); + public static readonly MongoId PISTOL_9X33R_DESERT_EAGLE_L5 = new MongoId( + "669fa409933e898cce0c2166" + ); + public static readonly MongoId REVOLVER_127X55_RSH_12 = new MongoId("633ec7c2a6918cb895019c6c"); + public static readonly MongoId REVOLVER_12G_MTS_255_12 = new MongoId( + "60db29ce99594040e04c4a27" + ); + public static readonly MongoId REVOLVER_40X46_MSGL = new MongoId("6275303a9f372d6ea97f9ec7"); + public static readonly MongoId REVOLVER_9X19_CR_200DS = new MongoId("624c2e8614da335f1e034d8c"); + public static readonly MongoId REVOLVER_9X33R_CR_50DS = new MongoId("61a4c8884f95bc3b2c5dc96f"); + public static readonly MongoId ROCKETLAUNCHER_725_RSHG_2 = new MongoId( + "676bf44c5539167c3603e869" + ); + public static readonly MongoId SHOTGUN_12G_590A1 = new MongoId("5e870397991fd70db46995c8"); + public static readonly MongoId SHOTGUN_12G_AA_12_GEN_1 = new MongoId( + "66ffa9b66e19cc902401c5e8" + ); + public static readonly MongoId SHOTGUN_12G_AA_12_GEN_2 = new MongoId( + "67124dcfa3541f2a1f0e788b" + ); + public static readonly MongoId SHOTGUN_12G_M3_SUPER_90 = new MongoId( + "6259b864ebedf17603599e88" + ); + public static readonly MongoId SHOTGUN_12G_M870 = new MongoId("5a7828548dc32e5a9c28b516"); + public static readonly MongoId SHOTGUN_12G_MP_133 = new MongoId("54491c4f4bdc2db1078b4568"); + public static readonly MongoId SHOTGUN_12G_MP_153 = new MongoId("56dee2bdd2720bc8328b4567"); + public static readonly MongoId SHOTGUN_12G_MP_155 = new MongoId("606dae0ab0e443224b421bb7"); + public static readonly MongoId SHOTGUN_12G_MP_43_1C = new MongoId("5580223e4bdc2d1c128b457f"); + public static readonly MongoId SHOTGUN_12G_SAIGA_12K = new MongoId("576165642459773c7a400233"); + public static readonly MongoId SHOTGUN_12G_SAIGA_12K_FA = new MongoId( + "674fe9a75e51f1c47c04ec23" + ); + public static readonly MongoId SHOTGUN_12G_SAWED_OFF = new MongoId("64748cb8de82c85eaf0a273a"); + public static readonly MongoId SHOTGUN_20G_TOZ_106 = new MongoId("5a38e6bac4a2826c6e06d79b"); + public static readonly MongoId SHOTGUN_23X75_KS_23M = new MongoId("5e848cc2988a8701445df1e8"); + public static readonly MongoId SHOTGUN_762X54R_MP_18 = new MongoId("61f7c9e189e6fb1a5e3ea78d"); + public static readonly MongoId SIGNALPISTOL_26X75_SP_81 = new MongoId( + "620109578d82e67e7911abf2" + ); + public static readonly MongoId SMG_45ACP_UMP_45 = new MongoId("5fc3e272f8b6a877a729eac5"); + public static readonly MongoId SMG_45ACP_VECTOR_45ACP = new MongoId("5fb64bc92b1b027b1f50bcf2"); + public static readonly MongoId SMG_46X30_MP7A1 = new MongoId("5ba26383d4351e00334c93d9"); + public static readonly MongoId SMG_46X30_MP7A2 = new MongoId("5bd70322209c4d00d7167b8f"); + public static readonly MongoId SMG_57X28_P90 = new MongoId("5cc82d76e24e8d00134b4b83"); + public static readonly MongoId SMG_762X25TT_PPSH41 = new MongoId("5ea03f7400685063ec28bfa8"); + public static readonly MongoId SMG_9X18PM_PP_91_01_KEDR_B = new MongoId( + "57f3c6bd24597738e730fa2f" + ); + public static readonly MongoId SMG_9X18PM_PP_91_KEDR = new MongoId("57d14d2524597714373db789"); + public static readonly MongoId SMG_9X18PMM_PP_9_KLIN = new MongoId("57f4c844245977379d5c14d1"); + public static readonly MongoId SMG_9X19_MP5_NAVY_3_ROUND_BURST = new MongoId( + "5926bb2186f7744b1c6c6e60" + ); + public static readonly MongoId SMG_9X19_MP5K_N = new MongoId("5d2f0d8048f0356c925bc3b0"); + public static readonly MongoId SMG_9X19_MP9 = new MongoId("5e00903ae9dc277128008b87"); + public static readonly MongoId SMG_9X19_MP9_N = new MongoId("5de7bd7bfd6b4e6e2276dc25"); + public static readonly MongoId SMG_9X19_MPX = new MongoId("58948c8e86f77409493f7266"); + public static readonly MongoId SMG_9X19_PP_19_01 = new MongoId("59984ab886f7743e98271174"); + public static readonly MongoId SMG_9X19_SAIGA_9 = new MongoId("59f9cabd86f7743a10721f46"); + public static readonly MongoId SMG_9X19_STM_9 = new MongoId("60339954d62c9b14ed777c06"); + public static readonly MongoId SMG_9X19_UZI = new MongoId("66992b349950f5f4cd06029f"); + public static readonly MongoId SMG_9X19_UZI_PRO_PISTOL = new MongoId( + "6680304edadb7aa61d00cef0" + ); + public static readonly MongoId SMG_9X19_UZI_PRO_SMG = new MongoId("668e71a8dadf42204c032ce1"); + public static readonly MongoId SMG_9X19_VECTOR_9X19 = new MongoId("5fc3f2d5900b1d5091531e57"); + public static readonly MongoId SMG_9X21_SR_2M = new MongoId("62e14904c2699c0ec93adc47"); + public static readonly MongoId SNIPERRIFLE_366TKM_VPO_215_GORNOSTAY = new MongoId( + "5de652c31b7e3716273428be" + ); + public static readonly MongoId SNIPERRIFLE_762X51_DVL_10 = new MongoId( + "588892092459774ac91d4b11" + ); + public static readonly MongoId SNIPERRIFLE_762X51_M700 = new MongoId( + "5bfea6e90db834001b7347f3" + ); + public static readonly MongoId SNIPERRIFLE_762X51_T_5000M = new MongoId( + "5df24cf80dee1b22f862e9bc" + ); + public static readonly MongoId SNIPERRIFLE_762X54R_MOSIN_INFANTRY = new MongoId( + "5bfd297f0db834001a669119" + ); + public static readonly MongoId SNIPERRIFLE_762X54R_MOSIN_SNIPER = new MongoId( + "5ae08f0a5acfc408fb1398a1" + ); + public static readonly MongoId SNIPERRIFLE_762X54R_SV_98 = new MongoId( + "55801eed4bdc2d89578b4588" + ); + public static readonly MongoId SNIPERRIFLE_86X70_AXMC = new MongoId("627e14b21713922ded6f2c15"); + public static readonly MongoId SNIPERRIFLE_86X70_TRG_M10 = new MongoId( + "673cab3e03c6a20581028bc1" + ); } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/BotLootCache.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/BotLootCache.cs index 81bcc6a2..be9cf5ea 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/BotLootCache.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/BotLootCache.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Spt.Bots; @@ -8,43 +9,43 @@ public record BotLootCache public Dictionary? ExtensionData { get; set; } [JsonPropertyName("backpackLoot")] - public Dictionary BackpackLoot { get; set; } = []; + public Dictionary BackpackLoot { get; set; } = []; [JsonPropertyName("pocketLoot")] - public Dictionary PocketLoot { get; set; } = []; + public Dictionary PocketLoot { get; set; } = []; [JsonPropertyName("vestLoot")] - public Dictionary VestLoot { get; set; } = []; + public Dictionary VestLoot { get; set; } = []; [JsonPropertyName("secureLoot")] - public Dictionary SecureLoot { get; set; } = []; + public Dictionary SecureLoot { get; set; } = []; [JsonPropertyName("combinedPoolLoot")] - public Dictionary CombinedPoolLoot { get; set; } = []; + public Dictionary CombinedPoolLoot { get; set; } = []; [JsonPropertyName("specialItems")] - public Dictionary SpecialItems { get; set; } = []; + public Dictionary SpecialItems { get; set; } = []; [JsonPropertyName("healingItems")] - public Dictionary HealingItems { get; set; } = []; + public Dictionary HealingItems { get; set; } = []; [JsonPropertyName("drugItems")] - public Dictionary DrugItems { get; set; } = []; + public Dictionary DrugItems { get; set; } = []; [JsonPropertyName("foodItems")] - public Dictionary FoodItems { get; set; } = []; + public Dictionary FoodItems { get; set; } = []; [JsonPropertyName("drinkItems")] - public Dictionary DrinkItems { get; set; } = []; + public Dictionary DrinkItems { get; set; } = []; [JsonPropertyName("currencyItems")] - public Dictionary CurrencyItems { get; set; } = []; + public Dictionary CurrencyItems { get; set; } = []; [JsonPropertyName("stimItems")] - public Dictionary StimItems { get; set; } = []; + public Dictionary StimItems { get; set; } = []; [JsonPropertyName("grenadeItems")] - public Dictionary GrenadeItems { get; set; } = []; + public Dictionary GrenadeItems { get; set; } = []; } public record LootCacheType diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/GenerateWeaponRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/GenerateWeaponRequest.cs index 69250bb3..5d084826 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/GenerateWeaponRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/GenerateWeaponRequest.cs @@ -121,7 +121,7 @@ public record BotModLimits public int? ScopeMax { get; set; } [JsonPropertyName("scopeBaseTypes")] - public List? ScopeBaseTypes { get; set; } + public List? ScopeBaseTypes { get; set; } [JsonPropertyName("flashlightLaser")] public ItemCount? FlashlightLaser { get; set; } @@ -130,7 +130,7 @@ public record BotModLimits public int? FlashlightLaserMax { get; set; } [JsonPropertyName("flashlightLaserBaseTypes")] - public List? FlashlightLaserBaseTypes { get; set; } + public List? FlashlightLaserBaseTypes { get; set; } } public record ItemCount diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ModToSpawnRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ModToSpawnRequest.cs index 36d3a226..3e8e6525 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ModToSpawnRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ModToSpawnRequest.cs @@ -30,7 +30,7 @@ public record ModToSpawnRequest /// Parent slot the item will be a part of /// [JsonPropertyName("botWeaponSightWhitelist")] - public Dictionary>? BotWeaponSightWhitelist { get; set; } + public Dictionary>? BotWeaponSightWhitelist { get; set; } /// /// Blacklist to prevent mods from being picked diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/AirdropConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/AirdropConfig.cs index c2d31c30..38e4ce2f 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/AirdropConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/AirdropConfig.cs @@ -19,7 +19,7 @@ public record AirdropConfig : BaseConfig public required Dictionary Loot { get; set; } [JsonPropertyName("customAirdropMapping")] - public required Dictionary CustomAirdropMapping { get; set; } + public required Dictionary CustomAirdropMapping { get; set; } } /// @@ -98,7 +98,7 @@ public record AirdropLoot public bool UseForcedLoot { get; set; } [JsonPropertyName("forcedLoot")] - public Dictionary>? ForcedLoot { get; set; } + public Dictionary>? ForcedLoot { get; set; } [JsonPropertyName("useRewardItemBlacklist")] public bool UseRewardItemBlacklist { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/BotConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/BotConfig.cs index 8a3bb8e5..cb3be53b 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/BotConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/BotConfig.cs @@ -355,7 +355,7 @@ public record EquipmentFilters /// Whitelist for weapon sight types allowed per gun /// [JsonPropertyName("weaponSightWhitelist")] - public Dictionary> WeaponSightWhitelist { get; set; } + public Dictionary> WeaponSightWhitelist { get; set; } /// /// Chance face shield is down/active diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/HideoutConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/HideoutConfig.cs index 036fdbf7..7fbdf409 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/HideoutConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/HideoutConfig.cs @@ -55,16 +55,16 @@ public record HideoutCraftToAdd /// The new mongoId for the craft to use /// [JsonPropertyName("newId")] - public required string NewId { get; set; } + public required MongoId NewId { get; set; } [JsonPropertyName("requirements")] public required List Requirements { get; set; } [JsonPropertyName("craftIdToCopy")] - public required string CraftIdToCopy { get; set; } + public required MongoId CraftIdToCopy { get; set; } [JsonPropertyName("craftOutputTpl")] - public required string CraftOutputTpl { get; set; } + public required MongoId CraftOutputTpl { get; set; } } public record CultistCircleSettings @@ -157,10 +157,10 @@ public record DirectRewardSettings public Dictionary? ExtensionData { get; set; } [JsonPropertyName("reward")] - public required List Reward { get; set; } + public required List Reward { get; set; } [JsonPropertyName("requiredItems")] - public required List RequiredItems { get; set; } + public required List RequiredItems { get; set; } [JsonPropertyName("craftTimeSeconds")] public required int CraftTimeSeconds { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/InsuranceConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/InsuranceConfig.cs index 924ee3ad..db5d274b 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/InsuranceConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/InsuranceConfig.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Spt.Config; @@ -11,7 +12,7 @@ public record InsuranceConfig : BaseConfig /// Chance item is returned as insurance, keyed by trader id /// [JsonPropertyName("returnChancePercent")] - public Dictionary ReturnChancePercent { get; set; } = []; + public Dictionary ReturnChancePercent { get; set; } = []; /// /// Item slots that should never be returned as insurance diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/InventoryConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/InventoryConfig.cs index e652c1e3..96d7291e 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/InventoryConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/InventoryConfig.cs @@ -15,7 +15,7 @@ public record InventoryConfig : BaseConfig public bool NewItemsMarkedFound { get; set; } [JsonPropertyName("randomLootContainers")] - public required Dictionary RandomLootContainers { get; set; } + public required Dictionary RandomLootContainers { get; set; } [JsonPropertyName("sealedAirdropContainer")] public required SealedAirdropContainerSettings SealedAirdropContainer { get; set; } @@ -24,7 +24,7 @@ public record InventoryConfig : BaseConfig /// Contains item tpls that the server should consider money and treat the same as roubles/euros/dollars /// [JsonPropertyName("customMoneyTpls")] - public required List CustomMoneyTpls { get; set; } + public required List CustomMoneyTpls { get; set; } /// /// Multipliers for skill gain when inside menus, NOT in-game @@ -36,7 +36,7 @@ public record InventoryConfig : BaseConfig /// Container Tpls that should be deprioritised when choosing where to take money from for payments /// [JsonPropertyName("deprioritisedMoneyContainers")] - public required HashSet DeprioritisedMoneyContainers { get; set; } + public required HashSet DeprioritisedMoneyContainers { get; set; } } public record RewardDetails @@ -54,7 +54,7 @@ public record RewardDetails public bool FoundInRaid { get; set; } [JsonPropertyName("rewardTplPool")] - public Dictionary? RewardTplPool { get; set; } + public Dictionary? RewardTplPool { get; set; } [JsonPropertyName("rewardTypePool")] public List? RewardTypePool { get; set; } @@ -78,13 +78,13 @@ public record SealedAirdropContainerSettings public bool FoundInRaid { get; set; } [JsonPropertyName("weaponModRewardLimits")] - public required Dictionary> WeaponModRewardLimits { get; set; } + public required Dictionary> WeaponModRewardLimits { get; set; } [JsonPropertyName("rewardTypeLimits")] - public required Dictionary> RewardTypeLimits { get; set; } + public required Dictionary> RewardTypeLimits { get; set; } [JsonPropertyName("ammoBoxWhitelist")] - public required List AmmoBoxWhitelist { get; set; } + public required List AmmoBoxWhitelist { get; set; } [JsonPropertyName("allowBossItems")] public bool AllowBossItems { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/LocationConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/LocationConfig.cs index 80dbfd58..cb6e3ee2 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/LocationConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/LocationConfig.cs @@ -37,7 +37,7 @@ public record LocationConfig : BaseConfig /// Key = map id, value = dict of item tpls that should only have x forced loot spawn position /// [JsonPropertyName("lootMaxSpawnLimits")] - public required Dictionary> LootMaxSpawnLimits { get; set; } + public required Dictionary> LootMaxSpawnLimits { get; set; } /// /// How many attempts should be taken to fit an item into a container before giving up @@ -130,7 +130,7 @@ public record LocationConfig : BaseConfig /// Containers to remove all children from when generating static/loose loot /// [JsonPropertyName("tplsToStripChildItemsFrom")] - public required HashSet TplsToStripChildItemsFrom { get; set; } + public required HashSet TplsToStripChildItemsFrom { get; set; } /// /// Map ids players cannot visit @@ -232,7 +232,7 @@ public record ContainerRandomisationSettings /// Some container types don't work when randomised /// [JsonPropertyName("containerTypesToNotRandomise")] - public required HashSet ContainerTypesToNotRandomise { get; set; } + public required HashSet ContainerTypesToNotRandomise { get; set; } [JsonPropertyName("containerGroupMinSizeMultiplier")] public double ContainerGroupMinSizeMultiplier { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/PlayerScavConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/PlayerScavConfig.cs index 6fb44903..9e1729e3 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/PlayerScavConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/PlayerScavConfig.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; @@ -28,7 +29,7 @@ public record KarmaLevel public required Dictionary ItemLimits { get; set; } [JsonPropertyName("equipmentBlacklist")] - public required Dictionary> EquipmentBlacklist { get; set; } + public required Dictionary> EquipmentBlacklist { get; set; } [JsonPropertyName("labsAccessCardChancePercent")] public double? LabsAccessCardChancePercent { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs index 6555238c..e5503618 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs @@ -30,7 +30,7 @@ public record RagfairConfig : BaseConfig /// Trader ids + should their assorts be listed on flea /// [JsonPropertyName("traders")] - public Dictionary Traders { get; set; } + public required Dictionary Traders { get; set; } [JsonPropertyName("dynamic")] public Dynamic Dynamic { get; set; } @@ -159,7 +159,7 @@ public record Dynamic /// Tpls that should not use the variable price system when their quality is less than 100% (lower dura/uses = lower price) /// [JsonPropertyName("ignoreQualityPriceVarianceBlacklist")] - public HashSet IgnoreQualityPriceVarianceBlacklist { get; set; } + public HashSet IgnoreQualityPriceVarianceBlacklist { get; set; } [JsonPropertyName("endTimeSeconds")] public MinMax EndTimeSeconds { get; set; } @@ -198,7 +198,7 @@ public record Dynamic /// A multipler to apply to individual tpls price just prior to item quality adjustment /// [JsonPropertyName("itemPriceMultiplier")] - public Dictionary? ItemPriceMultiplier { get; set; } + public Dictionary? ItemPriceMultiplier { get; set; } [JsonPropertyName("_currencies")] public string? CurrenciesDescription { get; set; } @@ -207,13 +207,13 @@ public record Dynamic /// Percentages to sell offers in each currency /// [JsonPropertyName("currencies")] - public Dictionary Currencies { get; set; } + public Dictionary Currencies { get; set; } /// /// Item tpls that should be forced to sell as a single item /// [JsonPropertyName("showAsSingleStack")] - public HashSet ShowAsSingleStack { get; set; } + public HashSet ShowAsSingleStack { get; set; } /// /// Should christmas/halloween items be removed from flea when not within the seasonal bounds @@ -231,13 +231,13 @@ public record Dynamic /// Dict of price limits keyed by item type /// [JsonPropertyName("unreasonableModPrices")] - public Dictionary UnreasonableModPrices { get; set; } + public Dictionary UnreasonableModPrices { get; set; } /// /// Custom rouble prices for items to override values from prices.json /// [JsonPropertyName("itemPriceOverrideRouble")] - public Dictionary ItemPriceOverrideRouble { get; set; } + public Dictionary ItemPriceOverrideRouble { get; set; } } public record PriceRanges @@ -300,7 +300,7 @@ public record BarterDetails /// Item Tpls to never be turned into a barter /// [JsonPropertyName("itemTypeBlacklist")] - public HashSet ItemTypeBlacklist { get; set; } + public HashSet ItemTypeBlacklist { get; set; } } public record PackDetails @@ -330,7 +330,7 @@ public record PackDetails /// item types to allow being a pack /// [JsonPropertyName("itemTypeWhitelist")] - public HashSet ItemTypeWhitelist { get; set; } + public HashSet ItemTypeWhitelist { get; set; } } public record OfferAdjustment @@ -399,7 +399,7 @@ public record RagfairBlacklist /// Custom blacklist for item Tpls /// [JsonPropertyName("custom")] - public HashSet Custom { get; set; } + public HashSet Custom { get; set; } /// /// BSG blacklist a large number of items from flea, true = use blacklist @@ -513,16 +513,16 @@ public record TieredFlea /// key: tpl, value: playerlevel /// [JsonPropertyName("unlocksTpl")] - public Dictionary UnlocksTpl { get; set; } + public Dictionary UnlocksTpl { get; set; } /// /// key: item type id, value: playerlevel /// [JsonPropertyName("unlocksType")] - public Dictionary UnlocksType { get; set; } + public Dictionary UnlocksType { get; set; } [JsonPropertyName("ammoTplUnlocks")] - public Dictionary? AmmoTplUnlocks { get; set; } + public Dictionary? AmmoTplUnlocks { get; set; } [JsonPropertyName("ammoTiersEnabled")] public bool AmmoTiersEnabled { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/ScavCaseConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/ScavCaseConfig.cs index 23ddb7b9..3a08d9f7 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/ScavCaseConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/ScavCaseConfig.cs @@ -18,10 +18,10 @@ public record ScavCaseConfig : BaseConfig public required AmmoRewards AmmoRewards { get; set; } [JsonPropertyName("rewardItemParentBlacklist")] - public required HashSet RewardItemParentBlacklist { get; set; } + public required HashSet RewardItemParentBlacklist { get; set; } [JsonPropertyName("rewardItemBlacklist")] - public required HashSet RewardItemBlacklist { get; set; } + public required HashSet RewardItemBlacklist { get; set; } [JsonPropertyName("allowMultipleMoneyRewardsPerRarity")] public bool AllowMultipleMoneyRewardsPerRarity { get; set; } @@ -78,7 +78,7 @@ public record AmmoRewards public int AmmoRewardChancePercent { get; set; } [JsonPropertyName("ammoRewardBlacklist")] - public required Dictionary> AmmoRewardBlacklist { get; set; } + public required Dictionary> AmmoRewardBlacklist { get; set; } [JsonPropertyName("ammoRewardValueRangeRub")] public required Dictionary> AmmoRewardValueRangeRub { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/SeasonalEventConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/SeasonalEventConfig.cs index 426f887c..d399da1d 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/SeasonalEventConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/SeasonalEventConfig.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Utils.Json.Converters; @@ -19,7 +20,7 @@ public record SeasonalEventConfig : BaseConfig [JsonPropertyName("eventGear")] public required Dictionary< SeasonalEventType, - Dictionary>> + Dictionary>> > EventGear { get; set; } /// @@ -28,7 +29,7 @@ public record SeasonalEventConfig : BaseConfig [JsonPropertyName("eventLoot")] public required Dictionary< SeasonalEventType, - Dictionary>> + Dictionary>> > EventLoot { get; set; } [JsonPropertyName("events")] @@ -70,7 +71,7 @@ public record SeasonalEventConfig : BaseConfig [JsonPropertyName("botAppearanceChanges")] public required Dictionary< SeasonalEventType, - Dictionary>> + Dictionary>> > BotAppearanceChanges { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/TraderConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/TraderConfig.cs index a9c43296..ace6a170 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/TraderConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/TraderConfig.cs @@ -43,7 +43,7 @@ public record UpdateTime public string Name { get; set; } = string.Empty; [JsonPropertyName("traderId")] - public string TraderId { get; set; } = string.Empty; + public MongoId TraderId { get; set; } = string.Empty; /// /// Seconds between trader resets @@ -97,16 +97,16 @@ public record FenceConfig /// Key: item tpl /// [JsonPropertyName("itemStackSizeOverrideMinMax")] - public required Dictionary?> ItemStackSizeOverrideMinMax { get; set; } + public required Dictionary?> ItemStackSizeOverrideMinMax { get; set; } [JsonPropertyName("itemTypeLimits")] - public required Dictionary ItemTypeLimits { get; set; } + public required Dictionary ItemTypeLimits { get; set; } /// /// Prevent duplicate offers of items of specific categories by parentId /// [JsonPropertyName("preventDuplicateOffersOfCategory")] - public required List PreventDuplicateOffersOfCategory { get; set; } + public required List PreventDuplicateOffersOfCategory { get; set; } [JsonPropertyName("regenerateAssortsOnRefresh")] public bool RegenerateAssortsOnRefresh { get; set; } @@ -115,7 +115,7 @@ public record FenceConfig /// Max rouble price before item is not listed on flea /// [JsonPropertyName("itemCategoryRoublePriceLimit")] - public required Dictionary ItemCategoryRoublePriceLimit { get; set; } + public required Dictionary ItemCategoryRoublePriceLimit { get; set; } /// /// Each slotid with % to be removed prior to listing on fence @@ -136,7 +136,7 @@ public record FenceConfig public double AmmoMaxPenLimit { get; set; } [JsonPropertyName("blacklist")] - public required HashSet Blacklist { get; set; } + public required HashSet Blacklist { get; set; } [JsonPropertyName("coopExtractGift")] public required CoopExtractReward CoopExtractGift { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Fence/CreateFenceAssortsResult.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Fence/CreateFenceAssortsResult.cs index 62871cab..b4310cb1 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Fence/CreateFenceAssortsResult.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Fence/CreateFenceAssortsResult.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; namespace SPTarkov.Server.Core.Models.Spt.Fence; @@ -12,8 +13,8 @@ public record CreateFenceAssortsResult public List>? SptItems { get; set; } [JsonPropertyName("barter_scheme")] - public Dictionary>>? BarterScheme { get; set; } + public Dictionary>>? BarterScheme { get; set; } [JsonPropertyName("loyal_level_items")] - public Dictionary? LoyalLevelItems { get; set; } + public Dictionary? LoyalLevelItems { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Inventory/FindSlotResult.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Inventory/FindSlotResult.cs new file mode 100644 index 00000000..8aa02646 --- /dev/null +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Inventory/FindSlotResult.cs @@ -0,0 +1,33 @@ +using System.Text.Json.Serialization; + +namespace SPTarkov.Server.Core.Models.Spt.Inventory; + +public class FindSlotResult +{ + public FindSlotResult(bool success) + { + Success = success; + } + + public FindSlotResult(bool success, int x, int y, bool rotation) + { + Success = success; + X = x; + Y = y; + Rotation = rotation; + } + + public FindSlotResult() { } + + [JsonPropertyName("success")] + public bool? Success { get; set; } + + [JsonPropertyName("x")] + public int? X { get; set; } + + [JsonPropertyName("y")] + public int? Y { get; set; } + + [JsonPropertyName("rotation")] + public bool? Rotation { get; set; } +} diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Logging/LogBackgroundColor.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Logging/LogBackgroundColor.cs deleted file mode 100644 index 5794bda9..00000000 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Logging/LogBackgroundColor.cs +++ /dev/null @@ -1,16 +0,0 @@ -// namespace SPTarkov.Server.Core.Models.Spt.Logging; -// -// public record LogBackgroundColor -// { -// public const string DEFAULT = ""; -// public const string BLACK = "blackBG"; -// public const string RED = "redBG"; -// public const string GREEN = "greenBG"; -// public const string YELLOW = "yellowBG"; -// public const string BLUE = "blueBG"; -// public const string MAGENTA = "magentaBG"; -// public const string CYAN = "cyanBG"; -// public const string WHITE = "whiteBG"; -// } - -// TODO: this likely wont be used anymore, so commenting out insteaad of reimplementing diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Logging/LogTextColor.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Logging/LogTextColor.cs deleted file mode 100644 index 6ad3914b..00000000 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Logging/LogTextColor.cs +++ /dev/null @@ -1,16 +0,0 @@ -// namespace SPTarkov.Server.Core.Models.Spt.Logging; -// -// public record LogTextColor -// { -// public const string BLACK = "black"; -// public const string RED = "red"; -// public const string GREEN = "green"; -// public const string YELLOW = "yellow"; -// public const string BLUE = "blue"; -// public const string MAGENTA = "Magenta"; -// public const string CYAN = "cyan"; -// public const string WHITE = "white"; -// public const string GRAY = "gray"; -// } - -// TODO: this likely wont be used anymore, so commenting out insteaad of reimplementing diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Logging/SptLogger.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Logging/SptLogger.cs deleted file mode 100644 index 9ef2418e..00000000 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Logging/SptLogger.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Text.Json.Serialization; - -namespace SPTarkov.Server.Core.Models.Spt.Logging; - -public record SptLogger -{ - [JsonExtensionData] - public Dictionary? ExtensionData { get; set; } - - public object Error { get; set; } // error: (msg: string | Record) => void; - - public object Warn { get; set; } // warn: (msg: string | Record) => void; - - public object Succ { get; set; } // succ?: (msg: string | Record) => void; - - public object Info { get; set; } // info: (msg: string | Record) => void; - - public object Debug { get; set; } // debug: (msg: string | Record) => void; -} - -// TODO: needs to be reimplemented however we want to do it in this project diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Mod/NewItemDetails.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Mod/NewItemDetails.cs index 3cf4b235..eced0a90 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Mod/NewItemDetails.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Mod/NewItemDetails.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; namespace SPTarkov.Server.Core.Models.Spt.Mod; @@ -15,7 +16,7 @@ public record NewItemFromCloneDetails : NewItemDetailsBase /// Id of the item to copy and use as a base /// [JsonPropertyName("itemTplToClone")] - public string? ItemTplToClone { get; set; } + public MongoId? ItemTplToClone { get; set; } /// /// Item properties that should be applied over the top of the cloned base @@ -85,7 +86,7 @@ public record CreateItemResult public bool? Success { get; set; } [JsonPropertyName("itemId")] - public string? ItemId { get; set; } + public MongoId? ItemId { get; set; } [JsonPropertyName("errors")] public List? Errors { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Server/DatabaseTables.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Server/DatabaseTables.cs index c9aef7fb..a1d14556 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Server/DatabaseTables.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Server/DatabaseTables.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; @@ -21,7 +22,7 @@ public record DatabaseTables public Templates.Templates? Templates { get; set; } - public Dictionary Traders { get; set; } + public Dictionary Traders { get; set; } public Globals? Globals { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Services/LootRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Services/LootRequest.cs index 8a6674ea..20f3e892 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Services/LootRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Services/LootRequest.cs @@ -82,7 +82,7 @@ public record LootRequest /// Item tpls + count of items to force include /// [JsonPropertyName("forcedLoot")] - public Dictionary>? ForcedLoot { get; set; } + public Dictionary>? ForcedLoot { get; set; } /// /// Should seasonal items appear when it's not the season for them diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Templates/Templates.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Templates/Templates.cs index 8986b65e..5719a795 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Templates/Templates.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Templates/Templates.cs @@ -44,7 +44,7 @@ public record Templates /// Flea prices of items - gathered from online flea market dump /// [JsonPropertyName("prices")] - public Dictionary? Prices { get; set; } + public Dictionary? Prices { get; set; } /// /// Default equipment loadouts that show on main inventory screen diff --git a/Libraries/SPTarkov.Server.Core/Routers/EventOutputHolder.cs b/Libraries/SPTarkov.Server.Core/Routers/EventOutputHolder.cs index 1526852c..91bb9cef 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/EventOutputHolder.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/EventOutputHolder.cs @@ -102,7 +102,7 @@ public class EventOutputHolder( profileChanges.Skills.Common = cloner.Clone(pmcData.Skills.Common); // Always send skills for Item event route response profileChanges.Skills.Mastering = cloner.Clone(pmcData.Skills.Mastering); - // Clone productions to ensure we preseve the profile jsons data + // Clone productions to ensure we preserve the profile jsons data profileChanges.Production = GetProductionsFromProfileAndFlagComplete( cloner.Clone(pmcData.Hideout.Production), sessionId @@ -123,7 +123,7 @@ public class EventOutputHolder( /// Required as continuous productions don't reset and stay at 100% completion but client thinks it hasn't started /// /// Productions in a profile - private void CleanUpCompleteCraftsInProfile(Dictionary? productions) + protected void CleanUpCompleteCraftsInProfile(Dictionary? productions) { foreach (var production in productions) { @@ -156,7 +156,7 @@ public class EventOutputHolder( /// /// Player profile /// Dictionary of hideout improvements - private Dictionary? GetImprovementsFromProfileAndFlagComplete( + protected Dictionary? GetImprovementsFromProfileAndFlagComplete( PmcData pmcData ) { @@ -185,7 +185,7 @@ public class EventOutputHolder( /// Productions from player profile /// Player session ID /// Dictionary of hideout productions - private Dictionary? GetProductionsFromProfileAndFlagComplete( + protected Dictionary? GetProductionsFromProfileAndFlagComplete( Dictionary? productions, string sessionId ) @@ -240,7 +240,7 @@ public class EventOutputHolder( return productions.Keys.Count > 0 ? productions : null; } - private void ResetMoneyTransferLimit(MoneyTransferLimits limit) + protected void ResetMoneyTransferLimit(MoneyTransferLimits limit) { if (limit.NextResetTime < timeUtil.GetTimeStamp()) { @@ -254,7 +254,7 @@ public class EventOutputHolder( /// /// Server data for traders /// Dict of trader id + TraderData - private Dictionary ConstructTraderRelations( + protected Dictionary ConstructTraderRelations( Dictionary traderData ) { diff --git a/Libraries/SPTarkov.Server.Core/Routers/ImageRouter.cs b/Libraries/SPTarkov.Server.Core/Routers/ImageRouter.cs index 15c86229..6f4f48d8 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/ImageRouter.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/ImageRouter.cs @@ -28,7 +28,7 @@ public class ImageRouter public void AddRoute(string key, string valueToAdd) { - _imageRouterService.AddRoute(key.ToLower(), valueToAdd); + _imageRouterService.AddRoute(key.ToLowerInvariant(), valueToAdd); } public async Task SendImage(string sessionId, HttpRequest req, HttpResponse resp, object body) @@ -37,7 +37,7 @@ public class ImageRouter var url = _fileUtil.StripExtension(req.Path, true); // Send image - var urlKeyLower = url.ToLower(); + var urlKeyLower = url.ToLowerInvariant(); if (_imageRouterService.ExistsByKey(urlKeyLower)) { await _httpFileUtil.SendFile(resp, _imageRouterService.GetByKey(urlKeyLower)); diff --git a/Libraries/SPTarkov.Server.Core/Servers/ConfigServer.cs b/Libraries/SPTarkov.Server.Core/Servers/ConfigServer.cs index 0258ac20..ccf09392 100644 --- a/Libraries/SPTarkov.Server.Core/Servers/ConfigServer.cs +++ b/Libraries/SPTarkov.Server.Core/Servers/ConfigServer.cs @@ -11,10 +11,10 @@ namespace SPTarkov.Server.Core.Servers; public class ConfigServer { protected readonly string[] acceptableFileExtensions = ["json", "jsonc"]; - protected FileUtil _fileUtil; - protected JsonUtil _jsonUtil; - protected ISptLogger _logger; - private static Dictionary _configs = new(); + protected readonly FileUtil _fileUtil; + protected readonly JsonUtil _jsonUtil; + protected readonly ISptLogger _logger; + private static readonly Dictionary _configs = new(); public ConfigServer(ISptLogger logger, JsonUtil jsonUtil, FileUtil fileUtil) { diff --git a/Libraries/SPTarkov.Server.Core/Servers/RagfairServer.cs b/Libraries/SPTarkov.Server.Core/Servers/RagfairServer.cs index fb9f9349..e1957bd0 100644 --- a/Libraries/SPTarkov.Server.Core/Servers/RagfairServer.cs +++ b/Libraries/SPTarkov.Server.Core/Servers/RagfairServer.cs @@ -77,7 +77,7 @@ public class RagfairServer( /// Get traders who need to be periodically refreshed /// /// List of traders - public List GetUpdateableTraders() + public List GetUpdateableTraders() { return _ragfairConfig.Traders.Keys.ToList(); } diff --git a/Libraries/SPTarkov.Server.Core/Services/AirdropService.cs b/Libraries/SPTarkov.Server.Core/Services/AirdropService.cs index e023886c..37996336 100644 --- a/Libraries/SPTarkov.Server.Core/Services/AirdropService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/AirdropService.cs @@ -1,4 +1,5 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Generators; using SPTarkov.Server.Core.Helpers; using SPTarkov.Server.Core.Models.Common; @@ -9,7 +10,6 @@ using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Models.Spt.Services; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Servers; -using SPTarkov.Server.Core.Utils; using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel; namespace SPTarkov.Server.Core.Services; @@ -19,9 +19,7 @@ public class AirdropService( ConfigServer configServer, ISptLogger _logger, LootGenerator _lootGenerator, - HashUtil _hashUtil, WeightedRandomHelper _weightedRandomHelper, - ContainerHelper _containerHelper, ServerLocalisationService _serverLocalisationService, ItemFilterService _itemFilterService, ItemHelper _itemHelper @@ -135,19 +133,14 @@ public class AirdropService( var itemSize = _itemHelper.GetItemSize(itemAndChildren, itemAndChildren[0].Id); // Look for open slot to put chosen item into - var result = _containerHelper.FindSlotForItem( - containerMap, - itemSize.Width, - itemSize.Height - ); + var result = containerMap.FindSlotForItem(itemSize.Width, itemSize.Height); if (result.Success.GetValueOrDefault(false)) { // It Fits, add item + children lootResult.AddRange(itemAndChildren); // Update container with item we just added - _containerHelper.FillContainerMapWithItem( - containerMap, + containerMap.FillContainerMapWithItem( result.X.Value, result.Y.Value, itemSize.Width, diff --git a/Libraries/SPTarkov.Server.Core/Services/BackupService.cs b/Libraries/SPTarkov.Server.Core/Services/BackupService.cs index f432ff23..40c06ba8 100644 --- a/Libraries/SPTarkov.Server.Core/Services/BackupService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/BackupService.cs @@ -15,15 +15,15 @@ public class BackupService protected const string _profileDir = "./user/profiles"; protected readonly List _activeServerMods; - protected BackupConfig _backupConfig; + protected readonly BackupConfig _backupConfig; // Runs Init() every x minutes protected Timer _backupIntervalTimer; - protected FileUtil _fileUtil; - protected JsonUtil _jsonUtil; - protected ISptLogger _logger; - protected TimeUtil _timeUtil; - protected IReadOnlyList _loadedMods; + protected readonly FileUtil _fileUtil; + protected readonly JsonUtil _jsonUtil; + protected readonly ISptLogger _logger; + protected readonly TimeUtil _timeUtil; + protected readonly IReadOnlyList _loadedMods; public BackupService( ISptLogger logger, diff --git a/Libraries/SPTarkov.Server.Core/Services/BotEquipmentFilterService.cs b/Libraries/SPTarkov.Server.Core/Services/BotEquipmentFilterService.cs index 473751ef..312b36b3 100644 --- a/Libraries/SPTarkov.Server.Core/Services/BotEquipmentFilterService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/BotEquipmentFilterService.cs @@ -1,6 +1,7 @@ using SPTarkov.Common.Extensions; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Bots; @@ -50,7 +51,7 @@ public class BotEquipmentFilterService( ); RandomisationDetails? randomisationDetails = null; - if (_botEquipmentConfig.TryGetValue(botRole.ToLower(), out var botEquipmentConfig)) + if (_botEquipmentConfig.TryGetValue(botRole.ToLowerInvariant(), out var botEquipmentConfig)) { randomisationDetails = botHelper.GetBotRandomizationDetails( botLevel, @@ -160,7 +161,7 @@ public class BotEquipmentFilterService( /// /// equipment role of bot to look up /// Dictionary of weapon type and their whitelisted scope types - public Dictionary> GetBotWeaponSightWhitelist(string botEquipmentRole) + public Dictionary> GetBotWeaponSightWhitelist(string botEquipmentRole) { var botEquipmentSettings = _botConfig.Equipment[botEquipmentRole]; diff --git a/Libraries/SPTarkov.Server.Core/Services/BotEquipmentModPoolService.cs b/Libraries/SPTarkov.Server.Core/Services/BotEquipmentModPoolService.cs index 374507de..4300fcce 100644 --- a/Libraries/SPTarkov.Server.Core/Services/BotEquipmentModPoolService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/BotEquipmentModPoolService.cs @@ -19,11 +19,11 @@ public class BotEquipmentModPoolService( private readonly Lock _lockObject = new(); private ConcurrentDictionary< - string, + MongoId, ConcurrentDictionary> >? _gearModPool; protected ConcurrentDictionary< - string, + MongoId, ConcurrentDictionary> > GearModPool { @@ -37,11 +37,11 @@ public class BotEquipmentModPoolService( } private ConcurrentDictionary< - string, + MongoId, ConcurrentDictionary> >? _weaponModPool; protected ConcurrentDictionary< - string, + MongoId, ConcurrentDictionary> > WeaponModPool { @@ -60,7 +60,7 @@ public class BotEquipmentModPoolService( /// Items to find related mods and store in modPool /// Mod pool to choose from e.g. "weapon" for weaponModPool protected ConcurrentDictionary< - string, + MongoId, ConcurrentDictionary> > GeneratePool(IEnumerable? inputItems, string poolType) { @@ -74,7 +74,7 @@ public class BotEquipmentModPoolService( } var pool = - new ConcurrentDictionary>>(); + new ConcurrentDictionary>>(); foreach (var item in inputItems) { if (item.Properties is null) @@ -135,7 +135,7 @@ public class BotEquipmentModPoolService( return pool; } - private bool SetContainsTpl(HashSet itemSet, string tpl) + private bool SetContainsTpl(HashSet itemSet, MongoId tpl) { lock (_lockObject) { @@ -143,7 +143,7 @@ public class BotEquipmentModPoolService( } } - private bool AddTplToSet(HashSet itemSet, string itemToAddTpl) + private bool AddTplToSet(HashSet itemSet, MongoId itemToAddTpl) { lock (_lockObject) { @@ -176,7 +176,7 @@ public class BotEquipmentModPoolService( /// Item to look up /// Slot to get compatible mods for /// Hashset of tpls that fit the slot - public HashSet GetCompatibleModsForWeaponSlot(string itemTpl, string slotName) + public HashSet GetCompatibleModsForWeaponSlot(MongoId itemTpl, string slotName) { if (WeaponModPool.TryGetValue(itemTpl, out var value)) { @@ -195,7 +195,7 @@ public class BotEquipmentModPoolService( /// /// Items tpl to look up mods for /// Dictionary of mods (keys are mod slot names) with array of compatible mod tpls as value - public ConcurrentDictionary> GetModsForGearSlot(string itemTpl) + public ConcurrentDictionary> GetModsForGearSlot(MongoId itemTpl) { return GearModPool.TryGetValue(itemTpl, out var value) ? value : []; } @@ -205,7 +205,7 @@ public class BotEquipmentModPoolService( /// /// Weapons tpl to look up mods for /// Dictionary of mods (keys are mod slot names) with array of compatible mod tpls as value - public ConcurrentDictionary> GetModsForWeaponSlot(string itemTpl) + public ConcurrentDictionary> GetModsForWeaponSlot(MongoId itemTpl) { return WeaponModPool.TryGetValue(itemTpl, out var value) ? value : []; } @@ -215,7 +215,7 @@ public class BotEquipmentModPoolService( /// /// Weapons tpl to look up mods for /// Dictionary of mods (keys are mod slot names) with array of compatible mod tpls as value - public Dictionary>? GetRequiredModsForWeaponSlot(string itemTpl) + public Dictionary>? GetRequiredModsForWeaponSlot(MongoId itemTpl) { var result = new Dictionary>(); @@ -248,7 +248,7 @@ public class BotEquipmentModPoolService( /// Create weapon mod pool and set generated flag to true /// protected ConcurrentDictionary< - string, + MongoId, ConcurrentDictionary> > GenerateWeaponPool() { @@ -258,7 +258,6 @@ public class BotEquipmentModPoolService( string.Equals(item.Type, "Item", StringComparison.OrdinalIgnoreCase) && itemHelper.IsOfBaseclasses(item.Id, [BaseClasses.WEAPON, BaseClasses.MOD]) ); - logger.Warning("generating weapon pool"); return GeneratePool(weaponsAndMods, "weapon"); } @@ -267,7 +266,7 @@ public class BotEquipmentModPoolService( /// Create gear mod pool and set generated flag to true /// protected ConcurrentDictionary< - string, + MongoId, ConcurrentDictionary> > GenerateGearPool() { diff --git a/Libraries/SPTarkov.Server.Core/Services/BotGenerationCacheService.cs b/Libraries/SPTarkov.Server.Core/Services/BotGenerationCacheService.cs index fcb5c884..45e8b17b 100644 --- a/Libraries/SPTarkov.Server.Core/Services/BotGenerationCacheService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/BotGenerationCacheService.cs @@ -12,7 +12,7 @@ public class BotGenerationCacheService( ServerLocalisationService _serverLocalisationService ) { - protected Queue _activeBotsInRaid = []; + protected readonly Queue _activeBotsInRaid = []; protected readonly ConcurrentDictionary> _storedBots = new(); /// @@ -115,6 +115,6 @@ public class BotGenerationCacheService( public string CreateCacheKey(string? role, string? difficulty) { - return $"{role?.ToLower()}{difficulty?.ToLower()}"; + return $"{role?.ToLowerInvariant()}{difficulty?.ToLowerInvariant()}"; } } diff --git a/Libraries/SPTarkov.Server.Core/Services/BotLootCacheService.cs b/Libraries/SPTarkov.Server.Core/Services/BotLootCacheService.cs index 45c0ebaf..f5111b35 100644 --- a/Libraries/SPTarkov.Server.Core/Services/BotLootCacheService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/BotLootCacheService.cs @@ -48,7 +48,7 @@ public class BotLootCacheService( /// OPTIONAL - item price min and max value filter /// THIS IS NOT A THREAD SAFE METHOD /// dictionary - public Dictionary GetLootFromCache( + public Dictionary GetLootFromCache( string botRole, bool isPmc, string lootType, @@ -68,7 +68,7 @@ public class BotLootCacheService( return []; } - Dictionary result; + Dictionary result; switch (lootType) { case LootCacheType.Special: @@ -175,12 +175,12 @@ public class BotLootCacheService( var lootPool = botJsonTemplate.BotInventory.Items; // Flatten all individual slot loot pools into one big pool, while filtering out potentially missing templates - Dictionary specialLootPool = new(); - Dictionary backpackLootPool = new(); - Dictionary pocketLootPool = new(); - Dictionary vestLootPool = new(); - Dictionary secureLootPool = new(); - Dictionary combinedLootPool = new(); + Dictionary specialLootPool = new(); + Dictionary backpackLootPool = new(); + Dictionary pocketLootPool = new(); + Dictionary vestLootPool = new(); + Dictionary secureLootPool = new(); + Dictionary combinedLootPool = new(); if (isPmc) { @@ -195,7 +195,7 @@ public class BotLootCacheService( } // Backpack/Pockets etc - var poolsToProcess = new Dictionary> + var poolsToProcess = new Dictionary> { { "Backpack", lootPool.Backpack }, { "Pockets", lootPool.Pockets }, @@ -420,7 +420,7 @@ public class BotLootCacheService( ); // lacks width // Get vest loot (excluding magazines, bullets, grenades, medical and healing/stim items) - var filteredVestItems = new Dictionary(); + var filteredVestItems = new Dictionary(); foreach (var itemKvP in vestLootPool) { var itemResult = _itemHelper.GetItem(itemKvP.Key); @@ -480,12 +480,12 @@ public class BotLootCacheService( /// Pool to filter /// Delegate to filter pool by /// - protected Dictionary FilterItemPool( - Dictionary lootPool, + protected Dictionary FilterItemPool( + Dictionary lootPool, Func shouldBeSkipped ) { - var filteredItems = new Dictionary(); + var filteredItems = new Dictionary(); foreach (var (itemTpl, itemWeight) in lootPool) { var (isValidItem, itemTemplate) = _itemHelper.GetItem(itemTpl); @@ -511,9 +511,9 @@ public class BotLootCacheService( /// Weights to return /// Dictionary and should pool be hydrated by items in combined loot pool protected static ( - Dictionary, + Dictionary, bool populateFromCombinedPool - ) GetGenerationWeights(Dictionary? weights) + ) GetGenerationWeights(Dictionary? weights) { var result = weights ?? []; return (result, !result.Any()); // empty dict = should be populated from combined pool @@ -526,8 +526,8 @@ public class BotLootCacheService( /// Dictionary to add item to /// Dictionary of items to add protected void AddItemsToPool( - Dictionary poolToAddTo, - Dictionary poolOfItemsToAdd + Dictionary poolToAddTo, + Dictionary poolOfItemsToAdd ) { foreach (var (tpl, weight) in poolOfItemsToAdd) @@ -577,17 +577,17 @@ public class BotLootCacheService( return props.ThrowType is not null; } - protected bool IsFood(string tpl) + protected bool IsFood(MongoId tpl) { return _itemHelper.IsOfBaseclass(tpl, BaseClasses.FOOD); } - protected bool IsDrink(string tpl) + protected bool IsDrink(MongoId tpl) { return _itemHelper.IsOfBaseclass(tpl, BaseClasses.DRINK); } - protected bool IsCurrency(string tpl) + protected bool IsCurrency(MongoId tpl) { return _itemHelper.IsOfBaseclass(tpl, BaseClasses.MONEY); } diff --git a/Libraries/SPTarkov.Server.Core/Services/BotNameService.cs b/Libraries/SPTarkov.Server.Core/Services/BotNameService.cs index fd5fc517..0396542a 100644 --- a/Libraries/SPTarkov.Server.Core/Services/BotNameService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/BotNameService.cs @@ -53,7 +53,7 @@ public class BotNameService( var showTypeInNickname = !botGenerationDetails.IsPlayerScav.GetValueOrDefault(false) && _botConfig.ShowTypeInNickname; - var roleShouldBeUnique = uniqueRoles?.Contains(botRole.ToLower()); + var roleShouldBeUnique = uniqueRoles?.Contains(botRole.ToLowerInvariant()); var attempts = 0; while (attempts <= 5) diff --git a/Libraries/SPTarkov.Server.Core/Services/BtrDeliveryService.cs b/Libraries/SPTarkov.Server.Core/Services/BtrDeliveryService.cs index 320eec6b..fabbe5f8 100644 --- a/Libraries/SPTarkov.Server.Core/Services/BtrDeliveryService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/BtrDeliveryService.cs @@ -1,4 +1,5 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Match; using SPTarkov.Server.Core.Models.Eft.Profile; @@ -16,7 +17,6 @@ public class BtrDeliveryService( ISptLogger _logger, DatabaseService _databaseService, RandomUtil _randomUtil, - HashUtil _hashUtil, TimeUtil _timeUtil, SaveServer _saveServer, MailSendService _mailSendService, @@ -82,7 +82,7 @@ public class BtrDeliveryService( .BtrDeliveryList.Add( new BtrDelivery { - Id = _hashUtil.Generate(), + Id = new MongoId(), ScheduledTime = (int)GetBTRDeliveryReturnTimestamp(), Items = items, } diff --git a/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs b/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs index e0f01859..fbd46713 100644 --- a/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs @@ -137,7 +137,7 @@ public class CircleOfCultistService( _hideoutConfig.CultistCircle ), rewardAmountRoubles, - cultistCircleStashId, + cultistCircleStashId.Value, _hideoutConfig.CultistCircle ); @@ -153,7 +153,7 @@ public class CircleOfCultistService( pmcData, rewards, containerGrid, - cultistCircleStashId, + cultistCircleStashId.Value, output ); @@ -352,7 +352,7 @@ public class CircleOfCultistService( protected List> GetRewardsWithinBudget( List rewardItemTplPool, double rewardBudget, - string cultistCircleStashId, + MongoId cultistCircleStashId, CultistCircleSettings circleConfig ) { @@ -651,7 +651,7 @@ public class CircleOfCultistService( /// Item chosen /// Rouble amount of pool remaining to fill /// Size of stack - protected int GetRewardStackSize(string itemTpl, int rewardPoolRemaining) + protected int GetRewardStackSize(MongoId itemTpl, int rewardPoolRemaining) { if (_itemHelper.IsOfBaseclass(itemTpl, BaseClasses.AMMO)) { @@ -1014,8 +1014,8 @@ public class CircleOfCultistService( string sessionId, PmcData pmcData, List> rewards, - int[][] containerGrid, - string cultistCircleStashId, + int[,] containerGrid, + MongoId cultistCircleStashId, ItemEventRouterResponse output ) { diff --git a/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs b/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs index a3aef213..c1e88240 100644 --- a/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs @@ -3,6 +3,7 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Generators; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.ItemEvent; @@ -20,7 +21,6 @@ namespace SPTarkov.Server.Core.Services; public class CreateProfileService( ISptLogger _logger, TimeUtil _timeUtil, - HashUtil _hashUtil, DatabaseService _databaseService, ServerLocalisationService _serverLocalisationService, ProfileHelper _profileHelper, @@ -55,7 +55,7 @@ public class CreateProfileService( pmcData.Savage = account.ProfileInfo.ScavengerId; pmcData.SessionId = sessionId; pmcData.Info.Nickname = request.Nickname; - pmcData.Info.LowerNickname = request.Nickname.ToLower(); + pmcData.Info.LowerNickname = request.Nickname.ToLowerInvariant(); pmcData.Info.RegistrationDate = (int)_timeUtil.GetTimeStamp(); pmcData.Info.Voice = _databaseService.GetCustomization()[request.VoiceId].Name; pmcData.Stats = _profileHelper.GetDefaultCounters(); @@ -67,7 +67,7 @@ public class CreateProfileService( pmcData.RepeatableQuests = []; pmcData.CarExtractCounts = new Dictionary(); pmcData.CoopExtractCounts = new Dictionary(); - pmcData.Achievements = new Dictionary(); + pmcData.Achievements = new Dictionary(); // Process handling if the account has been forced to wipe // BSG keeps both the achievements, prestige level and the total in-game time in a wipe @@ -253,7 +253,7 @@ public class CreateProfileService( protected void UpdateInventoryEquipmentId(PmcData pmcData) { var oldEquipmentId = pmcData.Inventory.Equipment; - pmcData.Inventory.Equipment = _hashUtil.Generate(); + pmcData.Inventory.Equipment = new MongoId(); foreach (var item in pmcData.Inventory.Items) { diff --git a/Libraries/SPTarkov.Server.Core/Services/DatabaseService.cs b/Libraries/SPTarkov.Server.Core/Services/DatabaseService.cs index 549ce630..a13a1717 100644 --- a/Libraries/SPTarkov.Server.Core/Services/DatabaseService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/DatabaseService.cs @@ -1,6 +1,7 @@ using System.Diagnostics; using SPTarkov.Common.Extensions; using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; @@ -9,7 +10,6 @@ using SPTarkov.Server.Core.Models.Spt.Server; using SPTarkov.Server.Core.Models.Spt.Templates; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Servers; -using SPTarkov.Server.Core.Utils; using Hideout = SPTarkov.Server.Core.Models.Spt.Hideout.Hideout; using Locations = SPTarkov.Server.Core.Models.Spt.Server.Locations; using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel; @@ -23,8 +23,7 @@ namespace SPTarkov.Server.Core.Services; public class DatabaseService( ISptLogger _logger, DatabaseServer _databaseServer, - ServerLocalisationService _serverLocalisationService, - HashUtil _hashUtil + ServerLocalisationService _serverLocalisationService ) { private bool _isDataValid = true; @@ -122,7 +121,8 @@ public class DatabaseService( /// assets/database/locations/ public Location? GetLocation(string locationId) { - var desiredLocation = GetLocations()?.GetByJsonProp(locationId.ToLower()); + var desiredLocation = GetLocations() + ?.GetByJsonProp(locationId.ToLowerInvariant()); if (desiredLocation == null) { _logger.Error( @@ -280,7 +280,7 @@ public class DatabaseService( } /// assets/database/templates/prices.json - public Dictionary GetPrices() + public Dictionary GetPrices() { if (_databaseServer.GetTables().Templates?.Prices == null) { @@ -328,7 +328,7 @@ public class DatabaseService( } /// assets/database/traders/ - public Dictionary GetTraders() + public Dictionary GetTraders() { if (_databaseServer.GetTables().Traders == null) { @@ -414,7 +414,7 @@ public class DatabaseService( { foreach (var keyValuePair in table) { - if (!_hashUtil.IsValidMongoId(keyValuePair.Key)) + if (!keyValuePair.Key.IsValidMongoId()) { _logger.Error($"Invalid {tableType} ID: '{keyValuePair.Key}'"); return false; @@ -428,7 +428,7 @@ public class DatabaseService( { foreach (var keyValuePair in table) { - if (!_hashUtil.IsValidMongoId(keyValuePair.Key)) + if (!keyValuePair.Key.IsValidMongoId()) { _logger.Error($"Invalid {tableType} ID: '{keyValuePair.Key}'"); return false; diff --git a/Libraries/SPTarkov.Server.Core/Services/FenceService.cs b/Libraries/SPTarkov.Server.Core/Services/FenceService.cs index 4e2bff8b..242e6809 100644 --- a/Libraries/SPTarkov.Server.Core/Services/FenceService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/FenceService.cs @@ -167,8 +167,8 @@ public class FenceService( var createAssort = new CreateFenceAssortsResult { SptItems = [], - BarterScheme = new Dictionary>>(), - LoyalLevelItems = new Dictionary(), + BarterScheme = new Dictionary>>(), + LoyalLevelItems = new Dictionary(), }; createAssort.BarterScheme[root.Id] = [ @@ -186,7 +186,7 @@ public class FenceService( /// The item tpl to calculate the fence price for /// The items (with its children) to calculate fence price for /// Price of the item for Fence - public double? GetItemPrice(string itemTpl, List items) + public double? GetItemPrice(MongoId itemTpl, List items) { return itemHelper.IsOfBaseclass(itemTpl, BaseClasses.AMMO_BOX) ? GetAmmoBoxPrice(items) * traderConfig.Fence.ItemPriceMult @@ -718,8 +718,8 @@ public class FenceService( return new TraderAssort { Items = [], - BarterScheme = new Dictionary>>(), - LoyalLevelItems = new Dictionary(), + BarterScheme = new Dictionary>>(), + LoyalLevelItems = new Dictionary(), NextResupply = GetNextFenceUpdateTimestamp(), }; } @@ -738,8 +738,8 @@ public class FenceService( var result = new CreateFenceAssortsResult { SptItems = [], - BarterScheme = new Dictionary>>(), - LoyalLevelItems = new Dictionary(), + BarterScheme = new Dictionary>>(), + LoyalLevelItems = new Dictionary(), }; var baseFenceAssortClone = _cloner.Clone(databaseService.GetTrader(Traders.FENCE).Assort); @@ -782,7 +782,7 @@ public class FenceService( int? assortCount, CreateFenceAssortsResult assorts, TraderAssort baseFenceAssortClone, - Dictionary itemTypeLimits, + Dictionary itemTypeLimits, int loyaltyLevel ) { @@ -1012,7 +1012,7 @@ public class FenceService( return ItemInPreventDupeCategoryList(itemDbDetails.Id); } - protected bool ItemInPreventDupeCategoryList(string tpl) + protected bool ItemInPreventDupeCategoryList(MongoId tpl) { // Item type in config list return itemHelper.IsOfBaseclasses(tpl, traderConfig.Fence.PreventDuplicateOffersOfCategory); @@ -1025,7 +1025,7 @@ public class FenceService( /// Root item having price adjusted /// DB template of item protected void AdjustItemPriceByQuality( - Dictionary>> barterSchemes, + Dictionary>> barterSchemes, Item itemRoot, TemplateItem itemTemplate ) @@ -1066,8 +1066,8 @@ public class FenceService( } protected (int current, int max)? GetMatchingItemLimit( - Dictionary itemTypeLimits, - string itemTpl + Dictionary itemTypeLimits, + MongoId itemTpl ) { foreach (var baseTypeKey in itemTypeLimits.Keys) @@ -1301,7 +1301,7 @@ public class FenceService( var modItemToAdjust = armorItemAndMods.FirstOrDefault(mod => string.Equals( mod.SlotId, - requiredSlot.Name.ToLower(), + requiredSlot.Name.ToLowerInvariant(), StringComparison.OrdinalIgnoreCase ) ); @@ -1680,11 +1680,11 @@ public class FenceService( /// /// Limits as defined in config /// Record, key: item tplId, value: current/max item count allowed - protected Dictionary InitItemLimitCounter( - Dictionary limits + protected Dictionary InitItemLimitCounter( + Dictionary limits ) { - var itemTypeCounts = new Dictionary(); + var itemTypeCounts = new Dictionary(); foreach (var x in limits.Keys) { diff --git a/Libraries/SPTarkov.Server.Core/Services/GiftService.cs b/Libraries/SPTarkov.Server.Core/Services/GiftService.cs index 5cdb99c9..8561039f 100644 --- a/Libraries/SPTarkov.Server.Core/Services/GiftService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/GiftService.cs @@ -16,7 +16,6 @@ public class GiftService( ISptLogger _logger, MailSendService _mailSendService, ServerLocalisationService _serverLocalisationService, - HashUtil _hashUtil, TimeUtil _timeUtil, ProfileHelper _profileHelper, ConfigServer _configServer diff --git a/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs b/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs index 03a52852..e40b212a 100644 --- a/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs @@ -10,7 +10,6 @@ using SPTarkov.Server.Core.Models.Spt.Services; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Utils; -using SPTarkov.Server.Core.Utils.Cloners; using Insurance = SPTarkov.Server.Core.Models.Eft.Profile.Insurance; using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel; @@ -28,8 +27,7 @@ public class InsuranceService( ProfileHelper _profileHelper, ServerLocalisationService _serverLocalisationService, MailSendService _mailSendService, - ConfigServer _configServer, - ICloner _cloner + ConfigServer _configServer ) { protected readonly InsuranceConfig _insuranceConfig = @@ -170,8 +168,7 @@ public class InsuranceService( return _timeUtil.GetTimeStamp() + _insuranceConfig.ReturnTimeOverrideSeconds; } - var insuranceReturnTimeBonusSum = _profileHelper.GetBonusValueFromProfile( - pmcData, + var insuranceReturnTimeBonusSum = pmcData.GetBonusValueFromProfile( BonusType.InsuranceReturnTime ); diff --git a/Libraries/SPTarkov.Server.Core/Services/ItemBaseClassService.cs b/Libraries/SPTarkov.Server.Core/Services/ItemBaseClassService.cs index 0fd9bd45..a67cc9a5 100644 --- a/Libraries/SPTarkov.Server.Core/Services/ItemBaseClassService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/ItemBaseClassService.cs @@ -1,4 +1,5 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Utils; using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel; @@ -16,7 +17,7 @@ public class ItemBaseClassService( ) { private bool _cacheGenerated; - private Dictionary> _itemBaseClassesCache; + private Dictionary> _itemBaseClassesCache = []; /// /// Create cache and store inside ItemBaseClassService
@@ -25,7 +26,7 @@ public class ItemBaseClassService( public void HydrateItemBaseClassCache() { // Clear existing cache - _itemBaseClassesCache = new Dictionary>(); + _itemBaseClassesCache = new Dictionary>(); var items = _databaseService.GetItems(); var filteredDbItems = items.Where(x => @@ -50,12 +51,12 @@ public class ItemBaseClassService( ///
/// Item tpl to store base ids against in dictionary /// Item being checked - protected void AddBaseItems(string itemIdToUpdate, TemplateItem item) + protected void AddBaseItems(MongoId itemIdToUpdate, TemplateItem item) { _itemBaseClassesCache[itemIdToUpdate].Add(item.Parent); - var parent = _databaseService.GetItems()[item.Parent]; + _databaseService.GetItems().TryGetValue(item.Parent, out var parent); - if (!string.IsNullOrEmpty(parent.Parent)) + if (parent is not null && !parent.Parent.IsEmpty()) { AddBaseItems(itemIdToUpdate, parent); } @@ -67,14 +68,14 @@ public class ItemBaseClassService( /// ItemTpl item to check base classes of /// BaseClass base class to check for /// true if item inherits from base class passed in - public bool ItemHasBaseClass(string itemTpl, ICollection baseClasses) + public bool ItemHasBaseClass(MongoId itemTpl, ICollection baseClasses) { if (!_cacheGenerated) { HydrateItemBaseClassCache(); } - if (string.IsNullOrEmpty(itemTpl)) + if (itemTpl.IsEmpty()) { _logger.Warning("Unable to check itemTpl base class as value passed is null"); @@ -119,7 +120,7 @@ public class ItemBaseClassService( /// /// ItemTemplateId item to check /// True if item is of type Item - private bool CachedItemIsOfItemType(string itemTemplateId) + private bool CachedItemIsOfItemType(MongoId itemTemplateId) { return string.Equals( _databaseService.GetItems()[itemTemplateId]?.Type, @@ -133,7 +134,7 @@ public class ItemBaseClassService( /// /// ItemTpl item to get base classes for /// array of base classes - public List GetItemBaseClasses(string itemTpl) + public List GetItemBaseClasses(MongoId itemTpl) { if (!_cacheGenerated) { diff --git a/Libraries/SPTarkov.Server.Core/Services/ItemFilterService.cs b/Libraries/SPTarkov.Server.Core/Services/ItemFilterService.cs index fcc81b32..6384cb31 100644 --- a/Libraries/SPTarkov.Server.Core/Services/ItemFilterService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/ItemFilterService.cs @@ -27,7 +27,7 @@ public class ItemFilterService( /// /// Template id /// True if blacklisted - public bool ItemBlacklisted(string tpl) + public bool ItemBlacklisted(MongoId tpl) { if (_itemBlacklistCache.Count == 0) { @@ -42,7 +42,7 @@ public class ItemFilterService( /// /// Item tpl to check is on blacklist /// True when blacklisted - public bool ItemRewardBlacklisted(string tpl) + public bool ItemRewardBlacklisted(MongoId tpl) { return _itemConfig.RewardItemBlacklist.Contains(tpl); } @@ -88,7 +88,7 @@ public class ItemFilterService( /// /// template id /// True if boss item - public bool BossItem(string tpl) + public bool BossItem(MongoId tpl) { return _itemConfig.BossItems.Contains(tpl); } @@ -107,7 +107,7 @@ public class ItemFilterService( /// /// Template id /// True if blacklisted - public bool IsLootableItemBlacklisted(string itemKey) + public bool IsLootableItemBlacklisted(MongoId itemKey) { if (!_lootableItemBlacklistCache.Any()) { @@ -117,7 +117,7 @@ public class ItemFilterService( return _lootableItemBlacklistCache.Contains(itemKey); } - public bool IsItemBlacklisted(string tpl) + public bool IsItemBlacklisted(MongoId tpl) { if (!_itemBlacklistCache.Any()) { @@ -148,7 +148,7 @@ public class ItemFilterService( /// /// Template id /// True if boss item - public bool IsBossItem(string tpl) + public bool IsBossItem(MongoId tpl) { return _itemConfig.BossItems.Contains(tpl); } @@ -158,7 +158,7 @@ public class ItemFilterService( /// /// Item tpl to check is on blacklist /// true when blacklisted - public bool IsItemRewardBlacklisted(string tpl) + public bool IsItemRewardBlacklisted(MongoId tpl) { return _itemConfig.RewardItemBlacklist.Contains(tpl); } diff --git a/Libraries/SPTarkov.Server.Core/Services/LocaleService.cs b/Libraries/SPTarkov.Server.Core/Services/LocaleService.cs index 98d2e8c8..2945cc65 100644 --- a/Libraries/SPTarkov.Server.Core/Services/LocaleService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/LocaleService.cs @@ -78,7 +78,7 @@ public class LocaleService( StringComparison.OrdinalIgnoreCase ) ? GetPlatformForClientLocale() - : _localeConfig.GameLocale.ToLower(); // Use custom locale value + : _localeConfig.GameLocale.ToLowerInvariant(); // Use custom locale value } return _chosenClientLocale; @@ -99,7 +99,7 @@ public class LocaleService( StringComparison.OrdinalIgnoreCase ) ? GetPlatformForServerLocale() - : _localeConfig.ServerLocale.ToLower(); // Use custom locale value + : _localeConfig.ServerLocale.ToLowerInvariant(); // Use custom locale value } return _chosenServerLocale; @@ -136,7 +136,7 @@ public class LocaleService( return "en"; } - var baseNameCode = platformLocale.TwoLetterISOLanguageName.ToLower(); + var baseNameCode = platformLocale.TwoLetterISOLanguageName.ToLowerInvariant(); if (_localeConfig.ServerSupportedLocales.Contains(baseNameCode)) { // Found a matching locale @@ -144,7 +144,7 @@ public class LocaleService( } // Check if base language (e.g. CN / EN / DE) exists - var languageCode = platformLocale.Name.ToLower(); + var languageCode = platformLocale.Name.ToLowerInvariant(); if (_localeConfig.ServerSupportedLocales.Contains(languageCode)) { if (baseNameCode == "zh") @@ -183,13 +183,13 @@ public class LocaleService( } var locales = _databaseServer.GetTables().Locales; - var baseNameCode = platformLocale.TwoLetterISOLanguageName.ToLower(); + var baseNameCode = platformLocale.TwoLetterISOLanguageName.ToLowerInvariant(); if (locales.Global.ContainsKey(baseNameCode)) { return baseNameCode; } - var languageCode = platformLocale.Name.ToLower(); + var languageCode = platformLocale.Name.ToLowerInvariant(); if (locales.Global.ContainsKey(languageCode)) { return languageCode; diff --git a/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs b/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs index 7e7daaf5..28c9285a 100644 --- a/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs @@ -28,7 +28,6 @@ public class LocationLifecycleService protected ICloner _cloner; protected ConfigServer _configServer; protected DatabaseService _databaseService; - protected HashUtil _hashUtil; protected HealthHelper _healthHelper; protected HideoutConfig _hideoutConfig; protected InRaidConfig _inRaidConfig; @@ -97,7 +96,6 @@ public class LocationLifecycleService _timeUtil = timeUtil; _databaseService = databaseService; _profileHelper = profileHelper; - _hashUtil = hashUtil; _profileActivityService = profileActivityService; _botGenerationCacheService = botGenerationCacheService; _botNameService = botNameService; @@ -171,7 +169,7 @@ public class LocationLifecycleService Transition = new Transition { TransitionType = TransitionType.NONE, - TransitionRaidId = _hashUtil.Generate(), + TransitionRaidId = new MongoId(), TransitionCount = 0, VisitedLocations = [], }, @@ -446,8 +444,8 @@ public class LocationLifecycleService // ServerId has various info stored in it, delimited by a period var serverDetails = request.ServerId.Split("."); - var locationName = serverDetails[0].ToLower(); - var isPmc = serverDetails[1].ToLower().Contains("pmc"); + var locationName = serverDetails[0].ToLowerInvariant(); + var isPmc = serverDetails[1].ToLowerInvariant().Contains("pmc"); var isDead = IsPlayerDead(request.Results); var isTransfer = IsMapToMapTransfer(request.Results); var isSurvived = IsPlayerSurvived(request.Results); @@ -520,7 +518,7 @@ public class LocationLifecycleService // Generate randomised reward for taking coop extract var loot = _lootGenerator.CreateRandomLoot(_traderConfig.Fence.CoopExtractGift); - var parentId = _hashUtil.Generate(); + var parentId = new MongoId(); foreach (var itemAndChildren in loot) { // Set all root items parent to new id @@ -554,7 +552,7 @@ public class LocationLifecycleService return false; } - if (extractName.ToLower().Contains("v-ex")) + if (extractName.ToLowerInvariant().Contains("v-ex")) { return true; } @@ -1018,7 +1016,7 @@ public class LocationLifecycleService var roles = new List { "pmcbear", "pmcusec" }; var victims = postRaidProfile - .Stats.Eft.Victims.Where(victim => roles.Contains(victim.Role.ToLower())) + .Stats.Eft.Victims.Where(victim => roles.Contains(victim.Role.ToLowerInvariant())) .ToList(); if (victims?.Count > 0) // Player killed PMCs, send some mail responses to them @@ -1320,7 +1318,7 @@ public class LocationLifecycleService /// All profile achievements at the end of a raid protected void ProcessAchievementRewards( SptProfile fullProfile, - Dictionary? postRaidAchievements + Dictionary? postRaidAchievements ) { var sessionId = fullProfile.ProfileInfo.ProfileId; diff --git a/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs b/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs index e635330d..1d776eee 100644 --- a/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs @@ -1,6 +1,7 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Profile; using SPTarkov.Server.Core.Models.Enums; @@ -16,7 +17,6 @@ namespace SPTarkov.Server.Core.Services; [Injectable] public class MailSendService( ISptLogger _logger, - HashUtil _hashUtil, TimeUtil _timeUtil, SaveServer _saveServer, DatabaseService _databaseService, @@ -25,7 +25,6 @@ public class MailSendService( NotificationSendHelper _notificationSendHelper, ServerLocalisationService _serverLocalisationService, ItemHelper _itemHelper, - TraderHelper _traderHelper, ICloner _cloner ) { @@ -194,7 +193,7 @@ public class MailSendService( // add items to message if (items?.Count > 0) { - var rootItemParentId = _hashUtil.Generate(); + var rootItemParentId = new MongoId(); details.Items.AddRange(items.AdoptOrphanedItems(rootItemParentId)); details.ItemsMaxStorageLifetimeSeconds = maxStorageTimeSeconds; @@ -366,7 +365,7 @@ public class MailSendService( dialogWithNpc.Messages.Add( new Message { - Id = _hashUtil.Generate(), + Id = new MongoId(), DateTime = _timeUtil.GetTimeStamp(), HasRewards = false, UserId = playerProfile.CharacterData.PmcData.Id, @@ -387,7 +386,7 @@ public class MailSendService( { Message message = new() { - Id = _hashUtil.Generate(), + Id = new MongoId(), UserId = dialogId, MessageType = messageDetails.Sender, DateTime = _timeUtil.GetTimeStamp(), @@ -506,7 +505,7 @@ public class MailSendService( // No parent id, generate random id and add (doesn't need to be actual parentId from db, only unique) if (parentItem?.ParentId is null) { - parentItem.ParentId = _hashUtil.Generate(); + parentItem.ParentId = new MongoId(); } // Prep return object diff --git a/Libraries/SPTarkov.Server.Core/Services/Mod/CustomItemService.cs b/Libraries/SPTarkov.Server.Core/Services/Mod/CustomItemService.cs index fd27a461..211d1fd4 100644 --- a/Libraries/SPTarkov.Server.Core/Services/Mod/CustomItemService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/Mod/CustomItemService.cs @@ -6,7 +6,6 @@ using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Mod; using SPTarkov.Server.Core.Models.Utils; -using SPTarkov.Server.Core.Utils; using SPTarkov.Server.Core.Utils.Cloners; namespace SPTarkov.Server.Core.Services.Mod; @@ -14,12 +13,10 @@ namespace SPTarkov.Server.Core.Services.Mod; [Injectable] public class CustomItemService( ISptLogger logger, - HashUtil hashUtil, DatabaseService databaseService, ItemHelper itemHelper, ItemBaseClassService itemBaseClassService, - ICloner cloner, - LocaleService localeService + ICloner cloner ) { /// @@ -51,7 +48,11 @@ public class CustomItemService( } // Clone existing item - var itemClone = cloner.Clone(tables.Templates.Items[newItemDetails.ItemTplToClone]); + tables.Templates.Items.TryGetValue( + newItemDetails.ItemTplToClone.Value, + out var itemToClone + ); + var itemClone = cloner.Clone(itemToClone); // Update id and parentId of item itemClone.Id = newItemId; @@ -137,9 +138,9 @@ public class CustomItemService( /// /// ID supplied to code /// ItemID - protected string GetOrGenerateIdForItem(string newId) + protected MongoId GetOrGenerateIdForItem(string newId) { - return newId == "" ? hashUtil.Generate() : newId; + return string.IsNullOrEmpty(newId) ? new MongoId() : new MongoId(newId); } /// diff --git a/Libraries/SPTarkov.Server.Core/Services/PaymentService.cs b/Libraries/SPTarkov.Server.Core/Services/PaymentService.cs index 661f9892..1dc8893c 100644 --- a/Libraries/SPTarkov.Server.Core/Services/PaymentService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/PaymentService.cs @@ -1,6 +1,7 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Inventory; @@ -18,7 +19,6 @@ namespace SPTarkov.Server.Core.Services; [Injectable(InjectionType.Singleton)] public class PaymentService( ISptLogger _logger, - HashUtil _hashUtil, HttpResponseUtil _httpResponseUtil, HandbookHelper _handbookHelper, TraderHelper _traderHelper, @@ -272,7 +272,7 @@ public class PaymentService( // Create single currency item with all currency on it var rootCurrencyReward = new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = currencyTpl, Upd = new Upd { StackObjectsCount = Math.Round(calcAmount) }, }; @@ -590,7 +590,7 @@ public class PaymentService( /// Players stash ID /// True if it's in inventory protected InventoryLocation GetItemLocation( - string itemId, + MongoId itemId, List inventoryItems, string playerStashId ) diff --git a/Libraries/SPTarkov.Server.Core/Services/PmcChatResponseService.cs b/Libraries/SPTarkov.Server.Core/Services/PmcChatResponseService.cs index bac9030e..d8fb3661 100644 --- a/Libraries/SPTarkov.Server.Core/Services/PmcChatResponseService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/PmcChatResponseService.cs @@ -15,11 +15,9 @@ namespace SPTarkov.Server.Core.Services; [Injectable(InjectionType.Singleton)] public class PmcChatResponseService( ISptLogger _logger, - HashUtil _hashUtil, RandomUtil _randomUtil, NotificationSendHelper _notificationSendHelper, WeightedRandomHelper _weightedRandomHelper, - DatabaseService _databaseService, ServerLocalisationService _serverLocalisationService, GiftService _giftService, LocaleService _localeService, @@ -181,7 +179,7 @@ public class PmcChatResponseService( if (StripCapitalisation(isVictim)) { - responseText = responseText.ToLower(); + responseText = responseText.ToLowerInvariant(); } if (AllCaps(isVictim)) diff --git a/Libraries/SPTarkov.Server.Core/Services/PostDbLoadService.cs b/Libraries/SPTarkov.Server.Core/Services/PostDbLoadService.cs index e6d1a9c9..8e965afd 100644 --- a/Libraries/SPTarkov.Server.Core/Services/PostDbLoadService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/PostDbLoadService.cs @@ -5,7 +5,6 @@ using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Servers; -using SPTarkov.Server.Core.Utils; using SPTarkov.Server.Core.Utils.Cloners; namespace SPTarkov.Server.Core.Services; @@ -13,7 +12,6 @@ namespace SPTarkov.Server.Core.Services; [Injectable(InjectionType.Singleton)] public class PostDbLoadService( ISptLogger _logger, - HashUtil _hashUtil, DatabaseService _databaseService, ServerLocalisationService _serverLocalisationService, SeasonalEventService _seasonalEventService, diff --git a/Libraries/SPTarkov.Server.Core/Services/ProfileFixerService.cs b/Libraries/SPTarkov.Server.Core/Services/ProfileFixerService.cs index 55e902a1..6e4b3d6a 100644 --- a/Libraries/SPTarkov.Server.Core/Services/ProfileFixerService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/ProfileFixerService.cs @@ -1037,7 +1037,7 @@ public class ProfileFixerService( protected Bonus? GetBonusFromProfile(List? profileBonuses, Bonus bonus) { // match by id first, used by "TextBonus" bonuses - if (bonus.Id is not null) + if (!bonus.Id.IsEmpty()) { return profileBonuses?.FirstOrDefault(x => x.Id == bonus.Id); } diff --git a/Libraries/SPTarkov.Server.Core/Services/RagfairLinkedItemService.cs b/Libraries/SPTarkov.Server.Core/Services/RagfairLinkedItemService.cs index 63a6d1d4..546cf54d 100644 --- a/Libraries/SPTarkov.Server.Core/Services/RagfairLinkedItemService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/RagfairLinkedItemService.cs @@ -1,4 +1,5 @@ using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Helpers; using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; @@ -14,9 +15,9 @@ public class RagfairLinkedItemService( ISptLogger logger ) { - protected readonly Dictionary> linkedItemsCache = new(); + protected readonly Dictionary> linkedItemsCache = new(); - public HashSet GetLinkedItems(string linkedSearchId) + public HashSet GetLinkedItems(MongoId linkedSearchId) { if (!linkedItemsCache.TryGetValue(linkedSearchId, out var set)) { @@ -34,7 +35,7 @@ public class RagfairLinkedItemService( /// /// Item to get sub-items for /// TemplateItem list - public List GetLinkedDbItems(string itemTpl) + public List GetLinkedDbItems(MongoId itemTpl) { var linkedItemsToWeaponTpls = GetLinkedItems(itemTpl); return linkedItemsToWeaponTpls.Aggregate( @@ -128,8 +129,10 @@ public class RagfairLinkedItemService( } // Get the first cylinder filter tpl - var cylinderTpl = cylinderMod.Props?.Filters?[0].Filter?.FirstOrDefault(); - if (string.IsNullOrEmpty(cylinderTpl)) + var cylinderTpl = + cylinderMod.Props?.Filters?[0].Filter?.FirstOrDefault() ?? new MongoId(null); + + if (!cylinderTpl.IsValidMongoId()) { // No cylinder, nothing to do return; diff --git a/Libraries/SPTarkov.Server.Core/Services/RagfairOfferService.cs b/Libraries/SPTarkov.Server.Core/Services/RagfairOfferService.cs index b8cc54bf..453443b5 100644 --- a/Libraries/SPTarkov.Server.Core/Services/RagfairOfferService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/RagfairOfferService.cs @@ -1,6 +1,7 @@ using SPTarkov.Common.Extensions; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Ragfair; using SPTarkov.Server.Core.Models.Spt.Config; @@ -16,7 +17,6 @@ namespace SPTarkov.Server.Core.Services; public class RagfairOfferService( ISptLogger logger, TimeUtil timeUtil, - HashUtil hashUtil, DatabaseService databaseService, SaveServer saveServer, RagfairServerHelper ragfairServerHelper, @@ -42,12 +42,12 @@ public class RagfairOfferService( return ragfairOfferHolder.GetOffers(); } - public RagfairOffer? GetOfferByOfferId(string offerId) + public RagfairOffer? GetOfferByOfferId(MongoId offerId) { return ragfairOfferHolder.GetOfferById(offerId); } - public List? GetOffersOfType(string templateId) + public List? GetOffersOfType(MongoId templateId) { return ragfairOfferHolder.GetOffersByTemplate(templateId); } @@ -268,7 +268,7 @@ public class RagfairOfferService( var unstackedItems = UnstackOfferItems(playerOffer.Items); // Need to regenerate Ids to ensure returned item(s) have correct parent values - var newParentId = hashUtil.Generate(); + var newParentId = new MongoId(); foreach (var item in unstackedItems) { // Refresh root items' parentIds diff --git a/Libraries/SPTarkov.Server.Core/Services/RagfairPriceService.cs b/Libraries/SPTarkov.Server.Core/Services/RagfairPriceService.cs index b38c2d87..f04d9336 100644 --- a/Libraries/SPTarkov.Server.Core/Services/RagfairPriceService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/RagfairPriceService.cs @@ -29,7 +29,7 @@ public class RagfairPriceService( ) { private readonly RagfairConfig _ragfairConfig = _configServer.GetConfig(); - protected Dictionary? _staticPrices; + protected Dictionary? _staticPrices; /// /// Generate static (handbook) and dynamic (prices.json) flea prices, store inside class as dictionaries @@ -50,7 +50,7 @@ public class RagfairPriceService( /// public void RefreshStaticPrices() { - _staticPrices = new Dictionary(); + _staticPrices = new Dictionary(); foreach ( var item in _databaseService .GetItems() @@ -77,9 +77,9 @@ public class RagfairPriceService( /// /// Item tpl id to get price for /// price in roubles - public double GetFleaPriceForItem(string tplId) + public double GetFleaPriceForItem(MongoId tplId) { - // Get dynamic price (templates/prices), if that doesnt exist get price from static array (templates/handbook) + // Get dynamic price (templates/prices), if that doesn't exist get price from static array (templates/handbook) var itemPrice = _itemHelper.GetDynamicItemPrice(tplId) ?? GetStaticPriceForItem(tplId); if (itemPrice is null) { @@ -122,7 +122,7 @@ public class RagfairPriceService( /// /// Item template id to look up /// Price in roubles - public double? GetDynamicPriceForItem(string itemTpl) + public double? GetDynamicPriceForItem(MongoId itemTpl) { _databaseService.GetPrices().TryGetValue(itemTpl, out var value); @@ -134,7 +134,7 @@ public class RagfairPriceService( /// /// item template id to look up /// price in roubles - public double? GetStaticPriceForItem(string itemTpl) + public double? GetStaticPriceForItem(MongoId itemTpl) { return _handbookHelper.GetTemplatePrice(itemTpl); } @@ -144,7 +144,7 @@ public class RagfairPriceService( /// This will refresh the caches prior to building the output /// /// Dictionary of item tpls and rouble cost - public Dictionary GetAllFleaPrices() + public Dictionary GetAllFleaPrices() { var dynamicPrices = _databaseService.GetPrices(); // Use dynamic prices first, fill in any gaps with data from static prices (handbook) @@ -154,7 +154,7 @@ public class RagfairPriceService( .ToDictionary(x => x.Key, x => x.First().Value); } - public Dictionary GetAllStaticPrices() + public Dictionary GetAllStaticPrices() { // Refresh the cache so we include any newly added custom items if (_staticPrices is null) @@ -251,10 +251,10 @@ public class RagfairPriceService( /// /// public double? GetDynamicItemPrice( - string itemTemplateId, + MongoId itemTemplateId, string desiredCurrency, - Item item = null, - List offerItems = null, + Item? item = null, + List? offerItems = null, bool? isPackOffer = null ) { @@ -347,7 +347,7 @@ public class RagfairPriceService( /// Adjusted price of item protected double AdjustUnreasonablePrice( UnreasonableModPrices unreasonableItemChange, - string itemTpl, + MongoId itemTpl, double price ) { @@ -402,7 +402,7 @@ public class RagfairPriceService( /// price of item /// item template Id being checked /// adjusted price value in roubles - protected double AdjustPriceIfBelowHandbook(double itemPrice, string itemTpl) + protected double AdjustPriceIfBelowHandbook(double itemPrice, MongoId itemTpl) { var itemHandbookPrice = GetStaticPriceForItem(itemTpl); var priceDifferencePercent = GetPriceDifference(itemHandbookPrice.Value, itemPrice); @@ -507,7 +507,7 @@ public class RagfairPriceService( /// /// Item to get highest price of /// rouble cost - protected double? GetHighestHandbookOrTraderPriceAsRouble(string itemTpl) + protected double? GetHighestHandbookOrTraderPriceAsRouble(MongoId itemTpl) { var price = GetStaticPriceForItem(itemTpl); var traderPrice = _traderHelper.GetHighestSellToTraderPrice(itemTpl); diff --git a/Libraries/SPTarkov.Server.Core/Services/RagfairRequiredItemsService.cs b/Libraries/SPTarkov.Server.Core/Services/RagfairRequiredItemsService.cs index 3ad94a2b..eb633264 100644 --- a/Libraries/SPTarkov.Server.Core/Services/RagfairRequiredItemsService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/RagfairRequiredItemsService.cs @@ -1,6 +1,7 @@ using System.Collections.Concurrent; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Services; @@ -13,14 +14,14 @@ public class RagfairRequiredItemsService( /// /// Key = tpl /// - protected readonly ConcurrentDictionary> _requiredItemsCache = new(); + protected readonly ConcurrentDictionary> _requiredItemsCache = new(); /// /// Get the offerId of offers that require the supplied tpl /// /// Tpl to find offers ids for /// - public HashSet GetRequiredOffersById(string tpl) + public HashSet GetRequiredOffersById(MongoId tpl) { if (_requiredItemsCache.TryGetValue(tpl, out var offerIds)) { diff --git a/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs b/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs index 55ae0de8..e7a847a2 100644 --- a/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs @@ -98,8 +98,7 @@ public class RagfairTaxService( itemPriceMult = Math.Pow(4.0, itemPriceMult); requirementPriceMult = Math.Pow(4.0, requirementPriceMult); - var hideoutFleaTaxDiscountBonusSum = _profileHelper.GetBonusValueFromProfile( - pmcData, + var hideoutFleaTaxDiscountBonusSum = pmcData.GetBonusValueFromProfile( BonusType.RagfairCommission ); // A negative bonus implies a lower discount, since we subtract later, invert the value here diff --git a/Libraries/SPTarkov.Server.Core/Services/RaidTimeAdjustmentService.cs b/Libraries/SPTarkov.Server.Core/Services/RaidTimeAdjustmentService.cs index cb89ca54..96a776bf 100644 --- a/Libraries/SPTarkov.Server.Core/Services/RaidTimeAdjustmentService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/RaidTimeAdjustmentService.cs @@ -148,7 +148,7 @@ public class RaidTimeAdjustmentService( public RaidChanges GetRaidAdjustments(string sessionId, GetRaidTimeRequest request) { var globals = _databaseService.GetGlobals(); - var mapBase = _databaseService.GetLocation(request.Location.ToLower()).Base; + var mapBase = _databaseService.GetLocation(request.Location.ToLowerInvariant()).Base; var baseEscapeTimeMinutes = mapBase.EscapeTimeLimit; // Prep result object to return @@ -248,7 +248,7 @@ public class RaidTimeAdjustmentService( /// ScavRaidTimeLocationSettings protected ScavRaidTimeLocationSettings GetMapSettings(string location) { - var mapSettings = _locationConfig.ScavRaidTimeSettings.Maps?[location.ToLower()]; + var mapSettings = _locationConfig.ScavRaidTimeSettings.Maps?[location.ToLowerInvariant()]; if (mapSettings is null) { _logger.Warning( diff --git a/Libraries/SPTarkov.Server.Core/Services/RepairService.cs b/Libraries/SPTarkov.Server.Core/Services/RepairService.cs index f0185842..26ac3547 100644 --- a/Libraries/SPTarkov.Server.Core/Services/RepairService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/RepairService.cs @@ -333,7 +333,7 @@ public class RepairService( string sessionId, PmcData pmcData, List repairKits, - string itemToRepairId, + MongoId itemToRepairId, ItemEventRouterResponse output ) { diff --git a/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs b/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs index 3b197dd8..d2674bb7 100644 --- a/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs @@ -28,7 +28,7 @@ public class SeasonalEventService( { private bool _christmasEventActive; - protected readonly HashSet _christmasEventItems = + protected readonly HashSet _christmasEventItems = [ ItemTpl.ARMOR_6B13_M_ASSAULT_ARMOR_CHRISTMAS_EDITION, ItemTpl.BACKPACK_SANTAS_BAG, @@ -71,7 +71,7 @@ public class SeasonalEventService( private bool _halloweenEventActive; - protected readonly HashSet _halloweenEventItems = + protected readonly HashSet _halloweenEventItems = [ ItemTpl.HEADWEAR_JACKOLANTERN_TACTICAL_PUMPKIN_HELMET, ItemTpl.FACECOVER_FACELESS_MASK, @@ -103,7 +103,7 @@ public class SeasonalEventService( /// Get an array of christmas items found in bots inventories as loot /// /// array - public HashSet GetChristmasEventItems() + public HashSet GetChristmasEventItems() { return _christmasEventItems; } @@ -112,17 +112,17 @@ public class SeasonalEventService( /// Get an array of halloween items found in bots inventories as loot /// /// array - public HashSet GetHalloweenEventItems() + public HashSet GetHalloweenEventItems() { return _halloweenEventItems; } - public bool ItemIsChristmasRelated(string itemTpl) + public bool ItemIsChristmasRelated(MongoId itemTpl) { return _christmasEventItems.Contains(itemTpl); } - public bool ItemIsHalloweenRelated(string itemTpl) + public bool ItemIsHalloweenRelated(MongoId itemTpl) { return _halloweenEventItems.Contains(itemTpl); } @@ -132,7 +132,7 @@ public class SeasonalEventService( /// /// item tpl to check for /// - public bool ItemIsSeasonalRelated(string itemTpl) + public bool ItemIsSeasonalRelated(MongoId itemTpl) { return _christmasEventItems.Contains(itemTpl) || _halloweenEventItems.Contains(itemTpl); } @@ -157,12 +157,12 @@ public class SeasonalEventService( var items = new HashSet(); if (!ChristmasEventEnabled()) { - items.UnionWith(_christmasEventItems.ToMongoIds()); + items.UnionWith(_christmasEventItems); } if (!HalloweenEventEnabled()) { - items.UnionWith(_halloweenEventItems.ToMongoIds()); + items.UnionWith(_halloweenEventItems); } return items; @@ -209,7 +209,7 @@ public class SeasonalEventService( /// /// Name of event to get gear changes for /// bots with equipment changes - protected Dictionary>>? GetEventBotGear( + protected Dictionary>>? GetEventBotGear( SeasonalEventType eventType ) { @@ -221,7 +221,7 @@ public class SeasonalEventService( /// /// Name of event to get gear changes for /// bots with loot changes - protected Dictionary>> GetEventBotLoot( + protected Dictionary>> GetEventBotLoot( SeasonalEventType eventType ) { @@ -387,12 +387,12 @@ public class SeasonalEventService( { var propInfo = props.FirstOrDefault(p => string.Equals( - p.Name.ToLower(), - lootContainerKey.ToLower(), + p.Name.ToLowerInvariant(), + lootContainerKey.ToLowerInvariant(), StringComparison.OrdinalIgnoreCase ) ); - var prop = (Dictionary?)propInfo.GetValue(botInventory.Items); + var prop = (Dictionary?)propInfo.GetValue(botInventory.Items); if (prop is null) { @@ -871,7 +871,7 @@ public class SeasonalEventService( protected void AddEventWavesToMaps(string eventType) { - var wavesToAddByMap = _seasonalEventConfig.EventWaves[eventType.ToLower()]; + var wavesToAddByMap = _seasonalEventConfig.EventWaves[eventType.ToLowerInvariant()]; if (wavesToAddByMap is null) { @@ -903,7 +903,7 @@ public class SeasonalEventService( { if ( !_seasonalEventConfig.EventBossSpawns.TryGetValue( - eventType.ToLower(), + eventType.ToLowerInvariant(), out var botsToAddPerMap ) ) @@ -1018,7 +1018,7 @@ public class SeasonalEventService( // Iterate over bots with changes to apply foreach (var botKvP in botGearChanges) { - var botToUpdate = _databaseService.GetBots().Types[botKvP.Key.ToLower()]; + var botToUpdate = _databaseService.GetBots().Types[botKvP.Key.ToLowerInvariant()]; if (botToUpdate is null) { _logger.Warning( @@ -1068,7 +1068,7 @@ public class SeasonalEventService( // Iterate over bots with changes to apply foreach (var botKvpP in botLootChanges) { - var botToUpdate = _databaseService.GetBots().Types[botKvpP.Key.ToLower()]; + var botToUpdate = _databaseService.GetBots().Types[botKvpP.Key.ToLowerInvariant()]; if (botToUpdate is null) { _logger.Warning( diff --git a/Libraries/SPTarkov.Server.Core/Utils/App.cs b/Libraries/SPTarkov.Server.Core/Utils/App.cs index 31b22b04..cde35517 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/App.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/App.cs @@ -1,10 +1,12 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.DI; +using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Helpers; using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; +using static SPTarkov.Server.Core.Extensions.StringExtensions; using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel; namespace SPTarkov.Server.Core.Utils; @@ -13,12 +15,10 @@ namespace SPTarkov.Server.Core.Utils; public class App( IServiceProvider _serviceProvider, ISptLogger _logger, - DatabaseImporter _databaseImporter, TimeUtil _timeUtil, RandomUtil _randomUtil, ServerLocalisationService _serverLocalisationService, ConfigServer _configServer, - EncodingUtil _encodingUtil, HttpServer _httpServer, DatabaseService _databaseService, IHostApplicationLifetime _appLifeTime, @@ -49,7 +49,7 @@ public class App( _logger.Debug($"Ran as admin: {Environment.IsPrivilegedProcess}"); _logger.Debug($"CPU cores: {Environment.ProcessorCount}"); _logger.Debug( - $"PATH: {_encodingUtil.ToBase64(Environment.ProcessPath ?? "null returned")}" + $"PATH: {(Environment.ProcessPath ?? "null returned").Encode(EncodeType.BASE64)}" ); _logger.Debug($"Server: {ProgramStatics.SPT_VERSION() ?? _coreConfig.SptVersion}"); diff --git a/Libraries/SPTarkov.Server.Core/Utils/Callbacks/TimeoutCallback.cs b/Libraries/SPTarkov.Server.Core/Utils/Callbacks/TimeoutCallback.cs deleted file mode 100644 index a3578bdd..00000000 --- a/Libraries/SPTarkov.Server.Core/Utils/Callbacks/TimeoutCallback.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace SPTarkov.Server.Core.Utils.Callbacks; - -public static class TimeoutCallback -{ - public static Task RunInTimespan(Action action, TimeSpan timeSpan) - { - return Task.Factory.StartNew(() => - { - Thread.Sleep(timeSpan); - action(); - }); - } -} diff --git a/Libraries/SPTarkov.Server.Core/Utils/DatabaseImporter.cs b/Libraries/SPTarkov.Server.Core/Utils/DatabaseImporter.cs index a1840339..2de81df4 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/DatabaseImporter.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/DatabaseImporter.cs @@ -3,6 +3,7 @@ using System.Security.Cryptography; using System.Text; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.DI; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Spt.Server; using SPTarkov.Server.Core.Models.Utils; @@ -128,22 +129,8 @@ public class DatabaseImporter( VerifyDatabase ); - // TODO: Fix loading of traders, so their full path is not included as the key - - var tempTraders = new Dictionary(); - - // temp fix for trader keys - foreach (var trader in dataToImport.Traders) - { - // fix string for key - var tempKey = trader.Key.Split("/").Last(); - tempTraders.Add(tempKey, trader.Value); - } - timer.Stop(); - dataToImport.Traders = tempTraders; - _logger.Info(_serverLocalisationService.GetText("importing_database_finish")); _logger.Debug($"Database import took {timer.ElapsedMilliseconds}ms"); _databaseServer.SetTables(dataToImport); diff --git a/Libraries/SPTarkov.Server.Core/Utils/EncodingUtil.cs b/Libraries/SPTarkov.Server.Core/Utils/EncodingUtil.cs deleted file mode 100644 index b221d19f..00000000 --- a/Libraries/SPTarkov.Server.Core/Utils/EncodingUtil.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System.Text; -using SPTarkov.DI.Annotations; - -namespace SPTarkov.Server.Core.Utils; - -[Injectable(InjectionType.Singleton)] -public class EncodingUtil -{ - public string Encode(string value, EncodeType encode) - { - return encode switch - { - EncodeType.BASE64 => Convert.ToBase64String(Encoding.Default.GetBytes(value)), - EncodeType.HEX => Convert.ToHexString(Encoding.Default.GetBytes(value)), - EncodeType.ASCII => Encoding.ASCII.GetString(Encoding.Default.GetBytes(value)), - EncodeType.UTF8 => Encoding.UTF8.GetString(Encoding.Default.GetBytes(value)), - _ => throw new ArgumentOutOfRangeException(nameof(encode), encode, null), - }; - } - - public string Decode(string value, EncodeType encode) - { - switch (encode) - { - case EncodeType.BASE64: - return Encoding.UTF8.GetString(Convert.FromBase64String(value)); - case EncodeType.HEX: - return Encoding.UTF8.GetString(Convert.FromHexString(value)); - case EncodeType.ASCII: - return Encoding.ASCII.GetString(Encoding.Default.GetBytes(value)); - case EncodeType.UTF8: - return Encoding.UTF8.GetString(Encoding.Default.GetBytes(value)); - default: - throw new ArgumentOutOfRangeException(nameof(encode), encode, null); - } - } - - public string FromBase64(string value) - { - return Decode(value, EncodeType.BASE64); - } - - public string ToBase64(string value) - { - return Encode(value, EncodeType.BASE64); - } - - public string FromHex(string value) - { - return Decode(value, EncodeType.HEX); - } - - public string ToHex(string value) - { - return Encode(value, EncodeType.HEX); - } -} - -public enum EncodeType -{ - BASE64, - HEX, - ASCII, - UTF8, -} diff --git a/Libraries/SPTarkov.Server.Core/Utils/HashUtil.cs b/Libraries/SPTarkov.Server.Core/Utils/HashUtil.cs index 2bb21c82..c26cdedd 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/HashUtil.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/HashUtil.cs @@ -1,55 +1,13 @@ using System.IO.Hashing; using System.Security.Cryptography; using System.Text; -using System.Text.RegularExpressions; using SPTarkov.DI.Annotations; namespace SPTarkov.Server.Core.Utils; [Injectable(InjectionType.Singleton)] -public partial class HashUtil(RandomUtil _randomUtil) +public class HashUtil(RandomUtil _randomUtil) { - /// - /// Create a 24 character MongoId - /// - /// 24 character objectId - public string Generate() - { - // Allocate a span directly onto the stack, will dispose whenever we finished running - // Span is recommended to work with stackalloc and we can use stackalloc here because we don't do anything with this afterwards - Span objectId = stackalloc byte[12]; - - // Time stamp (4 bytes) - var timestamp = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds(); - // Convert to big-endian - objectId[0] = (byte)(timestamp >> 24); - objectId[1] = (byte)(timestamp >> 16); - objectId[2] = (byte)(timestamp >> 8); - objectId[3] = (byte)timestamp; - - // Random value (5 bytes) - _randomUtil.NextBytes(objectId.Slice(4, 5)); - - // Incrementing counter (3 bytes) - // 24-bit counter - var counter = _randomUtil.GetInt(0, 16777215); - objectId[9] = (byte)(counter >> 16); - objectId[10] = (byte)(counter >> 8); - objectId[11] = (byte)counter; - - return Convert.ToHexStringLower(objectId); - } - - /// - /// is the passed in string a valid mongo id - /// - /// String to check - /// True when string is a valid mongo id - public bool IsValidMongoId(string stringToCheck) - { - return MongoIdRegex().IsMatch(stringToCheck); - } - public uint GenerateCrc32ForData(string data) { return Crc32.HashToUInt32(new ArraySegment(Encoding.UTF8.GetBytes(data))); @@ -124,9 +82,6 @@ public partial class HashUtil(RandomUtil _randomUtil) return _randomUtil.Random.Next(min, max + 1); } - - [GeneratedRegex("^[a-fA-F0-9]{24}$")] - private static partial Regex MongoIdRegex(); } public enum HashingAlgorithm diff --git a/Libraries/SPTarkov.Server.Core/Utils/HttpResponseUtil.cs b/Libraries/SPTarkov.Server.Core/Utils/HttpResponseUtil.cs index 7edca117..a305b0c7 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/HttpResponseUtil.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/HttpResponseUtil.cs @@ -9,11 +9,11 @@ using SPTarkov.Server.Core.Services; namespace SPTarkov.Server.Core.Utils; [Injectable] -public class HttpResponseUtil +public class HttpResponseUtil( + JsonUtil jsonUtil, + ServerLocalisationService serverLocalisationService +) { - protected readonly JsonUtil _jsonUtil; - protected readonly ServerLocalisationService _serverLocalisationService; - protected readonly ImmutableList _cleanupRegexList = [ new("[\\b]"), @@ -23,12 +23,6 @@ public class HttpResponseUtil new("[\\t]"), ]; - public HttpResponseUtil(JsonUtil jsonUtil, ServerLocalisationService localisationService) - { - _serverLocalisationService = localisationService; - _jsonUtil = jsonUtil; - } - protected string ClearString(string? s) { var value = s ?? ""; @@ -47,7 +41,7 @@ public class HttpResponseUtil */ public string NoBody(T data) { - return ClearString(_jsonUtil.Serialize(data)); + return ClearString(jsonUtil.Serialize(data)); } /** @@ -75,7 +69,7 @@ public class HttpResponseUtil string? errmsg = null ) { - return _jsonUtil.Serialize( + return jsonUtil.Serialize( new GetBodyResponseData { Err = err, @@ -115,7 +109,7 @@ public class HttpResponseUtil { if (string.IsNullOrEmpty(message)) { - message = _serverLocalisationService.GetText("http-unknown_error"); + message = serverLocalisationService.GetText("http-unknown_error"); } if (output.Warnings?.Count > 0) diff --git a/Libraries/SPTarkov.Server.Core/Utils/ImporterUtil.cs b/Libraries/SPTarkov.Server.Core/Utils/ImporterUtil.cs index 915329c2..70ee7f74 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/ImporterUtil.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/ImporterUtil.cs @@ -1,7 +1,9 @@ +using System.Collections; using System.Collections.Frozen; using System.Linq.Expressions; using System.Reflection; using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Utils.Json; @@ -65,7 +67,9 @@ public class ImporterUtil(ISptLogger _logger, FileUtil _fileUtil, { if ( _fileUtil.GetFileExtension(file) != "json" - || _filesToIgnore.Contains(_fileUtil.GetFileNameAndExtension(file).ToLower()) + || _filesToIgnore.Contains( + _fileUtil.GetFileNameAndExtension(file).ToLowerInvariant() + ) ) { continue; @@ -127,7 +131,7 @@ public class ImporterUtil(ISptLogger _logger, FileUtil _fileUtil, // Get the set method to update the object var setMethod = GetSetMethod( - _fileUtil.StripExtension(file).ToLower(), + _fileUtil.StripExtension(file).ToLowerInvariant(), loadedType, out var propertyType, out var isDictionary @@ -167,26 +171,55 @@ public class ImporterUtil(ISptLogger _logger, FileUtil _fileUtil, { try { - var setMethod = GetSetMethod( - directory.Split("/").Last().Replace("_", ""), - loadedType, - out var matchedProperty, - out var isDictionary - ); + var directoryName = directory.Split("/").Last().Replace("_", ""); - var loadedData = await LoadRecursiveAsync( - $"{directory}/", - matchedProperty, - onReadCallback, - onObjectDeserialized - ); - - lock (dictionaryLock) + if (MongoId.IsValidMongoId(directoryName)) { - setMethod.Invoke( - result, - isDictionary ? [directory, loadedData] : new[] { loadedData } + // For trader MongoId directories, we need to get the parent property. Get parent directory name to find the property + var parentDirectory = directory.Substring(0, directory.LastIndexOf('/')); + var parentName = parentDirectory.Split("/").Last().Replace("_", ""); + + GetSetMethod(parentName, loadedType, out var matchedProperty, out _); + + var loadedData = await LoadRecursiveAsync( + $"{directory}/", + matchedProperty, + onReadCallback, + onObjectDeserialized ); + + lock (dictionaryLock) + { + // Traders already have a dictionary, so we only need to handle this here + if (result is IDictionary dictionary) + { + dictionary[new MongoId(directoryName)] = loadedData; + } + } + } + else + { + var setMethod = GetSetMethod( + directoryName, + loadedType, + out var matchedProperty, + out var isDictionary + ); + + var loadedData = await LoadRecursiveAsync( + $"{directory}/", + matchedProperty, + onReadCallback, + onObjectDeserialized + ); + + lock (dictionaryLock) + { + setMethod.Invoke( + result, + isDictionary ? [directory, loadedData] : new[] { loadedData } + ); + } } } catch (Exception ex) @@ -253,8 +286,8 @@ public class ImporterUtil(ISptLogger _logger, FileUtil _fileUtil, var matchedProperty = type.GetProperties() .FirstOrDefault(prop => string.Equals( - prop.Name.ToLower(), - _fileUtil.StripExtension(propertyName).ToLower(), + prop.Name.ToLowerInvariant(), + _fileUtil.StripExtension(propertyName).ToLowerInvariant(), StringComparison.Ordinal ) ); diff --git a/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/BaseInteractionRequestDataConverter.cs b/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/BaseInteractionRequestDataConverter.cs index ff8bec21..0ca5136a 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/BaseInteractionRequestDataConverter.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/BaseInteractionRequestDataConverter.cs @@ -18,8 +18,7 @@ namespace SPTarkov.Server.Core.Utils.Json.Converters; public class BaseInteractionRequestDataConverter : JsonConverter { - private static Dictionary> _modHandlers = - new(); + private static Dictionary> _modHandlers = []; public override BaseInteractionRequestData? Read( ref Utf8JsonReader reader, @@ -35,7 +34,7 @@ public class BaseInteractionRequestDataConverter : JsonConverter @@ -48,76 +47,105 @@ public class BaseInteractionRequestDataConverter : JsonConverter(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.CUSTOMIZATION_SET: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.EAT: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.HEAL: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.RESTORE_HEALTH: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case HideoutEventActions.HIDEOUT_UPGRADE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case HideoutEventActions.HIDEOUT_UPGRADE_COMPLETE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case HideoutEventActions.HIDEOUT_PUT_ITEMS_IN_AREA_SLOTS: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case HideoutEventActions.HIDEOUT_TAKE_ITEMS_FROM_AREA_SLOTS: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case HideoutEventActions.HIDEOUT_TOGGLE_AREA: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case HideoutEventActions.HIDEOUT_SINGLE_PRODUCTION_START: return JsonSerializer.Deserialize( - jsonText + jsonText, + options ); case HideoutEventActions.HIDEOUT_SCAV_CASE_PRODUCTION_START: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case HideoutEventActions.HIDEOUT_CONTINUOUS_PRODUCTION_START: return JsonSerializer.Deserialize( - jsonText + jsonText, + options ); case HideoutEventActions.HIDEOUT_TAKE_PRODUCTION: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case HideoutEventActions.HIDEOUT_RECORD_SHOOTING_RANGE_POINTS: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case HideoutEventActions.HIDEOUT_IMPROVE_AREA: case HideoutEventActions.HIDEOUT_CANCEL_PRODUCTION_COMMAND: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case HideoutEventActions.HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START: return JsonSerializer.Deserialize( - jsonText + jsonText, + options ); case HideoutEventActions.HIDEOUT_DELETE_PRODUCTION_COMMAND: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case HideoutEventActions.HIDEOUT_CUSTOMIZATION_APPLY_COMMAND: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case HideoutEventActions.HIDEOUT_CUSTOMIZATION_SET_MANNEQUIN_POSE: return JsonSerializer.Deserialize( - jsonText + jsonText, + options ); case ItemEventActions.INSURE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.ADD_TO_WISHLIST: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.REMOVE_FROM_WISHLIST: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.CHANGE_WISHLIST_ITEM_CATEGORY: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case ItemEventActions.TRADING_CONFIRM: { switch (jsonDocumentRoot.GetProperty("type").GetString()) { case ItemEventActions.BUY_FROM_TRADER: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case ItemEventActions.SELL_TO_TRADER: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); default: throw new Exception( $"Unhandled action type: {action}, make sure BaseInteractionRequestDataConverter has deserialization for this action." @@ -125,76 +153,97 @@ public class BaseInteractionRequestDataConverter : JsonConverter(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case ItemEventActions.SELL_ALL_FROM_SAVAGE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case ItemEventActions.REPAIR: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.TRADER_REPAIR: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.RAGFAIR_ADD_OFFER: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.RAGFAIR_REMOVE_OFFER: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.RAGFAIR_RENEW_OFFER: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.QUEST_ACCEPT: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.QUEST_COMPLETE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.QUEST_HANDOVER: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.REPEATABLE_QUEST_CHANGE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.ADD_NOTE: case ItemEventActions.EDIT_NOTE: case ItemEventActions.DELETE_NOTE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.MOVE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.REMOVE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.SPLIT: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.MERGE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.TRANSFER: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.SWAP: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.FOLD: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.TOGGLE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.TAG: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.BIND: case ItemEventActions.UNBIND: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.EXAMINE: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.READ_ENCYCLOPEDIA: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case ItemEventActions.APPLY_INVENTORY_CHANGES: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.CREATE_MAP_MARKER: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case ItemEventActions.DELETE_MAP_MARKER: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case ItemEventActions.EDIT_MAP_MARKER: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case ItemEventActions.OPEN_RANDOM_LOOT_CONTAINER: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize( + jsonText, + options + ); case ItemEventActions.HIDEOUT_QTE_EVENT: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.REDEEM_PROFILE_REWARD: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.SET_FAVORITE_ITEMS: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.QUEST_FAIL: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); case ItemEventActions.PIN_LOCK: - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); default: if (_modHandlers.TryGetValue(action, out var handler)) { diff --git a/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/BaseSptLoggerReferenceConverter.cs b/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/BaseSptLoggerReferenceConverter.cs index 5a538015..a238d056 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/BaseSptLoggerReferenceConverter.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/BaseSptLoggerReferenceConverter.cs @@ -22,9 +22,9 @@ public class BaseSptLoggerReferenceConverter : JsonConverter(); + return jsonDocument.Deserialize(options); case "Console": - return jsonDocument.Deserialize(); + return jsonDocument.Deserialize(options); default: throw new Exception( $"The logger type '{typeElement.GetString()}' does not exist." diff --git a/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/StringToObjectFactoryConverter.cs b/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/StringToObjectFactoryConverter.cs index 3457c3ed..108cc83d 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/StringToObjectFactoryConverter.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/StringToObjectFactoryConverter.cs @@ -39,7 +39,7 @@ public class StringToObjectFactoryConverter : JsonConverterFactory using (var jsonDocument = JsonDocument.ParseValue(ref reader)) { var jsonText = jsonDocument.RootElement.GetRawText(); - return JsonSerializer.Deserialize(jsonText); + return JsonSerializer.Deserialize(jsonText, options); } } diff --git a/Libraries/SPTarkov.Server.Core/Utils/JsonUtil.cs b/Libraries/SPTarkov.Server.Core/Utils/JsonUtil.cs index 4b251981..72f55d25 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/JsonUtil.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/JsonUtil.cs @@ -9,12 +9,12 @@ namespace SPTarkov.Server.Core.Utils; [Injectable(InjectionType.Singleton)] public class JsonUtil { - private static JsonSerializerOptions? jsonSerializerOptionsIndented; - private static JsonSerializerOptions jsonSerializerOptionsNoIndent; + private static JsonSerializerOptions? _jsonSerializerOptionsIndented; + private static JsonSerializerOptions? _jsonSerializerOptionsNoIndent; public JsonUtil(IEnumerable registrators) { - jsonSerializerOptionsNoIndent = new JsonSerializerOptions() + _jsonSerializerOptionsNoIndent = new JsonSerializerOptions() { WriteIndented = false, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, @@ -26,11 +26,11 @@ public class JsonUtil { foreach (var converter in registrator.GetJsonConverters()) { - jsonSerializerOptionsNoIndent.Converters.Add(converter); + _jsonSerializerOptionsNoIndent.Converters.Add(converter); } } - jsonSerializerOptionsIndented = new JsonSerializerOptions(jsonSerializerOptionsNoIndent) + _jsonSerializerOptionsIndented = new JsonSerializerOptions(_jsonSerializerOptionsNoIndent) { WriteIndented = true, }; @@ -46,7 +46,7 @@ public class JsonUtil { return string.IsNullOrEmpty(json) ? default - : JsonSerializer.Deserialize(json, jsonSerializerOptionsNoIndent); + : JsonSerializer.Deserialize(json, _jsonSerializerOptionsNoIndent); } /// @@ -59,7 +59,7 @@ public class JsonUtil { return string.IsNullOrEmpty(json) ? null - : JsonSerializer.Deserialize(json, type, jsonSerializerOptionsNoIndent); + : JsonSerializer.Deserialize(json, type, _jsonSerializerOptionsNoIndent); } /// @@ -76,7 +76,7 @@ public class JsonUtil using (FileStream fs = new(file, FileMode.Open, FileAccess.Read)) { - return JsonSerializer.Deserialize(fs, jsonSerializerOptionsNoIndent); + return JsonSerializer.Deserialize(fs, _jsonSerializerOptionsNoIndent); } } @@ -101,7 +101,7 @@ public class JsonUtil useAsync: true ); - return await JsonSerializer.DeserializeAsync(fs, jsonSerializerOptionsNoIndent); + return await JsonSerializer.DeserializeAsync(fs, _jsonSerializerOptionsNoIndent); } /// @@ -119,7 +119,7 @@ public class JsonUtil using (FileStream fs = new(file, FileMode.Open, FileAccess.Read)) { - return JsonSerializer.Deserialize(fs, type, jsonSerializerOptionsNoIndent); + return JsonSerializer.Deserialize(fs, type, _jsonSerializerOptionsNoIndent); } } @@ -145,7 +145,7 @@ public class JsonUtil useAsync: true ); - return await JsonSerializer.DeserializeAsync(fs, type, jsonSerializerOptionsNoIndent); + return await JsonSerializer.DeserializeAsync(fs, type, _jsonSerializerOptionsNoIndent); } /// @@ -156,7 +156,7 @@ public class JsonUtil /// public object? DeserializeFromFileStream(FileStream fs, Type type) { - return JsonSerializer.Deserialize(fs, type, jsonSerializerOptionsNoIndent); + return JsonSerializer.Deserialize(fs, type, _jsonSerializerOptionsNoIndent); } /// @@ -167,7 +167,7 @@ public class JsonUtil /// public async Task DeserializeFromFileStreamAsync(FileStream fs, Type type) { - return await JsonSerializer.DeserializeAsync(fs, type, jsonSerializerOptionsNoIndent); + return await JsonSerializer.DeserializeAsync(fs, type, _jsonSerializerOptionsNoIndent); } /// @@ -177,7 +177,7 @@ public class JsonUtil /// T public async Task DeserializeFromMemoryStreamAsync(MemoryStream ms) { - return await JsonSerializer.DeserializeAsync(ms, jsonSerializerOptionsNoIndent); + return await JsonSerializer.DeserializeAsync(ms, _jsonSerializerOptionsNoIndent); } /// @@ -193,7 +193,7 @@ public class JsonUtil ? null : JsonSerializer.Serialize( obj, - indented ? jsonSerializerOptionsIndented : jsonSerializerOptionsNoIndent + indented ? _jsonSerializerOptionsIndented : _jsonSerializerOptionsNoIndent ); } @@ -211,7 +211,7 @@ public class JsonUtil : JsonSerializer.Serialize( obj, type, - indented ? jsonSerializerOptionsIndented : jsonSerializerOptionsNoIndent + indented ? _jsonSerializerOptionsIndented : _jsonSerializerOptionsNoIndent ); } } diff --git a/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs b/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs index 03f244a1..52b844f2 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs @@ -2,6 +2,7 @@ using System.Collections.Concurrent; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Ragfair; using SPTarkov.Server.Core.Models.Utils; @@ -14,7 +15,6 @@ public class RagfairOfferHolder( ISptLogger _logger, RagfairServerHelper _ragfairServerHelper, ProfileHelper _profileHelper, - HashUtil _hashUtil, ServerLocalisationService _serverLocalisationService, ItemHelper _itemHelper ) @@ -27,17 +27,17 @@ public class RagfairOfferHolder( /// /// Ragfair offer cache, keyed by offer Id /// - private readonly ConcurrentDictionary _offersById = new(); + private readonly ConcurrentDictionary _offersById = new(); /// /// Offer Ids keyed by tpl /// - private readonly ConcurrentDictionary> _offersByTemplate = new(); + private readonly ConcurrentDictionary> _offersByTemplate = new(); /// /// Offer ids keyed by trader Id /// - private readonly ConcurrentDictionary> _offersByTrader = new(); + private readonly ConcurrentDictionary> _offersByTrader = new(); private readonly Lock _expiredOfferIdsLock = new(); private readonly Lock _ragfairOperationLock = new(); @@ -47,7 +47,7 @@ public class RagfairOfferHolder( /// /// Ragfair offer id /// RagfairOffer - public RagfairOffer? GetOfferById(string id) + public RagfairOffer? GetOfferById(MongoId id) { return _offersById.GetValueOrDefault(id); } @@ -137,10 +137,10 @@ public class RagfairOfferHolder( // Keep generating IDs until we get a unique one while (_offersById.ContainsKey(offer.Id)) { - offer.Id = _hashUtil.Generate(); + offer.Id = new MongoId(); } - var itemTpl = offer.Items?.FirstOrDefault()?.Template; + var itemTpl = offer.Items?.FirstOrDefault()?.Template ?? new MongoId(null); var sellerId = offer.User.Id; var sellerIsTrader = _ragfairServerHelper.IsTrader(sellerId); diff --git a/Libraries/SPTarkov.Server.Core/Utils/TimerUtil.cs b/Libraries/SPTarkov.Server.Core/Utils/TimerUtil.cs deleted file mode 100644 index bb73a12f..00000000 --- a/Libraries/SPTarkov.Server.Core/Utils/TimerUtil.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Diagnostics; -using SPTarkov.DI.Annotations; - -namespace SPTarkov.Server.Core.Utils; - -[Injectable] -public class TimerUtil -{ - protected readonly Stopwatch _stopwatch; - - public TimerUtil() - { - _stopwatch = new Stopwatch(); - _stopwatch.Start(); - } - - public int Stop(string unit = "sec") - { - _stopwatch.Stop(); - var timePassed = _stopwatch.Elapsed; - - return unit switch - { - "ns" => timePassed.Nanoseconds, - "ms" => timePassed.Milliseconds, - _ => timePassed.Seconds, - }; - } -} diff --git a/Tools/HideoutCraftQuestIdGenerator/HideoutCraftQuestIdGenerator.cs b/Tools/HideoutCraftQuestIdGenerator/HideoutCraftQuestIdGenerator.cs index e0e6bf6c..a45aaefa 100644 --- a/Tools/HideoutCraftQuestIdGenerator/HideoutCraftQuestIdGenerator.cs +++ b/Tools/HideoutCraftQuestIdGenerator/HideoutCraftQuestIdGenerator.cs @@ -1,5 +1,6 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Hideout; using SPTarkov.Server.Core.Models.Enums; @@ -20,7 +21,7 @@ public class HideoutCraftQuestIdGenerator( DatabaseImporter _databaseImporter ) { - private static readonly HashSet _blacklistedProductions = + private static readonly HashSet _blacklistedProductions = [ "6617cdb6b24b0ea24505f618", // Old event quest production "Radio Repeater" alt recipe "66140c4a9688754de10dac07", // Old event quest production "Documents with decrypted data" @@ -29,13 +30,14 @@ public class HideoutCraftQuestIdGenerator( "67093210d514d26f8408612b", // Old event quest production "TG-Vi-24 true vaccine" ]; - private static readonly Dictionary _forcedQuestToProductionAssociations = new() - { - // KEY = PRODUCTION, VALUE = QUEST - { "63a571802116d261d2336cd1", "625d6ffaf7308432be1d44c5" }, // Network Provider - Part 2 - }; + private static readonly Dictionary _forcedQuestToProductionAssociations = + new() + { + // KEY = PRODUCTION, VALUE = QUEST + { "63a571802116d261d2336cd1", "625d6ffaf7308432be1d44c5" }, // Network Provider - Part 2 + }; - private readonly Dictionary _questProductionMap = new(); + private readonly Dictionary _questProductionMap = new(); private readonly List _questProductionOutputList = []; public async Task Run() @@ -238,9 +240,9 @@ public class HideoutCraftQuestIdGenerator( public class QuestProductionOutput { - public string QuestId { get; set; } + public MongoId QuestId { get; set; } - public string ItemTemplate { get; set; } + public MongoId ItemTemplate { get; set; } public double Quantity { get; set; } } diff --git a/Tools/ItemTplGenerator/ItemTplGenerator.cs b/Tools/ItemTplGenerator/ItemTplGenerator.cs index 08cca419..ea84a933 100644 --- a/Tools/ItemTplGenerator/ItemTplGenerator.cs +++ b/Tools/ItemTplGenerator/ItemTplGenerator.cs @@ -384,7 +384,7 @@ public class ItemTplGenerator( } // Add "DAMAGED" for damaged items - if (item.Name.ToLower().Contains("damaged")) + if (item.Name.ToLowerInvariant().Contains("damaged")) { suffix += "_DAMAGED"; } @@ -583,7 +583,8 @@ public class ItemTplGenerator( ) { var enumFileData = - "// This is an auto generated file, do not modify. Re-generate by running ItemTplGenerator.exe"; + "using SPTarkov.Server.Core.Models.Common;\n\n" + + "// This is an auto generated file, do not modify. Re-generate by running ItemTplGenerator.exe"; foreach (var (enumName, data) in enumEntries) { @@ -591,7 +592,8 @@ public class ItemTplGenerator( foreach (var (key, value) in data) { - enumFileData += $" public const string {key} = \"{value}\";\n"; + enumFileData += + $" public static readonly MongoId {key} = new MongoId(\"{value}\");\n"; } enumFileData += "}\n"; diff --git a/UnitTests/Tests/Extensions/ContainerExtensionsTests.cs b/UnitTests/Tests/Extensions/ContainerExtensionsTests.cs new file mode 100644 index 00000000..97707962 --- /dev/null +++ b/UnitTests/Tests/Extensions/ContainerExtensionsTests.cs @@ -0,0 +1,365 @@ +using SPTarkov.Server.Core.Extensions; + +namespace UnitTests.Tests.Extensions; + +[TestClass] +public partial class ContainerExtensionsTests +{ + [TestInitialize] + public void Initialize() { } + + [TestMethod] + public void CanItemBePlacedInContainerAtPosition_1x1_Item_Fits_1x2_Container_At_0x0() + { + var container = new int[1, 2]; + var itemStartXPos = 0; + var itemStartYPos = 0; + var itemWidth = 1; + var itemHeight = 1; + + var result = container.CanItemBePlacedInContainerAtPosition( + itemStartXPos, + itemStartYPos, + itemWidth, + itemHeight + ); + + Assert.IsTrue(result); + } + + [TestMethod] + public void CanItemBePlacedInContainerAtPosition_1x1_Item_Fails_1x2_Container_At_0x0_With_Item_At_0x0() + { + var container = new int[1, 2]; + container[0, 0] = 1; + var itemStartXPos = 0; + var itemStartYPos = 0; + var itemWidth = 1; + var itemHeight = 1; + + var result = container.CanItemBePlacedInContainerAtPosition( + itemStartXPos, + itemStartYPos, + itemWidth, + itemHeight + ); + + Assert.IsFalse(result); + } + + [TestMethod] + public void CanItemBePlacedInContainerAtPosition_1x2_Item_Fits_1x2_Container_At_0x0() + { + var container = new int[2, 1]; + var itemStartXPos = 0; + var itemStartYPos = 0; + var itemWidth = 1; + var itemHeight = 2; + + var result = container.CanItemBePlacedInContainerAtPosition( + itemStartXPos, + itemStartYPos, + itemWidth, + itemHeight + ); + + Assert.IsTrue(result); + } + + [TestMethod] + public void CanItemBePlacedInContainerAtPosition_1x2_Item_Fails_1x2_Container_At_0x0_With_Item_At_0x0() + { + var container = new int[1, 2]; + container[0, 0] = 1; + var itemStartXPos = 0; + var itemStartYPos = 0; + var itemWidth = 1; + var itemHeight = 2; + + var result = container.CanItemBePlacedInContainerAtPosition( + itemStartXPos, + itemStartYPos, + itemWidth, + itemHeight + ); + + Assert.IsFalse(result); + } + + [TestMethod] + public void CanItemBePlacedInContainerAtPosition_2x2_Item_Fits_2x2_Container_At_0x0() + { + var container = new int[2, 2]; + var itemStartXPos = 0; + var itemStartYPos = 0; + var itemWidth = 2; + var itemHeight = 2; + + var result = container.CanItemBePlacedInContainerAtPosition( + itemStartXPos, + itemStartYPos, + itemWidth, + itemHeight + ); + + Assert.IsTrue(result); + } + + [TestMethod] + public void CanItemBePlacedInContainerAtPosition_1x2_Item_Fits_2x2_Container_At_0x1() + { + var container = new int[2, 2]; + var itemStartXPos = 0; + var itemStartYPos = 1; + var itemWidth = 1; + var itemHeight = 2; + + var result = container.CanItemBePlacedInContainerAtPosition( + itemStartXPos, + itemStartYPos, + itemWidth, + itemHeight + ); + + Assert.IsTrue(result); + } +} + +public partial class ContainerExtensionsTests +{ + [TestMethod] + public void FindSlotForItem_1x1_item_fits_1x1_container_no_rotation() + { + var container = new int[1, 1]; + var itemWidth = 1; + var itemHeight = 1; + + var result = container.FindSlotForItem(itemWidth, itemHeight); + + Assert.IsTrue(result.Success); + Assert.IsFalse(result.Rotation); + Assert.AreEqual(result.X, 0); + Assert.AreEqual(result.Y, 0); + } + + [TestMethod] + public void FindSlotForItem_1x2_item_fits_3x3_container_rotated_with_items() + { + /// |1|1|1| + /// |1|0|0| + /// |1|1|1| + var container = new int[3, 3]; + container[0, 0] = 1; + container[0, 1] = 1; + container[0, 2] = 1; + container[1, 0] = 1; + container[2, 0] = 1; + container[2, 1] = 1; + container[2, 2] = 1; + var itemWidth = 1; + var itemHeight = 2; + + var result = container.FindSlotForItem(itemWidth, itemHeight); + + Assert.IsTrue(result.Success); + Assert.IsTrue(result.Rotation); + Assert.AreEqual(result.X, 1); + Assert.AreEqual(result.Y, 1); + } + + [TestMethod] + public void FindSlotForItem_1x1_item_fails_1x1_container_no_space() + { + var container = new int[1, 1]; + container[0, 0] = 1; + var itemWidth = 1; + var itemHeight = 1; + + var result = container.FindSlotForItem(itemWidth, itemHeight); + + Assert.IsFalse(result.Success); + } + + [TestMethod] + public void FindSlotForItem_1x2_item_fits_1x2_container_no_rotation() + { + var container = new int[2, 1]; + var itemWidth = 1; + var itemHeight = 2; + + var result = container.FindSlotForItem(itemWidth, itemHeight); + + Assert.IsTrue(result.Success); + Assert.IsFalse(result.Rotation); + Assert.AreEqual(result.X, 0); + Assert.AreEqual(result.Y, 0); + } + + [TestMethod] + public void FindSlotForItem_1x2_item_fails_1x2_container_no_space() + { + var container = new int[1, 1]; + container[0, 0] = 1; + container[0, 0] = 1; + var itemWidth = 1; + var itemHeight = 2; + + var result = container.FindSlotForItem(itemWidth, itemHeight); + + Assert.IsFalse(result.Success); + } + + [TestMethod] + public void FindSlotForItem_2x2_item_fits_2x2_container_no_rotation() + { + var container = new int[2, 2]; + var itemWidth = 2; + var itemHeight = 2; + + var result = container.FindSlotForItem(itemWidth, itemHeight); + + Assert.IsTrue(result.Success); + Assert.IsFalse(result.Rotation); + Assert.AreEqual(result.X, 0); + Assert.AreEqual(result.Y, 0); + } + + [TestMethod] + public void FindSlotForItem_1x2_item_fits_2x2_container_no_rotation_with_item_at_0x0() + { + var container = new int[2, 2]; + container[0, 0] = 1; + var itemWidth = 1; + var itemHeight = 2; + + var result = container.FindSlotForItem(itemWidth, itemHeight); + + Assert.IsTrue(result.Success); + Assert.IsFalse(result.Rotation); + Assert.AreEqual(result.X, 1); + Assert.AreEqual(result.Y, 0); + } +} + +public partial class ContainerExtensionsTests +{ + [TestMethod] + public void FillContainerMapWithItem_1x1_at_0x0_in_1x1_no_rotation() + { + var container = new int[1, 1]; + + var itemWidth = 1; + var itemHeight = 1; + + var destinationPosX = 0; + var destinationPosY = 0; + var isRotated = false; + + container.FillContainerMapWithItem( + destinationPosX, + destinationPosY, + itemWidth, + itemHeight, + isRotated + ); + + Assert.AreEqual(container[0, 0], 1); + } + + [TestMethod] + public void FillContainerMapWithItem_1x2_at_0x0_in_1x2_no_rotation() + { + var container = new int[2, 1]; + + var itemWidth = 1; + var itemHeight = 2; + + var destinationPosX = 0; + var destinationPosY = 0; + var isRotated = false; + + container.FillContainerMapWithItem( + destinationPosX, + destinationPosY, + itemWidth, + itemHeight, + isRotated + ); + + Assert.AreEqual(container[0, 0], 1); + Assert.AreEqual(container[1, 0], 1); + } + + [TestMethod] + public void FillContainerMapWithItem_2x2_at_0x0_in_2x2_no_rotation() + { + var container = new int[2, 2]; + + var itemWidth = 2; + var itemHeight = 2; + + var destinationPosX = 0; + var destinationPosY = 0; + var isRotated = false; + + container.FillContainerMapWithItem( + destinationPosX, + destinationPosY, + itemWidth, + itemHeight, + isRotated + ); + + Assert.AreEqual(container[0, 0], 1); + Assert.AreEqual(container[1, 1], 1); + } + + [TestMethod] + public void FillContainerMapWithItem_1x2_at_0x0_in_2x2_with_rotation() + { + var container = new int[2, 2]; + + var itemWidth = 1; + var itemHeight = 2; + + var destinationPosX = 0; + var destinationPosY = 0; + var isRotated = true; + + container.FillContainerMapWithItem( + destinationPosX, + destinationPosY, + itemWidth, + itemHeight, + isRotated + ); + + Assert.AreEqual(container[0, 0], 1); + Assert.AreEqual(container[0, 1], 1); + } + + [TestMethod] + public void FillContainerMapWithItem_1x2_at_1x0_in_2x2_with_rotation_with_existing_item() + { + var container = new int[2, 2]; + container[0, 0] = 1; + + var itemWidth = 1; + var itemHeight = 2; + + var destinationPosX = 0; + var destinationPosY = 1; + var isRotated = true; + + container.FillContainerMapWithItem( + destinationPosX, + destinationPosY, + itemWidth, + itemHeight, + isRotated + ); + + Assert.AreEqual(container[1, 0], 1); + Assert.AreEqual(container[1, 1], 1); + } +} diff --git a/UnitTests/Tests/Utils/HashUtilTests.cs b/UnitTests/Tests/Utils/HashUtilTests.cs deleted file mode 100644 index 19c7e537..00000000 --- a/UnitTests/Tests/Utils/HashUtilTests.cs +++ /dev/null @@ -1,97 +0,0 @@ -using System.Collections.Concurrent; -using System.Diagnostics; -using SPTarkov.Server.Core.Utils; - -namespace UnitTests.Tests.Utils; - -[TestClass] -public class HashUtilTests -{ - private HashUtil _hashUtil; - - [TestInitialize] - public void Initialize() - { - _hashUtil = DI.GetService(); - } - - [TestMethod] - public void GenerateTest() - { - // Generate 100 MongoId's - for (var i = 0; i < 100; i++) - { - // Invalid mongoId character - var result = _hashUtil.Generate(); - - // Invalid mongoId length - var test = _hashUtil.IsValidMongoId(result); - - Assert.AreEqual(true, test, $"IsValidMongoId() `{result}` is not a valid MongoId."); - } - } - - [TestMethod] - [DataRow( - "677ddb67406e9918a0264bbz", - false, - "677ddb67406e9918a0264bbz contains invalid char `z`, but result was true" - )] - [DataRow( - "677ddb67406e9918a0264bbcc", - false, - "677ddb67406e9918a0264bbcc is 25 characters, but result was true" - )] - [DataRow( - "677ddb67406e9918a0264bbc", - true, - "IsValidMongoId() `677ddb67406e9918a0264bbc` is a valid mongoId, but result was false" - )] - public void IsValidMongoIdTest(string mongoId, bool passes, string failMessage) - { - var result = _hashUtil.IsValidMongoId(mongoId); - Assert.AreEqual(passes, result, failMessage); - } - - [TestMethod] - [DataRow( - "123456789", - "25F9E794323B453885F5181F1B624D0B", - "Not valid output, expected '25F9E794323B453885F5181F1B624D0B'" - )] - public void GenerateValidMd5Test(string input, string expectedOutput, string failMessage) - { - var result = _hashUtil.GenerateHashForData(HashingAlgorithm.MD5, input); - Assert.AreEqual(expectedOutput, result, failMessage); - } - - [TestMethod] - public void MultiThreadedMongoIDGenerationTest() - { - var concurrentBag = new ConcurrentBag(); - var random = new Random(); - var stopwatch = new Stopwatch(); - stopwatch.Start(); - - Parallel.For( - 0, - 1000, - i => - { - Thread.Sleep(random.Next(0, 10)); - var mongoId = _hashUtil.Generate(); - concurrentBag.Add(mongoId); - } - ); - - stopwatch.Stop(); - Console.WriteLine($"Elapsed time: {stopwatch.ElapsedMilliseconds} ms"); - var uniqueCount = concurrentBag.Distinct().Count(); - var totalCount = concurrentBag.Count; - Assert.AreEqual( - totalCount, - uniqueCount, - $"Expected all generated MongoId's to be unique, but found {totalCount - uniqueCount} duplicates." - ); - } -}