@@ -477,13 +477,17 @@ let macro =  
		
	
		
			
			        prey = prey.merge(x);  
		
	
		
			
			      });  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			 
		
	
		
			
			      if (prey.count == 0) {  
		
	
		
			
			        return "Your belly is flat, growling and gurgling for want of prey.";  
		
	
		
			
			      } else {  
		
	
		
			
			        if (macro.brutality > 0)  {  
		
	
		
			
			          return "Your belly churns and bubbles as it works to melt " + prey.describe(false ) + " down to chyme.";  
		
	
		
			
			          return "Your belly churns and bubbles as it works to melt " + prey.describeSimple(verbose || flat ) + " down to chyme.";  
		
	
		
			
			        } else {  
		
	
		
			
			          return "Your belly sloshes with the weight of " + prey.describe(false ) + " trapped within.";  
		
	
		
			
			          return "Your belly sloshes with the weight of " + prey.describeSimple(verbose || flat ) + " trapped within.";  
		
	
		
			
			        }  
		
	
		
			
			      }  
		
	
		
			
			    },  
		
	
	
		
			
				
				
					 
			
			@@ -525,16 +529,20 @@ let macro =  
		
	
		
			
			        prey = prey.merge(x);  
		
	
		
			
			      });  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			 
		
	
		
			
			      if (prey.count == 0) {  
		
	
		
			
			        return "Your " + this.owner.tailDesc + " are empty.";  
		
	
		
			
			      } else {  
		
	
		
			
			        if (this.owner.tailVoreToStomach) {  
		
	
		
			
			          return "Your " + this.owner.tailDesc + " " + (this.owner.tailCount > 1 ? "clench and squeeze around " : "clenches and squeezes around ") + prey.describe(false ) + ", working them deeper and deeper inside.";  
		
	
		
			
			          return "Your " + this.owner.tailDesc + " " + (this.owner.tailCount > 1 ? "clench and squeeze around " : "clenches and squeezes around ") + prey.describeSimple(verbose || flat ) + ", working them deeper and deeper inside.";  
		
	
		
			
			        }  
		
	
		
			
			        else if (macro.brutality > 0)  {  
		
	
		
			
			          return "Your " + this.owner.tailDesc + " " +  (this.owner.tailCount > 1 ? "groans" : "groan") + " ominously as " + (this.owner.tailCount > 1 ? "they gurgle" : "it gurgles" ) + " around " + prey.describe(false ) + ", slowly absorbing them into your musky depths.";  
		
	
		
			
			          return "Your " + this.owner.tailDesc + " " +  (this.owner.tailCount > 1 ? "groans" : "groan") + " ominously as " + (this.owner.tailCount > 1 ? "they gurgle" : "it gurgles" ) + " around " + prey.describeSimple(verbose || flat ) + ", slowly absorbing them into your musky depths.";  
		
	
		
			
			        } else {  
		
	
		
			
			          return "Your " + this.owner.tailDesc + " " + (this.owner.tailCount > 1 ? "bulge" : "bulges") + " with " + prey.describe(false ) + ".";  
		
	
		
			
			          return "Your " + this.owner.tailDesc + " " + (this.owner.tailCount > 1 ? "bulge" : "bulges") + " with " + prey.describeSimple(verbose || flat ) + ".";  
		
	
		
			
			        }  
		
	
		
			
			      }  
		
	
		
			
			    },  
		
	
	
		
			
				
				
					 
			
			@@ -576,13 +584,17 @@ let macro =  
		
	
		
			
			        prey = prey.merge(x);  
		
	
		
			
			      });  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			 
		
	
		
			
			      if (prey.count == 0) {  
		
	
		
			
			        return "Your bowels are empty.";  
		
	
		
			
			      } else {  
		
	
		
			
			        if (macro.brutality > 0)  {  
		
	
		
			
			          return "Your bowels groan ominously as they clench around " + prey.describe(false ) + ", slowly absorbing them into your musky depths.";  
		
	
		
			
			          return "Your bowels groan ominously as they clench around " + prey.describeSimple(verbose || flat ) + ", slowly absorbing them into your musky depths.";  
		
	
		
			
			        } else {  
		
	
		
			
			          return "Your bowels bulge with " + prey.describe(false ) + ".";  
		
	
		
			
			          return "Your bowels bulge with " + prey.describeSimple(verbose || flat ) + ".";  
		
	
		
			
			        }  
		
	
		
			
			      }  
		
	
		
			
			    },  
		
	
	
		
			
				
				
					 
			
			@@ -626,13 +638,17 @@ let macro =  
		
	
		
			
			        prey = prey.merge(x);  
		
	
		
			
			      });  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			 
		
	
		
			
			      if (prey.count == 0) {  
		
	
		
			
			        return "Your lower belly is flat.";  
		
	
		
			
			      } else {  
		
	
		
			
			        if (macro.brutality > 0)  {  
		
	
		
			
			          return "Your womb tingles as its rhythmically grinds down on " + prey.describe(false ) + ", turning them soft and wet as they start to dissolve into femcum.";  
		
	
		
			
			          return "Your womb tingles as its rhythmically grinds down on " + prey.describeSimple(verbose || flat ) + ", turning them soft and wet as they start to dissolve into femcum.";  
		
	
		
			
			        } else {  
		
	
		
			
			          return "Your womb clenches around " + prey.describe(false ) + ".";  
		
	
		
			
			          return "Your womb clenches around " + prey.describeSimple(verbose || flat ) + ".";  
		
	
		
			
			        }  
		
	
		
			
			      }  
		
	
		
			
			    },  
		
	
	
		
			
				
				
					 
			
			@@ -676,13 +692,17 @@ let macro =  
		
	
		
			
			        prey = prey.merge(x);  
		
	
		
			
			      });  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			 
		
	
		
			
			      if (prey.count == 0) {  
		
	
		
			
			        return "Your balls are smooth.";  
		
	
		
			
			      } else {  
		
	
		
			
			        if (macro.brutality > 0)  {  
		
	
		
			
			          return "Your balls slosh and bulge as they work to convert " + prey.describe(false ) + " into hot cum.";  
		
	
		
			
			          return "Your balls slosh and bulge as they work to convert " + prey.describeSimple(verbose || flat ) + " into hot cum.";  
		
	
		
			
			        } else {  
		
	
		
			
			          return "Your balls slosh about, loaded down with " + prey.describe(false ) + ".";  
		
	
		
			
			          return "Your balls slosh about, loaded down with " + prey.describeSimple(verbose || flat ) + ".";  
		
	
		
			
			        }  
		
	
		
			
			      }  
		
	
		
			
			    },  
		
	
	
		
			
				
				
					 
			
			@@ -728,13 +748,17 @@ let macro =  
		
	
		
			
			        prey = prey.merge(x);  
		
	
		
			
			      });  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			 
		
	
		
			
			      if (prey.count == 0) {  
		
	
		
			
			        return "Your breasts are smooth.";  
		
	
		
			
			      } else {  
		
	
		
			
			        if (macro.brutality > 0)  {  
		
	
		
			
			          return "Your breasts slosh from side to side, " + prey.describe(false ) + " slowly digesting into creamy milk.";  
		
	
		
			
			          return "Your breasts slosh from side to side, " + prey.describeSimple(verbose || flat ) + " slowly digesting into creamy milk.";  
		
	
		
			
			        } else {  
		
	
		
			
			          return "Your breasts bulge with " + prey.describe(false ) + ".";  
		
	
		
			
			          return "Your breasts bulge with " + prey.describeSimple(verbose || flat ) + ".";  
		
	
		
			
			        }  
		
	
		
			
			      }  
		
	
		
			
			    },  
		
	
	
		
			
				
				
					 
			
			@@ -777,13 +801,17 @@ let macro =  
		
	
		
			
			        prey = prey.merge(x);  
		
	
		
			
			      });  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			 
		
	
		
			
			      if (prey.count == 0) {  
		
	
		
			
			        return "Your bladder has nobody in it.";  
		
	
		
			
			      } else {  
		
	
		
			
			        if (macro.brutality > 0)  {  
		
	
		
			
			          return "Your bladder bulges, " + prey.describe(false ) + " dissolving in your acrid piss.";  
		
	
		
			
			          return "Your bladder bulges, " + prey.describeSimple(verbose || flat ) + " dissolving in your acrid piss.";  
		
	
		
			
			        } else {  
		
	
		
			
			          return "Your bladder bulges with " + prey.describe(false ) + ".";  
		
	
		
			
			          return "Your bladder bulges with " + prey.describeSimple(verbose || flat ) + ".";  
		
	
		
			
			        }  
		
	
		
			
			      }  
		
	
		
			
			    },  
		
	
	
		
			
				
				
					 
			
			@@ -866,13 +894,17 @@ let macro =  
		
	
		
			
			        prey = prey.merge(x);  
		
	
		
			
			      });  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			 
		
	
		
			
			      if (prey.count == 0) {  
		
	
		
			
			        return "You contain no prey.";  
		
	
		
			
			      } else {  
		
	
		
			
			        if (macro.gooDigestion)  {  
		
	
		
			
			          return "Your gooey body contains " + prey.describe(false ) + ", gradually absorbing them into your bulk.";  
		
	
		
			
			          return "Your gooey body contains " + prey.describeSimple(verbose || flat ) + ", gradually absorbing them into your bulk.";  
		
	
		
			
			        } else {  
		
	
		
			
			          return "Your gooey body contains " + prey.describe(false ) + ".";  
		
	
		
			
			          return "Your gooey body contains " + prey.describeSimple(verbose || flat ) + ".";  
		
	
		
			
			        }  
		
	
		
			
			      }  
		
	
		
			
			    },  
		
	
	
		
			
				
				
					 
			
			@@ -908,10 +940,14 @@ let macro =  
		
	
		
			
			        prey = prey.merge(x);  
		
	
		
			
			      });  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			 
		
	
		
			
			      if (prey.count == 0) {  
		
	
		
			
			        return "Your " + this.owner.footOnlyDesc(true) + " don't contain any prey.";  
		
	
		
			
			      } else {  
		
	
		
			
			        return "Your " + this.owner.footOnlyDesc(true) + " have enveloped " + prey.describe(false);  
		
	
		
			
			        return "Your " + this.owner.footOnlyDesc(true) + " have enveloped " + prey.describeSimple(verbose || flat );  
		
	
		
			
			      }  
		
	
		
			
			    },  
		
	
		
			
			    "contents" : [],  
		
	
	
		
			
				
				
					 
			
			@@ -947,10 +983,14 @@ let macro =  
		
	
		
			
			        prey = prey.merge(x);  
		
	
		
			
			      });  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			 
		
	
		
			
			      if (prey.count == 0) {  
		
	
		
			
			        return "Your crop don't contain any prey.";  
		
	
		
			
			      } else {  
		
	
		
			
			        return "Your crop bulges with " + prey.describe(false) + ".";  
		
	
		
			
			        return "Your crop bulges with " + prey.describeSimple(verbose || flat ) + ".";  
		
	
		
			
			      }  
		
	
		
			
			    },  
		
	
		
			
			    "contents" : [],  
		
	
	
		
			
				
				
					 
			
			@@ -986,13 +1026,17 @@ let macro =  
		
	
		
			
			        prey = prey.merge(x);  
		
	
		
			
			      });  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			 
		
	
		
			
			      if (prey.count == 0) {  
		
	
		
			
			        return "Your don't have anyone trapped in your wings.";  
		
	
		
			
			      } else {  
		
	
		
			
			        if (macro.brutality > 0)  {  
		
	
		
			
			          return "Your folded wings bulge as they squeeze in on " + prey.describe(false ) + ", slowly breaking them down.";  
		
	
		
			
			          return "Your folded wings bulge as they squeeze in on " + prey.describeSimple(verbose || flat ) + ", slowly breaking them down.";  
		
	
		
			
			        } else {  
		
	
		
			
			          return "Your wings bulge with " + prey.describe(false ) + ".";  
		
	
		
			
			          return "Your wings bulge with " + prey.describeSimple(verbose || flat ) + ".";  
		
	
		
			
			        }  
		
	
		
			
			      }  
		
	
		
			
			    },  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1006,10 +1050,16 @@ let macro =  
		
	
		
			
			    "name": "pouch",  
		
	
		
			
			    "container": new Container(),  
		
	
		
			
			    get description() {  
		
	
		
			
			      let prey = this.container;  
		
	
		
			
			 
		
	
		
			
			      if (verbose || flat) {  
		
	
		
			
			        prey = flatten(prey);  
		
	
		
			
			      }  
		
	
		
			
			        
		
	
		
			
			      if (this.container.count == 0)  
		
	
		
			
			        return "Your pouch is empty";  
		
	
		
			
			      else  
		
	
		
			
			        return "Your pouch contains " + this.container.describe(false);  
		
	
		
			
			        return "Your pouch contains " + this.container.describeSimple(verbose || flat );  
		
	
		
			
			    },  
		
	
		
			
			    "add": function(victims) {  
		
	
		
			
			      this.container = this.container.merge(victims);  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1023,7 +1073,7 @@ let macro =  
		
	
		
			
			      if (this.container.count == 0)  
		
	
		
			
			        return "Your sheath is empty";  
		
	
		
			
			      else  
		
	
		
			
			        return "Your sheath contains " + this.container.describe(false );  
		
	
		
			
			        return "Your sheath contains " + this.container.describeSimple(verbose || flat );  
		
	
		
			
			    },  
		
	
		
			
			    "add": function(victims) {  
		
	
		
			
			      this.container = this.container.merge(victims);  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1037,7 +1087,7 @@ let macro =  
		
	
		
			
			      if (this.container.count == 0)  
		
	
		
			
			        return "Your breasts don't have anyone stuck between them";  
		
	
		
			
			      else  
		
	
		
			
			        return "Your cleavage contains " + this.container.describe(false );  
		
	
		
			
			        return "Your cleavage contains " + this.container.describeSimple(verbose || flat );  
		
	
		
			
			    },  
		
	
		
			
			    "add": function(victims) {  
		
	
		
			
			      this.container = this.container.merge(victims);  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1054,7 +1104,7 @@ let macro =  
		
	
		
			
			      if (this.container.count == 0)  
		
	
		
			
			        return "Your " + macro.shoeDesc(true) + " are empty.";  
		
	
		
			
			      else  
		
	
		
			
			        return "Your " + macro.shoeDesc(true) + " contain " + this.container.describe(false );  
		
	
		
			
			        return "Your " + macro.shoeDesc(true) + " contain " + this.container.describeSimple(verbose || flat );  
		
	
		
			
			    },  
		
	
		
			
			    "add": function(victims) {  
		
	
		
			
			      this.container = this.container.merge(victims);  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1068,7 +1118,7 @@ let macro =  
		
	
		
			
			      if (this.container.count == 0)  
		
	
		
			
			        return "Your " + macro.sockDesc(true) + " are empty.";  
		
	
		
			
			      else  
		
	
		
			
			        return "Your " + macro.sockDesc(true) + " contain " + this.container.describe(false );  
		
	
		
			
			        return "Your " + macro.sockDesc(true) + " contain " + this.container.describeSimple(verbose || flat );  
		
	
		
			
			    },  
		
	
		
			
			    "add": function(victims) {  
		
	
		
			
			      this.container = this.container.merge(victims);  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1082,7 +1132,7 @@ let macro =  
		
	
		
			
			      if (this.container.count == 0)  
		
	
		
			
			        return "You don't have anyone stuck between your " + this.owner.toeDesc(true);  
		
	
		
			
			      else  
		
	
		
			
			        return "You have " + this.container.describe(false ) + " wedged between your " + this.owner.toeDesc(true);  
		
	
		
			
			        return "You have " + this.container.describeSimple(verbose || flat ) + " wedged between your " + this.owner.toeDesc(true);  
		
	
		
			
			    },  
		
	
		
			
			    "add": function(victims) {  
		
	
		
			
			      this.container = this.container.merge(victims);  
		
	
	
		
			
				
				
					 
			
			@@ -1492,7 +1542,7 @@ let macro =  
		
	
		
			
			        line += " They slosh with " + volume(this.milkStorage.amount, unit, false) + " of creamy milk.";  
		
	
		
			
			      }  
		
	
		
			
			      if (this.cleavage.container.count > 0)  
		
	
		
			
			        line += " Between them are " + this.cleavage.container.describe(false ) + ".";  
		
	
		
			
			        line += " Between them are " + this.cleavage.container.describeSimple(verbose || flat ) + ".";  
		
	
		
			
			 
		
	
		
			
			      result.push(line);  
		
	
		
			
			      if (this.breastVore) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1515,16 +1565,16 @@ let macro =  
		
	
		
			
			    line = "Your two " + this.footDesc(true) + " shake the earth.";  
		
	
		
			
			 
		
	
		
			
			    if (this.footShoeWorn && this.shoe.container.count > 0) {  
		
	
		
			
			      line += " Within " + (this.shoe.container.count > 1 ? "are" : "is") + " " + this.shoe.container.describe(false );  
		
	
		
			
			      line += " Within " + (this.shoe.container.count > 1 ? "are" : "is") + " " + this.shoe.container.describeSimple(verbose || flat );  
		
	
		
			
			      if (this.footSockWorn && this.sock.container.count > 0) {  
		
	
		
			
			        line += " and " + this.sock.container.describe(false ) + " in your socks.";  
		
	
		
			
			        line += " and " + this.sock.container.describeSimple(verbose || flat ) + " in your socks.";  
		
	
		
			
			      }  
		
	
		
			
			    } else if (this.footSockWorn && this.sock.container.count > 0) {  
		
	
		
			
			      line += " Within " + (this.sock.container.count > 1 ? "are" : "is") + " " + this.sock.container.describe(false );  
		
	
		
			
			      line += " Within " + (this.sock.container.count > 1 ? "are" : "is") + " " + this.sock.container.describeSimple(verbose || flat );  
		
	
		
			
			    }  
		
	
		
			
			 
		
	
		
			
			    if (this.paws.container.count > 0) {  
		
	
		
			
			      line += " You have " + this.paws.container.describe(false ) + " wedged between your " + macro.toeDesc(true);  
		
	
		
			
			      line += " You have " + this.paws.container.describeSimple(verbose || flat ) + " wedged between your " + macro.toeDesc(true);  
		
	
		
			
			    }  
		
	
		
			
			 
		
	
		
			
			    result.push(line);  
		
	
	
		
			
				
				
					 
			
			@@ -4777,7 +4827,7 @@ function showStats() {  
		
	
		
			
			    if (victims.hasOwnProperty(key)) {  
		
	
		
			
			      if (victims[key]["people"] > 0) {  
		
	
		
			
			        lines.push([  
		
	
		
			
			          victims[key]["people"] + " " + describe("victim-" + key, null, macro, false, flat ),  
		
	
		
			
			          victims[key]["people"] + " " + describe("victim-" + key, null, macro, false, false ),  
		
	
		
			
			          victims[key]["people"]  
		
	
		
			
			        ]);  
		
	
		
			
			        total += victims[key]["people"];