// Path: src/main/java/net/einsteinsci/betterbeginnings/util/Util.java
// public class Util
// {
// 	public static boolean areItemStacksEqualIgnoreSize(ItemStack template, ItemStack tested)
// 	{
// 		if (template == null)
// 		{
// 			return tested == null;
// 		}
// 		else if (tested == null)
// 		{
// 			return false;
// 		}
// 
// 		return template.getItem() == tested.getItem() && (template.getMetadata() == tested.getMetadata() ||
// 			template.getMetadata() == OreDictionary.WILDCARD_VALUE);
// 	}
// 
// 	public static <TObject, TField> TField getPrivateVariable(TObject obj, String fieldName)
// 	{
// 		Field privateStringField = null;
// 		try
// 		{
// 			privateStringField = obj.getClass().getDeclaredField(fieldName);
// 		}
// 		catch (NoSuchFieldException e)
// 		{
// 			return null;
// 		}
// 		privateStringField.setAccessible(true);
// 
// 		try
// 		{
// 			return (TField)privateStringField.get(obj);
// 		}
// 		catch (IllegalAccessException e)
// 		{
// 			return null;
// 		}
// 	}
// 
// 	public static boolean listContainsItemStackIgnoreSize(List<ItemStack> list, ItemStack stack)
// 	{
// 		for (ItemStack s : list)
// 		{
// 			if (areItemStacksEqualIgnoreSize(s, stack))
// 			{
// 				return true;
// 			}
// 		}
// 
// 		return false;
// 	}
// }


import net.einsteinsci.betterbeginnings.util.Util;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import java.util.*;
import java.util.Map.Entry;

			entry = iterator.next();
		} while (!canBeSmelted(stack, entry.getKey()));

		return entry.getValue();
	}

	public static Map getSmeltingList()
	{
		return instance().smeltingList;
	}

	private boolean canBeSmelted(ItemStack stack, ItemStack stack2)
	{
		return stack2.getItem() == stack.getItem()
				&& (stack2.getItemDamage() == OreDictionary.WILDCARD_VALUE || stack2.getItemDamage() == stack
				.getItemDamage());
	}

	public boolean existsRecipeFrom(ItemStack input)
	{
		for (Object obj : getSmeltingList().entrySet())
		{
			if (!(obj instanceof Map.Entry))
			{
				continue; // No idea if this works.
			}

			Map.Entry<ItemStack, ItemStack> kvp = (Map.Entry<ItemStack, ItemStack>)obj;

// Path: src/main/java/net/einsteinsci/betterbeginnings/util/Util.java
// public class Util
// {
// 	public static boolean areItemStacksEqualIgnoreSize(ItemStack template, ItemStack tested)
// 	{
// 		if (template == null)
// 		{
// 			return tested == null;
// 		}
// 		else if (tested == null)
// 		{
// 			return false;
// 		}
// 
// 		return template.getItem() == tested.getItem() && (template.getMetadata() == tested.getMetadata() ||
// 			template.getMetadata() == OreDictionary.WILDCARD_VALUE);
// 	}
// 
// 	public static <TObject, TField> TField getPrivateVariable(TObject obj, String fieldName)
// 	{
// 		Field privateStringField = null;
// 		try
// 		{
// 			privateStringField = obj.getClass().getDeclaredField(fieldName);
// 		}
// 		catch (NoSuchFieldException e)
// 		{
// 			return null;
// 		}
// 		privateStringField.setAccessible(true);
// 
// 		try
// 		{
// 			return (TField)privateStringField.get(obj);
// 		}
// 		catch (IllegalAccessException e)
// 		{
// 			return null;
// 		}
// 	}
// 
// 	public static boolean listContainsItemStackIgnoreSize(List<ItemStack> list, ItemStack stack)
// 	{
// 		for (ItemStack s : list)
// 		{
// 			if (areItemStacksEqualIgnoreSize(s, stack))
// 			{
// 				return true;
// 			}
// 		}
// 
// 		return false;
// 	}
// }


// Path: src/main/java/net/einsteinsci/betterbeginnings/register/recipe/KilnRecipeHandler.java
import net.einsteinsci.betterbeginnings.util.Util;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import java.util.*;
import java.util.Map.Entry;


			entry = iterator.next();
		} while (!canBeSmelted(stack, entry.getKey()));

		return entry.getValue();
	}

	public static Map getSmeltingList()
	{
		return instance().smeltingList;
	}

	private boolean canBeSmelted(ItemStack stack, ItemStack stack2)
	{
		return stack2.getItem() == stack.getItem()
				&& (stack2.getItemDamage() == OreDictionary.WILDCARD_VALUE || stack2.getItemDamage() == stack
				.getItemDamage());
	}

	public boolean existsRecipeFrom(ItemStack input)
	{
		for (Object obj : getSmeltingList().entrySet())
		{
			if (!(obj instanceof Map.Entry))
			{
				continue; // No idea if this works.
			}

			Map.Entry<ItemStack, ItemStack> kvp = (Map.Entry<ItemStack, ItemStack>)obj;

			if (Util.areItemStacksEqualIgnoreSize(input, kvp.getKey()))