public static void loadFusions(File fin) {
		YamlConfiguration config = YamlConfiguration.loadConfiguration(fin);
		Set<String> keys = config.getConfigurationSection("type").getKeys(false);
		Set<String> keys2 = null;
		Iterator<String> iterator = keys.iterator();
		Iterator<String> iterator2 = null;
		String s;
		String s2;
		TraitPair pair = null;
		CardTraitPair ctpair = null;
		CardPair cpair = null;
		while(iterator.hasNext()) {
			s = iterator.next(); //result card id
			keys2 = config.getConfigurationSection("type." + s).getKeys(false);
			iterator2 = keys2.iterator();
			while(iterator2.hasNext()) {
				s2 = iterator2.next();
				pair = new TraitPair(Trait.fromString(s2), Trait.fromString(config.getString("type." + s + "." + s2)));
				Fusion.addTypeFusion(pair, Integer.parseInt(s));
				//System.out.println(pair.t1 + " + " + pair.t2 + " = " + results.get(0).name);
			}
		}
		
		keys = config.getConfigurationSection("semitype").getKeys(false);
		iterator = keys.iterator();
		while(iterator.hasNext()) {
			s = iterator.next();
			keys2 = config.getConfigurationSection("semitype." + s).getKeys(false);
			iterator2 = keys2.iterator();
			while(iterator2.hasNext()) {
				s2 = iterator2.next();
				ctpair = new CardTraitPair(Integer.parseInt(s2), Trait.fromString(config.getString("semitype." + s + "." + s2)));
				Fusion.addSemiTypeFusion(ctpair, Integer.parseInt(s));
				//System.out.println(Card.fromId(ctpair.id).name + " + " + ctpair.trait + " = " + results.get(0).name);
			}
		}
		
		keys = config.getConfigurationSection("specific").getKeys(false);
		iterator = keys.iterator();
		while(iterator.hasNext()) {
			s = iterator.next();
			keys2 = config.getConfigurationSection("specific." + s).getKeys(false);
			iterator2 = keys2.iterator();
			while(iterator2.hasNext()) {
				s2 = iterator2.next();
				cpair = new CardPair(Integer.parseInt(s2), config.getInt("specific." + s + "." + s2));
				Fusion.specificfusions.put(cpair, Card.fromId(Integer.parseInt(s)).freshCopy());
				//System.out.println(Card.fromId(cpair.id1).name + " + " + Card.fromId(cpair.id2).name + " = " + Fusion.specificfusions.get(cpair).name);
			}
		}
		
		for(List<Card> results : Fusion.typefusions.values()) {
			Collections.sort(results, DeckEditor.SORTER_ATKCARD);
		}
		for(List<Card> results : Fusion.semitypefusions.values()) {
			Collections.sort(results, DeckEditor.SORTER_ATKCARD);
		}
	}