CLASS cou net/minecraft/world/loot/LootSupplier
	CLASS cou$a Builder
		FIELD a pools Ljava/util/List;
		FIELD b functions Ljava/util/List;
		FIELD c type Lcqq;
		METHOD a withPool (Lcot$a;)Lcou$a;
			ARG 1 poolBuilder
		METHOD a withType (Lcqq;)Lcou$a;
			ARG 1 context
		METHOD b create ()Lcou;
	CLASS cou$b Serializer
		METHOD deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object;
			ARG 1 json
			ARG 2 unused
			ARG 3 context
		METHOD serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
			ARG 1 supplier
			ARG 2 unused
			ARG 3 context
	FIELD a EMPTY Lcou;
	FIELD b GENERIC Lcqq;
	FIELD c LOGGER Lorg/apache/logging/log4j/Logger;
	FIELD d type Lcqq;
	FIELD e pools [Lcot;
	FIELD f functions [Lcqa;
	FIELD g combinedFunction Ljava/util/function/BiFunction;
	METHOD <init> (Lcqq;[Lcot;[Lcqa;)V
		ARG 1 contextType
		ARG 2 pools
		ARG 3 functions
	METHOD a getType ()Lcqq;
	METHOD a supplyInventory (Lagz;Lcor;)V
		ARG 1 inventory
		ARG 2 context
	METHOD a getFreeSlots (Lagz;Ljava/util/Random;)Ljava/util/List;
		ARG 1 inventory
		ARG 2 random
	METHOD a getDrops (Lcor;)Ljava/util/List;
		ARG 1 context
	METHOD a drop (Lcor;Ljava/util/function/Consumer;)V
		ARG 1 context
		ARG 2 itemDropper
	METHOD a check (Lcov;Ljava/util/function/Function;Ljava/util/Set;Lcqq;)V
		ARG 1 reporter
		ARG 2 supplierGetter
		ARG 3 parentLootTables
		ARG 4 contextType
	METHOD a shuffle (Ljava/util/List;ILjava/util/Random;)V
		ARG 1 drops
		ARG 2 freeSlots
		ARG 3 random
	METHOD a limitedConsumer (Ljava/util/function/Consumer;)Ljava/util/function/Consumer;
		ARG 0 itemDropper
	METHOD a (Ljava/util/function/Consumer;Lbce;)V
		ARG 1 stack
	METHOD b builder ()Lcou$a;
	METHOD b dropLimited (Lcor;Ljava/util/function/Consumer;)V
		ARG 1 context
		ARG 2 dropItemConsumer
