Decompiled source of OdinsSteelworks v0.2.1

OdinsSteelworks.dll

Decompiled 2 weeks ago
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using HarmonyLib;
using ItemManager;
using JetBrains.Annotations;
using LocalizationManager;
using Microsoft.CodeAnalysis;
using PieceManager;
using ServerSync;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using YamlDotNet.Core;
using YamlDotNet.Core.Events;
using YamlDotNet.Core.Tokens;
using YamlDotNet.Helpers;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.BufferedDeserialization;
using YamlDotNet.Serialization.BufferedDeserialization.TypeDiscriminators;
using YamlDotNet.Serialization.Callbacks;
using YamlDotNet.Serialization.Converters;
using YamlDotNet.Serialization.EventEmitters;
using YamlDotNet.Serialization.NamingConventions;
using YamlDotNet.Serialization.NodeDeserializers;
using YamlDotNet.Serialization.NodeTypeResolvers;
using YamlDotNet.Serialization.ObjectFactories;
using YamlDotNet.Serialization.ObjectGraphTraversalStrategies;
using YamlDotNet.Serialization.ObjectGraphVisitors;
using YamlDotNet.Serialization.Schemas;
using YamlDotNet.Serialization.TypeInspectors;
using YamlDotNet.Serialization.TypeResolvers;
using YamlDotNet.Serialization.Utilities;
using YamlDotNet.Serialization.ValueDeserializers;

[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: Guid("D181CDA7-EF07-4BBC-B975-2B80FC6BBFAE")]
[assembly: ComVisible(false)]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCopyright("Copyright ©  2022")]
[assembly: AssemblyProduct("OdinPlus")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyTitle("OdinsSteelworks")]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: CompilationRelaxations(8)]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace OdinsSteelworks
{
	[BepInPlugin("org.bepinex.plugins.odinssteelworks", "OdinsSteelworks", "0.2.1")]
	public class OdinsSteelworks : BaseUnityPlugin
	{
		private enum Toggle
		{
			On = 1,
			Off = 0
		}

		private const string ModName = "OdinsSteelworks";

		private const string ModVersion = "0.2.1";

		private const string ModGUID = "org.bepinex.plugins.odinssteelworks";

		private static readonly ConfigSync configSync = new ConfigSync("OdinsSteelworks")
		{
			DisplayName = "OdinsSteelworks",
			CurrentVersion = "0.2.1",
			MinimumRequiredVersion = "0.2.1"
		};

		private static ConfigEntry<Toggle> serverConfigLocked = null;

		private ConfigEntry<T> config<T>(string group, string name, T value, ConfigDescription description, bool synchronizedSetting = true)
		{
			ConfigEntry<T> val = ((BaseUnityPlugin)this).Config.Bind<T>(group, name, value, description);
			SyncedConfigEntry<T> syncedConfigEntry = configSync.AddConfigEntry<T>(val);
			syncedConfigEntry.SynchronizedConfig = synchronizedSetting;
			return val;
		}

		private ConfigEntry<T> config<T>(string group, string name, T value, string description, bool synchronizedSetting = true)
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			return config(group, name, value, new ConfigDescription(description, (AcceptableValueBase)null, Array.Empty<object>()), synchronizedSetting);
		}

		public void Awake()
		{
			//IL_55f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_55fd: Expected O, but got Unknown
			Localizer.Load();
			serverConfigLocked = config("1 - General", "Lock Configuration", Toggle.On, "If on, the configuration is locked and can be changed by server admins only.");
			configSync.AddLockingConfigEntry<Toggle>(serverConfigLocked);
			GameObject val = PrefabManager.RegisterPrefab("cwsassets", "sfx_steel_mold_pro");
			GameObject val2 = PrefabManager.RegisterPrefab("cwsassets", "sfx_slacktub_sound");
			BuildPiece buildPiece = new BuildPiece("cwsassets", "CWS_Forge");
			buildPiece.RequiredItems.Add("Stone", 10, recover: true);
			buildPiece.RequiredItems.Add("Iron", 5, recover: true);
			buildPiece.RequiredItems.Add("DragonTear", 1, recover: true);
			buildPiece.Category.Set(BuildPieceCategory.Crafting);
			BuildPiece buildPiece2 = new BuildPiece("cwsassets", "CWS_Slack_Tub");
			buildPiece2.RequiredItems.Add("Iron", 2, recover: true);
			buildPiece2.RequiredItems.Add("CWS_SurtlingCoal", 2, recover: true);
			buildPiece2.RequiredItems.Add("RoundLog", 5, recover: true);
			buildPiece2.Extension.Set("CWS_Forge", 15);
			buildPiece2.Category.Set(BuildPieceCategory.Crafting);
			BuildPiece buildPiece3 = new BuildPiece("cwsassets", "CWS_Stone_Kiln");
			buildPiece3.RequiredItems.Add("CWS_SurtlingCoal", 4, recover: true);
			buildPiece3.RequiredItems.Add("Iron", 5, recover: true);
			buildPiece3.RequiredItems.Add("Stone", 20, recover: true);
			buildPiece3.Extension.Set("CWS_Forge", 15);
			buildPiece3.Category.Set(BuildPieceCategory.Crafting);
			BuildPiece buildPiece4 = new BuildPiece("cwsassets", "CWS_Steel_Mold");
			buildPiece4.RequiredItems.Add("Iron", 1, recover: true);
			buildPiece4.RequiredItems.Add("CWS_SurtlingCoal", 2, recover: true);
			buildPiece4.RequiredItems.Add("Stone", 5, recover: true);
			buildPiece4.Extension.Set("CWS_Forge", 15);
			buildPiece4.Category.Set(BuildPieceCategory.Crafting);
			BuildPiece buildPiece5 = new BuildPiece("cwsassets", "CWS_Grindwheel");
			buildPiece5.RequiredItems.Add("YggdrasilWood", 4, recover: true);
			buildPiece5.RequiredItems.Add("CWS_Cold_Steel", 1, recover: true);
			buildPiece5.RequiredItems.Add("SharpeningStone", 1, recover: true);
			buildPiece5.Extension.Set("CWS_Forge", 15);
			buildPiece5.Category.Set(BuildPieceCategory.Crafting);
			BuildPiece buildPiece6 = new BuildPiece("cwsassets", "CWS_Item_Stand");
			buildPiece6.RequiredItems.Add("CWS_Cold_Steel", 4, recover: true);
			buildPiece6.RequiredItems.Add("CWS_SurtlingCoal", 2, recover: true);
			buildPiece6.RequiredItems.Add("DeerHide", 2, recover: true);
			buildPiece6.Extension.Set("CWS_Forge", 15);
			buildPiece6.Category.Set(BuildPieceCategory.Crafting);
			BuildPiece buildPiece7 = new BuildPiece("cwsassets", "CWS_Item_Stand_2");
			buildPiece7.RequiredItems.Add("CWS_Cold_Steel", 4, recover: true);
			buildPiece7.RequiredItems.Add("CWS_SurtlingCoal", 2, recover: true);
			buildPiece7.RequiredItems.Add("DeerHide", 2, recover: true);
			buildPiece7.Extension.Set("CWS_Forge", 15);
			buildPiece7.Category.Set(BuildPieceCategory.Crafting);
			BuildPiece buildPiece8 = new BuildPiece("cwsassets", "CWS_Steel_Pile");
			buildPiece8.RequiredItems.Add("CWS_Cold_Steel", 20, recover: true);
			buildPiece8.Category.Set(BuildPieceCategory.Crafting);
			Item item = new Item("cwsassets", "CWS_Material_Placeholder");
			Item item2 = new Item("cwsassets", "CWS_SurtlingCoal");
			item2.Crafting.Add("CWS_Forge", 1);
			item2.RequiredItems.Add("Coal", 5);
			item2.RequiredItems.Add("SurtlingCore", 1);
			item2.CraftAmount = 10;
			Item item3 = new Item("cwsassets", "CWS_Crucible_Full");
			item3.Crafting.Add("CWS_Forge", 1);
			item3.RequiredItems.Add("CWS_SurtlingCoal", 2);
			item3.RequiredItems.Add("IronScrap", 4);
			item3.CraftAmount = 1;
			Item item4 = new Item("cwsassets", "CWS_Crucible_Finished");
			item4.Crafting.Add("CWS_Forge", 30);
			item4.RequiredItems.Add("CWS_Material_Placeholder", 1);
			item4.CraftAmount = 1;
			Item item5 = new Item("cwsassets", "CWS_Cold_Steel");
			item5.Crafting.Add("CWS_Forge", 30);
			item5.RequiredItems.Add("CWS_Material_Placeholder", 1);
			item5.CraftAmount = 1;
			Item item6 = new Item("cwsassets", "CWS_Hot_Steel");
			item6.Crafting.Add("CWS_Forge", 30);
			item6.RequiredItems.Add("CWS_Material_Placeholder", 1);
			item6.CraftAmount = 1;
			Item item7 = new Item("cwsassets", "CWS_Hot_Steel_Finished");
			item7.Crafting.Add("CWS_Forge", 30);
			item7.RequiredItems.Add("CWS_Material_Placeholder", 1);
			item7.CraftAmount = 1;
			Item item8 = new Item("cwsassets", "CWS_TH_Axe_1");
			item8.Crafting.Add("CWS_Forge", 2);
			item8.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item8.RequiredItems.Add("RoundLog", 6);
			item8.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item8.RequiredUpgradeItems.Add("RoundLog", 8);
			item8.Configurable = Configurability.Full;
			item8.CraftAmount = 1;
			Item item9 = new Item("cwsassets", "CWS_TH_Axe_2");
			item9.Crafting.Add("CWS_Forge", 2);
			item9.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item9.RequiredItems.Add("RoundLog", 6);
			item9.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item9.RequiredUpgradeItems.Add("RoundLog", 8);
			item9.Configurable = Configurability.Full;
			item9.CraftAmount = 1;
			Item item10 = new Item("cwsassets", "CWS_TH_Axe_3");
			item10.Crafting.Add("CWS_Forge", 2);
			item10.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item10.RequiredItems.Add("RoundLog", 6);
			item10.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item10.RequiredUpgradeItems.Add("RoundLog", 8);
			item10.Configurable = Configurability.Full;
			item10.CraftAmount = 1;
			Item item11 = new Item("cwsassets", "CWS_TH_Axe_4");
			item11.Crafting.Add("CWS_Forge", 2);
			item11.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item11.RequiredItems.Add("RoundLog", 6);
			item11.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item11.RequiredUpgradeItems.Add("RoundLog", 8);
			item11.Configurable = Configurability.Full;
			item11.CraftAmount = 1;
			Item item12 = new Item("cwsassets", "CWS_TH_Axe_5");
			item12.Crafting.Add("CWS_Forge", 2);
			item12.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item12.RequiredItems.Add("RoundLog", 6);
			item12.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item12.RequiredUpgradeItems.Add("RoundLog", 8);
			item12.Configurable = Configurability.Full;
			item12.CraftAmount = 1;
			Item item13 = new Item("cwsassets", "CWS_TH_Axe_6");
			item13.Crafting.Add("CWS_Forge", 2);
			item13.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item13.RequiredItems.Add("RoundLog", 6);
			item13.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item13.RequiredUpgradeItems.Add("RoundLog", 8);
			item13.Configurable = Configurability.Full;
			item13.CraftAmount = 1;
			Item item14 = new Item("cwsassets", "CWS_TH_Axe_7");
			item14.Crafting.Add("CWS_Forge", 2);
			item14.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item14.RequiredItems.Add("RoundLog", 6);
			item14.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item14.RequiredUpgradeItems.Add("RoundLog", 8);
			item14.Configurable = Configurability.Full;
			item14.CraftAmount = 1;
			Item item15 = new Item("cwsassets", "CWS_TH_Axe_8");
			item15.Crafting.Add("CWS_Forge", 2);
			item15.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item15.RequiredItems.Add("RoundLog", 6);
			item15.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item15.RequiredUpgradeItems.Add("RoundLog", 8);
			item15.Configurable = Configurability.Full;
			item15.CraftAmount = 1;
			Item item16 = new Item("cwsassets", "CWS_TH_Axe_9");
			item16.Crafting.Add("CWS_Forge", 2);
			item16.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item16.RequiredItems.Add("RoundLog", 6);
			item16.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item16.RequiredUpgradeItems.Add("RoundLog", 8);
			item16.Configurable = Configurability.Full;
			item16.CraftAmount = 1;
			Item item17 = new Item("cwsassets", "CWS_TH_Axe_10");
			item17.Crafting.Add("CWS_Forge", 2);
			item17.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item17.RequiredItems.Add("RoundLog", 6);
			item17.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item17.RequiredUpgradeItems.Add("RoundLog", 8);
			item17.Configurable = Configurability.Full;
			item17.CraftAmount = 1;
			Item item18 = new Item("cwsassets", "CWS_Sledge_1");
			item18.Crafting.Add("CWS_Forge", 2);
			item18.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item18.RequiredItems.Add("RoundLog", 6);
			item18.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item18.RequiredUpgradeItems.Add("RoundLog", 8);
			item18.Configurable = Configurability.Full;
			item18.CraftAmount = 1;
			Item item19 = new Item("cwsassets", "CWS_Sledge_2");
			item19.Crafting.Add("CWS_Forge", 2);
			item19.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item19.RequiredItems.Add("RoundLog", 6);
			item19.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item19.RequiredUpgradeItems.Add("RoundLog", 8);
			item19.Configurable = Configurability.Full;
			item19.CraftAmount = 1;
			Item item20 = new Item("cwsassets", "CWS_Sledge_3");
			item20.Crafting.Add("CWS_Forge", 2);
			item20.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item20.RequiredItems.Add("RoundLog", 6);
			item20.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item20.RequiredUpgradeItems.Add("RoundLog", 8);
			item20.Configurable = Configurability.Full;
			item20.CraftAmount = 1;
			Item item21 = new Item("cwsassets", "CWS_Sledge_4");
			item21.Crafting.Add("CWS_Forge", 2);
			item21.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item21.RequiredItems.Add("RoundLog", 6);
			item21.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item21.RequiredUpgradeItems.Add("RoundLog", 8);
			item21.Configurable = Configurability.Full;
			item21.CraftAmount = 1;
			Item item22 = new Item("cwsassets", "CWS_Sledge_5");
			item22.Crafting.Add("CWS_Forge", 2);
			item22.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item22.RequiredItems.Add("RoundLog", 6);
			item22.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item22.RequiredUpgradeItems.Add("RoundLog", 8);
			item22.Configurable = Configurability.Full;
			item22.CraftAmount = 1;
			Item item23 = new Item("cwsassets", "CWS_Sledge_6");
			item23.Crafting.Add("CWS_Forge", 2);
			item23.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item23.RequiredItems.Add("RoundLog", 6);
			item23.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item23.RequiredUpgradeItems.Add("RoundLog", 8);
			item23.Configurable = Configurability.Full;
			item23.CraftAmount = 1;
			Item item24 = new Item("cwsassets", "CWS_Sledge_7");
			item24.Crafting.Add("CWS_Forge", 2);
			item24.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item24.RequiredItems.Add("RoundLog", 6);
			item24.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item24.RequiredUpgradeItems.Add("RoundLog", 8);
			item24.Configurable = Configurability.Full;
			item24.CraftAmount = 1;
			Item item25 = new Item("cwsassets", "CWS_Sledge_8");
			item25.Crafting.Add("CWS_Forge", 2);
			item25.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item25.RequiredItems.Add("RoundLog", 6);
			item25.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item25.RequiredUpgradeItems.Add("RoundLog", 8);
			item25.Configurable = Configurability.Full;
			item25.CraftAmount = 1;
			Item item26 = new Item("cwsassets", "CWS_Sledge_9");
			item26.Crafting.Add("CWS_Forge", 2);
			item26.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item26.RequiredItems.Add("RoundLog", 6);
			item26.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item26.RequiredUpgradeItems.Add("RoundLog", 8);
			item26.Configurable = Configurability.Full;
			item26.CraftAmount = 1;
			Item item27 = new Item("cwsassets", "CWS_Sledge_10");
			item27.Crafting.Add("CWS_Forge", 2);
			item27.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item27.RequiredItems.Add("RoundLog", 6);
			item27.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item27.RequiredUpgradeItems.Add("RoundLog", 8);
			item27.Configurable = Configurability.Full;
			item27.CraftAmount = 1;
			Item item28 = new Item("cwsassets", "CWS_Sledge_11");
			item28.Crafting.Add("CWS_Forge", 2);
			item28.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item28.RequiredItems.Add("RoundLog", 6);
			item28.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item28.RequiredUpgradeItems.Add("RoundLog", 8);
			item28.Configurable = Configurability.Full;
			item28.CraftAmount = 1;
			Item item29 = new Item("cwsassets", "CWS_TH_Sword_1");
			item29.Crafting.Add("CWS_Forge", 2);
			item29.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item29.RequiredItems.Add("RoundLog", 6);
			item29.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item29.RequiredUpgradeItems.Add("RoundLog", 8);
			item29.Configurable = Configurability.Full;
			item29.CraftAmount = 1;
			Item item30 = new Item("cwsassets", "CWS_TH_Sword_2");
			item30.Crafting.Add("CWS_Forge", 2);
			item30.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item30.RequiredItems.Add("RoundLog", 6);
			item30.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item30.RequiredUpgradeItems.Add("RoundLog", 8);
			item30.Configurable = Configurability.Full;
			item30.CraftAmount = 1;
			Item item31 = new Item("cwsassets", "CWS_TH_Sword_3");
			item31.Crafting.Add("CWS_Forge", 2);
			item31.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item31.RequiredItems.Add("RoundLog", 6);
			item31.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item31.RequiredUpgradeItems.Add("RoundLog", 8);
			item31.Configurable = Configurability.Full;
			item31.CraftAmount = 1;
			Item item32 = new Item("cwsassets", "CWS_TH_Sword_4");
			item32.Crafting.Add("CWS_Forge", 2);
			item32.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item32.RequiredItems.Add("RoundLog", 6);
			item32.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item32.RequiredUpgradeItems.Add("RoundLog", 8);
			item32.Configurable = Configurability.Full;
			item32.CraftAmount = 1;
			Item item33 = new Item("cwsassets", "CWS_TH_Sword_5");
			item33.Crafting.Add("CWS_Forge", 2);
			item33.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item33.RequiredItems.Add("RoundLog", 6);
			item33.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item33.RequiredUpgradeItems.Add("RoundLog", 8);
			item33.Configurable = Configurability.Full;
			item33.CraftAmount = 1;
			Item item34 = new Item("cwsassets", "CWS_TH_Sword_6");
			item34.Crafting.Add("CWS_Forge", 2);
			item34.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item34.RequiredItems.Add("RoundLog", 6);
			item34.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item34.RequiredUpgradeItems.Add("RoundLog", 8);
			item34.Configurable = Configurability.Full;
			item34.CraftAmount = 1;
			Item item35 = new Item("cwsassets", "CWS_TH_Sword_7");
			item35.Crafting.Add("CWS_Forge", 2);
			item35.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item35.RequiredItems.Add("RoundLog", 6);
			item35.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item35.RequiredUpgradeItems.Add("RoundLog", 8);
			item35.Configurable = Configurability.Full;
			item35.CraftAmount = 1;
			Item item36 = new Item("cwsassets", "CWS_TH_Sword_8");
			item36.Crafting.Add("CWS_Forge", 2);
			item36.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item36.RequiredItems.Add("RoundLog", 6);
			item36.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item36.RequiredUpgradeItems.Add("RoundLog", 8);
			item36.Configurable = Configurability.Full;
			item36.CraftAmount = 1;
			Item item37 = new Item("cwsassets", "CWS_TH_Sword_9");
			item37.Crafting.Add("CWS_Forge", 2);
			item37.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item37.RequiredItems.Add("RoundLog", 6);
			item37.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item37.RequiredUpgradeItems.Add("RoundLog", 8);
			item37.Configurable = Configurability.Full;
			item37.CraftAmount = 1;
			Item item38 = new Item("cwsassets", "CWS_TH_Sword_10");
			item38.Crafting.Add("CWS_Forge", 2);
			item38.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item38.RequiredItems.Add("RoundLog", 6);
			item38.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item38.RequiredUpgradeItems.Add("RoundLog", 8);
			item38.Configurable = Configurability.Full;
			item38.CraftAmount = 1;
			Item item39 = new Item("cwsassets", "CWS_TH_Sword_11");
			item39.Crafting.Add("CWS_Forge", 2);
			item39.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item39.RequiredItems.Add("RoundLog", 6);
			item39.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item39.RequiredUpgradeItems.Add("RoundLog", 8);
			item39.Configurable = Configurability.Full;
			item39.CraftAmount = 1;
			Item item40 = new Item("cwsassets", "CWS_Atgeir_1");
			item40.Crafting.Add("CWS_Forge", 2);
			item40.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item40.RequiredItems.Add("RoundLog", 6);
			item40.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item40.RequiredUpgradeItems.Add("RoundLog", 8);
			item40.Configurable = Configurability.Full;
			item40.CraftAmount = 1;
			Item item41 = new Item("cwsassets", "CWS_Atgeir_2");
			item41.Crafting.Add("CWS_Forge", 2);
			item41.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item41.RequiredItems.Add("RoundLog", 6);
			item41.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item41.RequiredUpgradeItems.Add("RoundLog", 8);
			item41.Configurable = Configurability.Full;
			item41.CraftAmount = 1;
			Item item42 = new Item("cwsassets", "CWS_Atgeir_3");
			item42.Crafting.Add("CWS_Forge", 2);
			item42.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item42.RequiredItems.Add("RoundLog", 6);
			item42.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item42.RequiredUpgradeItems.Add("RoundLog", 8);
			item42.Configurable = Configurability.Full;
			item42.CraftAmount = 1;
			Item item43 = new Item("cwsassets", "CWS_Atgeir_4");
			item43.Crafting.Add("CWS_Forge", 2);
			item43.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item43.RequiredItems.Add("RoundLog", 6);
			item43.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item43.RequiredUpgradeItems.Add("RoundLog", 8);
			item43.Configurable = Configurability.Full;
			item43.CraftAmount = 1;
			Item item44 = new Item("cwsassets", "CWS_Atgeir_5");
			item44.Crafting.Add("CWS_Forge", 2);
			item44.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item44.RequiredItems.Add("RoundLog", 6);
			item44.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item44.RequiredUpgradeItems.Add("RoundLog", 8);
			item44.Configurable = Configurability.Full;
			item44.CraftAmount = 1;
			Item item45 = new Item("cwsassets", "CWS_Atgeir_6");
			item45.Crafting.Add("CWS_Forge", 2);
			item45.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item45.RequiredItems.Add("RoundLog", 6);
			item45.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item45.RequiredUpgradeItems.Add("RoundLog", 8);
			item45.Configurable = Configurability.Full;
			item45.CraftAmount = 1;
			Item item46 = new Item("cwsassets", "CWS_Atgeir_7");
			item46.Crafting.Add("CWS_Forge", 2);
			item46.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item46.RequiredItems.Add("RoundLog", 6);
			item46.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item46.RequiredUpgradeItems.Add("RoundLog", 8);
			item46.Configurable = Configurability.Full;
			item46.CraftAmount = 1;
			Item item47 = new Item("cwsassets", "CWS_Atgeir_8");
			item47.Crafting.Add("CWS_Forge", 2);
			item47.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item47.RequiredItems.Add("RoundLog", 6);
			item47.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item47.RequiredUpgradeItems.Add("RoundLog", 8);
			item47.Configurable = Configurability.Full;
			item47.CraftAmount = 1;
			Item item48 = new Item("cwsassets", "CWS_Atgeir_9");
			item48.Crafting.Add("CWS_Forge", 2);
			item48.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item48.RequiredItems.Add("RoundLog", 6);
			item48.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item48.RequiredUpgradeItems.Add("RoundLog", 8);
			item48.Configurable = Configurability.Full;
			item48.CraftAmount = 1;
			Item item49 = new Item("cwsassets", "CWS_Atgeir_10");
			item49.Crafting.Add("CWS_Forge", 2);
			item49.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item49.RequiredItems.Add("RoundLog", 6);
			item49.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item49.RequiredUpgradeItems.Add("RoundLog", 8);
			item49.Configurable = Configurability.Full;
			item49.CraftAmount = 1;
			Item item50 = new Item("cwsassets", "CWS_Axe_1");
			item50.Crafting.Add("CWS_Forge", 2);
			item50.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item50.RequiredItems.Add("RoundLog", 6);
			item50.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item50.RequiredUpgradeItems.Add("RoundLog", 8);
			item50.Configurable = Configurability.Full;
			item50.CraftAmount = 1;
			Item item51 = new Item("cwsassets", "CWS_Axe_2");
			item51.Crafting.Add("CWS_Forge", 2);
			item51.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item51.RequiredItems.Add("RoundLog", 6);
			item51.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item51.RequiredUpgradeItems.Add("RoundLog", 8);
			item51.Configurable = Configurability.Full;
			item51.CraftAmount = 1;
			Item item52 = new Item("cwsassets", "CWS_Axe_3");
			item52.Crafting.Add("CWS_Forge", 2);
			item52.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item52.RequiredItems.Add("RoundLog", 6);
			item52.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item52.RequiredUpgradeItems.Add("RoundLog", 8);
			item52.Configurable = Configurability.Full;
			item52.CraftAmount = 1;
			Item item53 = new Item("cwsassets", "CWS_Axe_4");
			item53.Crafting.Add("CWS_Forge", 2);
			item53.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item53.RequiredItems.Add("RoundLog", 6);
			item53.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item53.RequiredUpgradeItems.Add("RoundLog", 8);
			item53.Configurable = Configurability.Full;
			item53.CraftAmount = 1;
			Item item54 = new Item("cwsassets", "CWS_Axe_5");
			item54.Crafting.Add("CWS_Forge", 2);
			item54.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item54.RequiredItems.Add("RoundLog", 6);
			item54.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item54.RequiredUpgradeItems.Add("RoundLog", 8);
			item54.Configurable = Configurability.Full;
			item54.CraftAmount = 1;
			Item item55 = new Item("cwsassets", "CWS_Axe_6");
			item55.Crafting.Add("CWS_Forge", 2);
			item55.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item55.RequiredItems.Add("RoundLog", 6);
			item55.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item55.RequiredUpgradeItems.Add("RoundLog", 8);
			item55.Configurable = Configurability.Full;
			item55.CraftAmount = 1;
			Item item56 = new Item("cwsassets", "CWS_Axe_7");
			item56.Crafting.Add("CWS_Forge", 2);
			item56.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item56.RequiredItems.Add("RoundLog", 6);
			item56.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item56.RequiredUpgradeItems.Add("RoundLog", 8);
			item56.Configurable = Configurability.Full;
			item56.CraftAmount = 1;
			Item item57 = new Item("cwsassets", "CWS_Axe_8");
			item57.Crafting.Add("CWS_Forge", 2);
			item57.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item57.RequiredItems.Add("RoundLog", 6);
			item57.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item57.RequiredUpgradeItems.Add("RoundLog", 8);
			item57.Configurable = Configurability.Full;
			item57.CraftAmount = 1;
			Item item58 = new Item("cwsassets", "CWS_Axe_9");
			item58.Crafting.Add("CWS_Forge", 2);
			item58.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item58.RequiredItems.Add("RoundLog", 6);
			item58.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item58.RequiredUpgradeItems.Add("RoundLog", 8);
			item58.Configurable = Configurability.Full;
			item58.CraftAmount = 1;
			Item item59 = new Item("cwsassets", "CWS_Axe_10");
			item59.Crafting.Add("CWS_Forge", 2);
			item59.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item59.RequiredItems.Add("RoundLog", 6);
			item59.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item59.RequiredUpgradeItems.Add("RoundLog", 8);
			item59.Configurable = Configurability.Full;
			item59.CraftAmount = 1;
			Item item60 = new Item("cwsassets", "CWS_Bow_1");
			item60.Crafting.Add("CWS_Forge", 2);
			item60.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item60.RequiredItems.Add("RoundLog", 6);
			item60.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item60.RequiredUpgradeItems.Add("RoundLog", 8);
			item60.Configurable = Configurability.Full;
			item60.CraftAmount = 1;
			Item item61 = new Item("cwsassets", "CWS_Bow_2");
			item61.Crafting.Add("CWS_Forge", 2);
			item61.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item61.RequiredItems.Add("RoundLog", 6);
			item61.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item61.RequiredUpgradeItems.Add("RoundLog", 8);
			item61.Configurable = Configurability.Full;
			item61.CraftAmount = 1;
			Item item62 = new Item("cwsassets", "CWS_Bow_3");
			item62.Crafting.Add("CWS_Forge", 2);
			item62.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item62.RequiredItems.Add("RoundLog", 6);
			item62.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item62.RequiredUpgradeItems.Add("RoundLog", 8);
			item62.Configurable = Configurability.Full;
			item62.CraftAmount = 1;
			Item item63 = new Item("cwsassets", "CWS_Bow_4");
			item63.Crafting.Add("CWS_Forge", 2);
			item63.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item63.RequiredItems.Add("RoundLog", 6);
			item63.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item63.RequiredUpgradeItems.Add("RoundLog", 8);
			item63.Configurable = Configurability.Full;
			item63.CraftAmount = 1;
			Item item64 = new Item("cwsassets", "CWS_Bow_5");
			item64.Crafting.Add("CWS_Forge", 2);
			item64.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item64.RequiredItems.Add("RoundLog", 6);
			item64.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item64.RequiredUpgradeItems.Add("RoundLog", 8);
			item64.Configurable = Configurability.Full;
			item64.CraftAmount = 1;
			Item item65 = new Item("cwsassets", "CWS_Bow_6");
			item65.Crafting.Add("CWS_Forge", 2);
			item65.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item65.RequiredItems.Add("RoundLog", 6);
			item65.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item65.RequiredUpgradeItems.Add("RoundLog", 8);
			item65.Configurable = Configurability.Full;
			item65.CraftAmount = 1;
			Item item66 = new Item("cwsassets", "CWS_Bow_7");
			item66.Crafting.Add("CWS_Forge", 2);
			item66.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item66.RequiredItems.Add("RoundLog", 6);
			item66.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item66.RequiredUpgradeItems.Add("RoundLog", 8);
			item66.Configurable = Configurability.Full;
			item66.CraftAmount = 1;
			Item item67 = new Item("cwsassets", "CWS_Bow_8");
			item67.Crafting.Add("CWS_Forge", 2);
			item67.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item67.RequiredItems.Add("RoundLog", 6);
			item67.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item67.RequiredUpgradeItems.Add("RoundLog", 8);
			item67.Configurable = Configurability.Full;
			item67.CraftAmount = 1;
			Item item68 = new Item("cwsassets", "CWS_Bow_9");
			item68.Crafting.Add("CWS_Forge", 2);
			item68.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item68.RequiredItems.Add("RoundLog", 6);
			item68.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item68.RequiredUpgradeItems.Add("RoundLog", 8);
			item68.Configurable = Configurability.Full;
			item68.CraftAmount = 1;
			Item item69 = new Item("cwsassets", "CWS_Bow_10");
			item69.Crafting.Add("CWS_Forge", 2);
			item69.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item69.RequiredItems.Add("RoundLog", 6);
			item69.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item69.RequiredUpgradeItems.Add("RoundLog", 8);
			item69.Configurable = Configurability.Full;
			item69.CraftAmount = 1;
			Item item70 = new Item("cwsassets", "CWS_Bow_11");
			item70.Crafting.Add("CWS_Forge", 2);
			item70.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item70.RequiredItems.Add("RoundLog", 6);
			item70.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item70.RequiredUpgradeItems.Add("RoundLog", 8);
			item70.Configurable = Configurability.Full;
			item70.CraftAmount = 1;
			Item item71 = new Item("cwsassets", "CWS_Dagger_1");
			item71.Crafting.Add("CWS_Forge", 2);
			item71.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item71.RequiredItems.Add("RoundLog", 6);
			item71.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item71.RequiredUpgradeItems.Add("RoundLog", 8);
			item71.Configurable = Configurability.Full;
			item71.CraftAmount = 1;
			Item item72 = new Item("cwsassets", "CWS_Dagger_2");
			item72.Crafting.Add("CWS_Forge", 2);
			item72.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item72.RequiredItems.Add("RoundLog", 6);
			item72.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item72.RequiredUpgradeItems.Add("RoundLog", 8);
			item72.Configurable = Configurability.Full;
			item72.CraftAmount = 1;
			Item item73 = new Item("cwsassets", "CWS_Dagger_3");
			item73.Crafting.Add("CWS_Forge", 2);
			item73.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item73.RequiredItems.Add("RoundLog", 6);
			item73.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item73.RequiredUpgradeItems.Add("RoundLog", 8);
			item73.Configurable = Configurability.Full;
			item73.CraftAmount = 1;
			Item item74 = new Item("cwsassets", "CWS_Dagger_4");
			item74.Crafting.Add("CWS_Forge", 2);
			item74.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item74.RequiredItems.Add("RoundLog", 6);
			item74.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item74.RequiredUpgradeItems.Add("RoundLog", 8);
			item74.Configurable = Configurability.Full;
			item74.CraftAmount = 1;
			Item item75 = new Item("cwsassets", "CWS_Dagger_5");
			item75.Crafting.Add("CWS_Forge", 2);
			item75.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item75.RequiredItems.Add("RoundLog", 6);
			item75.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item75.RequiredUpgradeItems.Add("RoundLog", 8);
			item75.Configurable = Configurability.Full;
			item75.CraftAmount = 1;
			Item item76 = new Item("cwsassets", "CWS_Dagger_6");
			item76.Crafting.Add("CWS_Forge", 2);
			item76.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item76.RequiredItems.Add("RoundLog", 6);
			item76.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item76.RequiredUpgradeItems.Add("RoundLog", 8);
			item76.Configurable = Configurability.Full;
			item76.CraftAmount = 1;
			Item item77 = new Item("cwsassets", "CWS_Dagger_7");
			item77.Crafting.Add("CWS_Forge", 2);
			item77.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item77.RequiredItems.Add("RoundLog", 6);
			item77.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item77.RequiredUpgradeItems.Add("RoundLog", 8);
			item77.Configurable = Configurability.Full;
			item77.CraftAmount = 1;
			Item item78 = new Item("cwsassets", "CWS_Dagger_8");
			item78.Crafting.Add("CWS_Forge", 2);
			item78.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item78.RequiredItems.Add("RoundLog", 6);
			item78.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item78.RequiredUpgradeItems.Add("RoundLog", 8);
			item78.Configurable = Configurability.Full;
			item78.CraftAmount = 1;
			Item item79 = new Item("cwsassets", "CWS_Dagger_9");
			item79.Crafting.Add("CWS_Forge", 2);
			item79.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item79.RequiredItems.Add("RoundLog", 6);
			item79.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item79.RequiredUpgradeItems.Add("RoundLog", 8);
			item79.Configurable = Configurability.Full;
			item79.CraftAmount = 1;
			Item item80 = new Item("cwsassets", "CWS_Dagger_10");
			item80.Crafting.Add("CWS_Forge", 2);
			item80.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item80.RequiredItems.Add("RoundLog", 6);
			item80.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item80.RequiredUpgradeItems.Add("RoundLog", 8);
			item80.Configurable = Configurability.Full;
			item80.CraftAmount = 1;
			Item item81 = new Item("cwsassets", "CWS_Dagger_11");
			item81.Crafting.Add("CWS_Forge", 2);
			item81.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item81.RequiredItems.Add("RoundLog", 6);
			item81.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item81.RequiredUpgradeItems.Add("RoundLog", 8);
			item81.Configurable = Configurability.Full;
			item81.CraftAmount = 1;
			Item item82 = new Item("cwsassets", "CWS_Mace_1");
			item82.Crafting.Add("CWS_Forge", 2);
			item82.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item82.RequiredItems.Add("RoundLog", 6);
			item82.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item82.RequiredUpgradeItems.Add("RoundLog", 8);
			item82.Configurable = Configurability.Full;
			item82.CraftAmount = 1;
			Item item83 = new Item("cwsassets", "CWS_Mace_2");
			item83.Crafting.Add("CWS_Forge", 2);
			item83.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item83.RequiredItems.Add("RoundLog", 6);
			item83.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item83.RequiredUpgradeItems.Add("RoundLog", 8);
			item83.Configurable = Configurability.Full;
			item83.CraftAmount = 1;
			Item item84 = new Item("cwsassets", "CWS_Mace_3");
			item84.Crafting.Add("CWS_Forge", 2);
			item84.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item84.RequiredItems.Add("RoundLog", 6);
			item84.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item84.RequiredUpgradeItems.Add("RoundLog", 8);
			item84.Configurable = Configurability.Full;
			item84.CraftAmount = 1;
			Item item85 = new Item("cwsassets", "CWS_Mace_4");
			item85.Crafting.Add("CWS_Forge", 2);
			item85.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item85.RequiredItems.Add("RoundLog", 6);
			item85.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item85.RequiredUpgradeItems.Add("RoundLog", 8);
			item85.Configurable = Configurability.Full;
			item85.CraftAmount = 1;
			Item item86 = new Item("cwsassets", "CWS_Mace_5");
			item86.Crafting.Add("CWS_Forge", 2);
			item86.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item86.RequiredItems.Add("RoundLog", 6);
			item86.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item86.RequiredUpgradeItems.Add("RoundLog", 8);
			item86.Configurable = Configurability.Full;
			item86.CraftAmount = 1;
			Item item87 = new Item("cwsassets", "CWS_Mace_6");
			item87.Crafting.Add("CWS_Forge", 2);
			item87.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item87.RequiredItems.Add("RoundLog", 6);
			item87.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item87.RequiredUpgradeItems.Add("RoundLog", 8);
			item87.Configurable = Configurability.Full;
			item87.CraftAmount = 1;
			Item item88 = new Item("cwsassets", "CWS_Mace_7");
			item88.Crafting.Add("CWS_Forge", 2);
			item88.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item88.RequiredItems.Add("RoundLog", 6);
			item88.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item88.RequiredUpgradeItems.Add("RoundLog", 8);
			item88.Configurable = Configurability.Full;
			item88.CraftAmount = 1;
			Item item89 = new Item("cwsassets", "CWS_Mace_8");
			item89.Crafting.Add("CWS_Forge", 2);
			item89.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item89.RequiredItems.Add("RoundLog", 6);
			item89.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item89.RequiredUpgradeItems.Add("RoundLog", 8);
			item89.Configurable = Configurability.Full;
			item89.CraftAmount = 1;
			Item item90 = new Item("cwsassets", "CWS_Mace_9");
			item90.Crafting.Add("CWS_Forge", 2);
			item90.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item90.RequiredItems.Add("RoundLog", 6);
			item90.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item90.RequiredUpgradeItems.Add("RoundLog", 8);
			item90.Configurable = Configurability.Full;
			item90.CraftAmount = 1;
			Item item91 = new Item("cwsassets", "CWS_Mace_10");
			item91.Crafting.Add("CWS_Forge", 2);
			item91.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item91.RequiredItems.Add("RoundLog", 6);
			item91.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item91.RequiredUpgradeItems.Add("RoundLog", 8);
			item91.Configurable = Configurability.Full;
			item91.CraftAmount = 1;
			Item item92 = new Item("cwsassets", "CWS_Buckler_Shield_1");
			item92.Crafting.Add("CWS_Forge", 2);
			item92.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item92.RequiredItems.Add("RoundLog", 6);
			item92.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item92.RequiredUpgradeItems.Add("RoundLog", 8);
			item92.Configurable = Configurability.Full;
			item92.CraftAmount = 1;
			Item item93 = new Item("cwsassets", "CWS_Buckler_Shield_2");
			item93.Crafting.Add("CWS_Forge", 2);
			item93.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item93.RequiredItems.Add("RoundLog", 6);
			item93.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item93.RequiredUpgradeItems.Add("RoundLog", 8);
			item93.Configurable = Configurability.Full;
			item93.CraftAmount = 1;
			Item item94 = new Item("cwsassets", "CWS_Round_Shield_1");
			item94.Crafting.Add("CWS_Forge", 2);
			item94.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item94.RequiredItems.Add("RoundLog", 6);
			item94.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item94.RequiredUpgradeItems.Add("RoundLog", 8);
			item94.Configurable = Configurability.Full;
			item94.CraftAmount = 1;
			Item item95 = new Item("cwsassets", "CWS_Round_Shield_2");
			item95.Crafting.Add("CWS_Forge", 2);
			item95.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item95.RequiredItems.Add("RoundLog", 6);
			item95.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item95.RequiredUpgradeItems.Add("RoundLog", 8);
			item95.Configurable = Configurability.Full;
			item95.CraftAmount = 1;
			Item item96 = new Item("cwsassets", "CWS_Round_Shield_3");
			item96.Crafting.Add("CWS_Forge", 2);
			item96.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item96.RequiredItems.Add("RoundLog", 6);
			item96.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item96.RequiredUpgradeItems.Add("RoundLog", 8);
			item96.Configurable = Configurability.Full;
			item96.CraftAmount = 1;
			Item item97 = new Item("cwsassets", "CWS_Round_Shield_4");
			item97.Crafting.Add("CWS_Forge", 2);
			item97.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item97.RequiredItems.Add("RoundLog", 6);
			item97.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item97.RequiredUpgradeItems.Add("RoundLog", 8);
			item97.Configurable = Configurability.Full;
			item97.CraftAmount = 1;
			Item item98 = new Item("cwsassets", "CWS_Round_Shield_5");
			item98.Crafting.Add("CWS_Forge", 2);
			item98.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item98.RequiredItems.Add("RoundLog", 6);
			item98.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item98.RequiredUpgradeItems.Add("RoundLog", 8);
			item98.Configurable = Configurability.Full;
			item98.CraftAmount = 1;
			Item item99 = new Item("cwsassets", "CWS_Round_Shield_6");
			item99.Crafting.Add("CWS_Forge", 2);
			item99.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item99.RequiredItems.Add("RoundLog", 6);
			item99.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item99.RequiredUpgradeItems.Add("RoundLog", 8);
			item99.Configurable = Configurability.Full;
			item99.CraftAmount = 1;
			Item item100 = new Item("cwsassets", "CWS_Round_Shield_7");
			item100.Crafting.Add("CWS_Forge", 2);
			item100.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item100.RequiredItems.Add("RoundLog", 6);
			item100.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item100.RequiredUpgradeItems.Add("RoundLog", 8);
			item100.Configurable = Configurability.Full;
			item100.CraftAmount = 1;
			Item item101 = new Item("cwsassets", "CWS_Heater_Shield_1");
			item101.Crafting.Add("CWS_Forge", 2);
			item101.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item101.RequiredItems.Add("RoundLog", 6);
			item101.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item101.RequiredUpgradeItems.Add("RoundLog", 8);
			item101.Configurable = Configurability.Full;
			item101.CraftAmount = 1;
			Item item102 = new Item("cwsassets", "CWS_Heater_Shield_2");
			item102.Crafting.Add("CWS_Forge", 2);
			item102.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item102.RequiredItems.Add("RoundLog", 6);
			item102.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item102.RequiredUpgradeItems.Add("RoundLog", 8);
			item102.Configurable = Configurability.Full;
			item102.CraftAmount = 1;
			Item item103 = new Item("cwsassets", "CWS_Heater_Shield_3");
			item103.Crafting.Add("CWS_Forge", 2);
			item103.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item103.RequiredItems.Add("RoundLog", 6);
			item103.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item103.RequiredUpgradeItems.Add("RoundLog", 8);
			item103.Configurable = Configurability.Full;
			item103.CraftAmount = 1;
			Item item104 = new Item("cwsassets", "CWS_Heater_Shield_4");
			item104.Crafting.Add("CWS_Forge", 2);
			item104.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item104.RequiredItems.Add("RoundLog", 6);
			item104.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item104.RequiredUpgradeItems.Add("RoundLog", 8);
			item104.Configurable = Configurability.Full;
			item104.CraftAmount = 1;
			Item item105 = new Item("cwsassets", "CWS_Heater_Shield_5");
			item105.Crafting.Add("CWS_Forge", 2);
			item105.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item105.RequiredItems.Add("RoundLog", 6);
			item105.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item105.RequiredUpgradeItems.Add("RoundLog", 8);
			item105.Configurable = Configurability.Full;
			item105.CraftAmount = 1;
			Item item106 = new Item("cwsassets", "CWS_Tower_Shield_1");
			item106.Crafting.Add("CWS_Forge", 2);
			item106.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item106.RequiredItems.Add("RoundLog", 6);
			item106.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item106.RequiredUpgradeItems.Add("RoundLog", 8);
			item106.Configurable = Configurability.Full;
			item106.CraftAmount = 1;
			Item item107 = new Item("cwsassets", "CWS_Tower_Shield_2");
			item107.Crafting.Add("CWS_Forge", 2);
			item107.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item107.RequiredItems.Add("RoundLog", 6);
			item107.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item107.RequiredUpgradeItems.Add("RoundLog", 8);
			item107.Configurable = Configurability.Full;
			item107.CraftAmount = 1;
			Item item108 = new Item("cwsassets", "CWS_Tower_Shield_3");
			item108.Crafting.Add("CWS_Forge", 2);
			item108.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item108.RequiredItems.Add("RoundLog", 6);
			item108.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item108.RequiredUpgradeItems.Add("RoundLog", 8);
			item108.Configurable = Configurability.Full;
			item108.CraftAmount = 1;
			Item item109 = new Item("cwsassets", "CWS_Tower_Shield_4");
			item109.Crafting.Add("CWS_Forge", 2);
			item109.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item109.RequiredItems.Add("RoundLog", 6);
			item109.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item109.RequiredUpgradeItems.Add("RoundLog", 8);
			item109.Configurable = Configurability.Full;
			item109.CraftAmount = 1;
			Item item110 = new Item("cwsassets", "CWS_Tower_Shield_5");
			item110.Crafting.Add("CWS_Forge", 2);
			item110.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item110.RequiredItems.Add("RoundLog", 6);
			item110.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item110.RequiredUpgradeItems.Add("RoundLog", 8);
			item110.Configurable = Configurability.Full;
			item110.CraftAmount = 1;
			Item item111 = new Item("cwsassets", "CWS_Spear_1");
			item111.Crafting.Add("CWS_Forge", 2);
			item111.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item111.RequiredItems.Add("RoundLog", 6);
			item111.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item111.RequiredUpgradeItems.Add("RoundLog", 8);
			item111.Configurable = Configurability.Full;
			item111.CraftAmount = 1;
			GameObject val3 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Spear_1_Projectile");
			Item item112 = new Item("cwsassets", "CWS_Spear_2");
			item112.Crafting.Add("CWS_Forge", 2);
			item112.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item112.RequiredItems.Add("RoundLog", 6);
			item112.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item112.RequiredUpgradeItems.Add("RoundLog", 8);
			item112.Configurable = Configurability.Full;
			item112.CraftAmount = 1;
			GameObject val4 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Spear_2_Projectile");
			Item item113 = new Item("cwsassets", "CWS_Spear_3");
			item113.Crafting.Add("CWS_Forge", 2);
			item113.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item113.RequiredItems.Add("RoundLog", 6);
			item113.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item113.RequiredUpgradeItems.Add("RoundLog", 8);
			item113.Configurable = Configurability.Full;
			item113.CraftAmount = 1;
			GameObject val5 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Spear_3_Projectile");
			Item item114 = new Item("cwsassets", "CWS_Spear_4");
			item114.Crafting.Add("CWS_Forge", 2);
			item114.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item114.RequiredItems.Add("RoundLog", 6);
			item114.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item114.RequiredUpgradeItems.Add("RoundLog", 8);
			item114.Configurable = Configurability.Full;
			item114.CraftAmount = 1;
			GameObject val6 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Spear_4_Projectile");
			Item item115 = new Item("cwsassets", "CWS_Spear_5");
			item115.Crafting.Add("CWS_Forge", 2);
			item115.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item115.RequiredItems.Add("RoundLog", 6);
			item115.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item115.RequiredUpgradeItems.Add("RoundLog", 8);
			item115.Configurable = Configurability.Full;
			item115.CraftAmount = 1;
			GameObject val7 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Spear_5_Projectile");
			Item item116 = new Item("cwsassets", "CWS_Spear_6");
			item116.Crafting.Add("CWS_Forge", 2);
			item116.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item116.RequiredItems.Add("RoundLog", 6);
			item116.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item116.RequiredUpgradeItems.Add("RoundLog", 8);
			item116.Configurable = Configurability.Full;
			item116.CraftAmount = 1;
			GameObject val8 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Spear_6_Projectile");
			Item item117 = new Item("cwsassets", "CWS_Spear_7");
			item117.Crafting.Add("CWS_Forge", 2);
			item117.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item117.RequiredItems.Add("RoundLog", 6);
			item117.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item117.RequiredUpgradeItems.Add("RoundLog", 8);
			item117.Configurable = Configurability.Full;
			item117.CraftAmount = 1;
			GameObject val9 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Spear_7_Projectile");
			Item item118 = new Item("cwsassets", "CWS_Spear_8");
			item118.Crafting.Add("CWS_Forge", 2);
			item118.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item118.RequiredItems.Add("RoundLog", 6);
			item118.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item118.RequiredUpgradeItems.Add("RoundLog", 8);
			item118.Configurable = Configurability.Full;
			item118.CraftAmount = 1;
			GameObject val10 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Spear_8_Projectile");
			Item item119 = new Item("cwsassets", "CWS_Spear_9");
			item119.Crafting.Add("CWS_Forge", 2);
			item119.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item119.RequiredItems.Add("RoundLog", 6);
			item119.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item119.RequiredUpgradeItems.Add("RoundLog", 8);
			item119.Configurable = Configurability.Full;
			item119.CraftAmount = 1;
			GameObject val11 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Spear_9_Projectile");
			Item item120 = new Item("cwsassets", "CWS_Sword_1");
			item120.Crafting.Add("CWS_Forge", 2);
			item120.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item120.RequiredItems.Add("RoundLog", 6);
			item120.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item120.RequiredUpgradeItems.Add("RoundLog", 8);
			item120.Configurable = Configurability.Full;
			item120.CraftAmount = 1;
			Item item121 = new Item("cwsassets", "CWS_Sword_2");
			item121.Crafting.Add("CWS_Forge", 2);
			item121.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item121.RequiredItems.Add("RoundLog", 6);
			item121.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item121.RequiredUpgradeItems.Add("RoundLog", 8);
			item121.Configurable = Configurability.Full;
			item121.CraftAmount = 1;
			Item item122 = new Item("cwsassets", "CWS_Sword_3");
			item122.Crafting.Add("CWS_Forge", 2);
			item122.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item122.RequiredItems.Add("RoundLog", 6);
			item122.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item122.RequiredUpgradeItems.Add("RoundLog", 8);
			item122.Configurable = Configurability.Full;
			item122.CraftAmount = 1;
			Item item123 = new Item("cwsassets", "CWS_Sword_4");
			item123.Crafting.Add("CWS_Forge", 2);
			item123.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item123.RequiredItems.Add("RoundLog", 6);
			item123.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item123.RequiredUpgradeItems.Add("RoundLog", 8);
			item123.Configurable = Configurability.Full;
			item123.CraftAmount = 1;
			Item item124 = new Item("cwsassets", "CWS_Sword_5");
			item124.Crafting.Add("CWS_Forge", 2);
			item124.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item124.RequiredItems.Add("RoundLog", 6);
			item124.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item124.RequiredUpgradeItems.Add("RoundLog", 8);
			item124.Configurable = Configurability.Full;
			item124.CraftAmount = 1;
			Item item125 = new Item("cwsassets", "CWS_Sword_6");
			item125.Crafting.Add("CWS_Forge", 2);
			item125.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item125.RequiredItems.Add("RoundLog", 6);
			item125.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item125.RequiredUpgradeItems.Add("RoundLog", 8);
			item125.Configurable = Configurability.Full;
			item125.CraftAmount = 1;
			Item item126 = new Item("cwsassets", "CWS_Sword_7");
			item126.Crafting.Add("CWS_Forge", 2);
			item126.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item126.RequiredItems.Add("RoundLog", 6);
			item126.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item126.RequiredUpgradeItems.Add("RoundLog", 8);
			item126.Configurable = Configurability.Full;
			item126.CraftAmount = 1;
			Item item127 = new Item("cwsassets", "CWS_Sword_8");
			item127.Crafting.Add("CWS_Forge", 2);
			item127.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item127.RequiredItems.Add("RoundLog", 6);
			item127.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item127.RequiredUpgradeItems.Add("RoundLog", 8);
			item127.Configurable = Configurability.Full;
			item127.CraftAmount = 1;
			Item item128 = new Item("cwsassets", "CWS_Sword_9");
			item128.Crafting.Add("CWS_Forge", 2);
			item128.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item128.RequiredItems.Add("RoundLog", 6);
			item128.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item128.RequiredUpgradeItems.Add("RoundLog", 8);
			item128.Configurable = Configurability.Full;
			item128.CraftAmount = 1;
			Item item129 = new Item("cwsassets", "CWS_Sword_10");
			item129.Crafting.Add("CWS_Forge", 2);
			item129.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item129.RequiredItems.Add("RoundLog", 6);
			item129.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item129.RequiredUpgradeItems.Add("RoundLog", 8);
			item129.Configurable = Configurability.Full;
			item129.CraftAmount = 1;
			Item item130 = new Item("cwsassets", "CWS_Sword_11");
			item130.Crafting.Add("CWS_Forge", 2);
			item130.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item130.RequiredItems.Add("RoundLog", 6);
			item130.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item130.RequiredUpgradeItems.Add("RoundLog", 8);
			item130.Configurable = Configurability.Full;
			item130.CraftAmount = 1;
			Item item131 = new Item("cwsassets", "CWS_Sword_12");
			item131.Crafting.Add("CWS_Forge", 2);
			item131.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item131.RequiredItems.Add("RoundLog", 6);
			item131.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item131.RequiredUpgradeItems.Add("RoundLog", 8);
			item131.Configurable = Configurability.Full;
			item131.CraftAmount = 1;
			Item item132 = new Item("cwsassets", "CWS_Sword_13");
			item132.Crafting.Add("CWS_Forge", 2);
			item132.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item132.RequiredItems.Add("RoundLog", 6);
			item132.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item132.RequiredUpgradeItems.Add("RoundLog", 8);
			item132.Configurable = Configurability.Full;
			item132.CraftAmount = 1;
			Item item133 = new Item("cwsassets", "CWS_Sword_14");
			item133.Crafting.Add("CWS_Forge", 2);
			item133.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item133.RequiredItems.Add("RoundLog", 6);
			item133.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item133.RequiredUpgradeItems.Add("RoundLog", 8);
			item133.Configurable = Configurability.Full;
			item133.CraftAmount = 1;
			Item item134 = new Item("cwsassets", "CWS_Crossbow_1");
			item134.Crafting.Add("CWS_Forge", 2);
			item134.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item134.RequiredItems.Add("RoundLog", 6);
			item134.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item134.RequiredUpgradeItems.Add("RoundLog", 8);
			item134.Configurable = Configurability.Full;
			item134.CraftAmount = 1;
			Item item135 = new Item("cwsassets", "CWS_Crossbow_2");
			item135.Crafting.Add("CWS_Forge", 2);
			item135.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item135.RequiredItems.Add("RoundLog", 6);
			item135.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item135.RequiredUpgradeItems.Add("RoundLog", 8);
			item135.Configurable = Configurability.Full;
			item135.CraftAmount = 1;
			Item item136 = new Item("cwsassets", "CWS_Crossbow_3");
			item136.Crafting.Add("CWS_Forge", 2);
			item136.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item136.RequiredItems.Add("RoundLog", 6);
			item136.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item136.RequiredUpgradeItems.Add("RoundLog", 8);
			item136.Configurable = Configurability.Full;
			item136.CraftAmount = 1;
			Item item137 = new Item("cwsassets", "CWS_Crossbow_4");
			item137.Crafting.Add("CWS_Forge", 2);
			item137.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item137.RequiredItems.Add("RoundLog", 6);
			item137.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item137.RequiredUpgradeItems.Add("RoundLog", 8);
			item137.Configurable = Configurability.Full;
			item137.CraftAmount = 1;
			Item item138 = new Item("cwsassets", "CWS_Crossbow_5");
			item138.Crafting.Add("CWS_Forge", 2);
			item138.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item138.RequiredItems.Add("RoundLog", 6);
			item138.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item138.RequiredUpgradeItems.Add("RoundLog", 8);
			item138.Configurable = Configurability.Full;
			item138.CraftAmount = 1;
			Item item139 = new Item("cwsassets", "CWS_Crossbow_6");
			item139.Crafting.Add("CWS_Forge", 2);
			item139.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item139.RequiredItems.Add("RoundLog", 6);
			item139.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item139.RequiredUpgradeItems.Add("RoundLog", 8);
			item139.Configurable = Configurability.Full;
			item139.CraftAmount = 1;
			Item item140 = new Item("cwsassets", "CWS_Crossbow_7");
			item140.Crafting.Add("CWS_Forge", 2);
			item140.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item140.RequiredItems.Add("RoundLog", 6);
			item140.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item140.RequiredUpgradeItems.Add("RoundLog", 8);
			item140.Configurable = Configurability.Full;
			item140.CraftAmount = 1;
			Item item141 = new Item("cwsassets", "CWS_Crossbow_8");
			item141.Crafting.Add("CWS_Forge", 2);
			item141.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item141.RequiredItems.Add("RoundLog", 6);
			item141.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item141.RequiredUpgradeItems.Add("RoundLog", 8);
			item141.Configurable = Configurability.Full;
			item141.CraftAmount = 1;
			Item item142 = new Item("cwsassets", "CWS_Crossbow_9");
			item142.Crafting.Add("CWS_Forge", 2);
			item142.RequiredItems.Add("CWS_Hot_Steel_Finished", 2);
			item142.RequiredItems.Add("RoundLog", 6);
			item142.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 4);
			item142.RequiredUpgradeItems.Add("RoundLog", 8);
			item142.Configurable = Configurability.Full;
			item142.CraftAmount = 1;
			Item item143 = new Item("cwsassets", "CWS_Arrow_1");
			item143.Crafting.Add("CWS_Forge", 2);
			item143.RequiredItems.Add("CWS_Hot_Steel_Finished", 1);
			item143.RequiredItems.Add("RoundLog", 4);
			item143.RequiredItems.Add("ElderBark", 1);
			item143.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 2);
			item143.RequiredUpgradeItems.Add("RoundLog", 6);
			item143.Configurable = Configurability.Full;
			item143.CraftAmount = 20;
			GameObject val12 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Arrow_Pro_1");
			Item item144 = new Item("cwsassets", "CWS_Arrow_2");
			item144.Crafting.Add("CWS_Forge", 2);
			item144.RequiredItems.Add("CWS_Hot_Steel_Finished", 1);
			item144.RequiredItems.Add("RoundLog", 4);
			item144.RequiredItems.Add("Obsidian", 1);
			item144.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 2);
			item144.RequiredUpgradeItems.Add("RoundLog", 6);
			item144.Configurable = Configurability.Full;
			item144.CraftAmount = 20;
			GameObject val13 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Arrow_Pro_2");
			Item item145 = new Item("cwsassets", "CWS_Arrow_3");
			item145.Crafting.Add("CWS_Forge", 2);
			item145.RequiredItems.Add("CWS_Hot_Steel_Finished", 1);
			item145.RequiredItems.Add("RoundLog", 4);
			item145.RequiredItems.Add("Entrails", 1);
			item145.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 2);
			item145.RequiredUpgradeItems.Add("RoundLog", 6);
			item145.Configurable = Configurability.Full;
			item145.CraftAmount = 20;
			GameObject val14 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Arrow_Pro_3");
			Item item146 = new Item("cwsassets", "CWS_Arrow_4");
			item146.Crafting.Add("CWS_Forge", 2);
			item146.RequiredItems.Add("CWS_Hot_Steel_Finished", 1);
			item146.RequiredItems.Add("RoundLog", 4);
			item146.RequiredItems.Add("Ooze", 1);
			item146.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 2);
			item146.RequiredUpgradeItems.Add("RoundLog", 6);
			item146.Configurable = Configurability.Full;
			item146.CraftAmount = 20;
			GameObject val15 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Arrow_Pro_4");
			Item item147 = new Item("cwsassets", "CWS_Arrow_5");
			item147.Crafting.Add("CWS_Forge", 2);
			item147.RequiredItems.Add("CWS_Hot_Steel_Finished", 1);
			item147.RequiredItems.Add("RoundLog", 4);
			item147.RequiredItems.Add("FreezeGland", 1);
			item147.RequiredUpgradeItems.Add("CWS_Hot_Steel_Finished", 2);
			item147.RequiredUpgradeItems.Add("RoundLog", 6);
			item147.Configurable = Configurability.Full;
			item147.CraftAmount = 20;
			GameObject val16 = PrefabManager.RegisterPrefab("cwsassets", "CWS_Arrow_Pro_5");
			Assembly executingAssembly = Assembly.GetExecutingAssembly();
			Harmony val17 = new Harmony("org.bepinex.plugins.odinssteelworks");
			val17.PatchAll(executingAssembly);
		}
	}
}
namespace Microsoft.CodeAnalysis
{
	[<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded]
	[CompilerGenerated]
	internal sealed class <b89b921d-8954-4084-bd4d-1feb826a594e>EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	[CompilerGenerated]
	[<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded]
	internal sealed class <bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public <bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
namespace LocalizationManager
{
	[PublicAPI]
	[<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(0)]
	[<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(1)]
	internal class Localizer
	{
		private static readonly Dictionary<string, Dictionary<string, Func<string>>> PlaceholderProcessors;

		private static readonly Dictionary<string, Dictionary<string, string>> loadedTexts;

		private static readonly ConditionalWeakTable<Localization, string> localizationLanguage;

		private static readonly List<WeakReference<Localization>> localizationObjects;

		[<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(2)]
		private static BaseUnityPlugin _plugin;

		private static readonly List<string> fileExtensions;

		private static BaseUnityPlugin plugin
		{
			get
			{
				//IL_009b: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a5: Expected O, but got Unknown
				if (_plugin == null)
				{
					IEnumerable<TypeInfo> source;
					try
					{
						source = Assembly.GetExecutingAssembly().DefinedTypes.ToList();
					}
					catch (ReflectionTypeLoadException ex)
					{
						source = from t in ex.Types
							where t != null
							select t.GetTypeInfo();
					}
					_plugin = (BaseUnityPlugin)Chainloader.ManagerObject.GetComponent((Type)source.First([<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] (TypeInfo t) => t.IsClass && typeof(BaseUnityPlugin).IsAssignableFrom(t)));
				}
				return _plugin;
			}
		}

		private static void UpdatePlaceholderText(Localization localization, string key)
		{
			localizationLanguage.TryGetValue(localization, out var value);
			string text = loadedTexts[value][key];
			if (PlaceholderProcessors.TryGetValue(key, out var value2))
			{
				text = value2.Aggregate(text, [<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] (string current, KeyValuePair<string, Func<string>> kv) => current.Replace("{" + kv.Key + "}", kv.Value()));
			}
			localization.AddWord(key, text);
		}

		public static void AddPlaceholder<T>(string key, string placeholder, ConfigEntry<T> config, [<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(new byte[] { 2, 1, 1 })] Func<T, string> convertConfigValue = null)
		{
			if (convertConfigValue == null)
			{
				convertConfigValue = [<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] [return: <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(1)] (T val) => val.ToString();
			}
			if (!PlaceholderProcessors.ContainsKey(key))
			{
				PlaceholderProcessors[key] = new Dictionary<string, Func<string>>();
			}
			config.SettingChanged += [<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] (object _, EventArgs _) =>
			{
				UpdatePlaceholder();
			};
			if (loadedTexts.ContainsKey(Localization.instance.GetSelectedLanguage()))
			{
				UpdatePlaceholder();
			}
			void UpdatePlaceholder()
			{
				PlaceholderProcessors[key][placeholder] = () => convertConfigValue(config.Value);
				UpdatePlaceholderText(Localization.instance, key);
			}
		}

		public static void AddText(string key, string text)
		{
			List<WeakReference<Localization>> list = new List<WeakReference<Localization>>();
			foreach (WeakReference<Localization> localizationObject in localizationObjects)
			{
				if (localizationObject.TryGetTarget(out var target))
				{
					Dictionary<string, string> dictionary = loadedTexts[localizationLanguage.GetOrCreateValue(target)];
					if (!target.m_translations.ContainsKey(key))
					{
						dictionary[key] = text;
						target.AddWord(key, text);
					}
				}
				else
				{
					list.Add(localizationObject);
				}
			}
			foreach (WeakReference<Localization> item in list)
			{
				localizationObjects.Remove(item);
			}
		}

		public static void Load()
		{
			LoadLocalization(Localization.instance, Localization.instance.GetSelectedLanguage());
		}

		private static void LoadLocalization(Localization __instance, string language)
		{
			if (!localizationLanguage.Remove(__instance))
			{
				localizationObjects.Add(new WeakReference<Localization>(__instance));
			}
			localizationLanguage.Add(__instance, language);
			Dictionary<string, string> dictionary = new Dictionary<string, string>();
			foreach (string item in from f in Directory.GetFiles(Path.GetDirectoryName(Paths.PluginPath), plugin.Info.Metadata.Name + ".*", SearchOption.AllDirectories)
				where fileExtensions.IndexOf(Path.GetExtension(f)) >= 0
				select f)
			{
				string text = Path.GetFileNameWithoutExtension(item).Split(new char[1] { '.' })[1];
				if (dictionary.ContainsKey(text))
				{
					Debug.LogWarning((object)("Duplicate key " + text + " found for " + plugin.Info.Metadata.Name + ". The duplicate file found at " + item + " will be skipped."));
				}
				else
				{
					dictionary[text] = item;
				}
			}
			byte[] array = LoadTranslationFromAssembly("English");
			if (array == null)
			{
				throw new Exception("Found no English localizations in mod " + plugin.Info.Metadata.Name + ". Expected an embedded resource translations/English.json or translations/English.yml.");
			}
			Dictionary<string, string> dictionary2 = new <1224ebca-1f97-47a1-9cde-b02b79544f34>DeserializerBuilder().IgnoreFields().Build().Deserialize<Dictionary<string, string>>(Encoding.UTF8.GetString(array));
			if (dictionary2 == null)
			{
				throw new Exception("Localization for mod " + plugin.Info.Metadata.Name + " failed: Localization file was empty.");
			}
			string text2 = null;
			if (language != "English")
			{
				if (dictionary.ContainsKey(language))
				{
					text2 = File.ReadAllText(dictionary[language]);
				}
				else
				{
					byte[] array2 = LoadTranslationFromAssembly(language);
					if (array2 != null)
					{
						text2 = Encoding.UTF8.GetString(array2);
					}
				}
			}
			if (text2 == null && dictionary.ContainsKey("English"))
			{
				text2 = File.ReadAllText(dictionary["English"]);
			}
			if (text2 != null)
			{
				foreach (KeyValuePair<string, string> item2 in new <1224ebca-1f97-47a1-9cde-b02b79544f34>DeserializerBuilder().IgnoreFields().Build().Deserialize<Dictionary<string, string>>(text2) ?? new Dictionary<string, string>())
				{
					dictionary2[item2.Key] = item2.Value;
				}
			}
			loadedTexts[language] = dictionary2;
			foreach (KeyValuePair<string, string> item3 in dictionary2)
			{
				UpdatePlaceholderText(__instance, item3.Key);
			}
		}

		static Localizer()
		{
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			PlaceholderProcessors = new Dictionary<string, Dictionary<string, Func<string>>>();
			loadedTexts = new Dictionary<string, Dictionary<string, string>>();
			localizationLanguage = new ConditionalWeakTable<Localization, string>();
			localizationObjects = new List<WeakReference<Localization>>();
			fileExtensions = new List<string> { ".json", ".yml" };
			new Harmony("org.bepinex.helpers.LocalizationManager").Patch((MethodBase)AccessTools.DeclaredMethod(typeof(Localization), "LoadCSV", (Type[])null, (Type[])null), (HarmonyMethod)null, new HarmonyMethod(AccessTools.DeclaredMethod(typeof(Localizer), "LoadLocalization", (Type[])null, (Type[])null)), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null);
		}

		[return: <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(2)]
		private static byte[] LoadTranslationFromAssembly(string language)
		{
			foreach (string fileExtension in fileExtensions)
			{
				byte[] array = ReadEmbeddedFileBytes("translations." + language + fileExtension);
				if (array != null)
				{
					return array;
				}
			}
			return null;
		}

		[<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(2)]
		public static byte[] ReadEmbeddedFileBytes([<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(1)] string resourceFileName, Assembly containingAssembly = null)
		{
			using MemoryStream memoryStream = new MemoryStream();
			if ((object)containingAssembly == null)
			{
				containingAssembly = Assembly.GetCallingAssembly();
			}
			string text = containingAssembly.GetManifestResourceNames().FirstOrDefault([<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] (string str) => str.EndsWith(resourceFileName, StringComparison.Ordinal));
			if (text != null)
			{
				containingAssembly.GetManifestResourceStream(text)?.CopyTo(memoryStream);
			}
			return (memoryStream.Length == 0L) ? null : memoryStream.ToArray();
		}
	}
}
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[<fde8e83a-9d73-4f66-9c33-14196b715849>Embedded]
	internal sealed class <fde8e83a-9d73-4f66-9c33-14196b715849>EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[<fde8e83a-9d73-4f66-9c33-14196b715849>Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[<fde8e83a-9d73-4f66-9c33-14196b715849>Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class <14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public <14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
namespace System.Diagnostics.CodeAnalysis
{
	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, Inherited = false)]
	internal sealed class <3e7e6186-d424-4af7-b245-2b1162b7c71d>AllowNullAttribute : Attribute
	{
	}
	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, Inherited = false)]
	internal sealed class <c525f608-c42f-462e-8630-db3c4610a423>DisallowNullAttribute : Attribute
	{
	}
	[AttributeUsage(AttributeTargets.Method, Inherited = false)]
	internal sealed class <49b82ce6-2a3f-444f-af07-6f5132112c4c>DoesNotReturnAttribute : Attribute
	{
	}
	[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
	internal sealed class <70b3a9fc-0e51-4299-89ef-cb7916f8552b>DoesNotReturnIfAttribute : Attribute
	{
		public bool ParameterValue { get; }

		public <70b3a9fc-0e51-4299-89ef-cb7916f8552b>DoesNotReturnIfAttribute(bool parameterValue)
		{
			ParameterValue = parameterValue;
		}
	}
	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue, Inherited = false)]
	internal sealed class <271ca749-6c90-4c0c-919a-c2bd7ad01c9e>MaybeNullAttribute : Attribute
	{
	}
	[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
	internal sealed class <4f943193-2716-4cbc-89b4-605d6ce4f1ea>MaybeNullWhenAttribute : Attribute
	{
		public bool ReturnValue { get; }

		public <4f943193-2716-4cbc-89b4-605d6ce4f1ea>MaybeNullWhenAttribute(bool returnValue)
		{
			ReturnValue = returnValue;
		}
	}
	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue, Inherited = false)]
	internal sealed class <caeab3c7-586e-40c3-936f-f5a91028b5a2>NotNullAttribute : Attribute
	{
	}
	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Parameter | AttributeTargets.ReturnValue, AllowMultiple = true, Inherited = false)]
	[<14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContext(1)]
	[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)]
	internal sealed class <635f7e53-49e1-4b26-81f3-a36a39567fc1>NotNullIfNotNullAttribute : Attribute
	{
		public string ParameterName { get; }

		public <635f7e53-49e1-4b26-81f3-a36a39567fc1>NotNullIfNotNullAttribute(string parameterName)
		{
			ParameterName = parameterName;
		}
	}
	[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
	internal sealed class <9a391831-6787-4524-8351-2e3c5ee172db>NotNullWhenAttribute : Attribute
	{
		public bool ReturnValue { get; }

		public <9a391831-6787-4524-8351-2e3c5ee172db>NotNullWhenAttribute(bool returnValue)
		{
			ReturnValue = returnValue;
		}
	}
}
namespace System.Collections.Generic
{
	internal static class <9f372261-424d-4218-9ca3-5c7bc7e7caf1>DeconstructionExtensions
	{
		[<14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContext(1)]
		public static void Deconstruct<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)] TKey, [<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)] TValue>([<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(new byte[] { 0, 1, 1 })] this KeyValuePair<TKey, TValue> pair, out TKey key, out TValue value)
		{
			key = pair.Key;
			value = pair.Value;
		}
	}
}
namespace YamlDotNet
{
	[<14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContext(1)]
	[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)]
	internal sealed class <e6e2847b-50e4-4270-bb1a-07ce62be5b77>CultureInfoAdapter : CultureInfo
	{
		private readonly IFormatProvider provider;

		public <e6e2847b-50e4-4270-bb1a-07ce62be5b77>CultureInfoAdapter(CultureInfo baseCulture, IFormatProvider provider)
			: base(baseCulture.LCID)
		{
			this.provider = provider;
		}

		[<14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContext(2)]
		public override object GetFormat(Type formatType)
		{
			return provider.GetFormat(formatType);
		}
	}
	[<14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContext(1)]
	[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)]
	internal static class <1f00dfe7-c662-457a-8275-ce46575e18d0>ReflectionExtensions
	{
		[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		private static readonly FieldInfo RemoteStackTraceField = typeof(Exception).GetField("_remoteStackTraceString", BindingFlags.Instance | BindingFlags.NonPublic);

		[return: <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		public static Type BaseType(this Type type)
		{
			return type.BaseType;
		}

		public static bool IsValueType(this Type type)
		{
			return type.IsValueType;
		}

		public static bool IsGenericType(this Type type)
		{
			return type.IsGenericType;
		}

		public static bool IsGenericTypeDefinition(this Type type)
		{
			return type.IsGenericTypeDefinition;
		}

		public static bool IsInterface(this Type type)
		{
			return type.IsInterface;
		}

		public static bool IsEnum(this Type type)
		{
			return type.IsEnum;
		}

		public static bool IsDbNull(this object value)
		{
			return value is DBNull;
		}

		public static bool HasDefaultConstructor(this Type type)
		{
			if (!type.IsValueType)
			{
				return type.GetConstructor(BindingFlags.Instance | BindingFlags.Public, null, Type.EmptyTypes, null) != null;
			}
			return true;
		}

		public static TypeCode GetTypeCode(this Type type)
		{
			return Type.GetTypeCode(type);
		}

		[return: <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		public static PropertyInfo GetPublicProperty(this Type type, string name)
		{
			return type.GetProperty(name);
		}

		[return: <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		public static FieldInfo GetPublicStaticField(this Type type, string name)
		{
			return type.GetField(name, BindingFlags.Static | BindingFlags.Public);
		}

		public static IEnumerable<PropertyInfo> GetProperties(this Type type, bool includeNonPublic)
		{
			BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.Public;
			if (includeNonPublic)
			{
				bindingFlags |= BindingFlags.NonPublic;
			}
			if (!type.IsInterface)
			{
				return type.GetProperties(bindingFlags);
			}
			return new Type[1] { type }.Concat(type.GetInterfaces()).SelectMany([<14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContext(0)] (Type i) => i.GetProperties(bindingFlags));
		}

		public static IEnumerable<PropertyInfo> GetPublicProperties(this Type type)
		{
			return GetProperties(type, includeNonPublic: false);
		}

		public static IEnumerable<FieldInfo> GetPublicFields(this Type type)
		{
			return type.GetFields(BindingFlags.Instance | BindingFlags.Public);
		}

		public static IEnumerable<MethodInfo> GetPublicStaticMethods(this Type type)
		{
			return type.GetMethods(BindingFlags.Static | BindingFlags.Public);
		}

		public static MethodInfo GetPrivateStaticMethod(this Type type, string name)
		{
			return type.GetMethod(name, BindingFlags.Static | BindingFlags.NonPublic) ?? throw new MissingMethodException("Expected to find a method named '" + name + "' in '" + type.FullName + "'.");
		}

		[return: <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		public static MethodInfo GetPublicStaticMethod(this Type type, string name, params Type[] parameterTypes)
		{
			return type.GetMethod(name, BindingFlags.Static | BindingFlags.Public, null, parameterTypes, null);
		}

		[return: <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		public static MethodInfo GetPublicInstanceMethod(this Type type, string name)
		{
			return type.GetMethod(name, BindingFlags.Instance | BindingFlags.Public);
		}

		public static Exception Unwrap(this TargetInvocationException ex)
		{
			Exception innerException = ex.InnerException;
			if (innerException == null)
			{
				return ex;
			}
			if (RemoteStackTraceField != null)
			{
				RemoteStackTraceField.SetValue(innerException, innerException.StackTrace + "\r\n");
			}
			return innerException;
		}

		public static bool IsInstanceOf(this Type type, object o)
		{
			return type.IsInstanceOfType(o);
		}

		public static Attribute[] GetAllCustomAttributes<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)] TAttribute>(this PropertyInfo property)
		{
			return Attribute.GetCustomAttributes(property, typeof(TAttribute));
		}
	}
	internal static class <5e8fda1b-0522-40b2-b6da-988dfbcbec8b>PropertyInfoExtensions
	{
		[<14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContext(1)]
		[return: <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		public static object ReadValue(this PropertyInfo property, object target)
		{
			return property.GetValue(target, null);
		}
	}
	internal static class <d29f7c18-2e9f-46a0-8a0a-a4732c3cdfa5>StandardRegexOptions
	{
		public const RegexOptions Compiled = RegexOptions.Compiled;
	}
}
namespace YamlDotNet.Serialization
{
	[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)]
	[<14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContext(1)]
	internal abstract class <0bce3c13-9c07-408e-adb7-05882bf68224>BuilderSkeleton<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)] TBuilder> where TBuilder : <0bce3c13-9c07-408e-adb7-05882bf68224>BuilderSkeleton<TBuilder>
	{
		internal <c09ec9ef-9424-45d2-9c2e-e410fa2c947d>INamingConvention namingConvention = <9e061bf7-6252-4454-bde4-c93887902740>NullNamingConvention.Instance;

		internal <3001bf28-b7bc-44b2-8eec-349291b48fe3>ITypeResolver typeResolver;

		internal readonly <9e4283ef-9f7f-420e-8f88-e0e0a60a5460>YamlAttributeOverrides overrides;

		internal readonly <138bdc65-ae15-46a8-aba1-3fe9ff25b175>LazyComponentRegistrationList<<8382bd95-1b98-4529-a248-87f4a3a46329>Nothing, <b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter> typeConverterFactories;

		internal readonly <138bdc65-ae15-46a8-aba1-3fe9ff25b175>LazyComponentRegistrationList<<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector, <49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector> typeInspectorFactories;

		private bool ignoreFields;

		private bool includeNonPublicProperties;

		protected abstract TBuilder Self { get; }

		internal <0bce3c13-9c07-408e-adb7-05882bf68224>BuilderSkeleton(<3001bf28-b7bc-44b2-8eec-349291b48fe3>ITypeResolver typeResolver)
		{
			overrides = new <9e4283ef-9f7f-420e-8f88-e0e0a60a5460>YamlAttributeOverrides();
			typeConverterFactories = new <138bdc65-ae15-46a8-aba1-3fe9ff25b175>LazyComponentRegistrationList<<8382bd95-1b98-4529-a248-87f4a3a46329>Nothing, <b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter>
			{
				{
					typeof(<739567cc-e508-41fe-9dbe-1e6079bb2e77>GuidConverter),
					(<8382bd95-1b98-4529-a248-87f4a3a46329>Nothing _) => new <739567cc-e508-41fe-9dbe-1e6079bb2e77>GuidConverter(jsonCompatible: false)
				},
				{
					typeof(<ca1757f5-b278-4964-ae02-25907b9e5f78>SystemTypeConverter),
					(<8382bd95-1b98-4529-a248-87f4a3a46329>Nothing _) => new <ca1757f5-b278-4964-ae02-25907b9e5f78>SystemTypeConverter()
				}
			};
			typeInspectorFactories = new <138bdc65-ae15-46a8-aba1-3fe9ff25b175>LazyComponentRegistrationList<<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector, <49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector>();
			this.typeResolver = typeResolver ?? throw new ArgumentNullException("typeResolver");
		}

		internal <49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector BuildTypeInspector()
		{
			<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector <49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector2 = new <288a4d5b-3dc6-4712-b8df-41cc575910e9>ReadablePropertiesTypeInspector(typeResolver, includeNonPublicProperties);
			if (!ignoreFields)
			{
				<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector2 = new <ea68ddd7-b8e7-4419-b1cd-bf1876210e21>CompositeTypeInspector(new <efc1c028-304f-4a8b-84c3-9634e017a690>ReadableFieldsTypeInspector(typeResolver), <49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector2);
			}
			return typeInspectorFactories.BuildComponentChain(<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector2);
		}

		public TBuilder IgnoreFields()
		{
			ignoreFields = true;
			return Self;
		}

		public TBuilder IncludeNonPublicProperties()
		{
			includeNonPublicProperties = true;
			return Self;
		}

		public TBuilder WithNamingConvention(<c09ec9ef-9424-45d2-9c2e-e410fa2c947d>INamingConvention namingConvention)
		{
			this.namingConvention = namingConvention ?? throw new ArgumentNullException("namingConvention");
			return Self;
		}

		public TBuilder WithTypeResolver(<3001bf28-b7bc-44b2-8eec-349291b48fe3>ITypeResolver typeResolver)
		{
			this.typeResolver = typeResolver ?? throw new ArgumentNullException("typeResolver");
			return Self;
		}

		public abstract TBuilder WithTagMapping(<e50c2326-884e-4373-af98-37aefa5f6de9>TagName tag, Type type);

		public TBuilder WithAttributeOverride<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)] TClass>(Expression<Func<TClass, object>> propertyAccessor, Attribute attribute)
		{
			overrides.Add(propertyAccessor, attribute);
			return Self;
		}

		public TBuilder WithAttributeOverride(Type type, string member, Attribute attribute)
		{
			overrides.Add(type, member, attribute);
			return Self;
		}

		public TBuilder WithTypeConverter(<b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter typeConverter)
		{
			return WithTypeConverter(typeConverter, delegate(<3969f422-94f5-4ab6-8d66-a97e9587d5ab>IRegistrationLocationSelectionSyntax<<b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter> w)
			{
				w.OnTop();
			});
		}

		public TBuilder WithTypeConverter(<b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter typeConverter, Action<<3969f422-94f5-4ab6-8d66-a97e9587d5ab>IRegistrationLocationSelectionSyntax<<b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter>> where)
		{
			if (typeConverter == null)
			{
				throw new ArgumentNullException("typeConverter");
			}
			if (where == null)
			{
				throw new ArgumentNullException("where");
			}
			where(typeConverterFactories.CreateRegistrationLocationSelector(typeConverter.GetType(), (<8382bd95-1b98-4529-a248-87f4a3a46329>Nothing _) => typeConverter));
			return Self;
		}

		public TBuilder WithTypeConverter<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)] TYamlTypeConverter>(<262956db-1841-40f2-b76d-56fe2ea36328>WrapperFactory<<b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter, <b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter> typeConverterFactory, Action<<6f3d9a35-2a3c-4ee8-beb7-68a3682e7106>ITrackingRegistrationLocationSelectionSyntax<<b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter>> where) where TYamlTypeConverter : <b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter
		{
			if (typeConverterFactory == null)
			{
				throw new ArgumentNullException("typeConverterFactory");
			}
			if (where == null)
			{
				throw new ArgumentNullException("where");
			}
			where(typeConverterFactories.CreateTrackingRegistrationLocationSelector(typeof(TYamlTypeConverter), (<b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter wrapped, <8382bd95-1b98-4529-a248-87f4a3a46329>Nothing _) => typeConverterFactory(wrapped)));
			return Self;
		}

		public TBuilder WithoutTypeConverter<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)] TYamlTypeConverter>() where TYamlTypeConverter : <b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter
		{
			return WithoutTypeConverter(typeof(TYamlTypeConverter));
		}

		public TBuilder WithoutTypeConverter(Type converterType)
		{
			if (converterType == null)
			{
				throw new ArgumentNullException("converterType");
			}
			typeConverterFactories.Remove(converterType);
			return Self;
		}

		public TBuilder WithTypeInspector<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)] TTypeInspector>(Func<<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector, TTypeInspector> typeInspectorFactory) where TTypeInspector : <49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector
		{
			return WithTypeInspector(typeInspectorFactory, delegate(<3969f422-94f5-4ab6-8d66-a97e9587d5ab>IRegistrationLocationSelectionSyntax<<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector> w)
			{
				w.OnTop();
			});
		}

		public TBuilder WithTypeInspector<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)] TTypeInspector>(Func<<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector, TTypeInspector> typeInspectorFactory, Action<<3969f422-94f5-4ab6-8d66-a97e9587d5ab>IRegistrationLocationSelectionSyntax<<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector>> where) where TTypeInspector : <49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector
		{
			if (typeInspectorFactory == null)
			{
				throw new ArgumentNullException("typeInspectorFactory");
			}
			if (where == null)
			{
				throw new ArgumentNullException("where");
			}
			where(typeInspectorFactories.CreateRegistrationLocationSelector(typeof(TTypeInspector), (<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector inner) => typeInspectorFactory(inner)));
			return Self;
		}

		public TBuilder WithTypeInspector<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)] TTypeInspector>(<bde98e5d-48d4-44b8-8e15-e17994d095b8>WrapperFactory<<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector, <49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector, TTypeInspector> typeInspectorFactory, Action<<6f3d9a35-2a3c-4ee8-beb7-68a3682e7106>ITrackingRegistrationLocationSelectionSyntax<<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector>> where) where TTypeInspector : <49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector
		{
			if (typeInspectorFactory == null)
			{
				throw new ArgumentNullException("typeInspectorFactory");
			}
			if (where == null)
			{
				throw new ArgumentNullException("where");
			}
			where(typeInspectorFactories.CreateTrackingRegistrationLocationSelector(typeof(TTypeInspector), (<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector wrapped, <49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector inner) => typeInspectorFactory(wrapped, inner)));
			return Self;
		}

		public TBuilder WithoutTypeInspector<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)] TTypeInspector>() where TTypeInspector : <49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector
		{
			return WithoutTypeInspector(typeof(TTypeInspector));
		}

		public TBuilder WithoutTypeInspector(Type inspectorType)
		{
			if (inspectorType == null)
			{
				throw new ArgumentNullException("inspectorType");
			}
			typeInspectorFactories.Remove(inspectorType);
			return Self;
		}

		protected IEnumerable<<b830451f-48c0-421e-b288-9097c9849fb1>IYamlTypeConverter> BuildTypeConverters()
		{
			return typeConverterFactories.BuildComponentList();
		}
	}
	internal delegate TComponent <262956db-1841-40f2-b76d-56fe2ea36328>WrapperFactory<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)] TComponentBase, TComponent>(TComponentBase wrapped) where TComponent : TComponentBase;
	internal delegate TComponent <bde98e5d-48d4-44b8-8e15-e17994d095b8>WrapperFactory<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)] TArgument, [<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)] TComponentBase, TComponent>(TComponentBase wrapped, TArgument argument) where TComponent : TComponentBase;
	[Flags]
	internal enum <2bdd4ccc-2d50-40d5-b474-13690388dee2>DefaultValuesHandling
	{
		Preserve = 0,
		OmitNull = 1,
		OmitDefaults = 2,
		OmitEmptyCollections = 4
	}
	[<14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContext(1)]
	[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(0)]
	internal sealed class <4b80547b-e049-4c3d-a0fe-8cd70ce95bf7>Deserializer : <af9344b2-4d22-4fc4-9e00-b8f5aa3ad305>IDeserializer
	{
		private readonly <7ca04465-7f3a-4fbd-90d5-fe1017e5eb9a>IValueDeserializer valueDeserializer;

		public <4b80547b-e049-4c3d-a0fe-8cd70ce95bf7>Deserializer()
			: this(new <1224ebca-1f97-47a1-9cde-b02b79544f34>DeserializerBuilder().BuildValueDeserializer())
		{
		}

		private <4b80547b-e049-4c3d-a0fe-8cd70ce95bf7>Deserializer(<7ca04465-7f3a-4fbd-90d5-fe1017e5eb9a>IValueDeserializer valueDeserializer)
		{
			this.valueDeserializer = valueDeserializer ?? throw new ArgumentNullException("valueDeserializer");
		}

		public static <4b80547b-e049-4c3d-a0fe-8cd70ce95bf7>Deserializer FromValueDeserializer(<7ca04465-7f3a-4fbd-90d5-fe1017e5eb9a>IValueDeserializer valueDeserializer)
		{
			return new <4b80547b-e049-4c3d-a0fe-8cd70ce95bf7>Deserializer(valueDeserializer);
		}

		public T Deserialize<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)] T>(string input)
		{
			using StringReader input2 = new StringReader(input);
			return Deserialize<T>(input2);
		}

		public T Deserialize<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)] T>(TextReader input)
		{
			return Deserialize<T>(new <c74b7032-c987-48e6-bd91-4418d5218fed>Parser(input));
		}

		[return: <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		public object Deserialize(TextReader input)
		{
			return Deserialize(input, typeof(object));
		}

		[return: <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		public object Deserialize(string input, Type type)
		{
			using StringReader input2 = new StringReader(input);
			return Deserialize(input2, type);
		}

		[return: <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		public object Deserialize(TextReader input, Type type)
		{
			return Deserialize(new <c74b7032-c987-48e6-bd91-4418d5218fed>Parser(input), type);
		}

		public T Deserialize<[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)] T>(<9e89dfaa-7334-401b-8ffa-c532f08f233e>IParser parser)
		{
			return (T)Deserialize(parser, typeof(T));
		}

		[return: <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		public object Deserialize(<9e89dfaa-7334-401b-8ffa-c532f08f233e>IParser parser)
		{
			return Deserialize(parser, typeof(object));
		}

		[return: <2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(2)]
		public object Deserialize(<9e89dfaa-7334-401b-8ffa-c532f08f233e>IParser parser, Type type)
		{
			if (parser == null)
			{
				throw new ArgumentNullException("parser");
			}
			if (type == null)
			{
				throw new ArgumentNullException("type");
			}
			<26d328f4-f1de-4c6a-a594-e704f3d8b204>StreamStart @event;
			bool flag = parser.TryConsume<<26d328f4-f1de-4c6a-a594-e704f3d8b204>StreamStart>(out @event);
			<6972d506-7238-4326-811a-93f30bef8b87>DocumentStart event2;
			bool flag2 = parser.TryConsume<<6972d506-7238-4326-811a-93f30bef8b87>DocumentStart>(out event2);
			object result = null;
			if (!parser.Accept<<b7ff7752-b851-4a29-8520-2686d6416068>DocumentEnd>(out var _) && !parser.Accept<<0dbfd22b-977d-4069-aa75-d39e6e311144>StreamEnd>(out var _))
			{
				using <96acb200-f683-4bc3-a572-267a85b2d691>SerializerState <96acb200-f683-4bc3-a572-267a85b2d691>SerializerState = new <96acb200-f683-4bc3-a572-267a85b2d691>SerializerState();
				result = valueDeserializer.DeserializeValue(parser, type, <96acb200-f683-4bc3-a572-267a85b2d691>SerializerState, valueDeserializer);
				<96acb200-f683-4bc3-a572-267a85b2d691>SerializerState.OnDeserialization();
			}
			if (flag2)
			{
				parser.Consume<<b7ff7752-b851-4a29-8520-2686d6416068>DocumentEnd>();
			}
			if (flag)
			{
				parser.Consume<<0dbfd22b-977d-4069-aa75-d39e6e311144>StreamEnd>();
			}
			return result;
		}
	}
	[<14ae092b-5aea-40b0-9fdc-48ae5a3d4aab>NullableContext(1)]
	[<2c51ee0d-296e-41f3-a179-a37c4a3c53a6>Nullable(new byte[] { 0, 1 })]
	internal sealed class <1224ebca-1f97-47a1-9cde-b02b79544f34>DeserializerBuilder : <0bce3c13-9c07-408e-adb7-05882bf68224>BuilderSkeleton<<1224ebca-1f97-47a1-9cde-b02b79544f34>DeserializerBuilder>
	{
		private Lazy<<7af2fe2f-52f9-4bc8-a8b2-8225b1679990>IObjectFactory> objectFactory;

		private readonly <138bdc65-ae15-46a8-aba1-3fe9ff25b175>LazyComponentRegistrationList<<8382bd95-1b98-4529-a248-87f4a3a46329>Nothing, <70ef5add-bf92-4568-a19a-9f173905d48b>INodeDeserializer> nodeDeserializerFactories;

		private readonly <138bdc65-ae15-46a8-aba1-3fe9ff25b175>LazyComponentRegistrationList<<8382bd95-1b98-4529-a248-87f4a3a46329>Nothing, <edf8f813-6034-4eca-b753-c66cb46c544d>INodeTypeResolver> nodeTypeResolverFactories;

		private readonly Dictionary<<e50c2326-884e-4373-af98-37aefa5f6de9>TagName, Type> tagMappings;

		private readonly Dictionary<Type, Type> typeMappings;

		private bool ignoreUnmatched;

		protected override <1224ebca-1f97-47a1-9cde-b02b79544f34>DeserializerBuilder Self => this;

		public <1224ebca-1f97-47a1-9cde-b02b79544f34>DeserializerBuilder()
			: base((<3001bf28-b7bc-44b2-8eec-349291b48fe3>ITypeResolver)new <37e7931b-b4ea-44c1-b6f3-72ddffab1126>StaticTypeResolver())
		{
			typeMappings = new Dictionary<Type, Type>();
			objectFactory = new Lazy<<7af2fe2f-52f9-4bc8-a8b2-8225b1679990>IObjectFactory>(() => new <0c4048ad-9303-4876-b00b-e900e75160ac>DefaultObjectFactory(typeMappings), isThreadSafe: true);
			tagMappings = new Dictionary<<e50c2326-884e-4373-af98-37aefa5f6de9>TagName, Type>
			{
				{
					<463bcd01-9b6d-4379-9dc4-18d6f41636ff>FailsafeSchema.Tags.Map,
					typeof(Dictionary<object, object>)
				},
				{
					<463bcd01-9b6d-4379-9dc4-18d6f41636ff>FailsafeSchema.Tags.Str,
					typeof(string)
				},
				{
					<96ae0c97-473c-4b94-930c-a36b3608f726>JsonSchema.Tags.Bool,
					typeof(bool)
				},
				{
					<96ae0c97-473c-4b94-930c-a36b3608f726>JsonSchema.Tags.Float,
					typeof(double)
				},
				{
					<96ae0c97-473c-4b94-930c-a36b3608f726>JsonSchema.Tags.Int,
					typeof(int)
				},
				{
					<9dd5bb14-e4d4-449b-a3f4-add7f65c21c7>DefaultSchema.Tags.Timestamp,
					typeof(DateTime)
				}
			};
			typeInspectorFactories.Add(typeof(<5789307e-c6eb-4072-a17a-1e0eae146b1e>CachedTypeInspector), (<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector inner) => new <5789307e-c6eb-4072-a17a-1e0eae146b1e>CachedTypeInspector(inner));
			typeInspectorFactories.Add(typeof(<9c7882ba-abb7-4b65-8aa8-c9cb85e907e5>NamingConventionTypeInspector), (<49ab975f-9cbe-40e3-83a9-93906f182f2a>ITypeInspector inner) => (!(namingConvention is <9e061bf7-6252-4454-bde4-c93887902740>NullNamingConvention)) ? new <9c7882ba-abb7-4b65-8aa8-c9cb85e907e5>Namin