diff --git a/devTools/tweeGo/targets/sugarcube-2/header.html b/devTools/tweeGo/targets/sugarcube-2/header.html index e74641cbe77c95c4473a1464d74b0ed1f2c6b108..27406aeda316f0b90d26fb80f8ff4bda3208fd8d 100644 --- a/devTools/tweeGo/targets/sugarcube-2/header.html +++ b/devTools/tweeGo/targets/sugarcube-2/header.html @@ -1,12 +1,12 @@ <!DOCTYPE html> -<html class="init-no-js"> +<html data-init="no-js"> <head> <meta charset="UTF-8" /> <title>SugarCube</title> <meta name="viewport" content="width=device-width,initial-scale=1" /> <!-- -SugarCube (v2.16.0): A free (gratis and libre) story format, based on TiddlyWiki. +SugarCube (v2.17.0): A free (gratis and libre) story format. Copyright © 2013–2017 Thomas Michael Edwards <tmedwards@motoslave.net>. All rights reserved. @@ -40,7 +40,7 @@ Build Info: --> <script id="script-libraries" type="text/javascript"> -if(document.head&&document.addEventListener&&document.querySelector&&Object.create&&Object.freeze&&JSON){document.documentElement.className="init-loading"; +if(document.head&&document.addEventListener&&document.querySelector&&Object.create&&Object.freeze&&JSON){document.documentElement.setAttribute("data-init", "loading"); /*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */ if("document" in self){if(!("classList" in document.createElement("_"))){(function(j){"use strict";if(!("Element" in j)){return}var a="classList",f="prototype",m=j.Element[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.getAttribute("class")||""),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.setAttribute("class",this.toString())}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(){var s=arguments,r=0,p=s.length,q,o=false;do{q=s[r]+"";if(g(this,q)===-1){this.push(q);o=true}}while(++r<p);if(o){this._updateClassName()}};e.remove=function(){var t=arguments,s=0,p=t.length,r,o=false,q;do{r=t[s]+"";q=g(this,r);while(q!==-1){this.splice(q,1);o=true;q=g(this,r)}}while(++s<p);if(o){this._updateClassName()}};e.toggle=function(p,q){p+="";var o=this.contains(p),r=o?q!==true&&"remove":q!==false&&"add";if(r){this[r](p)}if(q===true||q===false){return q}else{return !o}};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))}else{(function(){var b=document.createElement("_");b.classList.add("c1","c2");if(!b.classList.contains("c2")){var c=function(e){var d=DOMTokenList.prototype[e];DOMTokenList.prototype[e]=function(h){var g,f=arguments.length;for(g=0;g<f;g++){h=arguments[g];d.call(this,h)}}};c("add");c("remove")}b.classList.toggle("c3",false);if(b.classList.contains("c3")){var a=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(d,e){if(1 in arguments&&!this.contains(d)===!e){return e}else{return a.call(this,d)}}}b=null}())}}; /*! @@ -91,15 +91,16 @@ var saveAs=saveAs||navigator.msSaveBlob&&navigator.msSaveBlob.bind(navigator)||f !function(){for(var methods=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeline","timelineEnd","timeStamp","trace","warn"],length=methods.length,noop=function(){},console=window.console=window.console||{};length--;){var method=methods[length];console[method]||(console[method]=noop)}}(); /* User Lib */ "USER_LIB" -}else{document.documentElement.className="init-lacking"} +}else{document.documentElement.setAttribute("data-init", "lacking");} </script> <style id="style-normalize" type="text/css">/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}</style> -<style id="style-init-screen" type="text/css">@-webkit-keyframes init-loading-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes init-loading-spin{0%{-o-transform:rotate(0);transform:rotate(0)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes init-loading-spin{0%{-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}#init-screen{display:none;z-index:100000;position:fixed;top:0;left:0;height:100%;width:100%;font:28px/1 Helmet,Freesans,sans-serif;font-weight:700;color:#eee;background-color:#111;text-align:center}#init-screen>div{display:none;position:relative;margin:0 auto;max-width:1136px;top:25%}html.init-lacking #init-screen,html.init-loading #init-screen,html.init-no-js #init-screen{display:block}html.init-lacking #init-lacking,html.init-no-js #init-no-js{display:block;padding:0 1em}html.init-no-js #init-no-js{color:red}html.init-loading #init-loading{display:block;border:24px solid transparent;border-radius:50%;border-top-color:#7f7f7f;border-bottom-color:#7f7f7f;width:100px;height:100px;-webkit-animation:init-loading-spin 2s linear infinite;-o-animation:init-loading-spin 2s linear infinite;animation:init-loading-spin 2s linear infinite}html.init-loading #init-loading>div{text-indent:9999em;overflow:hidden;white-space:nowrap}html.init-loading #passages,html.init-loading #ui-bar{display:none}</style> +<style id="style-init-screen" type="text/css">@-webkit-keyframes init-loading-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes init-loading-spin{0%{-o-transform:rotate(0);transform:rotate(0)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes init-loading-spin{0%{-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}#init-screen{display:none;z-index:100000;position:fixed;top:0;left:0;height:100%;width:100%;font:28px/1 Helmet,Freesans,sans-serif;font-weight:700;color:#eee;background-color:#111;text-align:center}#init-screen>div{display:none;position:relative;margin:0 auto;max-width:1136px;top:25%}html[data-init=lacking] #init-screen,html[data-init=loading] #init-screen,html[data-init=no-js] #init-screen{display:block}html[data-init=lacking] #init-lacking,html[data-init=no-js] #init-no-js{display:block;padding:0 1em}html[data-init=no-js] #init-no-js{color:red}html[data-init=loading] #init-loading{display:block;border:24px solid transparent;border-radius:50%;border-top-color:#7f7f7f;border-bottom-color:#7f7f7f;width:100px;height:100px;-webkit-animation:init-loading-spin 2s linear infinite;-o-animation:init-loading-spin 2s linear infinite;animation:init-loading-spin 2s linear infinite}html[data-init=loading] #init-loading>div{text-indent:9999em;overflow:hidden;white-space:nowrap}html[data-init=loading] #passages,html[data-init=loading] #ui-bar{display:none}</style> <style id="style-fonts" type="text/css">@font-face{font-family:tme-fa-icons;src:url(data:application/octet-stream;base64,d09GRgABAAAAACWoAA4AAAAAQhQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABRAAAAEQAAABWPihI/2NtYXAAAAGIAAAAOgAAAUrQXRm3Y3Z0IAAAAcQAAAAKAAAACgAAAABmcGdtAAAB0AAABZQAAAtwiJCQWWdhc3AAAAdkAAAACAAAAAgAAAAQZ2x5ZgAAB2wAABjCAAAq+uJ4WNtoZWFkAAAgMAAAADQAAAA2BZlJs2hoZWEAACBkAAAAIAAAACQIJwQZaG10eAAAIIQAAABuAAABOPTeAABsb2NhAAAg9AAAAJ4AAACeojKW6m1heHAAACGUAAAAIAAAACAA6gvwbmFtZQAAIbQAAAGPAAAC/eLsyKlwb3N0AAAjRAAAAfwAAAM0412SIHByZXAAACVAAAAAZQAAAHvdawOFeJxjYGRWYZzAwMrAwVTFtIeBgaEHQjM+YDBkZGJgYGJgZWbACgLSXFMYHF4wvPBhDvqfxRDFHMQwDSjMCJIDANLeC6V4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYGF74/P8PUvCCAURLMELVAwEjG8OIBwC4Ywb6AAAAAAAAAAAAAAAAAAB4nK1WaXMTRxCd1WHLNj6CDxI2gVnGcox2VpjLCBDG7EoW4BzylexCjl1Ldu6LT/wG/ZpekVSRb/y0vB4d2GAnVVQoSv2m9+1M9+ueXpPQksReWI+k3HwpprY2aWTnSUg3bFqO4kPZ2QspU0z+LoiCaLXUvu04JCISgap1hSWC2PfI0iTjQ48yWrYlvWpSbulJd9kaD+qt+vbT0FGO3QklNZuhQ+uRLanCqBJFMu2RkjYtw9VfSVrh5yvMfNUMJYLoJJLGm2EMj+Rn44xWGa3GdhxFkU2WG0WKRDM8iCKPslpin1wxQUD5oBlSXvk0onyEH5EVe5TTCnHJdprf9yU/6R3OvyTieouyJQf+QHZkB3unK/ki0toK46adbEehivB0fSfEI5uT6p/sUV7TaOB2RaYnzQiWyleQWPkJZfYPyWrhfMqXPBrVkoOcCFovc2Jf8g60HkdMiWsmyILujk6IoO6XnKHYY/q4+OO9XSwXIQTIOJb1jkq4EEYpYbOaJG0EOYiSskWV1HpHTJzyOi3iLWG/Tu3oS2e0Sag7MZ6th46tnKjkeDSp00ymTu2k5tGUBlFKOhM85tcBlB/RJK+2sZrEyqNpbDNjJJFQoIVzaSqIZSeWNAXRPJrRm7thmmvXokWaPFDPPXpPb26Fmzs9p+3AP2v8Z3UqpoO9MJ2eDshKfJp2uUnRun56hn8m8UPWAiqRLTbDlMVDtn4H5eVjS47CawNs957zK+h99kTIpIH4G/AeL9UpBUyFmFVQC9201rUsy9RqVotUZOq7IU0rX9ZpAk05Dn1jX8Y4/q+ZGUtMCd/vxOnZEZeeufYlyDSH3GZdj+Z1arFdgM5sz+k0y/Z9nebYfqDTPNvzOh1ha+t0lO2HOi2w/UinY2wvaEGT7jsEchGBXMAGEoGwdRAI20sIhK1CIGwXEQjbIgJhu4RA2H6MQNguIxC2l7Wsmn4qaRw7E8sARYgDoznuyGVuKldTyaUSrotGpzbkKXKrpKJ4Vv0rA/3ikTesgbVAukTW/IpJrnxUleOPrmh508S5Ao5Vf3tzXJ8TD2W/WPhT8L/amqqkV6x5ZHIVeSPQk+NE1yYVj67p8rmqR9f/i4oOa4F+A6UQC0VZlg2+mZDwUafTUA1c5RAzGzMP1/W6Zc3P4fybGCEL6H78NxQaC9yDTllJWe1gr9XXj2W5twflsCdYkmK+zOtb4YuMzEr7RWYpez7yecAVMCqVYasNXK3gzXsS85DpTfJMELcVZYOkjceZILGBYx4wb76TICRMXbWB2imcsIG8YMwp2O+EQ1RvlOVwe6F9Ho2Uf2tX7MgZFU0Q+G32Rtjrs1DyW6yBhCe/1NdAVSFNxbipgEsj5YZq8GFcrdtGMk6gr6jYDcuyig8fR9x3So5lIPlIEatHRz+tvUKd1Ln9yihu3zv9CIJBaWL+9r6Z4qCUd7WSZVZtA1O3GpVT15rDxasO3c2j7nvH2Sdy1jTddE/c9L6mVbeDg7lZEO3bHJSlTC6o68MOG6jLzaXQ6mVckt52DzAsMKDfoRUb/1f3cfg8V6oKo+NIvZ2oH6PPYgzyDzh/R/UF6OcxTLmGlOd7lxOfbtzD2TJdxV2sn+LfwKy15mbpGnBD0w2Yh6xaHbrKDXynBjo90tyO9BDwse4K8QBgE8Bi8InuWsbzKYDxfMYcH+Bz5jBoMofBFnMYbDNnDWCHOQx2mcNgjzkMvmDOOsCXzGEQModBxBwGT5gTADxlDoOvmMPga+Yw+IY59wG+ZQ6DmDkMEuYw2Nd0ayhzixd0F6htUBXowPQTFvewONRUGbK/44Vhf28Qs38wiKk/aro9pP7EC0P92SCm/mIQU3/VdGdI/Y0Xhvq7QUz9wyCmPtMvxnKZwV9GvkuFA8ouNp/z98T7B8IaQLYAAQAB//8AD3icrToNcBzVefe9/b3dvd29u909/dyd7ke6k86yLEunOyHJsrCxJWyJGmEcLMDYxBhHNsZQBzOAkjQmFDrGIq5gHEIcCILOAGZq3IQO04RkIGkgaUMKMbQznSlJW0wgJtOQHxRr1e+93TvJwq7JTD3y2/f//bzvfX/vAhAIzL3KPcYNBFIB8UR9EJYuAcuAqGNbOiwDSczkuorlaJ6WTeVSRwMIDveY8aN20GztjzMhW4P2H+kNUPM5NaVNQE0K3tWM77vv8rJqgnT33VJE4WWIfd/QbKHZjcXcZiFAqjCDgUJA/mZTWOIIwi0vAwNiUjkW9THIZs6DAbnj6ffGP/P+0y2vv+5SXGLKuXHJPJH92c+yT7x3883wnI9W/DxI4T9+bm7uOL+MUwNywAg0BJYFQgNKa2NDzFBEjqeM0SFXLHU4YKe7yjFoSmdEKWw5nemOUj5czMXCliilM7lyuFgqp3HaDf1j/fhH+s6cfm4MEpA8c0BSQBO5CUkD5fJi05kDjSUoNnETTUUSXtpPVm0aGHDdmV0nNkPiMUWeHZMVRSZPSlp0dqypCKVG8iT9IK5AEeamyZGAjecW5tm5SSBm8ojiSqBsYoXDTRtuymw13V8axjB+p2EPlsMGcRzTTRkGOLRpmk/AzSZ+A97ecx+QN8g9gUbc26F7N+GJiN5pLGMA8hUo7EQcHI455A0PwrS3I37N+bZhTE8bex1aeeIJ4+MTjTY6gcH+iIvgGWQRdh2TR9sS81kspCzytguLfBcyuBOLXuhwYnZnh8NFUs6plLPLScGpWBKwkYztwsop7Hie9r7rYK/9brWXTg9U+RiBX+GJiyc0rgIv7UNJe3vPjrFdyZOV/byNUkyW/0AuIi/h+h6U5a64SmW5ieGcya2AYimG+EUtnZN08ImgveV+KOYykiiJVMrbkI+dHUkC9+nyPUFdD94j639r1uTq7FiSNrR1hXS8uLbGapYUSbpaJvzmp5aODbU9iJNBU1gJa5LFTCqihNpDigmWWtc2GjUy7Y2m3hHk14qmPJXp2cTInZudO85dhzw2AuXAJQHl+Yt7l0RVjkO8u4q5JZARE2A5yNxStNgGWcQSj7izA1HucCgJOsRsb7xYWgn9XAwvRqaN4HAS4ENF3kXFFovJ/muW3zsYDK3jxaCQbOouOPXZPmBDNZG4krS0N2/9wakf7hHv+IcPX/jcaGWZAp9fvrFtv66UeSlXn4zYdZo5kLNwIJJRTbEu3jz62Zf37Xv5l7RAeugZfAQ7kJ5koA3PoJB1eP8MpHRVWqpygyITpiKz4DCoHMENlun+wrDA0bNZ9jmJZdZwhhx9UnewMKztg2yAlie9j6O7Lzrks7tYdRdOO4u/FJ9e5G93RyFTJ1f5G17IZDs7z25uEfuFBYwlvYpUUuTnKJO6umg5IymD88yGGxbycjN2JOkIVk6wUoEzm/0O5T/Owb92Jg8NyL/6qFrl30IZ5nSgMp3nch7DkvOMCaMeoQ1U4JZxQncenmAMmcAei/S7V9CvAccW8mczwtMCceSQ8nwhXWuKAeQPJbRCc9RnhoSyhvBL+WgxTzsk0Y567IFj+35wa4Xq7ykS5YIm7UIdq4iCfKcsiIoSvFFWONUnFovZoXHKhXE69R9hTOIEgZPcJ0VZRrx+i3j9hhtFPqQDnYjX8uaEpS2+F4twiVkOylSJAwfvBZO3XBnoTaEHtltSWAGKIEl3SJIQ1CRESIRnLFtJRc88GckEbQuOBTO5zBXziL0JIPKiyMtzggwiMc+czmbDEbDMbJaLhC3LPzPuFOKaD6zEM+tt15gNxTPLIg5dvglCfGmbmakYmqmKsEfRVOWWAXjqvEzVeamT6botq9321Vu2rIb7KOrufmZ24LWmoiI3yspJJ65e704JprBSFGH3pxXLhAQe9fBzbM1rq7YAm1dsctvZSiqu8G94rxwS/LQ7JYorRR0XXq/GmSh4dJADKAsSk70ajQ8gHdE0MhzVjOCbVDSvKINd1PhKVN+fgMTG2zYCvIaq+V2mmsNTP36IRLD6xO7ejWTDisfc7zCVD6tQW+/eMTW1Y3fSt20foe+hBZpQ3zfGfH3vyzmCZNvHFoJFVPrRjj7m6I26M3r7KHQxgD5c2H/4tQdIeJLJ+yQDvTsZOwv4jYfJQxVaxxmtKtNTTVaQnRmS6kkWvfBoNvCeIT55jt41PJZwpg3YYeJYGK+dppgK/sF+R/8ggZIOBlnyNoK/qpwokLZ6uCFRKCTKV8HeGaYksPg2Xj/3fyQZb6dhGWv2QLLQU4DW7lZwf77Hw+vb3AjzexKIVywkEXoGlB1JUqr4FW3A7BZlDzgzhZ5W0tyfI1da7mmn13JvsZOFxLuJIRsmLXJVskByA41iu/uvSds9bWOnPZQ4lSgANm+xqQ6gMPlGH2YR79rSDIXLXQBujHZSxkCpSIeynwCdNxEFJ2HVmSDaFPxQYoIN2BfCM8E6zTCu66VDSQ97KkPfIa8i7nGUITNAZagDhYFJjeg5rXh+bcBuYamT/JWmRVE8Iopeb/3ud1ZdSIs4TkQLcaogJ63Z5dGUxEfefz8qSKko+Qm2PB/ZgyEEMngmjkjovYB0GBog+n9COzD7MiQ73pfOA5S8NLseIst+QWbPC9y/J8dRv7QFliCNWcnzAYlI3fE8hdNVbBPY1WEeZxm8m5mKOdypQRG1qhiRgQBnZbr7N20qT1ipoPsLVYWEGq8hE3BoLPn2tV8PhWVe0WTB4nIN3WMD7cmIiDZEhaSSROulWMbk2+sX4LIs0Iq4NNdUfV3mDeqCbaEOligmbYSFCaU0VRVULrhTKoKlIMubNvV3ZyyOByWMilXkBpNjcIjihTjBrwzF/bmKF1iMJNsHxrobcnxElDVF0C3u69fevP5txIsEcUrVZyR96DPqiI/C+zGTp0uZGkXVP6PG1RncET7Ey/eKjnX885QeWw83krsCIVyvMp8TD9P3rEvMFUkFZxS6Rw25ytWQJ/52/tqLyQSDrc7Dpiq/H2XDgYsVBgjnK7BF95EwLKLNKLh0bg5x74VXPNwJO1fq7raB588j7pbhat78pDKjPE1td1Jl6Hhn8Q73LdISsCrrgwuijljQ28Tinnavx+Xu9ap6jYqn2QzNaly7RoVJ99MoBl/DvmtU1X0Lu3FCnO37XXKEW832Nai8BYnDKKvIF92W3F9dotK94ahCNyJPuW+5b2L1WrQ2X6fSc1TBejLg77uvsm8FX2b1ghWk6cbjuB1FUIVm9y0f6aMKfMbdhjshNGihFKgIgE7044ZvkbXz+zbh3chXN/f35Z6mOyF2b/m7H6V7HVV3XYOYtiDOig/J25bh+xPuAPMdxRPRc8V1YU8Z2mEv9OIO2O6DTg8Wtt2C3+lCcjBRmEaNVbDhi0nLnUK1ttvqdVpsexruQ93WGnf3T9s47N+te7nN5FeohRGeChUfIvZx5htAPYTNjQl/ea/tTlkW7LZ7nIK3dyNsGUwWpq0+a4k/ALvozB5nurkCqwthUdrq5mnzBD/tu5rpfPVYuC6L0VZwnMfd/YnGxgTc97jjFNjGFvRQ6iyrYPfZjyPVyQJM233YRF5YVb1xgLzjwVMX3NOwZ/K7wtJZx4W8pGRNNzf4ZOBeCKgPCxuKcUYmxQNycbjP5wGlEJGk8OZc369tR3gtaZ+X6CbmVkIONRVJcugpluk1TQL1Fqmfy1ELVi4hYy1zJhYNj4zu7RkfbuebN17fv+q2Fj4sDgtE7Hv2uk89uneIH7j9yNWjR1YMmUvJSzO6s9QcGWkbHt83PtzW0yWCMMLr4roNcMm+o88e3XdJ/0VDkWiFDxSv5YhXq8d3nVAryjjtoDXp7Ojn2gg6ijGHIUxDpQZ0Y2lQym2+5NZHN219to8XhsUw33Lb6p6dG9DVGN598/bmkXA0NoPeR2t4qO/h0U8d3bcKtmB5yeilos6PCCB29fgINjeNmEsdfaYmGhm6qB9RrPhEx7mrEbfGwCDauZXNJo09wLJ1oAhSe1NxWkUDKKJofMqeE+szt8S4K9JYmjbLXRRtylOU1vWN//mVy4/0DVGNqM9QJT7SvL287ot5MSZoGC/oyHTWO7p3vdd5s6RB439/5fKH6aIaEDh46AVkpMqWo1YdaWpe1690hzT4e79jxGuLvD+R0iUwuiJ+TLUM4+yrA8aAdsVAsX1JFgMsTkCF4ceBdtgLZ8oXaENnPpfPipLA6A57nn4+XI1hUbCoYmig1KP5pH44Kybnq4cUyatKivvTmXpeOC7y8J4il3yHncWVz+SDrc5zTqucPyYro3Af7XP30/I8ddJxsQAgXIFbz37QdsmqNhJl0K6145C0rkWzExAX8aM3sDpwYyA8oF83PNBXWu7xRPQMIT1E6syw7M4F2tFwOmyhVKQ7+uH/lz9DribLBF4jsuze94lYBc+7LzLOXMw4c+66u52EZz/QLEWxyA0XZFuA9+OVUfSTwyzWCw0o3a0Jx9BYTrKp2AZiEi9qGSs6OFhZkPboRDXesZKpbcd3UOjV8dMgNNQhr1pJh0Qy5petVIQ48Zq1KefMj7zIhluf3pQeBs5JfUuJMGcgHFRik16gP1mzHX2EmroaYhmVysETLOo54aSGU/gHzbEwdRvCMXuGhUczHj3HkZ42Rk9LYIDS07c8YRuqSBg91Pmnwo8VghFR2Y9oKTmxziSwi0HTN2I1cMvT3E7Fezk/Pae1UnYyUwqdRnqCNZPoXSJSk6hxGWmRBKqBSMqyTP97/wmaJcQCGpqbG5Iw6vhEtHpEVWihepULpFG3rqG0rOha2qTxJIC0YOSYFjrxEtP8nlSlIxvu7PLcRKmS76mk04Sq0HoTqJ04CcfcK+DDIU34mhCX/dByaAiDy58ibicVeRdNJrNyezI2G/ESlUKsZDxiOtLJk/ChXCc9Imp+1nO2xL6QZIkkWiizM7SHIF9q9K8ZpQDx8zOjgWaMzORvdrSGPJ2sEzRYZer9O2gmWD4zSTr6sSuH8Uc/IGjmyLIMOHUV0G48840967ixy2v6zIhcU+pr3bDj9u0bc1xfqUbO9sUuH3O/iqEbFPqaPbOBZuFTO57rx7mxvnDL7avRFLah/ei55LZCpKddjqz4OxhyH6YRLuzA0rcfY5yC8rQTcb08JdLYleZW8TZ0lGgSCyVfQoQtRDiPV6BqKLryzL7kqRmkuoGdE5UzlKWy39mJQlU1OChf1KrEHOYcsdMhvaO3j5JN+zZBXJZ2Kmq0WRSMDSFJGqmtC0q8eZesmfWxPxNNca3DC3KzYsg7MBBXhJ2yHmvy5sojNXVBmQvfhUdoxJ0NgiENWTzfqwd3SOjC927ceNvGjbfTUTNp13eIumhvAKEvJA/HTUW6Maj1CeJAUtBFrcOI1xugSWxubV1qqaRJ1gZvqiHLbKqwOo5TR9hELw7/iBsjL/t6WXl+SWN9VOO5RfnTtJcwreTFY35bWthGB+bMB+yOcGEDg4bztxbkUR0wh1h2kJWgV0awMR+Hjvn5mlrmu9BMCMpYsZynmQC8KR2xco4maZIg5jN5CU86ViJ/s27nzqlxgFc6167fuXP92s5XYOdDO8j4pYNYw16IjR8eH79U0ra3Y6V9uyat20l2P7AbsKpjJ81Tzs39nt9PXgqYeL9LNB+Yi9uMN1BEZ0knnvijDiZLEDg6dJ30NuA9oQEVh9U0uk/kgO8A+R94pvWy8YveWn0ZWbfmLepJXdqz5Z5B94qhu7d2k75r7l0Lx2gVtvTMr6FXgDY7p56d6qSNS+/e0ke6r//CQ1/YXiTdW++u+FK/529HfC3klvzNhK3Te4txIUFlkuQ8tIjguXrUG6WAPWgMsIcDF664d3v3DHXwhQ07YMul2I9QDvtQXz+bokoej3uUo5mt1Qi7f/m58pGoIAyavsnnFiUl8cbhKTpRmI+CKw9Y1oKc5GvZZJCT6kWJcCHNzzDS3KTQKEocr/6Fe1GoUf+1rq/QG/W/hs9goz8E649Xc5M6HxXjAnDV9OT9spBFuwOC26Prv2bzQ3RhCHfwaYpW8+LxqOzlYOZR7/Kf/RbmXMktCzAr3jWP/Kqt5KUqZDq4uTqyBbYGfL17HcuL19KcjykyePSoAP2bNgILH1qOXXFwA9l471P3bOIvOwRXL8j+k0OjB6cPjrLCfe2sXP/824QcsAMZlOmGWiMo0rwb4K1qo+mH/LkBVlXdA+cFXFFWvz0//AXvbZ6+ac3GoyzHHvXfzCqvNILfLi9qV7KBJ/03OPbql/A+XlcDa3g9C1/rnPPU/XzkR4E3q/4p6kHES6V3vVx1M7x3EG4RnpwfhuT9B8mTF4BG6w/vZp7SbtoL4oJBkCuYe2+LL3GT6CtdzGKjNas6FGaHETyqOIeljCSdy4azYTwkLxFIL08OHSKaM+7sonl9vERpGguhHaS5bUgz24xu3ETTPsVKqntkIZfpqR1MdBfQKd6hmiFHviU1QZ260MQ2FSOcbfDmVoyFeHkb9rq/db9KFWsP6uutqz6LgZW6R+JrIjp86Gp6jSXL+7RoUv38yjEracH0NiVpKdu2ISBl27QDRdTKAT9WHoc/IL/p7w4sptcdmtpFR6IcZRnNXDnaT909x7Ykjj6PwmlFdP9FMuWgQvb8nAiKpHB7iS4/r+pk678LRCWOGpq9QwfOlOGlbpDkEPwThngKL7puibAY5LvMl+ZQQ8Yx4mxF/wZjkGJ7a3NjKl5jyjiJ/hAhLzVVExN+9qMpZsAyWImhu/eF2NlfcmS6bxq6lNlO9CZvxpjon/G7R5k1SqVwuFwOv3HTTZn0TTelSQs2wtjpPkNH8D/RH++b3mkosx0KLkzSlfi92qSrzPKX2arMTe692ChjJ7T5I75t3I487EIe5jXKQ6pg6Q83qs/lEn3noSFynmb4aOrBF9sEoBuHhKFYcL11up41emofLCQGE60wVdeDClSvn5qqM41Go7t+iuWUHqzrNrOGWTsFst5TtwLXXPk0Syc9fSX2rsBFmzadY6C/Fge8d+e5uXHkfyiQRc6vwTu2Ylkhz95Fq2/8+YVv/CxSqb7xxyqhDjDBRxFBxcQnSYzeBfrYNqGJjej4TLDfWEywII42hqZ+/BB/6I2DkCn0WS9uv3PD4Z0DpG/3oemDe7u5NS/aMOWtol60t2qCusYTSi19uHn1iHiQOpz2i2v6xx/4xqE9PfyqHQ+N3Ln9RftsmoxADcYAyvMt9Y73lr7wdwTUmb8g/u53GOaw6pPizJC9MJrEj7noG9sG1CNhmWN2BcF2dpRzGBfz5XrojEWZRxuj6aCYY0tiLJOTMmK2uJJQjxj/8hjKEB1iGHCj4JTpxczQzEtehAevG+5pUO12twtCjfG4I979yJB4a7RlZbDdVGV1OMgDQPZQY+ERm1wqiVyYJwJHMrGaP+o9YKbUlE2ApL6YEiyylNT9ESff74qtvCgqNSZcBVOa+2Hr9q9E70rVikGTcxRJ4BSQa6ImzpQIEXk+OFbqhvQRQ4souDWotqAiL2Xqm+AZ/Yz0kXcCOnvfqg1779vzOXtqtvPMii9Ig5+dwj87Kf4bQ6EJfdRt4PyQZYFY0/NXERbE5vPzi+As2njhToFqfp7h6ufXYTFiZ6MCryyG/xQX5qIBFddLfr6b+SYsHc3P1ocikRD5rxCMuNslxeBKuiZjzQpUY6kFvwNgPtyioHRxkEr9fv+HE5AwHFc9q0neOXOa/kiAi9ByQX3et1fZb2+q7yCL914QN5y1GVt/DOVaR29JPCECXV9iGaI84A7sQ9W3Y4dLZe4vVR1Mxd3Hc7rq7lNVOKjqHM9xqmiceVWXNTgoiO6fswpN0R/EfnefyHtnMvcsdw1nzMOJiSzGpQ+SPmclxmVRqlVM0HG5wNFSQYAIRhjE3ZDTsobwJbifVegTxj7sx7mCRwvp5XSWh6/QYs/TwjyMahKsVCYZVaeECMTR56MplPyzCfrSPO/dL0m8RwvpQ1oS56aF7i/58Mpn0eOHaKxcTNGd84cLd4oCvXPu3B+4a8kPUA7rmSzJ7E3Zy7OzuJEm/Mt+7Eh/pyDPMx7xF7luuh/CY9hDe4WZYLqvW+YhFlJiWX1PO0aOB6L0t3AVOUK7V/XSqP8Dx/CavHCY8erwC3jhyKHZR2nu9wXvpz4vKN4dwOIA22sZ/S1RTbhyBxbvF/XeXzEQpfEUTa0hLTTE+RigN9vzQhBp0RzT5OUaKazwlhEU8u0fx8D9XmGdwVmmZmpavDGuichhJJUz1nn5pp9yj5H3GG7DgZtovmnn5YNFiiT/JyIZqw6Uvd+i0TRIFwumFw7SVEg/TYvQDM/8hE9O4uTWEVlECuyU2tLW1oKK3jIk+bItDxy6TZKw36mttdZgKDxo1fIRzrFMSbrt0J/Cl8KVh1OcozuqGUyO7RxLBk3UrA6XfmDTF97qwAErpOl655GnjnTqOidyIQsHO08G/hcLt/j/AAB4nGNgZGBgAOLaW41M8fw2Xxm4mV8ARRguss1QhNC5H/9//Z/FUsEcBORyMDCBRAFTFwxveJxjYGRgYA76n8UQxVLGwPD/FUsFA1AEBfgBAHyYBUh4nGN+wcDAvACCWfSBNIgviMBM1kA6koGBMRWVBqsDYqYmiF4wHQkxg+kUBMPVWEP0gTDYvBdoahZAzYxEY0ciuWUBFjkoZimDYLC8IKpehmsQccYvSGYgYZB7YBhFL5o8cxTQjDUI/wIArpclrwAAAAAAAAA6AIYA3AEKAUgBgAGgAfoCYgKqAwIDOgOGA9wEQAR4BLYFAgU8BZoFzAYMBlIGmga6BtgG+AcYB0QHcAecB8gIAAg2CG4IpgjyCUAJrAo0CtALOAueDAoMYA0ADVANjg3mDiQOjg7GDvgPOA+ED84QPBB2EN4RNhGgEfISchKoEsgS6BMGEz4TXhOSE8QT+BQsFGIUiBTWFX0AAAABAAAATgBuAAYAAAAAAAIAAAAQAHMAAAAiC3AAAAAAeJx1kctOGzEUhn9DoIKgLloJdcdZIRDK5CKhSqyoogJrhLJDwgyeSzpjRx4HlGfgLcoz8Dp9j+76Z2KhqFJmZM93Ph/bxx4AX/AHCqvnnG3FCgeMVryFT/gReZv+JnKHfBd5B108RN6l/xV5H2d4idzFV/zmCqqzx2iK98gK39RR5C18Vt8jb9P/jNwh30fewaGaR96lf428j4l6i9zFsfo7drOFL/MiyMn4VEaD4bk8LsRRlVZXouehcL6RS8mcDaaqXJK6OtSml+lemTrb3Jp8Xmm/rtZ5YnxTOivDZLCur401XgfztNytec5HIWSSeVfLVdxHZt5NTRqSIoTZRb+/vj/GcJhhAY8SOQoECE5oT/kdYYAhf4zgkRnCzFVWCQuNikZjzhlFO9IwvmTLGFlaw4yKnCBlX9PUdD2Oa/Zlay1n3dLmXKei9xuzNvkJ7XLvso2F9SaselP2Na1tZ+i2wqePszV4ZhUj2sBZy1P4tmrB1X/nEd7XcmxKk9In7a0F2gv0+W44/z/KQo7lAHicbZLnlpswEIW5Bgy4bLLpvfeE9N57z76DLARWEJKOEEucpw8CO/kTncOdT6PhnlHxRt4wJt7/x47nYQQfAUKMESFGggmmmGGOLezBXmxjH/bjAA7iEA7jCI7iGI7jBE7iFE7jDM7iHM7jAi7iEi7jCq7iGq7jBlLcxC3cxh3cxT3cxwM8xCM8xhM8xTM8xwu8xCu8xhu8xTu8xwd8xCd8xhd8xTd8xw/sBLUlZuIkZZW2q0hzahvDRqocUyIpE4EWTR1WXDZ1sGRCz5yklBsqWBZwmauZk01mTqxl0nIlUyLs9r/Zej35m4kFl2XKftlAKFomTlKlmfQ1l74lRdB9dbxQqqyIKbc2MPQZGqbFKsqVaYnJ4ky1Ms24iQXLrYPE8GLZ07jRfaIvcf5JX+NoMhQ5jLoqFwenBS8Gpw7WTh05py6MaOtT2ibEGNXWKW1Da0i9nPY6dNe7CEWy7pc+5EJpvfJVnvtUFUHFZBPWS2LYxKqiECztVpINypAuGS2nvQ6Gs+H0hsk0U3ZznDETguua1/MNpLvMWH/RFGEuuobCihScxqS2zPC6jH4rVaVcxn1UjQ1yJW1QK2MTJ6nrPOqp0d3Vk1WoSVOz7p0oHeWdTbpoh5i3sVWpezp23AGTWch+Mmonu0o0Vb+l6RqdabLmRnveH9ru7j54nGPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGVidNjIwaEFoDhR6JwMDAycyi5nBZaMKY0dgxAaHjoiNzCkuG9VAvF0cDQyMLA4dySERICWRQLCRgUdrB+P/1g0svRuZGFwAB9MiuAAAAA==) format('woff')}</style> <style id="style-core" type="text/css">html{font:16px/1 Helmet,Freesans,sans-serif}#store-area,tw-storydata{display:none!important;z-index:0}#story{z-index:10;margin:2.5em;-webkit-transition:margin-left .2s ease-in;-o-transition:margin-left .2s ease-in;transition:margin-left .2s ease-in}@media screen and (max-width:1136px){#story{margin-right:1.5em}}#passages{max-width:54em;margin:0 auto}.no-transition{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}:focus{outline:thin dotted}body{color:#eee;background-color:#111}a{cursor:pointer;color:#68d;text-decoration:none;-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}a:hover{color:#8af;text-decoration:underline}a.link-broken{color:#c22}a.link-broken:hover{color:#e44}span.link-disabled{color:#aaa}area{cursor:pointer}button{cursor:pointer;color:#eee;background-color:#35a;border:1px solid #57c;line-height:normal;padding:.4em;-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button:hover{background-color:#57c;border-color:#79e}button:disabled{cursor:not-allowed;background-color:#444;border:1px solid #666}input,select,textarea{color:#eee;background-color:transparent;border:1px solid #444;padding:.4em}select{padding:.34em .4em}input[type=text]{min-width:18em}textarea{min-width:30em}input[type=checkbox],input[type=file],input[type=radio],select{cursor:pointer}input:focus,input:hover,select:focus,select:hover,textarea:focus,textarea:hover{background-color:#333;border-color:#eee}hr{display:block;height:1px;border:none;border-top:1px solid #eee;margin:1em 0;padding:0}textarea{resize:vertical}audio,canvas,progress,video{max-width:100%;vertical-align:middle}.error{padding:.25em;background-color:#511;border-left:.5em solid #c22}.error[title]{cursor:help}.highlight,.marked{color:#ff0;font-weight:700;font-style:italic}.nobr{white-space:nowrap}#story a.link-external:after,.error:before,[data-icon-after]:after,[data-icon-before]:before,[data-icon]:before{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}[data-icon]:before{content:attr(data-icon)}[data-icon-before]:before{content:attr(data-icon-before) "\00a0"}[data-icon-after]:after{content:"\00a0" attr(data-icon-after)}.error:before{content:"\00a0\e80d\00a0\00a0"}#story a.link-external:after{content:"\00a0\e80e"}.passage{line-height:1.75;text-align:left;-webkit-transition:opacity .4s ease-in;-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.passage-in{opacity:0}.passage ol,.passage ul{margin-left:.5em;padding-left:1.5em}.passage table{margin:1em 0;border-collapse:collapse;font-size:100%}.passage caption,.passage td,.passage th,.passage tr{padding:3px}.passage .error{white-space:nowrap}.macro-linkappend-insert,.macro-linkprepend-insert,.macro-linkreplace-insert,.macro-repeat-insert,.macro-timed-insert{-webkit-transition:opacity .4s ease-in;-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.macro-linkappend-in,.macro-linkprepend-in,.macro-linkreplace-in,.macro-repeat-in,.macro-timed-in{opacity:0}</style> +<style id="style-ui-dialog" type="text/css">html[data-dialog] body{overflow:hidden}#ui-overlay.open{visibility:visible;-webkit-transition:opacity .2s ease-in;-o-transition:opacity .2s ease-in;transition:opacity .2s ease-in}#ui-overlay:not(.open){-webkit-transition:visibility .2s step-end,opacity .2s ease-in;-o-transition:visibility .2s step-end,opacity .2s ease-in;transition:visibility .2s step-end,opacity .2s ease-in}#ui-overlay{visibility:hidden;opacity:0;z-index:1000;position:fixed;top:0;left:0;height:100%;width:100%}#ui-dialog.open{display:block;-webkit-transition:opacity .2s ease-in;-o-transition:opacity .2s ease-in;transition:opacity .2s ease-in}#ui-dialog{display:none;opacity:0;z-index:1100;position:fixed;top:50px;margin:0;padding:0}#ui-dialog-titlebar{position:relative}#ui-dialog-close{display:block;position:absolute;right:0;top:0;white-space:nowrap}#ui-dialog-body{overflow:auto;min-width:280px;height:90%;height:calc(100% - 2.1em - 34px)}#ui-overlay{background-color:#000}#ui-overlay.open{opacity:.8}#ui-dialog{max-width:66em}#ui-dialog.open{opacity:1}#ui-dialog-titlebar{background-color:#444;min-height:24px}#ui-dialog-title{margin:0;padding:.2em 3.5em .2em .5em;font-size:1.5em;text-align:center;text-transform:uppercase}#ui-dialog-close{cursor:pointer;font-size:120%;margin:0;padding:0;width:3.6em;height:92%;background-color:transparent;border:1px solid transparent;-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}#ui-dialog-close:hover{background-color:#b44;border-color:#d66}#ui-dialog-body{background-color:#111;border:1px solid #444;text-align:left;line-height:1.5;padding:1em}#ui-dialog-body>:first-child{margin-top:0}#ui-dialog-body hr{background-color:#444}#ui-dialog-body ul.buttons{margin:0;padding:0;list-style:none}#ui-dialog-body ul.buttons li{display:inline-block;margin:0;padding:.4em .4em 0 0}#ui-dialog-body ul.buttons>li+li>button{margin-left:1em}#ui-dialog-close{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#ui-dialog-close{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}</style> +<style id="style-ui" type="text/css">#ui-dialog-body.settings [id|=setting-body]{display:table;width:100%}#ui-dialog-body.settings [id|=setting-label]{display:table-cell;padding:.4em 2em .4em 0}#ui-dialog-body.settings [id|=setting-label]+div{display:table-cell;min-width:8em;text-align:right;vertical-align:middle;white-space:nowrap}#ui-dialog-body.list{padding:0;min-width:140px}#ui-dialog-body.list ul{margin:0;padding:0;list-style:none;border:1px solid transparent}#ui-dialog-body.list li{margin:0}#ui-dialog-body.list li:not(:first-child){border-top:1px solid #444}#ui-dialog-body.list li a{display:block;padding:.25em .75em;border:1px solid transparent;color:#eee;text-decoration:none}#ui-dialog-body.list li a:hover{background-color:#333;border-color:#eee}#ui-dialog-body.saves{padding:0 0 1px}#ui-dialog-body.saves>:not(:first-child){border-top:1px solid #444}#ui-dialog-body.saves table{border-spacing:0;min-width:340px;width:100%}#ui-dialog-body.saves tr:not(:first-child){border-top:1px solid #444}#ui-dialog-body.saves td{padding:.33em .33em}#ui-dialog-body.saves td:first-child{min-width:1.5em;text-align:center}#ui-dialog-body.saves td:nth-child(3){line-height:1.2}#ui-dialog-body.saves td:last-child{text-align:right}#ui-dialog-body.saves .empty{color:#999}#ui-dialog-body.saves .datestamp{font-size:75%}#ui-dialog-body.saves ul.buttons li{padding:.4em}#ui-dialog-body.saves ul.buttons>li+li>button{margin-left:.2em}#ui-dialog-body.saves ul.buttons li:last-child{float:right}#ui-dialog-body.settings div[id|=header-body]{margin:1em 0}#ui-dialog-body.settings div[id|=header-body]:first-child{margin-top:0}#ui-dialog-body.settings div[id|=header-body]:not(:first-child){border-top:1px solid #444;padding-top:1em}#ui-dialog-body.settings div[id|=header-body]>*{margin:0}#ui-dialog-body.settings h2[id|=header-heading]{font-size:1.375em}#ui-dialog-body.settings p[id|=header-label]{font-size:87.5%}#ui-dialog-body.settings div[id|=setting-body]+div[id|=setting-body]{margin:.5em 0}#ui-dialog-body.settings [id|=setting-control]{white-space:nowrap}#ui-dialog-body.settings button[id|=setting-control]{color:#eee;background-color:transparent;border:1px solid #444;padding:.4em}#ui-dialog-body.settings button[id|=setting-control]:hover{background-color:#333;border-color:#eee}#ui-dialog-body.settings button[id|=setting-control].enabled{background-color:#282;border-color:#4a4}#ui-dialog-body.settings button[id|=setting-control].enabled:hover{background-color:#4a4;border-color:#6c6}#ui-dialog-body.share{min-width:140px}#ui-dialog-body.list a,#ui-dialog-body.settings span[id|=setting-input]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#ui-dialog-body.saves button[id=saves-clear]:before,#ui-dialog-body.saves button[id=saves-export]:before,#ui-dialog-body.saves button[id=saves-import]:before,#ui-dialog-body.settings button[id|=setting-control].enabled:after,#ui-dialog-body.settings button[id|=setting-control]:after{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#ui-dialog-body.saves button[id=saves-export]:before{content:"\e829\00a0"}#ui-dialog-body.saves button[id=saves-import]:before{content:"\e82a\00a0"}#ui-dialog-body.saves button[id=saves-clear]:before{content:"\e827\00a0"}#ui-dialog-body.settings button[id|=setting-control]:after{content:"\00a0\00a0\e830"}#ui-dialog-body.settings button[id|=setting-control].enabled:after{content:"\00a0\00a0\e831"}</style> <style id="style-ui-bar" type="text/css">#story{margin-left:20em}#ui-bar.stowed~#story{margin-left:4.5em}@media screen and (max-width:1136px){#story{margin-left:19em}#ui-bar.stowed~#story{margin-left:3.5em}}@media screen and (max-width:768px){#story{margin-left:3.5em}}#ui-bar{position:fixed;z-index:50;top:0;left:0;width:17.5em;height:100%;margin:0;padding:0;-webkit-transition:left .2s ease-in;-o-transition:left .2s ease-in;transition:left .2s ease-in}#ui-bar.stowed{left:-15.5em}#ui-bar-body{height:90%;height:calc(100% - 2.5em);margin:2.5em 0;padding:0 1.5em}#ui-bar.stowed #ui-bar-body,#ui-bar.stowed #ui-bar-history{visibility:hidden;-webkit-transition:visibility .2s step-end;-o-transition:visibility .2s step-end;transition:visibility .2s step-end}#ui-bar{background-color:#222;border-right:1px solid #444;text-align:center}#ui-bar-tray{position:absolute;top:.2em;left:0;right:0}#ui-bar a{text-decoration:none}#ui-bar hr{border-color:#444}#ui-bar-history [id|=history],#ui-bar-toggle{font-size:1.2em;line-height:inherit;color:#eee;background-color:transparent;border:1px solid #444}#ui-bar-toggle{display:block;position:absolute;top:0;right:0;border-right:none;padding:.3em .45em .25em}#ui-bar.stowed #ui-bar-toggle{padding:.3em .35em .25em .55em}#ui-bar-toggle:hover{background-color:#444;border-color:#eee}#ui-bar-history{margin:0 auto}#ui-bar-history [id|=history]{padding:.2em .45em .35em}#ui-bar-history #history-jumpto{padding:.2em .665em .35em}#ui-bar-history [id|=history]:not(:first-child){margin-left:1.2em}#ui-bar-history [id|=history]:hover{background-color:#444;border-color:#eee}#ui-bar-history [id|=history]:disabled{color:#444;background-color:transparent;border-color:#444}#ui-bar-body{line-height:1.5;overflow:auto}#ui-bar-body>:not(:first-child){margin-top:2em}#story-title{margin:0;font-size:162.5%}#story-author{margin-top:2em;font-weight:700}#menu ul{margin:1em 0 0;padding:0;list-style:none;border:1px solid #444}#menu ul:empty{display:none}#menu li{margin:0}#menu li:not(:first-child){border-top:1px solid #444}#menu li a{display:block;padding:.25em .75em;border:1px solid transparent;color:#eee;text-transform:uppercase}#menu li a:hover{background-color:#444;border-color:#eee}#menu a,#ui-bar-history [id|=history],#ui-bar-toggle{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#menu-core li[id|=menu-item] a:before,#ui-bar-history [id|=history],#ui-bar-toggle:before{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#ui-bar-toggle:before{content:"\e81d"}#ui-bar.stowed #ui-bar-toggle:before{content:"\e81e"}#menu-item-saves a:before{content:"\e82b\00a0"}#menu-item-settings a:before{content:"\e82d\00a0"}#menu-item-restart a:before{content:"\e82c\00a0"}#menu-item-share a:before{content:"\e82f\00a0"}</style> -<style id="style-ui-dialog" type="text/css">html.ui-dialog-open body{overflow:hidden}#ui-overlay.open{visibility:visible;-webkit-transition:opacity .2s ease-in;-o-transition:opacity .2s ease-in;transition:opacity .2s ease-in}#ui-overlay:not(.open){-webkit-transition:visibility .2s step-end,opacity .2s ease-in;-o-transition:visibility .2s step-end,opacity .2s ease-in;transition:visibility .2s step-end,opacity .2s ease-in}#ui-overlay{visibility:hidden;opacity:0;z-index:1000;position:fixed;top:0;left:0;height:100%;width:100%}#ui-dialog.open{display:block;-webkit-transition:opacity .2s ease-in;-o-transition:opacity .2s ease-in;transition:opacity .2s ease-in}#ui-dialog{display:none;opacity:0;z-index:1100;position:fixed;top:50px;margin:0;padding:0}#ui-dialog-titlebar{position:relative}#ui-dialog-close{display:block;position:absolute;right:0;top:0;white-space:nowrap}#ui-dialog-body{overflow:auto;min-width:280px;height:90%;height:calc(100% - 2.1em - 34px)}#ui-dialog-body.settings [id|=setting-body]{display:table;width:100%}#ui-dialog-body.settings [id|=setting-label]{display:table-cell;padding:.4em 2em .4em 0}#ui-dialog-body.settings [id|=setting-label]+div{display:table-cell;min-width:8em;text-align:right;vertical-align:middle;white-space:nowrap}#ui-overlay{background-color:#000}#ui-overlay.open{opacity:.8}#ui-dialog{max-width:66em}#ui-dialog.open{opacity:1}#ui-dialog-titlebar{background-color:#444;min-height:24px}#ui-dialog-title{margin:0;padding:.2em 3.5em .2em .5em;font-size:1.5em;text-align:center;text-transform:uppercase}#ui-dialog-close{cursor:pointer;font-size:120%;margin:0;padding:0;width:3.6em;height:92%;background-color:transparent;border:1px solid transparent;-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}#ui-dialog-close:hover{background-color:#b44;border-color:#d66}#ui-dialog-body{background-color:#111;border:1px solid #444;text-align:left;line-height:1.5;padding:1em}#ui-dialog-body>:first-child{margin-top:0}#ui-dialog-body hr{background-color:#444}#ui-dialog-body ul.buttons{margin:0;padding:0;list-style:none}#ui-dialog-body ul.buttons li{display:inline-block;margin:0;padding:.4em .4em 0 0}#ui-dialog-body ul.buttons>li+li>button{margin-left:1em}#ui-dialog-body.list{padding:0;min-width:140px}#ui-dialog-body.list ul{margin:0;padding:0;list-style:none;border:1px solid transparent}#ui-dialog-body.list li{margin:0}#ui-dialog-body.list li:not(:first-child){border-top:1px solid #444}#ui-dialog-body.list li a{display:block;padding:.25em .75em;border:1px solid transparent;color:#eee;text-decoration:none}#ui-dialog-body.list li a:hover{background-color:#333;border-color:#eee}#ui-dialog-body.saves{padding:0 0 1px}#ui-dialog-body.saves>:not(:first-child){border-top:1px solid #444}#ui-dialog-body.saves table{border-spacing:0;min-width:340px;width:100%}#ui-dialog-body.saves tr:not(:first-child){border-top:1px solid #444}#ui-dialog-body.saves td{padding:.33em .33em}#ui-dialog-body.saves td:first-child{min-width:1.5em;text-align:center}#ui-dialog-body.saves td:nth-child(3){line-height:1.2}#ui-dialog-body.saves td:last-child{text-align:right}#ui-dialog-body.saves .empty{color:#999}#ui-dialog-body.saves .datestamp{font-size:75%}#ui-dialog-body.saves ul.buttons li{padding:.4em}#ui-dialog-body.saves ul.buttons>li+li>button{margin-left:.2em}#ui-dialog-body.saves ul.buttons li:last-child{float:right}#ui-dialog-body.settings div[id|=header-body]{margin:1em 0}#ui-dialog-body.settings div[id|=header-body]:first-child{margin-top:0}#ui-dialog-body.settings div[id|=header-body]:not(:first-child){border-top:1px solid #444;padding-top:1em}#ui-dialog-body.settings div[id|=header-body]>*{margin:0}#ui-dialog-body.settings h2[id|=header-heading]{font-size:1.375em}#ui-dialog-body.settings p[id|=header-label]{font-size:87.5%}#ui-dialog-body.settings div[id|=setting-body]+div[id|=setting-body]{margin:.5em 0}#ui-dialog-body.settings [id|=setting-control]{white-space:nowrap}#ui-dialog-body.settings button[id|=setting-control]{color:#eee;background-color:transparent;border:1px solid #444;padding:.4em}#ui-dialog-body.settings button[id|=setting-control]:hover{background-color:#333;border-color:#eee}#ui-dialog-body.settings button[id|=setting-control].enabled{background-color:#282;border-color:#4a4}#ui-dialog-body.settings button[id|=setting-control].enabled:hover{background-color:#4a4;border-color:#6c6}#ui-dialog-body.share{min-width:140px}#ui-dialog-body.list a,#ui-dialog-body.settings span[id|=setting-input],#ui-dialog-close{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#ui-dialog-body.saves button[id=saves-clear]:before,#ui-dialog-body.saves button[id=saves-export]:before,#ui-dialog-body.saves button[id=saves-import]:before,#ui-dialog-body.settings button[id|=setting-control].enabled:after,#ui-dialog-body.settings button[id|=setting-control]:after,#ui-dialog-close{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#ui-dialog-body.saves button[id=saves-export]:before{content:"\e829\00a0"}#ui-dialog-body.saves button[id=saves-import]:before{content:"\e82a\00a0"}#ui-dialog-body.saves button[id=saves-clear]:before{content:"\e827\00a0"}#ui-dialog-body.settings button[id|=setting-control]:after{content:"\00a0\00a0\e830"}#ui-dialog-body.settings button[id|=setting-control].enabled:after{content:"\00a0\00a0\e831"}</style> -<style id="style-debugview" type="text/css">#ui-bar-body>#debug-view-toggle:first-child{margin-top:1em}#ui-bar-body>#debug-view-toggle:first-child+*{margin-top:1em}#debug-view-toggle{text-transform:uppercase}#debug-view-toggle:after,#debug-view-toggle:before{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#debug-view-toggle:before{content:"\e838\00a0"}html:not(.debug-view) #debug-view-toggle{color:#eee;background-color:transparent;border:1px solid #444;padding:.4em}html:not(.debug-view) #debug-view-toggle:hover{background-color:#333;border-color:#eee}html:not(.debug-view) #debug-view-toggle:after{content:"\00a0\00a0\e830"}html.debug-view #debug-view-toggle{background-color:#282;border-color:#4a4}html.debug-view #debug-view-toggle:hover{background-color:#4a4;border-color:#6c6}html.debug-view #debug-view-toggle:after{content:"\00a0\00a0\e831"}html.debug-view .debug{padding:.25em;background-color:#234}html.debug-view .debug[title]{cursor:help}html.debug-view .debug.block{display:inline-block;vertical-align:middle}html.debug-view .debug.invalid{text-decoration:line-through}html.debug-view .debug.hidden,html.debug-view .debug.hidden .debug{background-color:#555}html:not(.debug-view) .debug.hidden{display:none}html.debug-view .debug[data-name][data-type].nonvoid:after,html.debug-view .debug[data-name][data-type]:before{background-color:rgba(0,0,0,.25);font-family:monospace,monospace;white-space:pre}html.debug-view .debug[data-name][data-type]:before{content:attr(data-name)}html.debug-view .debug[data-name][data-type|=macro]:before{content:"<<" attr(data-name) ">>"}html.debug-view .debug[data-name][data-type|=macro].nonvoid:after{content:"<</" attr(data-name) ">>"}html.debug-view .debug[data-name][data-type|=html]:before{content:"<" attr(data-name) ">"}html.debug-view .debug[data-name][data-type|=html].nonvoid:after{content:"</" attr(data-name) ">"}html.debug-view .debug[data-name][data-type]:not(:empty):before{margin-right:.25em}html.debug-view .debug[data-name][data-type].nonvoid:not(:empty):after{margin-left:.25em}html.debug-view .debug[data-name][data-type|=special],html.debug-view .debug[data-name][data-type|=special]:before{display:block}</style> +<style id="style-debugview" type="text/css">#ui-bar-body>#debug-view-toggle:first-child{margin-top:1em}#ui-bar-body>#debug-view-toggle:first-child+*{margin-top:1em}#debug-view-toggle{text-transform:uppercase}#debug-view-toggle:after,#debug-view-toggle:before{font-family:tme-fa-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;speak:none}#debug-view-toggle:before{content:"\e838\00a0"}html:not([data-debug-view]) #debug-view-toggle{color:#eee;background-color:transparent;border:1px solid #444;padding:.4em}html:not([data-debug-view]) #debug-view-toggle:hover{background-color:#333;border-color:#eee}html:not([data-debug-view]) #debug-view-toggle:after{content:"\00a0\00a0\e830"}html[data-debug-view] #debug-view-toggle{background-color:#282;border-color:#4a4}html[data-debug-view] #debug-view-toggle:hover{background-color:#4a4;border-color:#6c6}html[data-debug-view] #debug-view-toggle:after{content:"\00a0\00a0\e831"}html[data-debug-view] .debug{padding:.25em;background-color:#234}html[data-debug-view] .debug[title]{cursor:help}html[data-debug-view] .debug.block{display:inline-block;vertical-align:middle}html[data-debug-view] .debug.invalid{text-decoration:line-through}html[data-debug-view] .debug.hidden,html[data-debug-view] .debug.hidden .debug{background-color:#555}html:not([data-debug-view]) .debug.hidden{display:none}html[data-debug-view] .debug[data-name][data-type].nonvoid:after,html[data-debug-view] .debug[data-name][data-type]:before{background-color:rgba(0,0,0,.25);font-family:monospace,monospace;white-space:pre}html[data-debug-view] .debug[data-name][data-type]:before{content:attr(data-name)}html[data-debug-view] .debug[data-name][data-type|=macro]:before{content:"<<" attr(data-name) ">>"}html[data-debug-view] .debug[data-name][data-type|=macro].nonvoid:after{content:"<</" attr(data-name) ">>"}html[data-debug-view] .debug[data-name][data-type|=html]:before{content:"<" attr(data-name) ">"}html[data-debug-view] .debug[data-name][data-type|=html].nonvoid:after{content:"</" attr(data-name) ">"}html[data-debug-view] .debug[data-name][data-type]:not(:empty):before{margin-right:.25em}html[data-debug-view] .debug[data-name][data-type].nonvoid:not(:empty):after{margin-left:.25em}html[data-debug-view] .debug[data-name][data-type|=special],html[data-debug-view] .debug[data-name][data-type|=special]:before{display:block}</style> </head> <body> <div id="init-screen"> @@ -109,48 +110,13 @@ var saveAs=saveAs||navigator.msSaveBlob&&navigator.msSaveBlob.bind(navigator)||f </div> <div id="store-area" data-size="STORY_SIZE" hidden>"STORY"</div> <script id="script-sugarcube" type="text/javascript"> - /*! SugarCube JS - - SugarCube includes code from TiddlyWiki 1.2.39, which has the following license: - -------------------------------------------------------------------------------- - TiddlyWiki 1.2.39 by Jeremy Ruston, (jeremy [at] osmosoft [dot] com) - - Published under a BSD open source license - - Copyright (c) Osmosoft Limited 2005 - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - - Neither the name of the Osmosoft Limited nor the names of its contributors may - be used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -------------------------------------------------------------------------------- - */ - if(document.documentElement.classList.contains("init-loading")){!function(window,document,jQuery,undefined){"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),_slicedToArray=function(){function e(e,t){var r=[],n=!0,a=!1,i=undefined;try{for(var o,s=e[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){a=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(a)throw i}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Alert=function(){function e(e,t,r,n){var a="fatal"===e,i="Apologies! "+(a?"A fatal":"An")+" error has occurred.";i+=a?" Aborting.":" You may be able to continue, but some parts may not work properly.",null==t&&null==r||(i+="\n\nError",null!=t&&(i+=" ["+t+"]"),i+=null!=r?": "+r.replace(/^(?:(?:uncaught\s+(?:exception:\s+)?)?error:\s+)+/i,"")+".":": unknown error."),n&&n.stack&&(i+="\n\nStack Trace:\n"+n.stack),window.alert(i)}function t(t,r,n){e(null,t,r,n)}function r(t,r,n){e("fatal",t,r,n)}return function(e){window.onerror=function(n,a,i,o,s){"complete"===document.readyState?t(null,n,s):(r(null,n,s),window.onerror=e,"function"==typeof window.onerror&&window.onerror.apply(this,arguments))}}(window.onerror),Object.freeze(Object.defineProperties({},{error:{value:t},fatal:{value:r}}))}();!function(){function e(e,t){var a=String(e);switch(t){case"start":return a&&r.test(a)?a.replace(r,""):a;case"end":return a&&n.test(a)?a.replace(n,""):a;default:throw new Error('_trimFrom called with incorrect where parameter value: "'+t+'"')}}function t(e,t){var r=Number.parseInt(e,10)||0;if(r<1)return"";var n="undefined"==typeof t?"":String(t);for(""===n&&(n=" ");n.length<r;){var a=n.length,i=r-a;n+=a>i?n.slice(0,i):n}return n.length>r&&(n=n.slice(0,r)),n}var r=/^[\s\u00A0\uFEFF][\s\u00A0\uFEFF]*/,n=/[\s\u00A0\uFEFF][\s\u00A0\uFEFF]*$/;Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includes called on null or undefined");if(0===arguments.length)return!1;var e=this.length>>>0;if(0===e)return!1;var t=arguments[0],r=Number(arguments[1])||0;for(r<0&&(r=Math.max(0,e+r));r<e;++r){var n=this[r];if(t===n||t!==t&&n!==n)return!0}return!1}}),String.prototype.padStart||Object.defineProperty(String.prototype,"padStart",{configurable:!0,writable:!0,value:function(e,r){if(null==this)throw new TypeError("String.prototype.padStart called on null or undefined");var n=String(this),a=n.length,i=Number.parseInt(e,10);return i<=a?n:t(i-a,r)+n}}),String.prototype.padEnd||Object.defineProperty(String.prototype,"padEnd",{configurable:!0,writable:!0,value:function(e,r){if(null==this)throw new TypeError("String.prototype.padEnd called on null or undefined");var n=String(this),a=n.length,i=Number.parseInt(e,10);return i<=a?n:n+t(i-a,r)}}),String.prototype.trimStart||Object.defineProperty(String.prototype,"trimStart",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimStart called on null or undefined");return e(this,"start")}}),String.prototype.trimLeft||Object.defineProperty(String.prototype,"trimLeft",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimLeft called on null or undefined");return e(this,"start")}}),String.prototype.trimEnd||Object.defineProperty(String.prototype,"trimEnd",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimEnd called on null or undefined");return e(this,"end")}}),String.prototype.trimRight||Object.defineProperty(String.prototype,"trimRight",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimRight called on null or undefined");return e(this,"end")}})}(),function(){function _random(){if(0===arguments.length)throw new Error("_random called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(_nativeMathRandom()*(t-e+1))+e}function _getCodePointStartAndEnd(e,t){var r=e.charCodeAt(t);if(Number.isNaN(r))return{char:"",start:-1,end:-1};if(r<55296||r>57343)return{char:e.charAt(t),start:t,end:t};if(r>=55296&&r<=56319){var n=t+1;if(n>=e.length)throw new Error("high surrogate without trailing low surrogate");var a=e.charCodeAt(n);if(a<56320||a>57343)throw new Error("high surrogate without trailing low surrogate");return{char:e.charAt(t)+e.charAt(n),start:t,end:n}}if(0===t)throw new Error("low surrogate without leading high surrogate");var i=t-1,o=e.charCodeAt(i);if(o<55296||o>56319)throw new Error("low surrogate without leading high surrogate");return{char:e.charAt(i)+e.charAt(t),start:i,end:t}}var _nativeMathRandom=Math.random;Object.defineProperty(Array,"random",{configurable:!0,writable:!0,value:function(e,t,r){var n=t,a=r;return 2===arguments.length&&(a=n,n=0),Array.isArray(e)?e.random(n,a):e.hasOwnProperty("length")?[].concat(_toConsumableArray(e)).random(n,a):void 0}}),Object.defineProperty(Array.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.count called on null or undefined");for(var e=Array.prototype.indexOf,t=arguments[0],r=Number(arguments[1])||0,n=0;(r=e.call(this,t,r))!==-1;)++n,++r;return n}}),Object.defineProperty(Array.prototype,"delete",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.delete called on null or undefined");if(0===arguments.length)return[];var e=this.length>>>0;if(0===e)return[];for(var t=Array.prototype.indexOf,r=Array.prototype.push,n=Array.prototype.splice,a=Array.prototype.concat.apply([],arguments),i=[],o=0,s=a.length;o<s;++o)for(var u=a[o],l=0;(l=t.call(this,u,l))!==-1;)r.apply(i,n.call(this,l,1));return i}}),Object.defineProperty(Array.prototype,"deleteAt",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.deleteAt called on null or undefined");if(0===arguments.length)return[];var e=this.length>>>0;if(0===e)return[];for(var t=Array.prototype.splice,r=[].concat(_toConsumableArray(new Set(Array.prototype.concat.apply([],arguments).map(function(t){return t<0?Math.max(0,e+t):t})).values())),n=[].concat(_toConsumableArray(r)).sort(function(e,t){return t-e}),a=[],i=0,o=r.length;i<o;++i)a[i]=this[r[i]];for(var s=0,u=n.length;s<u;++s)t.call(this,n[s],1);return a}}),Object.defineProperty(Array.prototype,"flatten",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.flatten called on null or undefined");return Array.prototype.reduce.call(this,function(e,t){return e.concat(Array.isArray(t)?t.flatten():t)},[])}}),Object.defineProperty(Array.prototype,"includesAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAll called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAll.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(!Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!1;return!0}}),Object.defineProperty(Array.prototype,"includesAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAny called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAny.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!0;return!1}}),Object.defineProperty(Array.prototype,"pluck",{configurable:!0,writable:!0,value:function(e,t){if(null==this)throw new TypeError("Array.prototype.pluck called on null or undefined");var r=this.length>>>0;if(0!==r){var n=e,a=t;return 1===arguments.length&&(a=n,n=0),null==n?n=0:n<0?(n=r+n,n<0&&(n=0)):n>=r&&(n=r-1),null==a?a=r-1:a<0?(a=r+a,a<0&&(a=r-1)):a>=r&&(a=r-1),Array.prototype.splice.call(this,_random(n,a),1)[0]}}}),Object.defineProperty(Array.prototype,"random",{configurable:!0,writable:!0,value:function(e,t){if(null==this)throw new TypeError("Array.prototype.random called on null or undefined");var r=this.length>>>0;if(0!==r){var n=e,a=t;return 1===arguments.length&&(a=n,n=0),null==n?n=0:n<0?(n=r+n,n<0&&(n=0)):n>=r&&(n=r-1),null==a?a=r-1:a<0?(a=r+a,a<0&&(a=r-1)):a>=r&&(a=r-1),this[_random(n,a)]}}}),Object.defineProperty(Array.prototype,"shuffle",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.shuffle called on null or undefined");var e=this.length>>>0;if(0!==e){for(var t=e-1;t>0;--t){var r=Math.floor(_nativeMathRandom()*(t+1)),n=[this[r],this[t]];this[t]=n[0],this[r]=n[1]}return this}}}),Object.defineProperty(Function.prototype,"partial",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Function.prototype.partial called on null or undefined");var e=Array.prototype.slice,t=this,r=e.call(arguments,0);return function(){for(var n=[],a=0,i=0;i<r.length;++i)n.push(r[i]===undefined?arguments[a++]:r[i]);return t.apply(this,n.concat(e.call(arguments,a)))}}}),Object.defineProperty(Math,"clamp",{configurable:!0,writable:!0,value:function e(t,r,n){var e=Number(t);return Number.isNaN(e)?NaN:e.clamp(r,n)}}),Object.defineProperty(Math,"easeInOut",{configurable:!0,writable:!0,value:function(e){return 1-(Math.cos(Number(e)*Math.PI)+1)/2}}),Object.defineProperty(Number.prototype,"clamp",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Number.prototype.clamp called on null or undefined");if(2!==arguments.length)throw new Error("Number.prototype.clamp called with an incorrect number of parameters");var e=Number(arguments[0]),t=Number(arguments[1]);if(e>t){var r=[t,e];e=r[0],t=r[1]}return Math.min(Math.max(this,e),t)}}),RegExp.escape||!function(){var e=/[\\^$*+?.()|[\]{}]/g,t=new RegExp(e.source);Object.defineProperty(RegExp,"escape",{configurable:!0,writable:!0,value:function(r){var n=String(r);return n&&t.test(n)?n.replace(e,"\\$&"):n}})}(),function(){var e=/{(\d+)(?:,([+-]?\d+))?}/g,t=new RegExp(e.source);Object.defineProperty(String,"format",{configurable:!0,writable:!0,value:function(r){function n(e,t,r){if(!t)return e;var n=Math.abs(t)-e.length;if(n<1)return e;var a=String(r).repeat(n);return t<0?e+a:a+e}if(arguments.length<2)return 0===arguments.length?"":r;var a=2===arguments.length&&Array.isArray(arguments[1])?[].concat(_toConsumableArray(arguments[1])):Array.prototype.slice.call(arguments,1);return 0===a.length?r:t.test(r)?(e.lastIndex=0,r.replace(e,function(e,t,r){var i=a[t];if(null==i)return"";for(;"function"==typeof i;)i=i();switch("undefined"==typeof i?"undefined":_typeof(i)){case"string":break;case"object":i=JSON.stringify(i);break;default:i=String(i)}return n(i,r?Number.parseInt(r,10):0," ")})):r}})}(),Object.defineProperty(String.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.contains called on null or undefined");return String.prototype.indexOf.apply(this,arguments)!==-1}}),Object.defineProperty(String.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.count called on null or undefined");var e=String(arguments[0]||"");if(""===e)return 0;for(var t=String.prototype.indexOf,r=e.length,n=Number(arguments[1])||0,a=0;(n=t.call(this,e,n))!==-1;)++a,n+=r;return a}}),Object.defineProperty(String.prototype,"splice",{configurable:!0,writable:!0,value:function(e,t,r){if(null==this)throw new TypeError("String.prototype.splice called on null or undefined");var n=this.length>>>0;if(0===n)return"";var a=Number(e);Number.isSafeInteger(a)?a<0&&(a+=n,a<0&&(a=0)):a=0,a>n&&(a=n);var i=Number(t);(!Number.isSafeInteger(i)||i<0)&&(i=0);var o=this.slice(0,a);return"undefined"!=typeof r&&(o+=r),a+i<n&&(o+=this.slice(a+i)),o}}),Object.defineProperty(String.prototype,"splitOrEmpty",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.splitOrEmpty called on null or undefined");return""===String(this)?[]:String.prototype.split.apply(this,arguments)}}),Object.defineProperty(String.prototype,"toLocaleUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toLocaleUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,n=t.end;return n===-1?"":r.toLocaleUpperCase()+e.slice(n+1)}}),Object.defineProperty(String.prototype,"toUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,n=t.end;return n===-1?"":r.toUpperCase()+e.slice(n+1)}}),Object.defineProperty(Date.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:date)",this.toISOString()]}}),Object.defineProperty(Function.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)","("+this.toString()+")"]}}),Object.defineProperty(Map.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:map)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(RegExp.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)",this.toString()]}}),Object.defineProperty(Set.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:set)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(JSON,"reviveWrapper",{configurable:!0,writable:!0,value:function(e,t){if("string"!=typeof e)throw new TypeError("JSON.reviveWrapper code parameter must be a string");return["(revive:eval)",[e,t]]}}),Object.defineProperty(JSON,"_real_parse",{value:JSON.parse}),Object.defineProperty(JSON,"parse",{configurable:!0,writable:!0,value:function value(text,reviver){return JSON._real_parse(text,function(key,val){var value=val;if(Array.isArray(value)&&2===value.length)switch(value[0]){case"(revive:set)":value=new Set(value[1]);break;case"(revive:map)":value=new Map(value[1]);break;case"(revive:date)":value=new Date(value[1]);break;case"(revive:eval)":try{if(Array.isArray(value[1])){var $ReviveData$=value[1][1];value=eval(value[1][0])}else value=eval(value[1])}catch(e){}}else if("string"==typeof value&&"@@revive@@"===value.slice(0,10))try{value=eval(value.slice(10))}catch(e){}if("function"==typeof reviver)try{value=reviver(key,value)}catch(e){}return value})}}),Object.defineProperty(Array.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.contains called on null or undefined");return Array.prototype.includes.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAll called on null or undefined");return Array.prototype.includesAll.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAny called on null or undefined");return Array.prototype.includesAny.apply(this,arguments)}}),Object.defineProperty(String.prototype,"readBracketedList",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.readBracketedList called on null or undefined");for(var e=new RegExp("(?:\\[\\[((?:\\s|\\S)*?)\\]\\])|([^\"'\\s]\\S*)","gm"),t=[],r=void 0;null!==(r=e.exec(this));)r[1]?t.push(r[1]):r[2]&&t.push(r[2]);return t}})}();var Browser=function(){var e={userAgent:navigator.userAgent.toLowerCase()};return e.isGecko=navigator&&"Gecko"===navigator.product&&!/webkit|trident/.test(e.userAgent),e.isIE=/msie|trident/.test(e.userAgent)&&!e.userAgent.includes("opera"),e.ieVersion=function(){var t=/(?:msie\s+|rv:)(\d{1,2}\.\d)/.exec(e.userAgent);return t?Number([1]):0}(),e.isOpera=e.userAgent.includes("opera")||e.userAgent.includes(" opr/"),e.operaVersion=function(){var t=new RegExp((/applewebkit|chrome/.test(e.userAgent)?"opr":"version")+"\\/(\\d{1,2}\\.\\d+)"),r=t.exec(e.userAgent);return r?Number(r[1]):0}(),e.isMobile=Object.freeze({Android:/android/.test(e.userAgent),BlackBerry:/blackberry/.test(e.userAgent),iOS:/ip(?:hone|ad|od)/.test(e.userAgent),Windows:/iemobile/.test(e.userAgent),any:function(){var t=e.isMobile;return t.Android||t.BlackBerry||t.iOS||t.Windows}}),Object.freeze(e)}(),Has=function(){function e(e){try{if(null!=e&&e.length>=0){var t="SugarCube.WebStorage.Test",r="1701 Guilty Scott";if(e.setItem(t,r),e.getItem(t)===r)return e.removeItem(t),!0}}catch(e){}return!1}return Object.freeze({audio:"function"==typeof document.createElement("audio").canPlayType,fileAPI:"File"in window&&"FileList"in window&&"FileReader"in window&&!Browser.isMobile.any()&&(!Browser.isOpera||Browser.operaVersion>=15),geolocation:"geolocation"in navigator&&"function"==typeof navigator.geolocation.getCurrentPosition&&"function"==typeof navigator.geolocation.watchPosition,localStorage:"localStorage"in window&&e(window.localStorage),sessionStorage:"sessionStorage"in window&&e(window.sessionStorage)})}(),_ref4=function(){function e(t){if("object"!==("undefined"==typeof t?"undefined":_typeof(t))||null==t)return t;if("function"==typeof t.clone)return t.clone(!0);if(t.nodeType&&"function"==typeof t.cloneNode)return t.cloneNode(!0);var r=void 0;return Array.isArray(t)?r=[]:t instanceof Date?r=new Date(t.getTime()):t instanceof Map?(r=new Map,t.forEach(function(t,n){r.set(n,e(t))})):t instanceof RegExp?r=new RegExp(t):t instanceof Set?(r=new Set,t.forEach(function(t){r.add(e(t))})):r=Object.create(Object.getPrototypeOf(t)),Object.keys(t).forEach(function(n){return r[n]=e(t[n])}),r}function t(e){for(var t=document.createDocumentFragment(),r=document.createElement("p"),n=void 0;null!==(n=e.firstChild);){if(n.nodeType===Node.ELEMENT_NODE){var a=n.nodeName.toUpperCase();switch(a){case"BR":if(null!==n.nextSibling&&n.nextSibling.nodeType===Node.ELEMENT_NODE&&"BR"===n.nextSibling.nodeName.toUpperCase()){e.removeChild(n.nextSibling),e.removeChild(n),t.appendChild(r),r=document.createElement("p");continue}if(!r.hasChildNodes()){e.removeChild(n);continue}break;case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":r.hasChildNodes()&&(t.appendChild(r),r=document.createElement("p")),t.appendChild(n);continue}}r.appendChild(n)}r.hasChildNodes()&&t.appendChild(r),e.appendChild(t)}function r(){try{return document.activeElement||null}catch(e){return null}}function n(e,t,r){var n="object"===("undefined"==typeof e?"undefined":_typeof(e))?e:document.getElementById(e);if(null==n)return null;var a=Array.isArray(t)?t:[t];jQuery(n).empty();for(var i=0,o=a.length;i<o;++i)if(Story.has(a[i]))return new Wikifier(n,Story.get(a[i]).processText().trim()),n;if(null!=r){var s=String(r).trim();""!==s&&new Wikifier(n,s)}return n}function a(e,t,r){return jQuery(document.createElement("span")).addClass("error").attr("title",r).text(L10n.get("errorTitle")+": "+(t||"unknown error")).appendTo(e),!1}function i(e,t){switch("undefined"==typeof e?"undefined":_typeof(e)){case"number":if(Number.isNaN(e))return t;break;case"object":if(null===e)return t;if(Array.isArray(e)||e instanceof Set)return[].concat(_toConsumableArray(e)).map(function(e){return i(e,t)}).join(", ");if(e instanceof Map){var r=function(){var r=i,n=[].concat(_toConsumableArray(e)).map(function(e){return r(e[0],t)+" ⇒ "+r(e[1],t)}).join("; ");return{v:"( "+n+" )"}}();if("object"===("undefined"==typeof r?"undefined":_typeof(r)))return r.v}else{if(e instanceof Date)return e.toLocaleString();if("function"==typeof e.toString)return e.toString()}return Object.prototype.toString.call(e);case"function":case"undefined":return t}return String(e)}return Object.freeze(Object.defineProperties({},{clone:{value:e},convertBreaks:{value:t},safeActiveElement:{value:r},setPageElement:{value:n},throwError:{value:a},toStringOrDefault:{value:i}}))}(),clone=_ref4.clone,convertBreaks=_ref4.convertBreaks,safeActiveElement=_ref4.safeActiveElement,setPageElement=_ref4.setPageElement,throwError=_ref4.throwError,toStringOrDefault=_ref4.toStringOrDefault;!function(){function e(e){13!==e.which&&32!==e.which||(e.preventDefault(),jQuery(safeActiveElement()||this).trigger("click"))}function t(e){return function(){var t=jQuery(this);t.is("[aria-pressed]")&&t.attr("aria-pressed","true"===t.attr("aria-pressed")?"false":"true"),e.apply(this,arguments)}}function r(e){return t(function(){jQuery(this).off(".aria-clickable").removeAttr("tabindex aria-controls aria-pressed").not("a,button").removeAttr("role").end().filter("button").prop("disabled",!0),e.apply(this,arguments)})}jQuery.fn.extend({ariaClick:function(n,a){if(0===this.length||0===arguments.length)return this;var i=n,o=a;return null==o&&(o=i,i=undefined),i=jQuery.extend({namespace:undefined,one:!1,selector:undefined,data:undefined,controls:undefined,pressed:undefined,label:undefined},i),"string"!=typeof i.namespace?i.namespace="":"."!==i.namespace[0]&&(i.namespace="."+i.namespace),"boolean"==typeof i.pressed&&(i.pressed=i.pressed?"true":"false"),this.filter("button").prop("type","button"),this.not("a,button").attr("role","button"),this.attr("tabindex",0),null!=i.controls&&this.attr("aria-controls",i.controls),null!=i.pressed&&this.attr("aria-pressed",i.pressed),null!=i.label&&this.attr({"aria-label":i.label,title:i.label}),this.not("button").on("keypress.aria-clickable"+i.namespace,i.selector,e),this.on("click.aria-clickable"+i.namespace,i.selector,i.data,i.one?r(o):t(o)),this}})}(),function(){jQuery.fn.extend({wikiWithOptions:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if(0===this.length||0===r.length)return this;var a=document.createDocumentFragment();return r.forEach(function(t){return new Wikifier(a,t,e)}),this.append(a),this},wiki:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return this.wikiWithOptions.apply(this,[undefined].concat(t))}})}();var Util=function(){function e(e){return Object.freeze(Object.assign(Object.create(null),e))}function t(e){var t=void 0;switch("undefined"==typeof e?"undefined":_typeof(e)){case"number":t=e;break;case"string":t=Number(e);break;default:return!1}return!Number.isNaN(t)&&Number.isFinite(t)}function r(e){return"boolean"==typeof e||"string"==typeof e&&("true"===e||"false"===e)}function n(e){return String(e).trim().replace(/[^\w\s\u2013\u2014-]+/g,"").replace(/[_\s\u2013\u2014-]+/g,"-").toLocaleLowerCase()}function a(e){if(null==e)return"";var t=String(e);return t&&f.test(t)?t.replace(p,function(e){return h[e]}):t}function i(e){if(null==e)return"";var t=String(e);return t&&m.test(t)?t.replace(g,function(e){return v[e]}):t}function o(e){var t=/^([+-]?(?:\d*\.)?\d+)([Mm]?[Ss])$/,r=t.exec(String(e));if(null===r)throw new SyntaxError('invalid time value syntax: "'+e+'"');var n=Number(r[1]);if(/^[Ss]$/.test(r[2])&&(n*=1e3),Number.isNaN(n)||!Number.isFinite(n))throw new RangeError('invalid time value: "'+e+'"');return n}function s(e){if("number"!=typeof e||Number.isNaN(e)||!Number.isFinite(e)){var t=void 0;switch("undefined"==typeof e?"undefined":_typeof(e)){case"string":t='"'+e+'"';break;case"number":t=String(e);break;default:t=Object.prototype.toString.call(e)}throw new Error("invalid milliseconds: "+t)}return e+"ms"}function u(e){if(!e.includes("-"))switch(e){case"bgcolor":return"backgroundColor";case"float":return"cssFloat";default:return e}var t="-ms-"===e.slice(0,4)?e.slice(1):e;return t.split("-").map(function(e,t){return 0===t?e:e.toUpperFirst()}).join("")}function l(e){var t=document.createElement("a"),r=Object.create(null);t.href=e,t.search&&t.search.replace(/^\?/,"").splitOrEmpty(/(?:&(?:amp;)?|;)/).forEach(function(e){var t=e.split("="),n=_slicedToArray(t,2),a=n[0],i=n[1];r[a]=i});var n=t.host&&"/"!==t.pathname[0]?"/"+t.pathname:t.pathname;return{href:t.href,protocol:t.protocol,host:t.host,hostname:t.hostname,port:t.port,path:""+n+t.search,pathname:n,query:t.search,search:t.search,queries:r,searches:r,hash:t.hash}}function c(e,t){for(var r=Object.prototype.toString,n=Array.isArray(e),a=[].concat(Object.keys(e),Object.keys(t)).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}),i={},o=void 0,s=function(e){return e===o},u=0,l=a.length;u<l;++u){var c=a[u],d=e[c],p=t[c];if(e.hasOwnProperty(c))if(t.hasOwnProperty(c)){if(d===p)continue;if(("undefined"==typeof d?"undefined":_typeof(d))===("undefined"==typeof p?"undefined":_typeof(p)))if("function"==typeof d)d.toString()!==p.toString()&&(i[c]=[y.Copy,p]);else if("object"!==("undefined"==typeof d?"undefined":_typeof(d))||null===d)i[c]=[y.Copy,p];else{var f=r.call(d),h=r.call(p);if(f===h)if("[object Date]"===f){var g=Number(p);Number(d)!==g&&(i[c]=[y.CopyDate,g])}else if("[object RegExp]"===f)d.toString()!==p.toString()&&(i[c]=[y.Copy,clone(p)]);else{var m=Util.diff(d,p);null!==m&&(i[c]=m)}else i[c]=[y.Copy,clone(p)]}else i[c]=[y.Copy,"object"!==("undefined"==typeof p?"undefined":_typeof(p))||null===p?p:clone(p)]}else if(n&&Util.isNumeric(c)){var v=Number(c);if(!o){o="";do o+="~";while(a.some(s));i[o]=[y.SpliceArray,v,v]}v<i[o][1]&&(i[o][1]=v),v>i[o][2]&&(i[o][2]=v)}else i[c]=y.Delete;else i[c]=[y.Copy,"object"!==("undefined"==typeof p?"undefined":_typeof(p))||null===p?p:clone(p)]}return Object.keys(i).length>0?i:null}function d(e,t){for(var r=Object.keys(t||{}),n=clone(e),a=0,i=r.length;a<i;++a){var o=r[a],s=t[o];if(s===y.Delete)delete n[o];else if(Array.isArray(s))switch(s[0]){case y.SpliceArray:n.splice(s[1],1+(s[2]-s[1]));break;case y.Copy:n[o]=clone(s[1]);break;case y.CopyDate:n[o]=new Date(s[1])}else n[o]=Util.patch(n[o],s)}return n}var p=/[&<>"'`]/g,f=new RegExp(p.source),h=Object.freeze({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"}),g=/&(?:amp|lt|gt|quot|apos|#39|#x27|#96|#x60);/g,m=new RegExp(g.source),v=Object.freeze({"&":"&","<":"<",">":">",""":'"',"'":"'","'":"'","'":"'","`":"`","`":"`"}),y=e({Delete:0,SpliceArray:1,Copy:2,CopyDate:3});return Object.freeze(Object.defineProperties({},{toEnum:{value:e},isNumeric:{value:t},isBoolean:{value:r},slugify:{value:n},escape:{value:a},unescape:{value:i},fromCssTime:{value:o},toCssTime:{value:s},fromCssProperty:{value:u},parseUrl:{value:l},DiffOp:{value:y},diff:{value:c},patch:{value:d},random:{value:Math.random},entityEncode:{value:a},entityDecode:{value:i},evalExpression:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),SimpleAudio=function(){function e(){return g}function t(e){g=!!e,l("mute",g)}function r(){return f}function n(e){f=Math.clamp(e,.2,5),l("rate",f)}function a(){return h}function i(e){h=Math.clamp(e,0,1),l("volume",h)}function o(){l("stop")}function s(e,t){if("function"!=typeof t)throw new Error("callback parameter must be a function");p.set(e,t)}function u(e){p.delete(e)}function l(e,t){p.forEach(function(r){return r(e,t)})}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(m,[null].concat(t)))}function d(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(v,[null].concat(t)))}var p=new Map,f=1,h=1,g=!1,m=function(){function e(t){if(_classCallCheck(this,e),Array.isArray(t))this._create(t);else{if(!(t instanceof e))throw new Error("sources parameter must be an array of either URLs or source objects");this._copy(t)}}return _createClass(e,[{key:"_create",value:function(t){if(!Array.isArray(t)||0===t.length)throw new Error("sources parameter must be an array of either URLs or source objects");var r=/^data:\s*audio\/([^;,]+)\s*[;,]/i,n=/\.([^.\/\\]+)$/,a=e.getType,i=[],o=document.createElement("audio");if(t.forEach(function(e){var t=null;switch("undefined"==typeof e?"undefined":_typeof(e)){case"string":var s=void 0;if("data:"===e.slice(0,5)){if(s=r.exec(e),null===s)throw new Error("source data URI missing media type")}else if(s=n.exec(Util.parseUrl(e).pathname),null===s)throw new Error("source URL missing file extension");var u=a(s[1]);null!==u&&(t={src:e,type:u});break;case"object":if(null===e)throw new Error("source object cannot be null");if(!e.hasOwnProperty("src"))throw new Error('source object missing required "src" property');if(!e.hasOwnProperty("format"))throw new Error('source object missing required "format" property');var l=a(e.format);null!==l&&(t={src:e.src,type:l});break;default:throw new Error("invalid source value (type: "+("undefined"==typeof e?"undefined":_typeof(e))+")")}if(null!==t){var c=document.createElement("source");c.src=t.src,c.type=t.type,o.appendChild(c),i.push(t)}}),!o.hasChildNodes())if(Browser.isIE)o.src=undefined;else{var s=document.createElement("source");s.src=undefined,s.type=undefined,o.appendChild(s)}this._finalize(o,i,clone(t))}},{key:"_copy",value:function(t){if(!(t instanceof e))throw new Error("original parameter must be an instance of AudioWrapper");this._finalize(t.audio.cloneNode(!0),clone(t.sources),clone(t.originalSources))}},{key:"_finalize",value:function(e,t,r){var n=this;Object.defineProperties(this,{audio:{configurable:!0,value:e},sources:{configurable:!0,value:Object.freeze(t)},originalSources:{configurable:!0,value:Object.freeze(r)},_error:{writable:!0,value:!1},_faderId:{writable:!0,value:null},_mute:{writable:!0,value:!1},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1}}),jQuery(this.audio).on("loadstart",function(){return n._error=!1}).on("error",function(){return n._error=!0}).find("source:last-of-type").on("error",function(){return n._trigger("error")}),SimpleAudio.subscribe(this,function(e){if(!n.audio)return void SimpleAudio.unsubscribe(n);switch(e){case"mute":n._updateAudioMute();break;case"rate":n._updateAudioRate();break;case"stop":n.stop();break;case"volume":n._updateAudioVolume()}}),this.load()}},{key:"_trigger",value:function(e){jQuery(this.audio).triggerHandler(e)}},{key:"clone",value:function(){return new e(this)}},{key:"destroy",value:function(){SimpleAudio.unsubscribe(this),this.fadeStop(),this.stop();var e=this.audio;for(jQuery(e).off();e.hasChildNodes();)e.removeChild(e.firstChild);e.load(),this._error=!0,delete this.audio,delete this.sources,delete this.originalSources}},{key:"_updateAudioMute",value:function(){this.audio.muted=this._mute||SimpleAudio.mute}},{key:"_updateAudioRate",value:function(){this.audio.playbackRate=this._rate*SimpleAudio.rate}},{key:"_updateAudioVolume",value:function(){this.audio.volume=this._volume*SimpleAudio.volume}},{key:"hasSource",value:function(){return this.sources.length>0}},{key:"hasNoData",value:function(){return this.audio.readyState===HTMLMediaElement.HAVE_NOTHING; -}},{key:"hasMetadata",value:function(){return this.audio.readyState>=HTMLMediaElement.HAVE_METADATA}},{key:"hasSomeData",value:function(){return this.audio.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA}},{key:"hasData",value:function(){return this.audio.readyState===HTMLMediaElement.HAVE_ENOUGH_DATA}},{key:"isFailed",value:function(){return this._error}},{key:"isLoading",value:function(){return this.audio.networkState===HTMLMediaElement.NETWORK_LOADING}},{key:"isPlaying",value:function(){return!(this.audio.ended||this.audio.paused||!this.hasSomeData())}},{key:"isPaused",value:function(){return this.audio.paused&&(this.audio.duration===1/0||this.audio.currentTime>0)&&!this.audio.ended}},{key:"isEnded",value:function(){return this.audio.ended}},{key:"isFading",value:function(){return null!==this._faderId}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return this.audio.loop}},{key:"load",value:function(){"auto"!==this.audio.preload&&(this.audio.preload="auto"),this.isLoading()||this.audio.load()}},{key:"play",value:function(){this.audio.play()}},{key:"pause",value:function(){this.audio.pause()}},{key:"stop",value:function(){this.audio.pause(),this.time=0,this._trigger("aw:stop")}},{key:"fadeWithDuration",value:function(e,t,r){var n=this;this.fadeStop();var a=Math.clamp(null==r?this.volume:r,0,1),i=Math.clamp(t,0,1);a!==i&&(this.volume=a,jQuery(this.audio).off("timeupdate.AudioWrapper:fadeWithDuration").one("timeupdate.AudioWrapper:fadeWithDuration",function(){var t=void 0,r=void 0;a<i?(t=a,r=i):(t=i,r=a);var o=Number(e);o<1&&(o=1);var s=25,u=(i-a)/(o/(s/1e3));n._faderId=setInterval(function(){return n.isPlaying()?(n.volume=Math.clamp(n.volume+u,t,r),0===n.volume&&n.pause(),void(n.volume===i&&(n.fadeStop(),n._trigger("aw:fade")))):void n.fadeStop()},s)}),this.play())}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"fadeStop",value:function(){null!==this._faderId&&(clearInterval(this._faderId),this._faderId=null)}},{key:"on",value:function(t,r){if("function"!=typeof r)throw new Error("listener parameter must be a function");var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).on(a,r),this}},{key:"one",value:function(t,r){if("function"!=typeof r)throw new Error("listener parameter must be a function");var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).one(a,r),this}},{key:"off",value:function(t,r){if(r&&"function"!=typeof r)throw new Error("listener parameter must be a function");if(!t)return jQuery(this.audio).off(".AudioWrapperEvent",r);var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(t){if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}return e+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).off(a,r),this}},{key:"duration",get:function(){return this.audio.duration}},{key:"ended",get:function(){return this.audio.ended}},{key:"loop",get:function(){return this.audio.loop},set:function(e){this.audio.loop=!!e}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,this._updateAudioMute()}},{key:"paused",get:function(){return this.audio.paused}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),this._updateAudioRate()}},{key:"remaining",get:function(){return this.audio.duration-this.audio.currentTime}},{key:"time",get:function(){return this.audio.currentTime},set:function(e){var t=this;try{this.audio.currentTime=e}catch(r){jQuery(this.audio).off("loadedmetadata.AudioWrapper:time").one("loadedmetadata.AudioWrapper:time",function(){return t.audio.currentTime=e})}}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),this._updateAudioVolume()}}],[{key:"_verifyType",value:function(t){if(!t||!Has.audio)return null;var r=e._types;if(!r.hasOwnProperty(t)){var n=document.createElement("audio");r[t]=""!==n.canPlayType(t).replace(/^no$/i,"")}return r[t]?t:null}},{key:"getType",value:function(t){if(!t||!Has.audio)return null;var r=e.formats,n=t.toLowerCase(),a=r.hasOwnProperty(n)?r[n]:"audio/"+n;return e._verifyType(a)}},{key:"canPlayFormat",value:function(t){return null!==e.getType(t)}},{key:"canPlayType",value:function(t){return null!==e._verifyType(t)}}]),e}();Object.defineProperties(m,{formats:{value:{aac:"audio/aac",caf:"audio/x-caf","x-caf":"audio/x-caf",mp3:'audio/mpeg; codecs="mp3"',mpeg:'audio/mpeg; codecs="mp3"',m4a:"audio/mp4",mp4:"audio/mp4","x-m4a":"audio/mp4","x-mp4":"audio/mp4",oga:"audio/ogg",ogg:"audio/ogg",opus:'audio/ogg; codecs="opus"',wav:"audio/wav",wave:"audio/wav",weba:"audio/webm",webm:"audio/webm"}},_types:{value:{}},_events:{value:Object.freeze({canplay:"canplaythrough",end:"ended",error:"error",fade:"aw:fade",pause:"pause",play:"playing",rate:"ratechange",seek:"seeked",stop:"aw:stop",volume:"volumechange"})}});var v=function(){function e(t){var r=this;_classCallCheck(this,e),Object.defineProperties(this,{tracks:{configurable:!0,value:[]},queue:{configurable:!0,value:[]},current:{writable:!0,value:null},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1},_mute:{writable:!0,value:!1},_loop:{writable:!0,value:!1},_shuffle:{writable:!0,value:!1}}),Array.isArray(t)?t.forEach(function(e){return r.add(e)}):t instanceof e&&t.tracks.forEach(function(e){return r.add(e)})}return _createClass(e,[{key:"add",value:function(e){var t=this;if(null==e||"object"!==("undefined"==typeof e?"undefined":_typeof(e)))throw new Error("track parameter must be an object");var r=void 0,n=void 0,a=void 0,i=void 0;if(e instanceof m)r=!0,n=e.clone(),a=e.volume,i=e.rate;else{if(!e.hasOwnProperty("track"))throw new Error('track object missing required "track" property');if(!(e.track instanceof m))throw new Error('track object\'s "track" property must be an AudioWrapper object');r=e.hasOwnProperty("copy")&&e.copy,n=r?e.track.clone():e.track,a=e.hasOwnProperty("volume")?e.volume:e.track.volume,i=e.hasOwnProperty("rate")?e.rate:e.track.rate}n.stop(),n.loop=!1,n.mute=!1,n.volume=a,n.rate=i,n.on("end.AudioListEvent",function(){return t._onEnd()}),this.tracks.push({copy:r,track:n,volume:a,rate:i})}},{key:"destroy",value:function(){this.stop(),this.tracks.filter(function(e){return e.copy}).forEach(function(e){return e.track.destroy()}),delete this.tracks,delete this.queue}},{key:"isPlaying",value:function(){return null!==this.current&&this.current.track.isPlaying()}},{key:"isEnded",value:function(){return 0===this.queue.length&&(null===this.current||this.current.track.isEnded())}},{key:"isPaused",value:function(){return null===this.current||this.current.track.isPaused()}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return this._loop}},{key:"isShuffled",value:function(){return this._shuffle}},{key:"play",value:function(){(null!==this.current&&!this.current.track.isEnded()||(0===this.queue.length&&this._buildList(),this._next()))&&this.current.track.play()}},{key:"pause",value:function(){null!==this.current&&this.current.track.pause()}},{key:"stop",value:function(){null!==this.current&&(this.current.track.stop(),this.current=null),this.queue.splice(0)}},{key:"skip",value:function(){this._next()?this.current.track.play():this._loop&&this.play()}},{key:"fadeWithDuration",value:function(e,t,r){if(0===this.queue.length&&this._buildList(),null!==this.current&&!this.current.track.isEnded()||this._next()){var n=Math.clamp(t,0,1)*this.current.volume,a=void 0;null!=r&&(a=Math.clamp(r,0,1)*this.current.volume),this.current.track.fadeWithDuration(e,n,a),this._volume=t}}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"_next",value:function(){return null!==this.current&&this.current.track.stop(),0===this.queue.length?(this.current=null,!1):(this.current=this.queue.shift(),!this.current.track.hasSource()||this.current.track.isFailed()?this._next():(this.current.track.mute=this._mute,this.current.track.rate=this.rate*this.current.rate,this.current.track.volume=this.volume*this.current.volume,!0))}},{key:"_onEnd",value:function(){if(0===this.queue.length){if(!this._loop)return;this._buildList()}this._next()&&this.current.track.play()}},{key:"_buildList",value:function(){var e;this.queue.splice(0),(e=this.queue).push.apply(e,_toConsumableArray(this.tracks)),0!==this.queue.length&&this._shuffle&&(this.queue.shuffle(),this.queue.length>1&&this.queue[0]===this.current&&this.queue.push(this.queue.shift()))}},{key:"duration",get:function(){return this.tracks.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0)}},{key:"loop",get:function(){return this._loop},set:function(e){this._loop=!!e}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,null!==this.current&&(this.current.track.mute=this._mute)}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),null!==this.current&&(this.current.track.rate=this.rate*this.current.rate)}},{key:"remaining",get:function(){var e=this.queue.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0);return null!==this.current&&(e+=this.current.track.remaining),e}},{key:"shuffle",get:function(){return this._shuffle},set:function(e){this._shuffle=!!e}},{key:"time",get:function(){return this.duration-this.remaining}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),null!==this.current&&(this.current.track.volume=this.volume*this.current.volume)}}]),e}();return Object.freeze(Object.defineProperties({},{mute:{get:e,set:t},rate:{get:r,set:n},volume:{get:a,set:i},stop:{value:o},subscribe:{value:s},unsubscribe:{value:u},publish:{value:l},create:{value:c},createList:{value:d}}))}(),SimpleStore=function(){function e(e,n){if(r)return r.create(e,n);for(var a=0;a<t.length;++a)if(t[a].init(e,n))return r=t[a],r.create(e,n);throw new Error("no valid adapters found")}var t=[],r=null;return Object.freeze(Object.defineProperties({},{adapters:{value:t},create:{value:e}}))}();SimpleStore.adapters.push(function(){function e(){return r=Has.localStorage&&Has.sessionStorage}function t(e,t){if(!r)throw new Error("adapter not initialized");return new n(e,t)}var r=!1,n=function(){function e(t,r){_classCallCheck(this,e);var n=t+".",a=null,i=null;r?(a=window.localStorage,i="localStorage"):(a=window.sessionStorage,i="sessionStorage"),Object.defineProperties(this,{_engine:{value:a},_prefix:{value:n},_prefixRe:{value:new RegExp("^"+RegExp.escape(n))},name:{value:i},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function e(){for(var e=[],t=0;t<this._engine.length;++t){var r=this._engine.key(t);this._prefixRe.test(r)&&e.push(r.replace(this._prefixRe,""))}return e}},{key:"has",value:function(e){return!("string"!=typeof e||!e)&&this._engine.hasOwnProperty(this._prefix+e)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=this._engine.getItem(this._prefix+t);return null==r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{this._engine.setItem(this._prefix+t,e._serialize(r))}catch(e){throw/quota_?(?:exceeded|reached)/i.test(e.name)&&(e.message=this.name+" quota exceeded"),e}return!0}},{key:"delete",value:function(e){return!("string"!=typeof e||!e)&&(this._engine.removeItem(this._prefix+e),!0)}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_serialize",value:function(e){return LZString.compressToUTF16(JSON.stringify(e))}},{key:"_deserialize",value:function(e){return JSON.parse(LZString.decompressFromUTF16(e))}}]),e}();return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}()),SimpleStore.adapters.push(function(){function e(e){return n="cookie"in document,n&&r(e),n}function t(e,t){if(!n)throw new Error("adapter not initialized");return new a(e,t)}function r(e){if(""!==document.cookie)for(var t=e+".",r=new RegExp("^"+RegExp.escape(t)),n=e+"!.",i=e+"*.",o=/\.(?:state|rcWarn)$/,s=document.cookie.split(/;\s*/),u=0;u<s.length;++u){var l=s[u].split("="),c=decodeURIComponent(l[0]);if(r.test(c)){var d=decodeURIComponent(l[1]);""!==d&&!function(){var e=!o.test(c);a._setCookie(c,undefined,"Thu, 01 Jan 1970 00:00:00 GMT"),a._setCookie(c.replace(r,function(){return e?n:i}),d,e?"Tue, 19 Jan 2038 03:14:07 GMT":undefined)}()}}}var n=!1,a=function(){function e(t,r){_classCallCheck(this,e);var n=""+t+(r?"!":"*")+".";Object.defineProperties(this,{_prefix:{value:n},_prefixRe:{value:new RegExp("^"+RegExp.escape(n))},name:{value:"cookie"},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function e(){if(""===document.cookie)return[];for(var t=document.cookie.split(/;\s*/),e=[],r=0;r<t.length;++r){var n=t[r].split("="),a=decodeURIComponent(n[0]);if(this._prefixRe.test(a)){var i=decodeURIComponent(n[1]);""!==i&&e.push(a.replace(this._prefixRe,""))}}return e}},{key:"has",value:function(t){return!("string"!=typeof t||!t)&&null!==e._getCookie(this._prefix+t)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=e._getCookie(this._prefix+t);return null===r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{if(e._setCookie(this._prefix+t,e._serialize(r),this.persistent?"Tue, 19 Jan 2038 03:14:07 GMT":undefined),!this.has(t))throw new Error("unknown validation error during set")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"delete",value:function(t){if("string"!=typeof t||!t||!this.has(t))return!1;try{if(e._setCookie(this._prefix+t,undefined,"Thu, 01 Jan 1970 00:00:00 GMT"),this.has(t))throw new Error("unknown validation error during delete")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_getCookie",value:function(e){if(!e||""===document.cookie)return null;for(var t=document.cookie.split(/;\s*/),r=0;r<t.length;++r){var n=t[r].split("="),a=decodeURIComponent(n[0]);if(e===a){var i=decodeURIComponent(n[1]);return i||null}}return null}},{key:"_setCookie",value:function(e,t,r){if(e){var n=encodeURIComponent(e)+"=";null!=t&&(n+=encodeURIComponent(t)),null!=r&&(n+="; "+r),n+="; path=/",document.cookie=n}}},{key:"_serialize",value:function(e){return LZString.compressToBase64(JSON.stringify(e))}},{key:"_deserialize",value:function(e){return JSON.parse(LZString.decompressFromBase64(e))}}]),e}();return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}());var DebugView=function(){var e=function(){function e(t,r,n,a){_classCallCheck(this,e),Object.defineProperties(this,{parent:{value:t},view:{value:document.createElement("span")},break:{value:document.createElement("wbr")}}),jQuery(this.view).attr({title:a,"aria-label":a,"data-type":null!=r?r:"","data-name":null!=n?n:""}).addClass("debug"),this.parent.appendChild(this.view),this.parent.appendChild(this.break)}return _createClass(e,[{key:"append",value:function(e){return jQuery(this.view).append(e),this}},{key:"modes",value:function(e){var t=this;if(null==e){var r=function(){var e={};return t.view.className.splitOrEmpty(/\s+/).forEach(function(t){"debug"!==t&&(e[t]=!0)}),{v:e}}();if("object"===("undefined"==typeof r?"undefined":_typeof(r)))return r.v}else if("object"===("undefined"==typeof e?"undefined":_typeof(e)))return Object.keys(e).forEach(function(t){this[e[t]?"addClass":"removeClass"](t)},jQuery(this.view)),this;throw new Error("DebugView.prototype.modes options parameter must be an object or null/undefined")}},{key:"remove",value:function(){var e=jQuery(this.view);this.view.hasChildNodes()&&e.contents().appendTo(this.parent),e.remove(),jQuery(this.break).remove()}},{key:"output",get:function(){return this.view}},{key:"type",get:function(){return this.view.getAttribute("data-type")},set:function(e){this.view.setAttribute("data-type",null!=e?e:"")}},{key:"name",get:function(){return this.view.getAttribute("data-name")},set:function(e){this.view.setAttribute("data-name",null!=e?e:"")}},{key:"title",get:function(){return this.view.title},set:function(e){this.view.title=e}}],[{key:"init",value:function(){jQuery('<button id="debug-view-toggle">'+L10n.get("debugViewTitle")+"</button>").ariaClick({label:L10n.get("debugViewToggle")},function(){return e.toggle()}).prependTo("#ui-bar-body"),e.enable()}},{key:"enable",value:function(){jQuery(document.documentElement).addClass("debug-view"),jQuery.event.trigger("tw:debugviewupdate")}},{key:"disable",value:function(){jQuery(document.documentElement).removeClass("debug-view"),jQuery.event.trigger("tw:debugviewupdate")}},{key:"toggle",value:function(){jQuery(document.documentElement).toggleClass("debug-view"),jQuery.event.trigger("tw:debugviewupdate")}}]),e}();return e}(),PRNGWrapper=function(){var e=function(){function e(t,r){_classCallCheck(this,e),Object.defineProperties(this,new Math.seedrandom(t,r,function(e,t){return{_prng:{value:e},seed:{writable:!0,value:t},pull:{writable:!0,value:0},random:{value:function(){return++this.pull,this._prng()}}}}))}return _createClass(e,null,[{key:"marshal",value:function(e){if(!e||!e.hasOwnProperty("seed")||!e.hasOwnProperty("pull"))throw new Error("PRNG is missing required data");return{seed:e.seed,pull:e.pull}}},{key:"unmarshal",value:function(t){if(!t||!t.hasOwnProperty("seed")||!t.hasOwnProperty("pull"))throw new Error("PRNG object is missing required data");for(var r=new e(t.seed,!1),n=t.pull;n>0;--n)r.random();return r}}]),e}();return e}(),StyleWrapper=function(){var e=/\[[<>]?[Ii][Mm][Gg]\[(?:\s|\S)*?\]\]+/g,t=new RegExp(e.source),r=function(){function r(e){if(_classCallCheck(this,r),null==e)throw new TypeError("StyleWrapper style parameter must be an HTMLStyleElement object");Object.defineProperties(this,{style:{value:e}})}return _createClass(r,[{key:"isEmpty",value:function(){return 0===this.style.cssRules.length}},{key:"set",value:function(e){this.clear(),this.add(e)}},{key:"add",value:function(r){var n=r;t.test(n)&&(e.lastIndex=0,n=n.replace(e,function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup({source:e,matchStart:0});if(t.hasOwnProperty("error")||t.pos<e.length)return e;var r=t.source;if("data:"!==r.slice(0,5)&&Story.has(r)){var n=Story.get(r);n.tags.includes("Twine.image")&&(r=n.text)}return'url("'+r.replace(/"/g,"%22")+'")'})),this.style.styleSheet?this.style.styleSheet.cssText+=n:this.style.appendChild(document.createTextNode(n))}},{key:"clear",value:function(){this.style.styleSheet?this.style.styleSheet.cssText="":jQuery(this.style).empty()}}]),r}();return r}(),L10n=function(){function e(){r()}function t(e,t){if(!e)return"";var r=function(e){var t=void 0;return e.some(function(e){return!!l10nStrings.hasOwnProperty(e)&&(t=e,!0)}),t}(Array.isArray(e)?e:[e]);if(!r)return"";for(var i=50,o=l10nStrings[r],s=0;a.test(o);){if(++s>i)throw new Error("L10n.get exceeded maximum replacement iterations, probable infinite loop");n.lastIndex=0,o=o.replace(n,function(e){var r=e.slice(1,-1);return t&&t.hasOwnProperty(r)?t[r]:l10nStrings.hasOwnProperty(r)?l10nStrings[r]:void 0})}return o}function r(){strings&&Object.keys(strings).length>0&&Object.keys(l10nStrings).forEach(function(e){try{var t=void 0;switch(e){case"identity":t=strings.identity;break;case"aborting":t=strings.aborting;break;case"cancel":t=strings.cancel;break;case"close":t=strings.close;break;case"ok":t=strings.ok;break;case"errorTitle":t=strings.errors.title;break;case"errorNonexistentPassage":t=strings.errors.nonexistentPassage;break;case"errorSaveMissingData":t=strings.errors.saveMissingData;break;case"errorSaveIdMismatch":t=strings.errors.saveIdMismatch;break;case"warningDegraded":t=strings.warnings.degraded;break;case"debugViewTitle":t=strings.debugView.title;break;case"debugViewToggle":t=strings.debugView.toggle;break;case"uiBarToggle":t=strings.uiBar.toggle;break;case"uiBarBackward":t=strings.uiBar.backward;break;case"uiBarForward":t=strings.uiBar.forward;break;case"uiBarJumpto":t=strings.uiBar.jumpto;break;case"jumptoTitle":t=strings.jumpto.title;break;case"jumptoTurn":t=strings.jumpto.turn;break;case"jumptoUnavailable":t=strings.jumpto.unavailable;break;case"savesTitle":t=strings.saves.title;break;case"savesDisallowed":t=strings.saves.disallowed;break;case"savesEmptySlot":t=strings.saves.emptySlot;break;case"savesIncapable":t=strings.saves.incapable;break;case"savesLabelAuto":t=strings.saves.labelAuto;break;case"savesLabelDelete":t=strings.saves.labelDelete;break;case"savesLabelExport":t=strings.saves.labelExport;break;case"savesLabelImport":t=strings.saves.labelImport;break;case"savesLabelLoad":t=strings.saves.labelLoad;break;case"savesLabelClear":t=strings.saves.labelClear;break;case"savesLabelSave":t=strings.saves.labelSave;break;case"savesLabelSlot":t=strings.saves.labelSlot;break;case"savesSavedOn":t=strings.saves.savedOn;break;case"savesUnavailable":t=strings.saves.unavailable;break;case"savesUnknownDate":t=strings.saves.unknownDate;break;case"settingsTitle":t=strings.settings.title;break;case"settingsOff":t=strings.settings.off;break;case"settingsOn":t=strings.settings.on;break;case"settingsReset":t=strings.settings.reset;break;case"restartTitle":t=strings.restart.title;break;case"restartPrompt":t=strings.restart.prompt;break;case"shareTitle":t=strings.share.title;break;case"autoloadTitle":t=strings.autoload.title;break;case"autoloadCancel":t=strings.autoload.cancel;break;case"autoloadOk":t=strings.autoload.ok;break;case"autoloadPrompt":t=strings.autoload.prompt;break;case"macroBackText":t=strings.macros.back.text;break;case"macroReturnText":t=strings.macros.return.text}t&&(l10nStrings[e]=t.replace(/%\w+%/g,function(e){return"{"+e.slice(1,-1)+"}"}))}catch(e){}})}var n=/\{\w+\}/g,a=new RegExp(n.source);return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:t}}))}(),strings={errors:{},warnings:{},debugView:{},uiBar:{},jumpto:{},saves:{},settings:{},restart:{},share:{},autoload:{},macros:{back:{},return:{}}},l10nStrings={identity:"game",aborting:"Aborting",cancel:"Cancel",close:"Close",ok:"OK",errorTitle:"Error",errorNonexistentPassage:'the passage "{passage}" does not exist',errorSaveMissingData:"save is missing required data. Either the loaded file is not a save or the save has become corrupted",errorSaveIdMismatch:"save is from the wrong {identity}",_warningIntroLacking:"Your browser either lacks or has disabled",_warningOutroDegraded:", so this {identity} is running in a degraded mode. You may be able to continue, however, some parts may not work properly.",warningNoWebStorage:"{_warningIntroLacking} the Web Storage API{_warningOutroDegraded}",warningDegraded:"{_warningIntroLacking} some of the capabilities required by this {identity}{_warningOutroDegraded}",debugViewTitle:"Debug View",debugViewToggle:"Toggle the debug view",uiBarToggle:"Toggle the UI bar",uiBarBackward:"Go backward within the {identity} history",uiBarForward:"Go forward within the {identity} history",uiBarJumpto:"Jump to a specific point within the {identity} history",jumptoTitle:"Jump To",jumptoTurn:"Turn",jumptoUnavailable:"No jump points currently available…",savesTitle:"Saves",savesDisallowed:"Saving has been disallowed on this passage.",savesEmptySlot:"— slot empty —",savesIncapable:"{_warningIntroLacking} the capabilities required to support saves, so saves have been disabled for this session.",savesLabelAuto:"Autosave",savesLabelDelete:"Delete",savesLabelExport:"Save to Disk…",savesLabelImport:"Load from Disk…",savesLabelLoad:"Load",savesLabelClear:"Delete All",savesLabelSave:"Save",savesLabelSlot:"Slot",savesSavedOn:"Saved on",savesUnavailable:"No save slots found…",savesUnknownDate:"unknown",settingsTitle:"Settings",settingsOff:"Off",settingsOn:"On",settingsReset:"Reset to Defaults",restartTitle:"Restart",restartPrompt:"Are you sure that you want to restart? Unsaved progress will be lost.",shareTitle:"Share",autoloadTitle:"Autoload",autoloadCancel:"Go to start",autoloadOk:"Load autosave",autoloadPrompt:"An autosave exists. Load it now or go to the start?",macroBackText:"Back",macroReturnText:"Return"},Config=function(){function e(){throw new Error("Config.history.mode has been deprecated and is no longer used by SugarCube, please remove it from your code")}function t(){throw new Error("Config.history.tracking has been deprecated, use Config.history.maxStates instead")}var r=Object.seal({debug:!1,addVisitedLinkClass:!1,cleanupWikifierOutput:!1,loadDelay:0,history:Object.seal({controls:!0,maxStates:100,get mode(){e()},set mode(t){e()},get tracking(){t()},set tracking(e){t()}}),macros:Object.seal({ifAssignmentError:!0,maxLoopIterations:1e3}),navigation:Object.seal({override:undefined}),passages:Object.seal({descriptions:undefined,displayTitles:!1,start:undefined,transitionOut:undefined}),saves:Object.seal({autoload:undefined,autosave:undefined,id:"untitled-story",isAllowed:undefined,onLoad:undefined,onSave:undefined,slots:8,version:undefined}),ui:Object.seal({stowBarInitially:800,updateStoryElements:!0}),transitionEndEventName:function(){for(var e=new Map([["transition","transitionend"],["MSTransition","msTransitionEnd"],["WebkitTransition","webkitTransitionEnd"],["MozTransition","transitionend"]]),t=[].concat(_toConsumableArray(e.keys())),r=document.createElement("div"),n=0;n<t.length;++n)if(r.style[t[n]]!==undefined)return e.get(t[n]);return""}()});return r}(),Patterns=function(){var e=/[\u0150\u0170]/g.test("Å"),t="[\\s\\u00A0\\u2028\\u2029]",r="[0-9A-Z_a-z\\-\\u00C0-\\u00D6\\u00D8-\\u00DE\\u00DF-\\u00F6\\u00F8-\\u00FF"+(e?"\\u0150\\u0170\\u0151\\u0171":"")+"]",n=r.replace("\\-",""),a="[$A-Z_a-z]",i=a+"[$0-9A-Z_a-z]*",o="[$_]",s=o+i,u="[A-Za-z][\\w-]*|[=-]",l="("+r+"+)\\(([^\\)\\|\\n]+)\\):",c="("+r+"+):([^;\\|\\n]+);",d="((?:\\."+r+"+)+);",p="((?:#"+r+"+)+);",f=l+"|"+c+"|"+d+"|"+p,h="(?:file|https?|mailto|ftp|javascript|irc|news|data):[^\\s'\"]+";return Object.freeze({space:t,anyLetter:r,anyLetterStrict:n,identifierFirstChar:a,identifier:i,variableSigil:o,variable:s,macroName:u,inlineCss:f,url:h})}(),Scripting=function(){function addAccessibleClickHandler(e,t,r,n,a){if(arguments.length<2)throw new Error("addAccessibleClickHandler insufficient number of parameters");var i=void 0,o=void 0;if("function"==typeof t?(i=t,o={namespace:n,one:!!r}):(i=r,o={namespace:a,one:!!n,selector:t}),"function"!=typeof i)throw new TypeError("addAccessibleClickHandler handler parameter must be a function");return jQuery(e).ariaClick(o,i)}function insertElement(e,t,r,n,a,i){var o=jQuery(document.createElement(t));return r&&o.attr("id",r),n&&o.addClass(n),i&&o.attr("title",i),a&&o.text(a),e&&o.appendTo(e),o[0]}function insertText(e,t){jQuery(e).append(document.createTextNode(t))}function removeChildren(e){jQuery(e).empty()}function removeElement(e){jQuery(e).remove()}function fade(e,t){function r(){i+=.05*a,n(o,Math.easeInOut(i)),(1===a&&i>=1||a===-1&&i<=0)&&(e.style.visibility="in"===t.fade?"visible":"hidden",o.parentNode.replaceChild(e,o),o=null,window.clearInterval(s),t.onComplete&&t.onComplete())}function n(e,t){e.style.zoom=1,e.style.filter="alpha(opacity="+Math.floor(100*t)+")",e.style.opacity=t}var a="in"===t.fade?1:-1,i=void 0,o=e.cloneNode(!0),s=void 0;e.parentNode.replaceChild(o,e),"in"===t.fade?(i=0,o.style.visibility="visible"):i=1,n(o,i),s=window.setInterval(r,25)}function scrollWindowTo(e,t){function r(){c+=i,window.scroll(0,o+l*(u*Math.easeInOut(c))),c>=1&&window.clearInterval(d)}function n(e){for(var t=0;e.offsetParent;)t+=e.offsetTop,e=e.offsetParent;return t}function a(e){var t=n(e),r=t+e.offsetHeight,a=window.scrollY?window.scrollY:document.body.scrollTop,i=window.innerHeight?window.innerHeight:document.body.clientHeight,o=a+i;return t>=a&&r>o&&e.offsetHeight<i?t-(i-e.offsetHeight)+20:t}var i=null!=t?Number(t):.1;Number.isNaN(i)||!Number.isFinite(i)||i<0?i=.1:i>1&&(i=1);var o=window.scrollY?window.scrollY:document.body.scrollTop,s=a(e),u=Math.abs(o-s),l=o>s?-1:1,c=0,d=void 0;d=window.setInterval(r,25)}function either(){if(0!==arguments.length)return Array.prototype.concat.apply([],arguments).random()}function hasVisited(){if(0===arguments.length)throw new Error("hasVisited called with insufficient parameters");if(State.isEmpty())return!1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=0,n=e.length;r<n;++r)if(!t.includes(e[r]))return!1;return!0}function lastVisited(){if(0===arguments.length)throw new Error("lastVisited called with insufficient parameters");if(State.isEmpty())return-1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=t.length-1,n=State.turns,a=0,i=e.length;a<i&&n>-1;++a){var o=t.lastIndexOf(e[a]);n=Math.min(n,o===-1?-1:r-o)}return n}function passage(){return State.passage}function previous(){var e=State.passages;if(arguments.length>0){var t=Number(arguments[0]);if(!Number.isSafeInteger(t)||t<1)throw new RangeError("previous offset parameter must be a positive integer greater than zero");return e.length>t?e[e.length-1-t]:""}for(var r=e.length-2;r>=0;--r)if(e[r]!==State.passage)return e[r];return""}function random(){if(0===arguments.length)throw new Error("random called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(State.random()*(t-e+1))+e}function randomFloat(){if(0===arguments.length)throw new Error("randomFloat called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return State.random()*(t-e)+e}function tags(){if(0===arguments.length)return Story.get(State.passage).tags.slice(0);for(var e=Array.prototype.concat.apply([],arguments),t=[],r=0,n=e.length;r<n;++r)t=t.concat(Story.get(e[r]).tags);return t}function time(){return null===Engine.lastPlay?0:Date.now()-Engine.lastPlay}function turns(){return State.turns}function variables(){return State.variables}function visited(){if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],0===arguments.length?[State.passage]:arguments),t=State.passages,r=State.turns,n=0,a=e.length;n<a&&r>0;++n)r=Math.min(r,t.count(e[n]));return r}function visitedTags(){if(0===arguments.length)throw new Error("visitedTags called with insufficient parameters");if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],arguments),t=e.length,r=State.passages,n=new Map,a=0,i=0,o=r.length;i<o;++i){var s=r[i];if(n.has(s))n.get(s)&&++a;else{var u=Story.get(s).tags;if(u.length>0){for(var l=0,c=0;c<t;++c)u.includes(e[c])&&++l;l===t?(++a,n.set(s,!0)):n.set(s,!1)}}}return a}function evalJavaScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,String(code),output)}function evalTwineScript(code,output){return function(code,output){return eval(code)}.call(output?{ -output:output}:null,parse(String(code)),output)}var _ref7=function(){function e(e){return e.reduce(function(e,t){return e=e.then(t)},Promise.resolve())}function t(e){return Util.parseUrl(e).path.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w]+/g,"-").toLocaleLowerCase()}function r(){function r(e){return new Promise(function(r,n){jQuery(document.createElement("script")).one("load abort error",function(e){jQuery(e.target).off(),"load"===e.type?r(e.target):n(e.target)}).appendTo(document.head).attr({id:"script-imported-"+t(e),type:"text/javascript",src:e})})}for(var n=arguments.length,a=Array(n),i=0;i<n;i++)a[i]=arguments[i];return Promise.all(a.map(function(t){return Array.isArray(t)?e(t.map(function(e){return function(){return r(e)}})):r(t)}))}function n(){function r(e){return new Promise(function(r,n){jQuery(document.createElement("link")).one("load abort error",function(e){jQuery(e.target).off(),"load"===e.type?r(e.target):n(e.target)}).appendTo(document.head).attr({id:"style-imported-"+t(e),rel:"stylesheet",href:e})})}for(var n=arguments.length,a=Array(n),i=0;i<n;i++)a[i]=arguments[i];return Promise.all(a.map(function(t){return Array.isArray(t)?e(t.map(function(e){return function(){return r(e)}})):r(t)}))}return{importScripts:r,importStyles:n}}(),importScripts=_ref7.importScripts,importStyles=_ref7.importStyles,parse=function(){function e(e){if(0!==r.lastIndex)throw new RangeError("Scripting.parse last index is non-zero at start");for(var a=e,i=void 0;null!==(i=r.exec(a));)if(i[5]){var o=i[5];if("$"===o||"_"===o)continue;if(n.test(o))o=o[0];else if("is"===o){var s=r.lastIndex,u=a.slice(s);/^\s+not\b/.test(u)&&(a=a.splice(s,u.search(/\S/)),o="isnot")}t.hasOwnProperty(o)&&(a=a.splice(i.index,o.length,t[o]),r.lastIndex+=t[o].length-o.length)}return a}var t=Object.freeze({$:"State.variables.",_:"State.temporary.",to:"=",eq:"==",neq:"!=",is:"===",isnot:"!==",gt:">",gte:">=",lt:"<",lte:"<=",and:"&&",or:"||",not:"!",def:'"undefined" !== typeof',ndef:'"undefined" === typeof'}),r=new RegExp(["(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","([=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}]+)","([^\"'=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}\\s]+)"].join("|"),"g"),n=new RegExp("^"+Patterns.variable);return e}();return Object.freeze(Object.defineProperties({},{parse:{value:parse},evalJavaScript:{value:evalJavaScript},evalTwineScript:{value:evalTwineScript}}))}(),Wikifier=function(){var e=void 0,t=0,r=function(){function r(n,a,i){_classCallCheck(this,r),"object"!==("undefined"==typeof e?"undefined":_typeof(e))&&r.compileFormatters(),Object.defineProperties(this,{source:{value:String(a)},options:{writable:!0,value:Object.assign({profile:"all"},i)},nextMatch:{writable:!0,value:0},output:{writable:!0,value:null},_rawArgs:{writable:!0,value:""}}),null==n?this.output=document.createDocumentFragment():n.jquery?this.output=n[0]:this.output=n;try{++t,this.subWikify(this.output),1===t&&Config.cleanupWikifierOutput&&convertBreaks(this.output)}finally{--t}}return _createClass(r,[{key:"subWikify",value:function(e,t,r){var n=this.output,a=void 0;this.output=e,null!=r&&"object"===("undefined"==typeof r?"undefined":_typeof(r))&&(a=this.options,this.options=Object.assign({},this.options,r));var i=t?new RegExp("(?:"+t+")",this.options.ignoreTerminatorCase?"gim":"gm"):null,o=void 0,s=void 0;do{if(this.formatter.formatterRegExp.lastIndex=this.nextMatch,i&&(i.lastIndex=this.nextMatch),s=this.formatter.formatterRegExp.exec(this.source),o=i?i.exec(this.source):null,o&&(!s||o.index<=s.index))return o.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,o.index),this.matchStart=o.index,this.matchLength=o[0].length,this.matchText=o[0],this.nextMatch=i.lastIndex,this.output=n,void(a&&(this.options=a));if(s){s.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,s.index),this.matchStart=s.index,this.matchLength=s[0].length,this.matchText=s[0],this.nextMatch=this.formatter.formatterRegExp.lastIndex;for(var u=void 0,l=1,c=s.length;l<c;++l)if(s[l]){u=l-1;break}if(this.formatter.formatters[u].handler(this),null!=TempState.break)break}}while(o||s);null==TempState.break?this.nextMatch<this.source.length&&(this.outputText(this.output,this.nextMatch,this.source.length),this.nextMatch=this.source.length):this.output.lastChild&&this.output.lastChild.nodeType===Node.ELEMENT_NODE&&"BR"===this.output.lastChild.nodeName.toUpperCase()&&jQuery(this.output.lastChild).remove(),this.output=n,a&&(this.options=a)}},{key:"outputText",value:function(e,t,r){jQuery(e).append(document.createTextNode(this.source.substring(t,r)))}},{key:"rawArgs",value:function(){return this._rawArgs}},{key:"fullArgs",value:function(){return Scripting.parse(this.rawArgs())}},{key:"formatter",get:function(){if(!e.hasOwnProperty(this.options.profile))throw new Error('nonexistent formatter profile "'+this.options.profile+'"');return e[this.options.profile]}}],[{key:"compileFormatters",value:function(){var t=r.formatters,n=t.filter(function(e){return!Array.isArray(e.profiles)||e.profiles.includes("core")});return e={all:{formatters:t,formatterRegExp:new RegExp(t.map(function(e){return"("+e.match+")"}).join("|"),"gm")},core:{formatters:n,formatterRegExp:new RegExp(n.map(function(e){return"("+e.match+")"}).join("|"),"gm")}}}},{key:"getValue",value:function(e){var t=r.parseStoryVariable(e),n=void 0;if(null!==t){n=t.store;for(var a=t.names,i=0,o=a.length;i<o;++i){if("undefined"==typeof n[a[i]]){n=undefined;break}n=n[a[i]]}}return n}},{key:"setValue",value:function(e,t){var n=r.parseStoryVariable(e);if(null!==n){for(var a=n.names,i=a.pop(),o=n.store,s=0,u=a.length;s<u;++s){if("undefined"==typeof o[a[s]]){o=undefined;break}o=o[a[s]]}if(o!==undefined)return o[i]=t,!0}return!1}},{key:"parseStoryVariable",value:function(e){for(var t={store:"$"===e[0]?State.variables:State.temporary,names:[]},n=e,a=void 0;null!==(a=r._parseVarRegExp.exec(n));)n=n.slice(a[0].length),a[1]?t.names.push(a[1]):a[2]?t.names.push(a[2]):a[3]?t.names.push(a[3]):a[4]?t.names.push(a[4]):a[5]?t.names.push(r.getValue(a[5])):a[6]&&t.names.push(Number(a[6]));return""===n?t:null}},{key:"wikifyEval",value:function(e){var t=document.createDocumentFragment();new r(t,e);var n=t.querySelector(".error");if(null!==n)throw new Error(n.textContent.replace(/^(?:(?:Uncaught\s+)?Error:\s+)+/,""));return t}},{key:"createInternalLink",value:function(e,t,r,n){var a=jQuery(document.createElement("a"));return null!=t&&(a.attr("data-passage",t),Story.has(t)?(a.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&a.addClass("link-visited")):a.addClass("link-broken"),a.ariaClick({one:!0},function(){"function"==typeof n&&n(),Engine.play(t)})),r&&a.append(document.createTextNode(r)),e&&a.appendTo(e),a[0]}},{key:"createExternalLink",value:function(e,t,r){var n=jQuery(document.createElement("a")).attr("target","_blank").addClass("link-external").text(r).appendTo(e);return null!=t&&n.attr({href:t,tabindex:0}),n[0]}},{key:"isExternalLink",value:function(e){if(Story.has(e))return!1;var t=new RegExp("^"+Patterns.url,"gim");return t.test(e)||/[\/.?#]/.test(e)}}]),r}();return Object.defineProperties(r,{_parseVarRegExp:{value:new RegExp(["^(?:",Patterns.variableSigil,"(",Patterns.identifier,")|\\.(",Patterns.identifier,")|\\[(?:(?:\"((?:\\\\.|[^\"\\\\])+)\")|(?:'((?:\\\\.|[^'\\\\])+)')|(",Patterns.variableSigil,Patterns.identifierFirstChar,".*)|(\\d+))\\])"].join(""))},helpers:{value:{}},parse:{value:Scripting.parse},evalExpression:{value:Scripting.evalTwineScript},evalStatements:{value:Scripting.evalTwineScript},textPrimitives:{value:Patterns}}),Object.defineProperties(r.helpers,{inlineCss:{value:function(){function e(e){var r={classes:[],id:"",styles:{}},n=void 0;do{t.lastIndex=e.nextMatch;var a=t.exec(e.source);n=a&&a.index===e.nextMatch,n&&(a[1]?r.styles[Util.fromCssProperty(a[1])]=a[2].trim():a[3]?r.styles[Util.fromCssProperty(a[3])]=a[4].trim():a[5]?r.classes=r.classes.concat(a[5].slice(1).split(/\./)):a[6]&&(r.id=a[6].slice(1).split(/#/).pop()),e.nextMatch=t.lastIndex)}while(n);return r}var t=new RegExp(Patterns.inlineCss,"gm");return e}()},evalText:{value:function(e){var t=void 0;try{t=Scripting.evalTwineScript(e),null==t||"function"==typeof t?t=e:(t=String(t),/\[(?:object(?:\s+[^\]]+)?|native\s+code)\]/.test(t)&&(t=e))}catch(r){t=e}return t}},evalPassageId:{value:function(e){return null==e||Story.has(e)?e:r.helpers.evalText(e)}},hasBlockContext:{value:function(e){for(var t="function"==typeof window.getComputedStyle,r=e.length-1;r>=0;--r){var n=e[r];switch(n.nodeType){case Node.ELEMENT_NODE:var a=n.nodeName.toUpperCase();if("BR"===a)return!0;var i=t?window.getComputedStyle(n,null):n.currentStyle;if(i&&i.display){if("none"===i.display)continue;return"block"===i.display}switch(a){case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":return!0}return!1;case Node.COMMENT_NODE:continue;default:return!1}}return!0}},createShadowSetterCallback:{value:function(){function e(){if(!a&&(a=r.formatters.find(function(e){return"macro"===e.name}),!a))throw new Error('cannot find "macro" formatter');return a}function t(){for(var t=a||e(),r=new Set,n=t.context;null!==n;n=n.parent)n._shadows&&n._shadows.forEach(function(e){return r.add(e)});return[].concat(_toConsumableArray(r))}function n(e){var r={};return t().forEach(function(e){var t=e.slice(1),n="$"===e[0]?State.variables:State.temporary;r[e]=n[t]}),function(){var t=Object.keys(r),n=t.length>0?{}:null;try{return t.forEach(function(e){var t=e.slice(1),a="$"===e[0]?State.variables:State.temporary;a.hasOwnProperty(t)&&(n[t]=a[t]),a[t]=r[e]}),Scripting.evalJavaScript(e)}finally{t.forEach(function(e){var t=e.slice(1),a="$"===e[0]?State.variables:State.temporary;r[e]=a[t],n.hasOwnProperty(t)?a[t]=n[t]:delete a[t]})}}}var a=null;return n}()},parseSquareBracketedMarkup:{value:function(e){function t(){return d>=e.source.length?u:e.source[d++]}function r(){return d>=e.source.length?u:e.source[d]}function n(t){return t<1||d+t>=e.source.length?u:e.source[d+t]}function a(){return{error:String.format.apply(String,arguments),pos:d}}function i(){c=d}function o(t){var r=e.source.slice(c,d).trim();if(""===r)throw new Error("malformed wiki "+(h?"link":"image")+", empty "+t+" component");"link"===t&&"~"===r[0]?(l.forceInternal=!0,l.link=r.slice(1)):l[t]=r,c=d}function s(e){++d;e:for(;;){switch(r()){case"\\":++d;var t=r();if(t!==u&&"\n"!==t)break;case u:case"\n":return u;case e:break e}++d}return d}var u=-1,l={},c=e.matchStart,d=c+1,p=void 0,f=void 0,h=void 0,g=void 0;if(g=r(),"["===g)h=l.isLink=!0;else{switch(h=!1,g){case"<":l.align="left",++d;break;case">":l.align="right",++d}if(!/^[Ii][Mm][Gg]$/.test(e.source.slice(d,d+3)))return a("malformed square-bracketed wiki markup");d+=3,l.isImage=!0}if("["!==t())return a("malformed wiki {0}",h?"link":"image");p=1,f=0,i();try{e:for(;;){switch(g=r()){case u:case"\n":return a("unterminated wiki {0}",h?"link":"image");case'"':if(s(g)===u)return a("unterminated double quoted string in wiki {0}",h?"link":"image");break;case"'":if((4===f||3===f&&h)&&s(g)===u)return a("unterminated single quoted string in wiki {0}",h?"link":"image");break;case"|":0===f&&(o(h?"text":"title"),++c,f=1);break;case"-":0===f&&">"===n(1)&&(o(h?"text":"title"),++d,c+=2,f=1);break;case"<":0===f&&"-"===n(1)&&(o(h?"link":"source"),++d,c+=2,f=2);break;case"[":if(f===-1)return a("unexpected left square bracket '['");++p,1===p&&(i(),++c);break;case"]":if(--p,0===p){switch(f){case 0:case 1:o(h?"link":"source"),f=3;break;case 2:o(h?"text":"title"),f=3;break;case 3:h?(o("setter"),f=-1):(o("link"),f=4);break;case 4:o("setter"),f=-1}if(++d,"]"===r()){++d;break e}--d}}++d}}catch(e){return a(e.message)}return l.pos=d,l}}}),Object.defineProperty(r,"formatters",{value:[{name:"macro",profiles:["core"],match:"<<",lookahead:new RegExp("<<(\\/?"+Patterns.macroName+")(?:\\s*)((?:(?:\"(?:\\\\.|[^\"\\\\])*\")|(?:'(?:\\\\.|[^'\\\\])*')|(?:\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)|[^>]|(?:>(?!>)))*)>>","gm"),argsPattern:["(``)","`((?:\\\\.|[^`\\\\])+)`","(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","(\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)","([^`\"'\\s]+)","(`|\"|')"].join("|"),working:{source:"",name:"",arguments:"",index:0},context:null,handler:function(e){var t=this.lookahead.lastIndex=e.matchStart;if(this.parseTag(e)){var r=e.nextMatch,n=this.working.source,a=this.working.name,i=this.working.arguments,o=void 0;try{if(o=Macro.get(a),!o){if(Macro.tags.has(a)){var s=Macro.tags.get(a);return throwError(e.output,"child tag <<"+a+">> was found outside of a call to its parent macro"+(1===s.length?"":"s")+" <<"+s.join(">>, <<")+">>",e.source.slice(t,e.nextMatch))}return throwError(e.output,"macro <<"+a+">> does not exist",e.source.slice(t,e.nextMatch))}var u=null;if(o.hasOwnProperty("tags")&&(u=this.parseBody(e,o),!u))return e.nextMatch=r,throwError(e.output,"cannot find a closing tag for macro <<"+a+">>",e.source.slice(t,e.nextMatch)+"…");if("function"!=typeof o.handler)return throwError(e.output,"macro <<"+a+">> handler function "+(o.hasOwnProperty("handler")?"is not a function":"does not exist"),e.source.slice(t,e.nextMatch));var l=u?u[0].args:this.createArgs(i,o.hasOwnProperty("skipArgs")&&!!o.skipArgs||o.hasOwnProperty("skipArg0")&&!!o.skipArg0);if(o.hasOwnProperty("_MACRO_API")){this.context=new MacroContext({parent:this.context,macro:o,name:a,args:l,payload:u,parser:e,source:n});try{o.handler.call(this.context)}finally{this.context=this.context.parent}}else{var c=e._rawArgs;e._rawArgs=i,o.handler(e.output,a,l,e,u),e._rawArgs=c}}catch(r){return throwError(e.output,"cannot execute "+(o&&o.isWidget?"widget":"macro")+" <<"+a+">>: "+r.message,e.source.slice(t,e.nextMatch))}finally{this.working.source="",this.working.name="",this.working.arguments="",this.working.index=0}}else e.outputText(e.output,e.matchStart,e.nextMatch)},parseTag:function(e){var t=this.lookahead.exec(e.source);return!(!t||t.index!==e.matchStart||!t[1])&&(e.nextMatch=this.lookahead.lastIndex,this.working.source=e.source.slice(t.index,this.lookahead.lastIndex),this.working.name=t[1],this.working.arguments=t[2],this.working.index=t.index,!0)},parseBody:function(e,t){for(var r=this.working.name,n="/"+r,a="end"+r,i=!!Array.isArray(t.tags)&&t.tags,o=[],s=t.hasOwnProperty("skipArgs")&&t.skipArgs,u=t.hasOwnProperty("skipArg0")&&t.skipArg0,l=-1,c=1,d=this.working.source,p=this.working.name,f=this.working.arguments,h=e.nextMatch;(e.matchStart=e.source.indexOf(this.match,e.nextMatch))!==-1;)if(this.parseTag(e)){var g=this.working.source,m=this.working.name,v=this.working.arguments,y=this.working.index,b=e.nextMatch;switch(m){case r:++c;break;case a:case n:--c;break;default:if(1===c&&i)for(var w=0,k=i.length;w<k;++w)m===i[w]&&(o.push({source:d,name:p,arguments:f,args:this.createArgs(f,s||0===o.length&&u),contents:e.source.slice(h,y)}),d=g,p=m,f=v,h=b)}if(0===c){o.push({source:d,name:p,arguments:f,args:this.createArgs(f,s||0===o.length&&u),contents:e.source.slice(h,y)}),l=b;break}}else this.lookahead.lastIndex=e.nextMatch=e.matchStart+this.match.length;return l!==-1?(e.nextMatch=l,o):null},createArgs:function(e,t){var r=t?[]:this.parseArgs(e);return Object.defineProperties(r,{raw:{value:e},full:{value:Scripting.parse(e)}}),r},parseArgs:function(e){for(var t=new RegExp(this.argsPattern,"gm"),n=[],a=new RegExp("^"+Patterns.variable),i=void 0;null!==(i=t.exec(e));){var o=void 0;if(i[1])o=undefined;else if(i[2]){o=i[2];try{o=Scripting.evalTwineScript(o)}catch(e){throw new Error('unable to parse macro argument "'+o+'": '+e.message)}}else if(i[3])o="";else if(i[4]){o=i[4];try{o=Scripting.evalJavaScript(o)}catch(e){throw new Error("unable to parse macro argument '"+o+"': "+e.message)}}else if(i[5]){o=i[5];try{o=Scripting.evalJavaScript(o)}catch(e){throw new Error('unable to parse macro argument "'+o+'": '+e.message)}}else if(i[6]){o=i[6];var s=r.helpers.parseSquareBracketedMarkup({source:o,matchStart:0});if(s.hasOwnProperty("error"))throw new Error('unable to parse macro argument "'+o+'": '+s.error);if(s.pos<o.length)throw new Error('unable to parse macro argument "'+o+'": unexpected character(s) "'+o.slice(s.pos)+'" (pos: '+s.pos+")");s.isLink?(o={isLink:!0},o.count=s.hasOwnProperty("text")?2:1,o.link=r.helpers.evalPassageId(s.link),o.text=s.hasOwnProperty("text")?r.helpers.evalText(s.text):o.link,o.external=!s.forceInternal&&r.isExternalLink(o.link),o.setFn=s.hasOwnProperty("setter")?r.helpers.createShadowSetterCallback(Scripting.parse(s.setter)):null):s.isImage&&(o=function(e){var t={source:e,isImage:!0};if("data:"!==e.slice(0,5)&&Story.has(e)){var r=Story.get(e);r.tags.includes("Twine.image")&&(t.source=r.text,t.passage=r.title)}return t}(r.helpers.evalPassageId(s.source)),s.hasOwnProperty("align")&&(o.align=s.align),s.hasOwnProperty("title")&&(o.title=r.helpers.evalText(s.title)),s.hasOwnProperty("link")&&(o.link=r.helpers.evalPassageId(s.link),o.external=!s.forceInternal&&r.isExternalLink(o.link)),o.setFn=s.hasOwnProperty("setter")?r.helpers.createShadowSetterCallback(Scripting.parse(s.setter)):null)}else if(i[7])if(o=i[7],a.test(o))o=r.getValue(o);else if(/^(?:settings|setup)[.[]/.test(o))try{o=Scripting.evalTwineScript(o)}catch(e){throw new Error('unable to parse macro argument "'+o+'": '+e.message)}else if("null"===o)o=null;else if("undefined"===o)o=undefined;else if("true"===o)o=!0;else if("false"===o)o=!1;else{var u=Number(o);Number.isNaN(u)||(o=u)}else if(i[8]){var l=void 0;switch(i[8]){case"`":l="backtick expression";break;case'"':l="double quoted string";break;case"'":l="single quoted string"}throw new Error("unterminated "+l+" in macro argument string")}n.push(o)}return n}},{name:"prettyLink",profiles:["core"],match:"\\[\\[[^[]",handler:function(e){var t=r.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var n=r.helpers.evalPassageId(t.link),a=t.hasOwnProperty("text")?r.helpers.evalText(t.text):n,i=t.hasOwnProperty("setter")?r.helpers.createShadowSetterCallback(Scripting.parse(t.setter)):null,o=(Config.debug?new DebugView(e.output,"wiki-link","[[link]]",e.source.slice(e.matchStart,e.nextMatch)):e).output;t.forceInternal||!r.isExternalLink(n)?r.createInternalLink(o,n,a,i):r.createExternalLink(o,n,a)}},{name:"urlLink",profiles:["core"],match:Patterns.url,handler:function(e){e.outputText(r.createExternalLink(e.output,e.matchText),e.matchStart,e.nextMatch)}},{name:"image",profiles:["core"],match:"\\[[<>]?[Ii][Mm][Gg]\\[",handler:function(e){var t=r.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var n=void 0;Config.debug&&(n=new DebugView(e.output,"wiki-image",t.hasOwnProperty("link")?"[img[][link]]":"[img[]]",e.source.slice(e.matchStart,e.nextMatch)),n.modes({block:!0}));var a=t.hasOwnProperty("setter")?r.helpers.createShadowSetterCallback(Scripting.parse(t.setter)):null,i=(Config.debug?n:e).output,o=void 0;if(t.hasOwnProperty("link")){var s=r.helpers.evalPassageId(t.link);i=t.forceInternal||!r.isExternalLink(s)?r.createInternalLink(i,s,null,a):r.createExternalLink(i,s),i.classList.add("link-image")}if(i=jQuery(document.createElement("img")).appendTo(i).get(0),o=r.helpers.evalPassageId(t.source),"data:"!==o.slice(0,5)&&Story.has(o)){var u=Story.get(o);u.tags.includes("Twine.image")&&(i.setAttribute("data-passage",u.title),o=u.text)}i.src=o,t.hasOwnProperty("title")&&(i.title=r.helpers.evalText(t.title)),t.hasOwnProperty("align")&&(i.align=t.align)}},{name:"monospacedByBlock",profiles:["block"],match:"^\\{\\{\\{\\n",lookahead:/^\{\{\{\n((?:^[^\n]*\n)+?)(^\}\}\}$\n?)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(jQuery(document.createElement("pre")).text(t[1]).appendTo(e.output),e.nextMatch=this.lookahead.lastIndex)}},{name:"formatByChar",profiles:["core"],match:"''|//|__|\\^\\^|~~|==|\\{\\{\\{",handler:function(e){switch(e.matchText){case"''":e.subWikify(jQuery(document.createElement("strong")).appendTo(e.output).get(0),"''");break;case"//":e.subWikify(jQuery(document.createElement("em")).appendTo(e.output).get(0),"//");break;case"__":e.subWikify(jQuery(document.createElement("u")).appendTo(e.output).get(0),"__");break;case"^^":e.subWikify(jQuery(document.createElement("sup")).appendTo(e.output).get(0),"\\^\\^");break;case"~~":e.subWikify(jQuery(document.createElement("sub")).appendTo(e.output).get(0),"~~");break;case"==":e.subWikify(jQuery(document.createElement("s")).appendTo(e.output).get(0),"==");break;case"{{{":var t=/\{\{\{((?:.|\n)*?)\}\}\}/gm;t.lastIndex=e.matchStart;var r=t.exec(e.source);r&&r.index===e.matchStart&&(jQuery(document.createElement("code")).text(r[1]).appendTo(e.output),e.nextMatch=t.lastIndex)}}},{name:"customStyle",profiles:["core"],match:"@@",terminator:"@@",blockRegExp:/\s*\n/gm,handler:function(e){var t=r.helpers.inlineCss(e);this.blockRegExp.lastIndex=e.nextMatch;var n=this.blockRegExp.exec(e.source),a=n&&n.index===e.nextMatch,i=jQuery(document.createElement(a?"div":"span")).appendTo(e.output);0===t.classes.length&&""===t.id&&0===Object.keys(t.styles).length?i.addClass("marked"):(t.classes.forEach(function(e){return i.addClass(e)}),""!==t.id&&i.attr("id",t.id),i.css(t.styles)),a?(e.nextMatch+=n[0].length,e.subWikify(i[0],"\\n?"+this.terminator)):e.subWikify(i[0],this.terminator)}},{name:"verbatimText",profiles:["core"],match:'"{3}|<nowiki>',lookahead:/(?:"{3}((?:.|\n)*?)"{3})|(?:<nowiki>((?:.|\n)*?)<\/nowiki>)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(jQuery(document.createElement("span")).addClass("verbatim").text(t[1]||t[2]).appendTo(e.output),e.nextMatch=this.lookahead.lastIndex)}},{name:"horizontalRule",profiles:["core"],match:"^----+$\\n?|<hr\\s*/?>\\n?",handler:function(e){jQuery(document.createElement("hr")).appendTo(e.output)}},{name:"emdash",profiles:["core"],match:"--",handler:function(e){jQuery(document.createTextNode("—")).appendTo(e.output)}},{name:"doubleDollarSign",profiles:["core"],match:"\\${2}",handler:function(e){jQuery(document.createTextNode("$")).appendTo(e.output)}},{name:"nakedVariable",profiles:["core"],match:Patterns.variable+"(?:(?:\\."+Patterns.identifier+")|(?:\\[\\d+\\])|(?:\\[\"(?:\\\\.|[^\"\\\\])+\"\\])|(?:\\['(?:\\\\.|[^'\\\\])+'\\])|(?:\\["+Patterns.variable+"\\]))*",handler:function(e){var t=toStringOrDefault(r.getValue(e.matchText),null);null===t?jQuery(document.createTextNode(e.matchText)).appendTo(e.output):new r((Config.debug?new DebugView(e.output,"variable",e.matchText,e.matchText):e).output,t)}},{name:"heading",profiles:["block"],match:"^!{1,6}",terminator:"\\n",handler:function(e){return r.helpers.hasBlockContext(e.output.childNodes)?void e.subWikify(jQuery(document.createElement("h"+e.matchLength)).appendTo(e.output).get(0),this.terminator):void jQuery(e.output).append(document.createTextNode(e.matchText))}},{name:"table",profiles:["block"],match:"^\\|(?:[^\\n]*)\\|(?:[fhck]?)$",lookahead:/^\|([^\n]*)\|([fhck]?)$/gm,rowTerminator:"\\|(?:[cfhk]?)$\\n?",cellPattern:"(?:\\|([^\\n\\|]*)\\|)|(\\|[cfhk]?$\\n?)",cellTerminator:"(?:\\u0020*)\\|",rowTypes:{c:"caption",f:"tfoot",h:"thead","":"tbody"},handler:function(e){if(!r.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=jQuery(document.createElement("table")).appendTo(e.output).get(0),n=[],a=null,i=null,o=0,s=void 0;e.nextMatch=e.matchStart;do{this.lookahead.lastIndex=e.nextMatch;var u=this.lookahead.exec(e.source);if(s=u&&u.index===e.nextMatch){var l=u[2];"k"===l?(t.className=u[1],e.nextMatch+=u[0].length+1):(l!==a&&(a=l,i=jQuery(document.createElement(this.rowTypes[l])).appendTo(t)),"c"===a?(i.css("caption-side",0===o?"top":"bottom"),e.nextMatch+=1,e.subWikify(i[0],this.rowTerminator)):this.rowHandler(e,jQuery(document.createElement("tr")).appendTo(i).get(0),n),++o)}}while(s)},rowHandler:function(e,t,n){var a=this,i=new RegExp(this.cellPattern,"gm"),o=0,s=1,u=void 0;do{i.lastIndex=e.nextMatch;var l=i.exec(e.source);if(u=l&&l.index===e.nextMatch){if("~"===l[1]){var c=n[o];c&&(++c.rowCount,c.$element.attr("rowspan",c.rowCount).css("vertical-align","middle")),e.nextMatch=l.index+l[0].length-1}else if(">"===l[1])++s,e.nextMatch=l.index+l[0].length-1;else{if(l[2]){e.nextMatch=l.index+l[0].length;break}!function(){++e.nextMatch;for(var i=r.helpers.inlineCss(e),u=!1,l=!1,c=void 0;" "===e.source.substr(e.nextMatch,1);)u=!0,++e.nextMatch;"!"===e.source.substr(e.nextMatch,1)?(c=jQuery(document.createElement("th")).appendTo(t),++e.nextMatch):c=jQuery(document.createElement("td")).appendTo(t),n[o]={rowCount:1,$element:c},s>1&&(c.attr("colspan",s),s=1),e.subWikify(c[0],a.cellTerminator)," "===e.matchText.substr(e.matchText.length-2,1)&&(l=!0),i.classes.forEach(function(e){return c.addClass(e)}),""!==i.id&&c.attr("id",i.id),u&&l?i.styles["text-align"]="center":u?i.styles["text-align"]="right":l&&(i.styles["text-align"]="left"),c.css(i.styles),e.nextMatch=e.nextMatch-1}()}++o}}while(u)}},{name:"list",profiles:["block"],match:"^(?:(?:\\*+)|(?:#+))",lookahead:/^(?:(\*+)|(#+))/gm,terminator:"\\n",handler:function(e){if(!r.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.nextMatch=e.matchStart;var t=[e.output],n=null,a=0,i=void 0,o=void 0;do{this.lookahead.lastIndex=e.nextMatch;var s=this.lookahead.exec(e.source);if(i=s&&s.index===e.nextMatch){var u=s[2]?"ol":"ul",l=s[0].length;if(e.nextMatch+=s[0].length,l>a)for(o=a;o<l;++o)t.push(jQuery(document.createElement(u)).appendTo(t[t.length-1]).get(0));else if(l<a)for(o=a;o>l;--o)t.pop();else l===a&&u!==n&&(t.pop(),t.push(jQuery(document.createElement(u)).appendTo(t[t.length-1]).get(0)));a=l,n=u,e.subWikify(jQuery(document.createElement("li")).appendTo(t[t.length-1]).get(0),this.terminator)}}while(i)}},{name:"quoteByBlock",profiles:["block"],match:"^<<<\\n",terminator:"^<<<\\n",handler:function(e){return r.helpers.hasBlockContext(e.output.childNodes)?void e.subWikify(jQuery(document.createElement("blockquote")).appendTo(e.output).get(0),this.terminator):void jQuery(e.output).append(document.createTextNode(e.matchText))}},{name:"quoteByLine",profiles:["block"],match:"^>+",lookahead:/^>+/gm,terminator:"\\n",handler:function(e){if(!r.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=[e.output],n=0,a=e.matchLength,i=void 0,o=void 0;do{if(a>n)for(o=n;o<a;++o)t.push(jQuery(document.createElement("blockquote")).appendTo(t[t.length-1]).get(0));else if(a<n)for(o=n;o>a;--o)t.pop();n=a,e.subWikify(t[t.length-1],this.terminator),jQuery(document.createElement("br")).appendTo(t[t.length-1]),this.lookahead.lastIndex=e.nextMatch;var s=this.lookahead.exec(e.source);i=s&&s.index===e.nextMatch,i&&(a=s[0].length,e.nextMatch+=s[0].length)}while(i)}},{name:"html",profiles:["core"],match:"<[Hh][Tt][Mm][Ll]>",lookahead:/<[Hh][Tt][Mm][Ll]>((?:.|\n)*?)<\/[Hh][Tt][Mm][Ll]>/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex,jQuery(document.createDocumentFragment()).append(t[1]).appendTo(e.output))}},{name:"commentByBlock",profiles:["core"],match:"(?:/(?:%|\\*))|(?:<!--)",lookahead:/(?:\/(%|\*)(?:(?:.|\n)*?)\1\/)|(?:<!--(?:(?:.|\n)*?)-->)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex)}},{name:"lineContinuation",profiles:["core"],match:"\\\\"+Patterns.space+"*?(?:\\n|$)|(?:^|\\n)"+Patterns.space+"*?\\\\",handler:function(e){e.nextMatch=e.matchStart+e.matchLength}},{name:"lineBreak",profiles:["core"],match:"\\n|<br\\s*/?>",handler:function(e){e.options.nobr||jQuery(document.createElement("br")).appendTo(e.output)}},{name:"htmlCharacterReference",profiles:["core"],match:"(?:(?:&#?[0-9A-Za-z]{2,8};|.)(?:&#?(?:x0*(?:3[0-6][0-9A-Fa-f]|1D[C-Fc-f][0-9A-Fa-f]|20[D-Fd-f][0-9A-Fa-f]|FE2[0-9A-Fa-f])|0*(?:76[89]|7[7-9][0-9]|8[0-7][0-9]|761[6-9]|76[2-7][0-9]|84[0-3][0-9]|844[0-7]|6505[6-9]|6506[0-9]|6507[0-1]));)+|&#?[0-9A-Za-z]{2,8};)",handler:function(e){jQuery(document.createDocumentFragment()).append(e.matchText).appendTo(e.output)}},{name:"htmlTag",profiles:["core"],match:"<\\w+(?:\\s+[^\\u0000-\\u001F\\u007F-\\u009F\\s\"'>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*?\"|'[^']*?'|[^\\s\"'=<>`]+))?)*\\s*\\/?>",tagPattern:"<(\\w+)",voidElements:["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],nobrElements:["colgroup","datalist","dl","figure","ol","optgroup","select","table","tbody","tfoot","thead","tr","ul"],handler:function(e){var t=new RegExp(this.tagPattern).exec(e.matchText),r=t&&t[1],n=r&&r.toLowerCase();if(n){var a=this.voidElements.includes(n),i=this.nobrElements.includes(n),o=void 0,s=void 0;if(!a){o="<\\/"+n+"\\s*>";var u=new RegExp(o,"gim");u.lastIndex=e.matchStart,s=u.exec(e.source)}if(a||s){var l=e.output,c=document.createElement(e.output.tagName),d=void 0;for(c.innerHTML=e.matchText;c.firstChild;)c=c.firstChild;c.hasAttribute("data-passage")&&(this.processDataAttributes(c),Config.debug&&(d=new DebugView(e.output,"html-"+n,n,e.matchText),d.modes({block:"img"===n,nonvoid:s}),l=d.output)),s&&(e.subWikify(c,o,{ignoreTerminatorCase:!0,nobr:i}),d&&jQuery(c).find(".debug.block").length>0&&d.modes({block:!0})),l.appendChild(c)}else throwError(e.output,'HTML tag "'+r+'" is not closed',e.matchText+"…")}},processDataAttributes:function(e){var t=e.getAttribute("data-passage");if(null!=t){var n=r.helpers.evalPassageId(t);n!==t&&(t=n,e.setAttribute("data-passage",n)),""!==t&&("IMG"===e.tagName.toUpperCase()?"data:"!==t.slice(0,5)&&Story.has(t)&&(t=Story.get(t),t.tags.includes("Twine.image")&&(e.src=t.text.trim())):!function(){var n=e.getAttribute("data-setter"),a=void 0;null!=n&&(n=String(n).trim(),""!==n&&(a=r.helpers.createShadowSetterCallback(Scripting.parse(n)))),Story.has(t)?(e.classList.add("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&e.classList.add("link-visited")):e.classList.add("link-broken"),jQuery(e).ariaClick({one:!0},function(){"function"==typeof a&&a.call(this),Engine.play(t)})}())}}}]}),r}(),Macro=function(){function e(t,r,a){if(Array.isArray(t))return void t.forEach(function(t){return e(t,r,a)});if(!p.test(t))throw new Error('invalid macro name "'+t+'"');if(n(t))throw new Error("cannot clobber existing macro <<"+t+">>");if(u(t))throw new Error("cannot clobber child tag <<"+t+">> of parent macro"+(1===d[t].length?"":"s")+" <<"+d[t].join(">>, <<")+">>");try{if("object"===("undefined"==typeof r?"undefined":_typeof(r)))c[t]=a?clone(r):r;else{if(!n(r))throw new Error("cannot create alias of nonexistent macro <<"+r+">>");c[t]=a?clone(c[r]):c[r]}Object.defineProperty(c,t,{writable:!1}),c[t]._MACRO_API=!0}catch(e){throw"TypeError"===e.name?new Error("cannot clobber protected macro <<"+t+">>"):new Error("unknown error when attempting to add macro <<"+t+">>: ["+e.name+"] "+e.message)}if(c[t].hasOwnProperty("tags"))if(null==c[t].tags)o(t);else{if(!Array.isArray(c[t].tags))throw new Error('bad value for "tags" property of macro <<'+t+">>");o(t,c[t].tags)}}function t(e){if(Array.isArray(e))return void e.forEach(function(e){return t(e)});if(n(e)){c[e].hasOwnProperty("tags")&&s(e);try{Object.defineProperty(c,e,{writable:!0}),delete c[e]}catch(t){throw new Error("unknown error removing macro <<"+e+">>: "+t.message)}}else if(u(e))throw new Error("cannot remove child tag <<"+e+">> of parent macro <<"+d[e]+">>")}function r(){return 0===Object.keys(c).length}function n(e){return c.hasOwnProperty(e); -}function a(e){var t=null;return n(e)&&"function"==typeof c[e].handler?t=c[e]:macros.hasOwnProperty(e)&&"function"==typeof macros[e].handler&&(t=macros[e]),t}function i(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"init";Object.keys(c).forEach(function(t){"function"==typeof c[t][e]&&c[t][e](t)}),Object.keys(macros).forEach(function(t){"function"==typeof macros[t][e]&¯os[t][e](t)})}function o(e,t){if(!e)throw new Error("no parent specified");for(var r=["/"+e,"end"+e],a=[].concat(r,Array.isArray(t)?t:[]),i=0;i<a.length;++i){var o=a[i];if(n(o))throw new Error("cannot register tag for an existing macro");u(o)?d[o].includes(e)||(d[o].push(e),d[o].sort()):d[o]=[e]}}function s(e){if(!e)throw new Error("no parent specified");Object.keys(d).forEach(function(t){var r=d[t].indexOf(e);r!==-1&&(1===d[t].length?delete d[t]:d[t].splice(r,1))})}function u(e){return d.hasOwnProperty(e)}function l(e){return u(e)?d[e]:null}var c={},d={},p=new RegExp("^(?:"+Patterns.macroName+")$");return Object.freeze(Object.defineProperties({},{add:{value:e},delete:{value:t},isEmpty:{value:r},has:{value:n},get:{value:a},init:{value:i},tags:{value:Object.freeze(Object.defineProperties({},{register:{value:o},unregister:{value:s},has:{value:u},get:{value:l}}))},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),MacroContext=function(){var e=function(){function e(t){_classCallCheck(this,e);var r=Object.assign({parent:null,macro:null,name:"",args:null,payload:null,parser:null,source:""},t);if(null===r.macro||""===r.name||null===r.parser)throw new TypeError("context object missing required properties");Object.defineProperties(this,{parent:{value:r.parent},self:{value:r.macro},name:{value:r.name},args:{value:r.args},payload:{value:r.payload},source:{value:r.source},parser:{value:r.parser},_output:{value:r.parser.output},_shadows:{writable:!0,value:null},_debugView:{writable:!0,value:null},_debugViewEnabled:{writable:!0,value:Config.debug}})}return _createClass(e,[{key:"contextHas",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return!0;return!1}},{key:"contextSelect",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return t;return null}},{key:"contextSelectAll",value:function(e){for(var t=[],r=this;null!==(r=r.parent);)e(r)&&t.push(r);return t}},{key:"addShadow",value:function(){var e=this;this._shadows||(this._shadows=new Set);for(var t=new RegExp("^"+Patterns.variable+"$"),r=arguments.length,n=Array(r),a=0;a<r;a++)n[a]=arguments[a];n.flatten().forEach(function(r){if("string"!=typeof r)throw new TypeError("variable name must be a string; type: "+("undefined"==typeof r?"undefined":_typeof(r)));if(!t.test(r))throw new Error('invalid variable name "'+r+'"');e._shadows.add(r)})}},{key:"createShadowWrapper",value:function(e,t,r){var n=void 0;return"function"==typeof e&&(n={},this.shadowView.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;n[e]=r[t]})),function(){for(var a=this,i=arguments.length,o=Array(i),s=0;s<i;s++)o[s]=arguments[s];"function"==typeof r&&r.apply(this,o),"function"==typeof e&&!function(){var t=Object.keys(n),r=t.length>0?{}:null;try{t.forEach(function(e){var t=e.slice(1),a="$"===e[0]?State.variables:State.temporary;a.hasOwnProperty(t)&&(r[t]=a[t]),a[t]=n[e]}),e.apply(a,o)}finally{t.forEach(function(e){var t=e.slice(1),a="$"===e[0]?State.variables:State.temporary;n[e]=a[t],r.hasOwnProperty(t)?a[t]=r[t]:delete a[t]})}}(),"function"==typeof t&&t.apply(this,o)}}},{key:"createDebugView",value:function(e,t){return this._debugView=new DebugView(this._output,"macro",e?e:this.name,t?t:this.source),null!==this.payload&&this.payload.length>0&&this._debugView.modes({nonvoid:!0}),this._debugViewEnabled=!0,this._debugView}},{key:"removeDebugView",value:function(){null!==this._debugView&&(this._debugView.remove(),this._debugView=null),this._debugViewEnabled=!1}},{key:"error",value:function(e,t){return throwError(this._output,"<<"+this.name+">>: "+e,t?t:this.source)}},{key:"output",get:function(){return this._debugViewEnabled?this.debugView.output:this._output}},{key:"shadows",get:function(){return[].concat(_toConsumableArray(this._shadows))}},{key:"shadowView",get:function(){var e=new Set;return this.contextSelectAll(function(e){return e._shadows}).forEach(function(t){return t._shadows.forEach(function(t){return e.add(t)})}),[].concat(_toConsumableArray(e))}},{key:"debugView",get:function(){return this._debugViewEnabled?null!==this._debugView?this._debugView:this.createDebugView():null}}]),e}();return e}();!function(){Macro.add("capture",{skipArgs:!0,tags:null,handler:function(){if(0===this.args.raw.length)return this.error("no story/temporary variable list specified");var e={};try{for(var t=new RegExp("("+Patterns.variable+")","g"),r=void 0;null!==(r=t.exec(this.args.raw));){var n=r[1],a=n.slice(1),i="$"===n[0]?State.variables:State.temporary;i.hasOwnProperty(a)&&(e[a]=i[a]),this.addShadow(n)}new Wikifier(this.output,this.payload[0].contents)}finally{this.shadows.forEach(function(t){var r=t.slice(1),n="$"===t[0]?State.variables:State.temporary;e.hasOwnProperty(r)?n[r]=e[r]:delete n[r]})}}}),Macro.add("set",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("unset",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story/temporary variable list specified");for(var e=new RegExp("State\\.(variables|temporary)\\.("+Patterns.identifier+")","g"),t=void 0;null!==(t=e.exec(this.args.full));){var r=State[t[1]],n=t[2];r.hasOwnProperty(n)&&delete r[n]}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("remember",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}for(var e=storage.get("remember")||{},t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0;null!==(r=t.exec(this.args.full));){var n=r[1];e[n]=State.variables[n]}return storage.set("remember",e)?void(Config.debug&&this.debugView.modes({hidden:!0})):this.error("unknown error, cannot remember: "+this.args.raw)},init:function(){var e=storage.get("remember");e&&Object.keys(e).forEach(function(t){return State.variables[t]=e[t]})}}),Macro.add("forget",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story variable list specified");for(var e=storage.get("remember"),t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0,n=!1;null!==(r=t.exec(this.args.full));){var a=r[1];State.variables.hasOwnProperty(a)&&delete State.variables[a],e&&e.hasOwnProperty(a)&&(n=!0,delete e[a])}return n&&!storage.set("remember",e)?this.error("unknown error, cannot update remember store"):void(Config.debug&&this.debugView.modes({hidden:!0}))}}),Macro.add("run","set"),Macro.add("script",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();try{Scripting.evalJavaScript(this.payload[0].contents,e),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e),this.source+this.payload[0].contents+"<</"+this.name+">>")}e.hasChildNodes()&&this.output.appendChild(e)}}),Macro.add("include",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;if(e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],!Story.has(e))return this.error('passage "'+e+'" does not exist');Config.debug&&this.debugView.modes({block:!0}),e=Story.get(e);var t=void 0;t=this.args[1]?jQuery(document.createElement(this.args[1])).addClass(e.domId+" macro-"+this.name).attr("data-passage",e.title).appendTo(this.output):jQuery(this.output),t.wiki(e.processText())}}),Macro.add("nobr",{skipArgs:!0,tags:null,handler:function(){new Wikifier(this.output,this.payload[0].contents.replace(/^\n+|\n+$/g,"").replace(/\n+/g," "))}}),Macro.add(["print","=","-"],{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{var e=toStringOrDefault(Scripting.evalJavaScript(this.args.full),null);null!==e&&new Wikifier(this.output,"-"===this.name?Util.escape(e):e)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}}}),Macro.add("silently",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();if(new Wikifier(e,this.payload[0].contents.trim()),Config.debug)this.debugView.modes({hidden:!0}),this.output.appendChild(e);else{var t=[].concat(_toConsumableArray(e.querySelectorAll(".error"))).map(function(e){return e.textContent});if(t.length>0)return this.error("error"+(1===t.length?"":"s")+" within contents ("+t.join("; ")+")",this.source+this.payload[0].contents+"<</"+this.name+">>")}}}),Macro.add("display","include"),Macro.add("if",{skipArgs:!0,tags:["elseif","else"],handler:function(){var e=0;try{for(var t=Scripting.evalJavaScript,r=this.payload.length,n=!1;e<r;++e){switch(this.payload[e].name){case"else":if(e+1!==r)return this.error("<<else>> must be the final clause");if(this.payload[e].args.raw.length>0)return/^\s*if\b/i.test(this.payload[e].args.raw)?this.error('whitespace is not allowed between the "else" and "if" in <<elseif>> clause'+(e>0?" (#"+e+")":"")):this.error("<<else>> does not accept a conditional expression (perhaps you meant to use <<elseif>>), invalid: "+this.payload[e].args.raw);break;default:if(0===this.payload[e].args.full.length)return this.error("no conditional expression specified for <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":""));if(Config.macros.ifAssignmentError&&/[^!=&^|<>*\/%+-]=[^=]/.test(this.payload[e].args.full))return this.error("assignment operator found within <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":"")+" (perhaps you meant to use an equality operator: ==, ===, eq, is), invalid: "+this.payload[e].args.raw)}if(Config.debug&&this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1}),"else"===this.payload[e].name||t(this.payload[e].args.full)){n=!0,new Wikifier(this.output,this.payload[e].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++e;e<r;++e)this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1,hidden:!0,invalid:!0});this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!n,invalid:!n})}}catch(t){return this.error("bad conditional expression in <<"+(0===e?"if":"elseif")+">> clause"+(e>0?" (#"+e+")":"")+": "+("object"===("undefined"==typeof t?"undefined":_typeof(t))?t.message:t))}}}),Macro.add("switch",{skipArg0:!0,tags:["case","default"],handler:function(){if(0===this.args.full.length)return this.error("no expression specified");var e=this.payload.length,t=void 0;if(1===e)return this.error("no cases specified");try{t=Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}var r=this.debugView,n=1,a=!1;for(Config.debug&&r.modes({nonvoid:!1,hidden:!0});n<e;++n){switch(this.payload[n].name){case"default":if(n+1!==e)return this.error("<<default>> must be the final case");if(this.payload[n].args.length>0)return this.error("<<default>> does not accept values, invalid: "+this.payload[n].args.raw);break;default:if(0===this.payload[n].args.length)return this.error("no value(s) specified for <<"+this.payload[n].name+">> (#"+n+")")}if(Config.debug&&this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1}),"default"===this.payload[n].name||this.payload[n].args.some(function(e){return e===t})){a=!0,new Wikifier(this.output,this.payload[n].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++n;n<e;++n)this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1,hidden:!0,invalid:!0});r.modes({nonvoid:!1,hidden:!0,invalid:!a}),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0,invalid:!a})}}}),Macro.add("for",{skipArgs:!0,tags:null,handler:function(){var e=Scripting.evalJavaScript,t=this.payload[0].contents.replace(/\n$/,""),r=void 0,n=this.args.full.trim(),a=void 0,i=!0,o=Config.macros.maxLoopIterations;if(0===n.length)n=!0;else if(n.indexOf(";")!==-1){var s=n.match(/^([^;]*?)\s*;\s*([^;]*?)\s*;\s*([^;]*?)$/);if(null===s)return this.error("invalid 3-part syntax, format: init ; condition ; post");r=s[1],n=s[2],a=s[3]}if("string"==typeof n){if(/^\S+\s+in\s+\S+/i.test(n))return this.error("invalid syntax, for…in is not supported");if(/^\S+\s+of\s+\S+/i.test(n))return this.error("invalid syntax, for…of is not supported")}Config.debug&&this.debugView.modes({block:!0});try{if(TempState.break=null,r)try{e(r)}catch(e){return this.error("bad init expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}for(;e(n);){if(--o<0)return this.error("exceeded configured maximum loop iterations ("+Config.macros.maxLoopIterations+")");if(new Wikifier(this.output,i?t.replace(/^\n/,""):t),i&&(i=!1),null!=TempState.break)if(1===TempState.break)TempState.break=null;else if(2===TempState.break){TempState.break=null;break}if(a)try{e(a)}catch(e){return this.error("bad post expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}}}catch(e){return this.error("bad conditional expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}finally{TempState.break=null}}}),Macro.add(["break","continue"],{skipArgs:!0,handler:function(){return this.contextHas(function(e){return"for"===e.name})?(TempState.break="continue"===this.name?1:2,void(Config.debug&&this.debugView.modes({hidden:!0}))):this.error("must only be used in conjunction with its parent macro <<for>>")}}),Macro.add(["button","link"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no "+("button"===this.name?"button":"link")+" text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("button"===this.name?"button":"a")),r=void 0;if("object"===_typeof(this.args[0]))if(this.args[0].isImage){var n=jQuery(document.createElement("img")).attr("src",this.args[0].source).appendTo(t);this.args[0].hasOwnProperty("passage")&&n.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&n.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&n.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(r=this.args[0].link),r=this.args[0].link}else t.append(document.createTextNode(this.args[0].text)),r=this.args[0].link;else t.wikiWithOptions({profile:"core"},this.args[0]),r=this.args.length>1?this.args[1]:undefined;null!=r?(t.attr("data-passage",r),Story.has(r)?(t.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(r)&&t.addClass("link-visited")):t.addClass("link-broken")):t.addClass("link-internal"),t.addClass("macro-"+this.name).ariaClick({namespace:".macros",one:null!=r},this.createShadowWrapper(""!==this.payload[0].contents?function(){return Wikifier.wikifyEval(e.payload[0].contents.trim())}:null,null!=r?function(){return Engine.play(r)}:null)).appendTo(this.output)}}),Macro.add("checkbox",{handler:function(){if(this.args.length<3){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("unchecked value"),this.args.length<3&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),n=this.args[1],a=this.args[2],i=document.createElement("input");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"checkbox",tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.checked?a:n)}).appendTo(this.output),this.args.length>3&&"checked"===this.args[3]?(i.checked=!0,Wikifier.setValue(t,a)):Wikifier.setValue(t,n)}}),Macro.add(["linkappend","linkprepend","linkreplace"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no link text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("a")),r=jQuery(document.createElement("span")),n=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]);t.wikiWithOptions({profile:"core"},this.args[0]).addClass("link-internal macro-"+this.name).ariaClick({namespace:".macros",one:!0},this.createShadowWrapper(function(){if("linkreplace"===e.name?t.remove():t.wrap('<span class="macro-'+e.name+'"></span>').replaceWith(function(){return t.html()}),""!==e.payload[0].contents){var a=document.createDocumentFragment();new Wikifier(a,e.payload[0].contents),r.append(a)}n&&setTimeout(function(){return r.removeClass("macro-"+e.name+"-in")},Engine.minDomActionDelay)})).appendTo(this.output),r.addClass("macro-"+this.name+"-insert"),n&&r.addClass("macro-"+this.name+"-in"),"linkprepend"===this.name?r.insertBefore(t):r.insertAfter(t)}}),Macro.add("radiobutton",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),n=this.args[1],a=document.createElement("input");TempState.hasOwnProperty(this.name)||(TempState[this.name]={}),TempState[this.name].hasOwnProperty(r)||(TempState[this.name][r]=0),jQuery(a).attr({id:this.name+"-"+r+"-"+TempState[this.name][r]++,name:this.name+"-"+r,type:"radio",tabindex:0}).addClass("macro-"+this.name).on("change",function(){this.checked&&Wikifier.setValue(t,n)}).appendTo(this.output),this.args.length>2&&"checked"===this.args[2]&&(a.checked=!0,Wikifier.setValue(t,n))}}),Macro.add("textarea",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),n=this.args[1],a="autofocus"===this.args[2],i=document.createElement("textarea");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,rows:4,tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.value)}).appendTo(this.output),Wikifier.setValue(t,n),i.textContent=n,a&&(i.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+i.id]=function(e){delete postdisplay[e],setTimeout(function(){return i.focus()},Engine.minDomActionDelay)})}}),Macro.add("textbox",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),n=this.args[1],a=document.createElement("input"),i=!1,o=void 0;this.args.length>3?(o=this.args[2],i="autofocus"===this.args[3]):this.args.length>2&&("autofocus"===this.args[2]?i=!0:o=this.args[2]),jQuery(a).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"text",tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.value)}).on("keypress",function(e){13===e.which&&(e.preventDefault(),Wikifier.setValue(t,this.value),null!=o&&Engine.play(o))}).appendTo(this.output),Wikifier.setValue(t,n),a.value=n,i&&(a.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+a.id]=function(e){delete postdisplay[e],setTimeout(function(){return a.focus()},Engine.minDomActionDelay)})}}),Macro.add("click","link"),Macro.add("actions",{handler:function(){for(var e=jQuery(document.createElement("ul")).addClass(this.name).appendTo(this.output),t=0;t<this.args.length;++t){var r=void 0,n=void 0,a=void 0,i=void 0;"object"===_typeof(this.args[t])?this.args[t].isImage?(a=jQuery(document.createElement("img")).attr("src",this.args[t].source),this.args[t].hasOwnProperty("passage")&&a.attr("data-passage",this.args[t].passage),this.args[t].hasOwnProperty("title")&&a.attr("title",this.args[t].title),this.args[t].hasOwnProperty("align")&&a.attr("align",this.args[t].align),r=this.args[t].link,i=this.args[t].setFn):(n=this.args[t].text,r=this.args[t].link,i=this.args[t].setFn):n=r=this.args[t],State.variables.hasOwnProperty("#actions")&&State.variables["#actions"].hasOwnProperty(r)&&State.variables["#actions"][r]||jQuery(Wikifier.createInternalLink(jQuery(document.createElement("li")).appendTo(e),r,null,function(e,t){return function(){State.variables.hasOwnProperty("#actions")||(State.variables["#actions"]={}),State.variables["#actions"][e]=!0,"function"==typeof t&&t()}}(r,i))).addClass("macro-"+this.name).append(a||document.createTextNode(n))}}}),Macro.add(["back","return"],{handler:function(){if(this.args.length>1)return this.error("too many arguments specified, check the documentation for details");var e=-1,t=void 0,r=void 0,n=void 0;if(1===this.args.length&&("object"===_typeof(this.args[0])?this.args[0].isImage?(n=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&n.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&n.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&n.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(t=this.args[0].link)):1===this.args[0].count?t=this.args[0].link:(r=this.args[0].text,t=this.args[0].link):1===this.args.length&&(r=this.args[0])),null==t){for(var a=State.length-2;a>=0;--a)if(State.history[a].title!==State.passage){e=a,t=State.history[a].title;break}if(null==t&&"return"===this.name)for(var i=State.expired.length-1;i>=0;--i)if(State.expired[i]!==State.passage){t=State.expired[i];break}}else{if(!Story.has(t))return this.error('passage "'+t+'" does not exist');if("back"===this.name){for(var o=State.length-2;o>=0;--o)if(State.history[o].title===t){e=o;break}if(e===-1)return this.error('cannot find passage "'+t+'" in the current story history')}}if(null==t)return this.error("cannot find passage");var s=void 0;s="back"!==this.name||e!==-1?jQuery(document.createElement("a")).addClass("link-internal").ariaClick({one:!0},"return"===this.name?function(){return Engine.play(t)}:function(){return Engine.goTo(e)}):jQuery(document.createElement("span")).addClass("link-disabled"),s.addClass("macro-"+this.name).append(n||document.createTextNode(r||L10n.get("macro"+this.name.toUpperFirst()+"Text"))).appendTo(this.output)}}),Macro.add("choice",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=State.passage,t=void 0,r=void 0,n=void 0,a=void 0;return 1===this.args.length?"object"===_typeof(this.args[0])?this.args[0].isImage?(n=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&n.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&n.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&n.attr("align",this.args[0].align),t=this.args[0].link,a=this.args[0].setFn):(r=this.args[0].text,t=this.args[0].link,a=this.args[0].setFn):r=t=this.args[0]:(t=this.args[0],r=this.args[1]),State.variables.hasOwnProperty("#choice")&&State.variables["#choice"].hasOwnProperty(e)&&State.variables["#choice"][e]?void jQuery(document.createElement("span")).addClass("link-disabled macro-"+this.name).attr("tabindex",-1).append(n||document.createTextNode(r)).appendTo(this.output):void jQuery(Wikifier.createInternalLink(this.output,t,null,function(){State.variables.hasOwnProperty("#choice")||(State.variables["#choice"]={}),State.variables["#choice"][e]=!0,"function"==typeof a&&a()})).addClass("macro-"+this.name).append(n||document.createTextNode(r))}}),Macro.add(["addclass","toggleclass"],{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("selector"),this.args.length<2&&e.push("class names"),this.error("no "+e.join(" or ")+" specified")}var t=jQuery(this.args[0]);if(0===t.length)return this.error('no elements matched the selector "'+this.args[0]+'"');switch(this.name){case"addclass":t.addClass(this.args[1].trim());break;case"toggleclass":t.toggleClass(this.args[1].trim())}}}),Macro.add("removeclass",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void(this.args.length>1?e.removeClass(this.args[1].trim()):e.removeClass())}}),Macro.add("copy",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void jQuery(this.output).append(e.html())}}),Macro.add(["append","prepend","replace"],{tags:null,handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');if(""!==this.payload[0].contents){var t=document.createDocumentFragment();switch(new Wikifier(t,this.payload[0].contents),this.name){case"replace":e.empty();case"append":e.append(t);break;case"prepend":e.prepend(t)}}else"replace"===this.name&&e.empty()}}),Macro.add("remove",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void e.remove()}}),Has.audio?(Macro.add("audio",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track ID"),this.args.length<2&&e.push("actions"),this.error("no "+e.join(" or ")+" specified")}var t=Macro.get("cacheaudio").tracks,r=[":all",":looped",":muted",":paused",":playing"],n=String(this.args[0]).trim();if(!r.includes(n)&&!t.hasOwnProperty(n))return this.error('track "'+n+'" does not exist');for(var a=this.args.slice(1),i=void 0,o=void 0,s=void 0,u=void 0,l=void 0,c=void 0,d=5,p=void 0,f=void 0;a.length>0;){var h=a.shift();switch(h){case"play":case"pause":case"stop":i=h;break;case"fadein":i="fade",c=1;break;case"fadeout":i="fade",c=0;break;case"fadeto":if(0===a.length)return this.error("fadeto missing required level value");if(i="fade",f=a.shift(),c=Number.parseFloat(f),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse fadeto: "+f);break;case"fadeoverto":if(a.length<2){var g=[];return a.length<1&&g.push("seconds"),a.length<2&&g.push("level"),this.error("fadeoverto missing required "+g.join(" and ")+" value"+(g.length>1?"s":""))}if(i="fade",f=a.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeoverto: "+f);if(f=a.shift(),c=Number.parseFloat(f),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse fadeoverto: "+f);break;case"volume":if(0===a.length)return this.error("volume missing required level value");if(f=a.shift(),o=Number.parseFloat(f),Number.isNaN(o)||!Number.isFinite(o))return this.error("cannot parse volume: "+f);break;case"mute":case"unmute":s="mute"===h;break;case"time":if(0===a.length)return this.error("time missing required seconds value");if(f=a.shift(),u=Number.parseFloat(f),Number.isNaN(u)||!Number.isFinite(u))return this.error("cannot parse time: "+f);break;case"loop":case"unloop":l="loop"===h;break;case"goto":if(0===a.length)return this.error("goto missing required passage title");if(f=a.shift(),p="object"===("undefined"==typeof f?"undefined":_typeof(f))?f.link:f,!Story.has(p))return this.error('passage "'+p+'" does not exist');break;default:return this.error("unknown action: "+h)}}var m=void 0;switch(n){case":all":m=Object.keys(t);break;case":looped":m=Object.keys(t).filter(function(e){return t[e].isLooped()});break;case":muted":m=Object.keys(t).filter(function(e){return t[e].isMuted()});break;case":paused":m=Object.keys(t).filter(function(e){return t[e].isPaused()});break;case":playing":m=Object.keys(t).filter(function(e){return t[e].isPlaying()});break;default:m=[n]}try{m.forEach(function(e){var r=t[e];switch(null!=o&&(r.volume=o),null!=u&&(r.time=u),null!=s&&(r.mute=s),null!=l&&(r.loop=l),null!=p&&r.one("end",function(){return Engine.play(p)}),i){case"play":r.play();break;case"pause":r.pause();break;case"stop":r.stop();break;case"fade":r.fadeWithDuration(d,c)}}),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing audio action: "+e.message)}}}),Macro.add("cacheaudio",{tracks:{},handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track ID"),this.args.length<2&&e.push("sources"),this.error("no "+e.join(" or ")+" specified")}var t=String(this.args[0]).trim(),r=/^:|\s/;if(r.test(t))return this.error('invalid track ID "'+t+'": track IDs may not start with a colon or contain whitespace');var n=/^format:\s*([\w-]+)\s*;\s*(\S.*)$/i,a=void 0;try{a=SimpleAudio.create(this.args.slice(1).map(function(e){var t=n.exec(e);return null===t?e:{format:t[1],src:t[2]}}))}catch(e){return this.error('error during track initialization for "'+t+'": '+e.message)}if(Config.debug&&!a.hasSource())return this.error('no supported audio sources found for "'+t+'"');var i=this.self.tracks;i.hasOwnProperty(t)&&i[t].destroy(),i[t]=a,Config.debug&&this.createDebugView()}}),Macro.add("createplaylist",{tags:["track"],lists:{},handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("playlist");if(null!==e.from&&"createplaylist"!==e.from)return this.error("a playlist has already been defined with <<setplaylist>>");var t=Macro.get("cacheaudio").tracks,r=String(this.args[0]).trim(),n=/^:|\s/;if(n.test(r))return this.error('invalid list ID "'+r+'": list IDs may not start with a colon or contain whitespace');if(1===this.payload.length)return this.error("no tracks defined via <<track>>");Config.debug&&this.debugView.modes({nonvoid:!1,hidden:!0});for(var a=SimpleAudio.createList(),i=1,o=this.payload.length;i<o;++i){if(this.payload[i].args.length<2){var s=[];return this.payload[i].args.length<1&&s.push("track ID"),this.payload[i].args.length<2&&s.push("actions"),this.error("no "+s.join(" or ")+" specified")}var u=String(this.payload[i].args[0]).trim();if(!t.hasOwnProperty(u))return this.error('track "'+u+'" does not exist');for(var l=this.payload[i].args.slice(1),c=!1,d=void 0;l.length>0;){var p=l.shift(),f=void 0;switch(p){case"copy":c=!0;break;case"rate":l.length>0&&l.shift();break;case"volume":if(0===l.length)return this.error("volume missing required level value"); -if(f=l.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse volume: "+f);break;default:return this.error("unknown action: "+p)}}var h=t[u];a.add({copy:c,track:h,volume:null!=d?d:h.volume}),Config.debug&&this.createDebugView(this.payload[i].name,this.payload[i].source).modes({nonvoid:!1,hidden:!0})}var g=this.self.lists;g.hasOwnProperty(r)&&g[r].destroy(),g[r]=a,null===e.from&&(e.from="createplaylist"),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0})}}),Macro.add("masteraudio",{handler:function(){if(0===this.args.length)return this.error("no actions specified");for(var e=this.args.slice(0),t=!1,r=void 0,n=void 0;e.length>0;){var a=e.shift(),i=void 0;switch(a){case"stop":t=!0;break;case"mute":case"unmute":r="mute"===a;break;case"volume":if(0===e.length)return this.error("volume missing required level value");if(i=e.shift(),n=Number.parseFloat(i),Number.isNaN(n)||!Number.isFinite(n))return this.error("cannot parse volume: "+i);break;default:return this.error("unknown action: "+a)}}try{null!=r&&(SimpleAudio.mute=r),null!=n&&(SimpleAudio.volume=n),t&&SimpleAudio.stop(),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing master audio action: "+e.message)}}}),Macro.add("playlist",{from:null,handler:function(){var e=this.self.from;if(null===e)return this.error("no playlists have been created");var t=void 0,r=void 0;if("createplaylist"===e){if(this.args.length<2){var n=[];return this.args.length<1&&n.push("list ID"),this.args.length<2&&n.push("actions"),this.error("no "+n.join(" or ")+" specified")}var a=Macro.get("createplaylist").lists,i=String(this.args[0]).trim();if(!a.hasOwnProperty(i))return this.error('playlist "'+i+'" does not exist');t=a[i],r=this.args.slice(1)}else{if(0===this.args.length)return this.error("no actions specified");t=Macro.get("setplaylist").list,r=this.args.slice(0)}for(var o=void 0,s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,p=5,f=void 0;r.length>0;){var h=r.shift();switch(h){case"play":case"pause":case"stop":case"skip":o=h;break;case"fadein":o="fade",d=1;break;case"fadeout":o="fade",d=0;break;case"fadeto":if(0===r.length)return this.error("fadeto missing required level value");if(o="fade",f=r.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeto: "+f);break;case"fadeoverto":if(r.length<2){var g=[];return r.length<1&&g.push("seconds"),r.length<2&&g.push("level"),this.error("fadeoverto missing required "+g.join(" and ")+" value"+(g.length>1?"s":""))}if(o="fade",f=r.shift(),p=Number.parseFloat(f),Number.isNaN(p)||!Number.isFinite(p))return this.error("cannot parse fadeoverto: "+f);if(f=r.shift(),d=Number.parseFloat(f),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeoverto: "+f);break;case"volume":if(0===r.length)return this.error("volume missing required level value");if(f=r.shift(),s=Number.parseFloat(f),Number.isNaN(s)||!Number.isFinite(s))return this.error("cannot parse volume: "+f);break;case"mute":case"unmute":u="mute"===h;break;case"loop":case"unloop":l="loop"===h;break;case"shuffle":case"unshuffle":c="shuffle"===h;break;default:return this.error("unknown action: "+h)}}try{switch(null!=s&&(t.volume=s),null!=u&&(t.mute=u),null!=l&&(t.loop=l),null!=c&&(t.shuffle=c),o){case"play":t.play();break;case"pause":t.pause();break;case"stop":t.stop();break;case"skip":t.skip();break;case"fade":t.fadeWithDuration(p,d)}Config.debug&&this.createDebugView()}catch(e){return this.error("error playing audio: "+e.message)}}}),Macro.add("removeplaylist",{handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("createplaylist").lists,t=String(this.args[0]).trim();return e.hasOwnProperty(t)?(e[t].destroy(),delete e[t],void(Config.debug&&this.createDebugView())):this.error('playlist "'+t+'" does not exist')}}),Macro.add("waitforaudio",{skipArgs:!0,queue:[],handler:function(){function e(){if(0===t.length)return LoadScreen.unlock(r);var n=t.shift();return n.hasData()?e():void n.one("canplay.waitforaudio error.waitforaudio",function(){jQuery(this).off(".waitforaudio"),e()}).load()}var t=this.self.queue,r=void 0;t.length>0||(this.self.fillQueue(t),t.length>0&&(r=LoadScreen.lock(),e()))},fillQueue:function(e){var t=Macro.get("cacheaudio").tracks;Object.keys(t).forEach(function(r){return e.push(t[r])});var r=Macro.get("createplaylist").lists;if(Object.keys(r).map(function(e){return r[e].tracks}).flatten().filter(function(e){return e.copy}).forEach(function(t){return e.push(t.track)}),Macro.has("setplaylist")){var n=Macro.get("setplaylist").list;null!==n&&n.tracks.forEach(function(t){return e.push(t.track)})}}}),Macro.add("setplaylist",{list:null,handler:function(){if(0===this.args.length)return this.error("no track ID(s) specified");var e=Macro.get("playlist");if(null!==e.from&&"setplaylist"!==e.from)return this.error("playlists have already been defined with <<createplaylist>>");var t=this.self,r=Macro.get("cacheaudio").tracks;null!==t.list&&t.list.destroy(),t.list=SimpleAudio.createList();for(var n=0;n<this.args.length;++n){var a=this.args[n];if(!r.hasOwnProperty(a))return this.error('track "'+a+'" does not exist');t.list.add(r[a])}null===e.from&&(e.from="setplaylist"),Config.debug&&this.createDebugView()}}),Macro.add("stopallaudio",{skipArgs:!0,handler:function(){var e=Macro.get("cacheaudio").tracks;Object.keys(e).forEach(function(t){return e[t].stop()}),Config.debug&&this.createDebugView()}})):Macro.add(["audio","cacheaudio","createplaylist","masteraudio","playlist","removeplaylist","waitforaudio","setplaylist","stopallaudio"],{skipArgs:!0,handler:function(){}}),Macro.add("goto",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;return e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],Story.has(e)?void setTimeout(function(){return Engine.play(e)},Engine.minDomActionDelay):this.error('passage "'+e+'" does not exist')}}),Macro.add("timed",{isAsync:!0,tags:["next"],timers:new Set,handler:function(){if(0===this.args.length)return this.error("no time value specified in <<timed>>");var e=[];try{e.push({name:this.name,source:this.source,delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0])),content:this.payload[0].contents})}catch(e){return this.error(e.message+" in <<timed>>")}if(this.payload.length>1){var t=void 0;try{var r=void 0;for(t=1,r=this.payload.length;t<r;++t)e.push({name:this.payload[t].name,source:this.payload[t].source,delay:0===this.payload[t].args.length?e[e.length-1].delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.payload[t].args[0])),content:this.payload[t].contents})}catch(e){return this.error(e.message+" in <<next>> (#"+t+")")}}Config.debug&&this.debugView.modes({block:!0});var n=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),a=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerTimeout(this.createShadowWrapper(function(e){var t=document.createDocumentFragment();new Wikifier(t,e.content);var r=a;Config.debug&&"next"===e.name&&(r=jQuery(new DebugView(r[0],"macro",e.name,e.source).output)),n&&(r=jQuery(document.createElement("span")).addClass("macro-timed-insert macro-timed-in").appendTo(r)),r.append(t),n&&setTimeout(function(){return r.removeClass("macro-timed-in")},Engine.minDomActionDelay)}),e)},registerTimeout:function(e,t){if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var r=State.turns,n=this.timers,a=null,i=t.shift(),o=function o(){if(n.delete(a),r===State.turns){var s=i;null!=(i=t.shift())&&(a=setTimeout(o,i.delay),n.add(a)),e.call(this,s)}};a=setTimeout(o,i.delay),n.add(a),prehistory.hasOwnProperty("#timed-timers-cleanup")||(prehistory["#timed-timers-cleanup"]=function(e){delete prehistory[e],n.forEach(function(e){return clearTimeout(e)}),n.clear()})}}),Macro.add("repeat",{isAsync:!0,tags:null,timers:new Set,handler:function(){var e=this;if(0===this.args.length)return this.error("no time value specified");var t=void 0;try{t=Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0]))}catch(e){return this.error(e.message)}Config.debug&&this.debugView.modes({block:!0});var r=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),n=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerInterval(this.createShadowWrapper(function(){var t=document.createDocumentFragment();new Wikifier(t,e.payload[0].contents);var a=n;r&&(a=jQuery(document.createElement("span")).addClass("macro-repeat-insert macro-repeat-in").appendTo(a)),a.append(t),r&&setTimeout(function(){return a.removeClass("macro-repeat-in")},Engine.minDomActionDelay)}),t)},registerInterval:function(e,t){var r=this;if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var n=State.turns,a=this.timers,i=null;i=setInterval(function(){if(n!==State.turns)return clearInterval(i),void a.delete(i);var t=void 0;try{TempState.break=null,TempState.hasOwnProperty("repeatTimerId")&&(t=TempState.repeatTimerId),TempState.repeatTimerId=i,e.call(r)}finally{"undefined"!=typeof t?TempState.repeatTimerId=t:delete TempState.repeatTimerId,TempState.break=null}},t),a.add(i),prehistory.hasOwnProperty("#repeat-timers-cleanup")||(prehistory["#repeat-timers-cleanup"]=function(e){delete prehistory[e],a.forEach(function(e){return clearInterval(e)}),a.clear()})}}),Macro.add("stop",{skipArgs:!0,handler:function(){if(!TempState.hasOwnProperty("repeatTimerId"))return this.error("must only be used in conjunction with its parent macro <<repeat>>");var e=Macro.get("repeat").timers,t=TempState.repeatTimerId;clearInterval(t),e.delete(t),TempState.break=2,Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("widget",{tags:null,handler:function(){if(0===this.args.length)return this.error("no widget name specified");var e=this.args[0];if(Macro.has(e)){if(!Macro.get(e).isWidget)return this.error('cannot clobber existing macro "'+e+'"');Macro.delete(e)}try{Macro.add(e,{isWidget:!0,handler:function(e){return function(){var t=this,r=void 0;try{var n=function(){State.variables.hasOwnProperty("args")&&(r=State.variables.args),State.variables.args=[].concat(_toConsumableArray(t.args)),State.variables.args.raw=t.args.raw,State.variables.args.full=t.args.full,t.addShadow("$args");var n=document.createDocumentFragment(),a=[];return new Wikifier(n,e),Array.from(n.querySelectorAll(".error")).forEach(function(e){a.push(e.textContent)}),0!==a.length?{v:t.error("error"+(a.length>1?"s":"")+" within widget contents ("+a.join("; ")+")")}:void t.output.appendChild(n)}();if("object"===("undefined"==typeof n?"undefined":_typeof(n)))return n.v}catch(e){return this.error("cannot execute widget: "+e.message)}finally{"undefined"!=typeof r?State.variables.args=r:delete State.variables.args}}}(this.payload[0].contents)}),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(t){return this.error('cannot create widget macro "'+e+'": '+t.message)}}})}();var Dialog=function(){function e(){m=function(){var e=void 0;try{var t=document.createElement("p"),r=document.createElement("div");t.style.width="100%",t.style.height="200px",r.style.position="absolute",r.style.left="0px",r.style.top="0px",r.style.width="100px",r.style.height="100px",r.style.visibility="hidden",r.style.overflow="hidden",r.appendChild(t),document.body.appendChild(r);var n=t.offsetWidth;r.style.overflow="auto";var a=t.offsetWidth;n===a&&(a=r.clientWidth),document.body.removeChild(r),e=n-a}catch(e){}return e||17}();var e=jQuery(document.createDocumentFragment()).append('<div id="ui-overlay" class="ui-close"></div><div id="ui-dialog" tabindex="0" role="dialog" aria-labelledby="ui-dialog-title"><div id="ui-dialog-titlebar"><h1 id="ui-dialog-title"></h1>'+('<button id="ui-dialog-close" class="ui-close" tabindex="0" aria-label="'+L10n.get("close")+'">î „</button>')+'</div><div id="ui-dialog-body"></div></div>');d=jQuery(e.find("#ui-overlay").get(0)),p=jQuery(e.find("#ui-dialog").get(0)),f=jQuery(e.find("#ui-dialog-title").get(0)),h=jQuery(e.find("#ui-dialog-body").get(0)),e.insertBefore("#store-area")}function t(e){return p.hasClass("open")&&(!e||e.splitOrEmpty(/\s+/).every(function(e){return h.hasClass(e)}))}function r(e,t){return h.empty().removeClass(),null!=t&&h.addClass(t),f.empty().append((null!=e?String(e):"")||" "),h.get(0)}function n(){return h.get(0)}function a(){var e;return(e=h).append.apply(e,arguments),Dialog}function i(){var e;return(e=h).wiki.apply(e,arguments),Dialog}function o(e,t,r,n,a){return jQuery(e).ariaClick(function(e){e.preventDefault(),"function"==typeof r&&r(e),s(t,a),"function"==typeof n&&n(e)})}function s(e,r){var n=jQuery.extend({top:50},e),a=n.top;t()||(g=safeActiveElement()),jQuery(document.documentElement).addClass("ui-dialog-open"),d.addClass("open"),null!==h[0].querySelector("img")&&h.imagesLoaded().always(function(){return l({data:{top:a}})}),jQuery("body>:not(script,#store-area,#ui-bar,#ui-overlay,#ui-dialog)").attr("tabindex",-3).attr("aria-hidden",!0),jQuery("#ui-bar,#story").find("[tabindex]:not([tabindex^=-])").attr("tabindex",-2).attr("aria-hidden",!0);var i=c(a);return p.css(i).addClass("open").focus(),jQuery(window).on("resize.ui-resize",null,{top:a},jQuery.throttle(40,l)),jQuery(document).on("click.ui-close",".ui-close",{closeFn:r},u).on("keypress.ui-close",".ui-close",function(e){13!==e.which&&32!==e.which||jQuery(this).trigger("click")}),setTimeout(function(){return jQuery.event.trigger("tw:dialogopened")},Engine.minDomActionDelay),Dialog}function u(e){return jQuery(document).off(".ui-close"),jQuery(window).off("resize.ui-resize"),p.removeClass("open").css({left:"",right:"",top:"",bottom:""}),jQuery("#ui-bar,#story").find("[tabindex=-2]").removeAttr("aria-hidden").attr("tabindex",0),jQuery("body>[tabindex=-3]").removeAttr("aria-hidden").removeAttr("tabindex"),f.empty(),h.empty().removeClass(),d.removeClass("open"),jQuery(document.documentElement).removeClass("ui-dialog-open"),null!==g&&(jQuery(g).focus(),g=null),e&&e.data&&"function"==typeof e.data.closeFn&&e.data.closeFn(e),setTimeout(function(){return jQuery.event.trigger("tw:dialogclosed")},Engine.minDomActionDelay),Dialog}function l(e){var t=e&&e.data&&"undefined"!=typeof e.data.top?e.data.top:50;"block"===p.css("display")&&(p.css({display:"none"}),p.css(jQuery.extend({display:""},c(t))))}function c(e){var t=null!=e?e:50,r=jQuery(window),n={left:"",right:"",top:"",bottom:""};p.css(n);var a=r.width()-p.outerWidth(!0)-1,i=r.height()-p.outerHeight(!0)-1;return a<=32+m&&(i-=m),i<=32+m&&(a-=m),a<=32?n.left=n.right=16:n.left=n.right=~~(a/2),i<=32?n.top=n.bottom=16:i/2>t?n.top=t:n.top=n.bottom=~~(i/2),Object.keys(n).forEach(function(e){""!==n[e]&&(n[e]+="px")}),n}var d=null,p=null,f=null,h=null,g=null,m=0;return Object.freeze(Object.defineProperties({},{init:{value:e},isOpen:{value:t},setup:{value:r},body:{value:n},append:{value:a},wiki:{value:i},addClickHandler:{value:o},open:{value:s},close:{value:u},resize:{value:function(){return l()}}}))}(),Engine=function(){function e(){if(Story.has("StoryInit"))try{var e=Wikifier.wikifyEval(Story.get("StoryInit").text);if(Config.debug){var t=new DebugView(document.createDocumentFragment(),"special","StoryInit","StoryInit");t.modes({hidden:!0}),t.append(e),y=t.output}}catch(e){Alert.error("StoryInit",e.message)}if(Config.history.maxStates=Math.max(0,Config.history.maxStates),Number.isSafeInteger(Config.history.maxStates)||(Config.history.maxStates=100),1===Config.history.maxStates&&(Config.history.controls=!1),Config.debug&&DebugView.init(),null==Config.passages.start)throw new Error("starting passage not selected");if(!Story.has(Config.passages.start))throw new Error('starting passage ("'+Config.passages.start+'") not found');if(State.restore())d();else{var r=!0;switch(_typeof(Config.saves.autoload)){case"boolean":Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!Save.autosave.load());break;case"string":"prompt"===Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!1,UI.buildDialogAutoload(),UI.open());break;case"function":Save.autosave.ok()&&Save.autosave.has()&&Config.saves.autoload()&&(r=!Save.autosave.load())}r&&p(Config.passages.start)}}function t(){LoadScreen.show(),window.scroll(0,0),State.reset(),window.location.reload()}function r(){return m}function n(){return m===h.Idle}function a(){return m!==h.Idle}function i(){return m===h.Rendering}function o(){return v}function s(e){var t=State.goTo(e);return t&&d(),t}function u(e){var t=State.go(e);return t&&d(),t}function l(){return u(-1)}function c(){return u(1)}function d(){return p(State.passage,!0)}function p(e,t){var r=e;m=h.Playing,TempState={},State.clearTemporary();var n=void 0,a=void 0;if("function"==typeof Config.navigation.override)try{var i=Config.navigation.override(r);i&&(r=i)}catch(e){}var o=Story.get(r);if(Object.keys(prehistory).forEach(function(e){"function"==typeof prehistory[e]&&prehistory[e].call(this,e)},o),t||State.create(o.title),document.body.className&&(document.body.className=""),Object.keys(predisplay).forEach(function(e){"function"==typeof predisplay[e]&&predisplay[e].call(this,e)},o),Story.has("PassageReady"))try{n=Wikifier.wikifyEval(Story.get("PassageReady").text)}catch(e){Alert.error("PassageReady",e.message)}m=h.Rendering;var s=jQuery(o.render()),u=document.getElementById("passages");if(u.hasChildNodes()&&("number"==typeof Config.passages.transitionOut||"string"==typeof Config.passages.transitionOut&&""!==Config.passages.transitionOut&&""!==Config.transitionEndEventName?[].concat(_toConsumableArray(u.childNodes)).forEach(function(e){var t=jQuery(e);if(e.nodeType===Node.ELEMENT_NODE&&t.hasClass("passage")){if(t.hasClass("passage-out"))return;t.attr("id","out-"+t.attr("id")).addClass("passage-out"),"string"==typeof Config.passages.transitionOut?t.on(Config.transitionEndEventName,function(e){e.originalEvent.propertyName===Config.passages.transitionOut&&t.remove()}):setTimeout(function(){return t.remove()},Math.max(g,Config.passages.transitionOut))}else t.remove()}):jQuery(u).empty()),s.addClass("passage-in").appendTo(u),setTimeout(function(){return s.removeClass("passage-in")},g),document.title=Config.passages.displayTitles&&o.title!==Config.passages.start?o.title+" | "+Story.title:Story.title,window.scroll(0,0),m=h.Playing,Story.has("PassageDone"))try{a=Wikifier.wikifyEval(Story.get("PassageDone").text)}catch(e){Alert.error("PassageDone",e.message)}if(Object.keys(postdisplay).forEach(function(e){"function"==typeof postdisplay[e]&&postdisplay[e].call(this,e)},o),Config.ui.updateStoryElements&&UI.setStoryElements(),Config.debug){var l=void 0;null!=n&&(l=new DebugView(document.createDocumentFragment(),"special","PassageReady","PassageReady"),l.modes({hidden:!0}),l.append(n),s.prepend(l.output)),null!=a&&(l=new DebugView(document.createDocumentFragment(),"special","PassageDone","PassageDone"),l.modes({hidden:!0}),l.append(a),s.append(l.output)),1===State.turns&&null!=y&&s.prepend(y)}switch(v=Date.now(),UI.hideOutlines(),jQuery("#story").find("a[href]:not(.link-external)").addClass("link-external").end().find("a,link,button,input,select,textarea").not("[tabindex]").attr("tabindex",0),_typeof(Config.saves.autosave)){case"boolean":Config.saves.autosave&&Save.autosave.save();break;case"string":o.tags.includes(Config.saves.autosave)&&Save.autosave.save();break;case"object":Array.isArray(Config.saves.autosave)&&o.tags.some(function(e){return Config.saves.autosave.includes(e)})&&Save.autosave.save()}return m=h.Idle,s[0]}function f(e,t,r){var n=!1;switch(r){case undefined:break;case"replace":case"back":n=!0;break;default:throw new Error('Engine.display option parameter called with obsolete value "'+r+'"; please notify the developer')}p(e,n)}var h=Util.toEnum({Idle:"idle",Playing:"playing",Rendering:"rendering"}),g=40,m=h.Idle,v=null,y=null;return Object.freeze(Object.defineProperties({},{States:{value:h},minDomActionDelay:{value:g},start:{value:e},restart:{value:t},state:{get:r},isIdle:{value:n},isPlaying:{value:a},isRendering:{value:i},lastPlay:{get:o},goTo:{value:s},go:{value:u},backward:{value:l},forward:{value:c},show:{value:d},play:{value:p},display:{value:f}}))}(),Passage=function(){var e=void 0,t=void 0;e=/^(?:debug|nobr|passage|script|stylesheet|widget|twine\..*)$/i,!function(){var e=/(?:\\n|\\t|\\s|\\|\r)/g,r=new RegExp(e.source),n=Object.freeze({"\\n":"\n","\\t":"\t","\\s":"\\","\\":"\\","\r":""});t=function(t){if(null==t)return"";var a=String(t);return a&&r.test(a)?a.replace(e,function(e){return n[e]}):a}}();var r=function(){function r(t,n){var a=this;_classCallCheck(this,r),Object.defineProperties(this,{title:{value:Util.unescape(t)},element:{value:n||null},tags:{value:Object.freeze(n&&n.hasAttribute("tags")?n.getAttribute("tags").trim().splitOrEmpty(/\s+/).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}):[])},_excerpt:{writable:!0,value:null}}),Object.defineProperties(this,{domId:{value:"passage-"+Util.slugify(this.title)},classes:{value:Object.freeze(0===this.tags.length?[]:function(){return a.tags.filter(function(t){return!e.test(t)}).map(function(e){return Util.slugify(e)})}())}})}return _createClass(r,[{key:"description",value:function(){var e=Config.passages.descriptions;if(null!=e)switch("undefined"==typeof e?"undefined":_typeof(e)){case"boolean":if(e)return this.title;break;case"object":if(e instanceof Map&&e.has(this.title))return e.get(this.title);if(e.hasOwnProperty(this.title))return e[this.title];break;case"function":var t=e.call(this);if(t)return t;break;default:throw new TypeError("Config.passages.descriptions must be a boolean, object, or function")}return null===this._excerpt&&(this._excerpt=r.getExcerptFromText(this.text)),this._excerpt}},{key:"processText",value:function(){var e=this.text;return this.tags.includes("nobr")&&(e=e.replace(/^\n+|\n+$/g,"").replace(/\n+/g," ")),this.tags.includes("Twine.image")&&(e="[img["+e+"]]"),e}},{key:"render",value:function(){var e=this,t=document.createElement("div");return jQuery(t).attr({id:this.domId,"data-passage":this.title,"data-tags":this.tags.join(" ")}).addClass("passage "+this.className),jQuery(document.body).addClass(this.className),Object.keys(prerender).forEach(function(r){"function"==typeof prerender[r]&&prerender[r].call(e,t,r)}),Story.has("PassageHeader")&&new Wikifier(t,Story.get("PassageHeader").processText()),new Wikifier(t,this.processText()),Story.has("PassageFooter")&&new Wikifier(t,Story.get("PassageFooter").processText()),Object.keys(postrender).forEach(function(r){"function"==typeof postrender[r]&&postrender[r].call(e,t,r)}),this._excerpt=r.getExcerptFromNode(t),t}},{key:"className",get:function(){return this.classes.join(" ")}},{key:"text",get:function(){if(null==this.element){var e=Util.escape(this.title);return'<span class="error" title="'+e+'">'+L10n.get("errorTitle")+": "+L10n.get("errorNonexistentPassage",{passage:e})+"</span>"}return t(this.element.textContent)}}],[{key:"getExcerptFromNode",value:function(e,t){if(!e.hasChildNodes())return"";var r=e.textContent.trim();if(""!==r){var n=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})");r=r.replace(/\s+/g," ").match(n)}return r?r[1]+"…":"…"}},{key:"getExcerptFromText",value:function(e,t){if(""===e)return"";var r=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})"),n=e.replace(/<<.*?>>/g," ").replace(/<.*?>/g," ").trim().replace(/^\s*\|.*\|.*?$/gm,"").replace(/\[[<>]?img\[[^\]]*\]\]/g,"").replace(/\[\[([^|\]]*)(?:|[^\]]*)?\]\]/g,"$1").replace(/^\s*!+(.*?)$/gm,"$1").replace(/'{2}|\/{2}|_{2}|@{2}/g,"").trim().replace(/\s+/g," ").match(r);return n?n[1]+"…":"…"}}]),r}();return r}(),Save=function(){function e(){if("cookie"===storage.name)return n(),Config.saves.autosave=undefined,Config.saves.slots=0,!1;Config.saves.slots=Math.max(0,Config.saves.slots),Number.isSafeInteger(Config.saves.slots)||(Config.saves.slots=8);var e=r(),t=!1;Array.isArray(e)&&(e={autosave:null,slots:e},t=!0),Config.saves.slots!==e.slots.length&&(Config.saves.slots<e.slots.length?(e.slots.reverse(),e.slots=e.slots.filter(function(e){return!(null===e&&this.count>0)||(--this.count,!1)},{count:e.slots.length-Config.saves.slots}),e.slots.reverse()):Config.saves.slots>e.slots.length&&S(e.slots,Config.saves.slots-e.slots.length),t=!0),j(e.autosave)&&(t=!0);for(var a=0;a<e.slots.length;++a)j(e.slots[a])&&(t=!0);return E(e)&&(storage.delete("saves"),t=!1),t&&x(e),T=e.slots.length-1,!0}function t(){return{autosave:null,slots:S([],Config.saves.slots)}}function r(){var e=storage.get("saves");return null===e?t():e}function n(){return storage.delete("saves"),!0}function a(){return i()||d()}function i(){return"cookie"!==storage.name&&"undefined"!=typeof Config.saves.autosave}function o(){var e=r();return null!==e.autosave}function s(){var e=r();return e.autosave}function u(){var e=r();return null!==e.autosave&&O(e.autosave)}function l(e,t){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return!1;var n=r(),a={title:e||Story.get(State.passage).description(),date:Date.now()};return null!=t&&(a.metadata=t),n.autosave=C(a),x(n)}function c(){var e=r();return e.autosave=null,x(e)}function d(){return"cookie"!==storage.name&&T!==-1}function p(){return T+1}function f(){if(!d())return 0;for(var e=r(),t=0,n=0,a=e.slots.length;n<a;++n)null!==e.slots[n]&&++t;return t}function h(){return 0===f()}function g(e){if(e<0||e>T)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])}function m(e){if(e<0||e>T)return null;var t=r();return e>=t.slots.length?null:t.slots[e]}function v(e){if(e<0||e>T)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])&&O(t.slots[e])}function y(e,t,n){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return UI.alert(L10n.get("savesDisallowed")),!1;if(e<0||e>T)return!1;var a=r();if(e>=a.slots.length)return!1;var i={title:t||Story.get(State.passage).description(),date:Date.now()};return null!=n&&(i.metadata=n),a.slots[e]=C(i),x(a)}function b(e){if(e<0||e>T)return!1;var t=r();return!(e>=t.slots.length)&&(t.slots[e]=null,x(t))}function w(e,t){function r(){var e=new Date,t=e.getMonth()+1,r=e.getDate(),n=e.getHours(),a=e.getMinutes(),i=e.getSeconds();return t<10&&(t="0"+t),r<10&&(r="0"+r),n<10&&(n="0"+n),a<10&&(a="0"+a),i<10&&(i="0"+i),""+e.getFullYear()+t+r+"-"+n+a+i}if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return void UI.alert(L10n.get("savesDisallowed"));var n=null==e?Story.domId:Util.slugify(e),a=n+"-"+r()+".save",i=null==t?{}:{metadata:t},o=LZString.compressToBase64(JSON.stringify(C(i)));saveAs(new Blob([o],{type:"text/plain;charset=UTF-8"}),a)}function k(e){var t=e.target.files[0],r=new FileReader;jQuery(r).on("load",function(e){var r=e.currentTarget;if(r.result){var n=void 0;try{n=JSON.parse(/\.json$/i.test(t.name)||/^\{/.test(r.result)?r.result:LZString.decompressFromBase64(r.result))}catch(e){}O(n)}}),r.readAsText(t)}function S(e,t){for(var r=0;r<t;++r)e.push(null);return e}function E(e){for(var t=e.slots,r=!0,n=0,a=t.length;n<a;++n)if(null!==t[n]){r=!1;break}return null===e.autosave&&r}function x(e){return E(e)?(storage.delete("saves"),!0):storage.set("saves",e)}function j(e){if(null===e)return!1;var t=!1;return e.hasOwnProperty("state")&&e.state.hasOwnProperty("delta")&&e.state.hasOwnProperty("index")||(e.hasOwnProperty("data")?(delete e.mode,e.state={delta:State.deltaEncode(e.data)},delete e.data):e.state.hasOwnProperty("delta")?e.state.hasOwnProperty("index")||delete e.state.mode:(delete e.state.mode,e.state.delta=State.deltaEncode(e.state.history),delete e.state.history),e.state.index=e.state.delta.length-1,t=!0),e.state.hasOwnProperty("rseed")&&(e.state.seed=e.state.rseed,delete e.state.rseed,e.state.delta.forEach(function(e,t,r){r[t].hasOwnProperty("rcount")&&(r[t].pull=r[t].rcount,delete r[t].rcount)}),t=!0),(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired||e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired&&delete e.state.expired,(e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.expired=[],e.state.hasOwnProperty("unique")&&(e.state.expired.push(e.state.unique),delete e.state.unique),e.state.hasOwnProperty("last")&&(e.state.expired.push(e.state.last),delete e.state.last)),t=!0),t}function C(e){if(null!=e&&"object"!==("undefined"==typeof e?"undefined":_typeof(e)))throw new Error("supplemental parameter must be an object");var t=Object.assign({},e,{id:Config.saves.id,state:State.marshalForSave()});return Config.saves.version&&(t.version=Config.saves.version),"function"==typeof Config.saves.onSave&&Config.saves.onSave(t),t.state.delta=State.deltaEncode(t.state.history),delete t.state.history,t}function O(e){try{if(j(e),!e||!e.hasOwnProperty("id")||!e.hasOwnProperty("state"))throw new Error(L10n.get("errorSaveMissingData"));if(e.state.history=State.deltaDecode(e.state.delta),delete e.state.delta,"function"==typeof Config.saves.onLoad&&Config.saves.onLoad(e),e.id!==Config.saves.id)throw new Error(L10n.get("errorSaveIdMismatch"));State.unmarshalForSave(e.state),Engine.show()}catch(e){return UI.alert(e.message.toUpperFirst()+".</p><p>"+L10n.get("aborting")+"."),!1}return!0}var T=-1;return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:r},clear:{value:n},ok:{value:a},autosave:{value:Object.freeze(Object.defineProperties({},{ok:{value:i},has:{value:o},get:{value:s},load:{value:u},save:{value:l},delete:{value:c}}))},slots:{value:Object.freeze(Object.defineProperties({},{ok:{value:d},length:{get:p},isEmpty:{value:h},count:{value:f},has:{value:g},get:{value:m},load:{value:v},save:{value:y},delete:{value:b}}))},export:{value:w},import:{value:k}}))}(),Setting=function(){function e(){if(storage.has("options")){var e=storage.get("options");null!==e&&(window.SugarCube.settings=settings=Object.assign(t(),e)),r(),storage.delete("options")}n(),g.forEach(function(e){if(e.hasOwnProperty("onInit")){var t={name:e.name,value:settings[e.name],default:e.default};e.hasOwnProperty("list")&&(t.list=e.list),e.onInit.call(t)}})}function t(){return Object.create(null)}function r(){var e=t();return Object.keys(settings).length>0&&g.filter(function(e){return e.type!==m.Header&&settings[e.name]!==e.default}).forEach(function(t){return e[t.name]=settings[t.name]}),0===Object.keys(e).length?(storage.delete("settings"),!0):storage.set("settings",e)}function n(){var e=t(),r=storage.get("settings")||t();g.filter(function(e){return e.type!==m.Header}).forEach(function(t){return e[t.name]=t.default}),window.SugarCube.settings=settings=Object.assign(e,r)}function a(){return window.SugarCube.settings=settings=t(),storage.delete("settings"),!0}function i(e){if(0===arguments.length)a(),n();else{if(null==e||!p(e))throw new Error('nonexistent setting "'+e+'"');var t=f(e);t.type!==m.Header&&(settings[e]=t.default)}return r()}function o(e,t){g.forEach(e,t)}function s(e,t,r){if(arguments.length<3){var n=[];throw arguments.length<1&&n.push("type"),arguments.length<2&&n.push("name"),arguments.length<3&&n.push("definition"),new Error("missing parameters, no "+n.join(" or ")+" specified")}if("object"!==("undefined"==typeof r?"undefined":_typeof(r)))throw new TypeError("definition parameter must be an object");if(p(t))throw new Error('cannot clobber existing setting "'+t+'"');var a={type:e,name:t,label:null==r.label?"":String(r.label).trim()};switch(e){case m.Header:break;case m.Toggle:a.default=!!r.default;break;case m.List:if(!r.hasOwnProperty("list"))throw new Error("no list specified");if(!Array.isArray(r.list))throw new TypeError("list must be an array");if(0===r.list.length)throw new Error("list must not be empty");if(a.list=Object.freeze(r.list),null==r.default)a.default=r.list[0];else{var i=r.list.indexOf(r.default);if(i===-1)throw new Error("list does not contain default");a.default=r.list[i]; -}break;default:throw new Error("unknown Setting type: "+e)}"function"==typeof r.onInit&&(a.onInit=Object.freeze(r.onInit)),"function"==typeof r.onChange&&(a.onChange=Object.freeze(r.onChange)),g.push(Object.freeze(a))}function u(e,t){s(m.Header,e,{label:t})}function l(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.Toggle].concat(t))}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.List].concat(t))}function d(){return 0===g.length}function p(e){return g.some(function(t){return t.name===e})}function f(e){return g.find(function(t){return t.name===e})}function h(e){p(e)&&delete settings[e];for(var t=0;t<g.length;++t)if(g[t].name===e){g.splice(t,1),h(e);break}}var g=[],m=Util.toEnum({Header:0,Toggle:1,List:2});return Object.freeze(Object.defineProperties({},{Types:{value:m},init:{value:e},create:{value:t},save:{value:r},load:{value:n},clear:{value:a},reset:{value:i},forEach:{value:o},add:{value:s},addHeader:{value:u},addToggle:{value:l},addList:{value:c},isEmpty:{value:d},has:{value:p},get:{value:f},delete:{value:h}}))}(),State=function(){function e(){session.delete("state"),L=[],I=c(),Q=-1,R=[],F=null===F?null:new PRNGWrapper(F.seed,!1)}function t(){if(session.has("state")){var e=session.get("state");return null!=e&&(n(e),!0)}return!1}function r(e){var t={index:Q};return e?t.history=clone(L):t.delta=A(L),R.length>0&&(t.expired=[].concat(_toConsumableArray(R))),null!==F&&(t.seed=F.seed),t}function n(e,t){if(null==e)throw new Error("state object is null or undefined");if(!e.hasOwnProperty(t?"history":"delta")||0===e[t?"history":"delta"].length)throw new Error("state object has no history or history is empty");if(!e.hasOwnProperty("index"))throw new Error("state object has no index");if(null!==F&&!e.hasOwnProperty("seed"))throw new Error("state object has no seed, but PRNG is enabled");if(null===F&&e.hasOwnProperty("seed"))throw new Error("state object has seed, but PRNG is disabled");L=t?clone(e.history):P(e.delta),Q=e.index,R=e.hasOwnProperty("expired")?[].concat(_toConsumableArray(e.expired)):[],e.hasOwnProperty("seed")&&(F.seed=e.seed),g(Q)}function a(){return r(!0)}function i(e){return n(e,!0)}function o(){return R}function s(){return R.length+v()}function u(){return R.concat(L.slice(0,v()).map(function(e){return e.title}))}function l(e){return null!=e&&""!==e&&(!!R.includes(e)||!!L.slice(0,v()).some(function(t){return t.title===e}))}function c(e,t){return{title:null==e?"":String(e),variables:null==t?{}:clone(t)}}function d(){return I}function p(){return Q}function f(){return I.title}function h(){return I.variables}function g(e){if(null==e)throw new Error("moment activation attempted with null or undefined");switch("undefined"==typeof e?"undefined":_typeof(e)){case"object":I=clone(e);break;case"number":if(b())throw new Error("moment activation attempted with index on empty history");if(e<0||e>=y())throw new RangeError("moment activation attempted with out-of-bounds index; need [0, "+(y()-1)+"], got "+e);I=clone(L[e]);break;default:throw new TypeError('moment activation attempted with a "'+("undefined"==typeof e?"undefined":_typeof(e))+'"; must be an object or valid history stack index')}return null!==F&&(F=PRNGWrapper.unmarshal({seed:F.seed,pull:I.pull})),session.set("state",r()),jQuery.event.trigger("tw:historyupdate"),I}function m(){return L}function v(){return Q+1}function y(){return L.length}function b(){return 0===L.length}function w(){return L.length>0?L[Q]:null}function k(){return L.length>0?L[L.length-1]:null}function S(){return L.length>0?L[0]:null}function E(e){return b()||e<0||e>Q?null:L[e]}function x(e){if(b())return null;var t=1+(e?Math.abs(e):0);return t>v()?null:L[v()-t]}function j(e){if(b()||null==e||""===e)return!1;for(var t=Q;t>=0;--t)if(L[t].title===e)return!0;return!1}function C(e){if(v()<y()&&L.splice(v(),y()-v()),L.push(c(e,I.variables)),F&&(k().pull=F.pull),Config.history.maxStates>0)for(;y()>Config.history.maxStates;)R.push(L.shift().title);return Q=y()-1,g(Q),v()}function O(e){return!(null==e||e<0||e>=y()||e===Q)&&(Q=e,g(Q),!0)}function T(e){return null!=e&&0!==e&&O(Q+e)}function A(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,n=e.length;r<n;++r)t.push(Util.diff(e[r-1],e[r]));return t}function P(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,n=e.length;r<n;++r)t.push(Util.patch(t[r-1],e[r]));return t}function _(e,t){if(!b()){var r=void 0;throw r="a script-tagged passage",new Error("State.initPRNG must be called during initialization, within either "+r+" or the StoryInit special passage")}F=new PRNGWrapper(e,t),I.pull=F.pull}function D(){return F?F.random():Math.random()}function M(){V={},TempVariables=V}function N(){return V}var L=[],I=c(),Q=-1,R=[],F=null,V={};return Object.freeze(Object.defineProperties({},{reset:{value:e},restore:{value:t},marshalForSave:{value:a},unmarshalForSave:{value:i},expired:{get:o},turns:{get:s},passages:{get:u},hasPlayed:{value:l},active:{get:d},activeIndex:{get:p},passage:{get:f},variables:{get:h},history:{get:m},length:{get:v},size:{get:y},isEmpty:{value:b},current:{get:w},top:{get:k},bottom:{get:S},index:{value:E},peek:{value:x},has:{value:j},create:{value:C},goTo:{value:O},go:{value:T},deltaEncode:{value:A},deltaDecode:{value:P},initPRNG:{value:_},random:{value:D},clearTemporary:{value:M},temporary:{get:N},restart:{value:function(){return Engine.restart()}},backward:{value:function(){return Engine.backward()}},forward:{value:function(){return Engine.forward()}},display:{value:function(){return Engine.display.apply(Engine,arguments)}},show:{value:function(){return Engine.show.apply(Engine,arguments)}},play:{value:function(){return Engine.play.apply(Engine,arguments)}}}))}(),Story=function(){function e(){function e(e){if(e.tags.includesAny(n))throw new Error('starting passage "'+e.title+'" contains illegal tags; invalid: "'+e.tags.filter(function(e){return n.includes(e)}).sort().join('", "')+'"')}function t(e){if(a.includes(e.title)&&e.tags.includesAny(n))throw new Error('special passage "'+e.title+'" contains illegal tags; invalid: "'+e.tags.filter(function(e){return n.includes(e)}).sort().join('", "')+'"')}var n=["widget"],a=["PassageDone","PassageFooter","PassageHeader","PassageReady","StoryAuthor","StoryBanner","StoryCaption","StoryInit","StoryMenu","StoryShare","StorySubtitle"];!function(){var i=function(e){var t=[].concat(n),r=[];if(e.tags.forEach(function(e){t.includes(e)&&r.push.apply(r,_toConsumableArray(t.delete(e)))}),r.length>1)throw new Error('code passage "'+e.title+'" contains multiple code tags; invalid: "'+r.sort().join('", "')+'"')};if(n.unshift("script","stylesheet"),a.push("StoryTitle"),Config.passages.start=function(){var e="START_AT";return""!==e?(Config.debug=!0,e):"Start"}(),jQuery("#store-area").children(':not([tags~="Twine.private"],[tags~="annotation"])').each(function(){var r=jQuery(this),n=new Passage(r.attr("tiddler"),this);n.title===Config.passages.start?(e(n),c[n.title]=n):n.tags.includes("stylesheet")?(i(n),d.push(n)):n.tags.includes("script")?(i(n),p.push(n)):n.tags.includes("widget")?(i(n),f.push(n)):(t(n),c[n.title]=n)}),!c.hasOwnProperty("StoryTitle"))throw new Error('cannot find the "StoryTitle" special passage');var o=document.createDocumentFragment();new Wikifier(o,c.StoryTitle.processText().trim()),r(o.textContent.trim()),Config.saves.id=Story.domId}()}function t(){!function(){var e=document.createElement("style");new StyleWrapper(e).add(d.map(function(e){return e.text.trim()}).join("\n")),jQuery(e).appendTo(document.head).attr({id:"style-story",type:"text/css"})}();for(var e=0;e<p.length;++e)try{Scripting.evalJavaScript(p[e].text)}catch(t){Alert.error(p[e].title,"object"===("undefined"==typeof t?"undefined":_typeof(t))?t.message:t)}for(var t=0;t<f.length;++t)try{Wikifier.wikifyEval(f[t].processText())}catch(e){Alert.error(f[t].title,"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e)}}function r(e){if(null==e||""===e)throw new Error("story title cannot be null or empty");document.title=h=Util.unescape(e),m=Util.slugify(h)}function n(){return h}function a(){return m}function i(){return g}function o(e){var t="undefined"==typeof e?"undefined":_typeof(e);switch(t){case"number":case"string":var r=String(e);return c.hasOwnProperty(r);case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.has title parameter cannot be "+t)}function s(e){var t="undefined"==typeof e?"undefined":_typeof(e);switch(t){case"number":case"string":var r=String(e);return c.hasOwnProperty(r)?c[r]:new Passage(r||"(unknown)");case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.get title parameter cannot be "+t)}function u(e,t){for(var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"title",n=Object.keys(c),a=[],i=0;i<n.length;++i){var o=c[n[i]];if(o.hasOwnProperty(e))switch(_typeof(o[e])){case"undefined":break;case"object":for(var s=0,u=o[e].length;s<u;++s)if(o[e][s]==t){a.push(o);break}break;default:o[e]==t&&a.push(o)}}return a.sort(function(e,t){return e[r]==t[r]?0:e[r]<t[r]?-1:1}),a}function l(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"title";if("function"!=typeof e)throw new Error("Story.lookupWith filter parameter must be a function");for(var r=Object.keys(c),n=[],a=0;a<r.length;++a){var i=c[r[a]];e(i)&&n.push(i)}return n.sort(function(e,r){return e[t]==r[t]?0:e[t]<r[t]?-1:1}),n}var c={},d=[],p=[],f=[],h="",g="",m="";return Object.freeze(Object.defineProperties({},{passages:{value:c},styles:{value:d},scripts:{value:p},widgets:{value:f},load:{value:e},init:{value:t},title:{get:n},domId:{get:a},ifId:{get:i},has:{value:o},get:{value:s},lookup:{value:u},lookupWith:{value:l}}))}(),UI=function(){function e(){jQuery("#init-no-js,#init-lacking").remove(),w=new StyleWrapper(function(){return jQuery(document.createElement("style")).attr({id:"style-outline-patch",type:"text/css"}).appendTo(document.head).get(0)}()),function(){var e=jQuery(document.createDocumentFragment()),t=L10n.get("uiBarToggle"),r=L10n.get("uiBarBackward"),n=L10n.get("uiBarJumpto"),a=L10n.get("uiBarForward");e.append('<div id="ui-bar"><div id="ui-bar-tray">'+('<button id="ui-bar-toggle" tabindex="0" title="'+t+'" aria-label="'+t+'"></button>')+'<div id="ui-bar-history">'+('<button id="history-backward" tabindex="0" title="'+r+'" aria-label="'+r+'">î ¡</button>')+('<button id="history-jumpto" tabindex="0" title="'+n+'" aria-label="'+n+'">î ¹</button>')+('<button id="history-forward" tabindex="0" title="'+a+'" aria-label="'+a+'">î ¢</button>')+'</div></div><div id="ui-bar-body"><header id="title" role="banner"><div id="story-banner"></div><h1 id="story-title"></h1><div id="story-subtitle"></div><div id="story-title-separator"></div><p id="story-author"></p></header><div id="story-caption"></div><nav id="menu" role="navigation"><ul id="menu-story"></ul><ul id="menu-core">'+('<li id="menu-item-saves"><a tabindex="0">'+L10n.get("savesTitle")+"</a></li>")+('<li id="menu-item-settings"><a tabindex="0">'+L10n.get("settingsTitle")+"</a></li>")+('<li id="menu-item-restart"><a tabindex="0">'+L10n.get("restartTitle")+"</a></li>")+('<li id="menu-item-share"><a tabindex="0">'+L10n.get("shareTitle")+"</a></li>")+'</ul></nav></div></div><div id="story" role="main"><div id="passages"></div></div>').insertBefore("#store-area")}(),jQuery(document).on("tw:historyupdate",function(e,t){return function(){e.prop("disabled",State.length<2),t.prop("disabled",State.length===State.size)}}(jQuery("#history-backward"),jQuery("#history-forward"))).on("mousedown.outline-handler keydown.outline-handler",function(e){switch(e.type){case"mousedown":i();break;case"keydown":o()}})}function t(){var e=jQuery("#ui-bar");("boolean"==typeof Config.ui.stowBarInitially?Config.ui.stowBarInitially:jQuery(window).width()<=Config.ui.stowBarInitially)&&!function(){var t=jQuery(e).add("#story");t.addClass("no-transition"),e.addClass("stowed"),setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}(),jQuery("#ui-bar-toggle").ariaClick({label:L10n.get("uiBarToggle")},function(){return e.toggleClass("stowed")}),Config.history.controls?(jQuery("#history-backward").prop("disabled",State.length<2).ariaClick({label:L10n.get("uiBarBackward")},function(){return Engine.backward()}),Story.lookup("tags","bookmark").length>0?jQuery("#history-jumpto").ariaClick({label:L10n.get("uiBarJumpto")},function(){return UI.jumpto()}):jQuery("#history-jumpto").remove(),jQuery("#history-forward").prop("disabled",State.length===State.size).ariaClick({label:L10n.get("uiBarForward")},function(){return Engine.forward()})):jQuery("#ui-bar-history").remove(),setPageElement("story-title","StoryTitle",Story.title),Story.has("StoryCaption")||jQuery("#story-caption").remove(),Story.has("StoryMenu")||jQuery("#menu-story").remove(),Config.ui.updateStoryElements||a(),Dialog.addClickHandler("#menu-item-saves a",null,v).text(L10n.get("savesTitle")),Setting.isEmpty()?jQuery("#menu-item-settings").remove():Dialog.addClickHandler("#menu-item-settings a",null,y).text(L10n.get("settingsTitle")),Dialog.addClickHandler("#menu-item-restart a",null,m).text(L10n.get("restartTitle")),Story.has("StoryShare")?Dialog.addClickHandler("#menu-item-share a",null,b).text(L10n.get("shareTitle")):jQuery("#menu-item-share").remove(),jQuery(document.documentElement).focus()}function r(){jQuery("#ui-bar").addClass("stow")}function n(){jQuery("#ui-bar").removeClass("stow")}function a(){setPageElement("story-banner","StoryBanner"),setPageElement("story-subtitle","StorySubtitle"),setPageElement("story-author","StoryAuthor"),setPageElement("story-caption","StoryCaption");var e=document.getElementById("menu-story");null!==e&&(jQuery(e).empty(),Story.has("StoryMenu")&&s("StoryMenu",e))}function i(){w.set("*:focus{outline:none}")}function o(){w.clear()}function s(e,t){var r=t,n=Config.debug;Config.debug=!1;try{null==r&&(r=document.createElement("ul"));var a=document.createDocumentFragment();if(new Wikifier(a,Story.get(e).processText().trim()),a.hasChildNodes())for(var i=null;a.hasChildNodes();){var o=a.firstChild;o.nodeType!==Node.ELEMENT_NODE||"A"!==o.nodeName.toUpperCase()?(a.removeChild(o),null!==i&&(i=null)):(null===i&&(i=document.createElement("li"),r.appendChild(i)),i.appendChild(o))}}finally{Config.debug=n}return r}function u(e){jQuery(Dialog.setup("Alert","alert")).append("<p>"+e+'</p><ul class="buttons">'+('<li><button id="alert-ok" class="ui-close">'+L10n.get(["alertOk","ok"])+"</button></li>")+"</ul>");for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];Dialog.open.apply(Dialog,r)}function l(){g(),Dialog.open.apply(Dialog,arguments)}function c(){m(),Dialog.open.apply(Dialog,arguments)}function d(){v(),Dialog.open.apply(Dialog,arguments)}function p(){y(),Dialog.open.apply(Dialog,arguments)}function f(){b(),Dialog.open.apply(Dialog,arguments)}function h(){return jQuery(Dialog.setup(L10n.get("autoloadTitle"),"autoload")).append("<p>"+L10n.get("autoloadPrompt")+'</p><ul class="buttons">'+('<li><button id="autoload-ok" class="ui-close">'+L10n.get(["autoloadOk","ok"])+"</button></li>")+('<li><button id="autoload-cancel" class="ui-close">'+L10n.get(["autoloadCancel","cancel"])+"</button></li>")+"</ul>"),jQuery(document).one("click.autoload",".ui-close",function(e){var t="autoload-ok"===e.target.id;jQuery(document).one("tw:dialogclosed",function(){t&&Save.autosave.load()||Engine.play(Config.passages.start)})}),!0}function g(){var e=document.createElement("ul");jQuery(Dialog.setup(L10n.get("jumptoTitle"),"jumpto list")).append(e);for(var t=State.expired.length,r=State.size-1;r>=0;--r)if(r!==State.activeIndex){var n=Story.get(State.history[r].title);n&&n.tags.includes("bookmark")&&jQuery(document.createElement("li")).append(jQuery(document.createElement("a")).ariaClick({one:!0},function(e){return function(){return jQuery(document).one("tw:dialogclosed",function(){return Engine.goTo(e)})}}(r)).addClass("ui-close").text(L10n.get("jumptoTurn")+" "+(t+r+1)+": "+n.description())).appendTo(e)}e.hasChildNodes()||jQuery(e).append("<li><a><em>"+L10n.get("jumptoUnavailable")+"</em></a></li>")}function m(){return jQuery(Dialog.setup(L10n.get("restartTitle"),"restart")).append("<p>"+L10n.get("restartPrompt")+'</p><ul class="buttons">'+('<li><button id="restart-ok">'+L10n.get(["restartOk","ok"])+"</button></li>")+('<li><button id="restart-cancel" class="ui-close">'+L10n.get(["restartCancel","cancel"])+"</button></li>")+"</ul>").find("#restart-ok").ariaClick({one:!0},function(){jQuery(document).one("tw:dialogclosed",function(){return Engine.restart()}),Dialog.close()}),!0}function v(){function e(e,t,r,n){var a=jQuery(document.createElement("button")).attr("id","saves-"+e).html(r);return t&&a.addClass(t),n?a.ariaClick(n):a.prop("disabled",!0),jQuery(document.createElement("li")).append(a)}function t(){function e(e,t,r,n,a){var i=jQuery(document.createElement("button")).attr("id","saves-"+e+"-"+n).addClass(e).html(r);return t&&i.addClass(t),a?"auto"===n?i.ariaClick({label:r+" "+L10n.get("savesLabelAuto")},function(){return a()}):i.ariaClick({label:r+" "+L10n.get("savesLabelSlot")+" "+(n+1)},function(){return a(n)}):i.prop("disabled",!0),i}var t=Save.get(),r=jQuery(document.createElement("tbody"));if(Save.autosave.ok()){var n=jQuery(document.createElement("td")),a=jQuery(document.createElement("td")),i=jQuery(document.createElement("td")),o=jQuery(document.createElement("td"));jQuery(document.createElement("b")).attr({title:L10n.get("savesLabelAuto"),"aria-label":L10n.get("savesLabelAuto")}).text("A").appendTo(n),t.autosave?(a.append(e("load","ui-close",L10n.get("savesLabelLoad"),"auto",function(){jQuery(document).one("tw:dialogclosed",function(){return Save.autosave.load()})})),jQuery(document.createElement("div")).text(t.autosave.title).appendTo(i),jQuery(document.createElement("div")).addClass("datestamp").html(t.autosave.date?L10n.get("savesSavedOn")+" "+new Date(t.autosave.date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(i),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto",function(){Save.autosave.delete(),v(),Dialog.resize()}))):(a.append(e("load",null,L10n.get("savesLabelLoad"),"auto")),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(i),i.addClass("empty"),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto"))),jQuery(document.createElement("tr")).append(n).append(a).append(i).append(o).appendTo(r)}for(var s=0,u=t.slots.length;s<u;++s){var l=jQuery(document.createElement("td")),c=jQuery(document.createElement("td")),d=jQuery(document.createElement("td")),p=jQuery(document.createElement("td"));l.append(document.createTextNode(s+1)),t.slots[s]?(c.append(e("load","ui-close",L10n.get("savesLabelLoad"),s,function(e){jQuery(document).one("tw:dialogclosed",function(){return Save.slots.load(e)})})),jQuery(document.createElement("div")).text(t.slots[s].title).appendTo(d),jQuery(document.createElement("div")).addClass("datestamp").html(t.slots[s].date?L10n.get("savesSavedOn")+" "+new Date(t.slots[s].date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(d),p.append(e("delete",null,L10n.get("savesLabelDelete"),s,function(e){Save.slots.delete(e),v(),Dialog.resize()}))):(c.append(e("save","ui-close",L10n.get("savesLabelSave"),s,Save.slots.save)),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(d),d.addClass("empty"),p.append(e("delete",null,L10n.get("savesLabelDelete"),s))),jQuery(document.createElement("tr")).append(l).append(c).append(d).append(p).appendTo(r)}return jQuery(document.createElement("table")).attr("id","saves-list").append(r)}var r=jQuery(Dialog.setup(L10n.get("savesTitle"),"saves")),n=Save.ok();if(n&&r.append(t()),n||Has.fileAPI){var a=jQuery(document.createElement("ul")).addClass("buttons").appendTo(r);return Has.fileAPI&&(a.append(e("export","ui-close",L10n.get("savesLabelExport"),function(){return Save.export()})),a.append(e("import",null,L10n.get("savesLabelImport"),function(){return r.find("#saves-import-file").trigger("click")})),jQuery(document.createElement("input")).css({display:"block",visibility:"hidden",position:"fixed",left:"-9999px",top:"-9999px",width:"1px",height:"1px"}).attr({type:"file",id:"saves-import-file",tabindex:-1,"aria-hidden":!0}).on("change",function(e){jQuery(document).one("tw:dialogclosed",function(){return Save.import(e)}),Dialog.close()}).appendTo(r)),n&&a.append(e("clear",null,L10n.get("savesLabelClear"),Save.autosave.has()||!Save.slots.isEmpty()?function(){Save.clear(),v(),Dialog.resize()}:null)),!0}return u(L10n.get("savesIncapable")),!1}function y(){var e=jQuery(Dialog.setup(L10n.get("settingsTitle"),"settings"));return Setting.forEach(function(t){if(t.type===Setting.Types.Header){var r=t.name,n=Util.slugify(r),a=jQuery(document.createElement("div")),i=jQuery(document.createElement("h2")),o=jQuery(document.createElement("p"));return a.attr("id","header-body-"+n).append(i).append(o).appendTo(e),i.attr("id","header-heading-"+n).wiki(r),void o.attr("id","header-label-"+n).wiki(t.label)}var s=t.name,u=Util.slugify(s),l=jQuery(document.createElement("div")),c=jQuery(document.createElement("label")),d=jQuery(document.createElement("div")),p=void 0;switch(l.attr("id","setting-body-"+u).append(c).append(d).appendTo(e),c.attr({id:"setting-label-"+u,for:"setting-control-"+u}).wiki(t.label),null==settings[s]&&(settings[s]=t.default),t.type){case Setting.Types.Toggle:p=jQuery(document.createElement("button")),settings[s]?p.addClass("enabled").text(L10n.get("settingsOn")):p.text(L10n.get("settingsOff")),p.ariaClick(function(){settings[s]?(jQuery(this).removeClass("enabled").text(L10n.get("settingsOff")),settings[s]=!1):(jQuery(this).addClass("enabled").text(L10n.get("settingsOn")),settings[s]=!0),Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default})});break;case Setting.Types.List:p=jQuery(document.createElement("select"));for(var f=0,h=t.list.length;f<h;++f)jQuery(document.createElement("option")).val(f).text(t.list[f]).appendTo(p);p.val(t.list.indexOf(settings[s])).attr("tabindex",0).on("change",function(){settings[s]=t.list[Number(this.value)],Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default,list:t.list})})}p.attr("id","setting-control-"+u).appendTo(d)}),e.append('<ul class="buttons">'+('<li><button id="settings-ok" class="ui-close">'+L10n.get(["settingsOk","ok"])+"</button></li>")+('<li><button id="settings-reset">'+L10n.get("settingsReset")+"</button></li>")+"</ul>").find("#settings-reset").ariaClick({one:!0},function(){jQuery(document).one("tw:dialogclosed",function(){Setting.reset(),window.location.reload()}),Dialog.close()}),!0}function b(){return jQuery(Dialog.setup(L10n.get("shareTitle"),"share list")).append(s("StoryShare")),!0}var w=null;return Object.freeze(Object.defineProperties({},{init:{value:e},start:{value:t},stow:{value:r},unstow:{value:n},setStoryElements:{value:a},hideOutlines:{value:i},showOutlines:{value:o},assembleLinkList:{value:s},alert:{value:u},jumpto:{value:l},restart:{value:c},saves:{value:d},settings:{value:p},share:{value:f},buildAutoload:{value:h},buildJumpto:{value:g},buildRestart:{value:m},buildSaves:{value:v},buildSettings:{value:y},buildShare:{value:b},isOpen:{value:function(){return Dialog.isOpen.apply(Dialog,arguments)}},body:{value:function(){return Dialog.body()}},setup:{value:function(){return Dialog.setup.apply(Dialog,arguments)}},addClickHandler:{value:function(){return Dialog.addClickHandler.apply(Dialog,arguments)}},open:{value:function(){return Dialog.open.apply(Dialog,arguments)}},close:{value:function(){return Dialog.close.apply(Dialog,arguments)}},resize:{value:function(){return Dialog.resize()}},buildDialogAutoload:{value:h},buildDialogJumpto:{value:g},buildDialogRestart:{value:m},buildDialogSaves:{value:v},buildDialogSettings:{value:y},buildDialogShare:{value:b},buildLinkListFromPassage:{value:s}}))}(),LoadScreen=function(){function e(){jQuery(document).on("readystatechange.SugarCube",function(){if(!(o.size>0)){var e=jQuery(document.documentElement);"complete"===document.readyState?e.hasClass("init-loading")&&(Config.loadDelay>0?setTimeout(function(){return e.removeClass("init-loading")},Math.max(Engine.minDomActionDelay,Config.loadDelay)):e.removeClass("init-loading")):e.addClass("init-loading")}})}function t(){jQuery(document).off("readystatechange.SugarCube"),o.clear(),r()}function r(){jQuery(document.documentElement).removeClass("init-loading")}function n(){jQuery(document.documentElement).addClass("init-loading")}function a(){return++s,o.add(s),n(),s}function i(e){if(null==e)throw new Error("LoadScreen.unlock called with a null or undefined ID");o.has(e)&&o.delete(e),0===o.size&&jQuery(document).trigger("readystatechange")}var o=new Set,s=0;return Object.freeze(Object.defineProperties({},{init:{value:e},clear:{value:t},hide:{value:r},show:{value:n},lock:{value:a},unlock:{value:i}}))}(),version=Object.freeze({title:"SugarCube",major:2,minor:16,patch:0,prerelease:null,build:7903,date:new Date("2017-03-14T20:35:33.734Z"),extensions:{},toString:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.major+"."+this.minor+"."+this.patch+e+"+"+this.build},short:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.title+" (v"+this.major+"."+this.minor+"."+this.patch+e+")"},long:function(){return this.title+" v"+this.toString()+" ("+this.date.toUTCString()+")"}}),TempState={},macros={},postdisplay={},postrender={},predisplay={},prehistory={},prerender={},session=null,settings={},setup={},storage=null,browser=Browser,config=Config,has=Has,History=State,state=State,tale=Story,TempVariables=State.temporary;window.SugarCube={},jQuery(function(){try{var e=LoadScreen.lock();LoadScreen.init(),document.normalize&&document.normalize(),Story.load(),storage=SimpleStore.create(Story.domId,!0),session=SimpleStore.create(Story.domId,!1),Dialog.init(),UI.init(),Story.init(),L10n.init(),session.has("rcWarn")||"cookie"!==storage.name||(session.set("rcWarn",1),window.alert(L10n.get("warningNoWebStorage"))),Save.init(),Setting.init(),Macro.init(),Engine.start(),UI.start(),window.SugarCube={Browser:Browser,Config:Config,Dialog:Dialog,DebugView:DebugView,Engine:Engine,Has:Has,L10n:L10n,Macro:Macro,Passage:Passage,Save:Save,Scripting:Scripting,Setting:Setting,SimpleAudio:SimpleAudio,State:State,Story:Story,UI:UI,Util:Util,Wikifier:Wikifier,macros:macros,session:session,settings:settings,setup:setup,storage:storage,version:version},LoadScreen.unlock(e)}catch(e){return LoadScreen.clear(),Alert.fatal(null,e.message,e)}})}(window,window.document,jQuery);} + /*! SugarCube JS */ + if(document.documentElement.getAttribute("data-init")==="loading"){!function(window,document,jQuery,undefined){"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),_slicedToArray=function(){function e(e,t){var r=[],n=!0,a=!1,i=undefined;try{for(var o,s=e[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){a=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(a)throw i}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Alert=function(){function e(e,t,r,n){var a="fatal"===e,i="Apologies! "+(a?"A fatal":"An")+" error has occurred.";i+=a?" Aborting.":" You may be able to continue, but some parts may not work properly.",null==t&&null==r||(i+="\n\nError",null!=t&&(i+=" ["+t+"]"),i+=null!=r?": "+r.replace(/^(?:(?:uncaught\s+(?:exception:\s+)?)?error:\s+)+/i,"")+".":": unknown error."),n&&n.stack&&(i+="\n\nStack Trace:\n"+n.stack),window.alert(i)}function t(t,r,n){e(null,t,r,n)}function r(t,r,n){e("fatal",t,r,n)}return function(e){window.onerror=function(n,a,i,o,s){"complete"===document.readyState?t(null,n,s):(r(null,n,s),window.onerror=e,"function"==typeof window.onerror&&window.onerror.apply(this,arguments))}}(window.onerror),Object.freeze(Object.defineProperties({},{error:{value:t},fatal:{value:r}}))}();!function(){function e(e,t){var a=String(e);switch(t){case"start":return a&&r.test(a)?a.replace(r,""):a;case"end":return a&&n.test(a)?a.replace(n,""):a;default:throw new Error('_trimFrom called with incorrect where parameter value: "'+t+'"')}}function t(e,t){var r=Number.parseInt(e,10)||0;if(r<1)return"";var n="undefined"==typeof t?"":String(t);for(""===n&&(n=" ");n.length<r;){var a=n.length,i=r-a;n+=a>i?n.slice(0,i):n}return n.length>r&&(n=n.slice(0,r)),n}var r=/^[\s\u00A0\uFEFF][\s\u00A0\uFEFF]*/,n=/[\s\u00A0\uFEFF][\s\u00A0\uFEFF]*$/;Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includes called on null or undefined");if(0===arguments.length)return!1;var e=this.length>>>0;if(0===e)return!1;var t=arguments[0],r=Number(arguments[1])||0;for(r<0&&(r=Math.max(0,e+r));r<e;++r){var n=this[r];if(t===n||t!==t&&n!==n)return!0}return!1}}),String.prototype.padStart||Object.defineProperty(String.prototype,"padStart",{configurable:!0,writable:!0,value:function(e,r){if(null==this)throw new TypeError("String.prototype.padStart called on null or undefined");var n=String(this),a=n.length,i=Number.parseInt(e,10);return i<=a?n:t(i-a,r)+n}}),String.prototype.padEnd||Object.defineProperty(String.prototype,"padEnd",{configurable:!0,writable:!0,value:function(e,r){if(null==this)throw new TypeError("String.prototype.padEnd called on null or undefined");var n=String(this),a=n.length,i=Number.parseInt(e,10);return i<=a?n:n+t(i-a,r)}}),String.prototype.trimStart||Object.defineProperty(String.prototype,"trimStart",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimStart called on null or undefined");return e(this,"start")}}),String.prototype.trimLeft||Object.defineProperty(String.prototype,"trimLeft",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimLeft called on null or undefined");return e(this,"start")}}),String.prototype.trimEnd||Object.defineProperty(String.prototype,"trimEnd",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimEnd called on null or undefined");return e(this,"end")}}),String.prototype.trimRight||Object.defineProperty(String.prototype,"trimRight",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.trimRight called on null or undefined");return e(this,"end")}})}(),function(){function _random(){if(0===arguments.length)throw new Error("_random called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(_nativeMathRandom()*(t-e+1))+e}function _getCodePointStartAndEnd(e,t){var r=e.charCodeAt(t);if(Number.isNaN(r))return{char:"",start:-1,end:-1};if(r<55296||r>57343)return{char:e.charAt(t),start:t,end:t};if(r>=55296&&r<=56319){var n=t+1;if(n>=e.length)throw new Error("high surrogate without trailing low surrogate");var a=e.charCodeAt(n);if(a<56320||a>57343)throw new Error("high surrogate without trailing low surrogate");return{char:e.charAt(t)+e.charAt(n),start:t,end:n}}if(0===t)throw new Error("low surrogate without leading high surrogate");var i=t-1,o=e.charCodeAt(i);if(o<55296||o>56319)throw new Error("low surrogate without leading high surrogate");return{char:e.charAt(i)+e.charAt(t),start:i,end:t}}var _nativeMathRandom=Math.random;Object.defineProperty(Array,"random",{configurable:!0,writable:!0,value:function(e,t,r){var n=t,a=r;return 2===arguments.length&&(a=n,n=0),Array.isArray(e)?e.random(n,a):e.hasOwnProperty("length")?[].concat(_toConsumableArray(e)).random(n,a):void 0}}),Object.defineProperty(Array.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.count called on null or undefined");for(var e=Array.prototype.indexOf,t=arguments[0],r=Number(arguments[1])||0,n=0;(r=e.call(this,t,r))!==-1;)++n,++r;return n}}),Object.defineProperty(Array.prototype,"delete",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.delete called on null or undefined");if(0===arguments.length)return[];var e=this.length>>>0;if(0===e)return[];for(var t=Array.prototype.indexOf,r=Array.prototype.push,n=Array.prototype.splice,a=Array.prototype.concat.apply([],arguments),i=[],o=0,s=a.length;o<s;++o)for(var u=a[o],l=0;(l=t.call(this,u,l))!==-1;)r.apply(i,n.call(this,l,1));return i}}),Object.defineProperty(Array.prototype,"deleteAt",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.deleteAt called on null or undefined");if(0===arguments.length)return[];var e=this.length>>>0;if(0===e)return[];for(var t=Array.prototype.splice,r=[].concat(_toConsumableArray(new Set(Array.prototype.concat.apply([],arguments).map(function(t){return t<0?Math.max(0,e+t):t})).values())),n=[].concat(_toConsumableArray(r)).sort(function(e,t){return t-e}),a=[],i=0,o=r.length;i<o;++i)a[i]=this[r[i]];for(var s=0,u=n.length;s<u;++s)t.call(this,n[s],1);return a}}),Object.defineProperty(Array.prototype,"flatten",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.flatten called on null or undefined");return Array.prototype.reduce.call(this,function(e,t){return e.concat(Array.isArray(t)?t.flatten():t)},[])}}),Object.defineProperty(Array.prototype,"includesAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAll called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAll.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(!Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!1;return!0}}),Object.defineProperty(Array.prototype,"includesAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.includesAny called on null or undefined");if(1===arguments.length)return Array.isArray(arguments[0])?Array.prototype.includesAny.apply(this,arguments[0]):Array.prototype.includes.apply(this,arguments);for(var e=0,t=arguments.length;e<t;++e)if(Array.prototype.some.call(this,function(e){return e===this.val||e!==e&&this.val!==this.val},{val:arguments[e]}))return!0;return!1}}),Object.defineProperty(Array.prototype,"pluck",{configurable:!0,writable:!0,value:function(e,t){if(null==this)throw new TypeError("Array.prototype.pluck called on null or undefined");var r=this.length>>>0;if(0!==r){var n=e,a=t;return 1===arguments.length&&(a=n,n=0),null==n?n=0:n<0?(n=r+n,n<0&&(n=0)):n>=r&&(n=r-1),null==a?a=r-1:a<0?(a=r+a,a<0&&(a=r-1)):a>=r&&(a=r-1),Array.prototype.splice.call(this,_random(n,a),1)[0]}}}),Object.defineProperty(Array.prototype,"random",{configurable:!0,writable:!0,value:function(e,t){if(null==this)throw new TypeError("Array.prototype.random called on null or undefined");var r=this.length>>>0;if(0!==r){var n=e,a=t;return 1===arguments.length&&(a=n,n=0),null==n?n=0:n<0?(n=r+n,n<0&&(n=0)):n>=r&&(n=r-1),null==a?a=r-1:a<0?(a=r+a,a<0&&(a=r-1)):a>=r&&(a=r-1),this[_random(n,a)]}}}),Object.defineProperty(Array.prototype,"shuffle",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.shuffle called on null or undefined");var e=this.length>>>0;if(0!==e){for(var t=e-1;t>0;--t){var r=Math.floor(_nativeMathRandom()*(t+1)),n=[this[r],this[t]];this[t]=n[0],this[r]=n[1]}return this}}}),Object.defineProperty(Function.prototype,"partial",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Function.prototype.partial called on null or undefined");var e=Array.prototype.slice,t=this,r=e.call(arguments,0);return function(){for(var n=[],a=0,i=0;i<r.length;++i)n.push(r[i]===undefined?arguments[a++]:r[i]);return t.apply(this,n.concat(e.call(arguments,a)))}}}),Object.defineProperty(Math,"clamp",{configurable:!0,writable:!0,value:function e(t,r,n){var e=Number(t);return Number.isNaN(e)?NaN:e.clamp(r,n)}}),Object.defineProperty(Math,"easeInOut",{configurable:!0,writable:!0,value:function(e){return 1-(Math.cos(Number(e)*Math.PI)+1)/2}}),Object.defineProperty(Number.prototype,"clamp",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Number.prototype.clamp called on null or undefined");if(2!==arguments.length)throw new Error("Number.prototype.clamp called with an incorrect number of parameters");var e=Number(arguments[0]),t=Number(arguments[1]);if(e>t){var r=[t,e];e=r[0],t=r[1]}return Math.min(Math.max(this,e),t)}}),RegExp.escape||!function(){var e=/[\\^$*+?.()|[\]{}]/g,t=new RegExp(e.source);Object.defineProperty(RegExp,"escape",{configurable:!0,writable:!0,value:function(r){var n=String(r);return n&&t.test(n)?n.replace(e,"\\$&"):n}})}(),function(){var e=/{(\d+)(?:,([+-]?\d+))?}/g,t=new RegExp(e.source);Object.defineProperty(String,"format",{configurable:!0,writable:!0,value:function(r){function n(e,t,r){if(!t)return e;var n=Math.abs(t)-e.length;if(n<1)return e;var a=String(r).repeat(n);return t<0?e+a:a+e}if(arguments.length<2)return 0===arguments.length?"":r;var a=2===arguments.length&&Array.isArray(arguments[1])?[].concat(_toConsumableArray(arguments[1])):Array.prototype.slice.call(arguments,1);return 0===a.length?r:t.test(r)?(e.lastIndex=0,r.replace(e,function(e,t,r){var i=a[t];if(null==i)return"";for(;"function"==typeof i;)i=i();switch("undefined"==typeof i?"undefined":_typeof(i)){case"string":break;case"object":i=JSON.stringify(i);break;default:i=String(i)}return n(i,r?Number.parseInt(r,10):0," ")})):r}})}(),Object.defineProperty(String.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.contains called on null or undefined");return String.prototype.indexOf.apply(this,arguments)!==-1}}),Object.defineProperty(String.prototype,"count",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.count called on null or undefined");var e=String(arguments[0]||"");if(""===e)return 0;for(var t=String.prototype.indexOf,r=e.length,n=Number(arguments[1])||0,a=0;(n=t.call(this,e,n))!==-1;)++a,n+=r;return a}}),Object.defineProperty(String.prototype,"splice",{configurable:!0,writable:!0,value:function(e,t,r){if(null==this)throw new TypeError("String.prototype.splice called on null or undefined");var n=this.length>>>0;if(0===n)return"";var a=Number(e);Number.isSafeInteger(a)?a<0&&(a+=n,a<0&&(a=0)):a=0,a>n&&(a=n);var i=Number(t);(!Number.isSafeInteger(i)||i<0)&&(i=0);var o=this.slice(0,a);return"undefined"!=typeof r&&(o+=r),a+i<n&&(o+=this.slice(a+i)),o}}),Object.defineProperty(String.prototype,"splitOrEmpty",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.splitOrEmpty called on null or undefined");return""===String(this)?[]:String.prototype.split.apply(this,arguments)}}),Object.defineProperty(String.prototype,"toLocaleUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toLocaleUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,n=t.end;return n===-1?"":r.toLocaleUpperCase()+e.slice(n+1)}}),Object.defineProperty(String.prototype,"toUpperFirst",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.toUpperFirst called on null or undefined");var e=String(this),t=_getCodePointStartAndEnd(e,0),r=t.char,n=t.end;return n===-1?"":r.toUpperCase()+e.slice(n+1)}}),Object.defineProperty(Date.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:date)",this.toISOString()]}}),Object.defineProperty(Function.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)","("+this.toString()+")"]}}),Object.defineProperty(Map.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:map)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(RegExp.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:eval)",this.toString()]}}),Object.defineProperty(Set.prototype,"toJSON",{configurable:!0,writable:!0,value:function(){return["(revive:set)",[].concat(_toConsumableArray(this))]}}),Object.defineProperty(JSON,"reviveWrapper",{configurable:!0,writable:!0,value:function(e,t){if("string"!=typeof e)throw new TypeError("JSON.reviveWrapper code parameter must be a string");return["(revive:eval)",[e,t]]}}),Object.defineProperty(JSON,"_real_parse",{value:JSON.parse}),Object.defineProperty(JSON,"parse",{configurable:!0,writable:!0,value:function value(text,reviver){return JSON._real_parse(text,function(key,val){var value=val;if(Array.isArray(value)&&2===value.length)switch(value[0]){case"(revive:set)":value=new Set(value[1]);break;case"(revive:map)":value=new Map(value[1]);break;case"(revive:date)":value=new Date(value[1]);break;case"(revive:eval)":try{if(Array.isArray(value[1])){var $ReviveData$=value[1][1];value=eval(value[1][0])}else value=eval(value[1])}catch(e){}}else if("string"==typeof value&&"@@revive@@"===value.slice(0,10))try{value=eval(value.slice(10))}catch(e){}if("function"==typeof reviver)try{value=reviver(key,value)}catch(e){}return value})}}),Object.defineProperty(Array.prototype,"contains",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.contains called on null or undefined");return Array.prototype.includes.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAll",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAll called on null or undefined");return Array.prototype.includesAll.apply(this,arguments)}}),Object.defineProperty(Array.prototype,"containsAny",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("Array.prototype.containsAny called on null or undefined");return Array.prototype.includesAny.apply(this,arguments)}}),Object.defineProperty(String.prototype,"readBracketedList",{configurable:!0,writable:!0,value:function(){if(null==this)throw new TypeError("String.prototype.readBracketedList called on null or undefined");for(var e=new RegExp("(?:\\[\\[((?:\\s|\\S)*?)\\]\\])|([^\"'\\s]\\S*)","gm"),t=[],r=void 0;null!==(r=e.exec(this));)r[1]?t.push(r[1]):r[2]&&t.push(r[2]);return t}})}();var Browser=function(){var e={userAgent:navigator.userAgent.toLowerCase()};return e.isGecko=navigator&&"Gecko"===navigator.product&&!/webkit|trident/.test(e.userAgent),e.isIE=/msie|trident/.test(e.userAgent)&&!e.userAgent.includes("opera"),e.ieVersion=function(){var t=/(?:msie\s+|rv:)(\d{1,2}\.\d)/.exec(e.userAgent);return t?Number([1]):0}(),e.isOpera=e.userAgent.includes("opera")||e.userAgent.includes(" opr/"),e.operaVersion=function(){var t=new RegExp((/applewebkit|chrome/.test(e.userAgent)?"opr":"version")+"\\/(\\d{1,2}\\.\\d+)"),r=t.exec(e.userAgent);return r?Number(r[1]):0}(),e.isMobile=Object.freeze({Android:/android/.test(e.userAgent),BlackBerry:/blackberry/.test(e.userAgent),iOS:/ip(?:hone|ad|od)/.test(e.userAgent),Windows:/iemobile/.test(e.userAgent),any:function(){var t=e.isMobile;return t.Android||t.BlackBerry||t.iOS||t.Windows}}),Object.freeze(e)}(),Has=function(){function e(e){try{if(null!=e&&e.length>=0){var t="SugarCube.WebStorage.Test",r="1701 Guilty Scott";if(e.setItem(t,r),e.getItem(t)===r)return e.removeItem(t),!0}}catch(e){}return!1}return Object.freeze({audio:"function"==typeof document.createElement("audio").canPlayType,fileAPI:"File"in window&&"FileList"in window&&"FileReader"in window&&!Browser.isMobile.any()&&(!Browser.isOpera||Browser.operaVersion>=15),geolocation:"geolocation"in navigator&&"function"==typeof navigator.geolocation.getCurrentPosition&&"function"==typeof navigator.geolocation.watchPosition,localStorage:"localStorage"in window&&e(window.localStorage),sessionStorage:"sessionStorage"in window&&e(window.sessionStorage)})}(),_ref4=function(){function e(t){if("object"!==("undefined"==typeof t?"undefined":_typeof(t))||null==t)return t;if("function"==typeof t.clone)return t.clone(!0);if(t.nodeType&&"function"==typeof t.cloneNode)return t.cloneNode(!0);var r=void 0;return Array.isArray(t)?r=[]:t instanceof Date?r=new Date(t.getTime()):t instanceof Map?(r=new Map,t.forEach(function(t,n){r.set(n,e(t))})):t instanceof RegExp?r=new RegExp(t):t instanceof Set?(r=new Set,t.forEach(function(t){r.add(e(t))})):r=Object.create(Object.getPrototypeOf(t)),Object.keys(t).forEach(function(n){return r[n]=e(t[n])}),r}function t(e){for(var t=document.createDocumentFragment(),r=document.createElement("p"),n=void 0;null!==(n=e.firstChild);){if(n.nodeType===Node.ELEMENT_NODE){var a=n.nodeName.toUpperCase();switch(a){case"BR":if(null!==n.nextSibling&&n.nextSibling.nodeType===Node.ELEMENT_NODE&&"BR"===n.nextSibling.nodeName.toUpperCase()){e.removeChild(n.nextSibling),e.removeChild(n),t.appendChild(r),r=document.createElement("p");continue}if(!r.hasChildNodes()){e.removeChild(n);continue}break;case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":r.hasChildNodes()&&(t.appendChild(r),r=document.createElement("p")),t.appendChild(n);continue}}r.appendChild(n)}r.hasChildNodes()&&t.appendChild(r),e.appendChild(t)}function r(){try{return document.activeElement||null}catch(e){return null}}function n(e,t,r){var n="object"===("undefined"==typeof e?"undefined":_typeof(e))?e:document.getElementById(e);if(null==n)return null;var a=Array.isArray(t)?t:[t];jQuery(n).empty();for(var i=0,o=a.length;i<o;++i)if(Story.has(a[i]))return new Wikifier(n,Story.get(a[i]).processText().trim()),n;if(null!=r){var s=String(r).trim();""!==s&&new Wikifier(n,s)}return n}function a(e,t,r){return jQuery(document.createElement("span")).addClass("error").attr("title",r).text(L10n.get("errorTitle")+": "+(t||"unknown error")).appendTo(e),!1}function i(e,t){switch("undefined"==typeof e?"undefined":_typeof(e)){case"number":if(Number.isNaN(e))return t;break;case"object":if(null===e)return t;if(Array.isArray(e)||e instanceof Set)return[].concat(_toConsumableArray(e)).map(function(e){return i(e,t)}).join(", ");if(e instanceof Map){var r=function(){var r=i,n=[].concat(_toConsumableArray(e)).map(function(e){return r(e[0],t)+" ⇒ "+r(e[1],t)}).join("; ");return{v:"( "+n+" )"}}();if("object"===("undefined"==typeof r?"undefined":_typeof(r)))return r.v}else{if(e instanceof Date)return e.toLocaleString();if("function"==typeof e.toString)return e.toString()}return Object.prototype.toString.call(e);case"function":case"undefined":return t}return String(e)}return Object.freeze(Object.defineProperties({},{clone:{value:e},convertBreaks:{value:t},safeActiveElement:{value:r},setPageElement:{value:n},throwError:{value:a},toStringOrDefault:{value:i}}))}(),clone=_ref4.clone,convertBreaks=_ref4.convertBreaks,safeActiveElement=_ref4.safeActiveElement,setPageElement=_ref4.setPageElement,throwError=_ref4.throwError,toStringOrDefault=_ref4.toStringOrDefault;!function(){function e(e){13!==e.which&&32!==e.which||(e.preventDefault(),jQuery(safeActiveElement()||this).trigger("click"))}function t(e){return function(){var t=jQuery(this);t.is("[aria-pressed]")&&t.attr("aria-pressed","true"===t.attr("aria-pressed")?"false":"true"),e.apply(this,arguments)}}function r(e){return t(function(){jQuery(this).off(".aria-clickable").removeAttr("tabindex aria-controls aria-pressed").not("a,button").removeAttr("role").end().filter("button").prop("disabled",!0),e.apply(this,arguments)})}jQuery.fn.extend({ariaClick:function(n,a){if(0===this.length||0===arguments.length)return this;var i=n,o=a;return null==o&&(o=i,i=undefined),i=jQuery.extend({namespace:undefined,one:!1,selector:undefined,data:undefined,controls:undefined,pressed:undefined,label:undefined},i),"string"!=typeof i.namespace?i.namespace="":"."!==i.namespace[0]&&(i.namespace="."+i.namespace),"boolean"==typeof i.pressed&&(i.pressed=i.pressed?"true":"false"),this.filter("button").prop("type","button"),this.not("a,button").attr("role","button"),this.attr("tabindex",0),null!=i.controls&&this.attr("aria-controls",i.controls),null!=i.pressed&&this.attr("aria-pressed",i.pressed),null!=i.label&&this.attr({"aria-label":i.label,title:i.label}),this.not("button").on("keypress.aria-clickable"+i.namespace,i.selector,e),this.on("click.aria-clickable"+i.namespace,i.selector,i.data,i.one?r(o):t(o)),this}})}(),function(){jQuery.extend({wikiWithOptions:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if(0!==r.length){var a=document.createDocumentFragment();r.forEach(function(t){return new Wikifier(a,t,e)});var i=[].concat(_toConsumableArray(a.querySelectorAll(".error"))).map(function(e){return e.textContent.replace(/^(?:(?:Uncaught\s+)?Error:\s+)+/,"")});if(i.length>0)throw new Error(i.join("; "))}},wiki:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];this.wikiWithOptions.apply(this,[undefined].concat(t))}}),jQuery.fn.extend({wikiWithOptions:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if(0===this.length||0===r.length)return this;var a=document.createDocumentFragment();return r.forEach(function(t){return new Wikifier(a,t,e)}),this.append(a),this},wiki:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return this.wikiWithOptions.apply(this,[undefined].concat(t))}})}();var Util=function(){function e(e){return Object.freeze(Object.assign(Object.create(null),e))}function t(e){var t=void 0;switch("undefined"==typeof e?"undefined":_typeof(e)){case"number":t=e;break;case"string":t=Number(e);break;default:return!1}return!Number.isNaN(t)&&Number.isFinite(t)}function r(e){return"boolean"==typeof e||"string"==typeof e&&("true"===e||"false"===e)}function n(e){return String(e).trim().replace(/[^\w\s\u2013\u2014-]+/g,"").replace(/[_\s\u2013\u2014-]+/g,"-").toLocaleLowerCase()}function a(e){if(null==e)return"";var t=String(e);return t&&p.test(t)?t.replace(f,function(e){return h[e]}):t}function i(e){if(null==e)return"";var t=String(e);return t&&m.test(t)?t.replace(g,function(e){return v[e]}):t}function o(e){var t=/^([+-]?(?:\d*\.)?\d+)([Mm]?[Ss])$/,r=t.exec(String(e));if(null===r)throw new SyntaxError('invalid time value syntax: "'+e+'"');var n=Number(r[1]);if(/^[Ss]$/.test(r[2])&&(n*=1e3),Number.isNaN(n)||!Number.isFinite(n))throw new RangeError('invalid time value: "'+e+'"');return n}function s(e){if("number"!=typeof e||Number.isNaN(e)||!Number.isFinite(e)){var t=void 0;switch("undefined"==typeof e?"undefined":_typeof(e)){case"string":t='"'+e+'"';break;case"number":t=String(e);break;default:t=Object.prototype.toString.call(e)}throw new Error("invalid milliseconds: "+t)}return e+"ms"}function u(e){if(!e.includes("-"))switch(e){case"bgcolor":return"backgroundColor";case"float":return"cssFloat";default:return e}var t="-ms-"===e.slice(0,4)?e.slice(1):e;return t.split("-").map(function(e,t){return 0===t?e:e.toUpperFirst()}).join("")}function l(e){var t=document.createElement("a"),r=Object.create(null);t.href=e,t.search&&t.search.replace(/^\?/,"").splitOrEmpty(/(?:&(?:amp;)?|;)/).forEach(function(e){var t=e.split("="),n=_slicedToArray(t,2),a=n[0],i=n[1];r[a]=i});var n=t.host&&"/"!==t.pathname[0]?"/"+t.pathname:t.pathname;return{href:t.href,protocol:t.protocol,host:t.host,hostname:t.hostname,port:t.port,path:""+n+t.search,pathname:n,query:t.search,search:t.search,queries:r,searches:r,hash:t.hash}}function c(e,t){for(var r=Object.prototype.toString,n=Array.isArray(e),a=[].concat(Object.keys(e),Object.keys(t)).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}),i={},o=void 0,s=function(e){return e===o},u=0,l=a.length;u<l;++u){var c=a[u],d=e[c],f=t[c];if(e.hasOwnProperty(c))if(t.hasOwnProperty(c)){if(d===f)continue;if(("undefined"==typeof d?"undefined":_typeof(d))===("undefined"==typeof f?"undefined":_typeof(f)))if("function"==typeof d)d.toString()!==f.toString()&&(i[c]=[y.Copy,f]);else if("object"!==("undefined"==typeof d?"undefined":_typeof(d))||null===d)i[c]=[y.Copy,f];else{var p=r.call(d),h=r.call(f);if(p===h)if("[object Date]"===p){var g=Number(f);Number(d)!==g&&(i[c]=[y.CopyDate,g])}else if("[object RegExp]"===p)d.toString()!==f.toString()&&(i[c]=[y.Copy,clone(f)]);else{var m=Util.diff(d,f);null!==m&&(i[c]=m)}else i[c]=[y.Copy,clone(f)]}else i[c]=[y.Copy,"object"!==("undefined"==typeof f?"undefined":_typeof(f))||null===f?f:clone(f)]}else if(n&&Util.isNumeric(c)){var v=Number(c);if(!o){o="";do o+="~";while(a.some(s));i[o]=[y.SpliceArray,v,v]}v<i[o][1]&&(i[o][1]=v),v>i[o][2]&&(i[o][2]=v)}else i[c]=y.Delete;else i[c]=[y.Copy,"object"!==("undefined"==typeof f?"undefined":_typeof(f))||null===f?f:clone(f)]}return Object.keys(i).length>0?i:null}function d(e,t){for(var r=Object.keys(t||{}),n=clone(e),a=0,i=r.length;a<i;++a){var o=r[a],s=t[o];if(s===y.Delete)delete n[o];else if(Array.isArray(s))switch(s[0]){case y.SpliceArray:n.splice(s[1],1+(s[2]-s[1]));break;case y.Copy:n[o]=clone(s[1]);break;case y.CopyDate:n[o]=new Date(s[1])}else n[o]=Util.patch(n[o],s)}return n}var f=/[&<>"'`]/g,p=new RegExp(f.source),h=Object.freeze({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"}),g=/&(?:amp|lt|gt|quot|apos|#39|#x27|#96|#x60);/g,m=new RegExp(g.source),v=Object.freeze({"&":"&","<":"<",">":">",""":'"',"'":"'","'":"'","'":"'","`":"`","`":"`"}),y=e({Delete:0,SpliceArray:1,Copy:2,CopyDate:3});return Object.freeze(Object.defineProperties({},{toEnum:{value:e},isNumeric:{value:t},isBoolean:{value:r},slugify:{value:n},escape:{value:a},unescape:{value:i},fromCssTime:{value:o},toCssTime:{value:s},fromCssProperty:{value:u},parseUrl:{value:l},DiffOp:{value:y},diff:{value:c},patch:{value:d},random:{value:Math.random},entityEncode:{value:a},entityDecode:{value:i},evalExpression:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),SimpleAudio=function(){function e(){return g}function t(e){g=!!e,l("mute",g)}function r(){return p}function n(e){p=Math.clamp(e,.2,5),l("rate",p)}function a(){return h}function i(e){h=Math.clamp(e,0,1),l("volume",h)}function o(){l("stop")}function s(e,t){if("function"!=typeof t)throw new Error("callback parameter must be a function");f.set(e,t)}function u(e){f.delete(e)}function l(e,t){f.forEach(function(r){return r(e,t)})}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(m,[null].concat(t)))}function d(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(v,[null].concat(t)))}var f=new Map,p=1,h=1,g=!1,m=function(){function e(t){if(_classCallCheck(this,e),Array.isArray(t))this._create(t);else{if(!(t instanceof e))throw new Error("sources parameter must be an array of either URLs or source objects");this._copy(t)}}return _createClass(e,[{key:"_create",value:function(t){if(!Array.isArray(t)||0===t.length)throw new Error("sources parameter must be an array of either URLs or source objects");var r=/^data:\s*audio\/([^;,]+)\s*[;,]/i,n=/\.([^.\/\\]+)$/,a=e.getType,i=[],o=document.createElement("audio");if(t.forEach(function(e){var t=null;switch("undefined"==typeof e?"undefined":_typeof(e)){case"string":var s=void 0;if("data:"===e.slice(0,5)){if(s=r.exec(e),null===s)throw new Error("source data URI missing media type")}else if(s=n.exec(Util.parseUrl(e).pathname),null===s)throw new Error("source URL missing file extension");var u=a(s[1]);null!==u&&(t={src:e,type:u});break;case"object":if(null===e)throw new Error("source object cannot be null");if(!e.hasOwnProperty("src"))throw new Error('source object missing required "src" property');if(!e.hasOwnProperty("format"))throw new Error('source object missing required "format" property');var l=a(e.format);null!==l&&(t={src:e.src,type:l});break;default:throw new Error("invalid source value (type: "+("undefined"==typeof e?"undefined":_typeof(e))+")")}if(null!==t){var c=document.createElement("source");c.src=t.src,c.type=t.type,o.appendChild(c),i.push(t)}}),!o.hasChildNodes())if(Browser.isIE)o.src=undefined;else{var s=document.createElement("source");s.src=undefined,s.type=undefined,o.appendChild(s)}this._finalize(o,i,clone(t))}},{key:"_copy",value:function(t){if(!(t instanceof e))throw new Error("original parameter must be an instance of AudioWrapper");this._finalize(t.audio.cloneNode(!0),clone(t.sources),clone(t.originalSources))}},{key:"_finalize",value:function(e,t,r){var n=this;Object.defineProperties(this,{audio:{configurable:!0,value:e},sources:{configurable:!0,value:Object.freeze(t)},originalSources:{configurable:!0,value:Object.freeze(r)},_error:{writable:!0,value:!1},_faderId:{writable:!0,value:null},_mute:{writable:!0,value:!1},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1}}),jQuery(this.audio).on("loadstart",function(){return n._error=!1}).on("error",function(){return n._error=!0}).find("source:last-of-type").on("error",function(){return n._trigger("error")}),SimpleAudio.subscribe(this,function(e){if(!n.audio)return void SimpleAudio.unsubscribe(n);switch(e){case"mute":n._updateAudioMute();break;case"rate":n._updateAudioRate();break;case"stop":n.stop();break;case"volume":n._updateAudioVolume()}}),this.load()}},{key:"_trigger",value:function(e){jQuery(this.audio).triggerHandler(e)}},{key:"clone",value:function(){return new e(this)}},{key:"destroy",value:function(){SimpleAudio.unsubscribe(this),this.fadeStop(),this.stop(); +var e=this.audio;for(jQuery(e).off();e.hasChildNodes();)e.removeChild(e.firstChild);e.load(),this._error=!0,delete this.audio,delete this.sources,delete this.originalSources}},{key:"_updateAudioMute",value:function(){this.audio.muted=this._mute||SimpleAudio.mute}},{key:"_updateAudioRate",value:function(){this.audio.playbackRate=this._rate*SimpleAudio.rate}},{key:"_updateAudioVolume",value:function(){this.audio.volume=this._volume*SimpleAudio.volume}},{key:"hasSource",value:function(){return this.sources.length>0}},{key:"hasNoData",value:function(){return this.audio.readyState===HTMLMediaElement.HAVE_NOTHING}},{key:"hasMetadata",value:function(){return this.audio.readyState>=HTMLMediaElement.HAVE_METADATA}},{key:"hasSomeData",value:function(){return this.audio.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA}},{key:"hasData",value:function(){return this.audio.readyState===HTMLMediaElement.HAVE_ENOUGH_DATA}},{key:"isFailed",value:function(){return this._error}},{key:"isLoading",value:function(){return this.audio.networkState===HTMLMediaElement.NETWORK_LOADING}},{key:"isPlaying",value:function(){return!(this.audio.ended||this.audio.paused||!this.hasSomeData())}},{key:"isPaused",value:function(){return this.audio.paused&&(this.audio.duration===1/0||this.audio.currentTime>0)&&!this.audio.ended}},{key:"isEnded",value:function(){return this.audio.ended}},{key:"isFading",value:function(){return null!==this._faderId}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return this.audio.loop}},{key:"load",value:function(){"auto"!==this.audio.preload&&(this.audio.preload="auto"),this.isLoading()||this.audio.load()}},{key:"play",value:function(){this.audio.play()}},{key:"pause",value:function(){this.audio.pause()}},{key:"stop",value:function(){this.audio.pause(),this.time=0,this._trigger(":stop")}},{key:"fadeWithDuration",value:function(e,t,r){var n=this;this.fadeStop();var a=Math.clamp(null==r?this.volume:r,0,1),i=Math.clamp(t,0,1);a!==i&&(this.volume=a,jQuery(this.audio).off("timeupdate.AudioWrapper:fadeWithDuration").one("timeupdate.AudioWrapper:fadeWithDuration",function(){var t=void 0,r=void 0;a<i?(t=a,r=i):(t=i,r=a);var o=Number(e);o<1&&(o=1);var s=25,u=(i-a)/(o/(s/1e3));n._faderId=setInterval(function(){return n.isPlaying()?(n.volume=Math.clamp(n.volume+u,t,r),0===n.volume&&n.pause(),void(n.volume===i&&(n.fadeStop(),n._trigger(":fade")))):void n.fadeStop()},s)}),this.play())}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"fadeStop",value:function(){null!==this._faderId&&(clearInterval(this._faderId),this._faderId=null)}},{key:"on",value:function(t,r){if("function"!=typeof r)throw new Error("listener parameter must be a function");var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).on(a,r),this}},{key:"one",value:function(t,r){if("function"!=typeof r)throw new Error("listener parameter must be a function");var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).one(a,r),this}},{key:"off",value:function(t,r){if(r&&"function"!=typeof r)throw new Error("listener parameter must be a function");if(!t)return jQuery(this.audio).off(".AudioWrapperEvent",r);var n=e._events,a=t.trim().splitOrEmpty(/\s+/).map(function(e){var t=e.split(".",1)[0];if(t){if(!n.hasOwnProperty(t))throw new Error('unknown event "'+t+'"; valid: '+Object.keys(n).join(", "));return e.replace(t,n[t])+".AudioWrapperEvent"}return e+".AudioWrapperEvent"}).join(" ");if(""===a)throw new Error('invalid eventNames parameter "'+t+'"');return jQuery(this.audio).off(a,r),this}},{key:"duration",get:function(){return this.audio.duration}},{key:"ended",get:function(){return this.audio.ended}},{key:"loop",get:function(){return this.audio.loop},set:function(e){this.audio.loop=!!e}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,this._updateAudioMute()}},{key:"paused",get:function(){return this.audio.paused}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),this._updateAudioRate()}},{key:"remaining",get:function(){return this.audio.duration-this.audio.currentTime}},{key:"time",get:function(){return this.audio.currentTime},set:function(e){var t=this;try{this.audio.currentTime=e}catch(r){jQuery(this.audio).off("loadedmetadata.AudioWrapper:time").one("loadedmetadata.AudioWrapper:time",function(){return t.audio.currentTime=e})}}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),this._updateAudioVolume()}}],[{key:"_verifyType",value:function(t){if(!t||!Has.audio)return null;var r=e._types;if(!r.hasOwnProperty(t)){var n=document.createElement("audio");r[t]=""!==n.canPlayType(t).replace(/^no$/i,"")}return r[t]?t:null}},{key:"getType",value:function(t){if(!t||!Has.audio)return null;var r=e.formats,n=t.toLowerCase(),a=r.hasOwnProperty(n)?r[n]:"audio/"+n;return e._verifyType(a)}},{key:"canPlayFormat",value:function(t){return null!==e.getType(t)}},{key:"canPlayType",value:function(t){return null!==e._verifyType(t)}}]),e}();Object.defineProperties(m,{formats:{value:{aac:"audio/aac",caf:"audio/x-caf","x-caf":"audio/x-caf",mp3:'audio/mpeg; codecs="mp3"',mpeg:'audio/mpeg; codecs="mp3"',m4a:"audio/mp4",mp4:"audio/mp4","x-m4a":"audio/mp4","x-mp4":"audio/mp4",oga:"audio/ogg",ogg:"audio/ogg",opus:'audio/ogg; codecs="opus"',wav:"audio/wav",wave:"audio/wav",weba:"audio/webm",webm:"audio/webm"}},_types:{value:{}},_events:{value:Object.freeze({canplay:"canplaythrough",end:"ended",error:"error",fade:":fade",pause:"pause",play:"playing",rate:"ratechange",seek:"seeked",stop:":stop",volume:"volumechange"})}});var v=function(){function e(t){var r=this;_classCallCheck(this,e),Object.defineProperties(this,{tracks:{configurable:!0,value:[]},queue:{configurable:!0,value:[]},current:{writable:!0,value:null},_rate:{writable:!0,value:1},_volume:{writable:!0,value:1},_mute:{writable:!0,value:!1},_loop:{writable:!0,value:!1},_shuffle:{writable:!0,value:!1}}),Array.isArray(t)?t.forEach(function(e){return r.add(e)}):t instanceof e&&t.tracks.forEach(function(e){return r.add(e)})}return _createClass(e,[{key:"add",value:function(e){var t=this;if(null==e||"object"!==("undefined"==typeof e?"undefined":_typeof(e)))throw new Error("track parameter must be an object");var r=void 0,n=void 0,a=void 0,i=void 0;if(e instanceof m)r=!0,n=e.clone(),a=e.volume,i=e.rate;else{if(!e.hasOwnProperty("track"))throw new Error('track object missing required "track" property');if(!(e.track instanceof m))throw new Error('track object\'s "track" property must be an AudioWrapper object');r=e.hasOwnProperty("copy")&&e.copy,n=r?e.track.clone():e.track,a=e.hasOwnProperty("volume")?e.volume:e.track.volume,i=e.hasOwnProperty("rate")?e.rate:e.track.rate}n.stop(),n.loop=!1,n.mute=!1,n.volume=a,n.rate=i,n.on("end.AudioListEvent",function(){return t._onEnd()}),this.tracks.push({copy:r,track:n,volume:a,rate:i})}},{key:"destroy",value:function(){this.stop(),this.tracks.filter(function(e){return e.copy}).forEach(function(e){return e.track.destroy()}),delete this.tracks,delete this.queue}},{key:"isPlaying",value:function(){return null!==this.current&&this.current.track.isPlaying()}},{key:"isEnded",value:function(){return 0===this.queue.length&&(null===this.current||this.current.track.isEnded())}},{key:"isPaused",value:function(){return null===this.current||this.current.track.isPaused()}},{key:"isMuted",value:function(){return this._mute}},{key:"isLooped",value:function(){return this._loop}},{key:"isShuffled",value:function(){return this._shuffle}},{key:"play",value:function(){(null!==this.current&&!this.current.track.isEnded()||(0===this.queue.length&&this._buildList(),this._next()))&&this.current.track.play()}},{key:"pause",value:function(){null!==this.current&&this.current.track.pause()}},{key:"stop",value:function(){null!==this.current&&(this.current.track.stop(),this.current=null),this.queue.splice(0)}},{key:"skip",value:function(){this._next()?this.current.track.play():this._loop&&this.play()}},{key:"fadeWithDuration",value:function(e,t,r){if(0===this.queue.length&&this._buildList(),null!==this.current&&!this.current.track.isEnded()||this._next()){var n=Math.clamp(t,0,1)*this.current.volume,a=void 0;null!=r&&(a=Math.clamp(r,0,1)*this.current.volume),this.current.track.fadeWithDuration(e,n,a),this._volume=t}}},{key:"fade",value:function(e,t){this.fadeWithDuration(5,e,t)}},{key:"fadeIn",value:function(){this.fade(1)}},{key:"fadeOut",value:function(){this.fade(0)}},{key:"_next",value:function(){return null!==this.current&&this.current.track.stop(),0===this.queue.length?(this.current=null,!1):(this.current=this.queue.shift(),!this.current.track.hasSource()||this.current.track.isFailed()?this._next():(this.current.track.mute=this._mute,this.current.track.rate=this.rate*this.current.rate,this.current.track.volume=this.volume*this.current.volume,!0))}},{key:"_onEnd",value:function(){if(0===this.queue.length){if(!this._loop)return;this._buildList()}this._next()&&this.current.track.play()}},{key:"_buildList",value:function(){var e;this.queue.splice(0),(e=this.queue).push.apply(e,_toConsumableArray(this.tracks)),0!==this.queue.length&&this._shuffle&&(this.queue.shuffle(),this.queue.length>1&&this.queue[0]===this.current&&this.queue.push(this.queue.shift()))}},{key:"duration",get:function(){return this.tracks.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0)}},{key:"loop",get:function(){return this._loop},set:function(e){this._loop=!!e}},{key:"mute",get:function(){return this._mute},set:function(e){this._mute=!!e,null!==this.current&&(this.current.track.mute=this._mute)}},{key:"rate",get:function(){return this._rate},set:function(e){this._rate=Math.clamp(e,.2,5),null!==this.current&&(this.current.track.rate=this.rate*this.current.rate)}},{key:"remaining",get:function(){var e=this.queue.map(function(e){return e.track.duration}).reduce(function(e,t){return e+t},0);return null!==this.current&&(e+=this.current.track.remaining),e}},{key:"shuffle",get:function(){return this._shuffle},set:function(e){this._shuffle=!!e}},{key:"time",get:function(){return this.duration-this.remaining}},{key:"volume",get:function(){return this._volume},set:function(e){this._volume=Math.clamp(e,0,1),null!==this.current&&(this.current.track.volume=this.volume*this.current.volume)}}]),e}();return Object.freeze(Object.defineProperties({},{mute:{get:e,set:t},rate:{get:r,set:n},volume:{get:a,set:i},stop:{value:o},subscribe:{value:s},unsubscribe:{value:u},publish:{value:l},create:{value:c},createList:{value:d}}))}(),SimpleStore=function(){function e(e,n){if(r)return r.create(e,n);for(var a=0;a<t.length;++a)if(t[a].init(e,n))return r=t[a],r.create(e,n);throw new Error("no valid adapters found")}var t=[],r=null;return Object.freeze(Object.defineProperties({},{adapters:{value:t},create:{value:e}}))}();SimpleStore.adapters.push(function(){function e(){return r=Has.localStorage&&Has.sessionStorage}function t(e,t){if(!r)throw new Error("adapter not initialized");return new n(e,t)}var r=!1,n=function(){function e(t,r){_classCallCheck(this,e);var n=t+".",a=null,i=null;r?(a=window.localStorage,i="localStorage"):(a=window.sessionStorage,i="sessionStorage"),Object.defineProperties(this,{_engine:{value:a},_prefix:{value:n},_prefixRe:{value:new RegExp("^"+RegExp.escape(n))},name:{value:i},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function e(){for(var e=[],t=0;t<this._engine.length;++t){var r=this._engine.key(t);this._prefixRe.test(r)&&e.push(r.replace(this._prefixRe,""))}return e}},{key:"has",value:function(e){return!("string"!=typeof e||!e)&&this._engine.hasOwnProperty(this._prefix+e)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=this._engine.getItem(this._prefix+t);return null==r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{this._engine.setItem(this._prefix+t,e._serialize(r))}catch(e){throw/quota_?(?:exceeded|reached)/i.test(e.name)&&(e.message=this.name+" quota exceeded"),e}return!0}},{key:"delete",value:function(e){return!("string"!=typeof e||!e)&&(this._engine.removeItem(this._prefix+e),!0)}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_serialize",value:function(e){return LZString.compressToUTF16(JSON.stringify(e))}},{key:"_deserialize",value:function(e){return JSON.parse(LZString.decompressFromUTF16(e))}}]),e}();return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}()),SimpleStore.adapters.push(function(){function e(e){return n="cookie"in document,n&&r(e),n}function t(e,t){if(!n)throw new Error("adapter not initialized");return new a(e,t)}function r(e){if(""!==document.cookie)for(var t=e+".",r=new RegExp("^"+RegExp.escape(t)),n=e+"!.",i=e+"*.",o=/\.(?:state|rcWarn)$/,s=document.cookie.split(/;\s*/),u=0;u<s.length;++u){var l=s[u].split("="),c=decodeURIComponent(l[0]);if(r.test(c)){var d=decodeURIComponent(l[1]);""!==d&&!function(){var e=!o.test(c);a._setCookie(c,undefined,"Thu, 01 Jan 1970 00:00:00 GMT"),a._setCookie(c.replace(r,function(){return e?n:i}),d,e?"Tue, 19 Jan 2038 03:14:07 GMT":undefined)}()}}}var n=!1,a=function(){function e(t,r){_classCallCheck(this,e);var n=""+t+(r?"!":"*")+".";Object.defineProperties(this,{_prefix:{value:n},_prefixRe:{value:new RegExp("^"+RegExp.escape(n))},name:{value:"cookie"},id:{value:t},persistent:{value:!!r}})}return _createClass(e,[{key:"size",value:function(){return this.keys().length}},{key:"keys",value:function e(){if(""===document.cookie)return[];for(var t=document.cookie.split(/;\s*/),e=[],r=0;r<t.length;++r){var n=t[r].split("="),a=decodeURIComponent(n[0]);if(this._prefixRe.test(a)){var i=decodeURIComponent(n[1]);""!==i&&e.push(a.replace(this._prefixRe,""))}}return e}},{key:"has",value:function(t){return!("string"!=typeof t||!t)&&null!==e._getCookie(this._prefix+t)}},{key:"get",value:function(t){if("string"!=typeof t||!t)return null;var r=e._getCookie(this._prefix+t);return null===r?null:e._deserialize(r)}},{key:"set",value:function(t,r){if("string"!=typeof t||!t)return!1;try{if(e._setCookie(this._prefix+t,e._serialize(r),this.persistent?"Tue, 19 Jan 2038 03:14:07 GMT":undefined),!this.has(t))throw new Error("unknown validation error during set")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"delete",value:function(t){if("string"!=typeof t||!t||!this.has(t))return!1;try{if(e._setCookie(this._prefix+t,undefined,"Thu, 01 Jan 1970 00:00:00 GMT"),this.has(t))throw new Error("unknown validation error during delete")}catch(e){throw e.message="cookie error: "+e.message,e}return!0}},{key:"clear",value:function(){for(var e=this.keys(),t=0,r=e.length;t<r;++t)this.delete(e[t]);return!0}},{key:"length",get:function(){return this.keys().length}}],[{key:"_getCookie",value:function(e){if(!e||""===document.cookie)return null;for(var t=document.cookie.split(/;\s*/),r=0;r<t.length;++r){var n=t[r].split("="),a=decodeURIComponent(n[0]);if(e===a){var i=decodeURIComponent(n[1]);return i||null}}return null}},{key:"_setCookie",value:function(e,t,r){if(e){var n=encodeURIComponent(e)+"=";null!=t&&(n+=encodeURIComponent(t)),null!=r&&(n+="; "+r),n+="; path=/",document.cookie=n}}},{key:"_serialize",value:function(e){return LZString.compressToBase64(JSON.stringify(e))}},{key:"_deserialize",value:function(e){return JSON.parse(LZString.decompressFromBase64(e))}}]),e}();return Object.freeze(Object.defineProperties({},{init:{value:e},create:{value:t}}))}());var DebugView=function(){var e=function(){function e(t,r,n,a){_classCallCheck(this,e),Object.defineProperties(this,{parent:{value:t},view:{value:document.createElement("span")},break:{value:document.createElement("wbr")}}),jQuery(this.view).attr({title:a,"aria-label":a,"data-type":null!=r?r:"","data-name":null!=n?n:""}).addClass("debug"),this.parent.appendChild(this.view),this.parent.appendChild(this.break)}return _createClass(e,[{key:"append",value:function(e){return jQuery(this.view).append(e),this}},{key:"modes",value:function(e){var t=this;if(null==e){var r=function(){var e={};return t.view.className.splitOrEmpty(/\s+/).forEach(function(t){"debug"!==t&&(e[t]=!0)}),{v:e}}();if("object"===("undefined"==typeof r?"undefined":_typeof(r)))return r.v}else if("object"===("undefined"==typeof e?"undefined":_typeof(e)))return Object.keys(e).forEach(function(t){this[e[t]?"addClass":"removeClass"](t)},jQuery(this.view)),this;throw new Error("DebugView.prototype.modes options parameter must be an object or null/undefined")}},{key:"remove",value:function(){var e=jQuery(this.view);this.view.hasChildNodes()&&e.contents().appendTo(this.parent),e.remove(),jQuery(this.break).remove()}},{key:"output",get:function(){return this.view}},{key:"type",get:function(){return this.view.getAttribute("data-type")},set:function(e){this.view.setAttribute("data-type",null!=e?e:"")}},{key:"name",get:function(){return this.view.getAttribute("data-name")},set:function(e){this.view.setAttribute("data-name",null!=e?e:"")}},{key:"title",get:function(){return this.view.title},set:function(e){this.view.title=e}}],[{key:"init",value:function(){jQuery('<button id="debug-view-toggle">'+L10n.get("debugViewTitle")+"</button>").ariaClick({label:L10n.get("debugViewToggle")},function(){return e.toggle()}).prependTo("#ui-bar-body"),e.enable()}},{key:"enable",value:function(){jQuery(document.documentElement).attr("data-debug-view","enabled"),jQuery.event.trigger(":debugviewupdate")}},{key:"disable",value:function(){jQuery(document.documentElement).removeAttr("data-debug-view"),jQuery.event.trigger(":debugviewupdate")}},{key:"toggle",value:function(){"enabled"===jQuery(document.documentElement).attr("data-debug-view")?e.disable():e.enable()}}]),e}();return e}(),PRNGWrapper=function(){var e=function(){function e(t,r){_classCallCheck(this,e),Object.defineProperties(this,new Math.seedrandom(t,r,function(e,t){return{_prng:{value:e},seed:{writable:!0,value:t},pull:{writable:!0,value:0},random:{value:function(){return++this.pull,this._prng()}}}}))}return _createClass(e,null,[{key:"marshal",value:function(e){if(!e||!e.hasOwnProperty("seed")||!e.hasOwnProperty("pull"))throw new Error("PRNG is missing required data");return{seed:e.seed,pull:e.pull}}},{key:"unmarshal",value:function(t){if(!t||!t.hasOwnProperty("seed")||!t.hasOwnProperty("pull"))throw new Error("PRNG object is missing required data");for(var r=new e(t.seed,!1),n=t.pull;n>0;--n)r.random();return r}}]),e}();return e}(),StyleWrapper=function(){var e=/\[[<>]?[Ii][Mm][Gg]\[(?:\s|\S)*?\]\]+/g,t=new RegExp(e.source),r=function(){function r(e){if(_classCallCheck(this,r),null==e)throw new TypeError("StyleWrapper style parameter must be an HTMLStyleElement object");Object.defineProperties(this,{style:{value:e}})}return _createClass(r,[{key:"isEmpty",value:function(){return 0===this.style.cssRules.length}},{key:"set",value:function(e){this.clear(),this.add(e)}},{key:"add",value:function(r){var n=r;t.test(n)&&(e.lastIndex=0,n=n.replace(e,function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup({source:e,matchStart:0});if(t.hasOwnProperty("error")||t.pos<e.length)return e;var r=t.source;if("data:"!==r.slice(0,5)&&Story.has(r)){var n=Story.get(r);n.tags.includes("Twine.image")&&(r=n.text)}return'url("'+r.replace(/"/g,"%22")+'")'})),this.style.styleSheet?this.style.styleSheet.cssText+=n:this.style.appendChild(document.createTextNode(n))}},{key:"clear",value:function(){this.style.styleSheet?this.style.styleSheet.cssText="":jQuery(this.style).empty()}}]),r}();return r}(),L10n=function(){function e(){r()}function t(e,t){if(!e)return"";var r=function(e){var t=void 0;return e.some(function(e){return!!l10nStrings.hasOwnProperty(e)&&(t=e,!0)}),t}(Array.isArray(e)?e:[e]);if(!r)return"";for(var i=50,o=l10nStrings[r],s=0;a.test(o);){if(++s>i)throw new Error("L10n.get exceeded maximum replacement iterations, probable infinite loop");n.lastIndex=0,o=o.replace(n,function(e){var r=e.slice(1,-1);return t&&t.hasOwnProperty(r)?t[r]:l10nStrings.hasOwnProperty(r)?l10nStrings[r]:void 0})}return o}function r(){strings&&Object.keys(strings).length>0&&Object.keys(l10nStrings).forEach(function(e){try{var t=void 0;switch(e){case"identity":t=strings.identity;break;case"aborting":t=strings.aborting;break;case"cancel":t=strings.cancel;break;case"close":t=strings.close;break;case"ok":t=strings.ok;break;case"errorTitle":t=strings.errors.title;break;case"errorNonexistentPassage":t=strings.errors.nonexistentPassage;break;case"errorSaveMissingData":t=strings.errors.saveMissingData;break;case"errorSaveIdMismatch":t=strings.errors.saveIdMismatch;break;case"warningDegraded":t=strings.warnings.degraded;break;case"debugViewTitle":t=strings.debugView.title;break;case"debugViewToggle":t=strings.debugView.toggle;break;case"uiBarToggle":t=strings.uiBar.toggle;break;case"uiBarBackward":t=strings.uiBar.backward;break;case"uiBarForward":t=strings.uiBar.forward;break;case"uiBarJumpto":t=strings.uiBar.jumpto;break;case"jumptoTitle":t=strings.jumpto.title;break;case"jumptoTurn":t=strings.jumpto.turn;break;case"jumptoUnavailable":t=strings.jumpto.unavailable;break;case"savesTitle":t=strings.saves.title;break;case"savesDisallowed":t=strings.saves.disallowed;break;case"savesEmptySlot":t=strings.saves.emptySlot;break;case"savesIncapable":t=strings.saves.incapable;break;case"savesLabelAuto":t=strings.saves.labelAuto;break;case"savesLabelDelete":t=strings.saves.labelDelete;break;case"savesLabelExport":t=strings.saves.labelExport;break;case"savesLabelImport":t=strings.saves.labelImport;break;case"savesLabelLoad":t=strings.saves.labelLoad;break;case"savesLabelClear":t=strings.saves.labelClear;break;case"savesLabelSave":t=strings.saves.labelSave;break;case"savesLabelSlot":t=strings.saves.labelSlot;break;case"savesSavedOn":t=strings.saves.savedOn;break;case"savesUnavailable":t=strings.saves.unavailable;break;case"savesUnknownDate":t=strings.saves.unknownDate;break;case"settingsTitle":t=strings.settings.title;break;case"settingsOff":t=strings.settings.off;break;case"settingsOn":t=strings.settings.on;break;case"settingsReset":t=strings.settings.reset;break;case"restartTitle":t=strings.restart.title;break;case"restartPrompt":t=strings.restart.prompt;break;case"shareTitle":t=strings.share.title;break;case"autoloadTitle":t=strings.autoload.title;break;case"autoloadCancel":t=strings.autoload.cancel;break;case"autoloadOk":t=strings.autoload.ok;break;case"autoloadPrompt":t=strings.autoload.prompt;break;case"macroBackText":t=strings.macros.back.text;break;case"macroReturnText":t=strings.macros.return.text}t&&(l10nStrings[e]=t.replace(/%\w+%/g,function(e){return"{"+e.slice(1,-1)+"}"}))}catch(e){}})}var n=/\{\w+\}/g,a=new RegExp(n.source);return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:t}}))}(),strings={errors:{},warnings:{},debugView:{},uiBar:{},jumpto:{},saves:{},settings:{},restart:{},share:{},autoload:{},macros:{back:{},return:{}}},l10nStrings={identity:"game",aborting:"Aborting",cancel:"Cancel",close:"Close",ok:"OK",errorTitle:"Error",errorNonexistentPassage:'the passage "{passage}" does not exist',errorSaveMissingData:"save is missing required data. Either the loaded file is not a save or the save has become corrupted",errorSaveIdMismatch:"save is from the wrong {identity}",_warningIntroLacking:"Your browser either lacks or has disabled",_warningOutroDegraded:", so this {identity} is running in a degraded mode. You may be able to continue, however, some parts may not work properly.",warningNoWebStorage:"{_warningIntroLacking} the Web Storage API{_warningOutroDegraded}",warningDegraded:"{_warningIntroLacking} some of the capabilities required by this {identity}{_warningOutroDegraded}",debugViewTitle:"Debug View",debugViewToggle:"Toggle the debug view",uiBarToggle:"Toggle the UI bar",uiBarBackward:"Go backward within the {identity} history",uiBarForward:"Go forward within the {identity} history",uiBarJumpto:"Jump to a specific point within the {identity} history",jumptoTitle:"Jump To",jumptoTurn:"Turn",jumptoUnavailable:"No jump points currently available…",savesTitle:"Saves",savesDisallowed:"Saving has been disallowed on this passage.",savesEmptySlot:"— slot empty —",savesIncapable:"{_warningIntroLacking} the capabilities required to support saves, so saves have been disabled for this session.",savesLabelAuto:"Autosave",savesLabelDelete:"Delete",savesLabelExport:"Save to Disk…",savesLabelImport:"Load from Disk…",savesLabelLoad:"Load",savesLabelClear:"Delete All",savesLabelSave:"Save",savesLabelSlot:"Slot",savesSavedOn:"Saved on",savesUnavailable:"No save slots found…",savesUnknownDate:"unknown",settingsTitle:"Settings",settingsOff:"Off",settingsOn:"On",settingsReset:"Reset to Defaults",restartTitle:"Restart",restartPrompt:"Are you sure that you want to restart? Unsaved progress will be lost.",shareTitle:"Share",autoloadTitle:"Autoload",autoloadCancel:"Go to start",autoloadOk:"Load autosave",autoloadPrompt:"An autosave exists. Load it now or go to the start?",macroBackText:"Back",macroReturnText:"Return"},Config=function(){function e(){throw new Error("Config.history.mode has been deprecated and is no longer used by SugarCube, please remove it from your code")}function t(){throw new Error("Config.history.tracking has been deprecated, use Config.history.maxStates instead")}var r=Object.seal({debug:!1,addVisitedLinkClass:!1,cleanupWikifierOutput:!1,loadDelay:0,history:Object.seal({controls:!0,maxStates:100,get mode(){e()},set mode(t){e()},get tracking(){t()},set tracking(e){t()}}),macros:Object.seal({ifAssignmentError:!0,maxLoopIterations:1e3}),navigation:Object.seal({override:undefined}),passages:Object.seal({descriptions:undefined,displayTitles:!1,start:undefined,transitionOut:undefined}),saves:Object.seal({autoload:undefined,autosave:undefined,id:"untitled-story",isAllowed:undefined,onLoad:undefined,onSave:undefined,slots:8,version:undefined}),ui:Object.seal({stowBarInitially:800,updateStoryElements:!0}),transitionEndEventName:function(){for(var e=new Map([["transition","transitionend"],["MSTransition","msTransitionEnd"],["WebkitTransition","webkitTransitionEnd"],["MozTransition","transitionend"]]),t=[].concat(_toConsumableArray(e.keys())),r=document.createElement("div"),n=0;n<t.length;++n)if(r.style[t[n]]!==undefined)return e.get(t[n]);return""}()});return r}(),Patterns=function(){var e=/[\u0150\u0170]/g.test("Å"),t=function(){var e=new Map([[" ","\\u0020"],["\f","\\f"],["\n","\\n"],["\r","\\r"],["\t","\\t"],["\v","\\v"],[" ","\\u00a0"],[" ","\\u1680"],["á Ž","\\u180e"],[" ","\\u2000"],["â€","\\u2001"],[" ","\\u2002"],[" ","\\u2003"],[" ","\\u2004"],[" ","\\u2005"],[" ","\\u2006"],[" ","\\u2007"],[" ","\\u2008"],[" ","\\u2009"],[" ","\\u200a"],["\u2028","\\u2028"],["\u2029","\\u2029"],[" ","\\u202f"],["âŸ","\\u205f"],[" ","\\u3000"],["\ufeff","\\ufeff"]]),t=/\s/,r="";return e.forEach(function(e,n){t.test(n)||(r+=e)}),r?"[\\s"+r+"]":"\\s"}(),r="[\\u0020\\f\\t\\v\\u00a0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]",n="[\\n\\r\\u2028\\u2029]",a="[0-9A-Z_a-z\\-\\u00C0-\\u00D6\\u00D8-\\u00DE\\u00DF-\\u00F6\\u00F8-\\u00FF"+(e?"\\u0150\\u0170\\u0151\\u0171":"")+"]",i=a.replace("\\-",""),o="[$A-Z_a-z]",s=o+"[$0-9A-Z_a-z]*",u="[$_]",l=u+s,c="[A-Za-z][\\w-]*|[=-]",d="("+a+"+)\\(([^\\)\\|\\n]+)\\):",f="("+a+"+):([^;\\|\\n]+);",p="((?:\\."+a+"+)+);",h="((?:#"+a+"+)+);",g=d+"|"+f+"|"+p+"|"+h,m="(?:file|https?|mailto|ftp|javascript|irc|news|data):[^\\s'\"]+";return Object.freeze({space:t,spaceNoTerminator:r,lineTerminator:n,anyLetter:a,anyLetterStrict:i,identifierFirstChar:o,identifier:s,variableSigil:u,variable:l,macroName:c,inlineCss:g,url:m})}(),Scripting=function(){function addAccessibleClickHandler(e,t,r,n,a){if(arguments.length<2)throw new Error("addAccessibleClickHandler insufficient number of parameters");var i=void 0,o=void 0;if("function"==typeof t?(i=t,o={namespace:n,one:!!r}):(i=r,o={namespace:a,one:!!n,selector:t}),"function"!=typeof i)throw new TypeError("addAccessibleClickHandler handler parameter must be a function");return jQuery(e).ariaClick(o,i)}function insertElement(e,t,r,n,a,i){var o=jQuery(document.createElement(t));return r&&o.attr("id",r),n&&o.addClass(n),i&&o.attr("title",i),a&&o.text(a),e&&o.appendTo(e),o[0]}function insertText(e,t){jQuery(e).append(document.createTextNode(t))}function removeChildren(e){jQuery(e).empty()}function removeElement(e){jQuery(e).remove()}function fade(e,t){function r(){i+=.05*a,n(o,Math.easeInOut(i)),(1===a&&i>=1||a===-1&&i<=0)&&(e.style.visibility="in"===t.fade?"visible":"hidden",o.parentNode.replaceChild(e,o),o=null,window.clearInterval(s),t.onComplete&&t.onComplete())}function n(e,t){e.style.zoom=1,e.style.filter="alpha(opacity="+Math.floor(100*t)+")",e.style.opacity=t}var a="in"===t.fade?1:-1,i=void 0,o=e.cloneNode(!0),s=void 0;e.parentNode.replaceChild(o,e),"in"===t.fade?(i=0,o.style.visibility="visible"):i=1,n(o,i),s=window.setInterval(r,25)}function scrollWindowTo(e,t){function r(){c+=i,window.scroll(0,o+l*(u*Math.easeInOut(c))),c>=1&&window.clearInterval(d)}function n(e){for(var t=0;e.offsetParent;)t+=e.offsetTop,e=e.offsetParent;return t}function a(e){var t=n(e),r=t+e.offsetHeight,a=window.scrollY?window.scrollY:document.body.scrollTop,i=window.innerHeight?window.innerHeight:document.body.clientHeight,o=a+i;return t>=a&&r>o&&e.offsetHeight<i?t-(i-e.offsetHeight)+20:t}var i=null!=t?Number(t):.1;Number.isNaN(i)||!Number.isFinite(i)||i<0?i=.1:i>1&&(i=1);var o=window.scrollY?window.scrollY:document.body.scrollTop,s=a(e),u=Math.abs(o-s),l=o>s?-1:1,c=0,d=void 0;d=window.setInterval(r,25)}function either(){if(0!==arguments.length)return Array.prototype.concat.apply([],arguments).random()}function hasVisited(){if(0===arguments.length)throw new Error("hasVisited called with insufficient parameters");if(State.isEmpty())return!1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=0,n=e.length;r<n;++r)if(!t.includes(e[r]))return!1;return!0}function lastVisited(){if(0===arguments.length)throw new Error("lastVisited called with insufficient parameters");if(State.isEmpty())return-1;for(var e=Array.prototype.concat.apply([],arguments),t=State.passages,r=t.length-1,n=State.turns,a=0,i=e.length;a<i&&n>-1;++a){var o=t.lastIndexOf(e[a]);n=Math.min(n,o===-1?-1:r-o)}return n}function passage(){return State.passage}function previous(){var e=State.passages;if(arguments.length>0){var t=Number(arguments[0]);if(!Number.isSafeInteger(t)||t<1)throw new RangeError("previous offset parameter must be a positive integer greater than zero");return e.length>t?e[e.length-1-t]:""}for(var r=e.length-2;r>=0;--r)if(e[r]!==State.passage)return e[r];return""}function random(){if(0===arguments.length)throw new Error("random called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return Math.floor(State.random()*(t-e+1))+e}function randomFloat(){if(0===arguments.length)throw new Error("randomFloat called with insufficient parameters");var e=void 0,t=void 0;if(1===arguments.length?(e=0,t=arguments[0]):(e=arguments[0],t=arguments[1]),e>t){var r=[t,e];e=r[0],t=r[1]}return State.random()*(t-e)+e}function tags(){ +if(0===arguments.length)return Story.get(State.passage).tags.slice(0);for(var e=Array.prototype.concat.apply([],arguments),t=[],r=0,n=e.length;r<n;++r)t=t.concat(Story.get(e[r]).tags);return t}function time(){return null===Engine.lastPlay?0:Date.now()-Engine.lastPlay}function turns(){return State.turns}function variables(){return State.variables}function visited(){if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],0===arguments.length?[State.passage]:arguments),t=State.passages,r=State.turns,n=0,a=e.length;n<a&&r>0;++n)r=Math.min(r,t.count(e[n]));return r}function visitedTags(){if(0===arguments.length)throw new Error("visitedTags called with insufficient parameters");if(State.isEmpty())return 0;for(var e=Array.prototype.concat.apply([],arguments),t=e.length,r=State.passages,n=new Map,a=0,i=0,o=r.length;i<o;++i){var s=r[i];if(n.has(s))n.get(s)&&++a;else{var u=Story.get(s).tags;if(u.length>0){for(var l=0,c=0;c<t;++c)u.includes(e[c])&&++l;l===t?(++a,n.set(s,!0)):n.set(s,!1)}}}return a}function evalJavaScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,String(code),output)}function evalTwineScript(code,output){return function(code,output){return eval(code)}.call(output?{output:output}:null,parse(String(code)),output)}var _ref7=function(){function e(e){return e.reduce(function(e,t){return e=e.then(t)},Promise.resolve())}function t(e){return Util.parseUrl(e).path.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w]+/g,"-").toLocaleLowerCase()}function r(){function r(e){return new Promise(function(r,n){jQuery(document.createElement("script")).one("load abort error",function(e){jQuery(e.target).off(),"load"===e.type?r(e.target):n(e.target)}).appendTo(document.head).attr({id:"script-imported-"+t(e),type:"text/javascript",src:e})})}for(var n=arguments.length,a=Array(n),i=0;i<n;i++)a[i]=arguments[i];return Promise.all(a.map(function(t){return Array.isArray(t)?e(t.map(function(e){return function(){return r(e)}})):r(t)}))}function n(){function r(e){return new Promise(function(r,n){jQuery(document.createElement("link")).one("load abort error",function(e){jQuery(e.target).off(),"load"===e.type?r(e.target):n(e.target)}).appendTo(document.head).attr({id:"style-imported-"+t(e),rel:"stylesheet",href:e})})}for(var n=arguments.length,a=Array(n),i=0;i<n;i++)a[i]=arguments[i];return Promise.all(a.map(function(t){return Array.isArray(t)?e(t.map(function(e){return function(){return r(e)}})):r(t)}))}return{importScripts:r,importStyles:n}}(),importScripts=_ref7.importScripts,importStyles=_ref7.importStyles,parse=function(){function e(e){if(0!==r.lastIndex)throw new RangeError("Scripting.parse last index is non-zero at start");for(var a=e,i=void 0;null!==(i=r.exec(a));)if(i[5]){var o=i[5];if("$"===o||"_"===o)continue;if(n.test(o))o=o[0];else if("is"===o){var s=r.lastIndex,u=a.slice(s);/^\s+not\b/.test(u)&&(a=a.splice(s,u.search(/\S/)),o="isnot")}t.hasOwnProperty(o)&&(a=a.splice(i.index,o.length,t[o]),r.lastIndex+=t[o].length-o.length)}return a}var t=Object.freeze({$:"State.variables.",_:"State.temporary.",to:"=",eq:"==",neq:"!=",is:"===",isnot:"!==",gt:">",gte:">=",lt:"<",lte:"<=",and:"&&",or:"||",not:"!",def:'"undefined" !== typeof',ndef:'"undefined" === typeof'}),r=new RegExp(["(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","([=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}]+)","([^\"'=+\\-*\\/%<>&\\|\\^~!?:,;\\(\\)\\[\\]{}\\s]+)"].join("|"),"g"),n=new RegExp("^"+Patterns.variable);return e}();return Object.freeze(Object.defineProperties({},{parse:{value:parse},evalJavaScript:{value:evalJavaScript},evalTwineScript:{value:evalTwineScript}}))}(),Wikifier=function(){var e=0,t=function(){function t(r,n,a){_classCallCheck(this,t),t.Parser.Profile.isEmpty()&&t.Parser.Profile.compile(),Object.defineProperties(this,{source:{value:String(n)},options:{writable:!0,value:Object.assign({profile:"all"},a)},nextMatch:{writable:!0,value:0},output:{writable:!0,value:null},_rawArgs:{writable:!0,value:""}}),null==r?this.output=document.createDocumentFragment():r.jquery?this.output=r[0]:this.output=r;try{++e,this.subWikify(this.output),1===e&&Config.cleanupWikifierOutput&&convertBreaks(this.output)}finally{--e}}return _createClass(t,[{key:"subWikify",value:function(e,r,n){var a=this.output,i=void 0;this.output=e,null!=n&&"object"===("undefined"==typeof n?"undefined":_typeof(n))&&(i=this.options,this.options=Object.assign({},this.options,n));var o=t.Parser.Profile.get(this.options.profile),s=r?new RegExp("(?:"+r+")",this.options.ignoreTerminatorCase?"gim":"gm"):null,u=void 0,l=void 0;do{if(o.parserRegExp.lastIndex=this.nextMatch,s&&(s.lastIndex=this.nextMatch),l=o.parserRegExp.exec(this.source),u=s?s.exec(this.source):null,u&&(!l||u.index<=l.index))return u.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,u.index),this.matchStart=u.index,this.matchLength=u[0].length,this.matchText=u[0],this.nextMatch=s.lastIndex,this.output=a,void(i&&(this.options=i));if(l){l.index>this.nextMatch&&this.outputText(this.output,this.nextMatch,l.index),this.matchStart=l.index,this.matchLength=l[0].length,this.matchText=l[0],this.nextMatch=o.parserRegExp.lastIndex;for(var c=void 0,d=1,f=l.length;d<f;++d)if(l[d]){c=d-1;break}if(o.parsers[c].handler(this),null!=TempState.break)break}}while(u||l);null==TempState.break?this.nextMatch<this.source.length&&(this.outputText(this.output,this.nextMatch,this.source.length),this.nextMatch=this.source.length):this.output.lastChild&&this.output.lastChild.nodeType===Node.ELEMENT_NODE&&"BR"===this.output.lastChild.nodeName.toUpperCase()&&jQuery(this.output.lastChild).remove(),this.output=a,i&&(this.options=i)}},{key:"outputText",value:function(e,t,r){jQuery(e).append(document.createTextNode(this.source.substring(t,r)))}},{key:"rawArgs",value:function(){return this._rawArgs}},{key:"fullArgs",value:function(){return Scripting.parse(this.rawArgs())}}],[{key:"getValue",value:function(e){var r=t.parseStoryVariable(e),n=void 0;if(null!==r){n=r.store;for(var a=r.names,i=0,o=a.length;i<o;++i){if("undefined"==typeof n[a[i]]){n=undefined;break}n=n[a[i]]}}return n}},{key:"setValue",value:function(e,r){var n=t.parseStoryVariable(e);if(null!==n){for(var a=n.names,i=a.pop(),o=n.store,s=0,u=a.length;s<u;++s){if("undefined"==typeof o[a[s]]){o=undefined;break}o=o[a[s]]}if(o!==undefined)return o[i]=r,!0}return!1}},{key:"parseStoryVariable",value:function(e){for(var r={store:"$"===e[0]?State.variables:State.temporary,names:[]},n=e,a=void 0;null!==(a=t._parseVarRegExp.exec(n));)n=n.slice(a[0].length),a[1]?r.names.push(a[1]):a[2]?r.names.push(a[2]):a[3]?r.names.push(a[3]):a[4]?r.names.push(a[4]):a[5]?r.names.push(t.getValue(a[5])):a[6]&&r.names.push(Number(a[6]));return""===n?r:null}},{key:"wikifyEval",value:function(e){var r=document.createDocumentFragment();new t(r,e);var n=r.querySelector(".error");if(null!==n)throw new Error(n.textContent.replace(/^(?:(?:Uncaught\s+)?Error:\s+)+/,""));return r}},{key:"createInternalLink",value:function(e,t,r,n){var a=jQuery(document.createElement("a"));return null!=t&&(a.attr("data-passage",t),Story.has(t)?(a.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&a.addClass("link-visited")):a.addClass("link-broken"),a.ariaClick({one:!0},function(){"function"==typeof n&&n(),Engine.play(t)})),r&&a.append(document.createTextNode(r)),e&&a.appendTo(e),a[0]}},{key:"createExternalLink",value:function(e,t,r){var n=jQuery(document.createElement("a")).attr("target","_blank").addClass("link-external").text(r).appendTo(e);return null!=t&&n.attr({href:t,tabindex:0}),n[0]}},{key:"isExternalLink",value:function(e){if(Story.has(e))return!1;var t=new RegExp("^"+Patterns.url,"gim");return t.test(e)||/[\/.?#]/.test(e)}}]),t}();return Object.defineProperty(t,"Parser",{value:function(){function e(){return d}function t(e){if("object"!==("undefined"==typeof e?"undefined":_typeof(e)))throw new Error("Wikifier.Parser.add parser parameter must be an object");if(!e.hasOwnProperty("name"))throw new Error('parser object missing required "name" property');if("string"!=typeof e.name)throw new Error('parser object "name" property must be a string');if(!e.hasOwnProperty("match"))throw new Error('parser object missing required "match" property');if("string"!=typeof e.match)throw new Error('parser object "match" property must be a string');if(!e.hasOwnProperty("handler"))throw new Error('parser object missing required "handler" property');if("function"!=typeof e.handler)throw new Error('parser object "handler" property must be a function');if(e.hasOwnProperty("profiles")&&!Array.isArray(e.profiles))throw new Error('parser object "profiles" property must be an array');if(a(e.name))throw new Error('cannot clobber existing parser "'+e.name+'"');d.push(e)}function r(e){var t=d.find(function(t){return t.name===e});t&&d.delete(t)}function n(){return 0===d.length}function a(e){return!!d.find(function(t){return t.name===e})}function i(e){return d.find(function(t){return t.name===e})||null}function o(){return f}function s(){var e=d,t=e.filter(function(e){return!Array.isArray(e.profiles)||e.profiles.includes("core")});return f=Object.freeze({all:{parsers:e,parserRegExp:new RegExp(e.map(function(e){return"("+e.match+")"}).join("|"),"gm")},core:{parsers:t,parserRegExp:new RegExp(t.map(function(e){return"("+e.match+")"}).join("|"),"gm")}})}function u(){return"object"!==("undefined"==typeof f?"undefined":_typeof(f))||0===Object.keys(f).length}function l(e){if("object"!==("undefined"==typeof f?"undefined":_typeof(f))||!f.hasOwnProperty(e))throw new Error('nonexistent parser profile "'+e+'"');return f[e]}function c(e){return"object"===("undefined"==typeof f?"undefined":_typeof(f))&&f.hasOwnProperty(e)}var d=[],f=void 0;return Object.freeze(Object.defineProperties({},{parsers:{get:e},add:{value:t},delete:{value:r},isEmpty:{value:n},has:{value:a},get:{value:i},Profile:{value:Object.freeze(Object.defineProperties({},{profiles:{get:o},compile:{value:s},isEmpty:{value:u},has:{value:c},get:{value:l}}))}}))}()}),Object.defineProperties(t,{_parseVarRegExp:{value:new RegExp("^(?:"+Patterns.variableSigil+"("+Patterns.identifier+")|\\.("+Patterns.identifier+")|\\[(?:(?:\"((?:\\\\.|[^\"\\\\])+)\")|(?:'((?:\\\\.|[^'\\\\])+)')|("+Patterns.variableSigil+Patterns.identifierFirstChar+".*)|(\\d+))\\])")},helpers:{value:{}},parse:{value:Scripting.parse},evalExpression:{value:Scripting.evalTwineScript},evalStatements:{value:Scripting.evalTwineScript},textPrimitives:{value:Patterns}}),Object.defineProperties(t.helpers,{inlineCss:{value:function(){function e(e){var r={classes:[],id:"",styles:{}},n=void 0;do{t.lastIndex=e.nextMatch;var a=t.exec(e.source);n=a&&a.index===e.nextMatch,n&&(a[1]?r.styles[Util.fromCssProperty(a[1])]=a[2].trim():a[3]?r.styles[Util.fromCssProperty(a[3])]=a[4].trim():a[5]?r.classes=r.classes.concat(a[5].slice(1).split(/\./)):a[6]&&(r.id=a[6].slice(1).split(/#/).pop()),e.nextMatch=t.lastIndex)}while(n);return r}var t=new RegExp(Patterns.inlineCss,"gm");return e}()},evalText:{value:function(e){var t=void 0;try{t=Scripting.evalTwineScript(e),null==t||"function"==typeof t?t=e:(t=String(t),/\[(?:object(?:\s+[^\]]+)?|native\s+code)\]/.test(t)&&(t=e))}catch(r){t=e}return t}},evalPassageId:{value:function(e){return null==e||Story.has(e)?e:t.helpers.evalText(e)}},hasBlockContext:{value:function(e){for(var t="function"==typeof window.getComputedStyle,r=e.length-1;r>=0;--r){var n=e[r];switch(n.nodeType){case Node.ELEMENT_NODE:var a=n.nodeName.toUpperCase();if("BR"===a)return!0;var i=t?window.getComputedStyle(n,null):n.currentStyle;if(i&&i.display){if("none"===i.display)continue;return"block"===i.display}switch(a){case"ADDRESS":case"ARTICLE":case"ASIDE":case"BLOCKQUOTE":case"CENTER":case"DIV":case"DL":case"FIGURE":case"FOOTER":case"FORM":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"HEADER":case"HR":case"MAIN":case"NAV":case"OL":case"P":case"PRE":case"SECTION":case"TABLE":case"UL":return!0}return!1;case Node.COMMENT_NODE:continue;default:return!1}}return!0}},createShadowSetterCallback:{value:function(){function e(){if(!a&&(a=t.Parser.get("macro"),!a))throw new Error('cannot find "macro" parser');return a}function r(){for(var t=a||e(),r=new Set,n=t.context;null!==n;n=n.parent)n._shadows&&n._shadows.forEach(function(e){return r.add(e)});return[].concat(_toConsumableArray(r))}function n(e){var t={};return r().forEach(function(e){var r=e.slice(1),n="$"===e[0]?State.variables:State.temporary;t[e]=n[r]}),function(){var r=Object.keys(t),n=r.length>0?{}:null;try{return r.forEach(function(e){var r=e.slice(1),a="$"===e[0]?State.variables:State.temporary;a.hasOwnProperty(r)&&(n[r]=a[r]),a[r]=t[e]}),Scripting.evalJavaScript(e)}finally{r.forEach(function(e){var r=e.slice(1),a="$"===e[0]?State.variables:State.temporary;t[e]=a[r],n.hasOwnProperty(r)?a[r]=n[r]:delete a[r]})}}}var a=null;return n}()},parseSquareBracketedMarkup:{value:function(e){function t(){return d>=e.source.length?u:e.source[d++]}function r(){return d>=e.source.length?u:e.source[d]}function n(t){return t<1||d+t>=e.source.length?u:e.source[d+t]}function a(){return{error:String.format.apply(String,arguments),pos:d}}function i(){c=d}function o(t){var r=e.source.slice(c,d).trim();if(""===r)throw new Error("malformed wiki "+(h?"link":"image")+", empty "+t+" component");"link"===t&&"~"===r[0]?(l.forceInternal=!0,l.link=r.slice(1)):l[t]=r,c=d}function s(e){++d;e:for(;;){switch(r()){case"\\":++d;var t=r();if(t!==u&&"\n"!==t)break;case u:case"\n":return u;case e:break e}++d}return d}var u=-1,l={},c=e.matchStart,d=c+1,f=void 0,p=void 0,h=void 0,g=void 0;if(g=r(),"["===g)h=l.isLink=!0;else{switch(h=!1,g){case"<":l.align="left",++d;break;case">":l.align="right",++d}if(!/^[Ii][Mm][Gg]$/.test(e.source.slice(d,d+3)))return a("malformed square-bracketed wiki markup");d+=3,l.isImage=!0}if("["!==t())return a("malformed wiki {0}",h?"link":"image");f=1,p=0,i();try{e:for(;;){switch(g=r()){case u:case"\n":return a("unterminated wiki {0}",h?"link":"image");case'"':if(s(g)===u)return a("unterminated double quoted string in wiki {0}",h?"link":"image");break;case"'":if((4===p||3===p&&h)&&s(g)===u)return a("unterminated single quoted string in wiki {0}",h?"link":"image");break;case"|":0===p&&(o(h?"text":"title"),++c,p=1);break;case"-":0===p&&">"===n(1)&&(o(h?"text":"title"),++d,c+=2,p=1);break;case"<":0===p&&"-"===n(1)&&(o(h?"link":"source"),++d,c+=2,p=2);break;case"[":if(p===-1)return a("unexpected left square bracket '['");++f,1===f&&(i(),++c);break;case"]":if(--f,0===f){switch(p){case 0:case 1:o(h?"link":"source"),p=3;break;case 2:o(h?"text":"title"),p=3;break;case 3:h?(o("setter"),p=-1):(o("link"),p=4);break;case 4:o("setter"),p=-1}if(++d,"]"===r()){++d;break e}--d}}++d}}catch(e){return a(e.message)}return l.pos=d,l}}}),t}();!function(){Wikifier.Parser.add({name:"macro",profiles:["core"],match:"<<",lookahead:new RegExp("<<(\\/?"+Patterns.macroName+")(?:\\s*)((?:(?:\"(?:\\\\.|[^\"\\\\])*\")|(?:'(?:\\\\.|[^'\\\\])*')|(?:\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)|[^>]|(?:>(?!>)))*)>>","gm"),argsPattern:["(``)","`((?:\\\\.|[^`\\\\])+)`","(\"\"|'')",'("(?:\\\\.|[^"\\\\])+")',"('(?:\\\\.|[^'\\\\])+')","(\\[(?:[<>]?[Ii][Mm][Gg])?\\[[^\\r\\n]*?\\]\\]+)","([^`\"'\\s]+)","(`|\"|')"].join("|"),working:{source:"",name:"",arguments:"",index:0},context:null,handler:function(e){var t=this.lookahead.lastIndex=e.matchStart;if(this.parseTag(e)){var r=e.nextMatch,n=this.working.source,a=this.working.name,i=this.working.arguments,o=void 0;try{if(o=Macro.get(a),!o){if(Macro.tags.has(a)){var s=Macro.tags.get(a);return throwError(e.output,"child tag <<"+a+">> was found outside of a call to its parent macro"+(1===s.length?"":"s")+" <<"+s.join(">>, <<")+">>",e.source.slice(t,e.nextMatch))}return throwError(e.output,"macro <<"+a+">> does not exist",e.source.slice(t,e.nextMatch))}var u=null;if(o.hasOwnProperty("tags")&&(u=this.parseBody(e,o),!u))return e.nextMatch=r,throwError(e.output,"cannot find a closing tag for macro <<"+a+">>",e.source.slice(t,e.nextMatch)+"…");if("function"!=typeof o.handler)return throwError(e.output,"macro <<"+a+">> handler function "+(o.hasOwnProperty("handler")?"is not a function":"does not exist"),e.source.slice(t,e.nextMatch));var l=u?u[0].args:this.createArgs(i,o.hasOwnProperty("skipArgs")&&!!o.skipArgs||o.hasOwnProperty("skipArg0")&&!!o.skipArg0);if(o.hasOwnProperty("_MACRO_API")){this.context=new MacroContext({parent:this.context,macro:o,name:a,args:l,payload:u,parser:e,source:n});try{o.handler.call(this.context)}finally{this.context=this.context.parent}}else{var c=e._rawArgs;e._rawArgs=i,o.handler(e.output,a,l,e,u),e._rawArgs=c}}catch(r){return throwError(e.output,"cannot execute "+(o&&o.isWidget?"widget":"macro")+" <<"+a+">>: "+r.message,e.source.slice(t,e.nextMatch))}finally{this.working.source="",this.working.name="",this.working.arguments="",this.working.index=0}}else e.outputText(e.output,e.matchStart,e.nextMatch)},parseTag:function(e){var t=this.lookahead.exec(e.source);return!(!t||t.index!==e.matchStart||!t[1])&&(e.nextMatch=this.lookahead.lastIndex,this.working.source=e.source.slice(t.index,this.lookahead.lastIndex),this.working.name=t[1],this.working.arguments=t[2],this.working.index=t.index,!0)},parseBody:function(e,t){for(var r=this.working.name,n="/"+r,a="end"+r,i=!!Array.isArray(t.tags)&&t.tags,o=[],s=t.hasOwnProperty("skipArgs")&&t.skipArgs,u=t.hasOwnProperty("skipArg0")&&t.skipArg0,l=-1,c=1,d=this.working.source,f=this.working.name,p=this.working.arguments,h=e.nextMatch;(e.matchStart=e.source.indexOf(this.match,e.nextMatch))!==-1;)if(this.parseTag(e)){var g=this.working.source,m=this.working.name,v=this.working.arguments,y=this.working.index,b=e.nextMatch;switch(m){case r:++c;break;case a:case n:--c;break;default:if(1===c&&i)for(var w=0,k=i.length;w<k;++w)m===i[w]&&(o.push({source:d,name:f,arguments:p,args:this.createArgs(p,s||0===o.length&&u),contents:e.source.slice(h,y)}),d=g,f=m,p=v,h=b)}if(0===c){o.push({source:d,name:f,arguments:p,args:this.createArgs(p,s||0===o.length&&u),contents:e.source.slice(h,y)}),l=b;break}}else this.lookahead.lastIndex=e.nextMatch=e.matchStart+this.match.length;return l!==-1?(e.nextMatch=l,o):null},createArgs:function(e,t){var r=t?[]:this.parseArgs(e);return Object.defineProperties(r,{raw:{value:e},full:{value:Scripting.parse(e)}}),r},parseArgs:function(e){for(var t=new RegExp(this.argsPattern,"gm"),r=[],n=new RegExp("^"+Patterns.variable),a=void 0;null!==(a=t.exec(e));){var i=void 0;if(a[1])i=undefined;else if(a[2]){i=a[2];try{i=Scripting.evalTwineScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}}else if(a[3])i="";else if(a[4]){i=a[4];try{i=Scripting.evalJavaScript(i)}catch(e){throw new Error("unable to parse macro argument '"+i+"': "+e.message)}}else if(a[5]){i=a[5];try{i=Scripting.evalJavaScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}}else if(a[6]){i=a[6];var o=Wikifier.helpers.parseSquareBracketedMarkup({source:i,matchStart:0});if(o.hasOwnProperty("error"))throw new Error('unable to parse macro argument "'+i+'": '+o.error);if(o.pos<i.length)throw new Error('unable to parse macro argument "'+i+'": unexpected character(s) "'+i.slice(o.pos)+'" (pos: '+o.pos+")");o.isLink?(i={isLink:!0},i.count=o.hasOwnProperty("text")?2:1,i.link=Wikifier.helpers.evalPassageId(o.link),i.text=o.hasOwnProperty("text")?Wikifier.helpers.evalText(o.text):i.link,i.external=!o.forceInternal&&Wikifier.isExternalLink(i.link),i.setFn=o.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(o.setter)):null):o.isImage&&(i=function(e){var t={source:e,isImage:!0};if("data:"!==e.slice(0,5)&&Story.has(e)){var r=Story.get(e);r.tags.includes("Twine.image")&&(t.source=r.text,t.passage=r.title)}return t}(Wikifier.helpers.evalPassageId(o.source)),o.hasOwnProperty("align")&&(i.align=o.align),o.hasOwnProperty("title")&&(i.title=Wikifier.helpers.evalText(o.title)),o.hasOwnProperty("link")&&(i.link=Wikifier.helpers.evalPassageId(o.link),i.external=!o.forceInternal&&Wikifier.isExternalLink(i.link)),i.setFn=o.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(o.setter)):null)}else if(a[7])if(i=a[7],n.test(i))i=Wikifier.getValue(i);else if(/^(?:settings|setup)[.[]/.test(i))try{i=Scripting.evalTwineScript(i)}catch(e){throw new Error('unable to parse macro argument "'+i+'": '+e.message)}else if("null"===i)i=null;else if("undefined"===i)i=undefined;else if("true"===i)i=!0;else if("false"===i)i=!1;else{var s=Number(i);Number.isNaN(s)||(i=s)}else if(a[8]){var u=void 0;switch(a[8]){case"`":u="backtick expression";break;case'"':u="double quoted string";break;case"'":u="single quoted string"}throw new Error("unterminated "+u+" in macro argument string")}r.push(i)}return r}}),Wikifier.Parser.add({name:"prettyLink",profiles:["core"],match:"\\[\\[[^[]",handler:function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var r=Wikifier.helpers.evalPassageId(t.link),n=t.hasOwnProperty("text")?Wikifier.helpers.evalText(t.text):r,a=t.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(t.setter)):null,i=(Config.debug?new DebugView(e.output,"wiki-link","[[link]]",e.source.slice(e.matchStart,e.nextMatch)):e).output;t.forceInternal||!Wikifier.isExternalLink(r)?Wikifier.createInternalLink(i,r,n,a):Wikifier.createExternalLink(i,r,n)}}),Wikifier.Parser.add({name:"urlLink",profiles:["core"],match:Patterns.url,handler:function(e){e.outputText(Wikifier.createExternalLink(e.output,e.matchText),e.matchStart,e.nextMatch)}}),Wikifier.Parser.add({name:"image",profiles:["core"],match:"\\[[<>]?[Ii][Mm][Gg]\\[",handler:function(e){var t=Wikifier.helpers.parseSquareBracketedMarkup(e);if(t.hasOwnProperty("error"))return void e.outputText(e.output,e.matchStart,e.nextMatch);e.nextMatch=t.pos;var r=void 0;Config.debug&&(r=new DebugView(e.output,"wiki-image",t.hasOwnProperty("link")?"[img[][link]]":"[img[]]",e.source.slice(e.matchStart,e.nextMatch)),r.modes({block:!0}));var n=t.hasOwnProperty("setter")?Wikifier.helpers.createShadowSetterCallback(Scripting.parse(t.setter)):null,a=(Config.debug?r:e).output,i=void 0;if(t.hasOwnProperty("link")){var o=Wikifier.helpers.evalPassageId(t.link);a=t.forceInternal||!Wikifier.isExternalLink(o)?Wikifier.createInternalLink(a,o,null,n):Wikifier.createExternalLink(a,o),a.classList.add("link-image")}if(a=jQuery(document.createElement("img")).appendTo(a).get(0),i=Wikifier.helpers.evalPassageId(t.source),"data:"!==i.slice(0,5)&&Story.has(i)){var s=Story.get(i);s.tags.includes("Twine.image")&&(a.setAttribute("data-passage",s.title),i=s.text)}a.src=i,t.hasOwnProperty("title")&&(a.title=Wikifier.helpers.evalText(t.title)),t.hasOwnProperty("align")&&(a.align=t.align)}}),Wikifier.Parser.add({name:"monospacedByBlock",profiles:["block"],match:"^\\{\\{\\{\\n",lookahead:/^\{\{\{\n((?:^[^\n]*\n)+?)(^\}\}\}$\n?)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(jQuery(document.createElement("pre")).text(t[1]).appendTo(e.output),e.nextMatch=this.lookahead.lastIndex)}}),Wikifier.Parser.add({name:"formatByChar",profiles:["core"],match:"''|//|__|\\^\\^|~~|==|\\{\\{\\{",handler:function(e){switch(e.matchText){case"''":e.subWikify(jQuery(document.createElement("strong")).appendTo(e.output).get(0),"''");break;case"//":e.subWikify(jQuery(document.createElement("em")).appendTo(e.output).get(0),"//");break;case"__":e.subWikify(jQuery(document.createElement("u")).appendTo(e.output).get(0),"__");break;case"^^":e.subWikify(jQuery(document.createElement("sup")).appendTo(e.output).get(0),"\\^\\^");break;case"~~":e.subWikify(jQuery(document.createElement("sub")).appendTo(e.output).get(0),"~~");break;case"==":e.subWikify(jQuery(document.createElement("s")).appendTo(e.output).get(0),"==");break;case"{{{":var t=/\{\{\{((?:.|\n)*?)\}\}\}/gm;t.lastIndex=e.matchStart;var r=t.exec(e.source);r&&r.index===e.matchStart&&(jQuery(document.createElement("code")).text(r[1]).appendTo(e.output),e.nextMatch=t.lastIndex)}}}),Wikifier.Parser.add({name:"customStyle",profiles:["core"],match:"@@",terminator:"@@",blockRegExp:/\s*\n/gm,handler:function(e){var t=Wikifier.helpers.inlineCss(e);this.blockRegExp.lastIndex=e.nextMatch;var r=this.blockRegExp.exec(e.source),n=r&&r.index===e.nextMatch,a=jQuery(document.createElement(n?"div":"span")).appendTo(e.output);0===t.classes.length&&""===t.id&&0===Object.keys(t.styles).length?a.addClass("marked"):(t.classes.forEach(function(e){return a.addClass(e)}),""!==t.id&&a.attr("id",t.id),a.css(t.styles)),n?(e.nextMatch+=r[0].length,e.subWikify(a[0],"\\n?"+this.terminator)):e.subWikify(a[0],this.terminator)}}),Wikifier.Parser.add({name:"verbatimText",profiles:["core"],match:'"{3}|<nowiki>',lookahead:/(?:"{3}((?:.|\n)*?)"{3})|(?:<nowiki>((?:.|\n)*?)<\/nowiki>)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(jQuery(document.createElement("span")).addClass("verbatim").text(t[1]||t[2]).appendTo(e.output),e.nextMatch=this.lookahead.lastIndex)}}),Wikifier.Parser.add({name:"horizontalRule",profiles:["core"],match:"^----+$\\n?|<hr\\s*/?>\\n?",handler:function(e){jQuery(document.createElement("hr")).appendTo(e.output)}}),Wikifier.Parser.add({name:"emdash",profiles:["core"],match:"--",handler:function(e){jQuery(document.createTextNode("—")).appendTo(e.output)}}),Wikifier.Parser.add({name:"doubleDollarSign",profiles:["core"],match:"\\${2}",handler:function(e){jQuery(document.createTextNode("$")).appendTo(e.output)}}),Wikifier.Parser.add({name:"nakedVariable",profiles:["core"],match:Patterns.variable+"(?:(?:\\."+Patterns.identifier+")|(?:\\[\\d+\\])|(?:\\[\"(?:\\\\.|[^\"\\\\])+\"\\])|(?:\\['(?:\\\\.|[^'\\\\])+'\\])|(?:\\["+Patterns.variable+"\\]))*",handler:function(e){var t=toStringOrDefault(Wikifier.getValue(e.matchText),null);null===t?jQuery(document.createTextNode(e.matchText)).appendTo(e.output):new Wikifier((Config.debug?new DebugView(e.output,"variable",e.matchText,e.matchText):e).output,t)}}),Wikifier.Parser.add({name:"heading",profiles:["block"],match:"^!{1,6}",terminator:"\\n",handler:function(e){return Wikifier.helpers.hasBlockContext(e.output.childNodes)?void e.subWikify(jQuery(document.createElement("h"+e.matchLength)).appendTo(e.output).get(0),this.terminator):void jQuery(e.output).append(document.createTextNode(e.matchText))}}),Wikifier.Parser.add({name:"table",profiles:["block"],match:"^\\|(?:[^\\n]*)\\|(?:[fhck]?)$",lookahead:/^\|([^\n]*)\|([fhck]?)$/gm,rowTerminator:"\\|(?:[cfhk]?)$\\n?",cellPattern:"(?:\\|([^\\n\\|]*)\\|)|(\\|[cfhk]?$\\n?)",cellTerminator:"(?:\\u0020*)\\|",rowTypes:{c:"caption",f:"tfoot",h:"thead","":"tbody"},handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=jQuery(document.createElement("table")).appendTo(e.output).get(0),r=[],n=null,a=null,i=0,o=void 0;e.nextMatch=e.matchStart;do{this.lookahead.lastIndex=e.nextMatch;var s=this.lookahead.exec(e.source);if(o=s&&s.index===e.nextMatch){var u=s[2];"k"===u?(t.className=s[1],e.nextMatch+=s[0].length+1):(u!==n&&(n=u,a=jQuery(document.createElement(this.rowTypes[u])).appendTo(t)),"c"===n?(a.css("caption-side",0===i?"top":"bottom"),e.nextMatch+=1,e.subWikify(a[0],this.rowTerminator)):this.rowHandler(e,jQuery(document.createElement("tr")).appendTo(a).get(0),r),++i)}}while(o)},rowHandler:function(e,t,r){var n=this,a=new RegExp(this.cellPattern,"gm"),i=0,o=1,s=void 0;do{a.lastIndex=e.nextMatch;var u=a.exec(e.source);if(s=u&&u.index===e.nextMatch){if("~"===u[1]){var l=r[i];l&&(++l.rowCount,l.$element.attr("rowspan",l.rowCount).css("vertical-align","middle")),e.nextMatch=u.index+u[0].length-1}else if(">"===u[1])++o,e.nextMatch=u.index+u[0].length-1;else{if(u[2]){e.nextMatch=u.index+u[0].length;break}!function(){++e.nextMatch;for(var a=Wikifier.helpers.inlineCss(e),s=!1,u=!1,l=void 0;" "===e.source.substr(e.nextMatch,1);)s=!0,++e.nextMatch;"!"===e.source.substr(e.nextMatch,1)?(l=jQuery(document.createElement("th")).appendTo(t),++e.nextMatch):l=jQuery(document.createElement("td")).appendTo(t),r[i]={rowCount:1,$element:l},o>1&&(l.attr("colspan",o),o=1),e.subWikify(l[0],n.cellTerminator)," "===e.matchText.substr(e.matchText.length-2,1)&&(u=!0),a.classes.forEach(function(e){return l.addClass(e)}),""!==a.id&&l.attr("id",a.id),s&&u?a.styles["text-align"]="center":s?a.styles["text-align"]="right":u&&(a.styles["text-align"]="left"),l.css(a.styles),e.nextMatch=e.nextMatch-1}()}++i}}while(s)}}),Wikifier.Parser.add({name:"list",profiles:["block"],match:"^(?:(?:\\*+)|(?:#+))",lookahead:/^(?:(\*+)|(#+))/gm,terminator:"\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));e.nextMatch=e.matchStart;var t=[e.output],r=null,n=0,a=void 0,i=void 0;do{this.lookahead.lastIndex=e.nextMatch;var o=this.lookahead.exec(e.source);if(a=o&&o.index===e.nextMatch){var s=o[2]?"ol":"ul",u=o[0].length;if(e.nextMatch+=o[0].length,u>n)for(i=n;i<u;++i)t.push(jQuery(document.createElement(s)).appendTo(t[t.length-1]).get(0));else if(u<n)for(i=n;i>u;--i)t.pop();else u===n&&s!==r&&(t.pop(),t.push(jQuery(document.createElement(s)).appendTo(t[t.length-1]).get(0)));n=u,r=s,e.subWikify(jQuery(document.createElement("li")).appendTo(t[t.length-1]).get(0),this.terminator)}}while(a)}}),Wikifier.Parser.add({name:"quoteByBlock",profiles:["block"],match:"^<<<\\n",terminator:"^<<<\\n",handler:function(e){return Wikifier.helpers.hasBlockContext(e.output.childNodes)?void e.subWikify(jQuery(document.createElement("blockquote")).appendTo(e.output).get(0),this.terminator):void jQuery(e.output).append(document.createTextNode(e.matchText))}}),Wikifier.Parser.add({name:"quoteByLine",profiles:["block"],match:"^>+",lookahead:/^>+/gm,terminator:"\\n",handler:function(e){if(!Wikifier.helpers.hasBlockContext(e.output.childNodes))return void jQuery(e.output).append(document.createTextNode(e.matchText));var t=[e.output],r=0,n=e.matchLength,a=void 0,i=void 0;do{if(n>r)for(i=r;i<n;++i)t.push(jQuery(document.createElement("blockquote")).appendTo(t[t.length-1]).get(0));else if(n<r)for(i=r;i>n;--i)t.pop();r=n,e.subWikify(t[t.length-1],this.terminator),jQuery(document.createElement("br")).appendTo(t[t.length-1]),this.lookahead.lastIndex=e.nextMatch;var o=this.lookahead.exec(e.source);a=o&&o.index===e.nextMatch,a&&(n=o[0].length,e.nextMatch+=o[0].length)}while(a)}}),Wikifier.Parser.add({name:"html",profiles:["core"],match:"<[Hh][Tt][Mm][Ll]>",lookahead:/<[Hh][Tt][Mm][Ll]>((?:.|\n)*?)<\/[Hh][Tt][Mm][Ll]>/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex,jQuery(document.createDocumentFragment()).append(t[1]).appendTo(e.output))}}),Wikifier.Parser.add({name:"commentByBlock",profiles:["core"],match:"(?:/(?:%|\\*))|(?:<!--)",lookahead:/(?:\/(%|\*)(?:(?:.|\n)*?)\1\/)|(?:<!--(?:(?:.|\n)*?)-->)/gm,handler:function(e){this.lookahead.lastIndex=e.matchStart;var t=this.lookahead.exec(e.source);t&&t.index===e.matchStart&&(e.nextMatch=this.lookahead.lastIndex)}}),Wikifier.Parser.add({name:"lineContinuation",profiles:["core"],match:"\\\\"+Patterns.spaceNoTerminator+"*(?:\\n|$)|(?:^|\\n)"+Patterns.spaceNoTerminator+"*\\\\",handler:function(e){e.nextMatch=e.matchStart+e.matchLength}}),Wikifier.Parser.add({name:"lineBreak",profiles:["core"],match:"\\n|<br\\s*/?>",handler:function(e){e.options.nobr||jQuery(document.createElement("br")).appendTo(e.output)}}),Wikifier.Parser.add({name:"htmlCharacterReference",profiles:["core"],match:"(?:(?:&#?[0-9A-Za-z]{2,8};|.)(?:&#?(?:x0*(?:3[0-6][0-9A-Fa-f]|1D[C-Fc-f][0-9A-Fa-f]|20[D-Fd-f][0-9A-Fa-f]|FE2[0-9A-Fa-f])|0*(?:76[89]|7[7-9][0-9]|8[0-7][0-9]|761[6-9]|76[2-7][0-9]|84[0-3][0-9]|844[0-7]|6505[6-9]|6506[0-9]|6507[0-1]));)+|&#?[0-9A-Za-z]{2,8};)", +handler:function(e){jQuery(document.createDocumentFragment()).append(e.matchText).appendTo(e.output)}}),Wikifier.Parser.add({name:"htmlTag",profiles:["core"],match:"<\\w+(?:\\s+[^\\u0000-\\u001F\\u007F-\\u009F\\s\"'>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*?\"|'[^']*?'|[^\\s\"'=<>`]+))?)*\\s*\\/?>",tagPattern:"<(\\w+)",voidElements:["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],nobrElements:["colgroup","datalist","dl","figure","ol","optgroup","select","table","tbody","tfoot","thead","tr","ul"],handler:function(e){var t=new RegExp(this.tagPattern).exec(e.matchText),r=t&&t[1],n=r&&r.toLowerCase();if(n){var a=this.voidElements.includes(n),i=this.nobrElements.includes(n),o=void 0,s=void 0;if(!a){o="<\\/"+n+"\\s*>";var u=new RegExp(o,"gim");u.lastIndex=e.matchStart,s=u.exec(e.source)}if(a||s){var l=e.output,c=document.createElement(e.output.tagName),d=void 0;for(c.innerHTML=e.matchText;c.firstChild;)c=c.firstChild;c.hasAttribute("data-passage")&&(this.processDataAttributes(c),Config.debug&&(d=new DebugView(e.output,"html-"+n,n,e.matchText),d.modes({block:"img"===n,nonvoid:s}),l=d.output)),s&&(e.subWikify(c,o,{ignoreTerminatorCase:!0,nobr:i}),d&&jQuery(c).find(".debug.block").length>0&&d.modes({block:!0})),l.appendChild(c)}else throwError(e.output,'HTML tag "'+r+'" is not closed',e.matchText+"…")}},processDataAttributes:function(e){var t=e.getAttribute("data-passage");if(null!=t){var r=Wikifier.helpers.evalPassageId(t);r!==t&&(t=r,e.setAttribute("data-passage",r)),""!==t&&("IMG"===e.tagName.toUpperCase()?"data:"!==t.slice(0,5)&&Story.has(t)&&(t=Story.get(t),t.tags.includes("Twine.image")&&(e.src=t.text.trim())):!function(){var r=e.getAttribute("data-setter"),n=void 0;null!=r&&(r=String(r).trim(),""!==r&&(n=Wikifier.helpers.createShadowSetterCallback(Scripting.parse(r)))),Story.has(t)?(e.classList.add("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(t)&&e.classList.add("link-visited")):e.classList.add("link-broken"),jQuery(e).ariaClick({one:!0},function(){"function"==typeof n&&n.call(this),Engine.play(t)})}())}}})}();var Macro=function(){function e(t,r,a){if(Array.isArray(t))return void t.forEach(function(t){return e(t,r,a)});if(!f.test(t))throw new Error('invalid macro name "'+t+'"');if(n(t))throw new Error("cannot clobber existing macro <<"+t+">>");if(u(t))throw new Error("cannot clobber child tag <<"+t+">> of parent macro"+(1===d[t].length?"":"s")+" <<"+d[t].join(">>, <<")+">>");try{if("object"===("undefined"==typeof r?"undefined":_typeof(r)))c[t]=a?clone(r):r;else{if(!n(r))throw new Error("cannot create alias of nonexistent macro <<"+r+">>");c[t]=a?clone(c[r]):c[r]}Object.defineProperty(c,t,{writable:!1}),c[t]._MACRO_API=!0}catch(e){throw"TypeError"===e.name?new Error("cannot clobber protected macro <<"+t+">>"):new Error("unknown error when attempting to add macro <<"+t+">>: ["+e.name+"] "+e.message)}if(c[t].hasOwnProperty("tags"))if(null==c[t].tags)o(t);else{if(!Array.isArray(c[t].tags))throw new Error('bad value for "tags" property of macro <<'+t+">>");o(t,c[t].tags)}}function t(e){if(Array.isArray(e))return void e.forEach(function(e){return t(e)});if(n(e)){c[e].hasOwnProperty("tags")&&s(e);try{Object.defineProperty(c,e,{writable:!0}),delete c[e]}catch(t){throw new Error("unknown error removing macro <<"+e+">>: "+t.message)}}else if(u(e))throw new Error("cannot remove child tag <<"+e+">> of parent macro <<"+d[e]+">>")}function r(){return 0===Object.keys(c).length}function n(e){return c.hasOwnProperty(e)}function a(e){var t=null;return n(e)&&"function"==typeof c[e].handler?t=c[e]:macros.hasOwnProperty(e)&&"function"==typeof macros[e].handler&&(t=macros[e]),t}function i(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"init";Object.keys(c).forEach(function(t){"function"==typeof c[t][e]&&c[t][e](t)}),Object.keys(macros).forEach(function(t){"function"==typeof macros[t][e]&¯os[t][e](t)})}function o(e,t){if(!e)throw new Error("no parent specified");for(var r=["/"+e,"end"+e],a=[].concat(r,Array.isArray(t)?t:[]),i=0;i<a.length;++i){var o=a[i];if(n(o))throw new Error("cannot register tag for an existing macro");u(o)?d[o].includes(e)||(d[o].push(e),d[o].sort()):d[o]=[e]}}function s(e){if(!e)throw new Error("no parent specified");Object.keys(d).forEach(function(t){var r=d[t].indexOf(e);r!==-1&&(1===d[t].length?delete d[t]:d[t].splice(r,1))})}function u(e){return d.hasOwnProperty(e)}function l(e){return u(e)?d[e]:null}var c={},d={},f=new RegExp("^(?:"+Patterns.macroName+")$");return Object.freeze(Object.defineProperties({},{add:{value:e},delete:{value:t},isEmpty:{value:r},has:{value:n},get:{value:a},init:{value:i},tags:{value:Object.freeze(Object.defineProperties({},{register:{value:o},unregister:{value:s},has:{value:u},get:{value:l}}))},evalStatements:{value:function(){return Scripting.evalJavaScript.apply(Scripting,arguments)}}}))}(),MacroContext=function(){var e=function(){function e(t){_classCallCheck(this,e);var r=Object.assign({parent:null,macro:null,name:"",args:null,payload:null,parser:null,source:""},t);if(null===r.macro||""===r.name||null===r.parser)throw new TypeError("context object missing required properties");Object.defineProperties(this,{parent:{value:r.parent},self:{value:r.macro},name:{value:r.name},args:{value:r.args},payload:{value:r.payload},source:{value:r.source},parser:{value:r.parser},_output:{value:r.parser.output},_shadows:{writable:!0,value:null},_debugView:{writable:!0,value:null},_debugViewEnabled:{writable:!0,value:Config.debug}})}return _createClass(e,[{key:"contextHas",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return!0;return!1}},{key:"contextSelect",value:function(e){for(var t=this;null!==(t=t.parent);)if(e(t))return t;return null}},{key:"contextSelectAll",value:function(e){for(var t=[],r=this;null!==(r=r.parent);)e(r)&&t.push(r);return t}},{key:"addShadow",value:function(){var e=this;this._shadows||(this._shadows=new Set);for(var t=new RegExp("^"+Patterns.variable+"$"),r=arguments.length,n=Array(r),a=0;a<r;a++)n[a]=arguments[a];n.flatten().forEach(function(r){if("string"!=typeof r)throw new TypeError("variable name must be a string; type: "+("undefined"==typeof r?"undefined":_typeof(r)));if(!t.test(r))throw new Error('invalid variable name "'+r+'"');e._shadows.add(r)})}},{key:"createShadowWrapper",value:function(e,t,r){var n=void 0;return"function"==typeof e&&(n={},this.shadowView.forEach(function(e){var t=e.slice(1),r="$"===e[0]?State.variables:State.temporary;n[e]=r[t]})),function(){for(var a=this,i=arguments.length,o=Array(i),s=0;s<i;s++)o[s]=arguments[s];"function"==typeof r&&r.apply(this,o),"function"==typeof e&&!function(){var t=Object.keys(n),r=t.length>0?{}:null;try{t.forEach(function(e){var t=e.slice(1),a="$"===e[0]?State.variables:State.temporary;a.hasOwnProperty(t)&&(r[t]=a[t]),a[t]=n[e]}),e.apply(a,o)}finally{t.forEach(function(e){var t=e.slice(1),a="$"===e[0]?State.variables:State.temporary;n[e]=a[t],r.hasOwnProperty(t)?a[t]=r[t]:delete a[t]})}}(),"function"==typeof t&&t.apply(this,o)}}},{key:"createDebugView",value:function(e,t){return this._debugView=new DebugView(this._output,"macro",e?e:this.name,t?t:this.source),null!==this.payload&&this.payload.length>0&&this._debugView.modes({nonvoid:!0}),this._debugViewEnabled=!0,this._debugView}},{key:"removeDebugView",value:function(){null!==this._debugView&&(this._debugView.remove(),this._debugView=null),this._debugViewEnabled=!1}},{key:"error",value:function(e,t){return throwError(this._output,"<<"+this.name+">>: "+e,t?t:this.source)}},{key:"output",get:function(){return this._debugViewEnabled?this.debugView.output:this._output}},{key:"shadows",get:function(){return[].concat(_toConsumableArray(this._shadows))}},{key:"shadowView",get:function(){var e=new Set;return this.contextSelectAll(function(e){return e._shadows}).forEach(function(t){return t._shadows.forEach(function(t){return e.add(t)})}),[].concat(_toConsumableArray(e))}},{key:"debugView",get:function(){return this._debugViewEnabled?null!==this._debugView?this._debugView:this.createDebugView():null}}]),e}();return e}();!function(){Macro.add("capture",{skipArgs:!0,tags:null,handler:function(){if(0===this.args.raw.length)return this.error("no story/temporary variable list specified");var e={};try{for(var t=new RegExp("("+Patterns.variable+")","g"),r=void 0;null!==(r=t.exec(this.args.raw));){var n=r[1],a=n.slice(1),i="$"===n[0]?State.variables:State.temporary;i.hasOwnProperty(a)&&(e[a]=i[a]),this.addShadow(n)}new Wikifier(this.output,this.payload[0].contents)}finally{this.shadows.forEach(function(t){var r=t.slice(1),n="$"===t[0]?State.variables:State.temporary;e.hasOwnProperty(r)?n[r]=e[r]:delete n[r]})}}}),Macro.add("set",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("unset",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story/temporary variable list specified");for(var e=new RegExp("State\\.(variables|temporary)\\.("+Patterns.identifier+")","g"),t=void 0;null!==(t=e.exec(this.args.full));){var r=State[t[1]],n=t[2];r.hasOwnProperty(n)&&delete r[n]}Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("remember",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}for(var e=storage.get("remember")||{},t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0;null!==(r=t.exec(this.args.full));){var n=r[1];e[n]=State.variables[n]}return storage.set("remember",e)?void(Config.debug&&this.debugView.modes({hidden:!0})):this.error("unknown error, cannot remember: "+this.args.raw)},init:function(){var e=storage.get("remember");e&&Object.keys(e).forEach(function(t){return State.variables[t]=e[t]})}}),Macro.add("forget",{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no story variable list specified");for(var e=storage.get("remember"),t=new RegExp("State\\.variables\\.("+Patterns.identifier+")","g"),r=void 0,n=!1;null!==(r=t.exec(this.args.full));){var a=r[1];State.variables.hasOwnProperty(a)&&delete State.variables[a],e&&e.hasOwnProperty(a)&&(n=!0,delete e[a])}return n&&!storage.set("remember",e)?this.error("unknown error, cannot update remember store"):void(Config.debug&&this.debugView.modes({hidden:!0}))}}),Macro.add("run","set"),Macro.add("script",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();try{Scripting.evalJavaScript(this.payload[0].contents,e),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e),this.source+this.payload[0].contents+"<</"+this.name+">>")}e.hasChildNodes()&&this.output.appendChild(e)}}),Macro.add("include",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;if(e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],!Story.has(e))return this.error('passage "'+e+'" does not exist');Config.debug&&this.debugView.modes({block:!0}),e=Story.get(e);var t=void 0;t=this.args[1]?jQuery(document.createElement(this.args[1])).addClass(e.domId+" macro-"+this.name).attr("data-passage",e.title).appendTo(this.output):jQuery(this.output),t.wiki(e.processText())}}),Macro.add("nobr",{skipArgs:!0,tags:null,handler:function(){new Wikifier(this.output,this.payload[0].contents.replace(/^\n+|\n+$/g,"").replace(/\n+/g," "))}}),Macro.add(["print","=","-"],{skipArgs:!0,handler:function(){if(0===this.args.full.length)return this.error("no expression specified");try{var e=toStringOrDefault(Scripting.evalJavaScript(this.args.full),null);null!==e&&new Wikifier(this.output,"-"===this.name?Util.escape(e):e)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}}}),Macro.add("silently",{skipArgs:!0,tags:null,handler:function(){var e=document.createDocumentFragment();if(new Wikifier(e,this.payload[0].contents.trim()),Config.debug)this.debugView.modes({hidden:!0}),this.output.appendChild(e);else{var t=[].concat(_toConsumableArray(e.querySelectorAll(".error"))).map(function(e){return e.textContent});if(t.length>0)return this.error("error"+(1===t.length?"":"s")+" within contents ("+t.join("; ")+")",this.source+this.payload[0].contents+"<</"+this.name+">>")}}}),Macro.add("display","include"),Macro.add("if",{skipArgs:!0,tags:["elseif","else"],handler:function(){var e=0;try{for(var t=Scripting.evalJavaScript,r=this.payload.length,n=!1;e<r;++e){switch(this.payload[e].name){case"else":if(e+1!==r)return this.error("<<else>> must be the final clause");if(this.payload[e].args.raw.length>0)return/^\s*if\b/i.test(this.payload[e].args.raw)?this.error('whitespace is not allowed between the "else" and "if" in <<elseif>> clause'+(e>0?" (#"+e+")":"")):this.error("<<else>> does not accept a conditional expression (perhaps you meant to use <<elseif>>), invalid: "+this.payload[e].args.raw);break;default:if(0===this.payload[e].args.full.length)return this.error("no conditional expression specified for <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":""));if(Config.macros.ifAssignmentError&&/[^!=&^|<>*\/%+-]=[^=]/.test(this.payload[e].args.full))return this.error("assignment operator found within <<"+this.payload[e].name+">> clause"+(e>0?" (#"+e+")":"")+" (perhaps you meant to use an equality operator: ==, ===, eq, is), invalid: "+this.payload[e].args.raw)}if(Config.debug&&this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1}),"else"===this.payload[e].name||t(this.payload[e].args.full)){n=!0,new Wikifier(this.output,this.payload[e].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++e;e<r;++e)this.createDebugView(this.payload[e].name,this.payload[e].source).modes({nonvoid:!1,hidden:!0,invalid:!0});this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!n,invalid:!n})}}catch(t){return this.error("bad conditional expression in <<"+(0===e?"if":"elseif")+">> clause"+(e>0?" (#"+e+")":"")+": "+("object"===("undefined"==typeof t?"undefined":_typeof(t))?t.message:t))}}}),Macro.add("switch",{skipArg0:!0,tags:["case","default"],handler:function(){if(0===this.args.full.length)return this.error("no expression specified");var e=this.payload.length,t=void 0;if(1===e)return this.error("no cases specified");try{t=Scripting.evalJavaScript(this.args.full)}catch(e){return this.error("bad evaluation: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}var r=this.debugView,n=1,a=!1;for(Config.debug&&r.modes({nonvoid:!1,hidden:!0});n<e;++n){switch(this.payload[n].name){case"default":if(n+1!==e)return this.error("<<default>> must be the final case");if(this.payload[n].args.length>0)return this.error("<<default>> does not accept values, invalid: "+this.payload[n].args.raw);break;default:if(0===this.payload[n].args.length)return this.error("no value(s) specified for <<"+this.payload[n].name+">> (#"+n+")")}if(Config.debug&&this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1}),"default"===this.payload[n].name||this.payload[n].args.some(function(e){return e===t})){a=!0,new Wikifier(this.output,this.payload[n].contents);break}Config.debug&&this.debugView.modes({hidden:!0,invalid:!0})}if(Config.debug){for(++n;n<e;++n)this.createDebugView(this.payload[n].name,this.payload[n].source).modes({nonvoid:!1,hidden:!0,invalid:!0});r.modes({nonvoid:!1,hidden:!0,invalid:!a}),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0,invalid:!a})}}}),Macro.add("for",{skipArgs:!0,tags:null,handler:function(){var e=Scripting.evalJavaScript,t=this.payload[0].contents.replace(/\n$/,""),r=void 0,n=this.args.full.trim(),a=void 0,i=!0,o=Config.macros.maxLoopIterations;if(0===n.length)n=!0;else if(n.indexOf(";")!==-1){var s=n.match(/^([^;]*?)\s*;\s*([^;]*?)\s*;\s*([^;]*?)$/);if(null===s)return this.error("invalid 3-part syntax, format: init ; condition ; post");r=s[1],n=s[2],a=s[3]}if("string"==typeof n){if(/^\S+\s+in\s+\S+/i.test(n))return this.error("invalid syntax, for…in is not supported");if(/^\S+\s+of\s+\S+/i.test(n))return this.error("invalid syntax, for…of is not supported")}Config.debug&&this.debugView.modes({block:!0});try{if(TempState.break=null,r)try{e(r)}catch(e){return this.error("bad init expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}for(;e(n);){if(--o<0)return this.error("exceeded configured maximum loop iterations ("+Config.macros.maxLoopIterations+")");if(new Wikifier(this.output,i?t.replace(/^\n/,""):t),i&&(i=!1),null!=TempState.break)if(1===TempState.break)TempState.break=null;else if(2===TempState.break){TempState.break=null;break}if(a)try{e(a)}catch(e){return this.error("bad post expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}}}catch(e){return this.error("bad conditional expression: "+("object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e))}finally{TempState.break=null}}}),Macro.add(["break","continue"],{skipArgs:!0,handler:function(){return this.contextHas(function(e){return"for"===e.name})?(TempState.break="continue"===this.name?1:2,void(Config.debug&&this.debugView.modes({hidden:!0}))):this.error("must only be used in conjunction with its parent macro <<for>>")}}),Macro.add(["button","link"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no "+("button"===this.name?"button":"link")+" text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("button"===this.name?"button":"a")),r=void 0;if("object"===_typeof(this.args[0]))if(this.args[0].isImage){var n=jQuery(document.createElement("img")).attr("src",this.args[0].source).appendTo(t);this.args[0].hasOwnProperty("passage")&&n.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&n.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&n.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(r=this.args[0].link),r=this.args[0].link}else t.append(document.createTextNode(this.args[0].text)),r=this.args[0].link;else t.wikiWithOptions({profile:"core"},this.args[0]),r=this.args.length>1?this.args[1]:undefined;null!=r?(t.attr("data-passage",r),Story.has(r)?(t.addClass("link-internal"),Config.addVisitedLinkClass&&State.hasPlayed(r)&&t.addClass("link-visited")):t.addClass("link-broken")):t.addClass("link-internal"),t.addClass("macro-"+this.name).ariaClick({namespace:".macros",one:null!=r},this.createShadowWrapper(""!==this.payload[0].contents?function(){return Wikifier.wikifyEval(e.payload[0].contents.trim())}:null,null!=r?function(){return Engine.play(r)}:null)).appendTo(this.output)}}),Macro.add("checkbox",{handler:function(){if(this.args.length<3){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("unchecked value"),this.args.length<3&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),n=this.args[1],a=this.args[2],i=document.createElement("input");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"checkbox",tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.checked?a:n)}).appendTo(this.output),this.args.length>3&&"checked"===this.args[3]?(i.checked=!0,Wikifier.setValue(t,a)):Wikifier.setValue(t,n)}}),Macro.add(["linkappend","linkprepend","linkreplace"],{isAsync:!0,tags:null,handler:function(){var e=this;if(0===this.args.length)return this.error("no link text specified");Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>");var t=jQuery(document.createElement("a")),r=jQuery(document.createElement("span")),n=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]);t.wikiWithOptions({profile:"core"},this.args[0]).addClass("link-internal macro-"+this.name).ariaClick({namespace:".macros",one:!0},this.createShadowWrapper(function(){if("linkreplace"===e.name?t.remove():t.wrap('<span class="macro-'+e.name+'"></span>').replaceWith(function(){return t.html()}),""!==e.payload[0].contents){var a=document.createDocumentFragment();new Wikifier(a,e.payload[0].contents),r.append(a)}n&&setTimeout(function(){return r.removeClass("macro-"+e.name+"-in")},Engine.minDomActionDelay)})).appendTo(this.output),r.addClass("macro-"+this.name+"-insert"),n&&r.addClass("macro-"+this.name+"-in"),"linkprepend"===this.name?r.insertBefore(t):r.insertAfter(t)}}),Macro.add("radiobutton",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("checked value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');var r=Util.slugify(t),n=this.args[1],a=document.createElement("input");TempState.hasOwnProperty(this.name)||(TempState[this.name]={}),TempState[this.name].hasOwnProperty(r)||(TempState[this.name][r]=0),jQuery(a).attr({id:this.name+"-"+r+"-"+TempState[this.name][r]++,name:this.name+"-"+r,type:"radio",tabindex:0}).addClass("macro-"+this.name).on("change",function(){this.checked&&Wikifier.setValue(t,n)}).appendTo(this.output),this.args.length>2&&"checked"===this.args[2]&&(a.checked=!0,Wikifier.setValue(t,n))}}),Macro.add("textarea",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),n=this.args[1],a="autofocus"===this.args[2],i=document.createElement("textarea");jQuery(i).attr({id:this.name+"-"+r,name:this.name+"-"+r,rows:4,tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.value)}).appendTo(this.output),Wikifier.setValue(t,n),i.textContent=n,a&&(i.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+i.id]=function(e){delete postdisplay[e],setTimeout(function(){return i.focus()},Engine.minDomActionDelay)})}}),Macro.add("textbox",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("variable name"),this.args.length<2&&e.push("default value"),this.error("no "+e.join(" or ")+" specified")}if("string"!=typeof this.args[0])return this.error("variable name argument is not a string");var t=this.args[0].trim();if("$"!==t[0]&&"_"!==t[0])return this.error('variable name "'+this.args[0]+'" is missing its sigil ($ or _)');Config.debug&&this.debugView.modes({block:!0});var r=Util.slugify(t),n=this.args[1],a=document.createElement("input"),i=!1,o=void 0;this.args.length>3?(o=this.args[2],i="autofocus"===this.args[3]):this.args.length>2&&("autofocus"===this.args[2]?i=!0:o=this.args[2]),jQuery(a).attr({id:this.name+"-"+r,name:this.name+"-"+r,type:"text",tabindex:0}).addClass("macro-"+this.name).on("change",function(){Wikifier.setValue(t,this.value)}).on("keypress",function(e){13===e.which&&(e.preventDefault(),Wikifier.setValue(t,this.value),null!=o&&Engine.play(o))}).appendTo(this.output),Wikifier.setValue(t,n),a.value=n,i&&(a.setAttribute("autofocus","autofocus"),postdisplay["#autofocus:"+a.id]=function(e){delete postdisplay[e],setTimeout(function(){return a.focus()},Engine.minDomActionDelay)})}}),Macro.add("click","link"),Macro.add("actions",{handler:function(){for(var e=jQuery(document.createElement("ul")).addClass(this.name).appendTo(this.output),t=0;t<this.args.length;++t){var r=void 0,n=void 0,a=void 0,i=void 0;"object"===_typeof(this.args[t])?this.args[t].isImage?(a=jQuery(document.createElement("img")).attr("src",this.args[t].source),this.args[t].hasOwnProperty("passage")&&a.attr("data-passage",this.args[t].passage),this.args[t].hasOwnProperty("title")&&a.attr("title",this.args[t].title),this.args[t].hasOwnProperty("align")&&a.attr("align",this.args[t].align),r=this.args[t].link,i=this.args[t].setFn):(n=this.args[t].text,r=this.args[t].link,i=this.args[t].setFn):n=r=this.args[t],State.variables.hasOwnProperty("#actions")&&State.variables["#actions"].hasOwnProperty(r)&&State.variables["#actions"][r]||jQuery(Wikifier.createInternalLink(jQuery(document.createElement("li")).appendTo(e),r,null,function(e,t){return function(){State.variables.hasOwnProperty("#actions")||(State.variables["#actions"]={}),State.variables["#actions"][e]=!0,"function"==typeof t&&t()}}(r,i))).addClass("macro-"+this.name).append(a||document.createTextNode(n))}}}),Macro.add(["back","return"],{handler:function(){if(this.args.length>1)return this.error("too many arguments specified, check the documentation for details");var e=-1,t=void 0,r=void 0,n=void 0;if(1===this.args.length&&("object"===_typeof(this.args[0])?this.args[0].isImage?(n=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&n.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&n.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&n.attr("align",this.args[0].align),this.args[0].hasOwnProperty("link")&&(t=this.args[0].link)):1===this.args[0].count?t=this.args[0].link:(r=this.args[0].text,t=this.args[0].link):1===this.args.length&&(r=this.args[0])),null==t){for(var a=State.length-2;a>=0;--a)if(State.history[a].title!==State.passage){e=a,t=State.history[a].title;break}if(null==t&&"return"===this.name)for(var i=State.expired.length-1;i>=0;--i)if(State.expired[i]!==State.passage){t=State.expired[i];break}}else{if(!Story.has(t))return this.error('passage "'+t+'" does not exist');if("back"===this.name){for(var o=State.length-2;o>=0;--o)if(State.history[o].title===t){e=o;break}if(e===-1)return this.error('cannot find passage "'+t+'" in the current story history')}}if(null==t)return this.error("cannot find passage");var s=void 0;s="back"!==this.name||e!==-1?jQuery(document.createElement("a")).addClass("link-internal").ariaClick({one:!0},"return"===this.name?function(){return Engine.play(t)}:function(){return Engine.goTo(e)}):jQuery(document.createElement("span")).addClass("link-disabled"),s.addClass("macro-"+this.name).append(n||document.createTextNode(r||L10n.get("macro"+this.name.toUpperFirst()+"Text"))).appendTo(this.output)}}),Macro.add("choice",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=State.passage,t=void 0,r=void 0,n=void 0,a=void 0;return 1===this.args.length?"object"===_typeof(this.args[0])?this.args[0].isImage?(n=jQuery(document.createElement("img")).attr("src",this.args[0].source),this.args[0].hasOwnProperty("passage")&&n.attr("data-passage",this.args[0].passage),this.args[0].hasOwnProperty("title")&&n.attr("title",this.args[0].title),this.args[0].hasOwnProperty("align")&&n.attr("align",this.args[0].align),t=this.args[0].link,a=this.args[0].setFn):(r=this.args[0].text,t=this.args[0].link,a=this.args[0].setFn):r=t=this.args[0]:(t=this.args[0],r=this.args[1]),State.variables.hasOwnProperty("#choice")&&State.variables["#choice"].hasOwnProperty(e)&&State.variables["#choice"][e]?void jQuery(document.createElement("span")).addClass("link-disabled macro-"+this.name).attr("tabindex",-1).append(n||document.createTextNode(r)).appendTo(this.output):void jQuery(Wikifier.createInternalLink(this.output,t,null,function(){State.variables.hasOwnProperty("#choice")||(State.variables["#choice"]={}),State.variables["#choice"][e]=!0,"function"==typeof a&&a()})).addClass("macro-"+this.name).append(n||document.createTextNode(r))}}),Macro.add(["addclass","toggleclass"],{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("selector"),this.args.length<2&&e.push("class names"),this.error("no "+e.join(" or ")+" specified")}var t=jQuery(this.args[0]);if(0===t.length)return this.error('no elements matched the selector "'+this.args[0]+'"');switch(this.name){case"addclass":t.addClass(this.args[1].trim());break;case"toggleclass":t.toggleClass(this.args[1].trim())}}}),Macro.add("removeclass",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void(this.args.length>1?e.removeClass(this.args[1].trim()):e.removeClass())}}),Macro.add("copy",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void jQuery(this.output).append(e.html())}}),Macro.add(["append","prepend","replace"],{tags:null,handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);if(0===e.length)return this.error('no elements matched the selector "'+this.args[0]+'"');if(""!==this.payload[0].contents){var t=document.createDocumentFragment();switch(new Wikifier(t,this.payload[0].contents),this.name){case"replace":e.empty();case"append":e.append(t);break;case"prepend":e.prepend(t)}}else"replace"===this.name&&e.empty()}}),Macro.add("remove",{handler:function(){if(0===this.args.length)return this.error("no selector specified");var e=jQuery(this.args[0]);return 0===e.length?this.error('no elements matched the selector "'+this.args[0]+'"'):void e.remove()}}),Has.audio?(Macro.add("audio",{handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track ID"),this.args.length<2&&e.push("actions"),this.error("no "+e.join(" or ")+" specified")}var t=Macro.get("cacheaudio").tracks,r=[":all",":looped",":muted",":paused",":playing"],n=String(this.args[0]).trim();if(!r.includes(n)&&!t.hasOwnProperty(n))return this.error('track "'+n+'" does not exist');for(var a=this.args.slice(1),i=void 0,o=void 0,s=void 0,u=void 0,l=void 0,c=void 0,d=5,f=void 0,p=void 0;a.length>0;){var h=a.shift();switch(h){case"play":case"pause":case"stop":i=h;break;case"fadein":i="fade",c=1;break;case"fadeout":i="fade",c=0;break;case"fadeto":if(0===a.length)return this.error("fadeto missing required level value");if(i="fade",p=a.shift(),c=Number.parseFloat(p),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse fadeto: "+p);break;case"fadeoverto":if(a.length<2){var g=[];return a.length<1&&g.push("seconds"),a.length<2&&g.push("level"),this.error("fadeoverto missing required "+g.join(" and ")+" value"+(g.length>1?"s":""))}if(i="fade",p=a.shift(),d=Number.parseFloat(p),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeoverto: "+p);if(p=a.shift(),c=Number.parseFloat(p),Number.isNaN(c)||!Number.isFinite(c))return this.error("cannot parse fadeoverto: "+p);break;case"volume":if(0===a.length)return this.error("volume missing required level value");if(p=a.shift(),o=Number.parseFloat(p),Number.isNaN(o)||!Number.isFinite(o))return this.error("cannot parse volume: "+p); +break;case"mute":case"unmute":s="mute"===h;break;case"time":if(0===a.length)return this.error("time missing required seconds value");if(p=a.shift(),u=Number.parseFloat(p),Number.isNaN(u)||!Number.isFinite(u))return this.error("cannot parse time: "+p);break;case"loop":case"unloop":l="loop"===h;break;case"goto":if(0===a.length)return this.error("goto missing required passage title");if(p=a.shift(),f="object"===("undefined"==typeof p?"undefined":_typeof(p))?p.link:p,!Story.has(f))return this.error('passage "'+f+'" does not exist');break;default:return this.error("unknown action: "+h)}}var m=void 0;switch(n){case":all":m=Object.keys(t);break;case":looped":m=Object.keys(t).filter(function(e){return t[e].isLooped()});break;case":muted":m=Object.keys(t).filter(function(e){return t[e].isMuted()});break;case":paused":m=Object.keys(t).filter(function(e){return t[e].isPaused()});break;case":playing":m=Object.keys(t).filter(function(e){return t[e].isPlaying()});break;default:m=[n]}try{m.forEach(function(e){var r=t[e];switch(null!=o&&(r.volume=o),null!=u&&(r.time=u),null!=s&&(r.mute=s),null!=l&&(r.loop=l),null!=f&&r.one("end",function(){return Engine.play(f)}),i){case"play":r.play();break;case"pause":r.pause();break;case"stop":r.stop();break;case"fade":r.fadeWithDuration(d,c)}}),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing audio action: "+e.message)}}}),Macro.add("cacheaudio",{tracks:{},handler:function(){if(this.args.length<2){var e=[];return this.args.length<1&&e.push("track ID"),this.args.length<2&&e.push("sources"),this.error("no "+e.join(" or ")+" specified")}var t=String(this.args[0]).trim(),r=/^:|\s/;if(r.test(t))return this.error('invalid track ID "'+t+'": track IDs may not start with a colon or contain whitespace');var n=/^format:\s*([\w-]+)\s*;\s*(\S.*)$/i,a=void 0;try{a=SimpleAudio.create(this.args.slice(1).map(function(e){var t=n.exec(e);return null===t?e:{format:t[1],src:t[2]}}))}catch(e){return this.error('error during track initialization for "'+t+'": '+e.message)}if(Config.debug&&!a.hasSource())return this.error('no supported audio sources found for "'+t+'"');var i=this.self.tracks;i.hasOwnProperty(t)&&i[t].destroy(),i[t]=a,Config.debug&&this.createDebugView()}}),Macro.add("createplaylist",{tags:["track"],lists:{},handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("playlist");if(null!==e.from&&"createplaylist"!==e.from)return this.error("a playlist has already been defined with <<setplaylist>>");var t=Macro.get("cacheaudio").tracks,r=String(this.args[0]).trim(),n=/^:|\s/;if(n.test(r))return this.error('invalid list ID "'+r+'": list IDs may not start with a colon or contain whitespace');if(1===this.payload.length)return this.error("no tracks defined via <<track>>");Config.debug&&this.debugView.modes({nonvoid:!1,hidden:!0});for(var a=SimpleAudio.createList(),i=1,o=this.payload.length;i<o;++i){if(this.payload[i].args.length<2){var s=[];return this.payload[i].args.length<1&&s.push("track ID"),this.payload[i].args.length<2&&s.push("actions"),this.error("no "+s.join(" or ")+" specified")}var u=String(this.payload[i].args[0]).trim();if(!t.hasOwnProperty(u))return this.error('track "'+u+'" does not exist');for(var l=this.payload[i].args.slice(1),c=!1,d=void 0;l.length>0;){var f=l.shift(),p=void 0;switch(f){case"copy":c=!0;break;case"rate":l.length>0&&l.shift();break;case"volume":if(0===l.length)return this.error("volume missing required level value");if(p=l.shift(),d=Number.parseFloat(p),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse volume: "+p);break;default:return this.error("unknown action: "+f)}}var h=t[u];a.add({copy:c,track:h,volume:null!=d?d:h.volume}),Config.debug&&this.createDebugView(this.payload[i].name,this.payload[i].source).modes({nonvoid:!1,hidden:!0})}var g=this.self.lists;g.hasOwnProperty(r)&&g[r].destroy(),g[r]=a,null===e.from&&(e.from="createplaylist"),this.createDebugView("/"+this.name,"<</"+this.name+">>").modes({nonvoid:!1,hidden:!0})}}),Macro.add("masteraudio",{handler:function(){if(0===this.args.length)return this.error("no actions specified");for(var e=this.args.slice(0),t=!1,r=void 0,n=void 0;e.length>0;){var a=e.shift(),i=void 0;switch(a){case"stop":t=!0;break;case"mute":case"unmute":r="mute"===a;break;case"volume":if(0===e.length)return this.error("volume missing required level value");if(i=e.shift(),n=Number.parseFloat(i),Number.isNaN(n)||!Number.isFinite(n))return this.error("cannot parse volume: "+i);break;default:return this.error("unknown action: "+a)}}try{null!=r&&(SimpleAudio.mute=r),null!=n&&(SimpleAudio.volume=n),t&&SimpleAudio.stop(),Config.debug&&this.createDebugView()}catch(e){return this.error("error executing master audio action: "+e.message)}}}),Macro.add("playlist",{from:null,handler:function(){var e=this.self.from;if(null===e)return this.error("no playlists have been created");var t=void 0,r=void 0;if("createplaylist"===e){if(this.args.length<2){var n=[];return this.args.length<1&&n.push("list ID"),this.args.length<2&&n.push("actions"),this.error("no "+n.join(" or ")+" specified")}var a=Macro.get("createplaylist").lists,i=String(this.args[0]).trim();if(!a.hasOwnProperty(i))return this.error('playlist "'+i+'" does not exist');t=a[i],r=this.args.slice(1)}else{if(0===this.args.length)return this.error("no actions specified");t=Macro.get("setplaylist").list,r=this.args.slice(0)}for(var o=void 0,s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,f=5,p=void 0;r.length>0;){var h=r.shift();switch(h){case"play":case"pause":case"stop":case"skip":o=h;break;case"fadein":o="fade",d=1;break;case"fadeout":o="fade",d=0;break;case"fadeto":if(0===r.length)return this.error("fadeto missing required level value");if(o="fade",p=r.shift(),d=Number.parseFloat(p),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeto: "+p);break;case"fadeoverto":if(r.length<2){var g=[];return r.length<1&&g.push("seconds"),r.length<2&&g.push("level"),this.error("fadeoverto missing required "+g.join(" and ")+" value"+(g.length>1?"s":""))}if(o="fade",p=r.shift(),f=Number.parseFloat(p),Number.isNaN(f)||!Number.isFinite(f))return this.error("cannot parse fadeoverto: "+p);if(p=r.shift(),d=Number.parseFloat(p),Number.isNaN(d)||!Number.isFinite(d))return this.error("cannot parse fadeoverto: "+p);break;case"volume":if(0===r.length)return this.error("volume missing required level value");if(p=r.shift(),s=Number.parseFloat(p),Number.isNaN(s)||!Number.isFinite(s))return this.error("cannot parse volume: "+p);break;case"mute":case"unmute":u="mute"===h;break;case"loop":case"unloop":l="loop"===h;break;case"shuffle":case"unshuffle":c="shuffle"===h;break;default:return this.error("unknown action: "+h)}}try{switch(null!=s&&(t.volume=s),null!=u&&(t.mute=u),null!=l&&(t.loop=l),null!=c&&(t.shuffle=c),o){case"play":t.play();break;case"pause":t.pause();break;case"stop":t.stop();break;case"skip":t.skip();break;case"fade":t.fadeWithDuration(f,d)}Config.debug&&this.createDebugView()}catch(e){return this.error("error playing audio: "+e.message)}}}),Macro.add("removeplaylist",{handler:function(){if(0===this.args.length)return this.error("no list ID specified");var e=Macro.get("createplaylist").lists,t=String(this.args[0]).trim();return e.hasOwnProperty(t)?(e[t].destroy(),delete e[t],void(Config.debug&&this.createDebugView())):this.error('playlist "'+t+'" does not exist')}}),Macro.add("waitforaudio",{skipArgs:!0,queue:[],handler:function(){function e(){if(0===t.length)return LoadScreen.unlock(r);var n=t.shift();return n.hasData()?e():void n.one("canplay.waitforaudio error.waitforaudio",function(){jQuery(this).off(".waitforaudio"),e()}).load()}var t=this.self.queue,r=void 0;t.length>0||(this.self.fillQueue(t),t.length>0&&(r=LoadScreen.lock(),e()))},fillQueue:function(e){var t=Macro.get("cacheaudio").tracks;Object.keys(t).forEach(function(r){return e.push(t[r])});var r=Macro.get("createplaylist").lists;if(Object.keys(r).map(function(e){return r[e].tracks}).flatten().filter(function(e){return e.copy}).forEach(function(t){return e.push(t.track)}),Macro.has("setplaylist")){var n=Macro.get("setplaylist").list;null!==n&&n.tracks.forEach(function(t){return e.push(t.track)})}}}),Macro.add("setplaylist",{list:null,handler:function(){if(0===this.args.length)return this.error("no track ID(s) specified");var e=Macro.get("playlist");if(null!==e.from&&"setplaylist"!==e.from)return this.error("playlists have already been defined with <<createplaylist>>");var t=this.self,r=Macro.get("cacheaudio").tracks;null!==t.list&&t.list.destroy(),t.list=SimpleAudio.createList();for(var n=0;n<this.args.length;++n){var a=this.args[n];if(!r.hasOwnProperty(a))return this.error('track "'+a+'" does not exist');t.list.add(r[a])}null===e.from&&(e.from="setplaylist"),Config.debug&&this.createDebugView()}}),Macro.add("stopallaudio",{skipArgs:!0,handler:function(){var e=Macro.get("cacheaudio").tracks;Object.keys(e).forEach(function(t){return e[t].stop()}),Config.debug&&this.createDebugView()}})):Macro.add(["audio","cacheaudio","createplaylist","masteraudio","playlist","removeplaylist","waitforaudio","setplaylist","stopallaudio"],{skipArgs:!0,handler:function(){}}),Macro.add("goto",{handler:function(){if(0===this.args.length)return this.error("no passage specified");var e=void 0;return e="object"===_typeof(this.args[0])?this.args[0].link:this.args[0],Story.has(e)?void setTimeout(function(){return Engine.play(e)},Engine.minDomActionDelay):this.error('passage "'+e+'" does not exist')}}),Macro.add("timed",{isAsync:!0,tags:["next"],timers:new Set,handler:function(){if(0===this.args.length)return this.error("no time value specified in <<timed>>");var e=[];try{e.push({name:this.name,source:this.source,delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0])),content:this.payload[0].contents})}catch(e){return this.error(e.message+" in <<timed>>")}if(this.payload.length>1){var t=void 0;try{var r=void 0;for(t=1,r=this.payload.length;t<r;++t)e.push({name:this.payload[t].name,source:this.payload[t].source,delay:0===this.payload[t].args.length?e[e.length-1].delay:Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.payload[t].args[0])),content:this.payload[t].contents})}catch(e){return this.error(e.message+" in <<next>> (#"+t+")")}}Config.debug&&this.debugView.modes({block:!0});var n=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),a=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerTimeout(this.createShadowWrapper(function(e){var t=document.createDocumentFragment();new Wikifier(t,e.content);var r=a;Config.debug&&"next"===e.name&&(r=jQuery(new DebugView(r[0],"macro",e.name,e.source).output)),n&&(r=jQuery(document.createElement("span")).addClass("macro-timed-insert macro-timed-in").appendTo(r)),r.append(t),n&&setTimeout(function(){return r.removeClass("macro-timed-in")},Engine.minDomActionDelay)}),e)},registerTimeout:function(e,t){if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var r=State.turns,n=this.timers,a=null,i=t.shift(),o=function o(){if(n.delete(a),r===State.turns){var s=i;null!=(i=t.shift())&&(a=setTimeout(o,i.delay),n.add(a)),e.call(this,s)}};a=setTimeout(o,i.delay),n.add(a),prehistory.hasOwnProperty("#timed-timers-cleanup")||(prehistory["#timed-timers-cleanup"]=function(e){delete prehistory[e],n.forEach(function(e){return clearTimeout(e)}),n.clear()})}}),Macro.add("repeat",{isAsync:!0,tags:null,timers:new Set,handler:function(){var e=this;if(0===this.args.length)return this.error("no time value specified");var t=void 0;try{t=Math.max(Engine.minDomActionDelay,Util.fromCssTime(this.args[0]))}catch(e){return this.error(e.message)}Config.debug&&this.debugView.modes({block:!0});var r=this.args.length>1&&/^(?:transition|t8n)$/.test(this.args[1]),n=jQuery(document.createElement("span")).addClass("macro-"+this.name).appendTo(this.output);this.self.registerInterval(this.createShadowWrapper(function(){var t=document.createDocumentFragment();new Wikifier(t,e.payload[0].contents);var a=n;r&&(a=jQuery(document.createElement("span")).addClass("macro-repeat-insert macro-repeat-in").appendTo(a)),a.append(t),r&&setTimeout(function(){return a.removeClass("macro-repeat-in")},Engine.minDomActionDelay)}),t)},registerInterval:function(e,t){var r=this;if("function"!=typeof e)throw new TypeError("callback parameter must be a function");var n=State.turns,a=this.timers,i=null;i=setInterval(function(){if(n!==State.turns)return clearInterval(i),void a.delete(i);var t=void 0;try{TempState.break=null,TempState.hasOwnProperty("repeatTimerId")&&(t=TempState.repeatTimerId),TempState.repeatTimerId=i,e.call(r)}finally{"undefined"!=typeof t?TempState.repeatTimerId=t:delete TempState.repeatTimerId,TempState.break=null}},t),a.add(i),prehistory.hasOwnProperty("#repeat-timers-cleanup")||(prehistory["#repeat-timers-cleanup"]=function(e){delete prehistory[e],a.forEach(function(e){return clearInterval(e)}),a.clear()})}}),Macro.add("stop",{skipArgs:!0,handler:function(){if(!TempState.hasOwnProperty("repeatTimerId"))return this.error("must only be used in conjunction with its parent macro <<repeat>>");var e=Macro.get("repeat").timers,t=TempState.repeatTimerId;clearInterval(t),e.delete(t),TempState.break=2,Config.debug&&this.debugView.modes({hidden:!0})}}),Macro.add("widget",{tags:null,handler:function(){if(0===this.args.length)return this.error("no widget name specified");var e=this.args[0];if(Macro.has(e)){if(!Macro.get(e).isWidget)return this.error('cannot clobber existing macro "'+e+'"');Macro.delete(e)}try{Macro.add(e,{isWidget:!0,handler:function(e){return function(){var t=this,r=void 0;try{var n=function(){State.variables.hasOwnProperty("args")&&(r=State.variables.args),State.variables.args=[].concat(_toConsumableArray(t.args)),State.variables.args.raw=t.args.raw,State.variables.args.full=t.args.full,t.addShadow("$args");var n=document.createDocumentFragment(),a=[];return new Wikifier(n,e),Array.from(n.querySelectorAll(".error")).forEach(function(e){a.push(e.textContent)}),0!==a.length?{v:t.error("error"+(a.length>1?"s":"")+" within widget contents ("+a.join("; ")+")")}:void t.output.appendChild(n)}();if("object"===("undefined"==typeof n?"undefined":_typeof(n)))return n.v}catch(e){return this.error("cannot execute widget: "+e.message)}finally{"undefined"!=typeof r?State.variables.args=r:delete State.variables.args}}}(this.payload[0].contents)}),Config.debug&&this.createDebugView(this.name,this.source+this.payload[0].contents+"<</"+this.name+">>")}catch(t){return this.error('cannot create widget macro "'+e+'": '+t.message)}}})}();var Dialog=function(){function e(){m=function(){var e=void 0;try{var t=document.createElement("p"),r=document.createElement("div");t.style.width="100%",t.style.height="200px",r.style.position="absolute",r.style.left="0px",r.style.top="0px",r.style.width="100px",r.style.height="100px",r.style.visibility="hidden",r.style.overflow="hidden",r.appendChild(t),document.body.appendChild(r);var n=t.offsetWidth;r.style.overflow="auto";var a=t.offsetWidth;n===a&&(a=r.clientWidth),document.body.removeChild(r),e=n-a}catch(e){}return e||17}();var e=jQuery(document.createDocumentFragment()).append('<div id="ui-overlay" class="ui-close"></div><div id="ui-dialog" tabindex="0" role="dialog" aria-labelledby="ui-dialog-title"><div id="ui-dialog-titlebar"><h1 id="ui-dialog-title"></h1>'+('<button id="ui-dialog-close" class="ui-close" tabindex="0" aria-label="'+L10n.get("close")+'">î „</button>')+'</div><div id="ui-dialog-body"></div></div>');d=jQuery(e.find("#ui-overlay").get(0)),f=jQuery(e.find("#ui-dialog").get(0)),p=jQuery(e.find("#ui-dialog-title").get(0)),h=jQuery(e.find("#ui-dialog-body").get(0)),e.insertBefore("#store-area")}function t(e){return f.hasClass("open")&&(!e||e.splitOrEmpty(/\s+/).every(function(e){return h.hasClass(e)}))}function r(e,t){return h.empty().removeClass(),null!=t&&h.addClass(t),p.empty().append((null!=e?String(e):"")||" "),h.get(0)}function n(){return h.get(0)}function a(){var e;return(e=h).append.apply(e,arguments),Dialog}function i(){var e;return(e=h).wiki.apply(e,arguments),Dialog}function o(e,t,r,n,a){return jQuery(e).ariaClick(function(e){e.preventDefault(),"function"==typeof r&&r(e),s(t,a),"function"==typeof n&&n(e)})}function s(e,r){var n=jQuery.extend({top:50},e),a=n.top;t()||(g=safeActiveElement()),jQuery(document.documentElement).attr("data-dialog","open"),d.addClass("open"),null!==h[0].querySelector("img")&&h.imagesLoaded().always(function(){return l({data:{top:a}})}),jQuery("body>:not(script,#store-area,#ui-bar,#ui-overlay,#ui-dialog)").attr("tabindex",-3).attr("aria-hidden",!0),jQuery("#ui-bar,#story").find("[tabindex]:not([tabindex^=-])").attr("tabindex",-2).attr("aria-hidden",!0);var i=c(a);return f.css(i).addClass("open").focus(),jQuery(window).on("resize.ui-resize",null,{top:a},jQuery.throttle(40,l)),jQuery(document).on("click.ui-close",".ui-close",{closeFn:r},u).on("keypress.ui-close",".ui-close",function(e){13!==e.which&&32!==e.which||jQuery(this).trigger("click")}),setTimeout(function(){return jQuery.event.trigger(":dialogopen")},Engine.minDomActionDelay),Dialog}function u(e){return jQuery(document).off(".ui-close"),jQuery(window).off("resize.ui-resize"),f.removeClass("open").css({left:"",right:"",top:"",bottom:""}),jQuery("#ui-bar,#story").find("[tabindex=-2]").removeAttr("aria-hidden").attr("tabindex",0),jQuery("body>[tabindex=-3]").removeAttr("aria-hidden").removeAttr("tabindex"),p.empty(),h.empty().removeClass(),d.removeClass("open"),jQuery(document.documentElement).removeAttr("data-dialog"),null!==g&&(jQuery(g).focus(),g=null),e&&e.data&&"function"==typeof e.data.closeFn&&e.data.closeFn(e),setTimeout(function(){return jQuery.event.trigger(":dialogclose")},Engine.minDomActionDelay),Dialog}function l(e){var t=e&&e.data&&"undefined"!=typeof e.data.top?e.data.top:50;"block"===f.css("display")&&(f.css({display:"none"}),f.css(jQuery.extend({display:""},c(t))))}function c(e){var t=null!=e?e:50,r=jQuery(window),n={left:"",right:"",top:"",bottom:""};f.css(n);var a=r.width()-f.outerWidth(!0)-1,i=r.height()-f.outerHeight(!0)-1;return a<=32+m&&(i-=m),i<=32+m&&(a-=m),a<=32?n.left=n.right=16:n.left=n.right=~~(a/2),i<=32?n.top=n.bottom=16:i/2>t?n.top=t:n.top=n.bottom=~~(i/2),Object.keys(n).forEach(function(e){""!==n[e]&&(n[e]+="px")}),n}var d=null,f=null,p=null,h=null,g=null,m=0;return Object.freeze(Object.defineProperties({},{init:{value:e},isOpen:{value:t},setup:{value:r},body:{value:n},append:{value:a},wiki:{value:i},addClickHandler:{value:o},open:{value:s},close:{value:u},resize:{value:function(){return l()}}}))}(),Engine=function(){function e(){jQuery("#init-no-js,#init-lacking").remove(),S=new StyleWrapper(function(){return jQuery(document.createElement("style")).attr({id:"style-aria-outlines",type:"text/css"}).appendTo(document.head).get(0)}()),jQuery(document).on("mousedown.aria-outlines keydown.aria-outlines",function(e){switch(e.type){case"mousedown":g();break;case"keydown":m()}})}function t(){if(Story.has("StoryInit"))try{var e=Wikifier.wikifyEval(Story.get("StoryInit").text);if(Config.debug){var t=new DebugView(document.createDocumentFragment(),"special","StoryInit","StoryInit");t.modes({hidden:!0}),t.append(e),k=t.output}}catch(e){Alert.error("StoryInit",e.message)}if(Config.history.maxStates=Math.max(0,Config.history.maxStates),Number.isSafeInteger(Config.history.maxStates)||(Config.history.maxStates=100),1===Config.history.maxStates&&(Config.history.controls=!1),Config.debug&&DebugView.init(),null==Config.passages.start)throw new Error("starting passage not selected");if(!Story.has(Config.passages.start))throw new Error('starting passage ("'+Config.passages.start+'") not found');if(jQuery(document.documentElement).focus(),State.restore())f();else{var r=!0;switch(_typeof(Config.saves.autoload)){case"boolean":Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!Save.autosave.load());break;case"string":"prompt"===Config.saves.autoload&&Save.autosave.ok()&&Save.autosave.has()&&(r=!1,UI.buildDialogAutoload(),UI.open());break;case"function":Save.autosave.ok()&&Save.autosave.has()&&Config.saves.autoload()&&(r=!Save.autosave.load())}r&&p(Config.passages.start)}}function r(){LoadScreen.show(),window.scroll(0,0),State.reset(),window.location.reload()}function n(){return b}function a(){return b===v.Idle}function i(){return b!==v.Idle}function o(){return b===v.Rendering}function s(){return w}function u(e){var t=State.goTo(e);return t&&f(),t}function l(e){var t=State.go(e);return t&&f(),t}function c(){return l(-1)}function d(){return l(1)}function f(){return p(State.passage,!0)}function p(e,t){var r=e;b=v.Playing,TempState={},State.clearTemporary();var n=void 0,a=void 0;if("function"==typeof Config.navigation.override)try{var i=Config.navigation.override(r);i&&(r=i)}catch(e){}var o=Story.get(r);if(Object.keys(prehistory).forEach(function(e){"function"==typeof prehistory[e]&&prehistory[e].call(this,e)},o),t||State.create(o.title),document.body.className&&(document.body.className=""),Object.keys(predisplay).forEach(function(e){"function"==typeof predisplay[e]&&predisplay[e].call(this,e)},o),Story.has("PassageReady"))try{n=Wikifier.wikifyEval(Story.get("PassageReady").text)}catch(e){Alert.error("PassageReady",e.message)}b=v.Rendering;var s=jQuery(o.render()),u=document.getElementById("passages");if(u.hasChildNodes()&&("number"==typeof Config.passages.transitionOut||"string"==typeof Config.passages.transitionOut&&""!==Config.passages.transitionOut&&""!==Config.transitionEndEventName?[].concat(_toConsumableArray(u.childNodes)).forEach(function(e){var t=jQuery(e);if(e.nodeType===Node.ELEMENT_NODE&&t.hasClass("passage")){if(t.hasClass("passage-out"))return;t.attr("id","out-"+t.attr("id")).addClass("passage-out"),"string"==typeof Config.passages.transitionOut?t.on(Config.transitionEndEventName,function(e){e.originalEvent.propertyName===Config.passages.transitionOut&&t.remove()}):setTimeout(function(){return t.remove()},Math.max(y,Config.passages.transitionOut))}else t.remove()}):jQuery(u).empty()),s.addClass("passage-in").appendTo(u),setTimeout(function(){return s.removeClass("passage-in")},y),document.title=Config.passages.displayTitles&&o.title!==Config.passages.start?o.title+" | "+Story.title:Story.title,window.scroll(0,0),b=v.Playing,Story.has("PassageDone"))try{a=Wikifier.wikifyEval(Story.get("PassageDone").text)}catch(e){Alert.error("PassageDone",e.message)}if(Object.keys(postdisplay).forEach(function(e){"function"==typeof postdisplay[e]&&postdisplay[e].call(this,e)},o),Config.ui.updateStoryElements&&UI.setStoryElements(),Config.debug){var l=void 0;null!=n&&(l=new DebugView(document.createDocumentFragment(),"special","PassageReady","PassageReady"),l.modes({hidden:!0}),l.append(n),s.prepend(l.output)),null!=a&&(l=new DebugView(document.createDocumentFragment(),"special","PassageDone","PassageDone"),l.modes({hidden:!0}),l.append(a),s.append(l.output)),1===State.turns&&null!=k&&s.prepend(k)}switch(w=Date.now(),g(),jQuery("#story").find("a[href]:not(.link-external)").addClass("link-external").end().find("a,link,button,input,select,textarea").not("[tabindex]").attr("tabindex",0),_typeof(Config.saves.autosave)){case"boolean":Config.saves.autosave&&Save.autosave.save();break;case"string":o.tags.includes(Config.saves.autosave)&&Save.autosave.save();break;case"object":Array.isArray(Config.saves.autosave)&&o.tags.some(function(e){return Config.saves.autosave.includes(e)})&&Save.autosave.save()}return b=v.Idle,s[0]}function h(e,t,r){var n=!1;switch(r){case undefined:break;case"replace":case"back":n=!0;break;default:throw new Error('Engine.display option parameter called with obsolete value "'+r+'"; please notify the developer')}p(e,n)}function g(){S.set("*:focus{outline:none}")}function m(){S.clear()}var v=Util.toEnum({Idle:"idle",Playing:"playing",Rendering:"rendering"}),y=40,b=v.Idle,w=null,k=null,S=null;return Object.freeze(Object.defineProperties({},{States:{value:v},minDomActionDelay:{value:y},init:{value:e},start:{value:t},restart:{value:r},state:{get:n},isIdle:{value:a},isPlaying:{value:i},isRendering:{value:o},lastPlay:{get:s},goTo:{value:u},go:{value:l},backward:{value:c},forward:{value:d},show:{value:f},play:{value:p},display:{value:h}}))}(),Passage=function(){var e=void 0,t=void 0;e=/^(?:debug|nobr|passage|script|stylesheet|widget|twine\..*)$/i,!function(){var e=/(?:\\n|\\t|\\s|\\|\r)/g,r=new RegExp(e.source),n=Object.freeze({"\\n":"\n","\\t":"\t","\\s":"\\","\\":"\\","\r":""});t=function(t){if(null==t)return"";var a=String(t);return a&&r.test(a)?a.replace(e,function(e){return n[e]}):a}}();var r=function(){function r(t,n){var a=this;_classCallCheck(this,r),Object.defineProperties(this,{title:{value:Util.unescape(t)},element:{value:n||null},tags:{value:Object.freeze(n&&n.hasAttribute("tags")?n.getAttribute("tags").trim().splitOrEmpty(/\s+/).sort().filter(function(e,t,r){return 0===t||r[t-1]!==e}):[])},_excerpt:{writable:!0,value:null}}),Object.defineProperties(this,{domId:{value:"passage-"+Util.slugify(this.title)},classes:{value:Object.freeze(0===this.tags.length?[]:function(){return a.tags.filter(function(t){return!e.test(t)}).map(function(e){return Util.slugify(e)})}())}})}return _createClass(r,[{key:"description",value:function(){var e=Config.passages.descriptions;if(null!=e)switch("undefined"==typeof e?"undefined":_typeof(e)){case"boolean":if(e)return this.title;break;case"object":if(e instanceof Map&&e.has(this.title))return e.get(this.title);if(e.hasOwnProperty(this.title))return e[this.title];break;case"function":var t=e.call(this);if(t)return t;break;default:throw new TypeError("Config.passages.descriptions must be a boolean, object, or function")}return null===this._excerpt&&(this._excerpt=r.getExcerptFromText(this.text)),this._excerpt}},{key:"processText",value:function(){var e=this.text;return this.tags.includes("nobr")&&(e=e.replace(/^\n+|\n+$/g,"").replace(/\n+/g," ")),this.tags.includes("Twine.image")&&(e="[img["+e+"]]"),e}},{key:"render",value:function(){var e=this,t=document.createElement("div");return jQuery(t).attr({id:this.domId,"data-passage":this.title,"data-tags":this.tags.join(" ")}).addClass("passage "+this.className),jQuery(document.body).addClass(this.className),Object.keys(prerender).forEach(function(r){"function"==typeof prerender[r]&&prerender[r].call(e,t,r)}),Story.has("PassageHeader")&&new Wikifier(t,Story.get("PassageHeader").processText()),new Wikifier(t,this.processText()),Story.has("PassageFooter")&&new Wikifier(t,Story.get("PassageFooter").processText()),Object.keys(postrender).forEach(function(r){"function"==typeof postrender[r]&&postrender[r].call(e,t,r)}),this._excerpt=r.getExcerptFromNode(t),t}},{key:"className",get:function(){return this.classes.join(" ")}},{key:"text",get:function(){if(null==this.element){var e=Util.escape(this.title);return'<span class="error" title="'+e+'">'+L10n.get("errorTitle")+": "+L10n.get("errorNonexistentPassage",{passage:e})+"</span>"}return t(this.element.textContent)}}],[{key:"getExcerptFromNode",value:function(e,t){if(!e.hasChildNodes())return"";var r=e.textContent.trim();if(""!==r){var n=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})");r=r.replace(/\s+/g," ").match(n)}return r?r[1]+"…":"…"}},{key:"getExcerptFromText",value:function(e,t){if(""===e)return"";var r=new RegExp("(\\S+(?:\\s+\\S+){0,"+(t>0?t-1:7)+"})"),n=e.replace(/<<.*?>>/g," ").replace(/<.*?>/g," ").trim().replace(/^\s*\|.*\|.*?$/gm,"").replace(/\[[<>]?img\[[^\]]*\]\]/g,"").replace(/\[\[([^|\]]*)(?:|[^\]]*)?\]\]/g,"$1").replace(/^\s*!+(.*?)$/gm,"$1").replace(/'{2}|\/{2}|_{2}|@{2}/g,"").trim().replace(/\s+/g," ").match(r);return n?n[1]+"…":"…"}}]),r}();return r}(),Save=function(){function e(){if("cookie"===storage.name)return n(),Config.saves.autosave=undefined,Config.saves.slots=0,!1;Config.saves.slots=Math.max(0,Config.saves.slots),Number.isSafeInteger(Config.saves.slots)||(Config.saves.slots=8);var e=r(),t=!1;Array.isArray(e)&&(e={autosave:null,slots:e},t=!0),Config.saves.slots!==e.slots.length&&(Config.saves.slots<e.slots.length?(e.slots.reverse(),e.slots=e.slots.filter(function(e){return!(null===e&&this.count>0)||(--this.count,!1)},{count:e.slots.length-Config.saves.slots}),e.slots.reverse()):Config.saves.slots>e.slots.length&&S(e.slots,Config.saves.slots-e.slots.length),t=!0),j(e.autosave)&&(t=!0);for(var a=0;a<e.slots.length;++a)j(e.slots[a])&&(t=!0);return E(e)&&(storage.delete("saves"),t=!1),t&&x(e),T=e.slots.length-1,!0}function t(){return{autosave:null,slots:S([],Config.saves.slots)}}function r(){var e=storage.get("saves");return null===e?t():e}function n(){return storage.delete("saves"),!0}function a(){return i()||d()}function i(){return"cookie"!==storage.name&&"undefined"!=typeof Config.saves.autosave}function o(){var e=r();return null!==e.autosave}function s(){var e=r();return e.autosave}function u(){var e=r();return null!==e.autosave&&O(e.autosave)}function l(e,t){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return!1;var n=r(),a={title:e||Story.get(State.passage).description(),date:Date.now()};return null!=t&&(a.metadata=t),n.autosave=C(a),x(n)}function c(){var e=r();return e.autosave=null,x(e)}function d(){return"cookie"!==storage.name&&T!==-1}function f(){return T+1}function p(){if(!d())return 0;for(var e=r(),t=0,n=0,a=e.slots.length;n<a;++n)null!==e.slots[n]&&++t;return t}function h(){return 0===p()}function g(e){if(e<0||e>T)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])}function m(e){if(e<0||e>T)return null;var t=r();return e>=t.slots.length?null:t.slots[e]}function v(e){if(e<0||e>T)return!1;var t=r();return!(e>=t.slots.length||null===t.slots[e])&&O(t.slots[e])}function y(e,t,n){if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return UI.alert(L10n.get("savesDisallowed")),!1;if(e<0||e>T)return!1;var a=r();if(e>=a.slots.length)return!1;var i={title:t||Story.get(State.passage).description(),date:Date.now()};return null!=n&&(i.metadata=n),a.slots[e]=C(i),x(a)}function b(e){if(e<0||e>T)return!1;var t=r();return!(e>=t.slots.length)&&(t.slots[e]=null,x(t))}function w(e,t){function r(){var e=new Date,t=e.getMonth()+1,r=e.getDate(),n=e.getHours(),a=e.getMinutes(),i=e.getSeconds();return t<10&&(t="0"+t),r<10&&(r="0"+r),n<10&&(n="0"+n),a<10&&(a="0"+a),i<10&&(i="0"+i),""+e.getFullYear()+t+r+"-"+n+a+i}if("function"==typeof Config.saves.isAllowed&&!Config.saves.isAllowed())return void UI.alert(L10n.get("savesDisallowed"));var n=null==e?Story.domId:Util.slugify(e),a=n+"-"+r()+".save",i=null==t?{}:{metadata:t},o=LZString.compressToBase64(JSON.stringify(C(i)));saveAs(new Blob([o],{type:"text/plain;charset=UTF-8"}),a)}function k(e){var t=e.target.files[0],r=new FileReader;jQuery(r).on("load",function(e){var r=e.currentTarget;if(r.result){var n=void 0;try{n=JSON.parse(/\.json$/i.test(t.name)||/^\{/.test(r.result)?r.result:LZString.decompressFromBase64(r.result))}catch(e){}O(n)}}),r.readAsText(t)}function S(e,t){for(var r=0;r<t;++r)e.push(null);return e}function E(e){for(var t=e.slots,r=!0,n=0,a=t.length;n<a;++n)if(null!==t[n]){r=!1;break}return null===e.autosave&&r}function x(e){return E(e)?(storage.delete("saves"),!0):storage.set("saves",e)}function j(e){if(null===e)return!1;var t=!1;return e.hasOwnProperty("state")&&e.state.hasOwnProperty("delta")&&e.state.hasOwnProperty("index")||(e.hasOwnProperty("data")?(delete e.mode,e.state={delta:State.deltaEncode(e.data)},delete e.data):e.state.hasOwnProperty("delta")?e.state.hasOwnProperty("index")||delete e.state.mode:(delete e.state.mode,e.state.delta=State.deltaEncode(e.state.history),delete e.state.history),e.state.index=e.state.delta.length-1,t=!0),e.state.hasOwnProperty("rseed")&&(e.state.seed=e.state.rseed,delete e.state.rseed,e.state.delta.forEach(function(e,t,r){r[t].hasOwnProperty("rcount")&&(r[t].pull=r[t].rcount,delete r[t].rcount)}),t=!0),(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired||e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.hasOwnProperty("expired")&&"number"==typeof e.state.expired&&delete e.state.expired, +(e.state.hasOwnProperty("unique")||e.state.hasOwnProperty("last"))&&(e.state.expired=[],e.state.hasOwnProperty("unique")&&(e.state.expired.push(e.state.unique),delete e.state.unique),e.state.hasOwnProperty("last")&&(e.state.expired.push(e.state.last),delete e.state.last)),t=!0),t}function C(e){if(null!=e&&"object"!==("undefined"==typeof e?"undefined":_typeof(e)))throw new Error("supplemental parameter must be an object");var t=Object.assign({},e,{id:Config.saves.id,state:State.marshalForSave()});return Config.saves.version&&(t.version=Config.saves.version),"function"==typeof Config.saves.onSave&&Config.saves.onSave(t),t.state.delta=State.deltaEncode(t.state.history),delete t.state.history,t}function O(e){try{if(j(e),!e||!e.hasOwnProperty("id")||!e.hasOwnProperty("state"))throw new Error(L10n.get("errorSaveMissingData"));if(e.state.history=State.deltaDecode(e.state.delta),delete e.state.delta,"function"==typeof Config.saves.onLoad&&Config.saves.onLoad(e),e.id!==Config.saves.id)throw new Error(L10n.get("errorSaveIdMismatch"));State.unmarshalForSave(e.state),Engine.show()}catch(e){return UI.alert(e.message.toUpperFirst()+".</p><p>"+L10n.get("aborting")+"."),!1}return!0}var T=-1;return Object.freeze(Object.defineProperties({},{init:{value:e},get:{value:r},clear:{value:n},ok:{value:a},autosave:{value:Object.freeze(Object.defineProperties({},{ok:{value:i},has:{value:o},get:{value:s},load:{value:u},save:{value:l},delete:{value:c}}))},slots:{value:Object.freeze(Object.defineProperties({},{ok:{value:d},length:{get:f},isEmpty:{value:h},count:{value:p},has:{value:g},get:{value:m},load:{value:v},save:{value:y},delete:{value:b}}))},export:{value:w},import:{value:k}}))}(),Setting=function(){function e(){if(storage.has("options")){var e=storage.get("options");null!==e&&(window.SugarCube.settings=settings=Object.assign(t(),e)),r(),storage.delete("options")}n(),g.forEach(function(e){if(e.hasOwnProperty("onInit")){var t={name:e.name,value:settings[e.name],default:e.default};e.hasOwnProperty("list")&&(t.list=e.list),e.onInit.call(t)}})}function t(){return Object.create(null)}function r(){var e=t();return Object.keys(settings).length>0&&g.filter(function(e){return e.type!==m.Header&&settings[e.name]!==e.default}).forEach(function(t){return e[t.name]=settings[t.name]}),0===Object.keys(e).length?(storage.delete("settings"),!0):storage.set("settings",e)}function n(){var e=t(),r=storage.get("settings")||t();g.filter(function(e){return e.type!==m.Header}).forEach(function(t){return e[t.name]=t.default}),window.SugarCube.settings=settings=Object.assign(e,r)}function a(){return window.SugarCube.settings=settings=t(),storage.delete("settings"),!0}function i(e){if(0===arguments.length)a(),n();else{if(null==e||!f(e))throw new Error('nonexistent setting "'+e+'"');var t=p(e);t.type!==m.Header&&(settings[e]=t.default)}return r()}function o(e,t){g.forEach(e,t)}function s(e,t,r){if(arguments.length<3){var n=[];throw arguments.length<1&&n.push("type"),arguments.length<2&&n.push("name"),arguments.length<3&&n.push("definition"),new Error("missing parameters, no "+n.join(" or ")+" specified")}if("object"!==("undefined"==typeof r?"undefined":_typeof(r)))throw new TypeError("definition parameter must be an object");if(f(t))throw new Error('cannot clobber existing setting "'+t+'"');var a={type:e,name:t,label:null==r.label?"":String(r.label).trim()};switch(e){case m.Header:break;case m.Toggle:a.default=!!r.default;break;case m.List:if(!r.hasOwnProperty("list"))throw new Error("no list specified");if(!Array.isArray(r.list))throw new TypeError("list must be an array");if(0===r.list.length)throw new Error("list must not be empty");if(a.list=Object.freeze(r.list),null==r.default)a.default=r.list[0];else{var i=r.list.indexOf(r.default);if(i===-1)throw new Error("list does not contain default");a.default=r.list[i]}break;default:throw new Error("unknown Setting type: "+e)}"function"==typeof r.onInit&&(a.onInit=Object.freeze(r.onInit)),"function"==typeof r.onChange&&(a.onChange=Object.freeze(r.onChange)),g.push(Object.freeze(a))}function u(e,t){s(m.Header,e,{label:t})}function l(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.Toggle].concat(t))}function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];s.apply(undefined,[m.List].concat(t))}function d(){return 0===g.length}function f(e){return g.some(function(t){return t.name===e})}function p(e){return g.find(function(t){return t.name===e})}function h(e){f(e)&&delete settings[e];for(var t=0;t<g.length;++t)if(g[t].name===e){g.splice(t,1),h(e);break}}var g=[],m=Util.toEnum({Header:0,Toggle:1,List:2});return Object.freeze(Object.defineProperties({},{Types:{value:m},init:{value:e},create:{value:t},save:{value:r},load:{value:n},clear:{value:a},reset:{value:i},forEach:{value:o},add:{value:s},addHeader:{value:u},addToggle:{value:l},addList:{value:c},isEmpty:{value:d},has:{value:f},get:{value:p},delete:{value:h}}))}(),State=function(){function e(){session.delete("state"),L=[],I=c(),Q=-1,W=[],R=null===R?null:new PRNGWrapper(R.seed,!1)}function t(){if(session.has("state")){var e=session.get("state");return null!=e&&(n(e),!0)}return!1}function r(e){var t={index:Q};return e?t.history=clone(L):t.delta=A(L),W.length>0&&(t.expired=[].concat(_toConsumableArray(W))),null!==R&&(t.seed=R.seed),t}function n(e,t){if(null==e)throw new Error("state object is null or undefined");if(!e.hasOwnProperty(t?"history":"delta")||0===e[t?"history":"delta"].length)throw new Error("state object has no history or history is empty");if(!e.hasOwnProperty("index"))throw new Error("state object has no index");if(null!==R&&!e.hasOwnProperty("seed"))throw new Error("state object has no seed, but PRNG is enabled");if(null===R&&e.hasOwnProperty("seed"))throw new Error("state object has seed, but PRNG is disabled");L=t?clone(e.history):P(e.delta),Q=e.index,W=e.hasOwnProperty("expired")?[].concat(_toConsumableArray(e.expired)):[],e.hasOwnProperty("seed")&&(R.seed=e.seed),g(Q)}function a(){return r(!0)}function i(e){return n(e,!0)}function o(){return W}function s(){return W.length+v()}function u(){return W.concat(L.slice(0,v()).map(function(e){return e.title}))}function l(e){return null!=e&&""!==e&&(!!W.includes(e)||!!L.slice(0,v()).some(function(t){return t.title===e}))}function c(e,t){return{title:null==e?"":String(e),variables:null==t?{}:clone(t)}}function d(){return I}function f(){return Q}function p(){return I.title}function h(){return I.variables}function g(e){if(null==e)throw new Error("moment activation attempted with null or undefined");switch("undefined"==typeof e?"undefined":_typeof(e)){case"object":I=clone(e);break;case"number":if(b())throw new Error("moment activation attempted with index on empty history");if(e<0||e>=y())throw new RangeError("moment activation attempted with out-of-bounds index; need [0, "+(y()-1)+"], got "+e);I=clone(L[e]);break;default:throw new TypeError('moment activation attempted with a "'+("undefined"==typeof e?"undefined":_typeof(e))+'"; must be an object or valid history stack index')}return null!==R&&(R=PRNGWrapper.unmarshal({seed:R.seed,pull:I.pull})),session.set("state",r()),jQuery.event.trigger(":historyupdate"),I}function m(){return L}function v(){return Q+1}function y(){return L.length}function b(){return 0===L.length}function w(){return L.length>0?L[Q]:null}function k(){return L.length>0?L[L.length-1]:null}function S(){return L.length>0?L[0]:null}function E(e){return b()||e<0||e>Q?null:L[e]}function x(e){if(b())return null;var t=1+(e?Math.abs(e):0);return t>v()?null:L[v()-t]}function j(e){if(b()||null==e||""===e)return!1;for(var t=Q;t>=0;--t)if(L[t].title===e)return!0;return!1}function C(e){if(v()<y()&&L.splice(v(),y()-v()),L.push(c(e,I.variables)),R&&(k().pull=R.pull),Config.history.maxStates>0)for(;y()>Config.history.maxStates;)W.push(L.shift().title);return Q=y()-1,g(Q),v()}function O(e){return!(null==e||e<0||e>=y()||e===Q)&&(Q=e,g(Q),!0)}function T(e){return null!=e&&0!==e&&O(Q+e)}function A(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,n=e.length;r<n;++r)t.push(Util.diff(e[r-1],e[r]));return t}function P(e){if(!Array.isArray(e))return null;if(0===e.length)return[];for(var t=[clone(e[0])],r=1,n=e.length;r<n;++r)t.push(Util.patch(t[r-1],e[r]));return t}function _(e,t){if(!b()){var r=void 0;throw r="a script-tagged passage",new Error("State.initPRNG must be called during initialization, within either "+r+" or the StoryInit special passage")}R=new PRNGWrapper(e,t),I.pull=R.pull}function D(){return R?R.random():Math.random()}function M(){F={},TempVariables=F}function N(){return F}var L=[],I=c(),Q=-1,W=[],R=null,F={};return Object.freeze(Object.defineProperties({},{reset:{value:e},restore:{value:t},marshalForSave:{value:a},unmarshalForSave:{value:i},expired:{get:o},turns:{get:s},passages:{get:u},hasPlayed:{value:l},active:{get:d},activeIndex:{get:f},passage:{get:p},variables:{get:h},history:{get:m},length:{get:v},size:{get:y},isEmpty:{value:b},current:{get:w},top:{get:k},bottom:{get:S},index:{value:E},peek:{value:x},has:{value:j},create:{value:C},goTo:{value:O},go:{value:T},deltaEncode:{value:A},deltaDecode:{value:P},initPRNG:{value:_},random:{value:D},clearTemporary:{value:M},temporary:{get:N},restart:{value:function(){return Engine.restart()}},backward:{value:function(){return Engine.backward()}},forward:{value:function(){return Engine.forward()}},display:{value:function(){return Engine.display.apply(Engine,arguments)}},show:{value:function(){return Engine.show.apply(Engine,arguments)}},play:{value:function(){return Engine.play.apply(Engine,arguments)}}}))}(),Story=function(){function e(){function e(e){if(e.tags.includesAny(n))throw new Error('starting passage "'+e.title+'" contains illegal tags; invalid: "'+e.tags.filter(function(e){return n.includes(e)}).sort().join('", "')+'"')}function t(e){if(a.includes(e.title)&&e.tags.includesAny(n))throw new Error('special passage "'+e.title+'" contains illegal tags; invalid: "'+e.tags.filter(function(e){return n.includes(e)}).sort().join('", "')+'"')}var n=["widget"],a=["PassageDone","PassageFooter","PassageHeader","PassageReady","StoryAuthor","StoryBanner","StoryCaption","StoryInit","StoryMenu","StoryShare","StorySubtitle"];!function(){var i=function(e){var t=[].concat(n),r=[];if(e.tags.forEach(function(e){t.includes(e)&&r.push.apply(r,_toConsumableArray(t.delete(e)))}),r.length>1)throw new Error('code passage "'+e.title+'" contains multiple code tags; invalid: "'+r.sort().join('", "')+'"')};if(n.unshift("script","stylesheet"),a.push("StoryTitle"),Config.passages.start=function(){var e="START_AT";return""!==e?(Config.debug=!0,e):"Start"}(),jQuery("#store-area").children(':not([tags~="Twine.private"],[tags~="annotation"])').each(function(){var r=jQuery(this),n=new Passage(r.attr("tiddler"),this);n.title===Config.passages.start?(e(n),c[n.title]=n):n.tags.includes("stylesheet")?(i(n),d.push(n)):n.tags.includes("script")?(i(n),f.push(n)):n.tags.includes("widget")?(i(n),p.push(n)):(t(n),c[n.title]=n)}),!c.hasOwnProperty("StoryTitle"))throw new Error('cannot find the "StoryTitle" special passage');var o=document.createDocumentFragment();new Wikifier(o,c.StoryTitle.processText().trim()),r(o.textContent.trim()),Config.saves.id=Story.domId}()}function t(){!function(){var e=document.createElement("style");new StyleWrapper(e).add(d.map(function(e){return e.text.trim()}).join("\n")),jQuery(e).appendTo(document.head).attr({id:"style-story",type:"text/css"})}();for(var e=0;e<f.length;++e)try{Scripting.evalJavaScript(f[e].text)}catch(t){Alert.error(f[e].title,"object"===("undefined"==typeof t?"undefined":_typeof(t))?t.message:t)}for(var t=0;t<p.length;++t)try{Wikifier.wikifyEval(p[t].processText())}catch(e){Alert.error(p[t].title,"object"===("undefined"==typeof e?"undefined":_typeof(e))?e.message:e)}}function r(e){if(null==e||""===e)throw new Error("story title cannot be null or empty");document.title=h=Util.unescape(e),m=Util.slugify(h)}function n(){return h}function a(){return m}function i(){return g}function o(e){var t="undefined"==typeof e?"undefined":_typeof(e);switch(t){case"number":case"string":var r=String(e);return c.hasOwnProperty(r);case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.has title parameter cannot be "+t)}function s(e){var t="undefined"==typeof e?"undefined":_typeof(e);switch(t){case"number":case"string":var r=String(e);return c.hasOwnProperty(r)?c[r]:new Passage(r||"(unknown)");case"boolean":case"function":t="a "+t;break;case"undefined":break;default:t=null===e?"null":"an "+t}throw new TypeError("Story.get title parameter cannot be "+t)}function u(e,t){for(var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"title",n=Object.keys(c),a=[],i=0;i<n.length;++i){var o=c[n[i]];if(o.hasOwnProperty(e))switch(_typeof(o[e])){case"undefined":break;case"object":for(var s=0,u=o[e].length;s<u;++s)if(o[e][s]==t){a.push(o);break}break;default:o[e]==t&&a.push(o)}}return a.sort(function(e,t){return e[r]==t[r]?0:e[r]<t[r]?-1:1}),a}function l(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"title";if("function"!=typeof e)throw new Error("Story.lookupWith filter parameter must be a function");for(var r=Object.keys(c),n=[],a=0;a<r.length;++a){var i=c[r[a]];e(i)&&n.push(i)}return n.sort(function(e,r){return e[t]==r[t]?0:e[t]<r[t]?-1:1}),n}var c={},d=[],f=[],p=[],h="",g="",m="";return Object.freeze(Object.defineProperties({},{passages:{value:c},styles:{value:d},scripts:{value:f},widgets:{value:p},load:{value:e},init:{value:t},title:{get:n},domId:{get:a},ifId:{get:i},has:{value:o},get:{value:s},lookup:{value:u},lookupWith:{value:l}}))}(),UI=function(){function e(e,t){var r=t,n=Config.debug;Config.debug=!1;try{null==r&&(r=document.createElement("ul"));var a=document.createDocumentFragment();if(new Wikifier(a,Story.get(e).processText().trim()),a.hasChildNodes())for(var i=null;a.hasChildNodes();){var o=a.firstChild;o.nodeType!==Node.ELEMENT_NODE||"A"!==o.nodeName.toUpperCase()?(a.removeChild(o),null!==i&&(i=null)):(null===i&&(i=document.createElement("li"),r.appendChild(i)),i.appendChild(o))}}finally{Config.debug=n}return r}function t(e){jQuery(Dialog.setup("Alert","alert")).append("<p>"+e+'</p><ul class="buttons">'+('<li><button id="alert-ok" class="ui-close">'+L10n.get(["alertOk","ok"])+"</button></li>")+"</ul>");for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];Dialog.open.apply(Dialog,r)}function r(){u(),Dialog.open.apply(Dialog,arguments)}function n(){l(),Dialog.open.apply(Dialog,arguments)}function a(){c(),Dialog.open.apply(Dialog,arguments)}function i(){d(),Dialog.open.apply(Dialog,arguments)}function o(){f(),Dialog.open.apply(Dialog,arguments)}function s(){return jQuery(Dialog.setup(L10n.get("autoloadTitle"),"autoload")).append("<p>"+L10n.get("autoloadPrompt")+'</p><ul class="buttons">'+('<li><button id="autoload-ok" class="ui-close">'+L10n.get(["autoloadOk","ok"])+"</button></li>")+('<li><button id="autoload-cancel" class="ui-close">'+L10n.get(["autoloadCancel","cancel"])+"</button></li>")+"</ul>"),jQuery(document).one("click.autoload",".ui-close",function(e){var t="autoload-ok"===e.target.id;jQuery(document).one(":dialogclose",function(){t&&Save.autosave.load()||Engine.play(Config.passages.start)})}),!0}function u(){var e=document.createElement("ul");jQuery(Dialog.setup(L10n.get("jumptoTitle"),"jumpto list")).append(e);for(var t=State.expired.length,r=State.size-1;r>=0;--r)if(r!==State.activeIndex){var n=Story.get(State.history[r].title);n&&n.tags.includes("bookmark")&&jQuery(document.createElement("li")).append(jQuery(document.createElement("a")).ariaClick({one:!0},function(e){return function(){return jQuery(document).one(":dialogclose",function(){return Engine.goTo(e)})}}(r)).addClass("ui-close").text(L10n.get("jumptoTurn")+" "+(t+r+1)+": "+n.description())).appendTo(e)}e.hasChildNodes()||jQuery(e).append("<li><a><em>"+L10n.get("jumptoUnavailable")+"</em></a></li>")}function l(){return jQuery(Dialog.setup(L10n.get("restartTitle"),"restart")).append("<p>"+L10n.get("restartPrompt")+'</p><ul class="buttons">'+('<li><button id="restart-ok">'+L10n.get(["restartOk","ok"])+"</button></li>")+('<li><button id="restart-cancel" class="ui-close">'+L10n.get(["restartCancel","cancel"])+"</button></li>")+"</ul>").find("#restart-ok").ariaClick({one:!0},function(){jQuery(document).one(":dialogclose",function(){return Engine.restart()}),Dialog.close()}),!0}function c(){function e(e,t,r,n){var a=jQuery(document.createElement("button")).attr("id","saves-"+e).html(r);return t&&a.addClass(t),n?a.ariaClick(n):a.prop("disabled",!0),jQuery(document.createElement("li")).append(a)}function r(){function e(e,t,r,n,a){var i=jQuery(document.createElement("button")).attr("id","saves-"+e+"-"+n).addClass(e).html(r);return t&&i.addClass(t),a?"auto"===n?i.ariaClick({label:r+" "+L10n.get("savesLabelAuto")},function(){return a()}):i.ariaClick({label:r+" "+L10n.get("savesLabelSlot")+" "+(n+1)},function(){return a(n)}):i.prop("disabled",!0),i}var t=Save.get(),r=jQuery(document.createElement("tbody"));if(Save.autosave.ok()){var n=jQuery(document.createElement("td")),a=jQuery(document.createElement("td")),i=jQuery(document.createElement("td")),o=jQuery(document.createElement("td"));jQuery(document.createElement("b")).attr({title:L10n.get("savesLabelAuto"),"aria-label":L10n.get("savesLabelAuto")}).text("A").appendTo(n),t.autosave?(a.append(e("load","ui-close",L10n.get("savesLabelLoad"),"auto",function(){jQuery(document).one(":dialogclose",function(){return Save.autosave.load()})})),jQuery(document.createElement("div")).text(t.autosave.title).appendTo(i),jQuery(document.createElement("div")).addClass("datestamp").html(t.autosave.date?L10n.get("savesSavedOn")+" "+new Date(t.autosave.date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(i),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto",function(){Save.autosave.delete(),c(),Dialog.resize()}))):(a.append(e("load",null,L10n.get("savesLabelLoad"),"auto")),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(i),i.addClass("empty"),o.append(e("delete",null,L10n.get("savesLabelDelete"),"auto"))),jQuery(document.createElement("tr")).append(n).append(a).append(i).append(o).appendTo(r)}for(var s=0,u=t.slots.length;s<u;++s){var l=jQuery(document.createElement("td")),d=jQuery(document.createElement("td")),f=jQuery(document.createElement("td")),p=jQuery(document.createElement("td"));l.append(document.createTextNode(s+1)),t.slots[s]?(d.append(e("load","ui-close",L10n.get("savesLabelLoad"),s,function(e){jQuery(document).one(":dialogclose",function(){return Save.slots.load(e)})})),jQuery(document.createElement("div")).text(t.slots[s].title).appendTo(f),jQuery(document.createElement("div")).addClass("datestamp").html(t.slots[s].date?L10n.get("savesSavedOn")+" "+new Date(t.slots[s].date).toLocaleString():L10n.get("savesSavedOn")+" <em>"+L10n.get("savesUnknownDate")+"</em>").appendTo(f),p.append(e("delete",null,L10n.get("savesLabelDelete"),s,function(e){Save.slots.delete(e),c(),Dialog.resize()}))):(d.append(e("save","ui-close",L10n.get("savesLabelSave"),s,Save.slots.save)),jQuery(document.createElement("em")).text(L10n.get("savesEmptySlot")).appendTo(f),f.addClass("empty"),p.append(e("delete",null,L10n.get("savesLabelDelete"),s))),jQuery(document.createElement("tr")).append(l).append(d).append(f).append(p).appendTo(r)}return jQuery(document.createElement("table")).attr("id","saves-list").append(r)}var n=jQuery(Dialog.setup(L10n.get("savesTitle"),"saves")),a=Save.ok();if(a&&n.append(r()),a||Has.fileAPI){var i=jQuery(document.createElement("ul")).addClass("buttons").appendTo(n);return Has.fileAPI&&(i.append(e("export","ui-close",L10n.get("savesLabelExport"),function(){return Save.export()})),i.append(e("import",null,L10n.get("savesLabelImport"),function(){return n.find("#saves-import-file").trigger("click")})),jQuery(document.createElement("input")).css({display:"block",visibility:"hidden",position:"fixed",left:"-9999px",top:"-9999px",width:"1px",height:"1px"}).attr({type:"file",id:"saves-import-file",tabindex:-1,"aria-hidden":!0}).on("change",function(e){jQuery(document).one(":dialogclose",function(){return Save.import(e)}),Dialog.close()}).appendTo(n)),a&&i.append(e("clear",null,L10n.get("savesLabelClear"),Save.autosave.has()||!Save.slots.isEmpty()?function(){Save.clear(),c(),Dialog.resize()}:null)),!0}return t(L10n.get("savesIncapable")),!1}function d(){var e=jQuery(Dialog.setup(L10n.get("settingsTitle"),"settings"));return Setting.forEach(function(t){if(t.type===Setting.Types.Header){var r=t.name,n=Util.slugify(r),a=jQuery(document.createElement("div")),i=jQuery(document.createElement("h2")),o=jQuery(document.createElement("p"));return a.attr("id","header-body-"+n).append(i).append(o).appendTo(e),i.attr("id","header-heading-"+n).wiki(r),void o.attr("id","header-label-"+n).wiki(t.label)}var s=t.name,u=Util.slugify(s),l=jQuery(document.createElement("div")),c=jQuery(document.createElement("label")),d=jQuery(document.createElement("div")),f=void 0;switch(l.attr("id","setting-body-"+u).append(c).append(d).appendTo(e),c.attr({id:"setting-label-"+u,for:"setting-control-"+u}).wiki(t.label),null==settings[s]&&(settings[s]=t.default),t.type){case Setting.Types.Toggle:f=jQuery(document.createElement("button")),settings[s]?f.addClass("enabled").text(L10n.get("settingsOn")):f.text(L10n.get("settingsOff")),f.ariaClick(function(){settings[s]?(jQuery(this).removeClass("enabled").text(L10n.get("settingsOff")),settings[s]=!1):(jQuery(this).addClass("enabled").text(L10n.get("settingsOn")),settings[s]=!0),Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default})});break;case Setting.Types.List:f=jQuery(document.createElement("select"));for(var p=0,h=t.list.length;p<h;++p)jQuery(document.createElement("option")).val(p).text(t.list[p]).appendTo(f);f.val(t.list.indexOf(settings[s])).attr("tabindex",0).on("change",function(){settings[s]=t.list[Number(this.value)],Setting.save(),t.hasOwnProperty("onChange")&&t.onChange.call({name:s,value:settings[s],default:t.default,list:t.list})})}f.attr("id","setting-control-"+u).appendTo(d)}),e.append('<ul class="buttons">'+('<li><button id="settings-ok" class="ui-close">'+L10n.get(["settingsOk","ok"])+"</button></li>")+('<li><button id="settings-reset">'+L10n.get("settingsReset")+"</button></li>")+"</ul>").find("#settings-reset").ariaClick({one:!0},function(){jQuery(document).one(":dialogclose",function(){Setting.reset(),window.location.reload()}),Dialog.close()}),!0}function f(){return jQuery(Dialog.setup(L10n.get("shareTitle"),"share list")).append(e("StoryShare")),!0}return Object.freeze(Object.defineProperties({},{assembleLinkList:{value:e},alert:{value:t},jumpto:{value:r},restart:{value:n},saves:{value:a},settings:{value:i},share:{value:o},buildAutoload:{value:s},buildJumpto:{value:u},buildRestart:{value:l},buildSaves:{value:c},buildSettings:{value:d},buildShare:{value:f},stow:{value:function(){return UIBar.stow()}},unstow:{value:function(){return UIBar.unstow()}},setStoryElements:{value:function(){return UIBar.setStoryElements()}},isOpen:{value:function(){return Dialog.isOpen.apply(Dialog,arguments)}},body:{value:function(){return Dialog.body()}},setup:{value:function(){return Dialog.setup.apply(Dialog,arguments)}},addClickHandler:{value:function(){return Dialog.addClickHandler.apply(Dialog,arguments)}},open:{value:function(){return Dialog.open.apply(Dialog,arguments)}},close:{value:function(){return Dialog.close.apply(Dialog,arguments)}},resize:{value:function(){return Dialog.resize()}},buildDialogAutoload:{value:s},buildDialogJumpto:{value:u},buildDialogRestart:{value:l},buildDialogSaves:{value:c},buildDialogSettings:{value:d},buildDialogShare:{value:f},buildLinkListFromPassage:{value:e}}))}(),UIBar=function(){function e(){!function(){var e=jQuery(document.createDocumentFragment()),t=L10n.get("uiBarToggle"),r=L10n.get("uiBarBackward"),n=L10n.get("uiBarJumpto"),a=L10n.get("uiBarForward");e.append('<div id="ui-bar"><div id="ui-bar-tray">'+('<button id="ui-bar-toggle" tabindex="0" title="'+t+'" aria-label="'+t+'"></button>')+'<div id="ui-bar-history">'+('<button id="history-backward" tabindex="0" title="'+r+'" aria-label="'+r+'">î ¡</button>')+('<button id="history-jumpto" tabindex="0" title="'+n+'" aria-label="'+n+'">î ¹</button>')+('<button id="history-forward" tabindex="0" title="'+a+'" aria-label="'+a+'">î ¢</button>')+'</div></div><div id="ui-bar-body"><header id="title" role="banner"><div id="story-banner"></div><h1 id="story-title"></h1><div id="story-subtitle"></div><div id="story-title-separator"></div><p id="story-author"></p></header><div id="story-caption"></div><nav id="menu" role="navigation"><ul id="menu-story"></ul><ul id="menu-core">'+('<li id="menu-item-saves"><a tabindex="0">'+L10n.get("savesTitle")+"</a></li>")+('<li id="menu-item-settings"><a tabindex="0">'+L10n.get("settingsTitle")+"</a></li>")+('<li id="menu-item-restart"><a tabindex="0">'+L10n.get("restartTitle")+"</a></li>")+('<li id="menu-item-share"><a tabindex="0">'+L10n.get("shareTitle")+"</a></li>")+'</ul></nav></div></div><div id="story" role="main"><div id="passages"></div></div>').insertBefore("#store-area")}(),jQuery(document).on(":historyupdate.ui-bar",function(e,t){return function(){e.prop("disabled",State.length<2),t.prop("disabled",State.length===State.size)}}(jQuery("#history-backward"),jQuery("#history-forward")))}function t(){var e=jQuery("#ui-bar");("boolean"==typeof Config.ui.stowBarInitially?Config.ui.stowBarInitially:jQuery(window).width()<=Config.ui.stowBarInitially)&&!function(){var t=jQuery(e).add("#story");t.addClass("no-transition"),e.addClass("stowed"),setTimeout(function(){return t.removeClass("no-transition")},Engine.minDomActionDelay)}(),jQuery("#ui-bar-toggle").ariaClick({label:L10n.get("uiBarToggle")},function(){return e.toggleClass("stowed")}),Config.history.controls?(jQuery("#history-backward").prop("disabled",State.length<2).ariaClick({label:L10n.get("uiBarBackward")},function(){return Engine.backward()}),Story.lookup("tags","bookmark").length>0?jQuery("#history-jumpto").ariaClick({label:L10n.get("uiBarJumpto")},function(){return UI.jumpto()}):jQuery("#history-jumpto").remove(),jQuery("#history-forward").prop("disabled",State.length===State.size).ariaClick({label:L10n.get("uiBarForward")},function(){return Engine.forward()})):jQuery("#ui-bar-history").remove(),setPageElement("story-title","StoryTitle",Story.title),Story.has("StoryCaption")||jQuery("#story-caption").remove(),Story.has("StoryMenu")||jQuery("#menu-story").remove(),Config.ui.updateStoryElements||i(),Dialog.addClickHandler("#menu-item-saves a",null,UI.buildSaves).text(L10n.get("savesTitle")),Setting.isEmpty()?jQuery("#menu-item-settings").remove():Dialog.addClickHandler("#menu-item-settings a",null,UI.buildSettings).text(L10n.get("settingsTitle")),Dialog.addClickHandler("#menu-item-restart a",null,UI.buildRestart).text(L10n.get("restartTitle")),Story.has("StoryShare")?Dialog.addClickHandler("#menu-item-share a",null,UI.buildShare).text(L10n.get("shareTitle")):jQuery("#menu-item-share").remove()}function r(){jQuery(document).off(".ui-bar"),jQuery("#ui-bar").remove(),jQuery(document.head).find("#style-ui-bar").remove()}function n(){jQuery("#ui-bar").addClass("stowed")}function a(){jQuery("#ui-bar").removeClass("stowed")}function i(){setPageElement("story-banner","StoryBanner"),setPageElement("story-subtitle","StorySubtitle"),setPageElement("story-author","StoryAuthor"),setPageElement("story-caption","StoryCaption");var e=document.getElementById("menu-story");null!==e&&(jQuery(e).empty(),Story.has("StoryMenu")&&UI.assembleLinkList("StoryMenu",e))}return Object.freeze(Object.defineProperties({},{init:{value:e},start:{value:t},destroy:{value:r},stow:{value:n},unstow:{value:a},setStoryElements:{value:i}}))}(),LoadScreen=function(){function e(){jQuery(document).on("readystatechange.SugarCube",function(){o.size>0||("complete"===document.readyState?"loading"===jQuery(document.documentElement).attr("data-init")&&(Config.loadDelay>0?setTimeout(function(){0===o.size&&r()},Math.max(Engine.minDomActionDelay,Config.loadDelay)):r()):n())})}function t(){jQuery(document).off("readystatechange.SugarCube"),o.clear(),r()}function r(){jQuery(document.documentElement).removeAttr("data-init")}function n(){jQuery(document.documentElement).attr("data-init","loading")}function a(){return++s,o.add(s),n(),s}function i(e){if(null==e)throw new Error("LoadScreen.unlock called with a null or undefined ID");o.has(e)&&o.delete(e),0===o.size&&jQuery(document).trigger("readystatechange")}var o=new Set,s=0;return Object.freeze(Object.defineProperties({},{init:{value:e},clear:{value:t},hide:{value:r},show:{value:n},lock:{value:a},unlock:{value:i}}))}(),version=Object.freeze({title:"SugarCube",major:2,minor:17,patch:0,prerelease:null,build:7956,date:new Date("2017-03-31T21:54:53.662Z"),extensions:{},toString:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.major+"."+this.minor+"."+this.patch+e+"+"+this.build},short:function(){var e=this.prerelease?"-"+this.prerelease:"";return this.title+" (v"+this.major+"."+this.minor+"."+this.patch+e+")"},long:function(){return this.title+" v"+this.toString()+" ("+this.date.toUTCString()+")"}}),TempState={},macros={},postdisplay={},postrender={},predisplay={},prehistory={},prerender={},session=null,settings={},setup={},storage=null,browser=Browser,config=Config,has=Has,History=State,state=State,tale=Story,TempVariables=State.temporary;window.SugarCube={},jQuery(function(){try{var e=LoadScreen.lock();LoadScreen.init(),document.normalize&&document.normalize(),Story.load(),storage=SimpleStore.create(Story.domId,!0),session=SimpleStore.create(Story.domId,!1),Dialog.init(),UIBar.init(),Engine.init(),Story.init(),L10n.init(),session.has("rcWarn")||"cookie"!==storage.name||(session.set("rcWarn",1),window.alert(L10n.get("warningNoWebStorage"))),Save.init(),Setting.init(),Macro.init(),Engine.start(),UIBar.start(),window.SugarCube={Browser:Browser,Config:Config,Dialog:Dialog,DebugView:DebugView,Engine:Engine,Has:Has,L10n:L10n,Macro:Macro,Passage:Passage,Save:Save,Scripting:Scripting,Setting:Setting,SimpleAudio:SimpleAudio,State:State,Story:Story,UI:UI,UIBar:UIBar,Util:Util,Wikifier:Wikifier,macros:macros,session:session,settings:settings,setup:setup,storage:storage,version:version},LoadScreen.unlock(e)}catch(e){return LoadScreen.clear(),Alert.fatal(null,e.message,e)}})}(window,window.document,jQuery);} </script> </body> </html> diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw index b0fc9fca5ea2d4df032812f816678c4a99e084ec..90c80e355301311ac9fe6de8d719327808f95db5 100644 --- a/src/gui/Encyclopedia/encyclopedia.tw +++ b/src/gui/Encyclopedia/encyclopedia.tw @@ -65,7 +65,7 @@ The arcology can be upgraded with a variety of facilities for slaves to live and Use facilities sparingly until you're familiar with what assignments do so you don't miss important information. When you're confident enough to ignore a slave for long periods, sending her to a facility becomes a good option. Sending a slave to a facility heavily reduces the player's interaction with her, keeps the main menu and end week report manageable, and prevents most events from featuring her, which can be useful when she's so well trained that events aren't as beneficial for her. Also, many facilities have leadership positions that can apply powerful multipliers to a slave's performance. -The [[Arcade|Encyclopedia][$encyclopedia to "Arcade"]], [[Brothel|Encyclopedia][$encyclopedia to "Brothel"]], [[Club|Encyclopedia][$encyclopedia to "Club"]], [[Dairy|Encyclopedia][$encyclopedia to "Dairy"]], and [[Servants' Quarters|Encyclopedia][$encyclopedia to "Servants' Quarters"]] all correspond to basic productive assignments. The [[Spa|Encyclopedia][$encyclopedia to "Spa"]], [[Cellblock|Encyclopedia][$encyclopedia to "Cellblock"]], and [[Schoolroom|Encyclopedia][$encyclopedia to "Schoolroom"]] are a little different in that they focus on improving their occupants rather than producing something useful, since they correspond to the rest, confinement, and class assignments. As such, only slaves that can benefit from these facilities' services can be sent to them. When slaves in these facilities have received all the benefits they can from the facility, they will be automatically ejected, assigned to rest, and returned to the main menu. The [[Head Girl Suite|Encyclopedia][$encyclopedia to "Head Girl Suite"]], [[Master Suite|Encyclopedia][$encyclopedia to "Master Suite"]], and [[Pit|Encyclopedia][$encyclopedia to "Pit"]] are all completely unique. +The [[Arcade|Encyclopedia][$encyclopedia = "Arcade"]], [[Brothel|Encyclopedia][$encyclopedia = "Brothel"]], [[Club|Encyclopedia][$encyclopedia = "Club"]], [[Dairy|Encyclopedia][$encyclopedia = "Dairy"]], and [[Servants' Quarters|Encyclopedia][$encyclopedia = "Servants' Quarters"]] all correspond to basic productive assignments. The [[Spa|Encyclopedia][$encyclopedia = "Spa"]], [[Cellblock|Encyclopedia][$encyclopedia = "Cellblock"]], and [[Schoolroom|Encyclopedia][$encyclopedia = "Schoolroom"]] are a little different in that they focus on improving their occupants rather than producing something useful, since they correspond to the rest, confinement, and class assignments. As such, only slaves that can benefit from these facilities' services can be sent to them. When slaves in these facilities have received all the benefits they can from the facility, they will be automatically ejected, assigned to rest, and returned to the main menu. The [[Head Girl Suite|Encyclopedia][$encyclopedia = "Head Girl Suite"]], [[Master Suite|Encyclopedia][$encyclopedia = "Master Suite"]], and [[Pit|Encyclopedia][$encyclopedia = "Pit"]] are all completely unique. <<case "Drugs and Their Effects">>\ A variety of new pharmaceuticals are becoming available in the regulatory desert of the Free Cities. Many are untested, most are extremely powerful, and none have undergone long-term testing. Long-term use of any combination of these drugs is likely to have some minor but still concerning cumulative health impact. Ceasing use may only prove partially effective in reversing these effects. @@ -146,7 +146,7 @@ Once a corporation is created, it will get its own establishment in the slave ma Training: Language, education, and skills. Surgical: Cosmetic surgeries, implants, and extreme surgeries. Pharmacological: Hormones, expansion, and extreme expansion. -These decisions remain available until settled, but cannot be changed once made. If the corporation's slaves have qualities that make them especially appealing to an arcology's citizens, the corporation will enjoy increased profits, and the [[future society|Encyclopedia][$encyclopedia to "Future Societies"]] creating the demand will progress more rapidly due to the supply of appealing slaves. All arcologies present in the Free City will interact with the corporation this way, making shares in a corporation which supplies girls that appeal to the whole city extremely lucrative. +These decisions remain available until settled, but cannot be changed once made. If the corporation's slaves have qualities that make them especially appealing to an arcology's citizens, the corporation will enjoy increased profits, and the [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] creating the demand will progress more rapidly due to the supply of appealing slaves. All arcologies present in the Free City will interact with the corporation this way, making shares in a corporation which supplies girls that appeal to the whole city extremely lucrative. <<case "Costs Summary">>\ Aphrodisiacs are cheap and cost ¤$drugsCost weekly; curatives are expensive and cost ¤<<print ($drugsCost*3)>> weekly; while all other drug regimes cost ¤<<print ($drugsCost*2)>>. Standard hormone regimens cost <<print Math.trunc($drugsCost*1*0.5)>> while intensive hormone treatment costs <<print Math.trunc($drugsCost*2*0.5)>>. Contraceptives cost <<print Math.trunc($drugsCost*0.5)>>. @@ -162,7 +162,7 @@ __Construction__ The first upgrade section on the arcology management menu offers an escalating series of generic upgrades for the arcology. A few of these have minor beneficial side effects, but all share the same main effect: they raise the arcology's maximum prosperity level. You will be informed on the end of week report if your arcology is nearing, at, or over this level. Upgrading early is //not// useless, since prosperity will increase more rapidly if the cap is much higher than the current prosperity level. __Facilities__ -These upgrades unlock the various facilities, which are detailed <<link "here.">><<set $encyclopedia to "Facilities">><<goto "Encyclopedia">><</link>> +These upgrades unlock the various facilities, which are detailed <<link "here.">><<set $encyclopedia = "Facilities">><<goto "Encyclopedia">><</link>> __Penthouse Improvements__ The master suite and Head Girl suite options function like facilities. The master suite is the facility for the fucktoy assignment, and the Head Girl suite can house a single slave for her use. @@ -953,11 +953,11 @@ __I do not give credit without explicit permission to do so.__ If you have contr Thanks are due to all the anons that submitted slaves for inclusion in the pre-owned database and offered content ideas. Many anonymous playtesters also gave crucial feedback and bug reports. May you all ride straight to the gates of Valhalla, shiny and chrome. <<case "Anal Skill">>\ -''Anal skill'' improves performance on sexual assignments and is available in three levels. Training methods include schooling (up to level one), plugs (up to level one), personal attention (unlimited), Head Girl attention (up to the Head Girl's skill), and on the job experience (unlimited). [[Anus|Encyclopedia][$encyclopedia to "Anuses"]] surgery can reduce this skill. +''Anal skill'' improves performance on sexual assignments and is available in three levels. Training methods include schooling (up to level one), plugs (up to level one), personal attention (unlimited), Head Girl attention (up to the Head Girl's skill), and on the job experience (unlimited). [[Anus|Encyclopedia][$encyclopedia = "Anuses"]] surgery can reduce this skill. <<case "Vaginal Skill">>\ -''Vaginal skill'' improves performance on sexual assignments and is available in three levels. Training methods include schooling (up to level one), plugs (up to level one), personal attention (unlimited), Head Girl attention (up to the Head Girl's skill), and on the job experience (unlimited). Slaves without vaginas cannot learn or teach this skill, limiting their ultimate skill ceiling. [[Vagina|Encyclopedia][$encyclopedia to "Vaginas"]] surgery can reduce this skill. +''Vaginal skill'' improves performance on sexual assignments and is available in three levels. Training methods include schooling (up to level one), plugs (up to level one), personal attention (unlimited), Head Girl attention (up to the Head Girl's skill), and on the job experience (unlimited). Slaves without vaginas cannot learn or teach this skill, limiting their ultimate skill ceiling. [[Vagina|Encyclopedia][$encyclopedia = "Vaginas"]] surgery can reduce this skill. <<case "Oral Skill">>\ -''Oral skill'' improves performance on sexual assignments and is available in three levels. Training methods include schooling (up to level one), gags (up to level one), personal attention (unlimited), Head Girl attention (up to the Head Girl's skill), and on the job experience (unlimited). [[Lip|Encyclopedia][$encyclopedia to "Lips"]] surgery can reduce this skill. +''Oral skill'' improves performance on sexual assignments and is available in three levels. Training methods include schooling (up to level one), gags (up to level one), personal attention (unlimited), Head Girl attention (up to the Head Girl's skill), and on the job experience (unlimited). [[Lip|Encyclopedia][$encyclopedia = "Lips"]] surgery can reduce this skill. <<case "Whoring Skill">>\ ''Whoring skill'' is available in three levels. It improves performance on all sexual assignments, though it affects whoring or working in the brothel most. Training methods include schooling (up to level one), personal attention (up to level one), Head Girl attention (up to the Head Girl's skill), and on the job experience (unlimited). <<case "Entertainment Skill">>\ @@ -968,27 +968,27 @@ Thanks are due to all the anons that submitted slaves for inclusion in the pre-o Slaves may retain useful experience from their lives before enslavement. Freedom and slavery are so different that the bonuses slaves get from career experience are minor. Careers fall into categories, each with its own bonus; these are: <<nobr>> -<br>__Grateful__ (offering a potential bonus to [[Trust|Encyclopedia][$encyclopedia to "Trust"]]), including slaves who were -<<for $i to 0; $i < $gratefulCareers.length; $i++>> - <<if $i is $gratefulCareers.length-1>> +<br>__Grateful__ (offering a potential bonus to [[Trust|Encyclopedia][$encyclopedia = "Trust"]]), including slaves who were +<<for $i = 0; $i < $gratefulCareers.length; $i++>> + <<if $i == $gratefulCareers.length-1>> and $gratefulCareers[$i]. <<else>> $gratefulCareers[$i], <</if>> <</for>> -<br>__Menial__ (offering a potential bonus to [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]]), including slaves who were -<<for $i to 0; $i < $menialCareers.length; $i++>> - <<if $i is $menialCareers.length-1>> +<br>__Menial__ (offering a potential bonus to [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]]), including slaves who were +<<for $i = 0; $i < $menialCareers.length; $i++>> + <<if $i == $menialCareers.length-1>> and $menialCareers[$i]. <<else>> $menialCareers[$i], <</if>> <</for>> -<br>__Entertainment__ (offering a bonus to [[Public Service|Encyclopedia][$encyclopedia to "Public Service"]]), including slaves who were -<<for $i to 0; $i < $entertainmentCareers.length; $i++>> - <<if $i is $entertainmentCareers.length-1>> +<br>__Entertainment__ (offering a bonus to [[Public Service|Encyclopedia][$encyclopedia = "Public Service"]]), including slaves who were +<<for $i = 0; $i < $entertainmentCareers.length; $i++>> + <<if $i == $entertainmentCareers.length-1>> and $entertainmentCareers[$i]. <<else>> $entertainmentCareers[$i], @@ -996,9 +996,9 @@ Slaves may retain useful experience from their lives before enslavement. Freedom <</for>> If a slave has been in the arcology for a long time and is intelligent, she can qualify for this bonus without career experience. -<br>__Sex work__ (offering a bonus to [[Whoring|Encyclopedia][$encyclopedia to "Whoring"]]), including slaves who were -<<for $i to 0; $i < $whoreCareers.length; $i++>> - <<if $i is $whoreCareers.length-1>> +<br>__Sex work__ (offering a bonus to [[Whoring|Encyclopedia][$encyclopedia = "Whoring"]]), including slaves who were +<<for $i = 0; $i < $whoreCareers.length; $i++>> + <<if $i == $whoreCareers.length-1>> and $whoreCareers[$i]. <<else>> $whoreCareers[$i], @@ -1006,90 +1006,90 @@ If a slave has been in the arcology for a long time and is intelligent, she can <</for>> If a slave is very sexually experienced, she can qualify for this bonus without career experience. -<br>__Leadership__ (offering a bonus as [[Head Girl|Encyclopedia][$encyclopedia to "Head Girl"]]), including slaves who were -<<for $i to 0; $i < $HGCareers.length; $i++>> - <<if $i is $HGCareers.length-1>> +<br>__Leadership__ (offering a bonus as [[Head Girl|Encyclopedia][$encyclopedia = "Head Girl"]]), including slaves who were +<<for $i = 0; $i < $HGCareers.length; $i++>> + <<if $i == $HGCareers.length-1>> and $HGCareers[$i]. <<else>> $HGCareers[$i], <</if>> <</for>> -<br>__Procuring__ (offering a bonus as [[Madam|Encyclopedia][$encyclopedia to "Madam"]]), including slaves who were -<<for $i to 0; $i < $madamCareers.length; $i++>> - <<if $i is $madamCareers.length-1>> +<br>__Procuring__ (offering a bonus as [[Madam|Encyclopedia][$encyclopedia = "Madam"]]), including slaves who were +<<for $i = 0; $i < $madamCareers.length; $i++>> + <<if $i == $madamCareers.length-1>> and $madamCareers[$i]. <<else>> $madamCareers[$i], <</if>> <</for>> -<br>__Musical__ (offering a bonus as [[DJ|Encyclopedia][$encyclopedia to "DJ"]]), including slaves who were -<<for $i to 0; $i < $DJCareers.length; $i++>> - <<if $i is $DJCareers.length-1>> +<br>__Musical__ (offering a bonus as [[DJ|Encyclopedia][$encyclopedia = "DJ"]]), including slaves who were +<<for $i = 0; $i < $DJCareers.length; $i++>> + <<if $i == $DJCareers.length-1>> and $DJCareers[$i]. <<else>> $DJCareers[$i], <</if>> <</for>> -<br>__Defensive__ (offering a bonus as [[Bodyguard|Encyclopedia][$encyclopedia to "Bodyguard"]]), including slaves who were -<<for $i to 0; $i < $bodyguardCareers.length; $i++>> - <<if $i is $bodyguardCareers.length-1>> +<br>__Defensive__ (offering a bonus as [[Bodyguard|Encyclopedia][$encyclopedia = "Bodyguard"]]), including slaves who were +<<for $i = 0; $i < $bodyguardCareers.length; $i++>> + <<if $i == $bodyguardCareers.length-1>> and $bodyguardCareers[$i]. <<else>> $bodyguardCareers[$i], <</if>> <</for>> -<br>__Security__ (offering a bonus as [[Wardeness|Encyclopedia][$encyclopedia to "Wardeness"]]), including slaves who were -<<for $i to 0; $i < $wardenessCareers.length; $i++>> - <<if $i is $wardenessCareers.length-1>> +<br>__Security__ (offering a bonus as [[Wardeness|Encyclopedia][$encyclopedia = "Wardeness"]]), including slaves who were +<<for $i = 0; $i < $wardenessCareers.length; $i++>> + <<if $i == $wardenessCareers.length-1>> and $wardenessCareers[$i]. <<else>> $wardenessCareers[$i], <</if>> <</for>> -<br>__Medical__ (offering a bonus as [[Nurse|Encyclopedia][$encyclopedia to "Nurse"]]), including slaves who were -<<for $i to 0; $i < $nurseCareers.length; $i++>> - <<if $i is $nurseCareers.length-1>> +<br>__Medical__ (offering a bonus as [[Nurse|Encyclopedia][$encyclopedia = "Nurse"]]), including slaves who were +<<for $i = 0; $i < $nurseCareers.length; $i++>> + <<if $i == $nurseCareers.length-1>> and $nurseCareers[$i]. <<else>> $nurseCareers[$i], <</if>> <</for>> -<br>__Counseling__ (offering a bonus as [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]]), including slaves who were -<<for $i to 0; $i < $attendantCareers.length; $i++>> - <<if $i is $attendantCareers.length-1>> +<br>__Counseling__ (offering a bonus as [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]]), including slaves who were +<<for $i = 0; $i < $attendantCareers.length; $i++>> + <<if $i == $attendantCareers.length-1>> and $attendantCareers[$i]. <<else>> $attendantCareers[$i], <</if>> <</for>> -<br>__Accounting__ (offering a bonus as [[Stewardess|Encyclopedia][$encyclopedia to "Stewardess"]]), including slaves who were -<<for $i to 0; $i < $stewardessCareers.length; $i++>> - <<if $i is $stewardessCareers.length-1>> +<br>__Accounting__ (offering a bonus as [[Stewardess|Encyclopedia][$encyclopedia = "Stewardess"]]), including slaves who were +<<for $i = 0; $i < $stewardessCareers.length; $i++>> + <<if $i == $stewardessCareers.length-1>> and $stewardessCareers[$i]. <<else>> $stewardessCareers[$i], <</if>> <</for>> -<br>__Husbandry__ (offering a bonus as [[Milkmaid|Encyclopedia][$encyclopedia to "Milkmaid"]]), including slaves who were -<<for $i to 0; $i < $milkmaidCareers.length; $i++>> - <<if $i is $milkmaidCareers.length-1>> +<br>__Husbandry__ (offering a bonus as [[Milkmaid|Encyclopedia][$encyclopedia = "Milkmaid"]]), including slaves who were +<<for $i = 0; $i < $milkmaidCareers.length; $i++>> + <<if $i == $milkmaidCareers.length-1>> and $milkmaidCareers[$i]. <<else>> $milkmaidCareers[$i], <</if>> <</for>> -<br>__Teaching__ (offering a bonus as [[Schoolteacher|Encyclopedia][$encyclopedia to "Schoolteacher"]]), including slaves who were -<<for $i to 0; $i < $schoolteacherCareers.length; $i++>> - <<if $i is $schoolteacherCareers.length-1>> +<br>__Teaching__ (offering a bonus as [[Schoolteacher|Encyclopedia][$encyclopedia = "Schoolteacher"]]), including slaves who were +<<for $i = 0; $i < $schoolteacherCareers.length; $i++>> + <<if $i == $schoolteacherCareers.length-1>> and $schoolteacherCareers[$i]. <<else>> $schoolteacherCareers[$i], @@ -1100,55 +1100,55 @@ If a slave is very sexually experienced, she can qualify for this bonus without Slaves who have been in slavery long enough that it is effectively their career get a bonus to Devotion. Slaves can forget career experience in an industrialized Dairy, but if they do so and remain sane, they will get a special bonus to both Devotion and Trust. <<case "Anuses">>\ -Slaves' ''anuses'' are a valuable commodity. Like [[Vaginas|Encyclopedia][$encyclopedia to "Vaginas"]], they appear in four degrees of tightness: virgin and three increasing levels of looseness. Tighter anuses improve performance at sexual assignments, but most methods of learning [[Anal skill|Encyclopedia][$encyclopedia to "Anal Skill"]] tend to loosen anuses. Assigning a virgin to sex work will result in a one-time bonus to performance, but may anger her and can result in skipping up one level of looseness. A virgin anus applies a moderate cost multiplier for slave purchase or sale. Anuses can be loosened by events, strenuous sex work, or plug accessories; they can be tightened with rest from strenuous sex work, personal attention, or the autosurgery, though such surgery can reduce [[Anal skill|Encyclopedia][$encyclopedia to "Anal Skill"]]. +Slaves' ''anuses'' are a valuable commodity. Like [[Vaginas|Encyclopedia][$encyclopedia = "Vaginas"]], they appear in four degrees of tightness: virgin and three increasing levels of looseness. Tighter anuses improve performance at sexual assignments, but most methods of learning [[Anal skill|Encyclopedia][$encyclopedia = "Anal Skill"]] tend to loosen anuses. Assigning a virgin to sex work will result in a one-time bonus to performance, but may anger her and can result in skipping up one level of looseness. A virgin anus applies a moderate cost multiplier for slave purchase or sale. Anuses can be loosened by events, strenuous sex work, or plug accessories; they can be tightened with rest from strenuous sex work, personal attention, or the autosurgery, though such surgery can reduce [[Anal skill|Encyclopedia][$encyclopedia = "Anal Skill"]]. <<case "Vaginas">>\ -Slaves' ''vaginas'' are a valuable commodity. Like [[Anuses|Encyclopedia][$encyclopedia to "Anuses"]], they appear in four degrees of tightness: virgin and three increasing levels of looseness. Tighter vaginas improve performance at sexual assignments, but most methods of learning [[Vaginal skill|Encyclopedia][$encyclopedia to "Anal Skill"]] tend to loosen anuses. Assigning a virgin to sex work will result in a one-time bonus to performance but may anger her; alternatively, a chastity belt can be used to preserve virginity during sexual assignments. A virgin vagina applies a large cost multiplier for slave purchase or sale. Vaginas can be loosened by events, strenuous sex work, or plug accessories; they can be tightened with rest from strenuous sex work, personal attention, or the autosurgery, though such surgery can reduce [[Vaginal skill|Encyclopedia][$encyclopedia to "Vaginal Skill"]]. +Slaves' ''vaginas'' are a valuable commodity. Like [[Anuses|Encyclopedia][$encyclopedia = "Anuses"]], they appear in four degrees of tightness: virgin and three increasing levels of looseness. Tighter vaginas improve performance at sexual assignments, but most methods of learning [[Vaginal skill|Encyclopedia][$encyclopedia = "Anal Skill"]] tend to loosen anuses. Assigning a virgin to sex work will result in a one-time bonus to performance but may anger her; alternatively, a chastity belt can be used to preserve virginity during sexual assignments. A virgin vagina applies a large cost multiplier for slave purchase or sale. Vaginas can be loosened by events, strenuous sex work, or plug accessories; they can be tightened with rest from strenuous sex work, personal attention, or the autosurgery, though such surgery can reduce [[Vaginal skill|Encyclopedia][$encyclopedia = "Vaginal Skill"]]. <<case "Penises">>\ -Slaves' ''penises'' are less straightforward than [[Anuses|Encyclopedia][$encyclopedia to "Anuses"]] or [[Vaginas|Encyclopedia][$encyclopedia to "Vaginas"]]. At game start, larger penises reduce slave value, though this can be reduced or even reversed by some future society choices. Slaves will remain capable of erection so long as they retain [[Testicles|Encyclopedia][$encyclopedia to "Testicles"]] and are not on [[Female hormone treatments|Encyclopedia][$encyclopedia to "Hormones (XX)"]]. +Slaves' ''penises'' are less straightforward than [[Anuses|Encyclopedia][$encyclopedia = "Anuses"]] or [[Vaginas|Encyclopedia][$encyclopedia = "Vaginas"]]. At game start, larger penises reduce slave value, though this can be reduced or even reversed by some future society choices. Slaves will remain capable of erection so long as they retain [[Testicles|Encyclopedia][$encyclopedia = "Testicles"]] and are not on [[Female hormone treatments|Encyclopedia][$encyclopedia = "Hormones (XX)"]]. <<case "Testicles">>\ Slaves' ''testicles'' are necessary for erection and provide a small amount of natural XY hormones. At game start, larger testicles reduce slave value, though this can be reduced or even reversed by some future society choices. Orchiectomy, available with extreme content enabled, will stop testicles' hormonal effects, producing a slave with no natural hormones. It also has significant mental effects. <<case "Ovaries">>\ -Slaves' ''ovaries'' are necessary for pregnancy and provide a small amount of natural XX hormones. Oophorectomy, available with extreme content enabled, will render a slave barren and stop ovaries' hormonal effects, producing a slave with no natural hormones. Barren slaves do suffer penalties under some future society choices, but do not require costly contraceptives to avoid pregnancy. Ovaries grant a bonus to [[Lactation|Encyclopedia][$encyclopedia to "Lactation"]]. +Slaves' ''ovaries'' are necessary for pregnancy and provide a small amount of natural XX hormones. Oophorectomy, available with extreme content enabled, will render a slave barren and stop ovaries' hormonal effects, producing a slave with no natural hormones. Barren slaves do suffer penalties under some future society choices, but do not require costly contraceptives to avoid pregnancy. Ovaries grant a bonus to [[Lactation|Encyclopedia][$encyclopedia = "Lactation"]]. \ <<case "Teeth">>\ Slaves' ''teeth'' have a variety of impacts and can be customized in several ways. -//Normal, straight teeth// have a minor positive impact on [[attractiveness|Encyclopedia][$encyclopedia to "Slave Score (Attractiveness)"]]. +//Normal, straight teeth// have a minor positive impact on [[attractiveness|Encyclopedia][$encyclopedia = "Slave Score (Attractiveness)"]]. //Crooked teeth// have a minor negative impact on attractiveness. They can be fixed with braces, applied from the surgery. //Braces// have a negative impact on attractiveness, but less than crooked teeth, and will eventually straighten the slave's teeth. They can be applied to straight teeth or left on after they are no longer useful, if desired. <<if $seeExtreme == 1>>//Removable teeth// can pass as normal teeth and thus have no attractiveness impact, but do alter some sex scenes. -//Pointed teeth// have a minor negative impact on attractiveness, but are intimidating, offering slight improvements to combat effectiveness and performance as a [[Bodyguard|Encyclopedia][$encyclopedia to "Bodyguard"]].<</if>> +//Pointed teeth// have a minor negative impact on attractiveness, but are intimidating, offering slight improvements to combat effectiveness and performance as a [[Bodyguard|Encyclopedia][$encyclopedia = "Bodyguard"]].<</if>> \ <<case "Skin Distinctions">>\ Slaves can have various ''skin distinctions,'' including freckles, heavy freckling, beauty marks, and birthmarks. Beauty marks and birthmarks can be removed in the Salon. -//Freckles// of both densities will slightly improve a slave's [[Attractiveness Score|Encyclopedia][$encyclopedia to "Slave Score (Attractiveness)"]] if she has pale or fair skin, and slightly improve it again if she has red hair. -//Beauty marks,// otherwise known as facial moles, will improve a slave's [[Attractiveness Score|Encyclopedia][$encyclopedia to "Slave Score (Attractiveness)"]] if she has a gorgeous [[Face|Encyclopedia][$encyclopedia to "Faces"]], reduce it if she has an average or worse face, and have no effect if she has a very pretty face. +//Freckles// of both densities will slightly improve a slave's [[Attractiveness Score|Encyclopedia][$encyclopedia = "Slave Score (Attractiveness)"]] if she has pale or fair skin, and slightly improve it again if she has red hair. +//Beauty marks,// otherwise known as facial moles, will improve a slave's [[Attractiveness Score|Encyclopedia][$encyclopedia = "Slave Score (Attractiveness)"]] if she has a gorgeous [[Face|Encyclopedia][$encyclopedia = "Faces"]], reduce it if she has an average or worse face, and have no effect if she has a very pretty face. //Birthmarks// will improve a slave's attractiveness score if she is prestigious, and reduce it if she is not. <<case "Lips">>\ -Slaves' ''lips'' contribute to beauty. At very large sizes, they will alter dialog, though this has no mechanical effect. They can be enlarged with targeted growth hormones or surgery, but such surgery can reduce [[Oral skill|Encyclopedia][$encyclopedia to "Oral Skill"]]. +Slaves' ''lips'' contribute to beauty. At very large sizes, they will alter dialog, though this has no mechanical effect. They can be enlarged with targeted growth hormones or surgery, but such surgery can reduce [[Oral skill|Encyclopedia][$encyclopedia = "Oral Skill"]]. <<case "Nipples">>\ -Slaves' ''nipples'' have varying effects, depending on their shape. Tiny nipples have a negative effect on beauty, puffy and inverted nipples improve it, huge nipples improve it more strongly, and all others have no effect. Inverted and partially inverted nipples can be permanently protruded by nipple piercings or milking: this is uncomfortable, and will reduce [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] unless the slave is a [[Masochist|Encyclopedia][$encyclopedia to "Masochist"]]. Tiny nipples can be enlarged with [[XX hormones|Encyclopedia][$encyclopedia to "Hormones (XX)"]], huge nipples can be reduced with [[XY hormones|Encyclopedia][$encyclopedia to "Hormones (XY)"]], breast growth hormones will grow and may invert nipples, and breast implantation may damage nipples enough to shrink them slightly. +Slaves' ''nipples'' have varying effects, depending on their shape. Tiny nipples have a negative effect on beauty, puffy and inverted nipples improve it, huge nipples improve it more strongly, and all others have no effect. Inverted and partially inverted nipples can be permanently protruded by nipple piercings or milking: this is uncomfortable, and will reduce [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] unless the slave is a [[Masochist|Encyclopedia][$encyclopedia = "Masochist"]]. Tiny nipples can be enlarged with [[XX hormones|Encyclopedia][$encyclopedia = "Hormones (XX)"]], huge nipples can be reduced with [[XY hormones|Encyclopedia][$encyclopedia = "Hormones (XY)"]], breast growth hormones will grow and may invert nipples, and breast implantation may damage nipples enough to shrink them slightly. <<case "Breasts">>\ -Slaves' ''breasts'' contribute to beauty. They can be enlarged with [[XX hormones|Encyclopedia][$encyclopedia to "Hormones (XX)"]], intense [[Lactation|Encyclopedia][$encyclopedia to "Lactation"]], weight gain, or surgery (which [[Boob fetishists|Encyclopedia][$encyclopedia to "Boob Fetishists"]] will be grateful for). +Slaves' ''breasts'' contribute to beauty. They can be enlarged with [[XX hormones|Encyclopedia][$encyclopedia = "Hormones (XX)"]], intense [[Lactation|Encyclopedia][$encyclopedia = "Lactation"]], weight gain, or surgery (which [[Boob fetishists|Encyclopedia][$encyclopedia = "Boob Fetishists"]] will be grateful for). <<case "Weight">>\ -Slaves' ''weight'' contributes to beauty. The middle three values (thin, average and curvy) are all considered equally good; outside that range, penalties are applied. Gaining and losing weight can cause changes to a slave's [[Breast|Encyclopedia][$encyclopedia to "Breasts"]] and [[Butt|Encyclopedia][$encyclopedia to "Butts"]] size, and will be different for [[Anorexics|Encyclopedia][$encyclopedia to "Anorexic"]], [[Gluttons|Encyclopedia][$encyclopedia to "Gluttonous"]], and [[Fitness|Encyclopedia][$encyclopedia to "Fitness"]] fanatics. +Slaves' ''weight'' contributes to beauty. The middle three values (thin, average and curvy) are all considered equally good; outside that range, penalties are applied. Gaining and losing weight can cause changes to a slave's [[Breast|Encyclopedia][$encyclopedia = "Breasts"]] and [[Butt|Encyclopedia][$encyclopedia = "Butts"]] size, and will be different for [[Anorexics|Encyclopedia][$encyclopedia = "Anorexic"]], [[Gluttons|Encyclopedia][$encyclopedia = "Gluttonous"]], and [[Fitness|Encyclopedia][$encyclopedia = "Fitness"]] fanatics. <<case "Lactation">>\ -Slaves can begin to ''lactate'' two ways: naturally due to pregnancy, or artificially, through surgical implantation of a slow-release lactation-inducing drug pellet. Drug-induced lactation is more copious, but may damage [[Health|Encyclopedia][$encyclopedia to "Health"]]. Larger [[Breasts|Encyclopedia][$encyclopedia to "Breasts"]] will produce more milk, but not linearly: diminishing returns apply to bigger tits. Happy and [[Healthy|Encyclopedia][$encyclopedia to "Health"]] cows are also more productive, and slaves with [[Ovaries|Encyclopedia][$encyclopedia to "Ovaries"]] enjoy a bonus to milk production. +Slaves can begin to ''lactate'' two ways: naturally due to pregnancy, or artificially, through surgical implantation of a slow-release lactation-inducing drug pellet. Drug-induced lactation is more copious, but may damage [[Health|Encyclopedia][$encyclopedia = "Health"]]. Larger [[Breasts|Encyclopedia][$encyclopedia = "Breasts"]] will produce more milk, but not linearly: diminishing returns apply to bigger tits. Happy and [[Healthy|Encyclopedia][$encyclopedia = "Health"]] cows are also more productive, and slaves with [[Ovaries|Encyclopedia][$encyclopedia = "Ovaries"]] enjoy a bonus to milk production. <<case "Pregnancy">>\ -Slaves require [[Vaginas|Encyclopedia][$encyclopedia to "Vaginas"]] and [[Ovaries|Encyclopedia][$encyclopedia to "Ovaries"]] to become ''pregnant.'' Fertile slaves can be impregnated by the player character or a slave with [[Testicles|Encyclopedia][$encyclopedia to "Testicles"]] from the fertile slave's individual menu. Otherwise, slaves with vaginas and ovaries who aren't wearing chastity belts or taking contraceptives, and have not had their tubes tied via surgery, will likely become pregnant if performing sexual jobs or if allowed to have sex with slaves with balls. Pregnancy has a number of minor physical effects and will induce [[Lactation|Encyclopedia][$encyclopedia to "Lactation"]]. +Slaves require [[Vaginas|Encyclopedia][$encyclopedia = "Vaginas"]] and [[Ovaries|Encyclopedia][$encyclopedia = "Ovaries"]] to become ''pregnant.'' Fertile slaves can be impregnated by the player character or a slave with [[Testicles|Encyclopedia][$encyclopedia = "Testicles"]] from the fertile slave's individual menu. Otherwise, slaves with vaginas and ovaries who aren't wearing chastity belts or taking contraceptives, and have not had their tubes tied via surgery, will likely become pregnant if performing sexual jobs or if allowed to have sex with slaves with balls. Pregnancy has a number of minor physical effects and will induce [[Lactation|Encyclopedia][$encyclopedia = "Lactation"]]. <<case "Butts">>\ -Slaves' ''butts'' contribute to beauty. They can be enlarged with [[XX hormones|Encyclopedia][$encyclopedia to "Hormones (XX)"]], weight gain, or surgery (which [[Buttsluts|Encyclopedia][$encyclopedia to "Buttsluts"]] will be grateful for). +Slaves' ''butts'' contribute to beauty. They can be enlarged with [[XX hormones|Encyclopedia][$encyclopedia = "Hormones (XX)"]], weight gain, or surgery (which [[Buttsluts|Encyclopedia][$encyclopedia = "Buttsluts"]] will be grateful for). <<case "Faces">>\ -Slaves' ''faces'' contribute heavily to beauty. They occur in six shapes and seven levels of attractiveness, which can be affected by surgery or, if the slave is unattractive or masculine, intensive [[XX hormones|Encyclopedia][$encyclopedia to "Hormones (XX)"]]. Unlike most other attributes, a slave's face cannot be improved more than two steps by surgery. The autosurgery upgrade removes this limitation. +Slaves' ''faces'' contribute heavily to beauty. They occur in six shapes and seven levels of attractiveness, which can be affected by surgery or, if the slave is unattractive or masculine, intensive [[XX hormones|Encyclopedia][$encyclopedia = "Hormones (XX)"]]. Unlike most other attributes, a slave's face cannot be improved more than two steps by surgery. The autosurgery upgrade removes this limitation. __Facial shapes and beauty__ //Normal// faces have no impact on beauty; the slave's face affects beauty based on its attractiveness alone. //Exotic// faces exaggerate the impact of facial attractiveness on beauty: being exotic will make an ugly face worse and a beautiful face better. //Sensual// faces exaggerate the impact of facial attractiveness on beauty, but less than exotic faces do, and also add a small fixed bonus to attractiveness. //Cute// faces add a larger fixed bonus to attractiveness. -//Androgynous// faces are moderately bad for attractiveness: [[Gender Fundamentalism|Encyclopedia][$encyclopedia to "Gender Fundamentalism"]] accentuates this effect, while [[Gender Radicalism|Encyclopedia][$encyclopedia to "Gender Radicalism"]] reduces and at high levels even reverses it. -//Masculine// faces are very negative: [[Gender Fundamentalism|Encyclopedia][$encyclopedia to "Gender Fundamentalism"]] accentuates this effect, while [[Gender Radicalism|Encyclopedia][$encyclopedia to "Gender Radicalism"]] reduces and at high levels can eliminate it. +//Androgynous// faces are moderately bad for attractiveness: [[Gender Fundamentalism|Encyclopedia][$encyclopedia = "Gender Fundamentalism"]] accentuates this effect, while [[Gender Radicalism|Encyclopedia][$encyclopedia = "Gender Radicalism"]] reduces and at high levels even reverses it. +//Masculine// faces are very negative: [[Gender Fundamentalism|Encyclopedia][$encyclopedia = "Gender Fundamentalism"]] accentuates this effect, while [[Gender Radicalism|Encyclopedia][$encyclopedia = "Gender Radicalism"]] reduces and at high levels can eliminate it. <<case "Height">>\ Slaves' ''height'' contributes to beauty and improves combat effectiveness. It is measured in centimeters, though the game handles it in terms of ranges; beyond 190cm, all very tall slaves will be treated almost identically. Height can be affected by surgery, and younger slaves can also see minor hormonal impacts on height. Unlike most other attributes, a slave's height cannot be changed more than one step by surgery. <<case "Ethnicity">>\ @@ -1156,293 +1156,293 @@ Slaves' ''ethnicity'' affects random slave generation; the game produces bodies <<case "Musculature">>\ Slaves' ''musculature'' occurs in four levels, and affects combat effectiveness, beauty, and the effects of breasts. For combat, the penultimate level is best. At game start, musculature is a minor detriment to beauty, though this can be changed through future society choices. Extremely large breasts can begin to hinder slaves, but the first level of musculature will allow them to carry their burdens. <<case "Buttsluts">>\ -''Buttsluts'' fetishize anal sex - mostly on the receiving end, though they'll enjoy other anal play. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, anally focused fucktoy service, service in a Collection Facility upgraded with reciprocating dildos, the dildo drug dispenser upgrade, anal accessories, and being a Painal Queen. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia to "Trust"]], the dildo drug dispenser upgrade, and being a Painal Queen. Buttsluttery will soften the Hates Anal flaw into Painal Queen, the Hates Penetration flaw into Strugglefuck Queen, and the Repressed flaw into Perverted, or remove these flaws if a Quirk is already present. Buttsluts with vaginas enjoy wearing chastity belts, and all buttsluts enjoy buttock enhancement and anal rejuvenation surgeries. Buttsluts do not mind a lack of hormonal feminization. The fetish will increase XY attraction. +''Buttsluts'' fetishize anal sex - mostly on the receiving end, though they'll enjoy other anal play. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, anally focused fucktoy service, service in a Collection Facility upgraded with reciprocating dildos, the dildo drug dispenser upgrade, anal accessories, and being a Painal Queen. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia = "Trust"]], the dildo drug dispenser upgrade, and being a Painal Queen. Buttsluttery will soften the Hates Anal flaw into Painal Queen, the Hates Penetration flaw into Strugglefuck Queen, and the Repressed flaw into Perverted, or remove these flaws if a Quirk is already present. Buttsluts with vaginas enjoy wearing chastity belts, and all buttsluts enjoy buttock enhancement and anal rejuvenation surgeries. Buttsluts do not mind a lack of hormonal feminization. The fetish will increase XY attraction. <<case "Cumsluts">>\ -''Cumsluts'' fetishize oral sex and ejaculate. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, orally focused fucktoy service, the phallic food dispenser upgrade, cum diets, and being a Gagfuck Queen. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia to "Trust"]], the phallic food dispenser upgrade, cum diets, and being a Gagfuck Queen. Cumsluttery will soften the Hates Oral flaw into Gagfuck Queen, the Hates Women flaw into Adores Men, and the Repressed flaw into Perverted, or remove these flaws if a Quirk is already present. Cumsluts enjoy cum diets. The fetish will increase XY attraction. +''Cumsluts'' fetishize oral sex and ejaculate. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, orally focused fucktoy service, the phallic food dispenser upgrade, cum diets, and being a Gagfuck Queen. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia = "Trust"]], the phallic food dispenser upgrade, cum diets, and being a Gagfuck Queen. Cumsluttery will soften the Hates Oral flaw into Gagfuck Queen, the Hates Women flaw into Adores Men, and the Repressed flaw into Perverted, or remove these flaws if a Quirk is already present. Cumsluts enjoy cum diets. The fetish will increase XY attraction. <<case "Submissives">>\ -''Submissives'' fetishize submission. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, unfocused fucktoy service, crawling due to damaged tendons, being Caring, being an Advocate, and being Insecure. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia to "Trust"]], being Caring, being an Advocate, and being Insecure. Submissiveness will soften the Arrogant flaw into Confident, the Apathetic flaw into Caring, and the Idealistic flaw into Romantic, or remove these flaws if a Quirk is already present. The fetish will increase XY attraction. It improves performance at the servant assignment and working in the Servants' Quarters. Attendants do better when Submissive, and can become Submissives naturally. +''Submissives'' fetishize submission. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, unfocused fucktoy service, crawling due to damaged tendons, being Caring, being an Advocate, and being Insecure. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia = "Trust"]], being Caring, being an Advocate, and being Insecure. Submissiveness will soften the Arrogant flaw into Confident, the Apathetic flaw into Caring, and the Idealistic flaw into Romantic, or remove these flaws if a Quirk is already present. The fetish will increase XY attraction. It improves performance at the servant assignment and working in the Servants' Quarters. Attendants do better when Submissive, and can become Submissives naturally. <<case "Doms">>\ -''Doms'' fetishize dominance. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, unfocused fucktoy service, being Confident, and being Cutting. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia to "Trust"]], being Confident, and being Cutting. Dominance will remove the Apathetic flaw if a Quirk is already present. Doms do not mind a lack of hormonal feminization. The fetish will increase XX attraction. Stewardesses and Nurses do better when Dominant; the Head Girl, Madams, Schoolteachers, Stewardesses, and Nurses can become Doms naturally. +''Doms'' fetishize dominance. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, unfocused fucktoy service, being Confident, and being Cutting. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia = "Trust"]], being Confident, and being Cutting. Dominance will remove the Apathetic flaw if a Quirk is already present. Doms do not mind a lack of hormonal feminization. The fetish will increase XX attraction. Stewardesses and Nurses do better when Dominant; the Head Girl, Madams, Schoolteachers, Stewardesses, and Nurses can become Doms naturally. <<case "Masochists">>\ -''Masochists'' fetishize abuse and pain aimed at themselves. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, uncomfortable clothing, being Funny, and being a Strugglefuck Queen. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia to "Trust"]], being Funny, and being a Strugglefuck Queen. Masochism will soften the Liberated flaw into Advocate or remove this flaw if a Quirk is already present. Masochists can be abused without causing deleterious flaws. +''Masochists'' fetishize abuse and pain aimed at themselves. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, uncomfortable clothing, being Funny, and being a Strugglefuck Queen. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia = "Trust"]], being Funny, and being a Strugglefuck Queen. Masochism will soften the Liberated flaw into Advocate or remove this flaw if a Quirk is already present. Masochists can be abused without causing deleterious flaws. <<case "Sadists">>\ -''Sadists'' fetishize abuse and pain aimed at others. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, and relationships. It can be advanced by appropriate smart clit piercing settings, and high [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia to "Trust"]]. Sadists do not mind a lack of hormonal feminization. The fetish will increase XX attraction. Wardenesses do better when Sadistic, and can become Sadists naturally. +''Sadists'' fetishize abuse and pain aimed at others. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, and relationships. It can be advanced by appropriate smart clit piercing settings, and high [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia = "Trust"]]. Sadists do not mind a lack of hormonal feminization. The fetish will increase XX attraction. Wardenesses do better when Sadistic, and can become Sadists naturally. <<case "Humiliation Fetishists">>\ -''Humiliation Fetishists'' like exhibitionism. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, being Sinful, being a Tease, and being Perverted. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia to "Trust"]], being Sinful, being a Tease, and being Perverted. A Humiliation Fetish will soften the Bitchy flaw into Cutting and the Shamefast flaw into Tease, or remove these flaws if a Quirk is already present. The fetish will increase XY attraction. Humiliation Fetishists enjoy nudity, and like revealing clothing at a lower Devotion than other slaves. DJs can become Humiliation Fetishists naturally. +''Humiliation Fetishists'' like exhibitionism. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, being Sinful, being a Tease, and being Perverted. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia = "Trust"]], being Sinful, being a Tease, and being Perverted. A Humiliation Fetish will soften the Bitchy flaw into Cutting and the Shamefast flaw into Tease, or remove these flaws if a Quirk is already present. The fetish will increase XY attraction. Humiliation Fetishists enjoy nudity, and like revealing clothing at a lower Devotion than other slaves. DJs can become Humiliation Fetishists naturally. <<case "Pregnancy Fetishists">>\ -''Pregnancy Fetishists'' like being impregnated, sex with pregnant slaves, and getting others pregnant. (It is not necessary that the slave actually be able to do any of these things; such is life.) The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, having sex while pregnant, Adoring Men, being a Tease, and being Romantic. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia to "Trust"]], Adoring Men, being a Tease, and being Romantic. The fetish will increase XY attraction. Pregnancy Fetishists greatly enjoy all kinds of impregnation, and love or hate fertility surgeries depending on what's being changed. +''Pregnancy Fetishists'' like being impregnated, sex with pregnant slaves, and getting others pregnant. (It is not necessary that the slave actually be able to do any of these things; such is life.) The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, having sex while pregnant, Adoring Men, being a Tease, and being Romantic. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia = "Trust"]], Adoring Men, being a Tease, and being Romantic. The fetish will increase XY attraction. Pregnancy Fetishists greatly enjoy all kinds of impregnation, and love or hate fertility surgeries depending on what's being changed. <<case "Boob Fetishists">>\ -''Boob Fetishists'' like breasts. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, and being milked. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia to "Trust"]], and being milked. The fetish will increase XX attraction. Boob Fetishists enjoy cowbell collars, breast surgery, and being milked. Milkmaids can become Boob Fetishists naturally. +''Boob Fetishists'' like breasts. The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, and being milked. It can be advanced by appropriate smart clit piercing settings, high [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia = "Trust"]], and being milked. The fetish will increase XX attraction. Boob Fetishists enjoy cowbell collars, breast surgery, and being milked. Milkmaids can become Boob Fetishists naturally. <<case "Hormones (XX)">>\ -''XX Hormones'' are female hormones, either from hormone treatments or from [[Ovaries|Encyclopedia][$encyclopedia to "Ovaries"]]. A hidden hormonal score is calculated for each slave: normal XX hormones provide +1, heavy XX hormones provide +2, [[Ovaries|Encyclopedia][$encyclopedia to "Ovaries"]] provide +1, and [[Testicles|Encyclopedia][$encyclopedia to "Testicles"]] provide -1. At a total of +1 with no ovaries present, XY attraction will increase, penises will shrink, testicles will shrink, deep voices will be raised, small breasts and buttocks will grow, ugly faces will soften, huge clits will shrink, and extreme musculature will soften. At +2, all these effects become more likely and more extreme, and [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia to "Trust"]] can both increase. Artificial hormonal effects can be accelerated by installing the second [[upgrade|Encyclopedia][$encyclopedia to "What the Upgrades Do"]] to the kitchen, which will also stop slave's assets from shrinking due to natural hormonal effects. +''XX Hormones'' are female hormones, either from hormone treatments or from [[Ovaries|Encyclopedia][$encyclopedia = "Ovaries"]]. A hidden hormonal score is calculated for each slave: normal XX hormones provide +1, heavy XX hormones provide +2, [[Ovaries|Encyclopedia][$encyclopedia = "Ovaries"]] provide +1, and [[Testicles|Encyclopedia][$encyclopedia = "Testicles"]] provide -1. At a total of +1 with no ovaries present, XY attraction will increase, penises will shrink, testicles will shrink, deep voices will be raised, small breasts and buttocks will grow, ugly faces will soften, huge clits will shrink, and extreme musculature will soften. At +2, all these effects become more likely and more extreme, and [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia = "Trust"]] can both increase. Artificial hormonal effects can be accelerated by installing the second [[upgrade|Encyclopedia][$encyclopedia = "What the Upgrades Do"]] to the kitchen, which will also stop slave's assets from shrinking due to natural hormonal effects. <<case "Hormones (XY)">>\ -''XY Hormones'' are male hormones, either from hormone treatments or from [[Testicles|Encyclopedia][$encyclopedia to "Testicles"]]. A hidden hormonal score is calculated for each slave: normal XY hormones provide -1, heavy XY hormones provide -2, [[Ovaries|Encyclopedia][$encyclopedia to "Ovaries"]] provide +1, and [[Testicles|Encyclopedia][$encyclopedia to "Testicles"]] provide -1. At a total of -1, XY attraction will increase, large breasts and buttocks will shrink, and clits will grow. At +2, all these effects become more likely and more extreme, [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] can decrease, penises and testicles will grow, voices will deepen, and faces will become uglier. Artificial hormonal effects can be accelerated by installing the second [[upgrade|Encyclopedia][$encyclopedia to "What the Upgrades Do"]] to the kitchen, which will also stop slave's assets from shrinking due to natural hormonal effects. +''XY Hormones'' are male hormones, either from hormone treatments or from [[Testicles|Encyclopedia][$encyclopedia = "Testicles"]]. A hidden hormonal score is calculated for each slave: normal XY hormones provide -1, heavy XY hormones provide -2, [[Ovaries|Encyclopedia][$encyclopedia = "Ovaries"]] provide +1, and [[Testicles|Encyclopedia][$encyclopedia = "Testicles"]] provide -1. At a total of -1, XY attraction will increase, large breasts and buttocks will shrink, and clits will grow. At +2, all these effects become more likely and more extreme, [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] can decrease, penises and testicles will grow, voices will deepen, and faces will become uglier. Artificial hormonal effects can be accelerated by installing the second [[upgrade|Encyclopedia][$encyclopedia = "What the Upgrades Do"]] to the kitchen, which will also stop slave's assets from shrinking due to natural hormonal effects. <<case "Head Girl">>\ -A ''Head Girl'' can be selected from among your Devoted slaves immediately. Duties are numerous, but mostly involve training slaves. They will generally train whichever girls they think appropriate, but can be given some direction on the same menu used to select one. Giving your Head Girl a suite and a personal slave will allow her to train an extra slave each week, an extremely powerful ability. [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]], intelligence, and age over 35 all help Head Girls do well. Head Girls will do better if they are comfortable with the arcology's [[lingua franca|Encyclopedia][$encyclopedia to "Lingua Franca"]]. Skills are required when teaching that skill, meaning that slaves without vaginas cannot teach vaginal skills. Conversely, slaves with functional dicks are better at teaching other sexual skills. +A ''Head Girl'' can be selected from among your Devoted slaves immediately. Duties are numerous, but mostly involve training slaves. They will generally train whichever girls they think appropriate, but can be given some direction on the same menu used to select one. Giving your Head Girl a suite and a personal slave will allow her to train an extra slave each week, an extremely powerful ability. [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]], intelligence, and age over 35 all help Head Girls do well. Head Girls will do better if they are comfortable with the arcology's [[lingua franca|Encyclopedia][$encyclopedia = "Lingua Franca"]]. Skills are required when teaching that skill, meaning that slaves without vaginas cannot teach vaginal skills. Conversely, slaves with functional dicks are better at teaching other sexual skills. <<case "Bodyguard">>\ -A ''Bodyguard'' can be selected once the Armory upgrade is purchased. Duties include protection of the player character during violent events; good bodyguards produce some reputation as well, based on how deadly they are. Toned but not excessive muscles, combat skills, and height contribute to deadliness. Big [[Breasts|Encyclopedia][$encyclopedia to "Breasts"]], [[Butts|Encyclopedia][$encyclopedia to "Butts"]], poor [[Health|Encyclopedia][$encyclopedia to "Health"]], excess [[Weight|Encyclopedia][$encyclopedia to "Weight"]], and [[Pregnancy|Encyclopedia][$encyclopedia to "Pregnancy"]] all detract from deadliness. +A ''Bodyguard'' can be selected once the Armory upgrade is purchased. Duties include protection of the player character during violent events; good bodyguards produce some reputation as well, based on how deadly they are. Toned but not excessive muscles, combat skills, and height contribute to deadliness. Big [[Breasts|Encyclopedia][$encyclopedia = "Breasts"]], [[Butts|Encyclopedia][$encyclopedia = "Butts"]], poor [[Health|Encyclopedia][$encyclopedia = "Health"]], excess [[Weight|Encyclopedia][$encyclopedia = "Weight"]], and [[Pregnancy|Encyclopedia][$encyclopedia = "Pregnancy"]] all detract from deadliness. -Skilled, intelligent, and devoted Bodyguards may become concerned that they have no potential successor if you do not keep several other combat capable slaves in your penthouse. Such a Bodyguard will do her best to find responsible and physically capable slaves to teach self defense to when she can. Potential recipients of this training include her lover or wife if she has one, the [[Head Girl|Encyclopedia][$encyclopedia to "Head Girl"]], the [[Wardeness|Encyclopedia][$encyclopedia to "Wardeness"]], and your [[Concubine|Encyclopedia][$encyclopedia to "Concubine"]]. +Skilled, intelligent, and devoted Bodyguards may become concerned that they have no potential successor if you do not keep several other combat capable slaves in your penthouse. Such a Bodyguard will do her best to find responsible and physically capable slaves to teach self defense to when she can. Potential recipients of this training include her lover or wife if she has one, the [[Head Girl|Encyclopedia][$encyclopedia = "Head Girl"]], the [[Wardeness|Encyclopedia][$encyclopedia = "Wardeness"]], and your [[Concubine|Encyclopedia][$encyclopedia = "Concubine"]]. <<case "Recruiter">>\ -A ''Recruiter'' can be selected from among your Devoted slaves immediately. [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]], intelligence, entertainment skills, and luxurious living standards help a Recruiter convince vulnerable people to submit to voluntary enslavement. Each targetable group is also more sympathetic to an appropriate recruiter: +A ''Recruiter'' can be selected from among your Devoted slaves immediately. [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]], intelligence, entertainment skills, and luxurious living standards help a Recruiter convince vulnerable people to submit to voluntary enslavement. Each targetable group is also more sympathetic to an appropriate recruiter: Desperate whores: a sexually veteran recruiter Expectant mothers: a visibly pregnant recruiter - Young migrants: a [[Healthy|Encyclopedia][$encyclopedia to "Health"]] and pretty recruiter + Young migrants: a [[Healthy|Encyclopedia][$encyclopedia = "Health"]] and pretty recruiter Dissolute sissies: a recruiter with a working dick Reassignment candidates: a pretty recruiter without working female reproductive organs -Once your household reaches a significant number of slaves you may direct the Recruiter to do publicity instead of acquisitions, for a boost to reputation and possibly advancing [[future societies|Encyclopedia][$encyclopedia to "Future Societies"]]. Activating this ability does not influence any other means of obtaining new slaves. (Note that "Facilities & leadership" includes the Recruiter herself and a slot for Head Girl, two positions that do not require a facility.) +Once your household reaches a significant number of slaves you may direct the Recruiter to do publicity instead of acquisitions, for a boost to reputation and possibly advancing [[future societies|Encyclopedia][$encyclopedia = "Future Societies"]]. Activating this ability does not influence any other means of obtaining new slaves. (Note that "Facilities & leadership" includes the Recruiter herself and a slot for Head Girl, two positions that do not require a facility.) <<case "Madam">>\ -A ''Madam'' can be selected once the [[Brothel|Encyclopedia][$encyclopedia to "Brothel"]] facility is built. Madams apply a multiplier to income from the brothel. Whoring skills, age over 35, intelligence, and a functional cock help a Madam. +A ''Madam'' can be selected once the [[Brothel|Encyclopedia][$encyclopedia = "Brothel"]] facility is built. Madams apply a multiplier to income from the brothel. Whoring skills, age over 35, intelligence, and a functional cock help a Madam. -If a Madam isn't managing enough whores to occupy her full time, she'll sell herself as much as she has time for. This is exactly the same as [[Whoring|Encyclopedia][$encyclopedia to "Whoring"]] out of the Brothel: she'll benefit from any [[Advertising|Encyclopedia][$encyclopedia to "Advertising"]] or [[Variety|Encyclopedia][$encyclopedia to "Variety"]] bonuses available, and will even benefit from her own management skills. +If a Madam isn't managing enough whores to occupy her full time, she'll sell herself as much as she has time for. This is exactly the same as [[Whoring|Encyclopedia][$encyclopedia = "Whoring"]] out of the Brothel: she'll benefit from any [[Advertising|Encyclopedia][$encyclopedia = "Advertising"]] or [[Variety|Encyclopedia][$encyclopedia = "Variety"]] bonuses available, and will even benefit from her own management skills. <<case "DJ">>\ -A ''DJ'' can be selected once the [[Club|Encyclopedia][$encyclopedia to "Club"]] facility is built. DJs apply a multiplier to reputation gains from serving in the club. Entertainment skills, toned but not massive muscles, intelligence, and a pretty face make a good DJ. +A ''DJ'' can be selected once the [[Club|Encyclopedia][$encyclopedia = "Club"]] facility is built. DJs apply a multiplier to reputation gains from serving in the club. Entertainment skills, toned but not massive muscles, intelligence, and a pretty face make a good DJ. -If a DJ isn't responsible for enough sluts to occupy her full time, she'll spend time fucking citizens herself. This is exactly the same as [[Public Service|Encyclopedia][$encyclopedia to "Public Service"]] out of the Club: she'll benefit from any [[Advertising|Encyclopedia][$encyclopedia to "Advertising"]] or [[Variety|Encyclopedia][$encyclopedia to "Variety"]] bonuses available, and will even benefit from her own leadership skills. +If a DJ isn't responsible for enough sluts to occupy her full time, she'll spend time fucking citizens herself. This is exactly the same as [[Public Service|Encyclopedia][$encyclopedia = "Public Service"]] out of the Club: she'll benefit from any [[Advertising|Encyclopedia][$encyclopedia = "Advertising"]] or [[Variety|Encyclopedia][$encyclopedia = "Variety"]] bonuses available, and will even benefit from her own leadership skills. <<case "Milkmaid">>\ -A ''Milkmaid'' can be selected once the [[Dairy|Encyclopedia][$encyclopedia to "Dairy"]] facility is built. Having applicable career experience and strong muscles allow a Milkmaid to help cows maintain their health. If a Milkmaid is Funny or Caring, she can improve cow's Trust resting point; if she has oral skills, she can improve their Devotion resting point.<<if $seeDicks != 0>> If she has a very large penis capable of erection, a Milkmaid can assist cows with ejaculation if the Dairy is not already stimulating prostates.<</if>> +A ''Milkmaid'' can be selected once the [[Dairy|Encyclopedia][$encyclopedia = "Dairy"]] facility is built. Having applicable career experience and strong muscles allow a Milkmaid to help cows maintain their health. If a Milkmaid is Funny or Caring, she can improve cow's Trust resting point; if she has oral skills, she can improve their Devotion resting point.<<if $seeDicks != 0>> If she has a very large penis capable of erection, a Milkmaid can assist cows with ejaculation if the Dairy is not already stimulating prostates.<</if>> <<case "Schoolteacher">>\ -A ''Schoolteacher'' can be selected once the [[Schoolroom|Encyclopedia][$encyclopedia to "Schoolroom"]] facility is built. Schoolteachers increase the rate at which students in the schoolroom learn. Good Schoolteachers are older than 35, beautiful, intelligent, and educated. +A ''Schoolteacher'' can be selected once the [[Schoolroom|Encyclopedia][$encyclopedia = "Schoolroom"]] facility is built. Schoolteachers increase the rate at which students in the schoolroom learn. Good Schoolteachers are older than 35, beautiful, intelligent, and educated. <<case "Concubine">>\ -A ''Concubine'' can be selected once the [[Master Suite|Encyclopedia][$encyclopedia to "Master Suite"]] facility is built. Concubines benefit from high beauty and sexual skills in the same way as public servants; they should also be extremely devoted. Concubines do not apply any bonuses to other slaves in the master suite; rather, they enjoy the game's single most efficient production of reputation themselves. +A ''Concubine'' can be selected once the [[Master Suite|Encyclopedia][$encyclopedia = "Master Suite"]] facility is built. Concubines benefit from high beauty and sexual skills in the same way as public servants; they should also be extremely devoted. Concubines do not apply any bonuses to other slaves in the master suite; rather, they enjoy the game's single most efficient production of reputation themselves. <<case "Attendant">>\ -An ''Attendant'' can be selected once the [[Spa|Encyclopedia][$encyclopedia to "Spa"]] facility is built. Attendants provide emotional help to slaves in the spa, and can also soften flaws and even fix mindbroken slaves. Good Attendants are free of fetishes or submissive, older than 35, intelligent, and naturally female. +An ''Attendant'' can be selected once the [[Spa|Encyclopedia][$encyclopedia = "Spa"]] facility is built. Attendants provide emotional help to slaves in the spa, and can also soften flaws and even fix mindbroken slaves. Good Attendants are free of fetishes or submissive, older than 35, intelligent, and naturally female. <<case "Nurse">>\ -An ''Nurse'' can be selected once the [[Clinic|Encyclopedia][$encyclopedia to "Clinic"]] facility is built. Nurses increase [[Health|Encyclopedia][$encyclopedia to "Health"]] gains in the Clinic. Good Nurses are dominant, highly intelligent, physically fit, and very beautiful. +An ''Nurse'' can be selected once the [[Clinic|Encyclopedia][$encyclopedia = "Clinic"]] facility is built. Nurses increase [[Health|Encyclopedia][$encyclopedia = "Health"]] gains in the Clinic. Good Nurses are dominant, highly intelligent, physically fit, and very beautiful. <<case "Stewardess">>\ -A ''Stewardess'' can be selected once the [[Servants' Quarters|Encyclopedia][$encyclopedia to "Servants' Quarters"]] facility is built. Stewardesses increase the upkeep reduction effects of servants working out of the servants' quarters. Being older than 35, having good [[Health|Encyclopedia][$encyclopedia to "Health"]], intelligence, and nymphomania or dominance make a good Stewardess. +A ''Stewardess'' can be selected once the [[Servants' Quarters|Encyclopedia][$encyclopedia = "Servants' Quarters"]] facility is built. Stewardesses increase the upkeep reduction effects of servants working out of the servants' quarters. Being older than 35, having good [[Health|Encyclopedia][$encyclopedia = "Health"]], intelligence, and nymphomania or dominance make a good Stewardess. <<case "Wardeness">>\ -A ''Wardeness'' can be selected once the [[Cellblock|Encyclopedia][$encyclopedia to "Cellblock"]] facility is built. Wardenesses increase the rate at which slaves in the cellblock are broken. Very high [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]], nymphomania or sadism, strong muscles, and a solid dick make a powerful Wardeness. +A ''Wardeness'' can be selected once the [[Cellblock|Encyclopedia][$encyclopedia = "Cellblock"]] facility is built. Wardenesses increase the rate at which slaves in the cellblock are broken. Very high [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]], nymphomania or sadism, strong muscles, and a solid dick make a powerful Wardeness. <<case "Rest">>\ -''Rest'' is an assignment mostly used to improve [[Health|Encyclopedia][$encyclopedia to "Health"]]. It can be useful to order slaves you wish to intensively modify to rest, since most modifications damage health. It will synergize with curative treatments, providing bonus healing when both are simultaneously applied. //Associated facilities: [[Spa|Encyclopedia][$encyclopedia to "Spa"]], [[Clinic|Encyclopedia][$encyclopedia to "Clinic"]]// +''Rest'' is an assignment mostly used to improve [[Health|Encyclopedia][$encyclopedia = "Health"]]. It can be useful to order slaves you wish to intensively modify to rest, since most modifications damage health. It will synergize with curative treatments, providing bonus healing when both are simultaneously applied. //Associated facilities: [[Spa|Encyclopedia][$encyclopedia = "Spa"]], [[Clinic|Encyclopedia][$encyclopedia = "Clinic"]]// <<case "Confinement">>\ -''Confinement'' is an assignment which accelerates breaking for disobedient slaves. If a slave isn't obedient enough to work and isn't [[Unhealthy|Encyclopedia][$encyclopedia to "Health"]] enough to need rest, this will make her useful sooner. //Associated facility: [[Cellblock|Encyclopedia][$encyclopedia to "Cellblock"]]// +''Confinement'' is an assignment which accelerates breaking for disobedient slaves. If a slave isn't obedient enough to work and isn't [[Unhealthy|Encyclopedia][$encyclopedia = "Health"]] enough to need rest, this will make her useful sooner. //Associated facility: [[Cellblock|Encyclopedia][$encyclopedia = "Cellblock"]]// <<case "Fucktoy">>\ -''Fucktoy service'' is an assignment which keeps the slave close under the player's eye; mostly just for fun, but fucktoys do improve reputation based on their beauty, and the player character's attention can be targeted to areas of the slave's body with possible fetish effects on happy slaves. //Associated facility: [[Master Suite|Encyclopedia][$encyclopedia to "Master Suite"]]// +''Fucktoy service'' is an assignment which keeps the slave close under the player's eye; mostly just for fun, but fucktoys do improve reputation based on their beauty, and the player character's attention can be targeted to areas of the slave's body with possible fetish effects on happy slaves. //Associated facility: [[Master Suite|Encyclopedia][$encyclopedia = "Master Suite"]]// <<case "Whoring">>\ -''Whoring'' is an assignment which makes money based on a slave's beauty, sexual appeal, and skills. Good whores take a long time to train and beautify but become very profitable. //Associated facility: [[Brothel|Encyclopedia][$encyclopedia to "Brothel"]]// +''Whoring'' is an assignment which makes money based on a slave's beauty, sexual appeal, and skills. Good whores take a long time to train and beautify but become very profitable. //Associated facility: [[Brothel|Encyclopedia][$encyclopedia = "Brothel"]]// <<case "Public Service">>\ -''Public Service'' is an assignment which increases reputation based on a slave's beauty, sexual appeal, and skills. Very similar to whoring, but for reputation rather than money. //Associated facility: [[Club|Encyclopedia][$encyclopedia to "Club"]]// +''Public Service'' is an assignment which increases reputation based on a slave's beauty, sexual appeal, and skills. Very similar to whoring, but for reputation rather than money. //Associated facility: [[Club|Encyclopedia][$encyclopedia = "Club"]]// <<case "Milking">>\ -''Getting milked'' is an assignment which makes money from lactation based on a slave's breasts, [[Health|Encyclopedia][$encyclopedia to "Health"]], and hormonal status.<<if $seeDicks > 0>> Cows with balls will also give semen.<</if>> Creates profit quickly from slaves with big tits<<if $seeDicks > 0>> or balls<</if>>. //Associated facility: [[Dairy|Encyclopedia][$encyclopedia to "Dairy"]]// +''Getting milked'' is an assignment which makes money from lactation based on a slave's breasts, [[Health|Encyclopedia][$encyclopedia = "Health"]], and hormonal status.<<if $seeDicks > 0>> Cows with balls will also give semen.<</if>> Creates profit quickly from slaves with big tits<<if $seeDicks > 0>> or balls<</if>>. //Associated facility: [[Dairy|Encyclopedia][$encyclopedia = "Dairy"]]// <<case "Cockmilking">>\ -''Getting cockmilked'' is an assignment which makes money from semen based on a slave's equipment and virility. Not very profitable, but the associated facility unlocks advantageous choices during some events. //Associated facility: [[Collection Facility|Encyclopedia][$encyclopedia to "Collection Facility"]]// +''Getting cockmilked'' is an assignment which makes money from semen based on a slave's equipment and virility. Not very profitable, but the associated facility unlocks advantageous choices during some events. //Associated facility: [[Collection Facility|Encyclopedia][$encyclopedia = "Collection Facility"]]// <<case "Servitude">>\ -''Servitude'' is an assignment which reduces your upkeep based on the slave's [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]]. Available at lower obedience than other jobs, is insensitive to the quality of a slave's body, and doesn't require skills; a good transitional assignment. Unusually, low sex drive is advantageous as a servant, since it reduces distraction. Lactating slaves are slightly better at this job, since they can contribute to their fellow slaves' nutrition. //Associated facility: [[Servants' Quarters|Encyclopedia][$encyclopedia to "Servants' Quarters"]]// +''Servitude'' is an assignment which reduces your upkeep based on the slave's [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]]. Available at lower obedience than other jobs, is insensitive to the quality of a slave's body, and doesn't require skills; a good transitional assignment. Unusually, low sex drive is advantageous as a servant, since it reduces distraction. Lactating slaves are slightly better at this job, since they can contribute to their fellow slaves' nutrition. //Associated facility: [[Servants' Quarters|Encyclopedia][$encyclopedia = "Servants' Quarters"]]// <<case "Sexual Servitude">>\ -''Sexual servitude'' is an assignment which pleases other slaves by forcing the slave to service them sexually. Useful for driving the targeted slave's [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] up quickly. +''Sexual servitude'' is an assignment which pleases other slaves by forcing the slave to service them sexually. Useful for driving the targeted slave's [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] up quickly. <<case "Attending Classes">>\ -''Attending classes'' is an assignment which educates the slave, raising intelligence if possible. Being educated raises value and is useful for some jobs and leadership positions. //Associated facility: [[Schoolroom|Encyclopedia][$encyclopedia to "Schoolroom"]]// +''Attending classes'' is an assignment which educates the slave, raising intelligence if possible. Being educated raises value and is useful for some jobs and leadership positions. //Associated facility: [[Schoolroom|Encyclopedia][$encyclopedia = "Schoolroom"]]// <<case "Glory Hole">>\ -''Occupying a glory hole'' is an assignment which makes money off slaves regardless of their beauty, skills, or feelings; not fun or [[Healthy|Encyclopedia][$encyclopedia to "Health"]]. Very powerful for extracting ¤ out of otherwise useless slaves. //Associated facility: [[Arcade|Encyclopedia][$encyclopedia to "Arcade"]]// +''Occupying a glory hole'' is an assignment which makes money off slaves regardless of their beauty, skills, or feelings; not fun or [[Healthy|Encyclopedia][$encyclopedia = "Health"]]. Very powerful for extracting ¤ out of otherwise useless slaves. //Associated facility: [[Arcade|Encyclopedia][$encyclopedia = "Arcade"]]// <<case "Brothel">>\ -The ''Brothel'' is the //[[Whoring|Encyclopedia][$encyclopedia to "Whoring"]] facility.// Slaves will make money based on beauty and skills. Brothels can be the subject of an [[ad campaign|Encyclopedia][$encyclopedia to "Advertising"]]. Brothels can be furnished according to [[future society|Encyclopedia][$encyclopedia to "Future Societies"]] styles, and doing so will add a tiny amount of future society progress for each customer who visits. +The ''Brothel'' is the //[[Whoring|Encyclopedia][$encyclopedia = "Whoring"]] facility.// Slaves will make money based on beauty and skills. Brothels can be the subject of an [[ad campaign|Encyclopedia][$encyclopedia = "Advertising"]]. Brothels can be furnished according to [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] styles, and doing so will add a tiny amount of future society progress for each customer who visits. <<case "Club">>\ -The ''Club'' is the //[[Public Service|Encyclopedia][$encyclopedia to "Public Service"]] facility.// Slaves will generate reputation based on beauty and skills. Clubs can be the subject of an [[ad campaign|Encyclopedia][$encyclopedia to "Advertising"]]. Clubs can be furnished according to [[future society|Encyclopedia][$encyclopedia to "Future Societies"]] styles, and doing so will add a tiny amount of future society progress for each citizen who visits. +The ''Club'' is the //[[Public Service|Encyclopedia][$encyclopedia = "Public Service"]] facility.// Slaves will generate reputation based on beauty and skills. Clubs can be the subject of an [[ad campaign|Encyclopedia][$encyclopedia = "Advertising"]]. Clubs can be furnished according to [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] styles, and doing so will add a tiny amount of future society progress for each citizen who visits. <<case "Advertising">>\ -''Ad campaigns'' can be run for both the [[Brothel|Encyclopedia][$encyclopedia to "Brothel"]] and the [[Club|Encyclopedia][$encyclopedia to "Club"]]. Naturally, these advertisements will feature lots of naked girls, providing the opportunity to give either facility a cachet for offering a specific kind of girl. Under the default, nonspecific settings, all slaves in the facilities will receive minor bonuses to performance. If specific body types are advertised, slaves that match the advertisements will receive an enhanced bonus, while slaves that do not will get a small penalty. However, instituting a specific ad campaign will prevent slaves in that facility from getting [[Variety|Encyclopedia][$encyclopedia to "Variety"]] bonuses. +''Ad campaigns'' can be run for both the [[Brothel|Encyclopedia][$encyclopedia = "Brothel"]] and the [[Club|Encyclopedia][$encyclopedia = "Club"]]. Naturally, these advertisements will feature lots of naked girls, providing the opportunity to give either facility a cachet for offering a specific kind of girl. Under the default, nonspecific settings, all slaves in the facilities will receive minor bonuses to performance. If specific body types are advertised, slaves that match the advertisements will receive an enhanced bonus, while slaves that do not will get a small penalty. However, instituting a specific ad campaign will prevent slaves in that facility from getting [[Variety|Encyclopedia][$encyclopedia = "Variety"]] bonuses. <<case "Variety">>\ -''Variety'' bonuses are available for slaves in the [[Brothel|Encyclopedia][$encyclopedia to "Brothel"]] and the [[Club|Encyclopedia][$encyclopedia to "Club"]]. Offering a variety of slaves will provide a small bonus to performance for everyone in the facility, regardless of which qualities they possess: +''Variety'' bonuses are available for slaves in the [[Brothel|Encyclopedia][$encyclopedia = "Brothel"]] and the [[Club|Encyclopedia][$encyclopedia = "Club"]]. Offering a variety of slaves will provide a small bonus to performance for everyone in the facility, regardless of which qualities they possess: - Slim vs. Stacked - Modded (heavily pierced and tattooed) vs. Unmodded - Natural Assets vs. Implants - Young vs. Old\ <<if $seeDicks != 0>><br>- Pussies and Dicks<</if>> -Variety bonuses, if any, will be called out in the facility report at the end of the week. [[Advertising|Encyclopedia][$encyclopedia to "Advertising"]] that the facility specializes in any of these areas will supersede variety bonuses for the related qualities. Staffing a facility to appeal to all tastes can be more challenging than building a homogenous stable and advertising it, but is both powerful and free. +Variety bonuses, if any, will be called out in the facility report at the end of the week. [[Advertising|Encyclopedia][$encyclopedia = "Advertising"]] that the facility specializes in any of these areas will supersede variety bonuses for the related qualities. Staffing a facility to appeal to all tastes can be more challenging than building a homogenous stable and advertising it, but is both powerful and free. <<case "Master Suite">>\ -The ''Master Suite'' is the //[[Fucktoy|Encyclopedia][$encyclopedia to "Fucktoy"]] facility.// Slaves will generate reputation, but at a lower efficiency than on the club. The Suite can be furnished according to [[future society|Encyclopedia][$encyclopedia to "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia to "Devotion"]] boost to slaves serving there. +The ''Master Suite'' is the //[[Fucktoy|Encyclopedia][$encyclopedia = "Fucktoy"]] facility.// Slaves will generate reputation, but at a lower efficiency than on the club. The Suite can be furnished according to [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia = "Devotion"]] boost to slaves serving there. <<case "Arcade">>\ -The ''Arcade'' is the //[[Glory hole|Encyclopedia][$encyclopedia to "Glory Hole"]] facility.// Extracts money from slaves; has extremely deleterious mental and physical effects. Arcades can be furnished according to [[future society|Encyclopedia][$encyclopedia to "Future Societies"]] styles, and doing so will add a tiny amount of future society progress for each customer who visits. +The ''Arcade'' is the //[[Glory hole|Encyclopedia][$encyclopedia = "Glory Hole"]] facility.// Extracts money from slaves; has extremely deleterious mental and physical effects. Arcades can be furnished according to [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] styles, and doing so will add a tiny amount of future society progress for each customer who visits. <<case "Servants' Quarters">>\ -The ''Servants' Quarters' is the //[[Servitude|Encyclopedia][$encyclopedia to "Servitude"]] facility.// Reduces weekly upkeep according to servants' obedience. Accepts most slaves and is insensitive to beauty and skills. The Quarters can be furnished according to [[future society|Encyclopedia][$encyclopedia to "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia to "Devotion"]] boost to slaves serving there. +The ''Servants' Quarters' is the //[[Servitude|Encyclopedia][$encyclopedia = "Servitude"]] facility.// Reduces weekly upkeep according to servants' obedience. Accepts most slaves and is insensitive to beauty and skills. The Quarters can be furnished according to [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia = "Devotion"]] boost to slaves serving there. <<case "Dairy">>\ -The ''Dairy'' is the //[[Milking|Encyclopedia][$encyclopedia to "Milking"]] facility.// Only lactating<<if $seeDicks > 0>> or semen producing<</if>> slaves can be assigned; will use drugs to increase natural breast size<<if $seeDicks > 0>> and ball size, if present<</if>>. All Dairy upgrades have three settings, once installed: Inactive, Active, and Industrial. Inactive and Active are self-explanatory. Industrial settings require that the restraint upgrade be installed and maximized, and that extreme content be enabled. They massively improve production, but will produce severe mental and physical damage. Younger slaves will be able to survive more intense industrial output, but drug side effects will eventually force an increasingly large fraction of drug focus towards curing the slave's ills, reducing production. Dairies can be furnished according to [[future society|Encyclopedia][$encyclopedia to "Future Societies"]] styles, and doing so will add a tiny amount of future society progress for each unit of fluid produced. +The ''Dairy'' is the //[[Milking|Encyclopedia][$encyclopedia = "Milking"]] facility.// Only lactating<<if $seeDicks > 0>> or semen producing<</if>> slaves can be assigned; will use drugs to increase natural breast size<<if $seeDicks > 0>> and ball size, if present<</if>>. All Dairy upgrades have three settings, once installed: Inactive, Active, and Industrial. Inactive and Active are self-explanatory. Industrial settings require that the restraint upgrade be installed and maximized, and that extreme content be enabled. They massively improve production, but will produce severe mental and physical damage. Younger slaves will be able to survive more intense industrial output, but drug side effects will eventually force an increasingly large fraction of drug focus towards curing the slave's ills, reducing production. Dairies can be furnished according to [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] styles, and doing so will add a tiny amount of future society progress for each unit of fluid produced. <<case "Schoolroom">>\ -The ''Schoolroom'' is the //[[Learning|Encyclopedia][$encyclopedia to "Attending Classes"]] facility.// Will educate slaves and return them to the main menu after they are educated. The Schoolroom can be furnished according to [[future society|Encyclopedia][$encyclopedia to "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia to "Devotion"]] boost to slaves studying there. +The ''Schoolroom'' is the //[[Learning|Encyclopedia][$encyclopedia = "Attending Classes"]] facility.// Will educate slaves and return them to the main menu after they are educated. The Schoolroom can be furnished according to [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia = "Devotion"]] boost to slaves studying there. <<case "Spa">>\ -The ''Spa'' is one of two //[[Rest|Encyclopedia][$encyclopedia to "Rest"]] facilities;// it focuses on slaves' mental well-being. The Spa will heal, rest, and reassure slaves until they are at least reasonably [[Healthy|Encyclopedia][$encyclopedia to "Health"]], happy, and free of [[Flaws|Encyclopedia][$encyclopedia to "Flaws"]]. The Spa can be furnished according to [[future society|Encyclopedia][$encyclopedia to "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia to "Devotion"]] boost to slaves resting there. +The ''Spa'' is one of two //[[Rest|Encyclopedia][$encyclopedia = "Rest"]] facilities;// it focuses on slaves' mental well-being. The Spa will heal, rest, and reassure slaves until they are at least reasonably [[Healthy|Encyclopedia][$encyclopedia = "Health"]], happy, and free of [[Flaws|Encyclopedia][$encyclopedia = "Flaws"]]. The Spa can be furnished according to [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia = "Devotion"]] boost to slaves resting there. <<case "Clinic">>\ -The ''Clinic'' is one of two //[[Rest|Encyclopedia][$encyclopedia to "Rest"]] facilities;// it focuses on slaves' health. The Clinic will treat slaves until they are [[Healthy|Encyclopedia][$encyclopedia to "Health"]]. The Clinic can be furnished according to [[future society|Encyclopedia][$encyclopedia to "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia to "Devotion"]] boost to slaves getting treatment there. +The ''Clinic'' is one of two //[[Rest|Encyclopedia][$encyclopedia = "Rest"]] facilities;// it focuses on slaves' health. The Clinic will treat slaves until they are [[Healthy|Encyclopedia][$encyclopedia = "Health"]]. The Clinic can be furnished according to [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia = "Devotion"]] boost to slaves getting treatment there. <<case "Cellblock">>\ -The ''Cellblock'' is the //[[Confinement|Encyclopedia][$encyclopedia to "Confinement"]] facility.// Will break slaves and return them to the main menu after they are obedient. The Cellblock can be furnished according to [[future society|Encyclopedia][$encyclopedia to "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia to "Devotion"]] boost to slaves incarcerated there. +The ''Cellblock'' is the //[[Confinement|Encyclopedia][$encyclopedia = "Confinement"]] facility.// Will break slaves and return them to the main menu after they are obedient. The Cellblock can be furnished according to [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] styles, and doing so will add a slight [[devotion|Encyclopedia][$encyclopedia = "Devotion"]] boost to slaves incarcerated there. <<case "Head Girl Suite">>\ The ''Head Girl Suite'' is a //unique facility.// Only a single slave can be assigned, and this slave will be subject to the Head Girl's decisions rather than the player's. <<case "Pit">>\ The ''Pit'' is a //unique facility.// Unique in that slaves can perform standard duties in addition to being scheduled for fights in this facility. \ <<case "Health">>\ -Slaves' ''health'' is extremely important. It can be reduced by tough assignments like [[Whoring|Encyclopedia][$encyclopedia to "Whoring"]] and [[Public Service|Encyclopedia][$encyclopedia to "Public Service"]], surgery, many powerful drug regimes, abuse, and even age. The [[Rest|Encyclopedia][$encyclopedia to "Rest"]] assignment will increase health; curative drugs will increase it, while preventative drugs can stop assignment-related health losses. Curatives and rest will synergize and add additional health if applied simultaneously. At very low health, many injuries will affect a slave's health more severely, creating a vicious circle: resting slaves until their health indicator is no longer @@color:red;red@@ is good practice. Conversely, at high health, some health losses will be less common or not occur at all, and extremely healthy slaves will do slightly better at most assignments. +Slaves' ''health'' is extremely important. It can be reduced by tough assignments like [[Whoring|Encyclopedia][$encyclopedia = "Whoring"]] and [[Public Service|Encyclopedia][$encyclopedia = "Public Service"]], surgery, many powerful drug regimes, abuse, and even age. The [[Rest|Encyclopedia][$encyclopedia = "Rest"]] assignment will increase health; curative drugs will increase it, while preventative drugs can stop assignment-related health losses. Curatives and rest will synergize and add additional health if applied simultaneously. At very low health, many injuries will affect a slave's health more severely, creating a vicious circle: resting slaves until their health indicator is no longer @@color:red;red@@ is good practice. Conversely, at high health, some health losses will be less common or not occur at all, and extremely healthy slaves will do slightly better at most assignments. \ <<case "Devotion">>\ -''Devotion'' is a measure of a slave's liking for the player character, and secondarily, how accepting she is of her place in life. (Low Devotion is also referred to as hatred.) Along with [[Trust|Encyclopedia][$encyclopedia to "Trust"]], it is the main measure of a slave's mental state. A highly devoted slave will always obey and will do her best on assignments. With low Devotion, obedience depends on Trust: if Trust is high, the slave will generally resist and do badly, but if Trust is low enough the slave will obey out of fear. Almost everything in the game can effect Devotion in some way: @@color:mediumorchid;orchid text@@ indicates a Devotion loss, while @@color:hotpink;hot pink@@ text indicates a Devotion gain. Maximized or minimized Devotion is somewhat sticky: lightly abusing a perfectly devoted slave will not damage Devotion, while minor kindnesses will not affect a hateful slave. If a slave is very trusting, extremely high Devotion will boost Trust weekly (extremely low Devotion will do the reverse), and any Devotion gains that push it over its maximum value will overflow into Trust. However, if a slave is very frightened, high Devotion will not impact Trust. If both Trust and Devotion are maximized, the slave's sex drive will be increased. If she's already a nympho, Reputation is increased instead. +''Devotion'' is a measure of a slave's liking for the player character, and secondarily, how accepting she is of her place in life. (Low Devotion is also referred to as hatred.) Along with [[Trust|Encyclopedia][$encyclopedia = "Trust"]], it is the main measure of a slave's mental state. A highly devoted slave will always obey and will do her best on assignments. With low Devotion, obedience depends on Trust: if Trust is high, the slave will generally resist and do badly, but if Trust is low enough the slave will obey out of fear. Almost everything in the game can effect Devotion in some way: @@color:mediumorchid;orchid text@@ indicates a Devotion loss, while @@color:hotpink;hot pink@@ text indicates a Devotion gain. Maximized or minimized Devotion is somewhat sticky: lightly abusing a perfectly devoted slave will not damage Devotion, while minor kindnesses will not affect a hateful slave. If a slave is very trusting, extremely high Devotion will boost Trust weekly (extremely low Devotion will do the reverse), and any Devotion gains that push it over its maximum value will overflow into Trust. However, if a slave is very frightened, high Devotion will not impact Trust. If both Trust and Devotion are maximized, the slave's sex drive will be increased. If she's already a nympho, Reputation is increased instead. \ <<case "Trust">>\ -''Trust'' is a measure of a slave's expectations of the player character, and secondarily, how confident she is of her ability to do well. (Low Trust is also referred to as fear.) Along with [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]], it is the main measure of a slave's mental state. A highly trusting slave is often more expensive to keep, but will do better in a leadership position and is more valuable. Slaves who are not intended for special assignments or resale can usually be kept terrified. Trust is negative if a slave is not sufficiently devoted: in this case, she will not obey since she neither likes nor fears the player character. Many game mechanics can effect Trust in some way: @@color:mediumaquamarine;aquamarine text@@ text indicates a Trust gain, while @@color:gold;gold@@ indicates a Trust loss. Maximized or minimized Trust is somewhat sticky: lightly abusing a perfectly trusting slave will not damage Trust, while minor confidence boosts will not affect an abjectly terrified slave. Extremely high Trust will boost Devotion weekly, and any Trust gains that push it over its maximum value will overflow into Devotion. If both are maximized, the slave's sex drive is increased. If she's already a nympho, Reputation is increased instead. +''Trust'' is a measure of a slave's expectations of the player character, and secondarily, how confident she is of her ability to do well. (Low Trust is also referred to as fear.) Along with [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]], it is the main measure of a slave's mental state. A highly trusting slave is often more expensive to keep, but will do better in a leadership position and is more valuable. Slaves who are not intended for special assignments or resale can usually be kept terrified. Trust is negative if a slave is not sufficiently devoted: in this case, she will not obey since she neither likes nor fears the player character. Many game mechanics can effect Trust in some way: @@color:mediumaquamarine;aquamarine text@@ text indicates a Trust gain, while @@color:gold;gold@@ indicates a Trust loss. Maximized or minimized Trust is somewhat sticky: lightly abusing a perfectly trusting slave will not damage Trust, while minor confidence boosts will not affect an abjectly terrified slave. Extremely high Trust will boost Devotion weekly, and any Trust gains that push it over its maximum value will overflow into Devotion. If both are maximized, the slave's sex drive is increased. If she's already a nympho, Reputation is increased instead. \ <<case "Relationships">>\ Slaves can develop many different ''relationships'' as they become accustomed to their lives, which offer many benefits and some downsides. It is possible for the player to push slaves towards one kind of relationship or another, but slaves' feelings are less susceptible to complete control than their bodies. All relationships in Free Cities are one-to-one, which is a limitation imposed by Twine. \ <<case "Rivalries">>\ -''Rivalries'' tend to arise naturally between slaves on the same assignment. Slaves may enjoy rivals' misfortunes, but bickering on the job between rivals will impede performance if the rivals remain on the same assignment. Rivals will also dislike working with each other. Rivalries may be defused naturally with time apart, or suppressed by rules. Rivalries impede the formation of [[Romances|Encyclopedia][$encyclopedia to "Romances"]], but a Romance can defuse a Rivalry. +''Rivalries'' tend to arise naturally between slaves on the same assignment. Slaves may enjoy rivals' misfortunes, but bickering on the job between rivals will impede performance if the rivals remain on the same assignment. Rivals will also dislike working with each other. Rivalries may be defused naturally with time apart, or suppressed by rules. Rivalries impede the formation of [[Romances|Encyclopedia][$encyclopedia = "Romances"]], but a Romance can defuse a Rivalry. \ <<case "Romances">>\ -''Romances'' tend to arise naturally between slaves on the same assignment, and between slaves having a lot of sex with each other. Slaves will be saddened by their romantic partners' misfortunes, but will do better on public sexual assignments if assigned to work at the same job as a romantic partner. Slaves will also derive various mental effects from being in a relationship: they can rely on each other, take solace in each others' company, and even learn fetishes from each other. Romances can be suppressed by the rules, or fall apart naturally. On the other hand, Romances can develop from friendships, to best friendships, to friendships with benefits, to loving relationships. Romances impede the formation of [[Rivalries|Encyclopedia][$encyclopedia to "Rivalries"]], and can defuse Rivalries. Once a Romance has advanced to where the slaves are lovers, its members are eligible for several events in which the couple can be [[married|Encyclopedia][$encyclopedia to "Slave Marriages"]]. +''Romances'' tend to arise naturally between slaves on the same assignment, and between slaves having a lot of sex with each other. Slaves will be saddened by their romantic partners' misfortunes, but will do better on public sexual assignments if assigned to work at the same job as a romantic partner. Slaves will also derive various mental effects from being in a relationship: they can rely on each other, take solace in each others' company, and even learn fetishes from each other. Romances can be suppressed by the rules, or fall apart naturally. On the other hand, Romances can develop from friendships, to best friendships, to friendships with benefits, to loving relationships. Romances impede the formation of [[Rivalries|Encyclopedia][$encyclopedia = "Rivalries"]], and can defuse Rivalries. Once a Romance has advanced to where the slaves are lovers, its members are eligible for several events in which the couple can be [[married|Encyclopedia][$encyclopedia = "Slave Marriages"]]. \ <<case "Slave Marriages">>\ -''Slave Marriages'' take place between two slaves. Several random events provide the opportunity to marry slave lovers. Slave Marriages function as an end state for slave [[Romances|Encyclopedia][$encyclopedia to "Romances"]]; slave wives receive the best relationship bonuses, and can generally be depended upon to help each other be good slaves in various ways. The alternative end states for slaves' emotional attachments are the [[Emotional Slut|Encyclopedia][$encyclopedia to "Emotional Slut"]] and [[Emotionally Bonded|Encyclopedia][$encyclopedia to "Emotionally Bonded"]] statuses, both of which are for a single slave alone. +''Slave Marriages'' take place between two slaves. Several random events provide the opportunity to marry slave lovers. Slave Marriages function as an end state for slave [[Romances|Encyclopedia][$encyclopedia = "Romances"]]; slave wives receive the best relationship bonuses, and can generally be depended upon to help each other be good slaves in various ways. The alternative end states for slaves' emotional attachments are the [[Emotional Slut|Encyclopedia][$encyclopedia = "Emotional Slut"]] and [[Emotionally Bonded|Encyclopedia][$encyclopedia = "Emotionally Bonded"]] statuses, both of which are for a single slave alone. \ <<case "Slaveowner Marriages">>\ -''Slaveowner Marriages'', marriages between a devoted slave and the player character, require passage of a slaveowner marriage policy unlocked by advanced [[Paternalism|Encyclopedia][$encyclopedia to "Paternalism"]]. Once this policy is in place, [[Emotionally Bonded|Encyclopedia][$encyclopedia to "Emotionally Bonded"]] slaves can be married. There is no limit to the number of slaves a Paternalist player character can marry. Marriage to the player character functions as a direct upgrade to being Emotionally Bonded. +''Slaveowner Marriages'', marriages between a devoted slave and the player character, require passage of a slaveowner marriage policy unlocked by advanced [[Paternalism|Encyclopedia][$encyclopedia = "Paternalism"]]. Once this policy is in place, [[Emotionally Bonded|Encyclopedia][$encyclopedia = "Emotionally Bonded"]] slaves can be married. There is no limit to the number of slaves a Paternalist player character can marry. Marriage to the player character functions as a direct upgrade to being Emotionally Bonded. \ <<case "Emotionally Bonded">>\ -''Emotionally Bonded'' slaves have become so devoted to the player character that they define their own happiness mostly in terms of pleasing the PC. Slaves may become Emotionally Bonded if they become perfectly [[Devoted|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trusting|Encyclopedia][$encyclopedia to "Trust"]] without being part of a [[Romance|Encyclopedia][$encyclopedia to "Romances"]]. They receive powerful mental benefits - in fact, they are likely to accept anything short of sustained intentional abuse without lasting displeasure - and perform better at the [[Servitude|Encyclopedia][$encyclopedia to "Servitude"]] and [[Fucktoy|Encyclopedia][$encyclopedia to "Fucktoy"]] assignments. The most reliable way of ensuring a slave's development of emotional bonds is to have her assigned as a fucktoy (or to the [[Master Suite|Encyclopedia][$encyclopedia to "Master Suite"]]) as she becomes perfectly devoted and trusting. +''Emotionally Bonded'' slaves have become so devoted to the player character that they define their own happiness mostly in terms of pleasing the PC. Slaves may become Emotionally Bonded if they become perfectly [[Devoted|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trusting|Encyclopedia][$encyclopedia = "Trust"]] without being part of a [[Romance|Encyclopedia][$encyclopedia = "Romances"]]. They receive powerful mental benefits - in fact, they are likely to accept anything short of sustained intentional abuse without lasting displeasure - and perform better at the [[Servitude|Encyclopedia][$encyclopedia = "Servitude"]] and [[Fucktoy|Encyclopedia][$encyclopedia = "Fucktoy"]] assignments. The most reliable way of ensuring a slave's development of emotional bonds is to have her assigned as a fucktoy (or to the [[Master Suite|Encyclopedia][$encyclopedia = "Master Suite"]]) as she becomes perfectly devoted and trusting. \ <<case "Emotional Slut">>\ -''Emotionally Sluts'' are slaves who have lost track of normal human emotional attachments, seeing sex as the only real closeness. Slaves may become Emotional Sluts if they become perfectly [[Devoted|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trusting|Encyclopedia][$encyclopedia to "Trust"]] without being part of a [[Romance|Encyclopedia][$encyclopedia to "Romances"]]. They receive powerful mental benefits, though they will be disappointed if they are not on assignments that allow them to be massively promiscuous, and perform better at the [[Whoring|Encyclopedia][$encyclopedia to "Whoring"]] and [[Public Service|Encyclopedia][$encyclopedia to "Public Service"]] assignments. The most reliable way of ensuring a slave's development into an Emotional Slut is to have her assigned as a public servant (or to the [[Club|Encyclopedia][$encyclopedia to "Club"]]) as she becomes perfectly devoted and trusting. +''Emotionally Sluts'' are slaves who have lost track of normal human emotional attachments, seeing sex as the only real closeness. Slaves may become Emotional Sluts if they become perfectly [[Devoted|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trusting|Encyclopedia][$encyclopedia = "Trust"]] without being part of a [[Romance|Encyclopedia][$encyclopedia = "Romances"]]. They receive powerful mental benefits, though they will be disappointed if they are not on assignments that allow them to be massively promiscuous, and perform better at the [[Whoring|Encyclopedia][$encyclopedia = "Whoring"]] and [[Public Service|Encyclopedia][$encyclopedia = "Public Service"]] assignments. The most reliable way of ensuring a slave's development into an Emotional Slut is to have her assigned as a public servant (or to the [[Club|Encyclopedia][$encyclopedia = "Club"]]) as she becomes perfectly devoted and trusting. \ <<case "Quirks">>\ -''Quirks'' are positive slave qualities. They increase slaves' value and performance at sexual assignments, and each Quirk also has other, differing effects. Each Quirk is associated with a corresponding [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]], and slave can have two Quirks (a sexual Quirk and a behavioral Quirk), just like flaws. Quirks may appear randomly, but the most reliable way to give slaves Quirks is to soften flaws. The [[Head Girl|Encyclopedia][$encyclopedia to "Head Girl"]] can be ordered to soften flaws, and the player character can soften flaws with personal attention. Flaws can also be naturally softened into Quirks by fetishes. +''Quirks'' are positive slave qualities. They increase slaves' value and performance at sexual assignments, and each Quirk also has other, differing effects. Each Quirk is associated with a corresponding [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]], and slave can have two Quirks (a sexual Quirk and a behavioral Quirk), just like flaws. Quirks may appear randomly, but the most reliable way to give slaves Quirks is to soften flaws. The [[Head Girl|Encyclopedia][$encyclopedia = "Head Girl"]] can be ordered to soften flaws, and the player character can soften flaws with personal attention. Flaws can also be naturally softened into Quirks by fetishes. \ <<case "Flaws">>\ -''Flaws'' are negative slave qualities. They decrease slaves' value and performance at sexual assignments, and each flaw also has other, differing effects. Each flaw is associated with a corresponding [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]], and slave can have two Quirks (a sexual flaw and a behavioral flaw), just like Quirks. New slaves will often have flaws, and tough experiences can also cause them to appear. The -[[Head Girl|Encyclopedia][$encyclopedia to "Head Girl"]] can be ordered to soften or remove flaws, and the player character can soften or remove flaws with personal attention. Flaws can also be naturally softened or removed by fetishes, and can resolve on their own if a slave is happy. +''Flaws'' are negative slave qualities. They decrease slaves' value and performance at sexual assignments, and each flaw also has other, differing effects. Each flaw is associated with a corresponding [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]], and slave can have two Quirks (a sexual flaw and a behavioral flaw), just like Quirks. New slaves will often have flaws, and tough experiences can also cause them to appear. The +[[Head Girl|Encyclopedia][$encyclopedia = "Head Girl"]] can be ordered to soften or remove flaws, and the player character can soften or remove flaws with personal attention. Flaws can also be naturally softened or removed by fetishes, and can resolve on their own if a slave is happy. \ <<case "Arrogant">>\ -''Arrogant'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Confident|Encyclopedia][$encyclopedia to "Confident"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]]. The [[Submissive|Encyclopedia][$encyclopedia to "Submissives"]] fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, arrogance limits weekly [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] gains. +''Arrogant'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Confident|Encyclopedia][$encyclopedia = "Confident"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]]. The [[Submissive|Encyclopedia][$encyclopedia = "Submissives"]] fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, arrogance limits weekly [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] gains. \ <<case "Bitchy">>\ -''Bitchy'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Cutting|Encyclopedia][$encyclopedia to "Cutting"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]]. The [[Humiliation|Encyclopedia][$encyclopedia to "Humiliation Fetishists"]] fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, bitchiness limits weekly [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] gains. +''Bitchy'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Cutting|Encyclopedia][$encyclopedia = "Cutting"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]]. The [[Humiliation|Encyclopedia][$encyclopedia = "Humiliation Fetishists"]] fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, bitchiness limits weekly [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] gains. \ <<case "Odd">>\ -''Odd'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Funny|Encyclopedia][$encyclopedia to "Funny"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]]. The [[Humiliation|Encyclopedia][$encyclopedia to "Humiliation Fetishists"]] fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, being odd limits weekly [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] gains. +''Odd'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Funny|Encyclopedia][$encyclopedia = "Funny"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]]. The [[Humiliation|Encyclopedia][$encyclopedia = "Humiliation Fetishists"]] fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, being odd limits weekly [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] gains. \ <<case "Anorexic">>\ -''Anorexic'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Insecure|Encyclopedia][$encyclopedia to "Insecure"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]]. In addition to the standard penalties to value and performance on sexual assignments, anorexia can cause unexpected weight loss. Anorexics will enjoy dieting but dislike gaining weight, and may bilk attempts to make them fatten up. +''Anorexic'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Insecure|Encyclopedia][$encyclopedia = "Insecure"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]]. In addition to the standard penalties to value and performance on sexual assignments, anorexia can cause unexpected weight loss. Anorexics will enjoy dieting but dislike gaining weight, and may bilk attempts to make them fatten up. \ <<case "Gluttonous">>\ -''Gluttonous'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Fitness|Encyclopedia][$encyclopedia to "Fitness"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]]. In addition to the standard penalties to value and performance on sexual assignments, gluttons will enjoy gaining weight but dislike dieting, and may bilk attempts to make them lose weight. +''Gluttonous'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Fitness|Encyclopedia][$encyclopedia = "Fitness"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]]. In addition to the standard penalties to value and performance on sexual assignments, gluttons will enjoy gaining weight but dislike dieting, and may bilk attempts to make them lose weight. \ <<case "Devout">>\ -''Devout'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Sinful|Encyclopedia][$encyclopedia to "Sinful"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]]. A very powerful sex drive can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, being devout limits weekly [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] gains. +''Devout'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Sinful|Encyclopedia][$encyclopedia = "Sinful"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]]. A very powerful sex drive can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, being devout limits weekly [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] gains. \ <<case "Liberated">>\ -''Liberated'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Advocate|Encyclopedia][$encyclopedia to "Advocate"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]]. The [[Submissive|Encyclopedia][$encyclopedia to "Submissives"]] fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, being liberated limits weekly [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] gains. +''Liberated'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Advocate|Encyclopedia][$encyclopedia = "Advocate"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]]. The [[Submissive|Encyclopedia][$encyclopedia = "Submissives"]] fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, being liberated limits weekly [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] gains. \ <<case "Hates men">>\ -''Hates men'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Adores women|Encyclopedia][$encyclopedia to "Adores women"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]], a powerful sex drive, strong attraction to men, or the [[Boob fetish|Encyclopedia][$encyclopedia to "Boob Fetishists"]]. The [[Pregnancy fetish|Encyclopedia][$encyclopedia to "Pregnancy Fetishists"]] will soften it into [[Adores men|Encyclopedia][$encyclopedia to "Adores men"]]. This flaw can also be removed by serving a player character or another slave with a penis. +''Hates men'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Adores women|Encyclopedia][$encyclopedia = "Adores women"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]], a powerful sex drive, strong attraction to men, or the [[Boob fetish|Encyclopedia][$encyclopedia = "Boob Fetishists"]]. The [[Pregnancy fetish|Encyclopedia][$encyclopedia = "Pregnancy Fetishists"]] will soften it into [[Adores men|Encyclopedia][$encyclopedia = "Adores men"]]. This flaw can also be removed by serving a player character or another slave with a penis. \ <<case "Hates women">>\ -''Hates women'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Adores men|Encyclopedia][$encyclopedia to "Adores men"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]], a powerful sex drive, strong attraction to men, or the [[Cumslut|Encyclopedia][$encyclopedia to "Cumsluts"]] fetish. The [[Pregnancy fetish|Encyclopedia][$encyclopedia to "Pregnancy Fetishists"]] will soften it into [[Adores women|Encyclopedia][$encyclopedia to "Adores women"]]. This flaw can also be removed by serving a player character or another slave with a vagina. +''Hates women'' is a behavioral [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Adores men|Encyclopedia][$encyclopedia = "Adores men"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]], a powerful sex drive, strong attraction to men, or the [[Cumslut|Encyclopedia][$encyclopedia = "Cumsluts"]] fetish. The [[Pregnancy fetish|Encyclopedia][$encyclopedia = "Pregnancy Fetishists"]] will soften it into [[Adores women|Encyclopedia][$encyclopedia = "Adores women"]]. This flaw can also be removed by serving a player character or another slave with a vagina. \ <<case "Crude">>\ -''Crude'' is a sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Unflinching|Encyclopedia][$encyclopedia to "Unflinching"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]], a powerful sex drive, or the [[Buttslut|Encyclopedia][$encyclopedia to "Buttsluts"]] fetish. +''Crude'' is a sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Unflinching|Encyclopedia][$encyclopedia = "Unflinching"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]], a powerful sex drive, or the [[Buttslut|Encyclopedia][$encyclopedia = "Buttsluts"]] fetish. \ <<case "Judgemental">>\ -''Judgemental'' is a sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Size Queen|Encyclopedia][$encyclopedia to "Size Queen"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]], a powerful sex drive, or the [[Submissive|Encyclopedia][$encyclopedia to "Humiliation Submissive"]] fetish. +''Judgemental'' is a sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Size Queen|Encyclopedia][$encyclopedia = "Size Queen"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]], a powerful sex drive, or the [[Submissive|Encyclopedia][$encyclopedia = "Humiliation Submissive"]] fetish. \ <<case "Cum Addicts">>\ -''Cum addiction'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that cannot be softened. [[Cumsluts|Encyclopedia][$encyclopedia to "Cumsluts"]] who eat out of phallic feeders or are fed cum may become cum addicts. They can be satisfied by cum diets, the phallic feeder kitchen upgrade, or by sex work that involves frequent fellatio. Cum addicts are perform well on assignments involving oral sex. +''Cum addiction'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that cannot be softened. [[Cumsluts|Encyclopedia][$encyclopedia = "Cumsluts"]] who eat out of phallic feeders or are fed cum may become cum addicts. They can be satisfied by cum diets, the phallic feeder kitchen upgrade, or by sex work that involves frequent fellatio. Cum addicts are perform well on assignments involving oral sex. \ <<case "Anal Addicts">> -''Anal addiction'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that cannot be softened. [[Buttsluts|Encyclopedia][$encyclopedia to "Buttsluts"]] whose only available hole for receptive intercourse is the anus may become anal addicts. They can be satisfied by huge buttplugs, the sodomizing drug applicator kitchen upgrade, or by work that involves frequent anal sex. Anal addicts perform well on assignments involving anal sex. +''Anal addiction'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that cannot be softened. [[Buttsluts|Encyclopedia][$encyclopedia = "Buttsluts"]] whose only available hole for receptive intercourse is the anus may become anal addicts. They can be satisfied by huge buttplugs, the sodomizing drug applicator kitchen upgrade, or by work that involves frequent anal sex. Anal addicts perform well on assignments involving anal sex. \ <<case "Attention Whores">> -''Attention Whores'' suffer from a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that cannot be softened. [[Humiliation Fetishists|Encyclopedia][$encyclopedia to "Humiliation Fetishists"]] on public sexual assignments may become Attention Whores. They can be satisfied by total nudity or by work that involves frequent public sex. Attention Whores do very well at [[Public Service|Encyclopedia][$encyclopedia to "Public Service"]]. +''Attention Whores'' suffer from a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that cannot be softened. [[Humiliation Fetishists|Encyclopedia][$encyclopedia = "Humiliation Fetishists"]] on public sexual assignments may become Attention Whores. They can be satisfied by total nudity or by work that involves frequent public sex. Attention Whores do very well at [[Public Service|Encyclopedia][$encyclopedia = "Public Service"]]. \ <<case "Breast Obsession">> -''Pectomania,'' also known as breast growth obsession, is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that cannot be softened. [[Boob Fetishists|Encyclopedia][$encyclopedia to "Boob Fetishists"]] may become obsessed with breast expansion as their breasts grow. They can be satisfied by breast injections or work as a cow, and will temporarily accept getting neither if their health is low. +''Pectomania,'' also known as breast growth obsession, is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that cannot be softened. [[Boob Fetishists|Encyclopedia][$encyclopedia = "Boob Fetishists"]] may become obsessed with breast expansion as their breasts grow. They can be satisfied by breast injections or work as a cow, and will temporarily accept getting neither if their health is low. \ <<case "Abusiveness">> -''Abusiveness'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that cannot be softened. [[Doms|Encyclopedia][$encyclopedia to "Doms"]] serving as [[Head Girl|Encyclopedia][$encyclopedia to "Head Girl"]] may become abusive if allowed to molest slaves as punishment. They can be satisfied by work as the Head Girl or [[Wardeness|Encyclopedia][$encyclopedia to "Wardeness"]]. Abusive Head Girls are more effective when allowed or encouraged to punish slaves severely. +''Abusiveness'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that cannot be softened. [[Doms|Encyclopedia][$encyclopedia = "Doms"]] serving as [[Head Girl|Encyclopedia][$encyclopedia = "Head Girl"]] may become abusive if allowed to molest slaves as punishment. They can be satisfied by work as the Head Girl or [[Wardeness|Encyclopedia][$encyclopedia = "Wardeness"]]. Abusive Head Girls are more effective when allowed or encouraged to punish slaves severely. \ <<case "Maliciousness">> -Sexual ''maliciousness'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that cannot be softened. [[Sadists|Encyclopedia][$encyclopedia to "Sadists"]] serving as [[Wardeness|Encyclopedia][$encyclopedia to "Wardeness"]] may become sexually malicious. They can be satisfied by work as the [[Head Girl|Encyclopedia][$encyclopedia to "Head Girl"]] or Wardeness. Sexually malicious Wardenesses break slaves very quickly but damage their sex drives doing so. +Sexual ''maliciousness'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that cannot be softened. [[Sadists|Encyclopedia][$encyclopedia = "Sadists"]] serving as [[Wardeness|Encyclopedia][$encyclopedia = "Wardeness"]] may become sexually malicious. They can be satisfied by work as the [[Head Girl|Encyclopedia][$encyclopedia = "Head Girl"]] or Wardeness. Sexually malicious Wardenesses break slaves very quickly but damage their sex drives doing so. \ <<case "Self Hatred">> -Sexual ''self hatred'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that cannot be softened. [[Masochists|Encyclopedia][$encyclopedia to "Masochists"]] serving in an industrialized [[Dairy|Encyclopedia][$encyclopedia to "Dairy"]], in an [[Arcade|Encyclopedia][$encyclopedia to "Arcade"]], or in a [[glory hole|Encyclopedia][$encyclopedia to "Glory Hole"]] may become self hating. They can be satisfied by work in an industrialized Dairy, in an Arcade, or in a glory hole; or by extremely low [[Trust|Encyclopedia][$encyclopedia to "trust"]]. Self hating slaves will not suffer negative mental effects from serving in an industrialized Dairy, in an Arcade, or in a glory hole. +Sexual ''self hatred'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that cannot be softened. [[Masochists|Encyclopedia][$encyclopedia = "Masochists"]] serving in an industrialized [[Dairy|Encyclopedia][$encyclopedia = "Dairy"]], in an [[Arcade|Encyclopedia][$encyclopedia = "Arcade"]], or in a [[glory hole|Encyclopedia][$encyclopedia = "Glory Hole"]] may become self hating. They can be satisfied by work in an industrialized Dairy, in an Arcade, or in a glory hole; or by extremely low [[Trust|Encyclopedia][$encyclopedia = "trust"]]. Self hating slaves will not suffer negative mental effects from serving in an industrialized Dairy, in an Arcade, or in a glory hole. \ <<case "Self Neglect">> -Sexual ''self neglect'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that cannot be softened. [[Submissives|Encyclopedia][$encyclopedia to "Submissives"]] serving on public sexual assignment may become sexually self neglectful. Such slaves can be satisfied by most kinds of sex work. Slaves willing to neglect their own pleasure do very well at [[Whoring|Encyclopedia][$encyclopedia to "Whoring"]]. +Sexual ''self neglect'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that cannot be softened. [[Submissives|Encyclopedia][$encyclopedia = "Submissives"]] serving on public sexual assignment may become sexually self neglectful. Such slaves can be satisfied by most kinds of sex work. Slaves willing to neglect their own pleasure do very well at [[Whoring|Encyclopedia][$encyclopedia = "Whoring"]]. \ <<case "Breeding Obsession">> -''Breeding obsession'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that cannot be softened. [[Pregnancy Fetishists|Encyclopedia][$encyclopedia to "Pregnancy Fetishists"]] who are repeatedly bred or are serving in an industrialized [[Dairy|Encyclopedia][$encyclopedia to "Dairy"]] may develop breeding obsessions. They can be satisfied by pregnancy. Slaves with breeding obsessions will not suffer negative mental effects from serving in an industrialized Dairy that keeps them pregnant. +''Breeding obsession'' is a paraphilia, an intense form of sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that cannot be softened. [[Pregnancy Fetishists|Encyclopedia][$encyclopedia = "Pregnancy Fetishists"]] who are repeatedly bred or are serving in an industrialized [[Dairy|Encyclopedia][$encyclopedia = "Dairy"]] may develop breeding obsessions. They can be satisfied by pregnancy. Slaves with breeding obsessions will not suffer negative mental effects from serving in an industrialized Dairy that keeps them pregnant. \ <<case "Hates oral">>\ -''Hates oral'' is a sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Gagfuck Queen|Encyclopedia][$encyclopedia to "Gagfuck Queen"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]], a powerful sex drive, or the [[Cumslut|Encyclopedia][$encyclopedia to "Cumsluts"]] fetish. This flaw can also be removed by serving the player character. +''Hates oral'' is a sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Gagfuck Queen|Encyclopedia][$encyclopedia = "Gagfuck Queen"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]], a powerful sex drive, or the [[Cumslut|Encyclopedia][$encyclopedia = "Cumsluts"]] fetish. This flaw can also be removed by serving the player character. \ <<case "Hates anal">>\ -''Hates anal'' is a sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Painal Queen|Encyclopedia][$encyclopedia to "Painal Queen"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]], a powerful sex drive, or the [[Buttslut|Encyclopedia][$encyclopedia to "Buttsluts"]] fetish. This flaw can also be removed by serving the player character. +''Hates anal'' is a sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Painal Queen|Encyclopedia][$encyclopedia = "Painal Queen"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]], a powerful sex drive, or the [[Buttslut|Encyclopedia][$encyclopedia = "Buttsluts"]] fetish. This flaw can also be removed by serving the player character. \ <<case "Hates penetration">>\ -''Hates penetration'' is a sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Strugglefuck Queen|Encyclopedia][$encyclopedia to "Strugglefuck Queen"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]], a powerful sex drive, or the [[Buttslut|Encyclopedia][$encyclopedia to "Buttsluts"]] fetish. This flaw can also be removed by serving the player character. +''Hates penetration'' is a sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Strugglefuck Queen|Encyclopedia][$encyclopedia = "Strugglefuck Queen"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]], a powerful sex drive, or the [[Buttslut|Encyclopedia][$encyclopedia = "Buttsluts"]] fetish. This flaw can also be removed by serving the player character. \ <<case "Repressed">>\ -''Repressed'' is a sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Perverted|Encyclopedia][$encyclopedia to "Perverted"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]], a powerful sex drive, the [[Cumslut|Encyclopedia][$encyclopedia to "Cumsluts"]] fetish, or the [[Buttslut|Encyclopedia][$encyclopedia to "Buttsluts"]] fetish. +''Repressed'' is a sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Perverted|Encyclopedia][$encyclopedia = "Perverted"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]], a powerful sex drive, the [[Cumslut|Encyclopedia][$encyclopedia = "Cumsluts"]] fetish, or the [[Buttslut|Encyclopedia][$encyclopedia = "Buttsluts"]] fetish. \ <<case "Idealistic">>\ -''Idealistic'' is a sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Romantic|Encyclopedia][$encyclopedia to "Romantic"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]], a powerful sex drive, or the [[Submissive|Encyclopedia][$encyclopedia to "Submissives"]] fetish. +''Idealistic'' is a sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Romantic|Encyclopedia][$encyclopedia = "Romantic"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]], a powerful sex drive, or the [[Submissive|Encyclopedia][$encyclopedia = "Submissives"]] fetish. \ <<case "Shamefast">>\ -''Shamefast'' is a sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Tease|Encyclopedia][$encyclopedia to "Tease"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]], a powerful sex drive, or the [[Humiliation|Encyclopedia][$encyclopedia to "Humiliation Fetishists"]] fetish. +''Shamefast'' is a sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Tease|Encyclopedia][$encyclopedia = "Tease"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]], a powerful sex drive, or the [[Humiliation|Encyclopedia][$encyclopedia = "Humiliation Fetishists"]] fetish. \ <<case "Apathetic">>\ -''Apathetic'' is a sexual [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]] that can be softened into the [[Caring|Encyclopedia][$encyclopedia to "Caring"]] [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia to "Attendant"]], a powerful sex drive, or the [[Submissive|Encyclopedia][$encyclopedia to "Humiliation Submissive"]] fetish. It can also be removed by the [[Dominant|Encyclopedia][$encyclopedia to "Doms"]] fetish. +''Apathetic'' is a sexual [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]] that can be softened into the [[Caring|Encyclopedia][$encyclopedia = "Caring"]] [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] by training, a good [[Attendant|Encyclopedia][$encyclopedia = "Attendant"]], a powerful sex drive, or the [[Submissive|Encyclopedia][$encyclopedia = "Humiliation Submissive"]] fetish. It can also be removed by the [[Dominant|Encyclopedia][$encyclopedia = "Doms"]] fetish. \ <<case "Confident">>\ -''Confident'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Arrogant|Encyclopedia][$encyclopedia to "Arrogant"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Confident slaves may naturally become [[Dominant|Encyclopedia][$encyclopedia to "Doms"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Trust|Encyclopedia][$encyclopedia to "Trust"]] on [[Fucktoy|Encyclopedia][$encyclopedia to "Fucktoy"]] duty. +''Confident'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Arrogant|Encyclopedia][$encyclopedia = "Arrogant"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Confident slaves may naturally become [[Dominant|Encyclopedia][$encyclopedia = "Doms"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Trust|Encyclopedia][$encyclopedia = "Trust"]] on [[Fucktoy|Encyclopedia][$encyclopedia = "Fucktoy"]] duty. \ <<case "Cutting">>\ -''Cutting'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Bitchy|Encyclopedia][$encyclopedia to "Bitchy"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Cutting slaves may naturally become [[Dominant|Encyclopedia][$encyclopedia to "Doms"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] while [[Whoring|Encyclopedia][$encyclopedia to "Whoring"]]. +''Cutting'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Bitchy|Encyclopedia][$encyclopedia = "Bitchy"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Cutting slaves may naturally become [[Dominant|Encyclopedia][$encyclopedia = "Doms"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] while [[Whoring|Encyclopedia][$encyclopedia = "Whoring"]]. \ <<case "Funny">>\ -''Funny'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Odd|Encyclopedia][$encyclopedia to "Odd"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Funny slaves may naturally become [[Masochists|Encyclopedia][$encyclopedia to "Masochists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] while performing [[Public Service|Encyclopedia][$encyclopedia to "Public Service"]]. +''Funny'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Odd|Encyclopedia][$encyclopedia = "Odd"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Funny slaves may naturally become [[Masochists|Encyclopedia][$encyclopedia = "Masochists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] while performing [[Public Service|Encyclopedia][$encyclopedia = "Public Service"]]. \ <<case "Fitness">>\ -''Fitness'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Gluttonous|Encyclopedia][$encyclopedia to "Gluttonous"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. In addition to the standard value and sexual assignment advantages, fitness fanatics gain additional sex drive each week, and are better at working out. +''Fitness'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Gluttonous|Encyclopedia][$encyclopedia = "Gluttonous"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. In addition to the standard value and sexual assignment advantages, fitness fanatics gain additional sex drive each week, and are better at working out. \ <<case "Insecure">>\ -''Insecure'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Anorexic|Encyclopedia][$encyclopedia to "Anorexic"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Insecure slaves may naturally become [[Submissives|Encyclopedia][$encyclopedia to "Submissives"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Trust|Encyclopedia][$encyclopedia to "Trust"]] on [[Fucktoy|Encyclopedia][$encyclopedia to "Fucktoy"]] duty. +''Insecure'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Anorexic|Encyclopedia][$encyclopedia = "Anorexic"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Insecure slaves may naturally become [[Submissives|Encyclopedia][$encyclopedia = "Submissives"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Trust|Encyclopedia][$encyclopedia = "Trust"]] on [[Fucktoy|Encyclopedia][$encyclopedia = "Fucktoy"]] duty. \ <<case "Sinful">>\ -''Sinful'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Devout|Encyclopedia][$encyclopedia to "Devout"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Sinful slaves may naturally become [[Humiliation Fetishists|Encyclopedia][$encyclopedia to "Humiliation Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] while [[Whoring|Encyclopedia][$encyclopedia to "Whoring"]]. +''Sinful'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Devout|Encyclopedia][$encyclopedia = "Devout"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Sinful slaves may naturally become [[Humiliation Fetishists|Encyclopedia][$encyclopedia = "Humiliation Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] while [[Whoring|Encyclopedia][$encyclopedia = "Whoring"]]. \ <<case "Advocate">>\ -''Advocate'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Liberated|Encyclopedia][$encyclopedia to "Liberated"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Advocates may naturally become [[Submissives|Encyclopedia][$encyclopedia to "Submissives"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] while performing [[Public Service|Encyclopedia][$encyclopedia to "Public Service"]]. +''Advocate'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Liberated|Encyclopedia][$encyclopedia = "Liberated"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Advocates may naturally become [[Submissives|Encyclopedia][$encyclopedia = "Submissives"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] while performing [[Public Service|Encyclopedia][$encyclopedia = "Public Service"]]. \ <<case "Adores women">>\ -''Adores women'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Hates men|Encyclopedia][$encyclopedia to "Hates men"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Slaves who adore women may naturally become [[Breast Fetishists|Encyclopedia][$encyclopedia to "Boob Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Trust|Encyclopedia][$encyclopedia to "Trust"]] on [[Fucktoy|Encyclopedia][$encyclopedia to "Fucktoy"]] duty if the player character is feminine, and increased chance of gaining additional XX attraction. +''Adores women'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Hates men|Encyclopedia][$encyclopedia = "Hates men"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Slaves who adore women may naturally become [[Breast Fetishists|Encyclopedia][$encyclopedia = "Boob Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Trust|Encyclopedia][$encyclopedia = "Trust"]] on [[Fucktoy|Encyclopedia][$encyclopedia = "Fucktoy"]] duty if the player character is feminine, and increased chance of gaining additional XX attraction. \ <<case "Adores men">>\ -''Adores men'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Hates women|Encyclopedia][$encyclopedia to "Hates women"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Slaves who adore men may naturally become [[Pregnancy Fetishists|Encyclopedia][$encyclopedia to "Pregnancy Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Trust|Encyclopedia][$encyclopedia to "Trust"]] on [[Fucktoy|Encyclopedia][$encyclopedia to "Fucktoy"]] duty if the player character is masculine, and increased chance of gaining additional XY attraction. +''Adores men'' is a behavioral [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Hates women|Encyclopedia][$encyclopedia = "Hates women"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Slaves who adore men may naturally become [[Pregnancy Fetishists|Encyclopedia][$encyclopedia = "Pregnancy Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Trust|Encyclopedia][$encyclopedia = "Trust"]] on [[Fucktoy|Encyclopedia][$encyclopedia = "Fucktoy"]] duty if the player character is masculine, and increased chance of gaining additional XY attraction. \ <<case "Unflinching">>\ -''Unflinching'' is a sexual [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Crude|Encyclopedia][$encyclopedia to "Crude"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Unflinching slaves may naturally become [[Masochists|Encyclopedia][$encyclopedia to "Masochists"]]. In addition to the standard value and sexual assignment advantages, they will experience a partial rebound during weeks in which they lose [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]]. +''Unflinching'' is a sexual [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Crude|Encyclopedia][$encyclopedia = "Crude"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Unflinching slaves may naturally become [[Masochists|Encyclopedia][$encyclopedia = "Masochists"]]. In addition to the standard value and sexual assignment advantages, they will experience a partial rebound during weeks in which they lose [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]]. \ <<case "Size Queen">>\ -''Size Queen'' is a sexual [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Judgemental|Encyclopedia][$encyclopedia to "Judgemental"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Size Queens may naturally become [[Buttsluts|Encyclopedia][$encyclopedia to "Buttsluts"]]. In addition to the standard value and sexual assignment advantages, they will enjoy relationships with well-endowed, virile slaves so much their partners will get [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] benefits, too. +''Size Queen'' is a sexual [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Judgemental|Encyclopedia][$encyclopedia = "Judgemental"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Size Queens may naturally become [[Buttsluts|Encyclopedia][$encyclopedia = "Buttsluts"]]. In addition to the standard value and sexual assignment advantages, they will enjoy relationships with well-endowed, virile slaves so much their partners will get [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] benefits, too. \ <<case "Gagfuck Queen">>\ -''Gagfuck Queen'' is a sexual [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Hates oral|Encyclopedia][$encyclopedia to "Hates oral"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Gagfuck Queens may naturally become [[Cumsluts|Encyclopedia][$encyclopedia to "Cumsluts"]]. In addition to the standard value and sexual assignment advantages, they enjoy living in a penthouse upgraded with phallic food dispensers. +''Gagfuck Queen'' is a sexual [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Hates oral|Encyclopedia][$encyclopedia = "Hates oral"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Gagfuck Queens may naturally become [[Cumsluts|Encyclopedia][$encyclopedia = "Cumsluts"]]. In addition to the standard value and sexual assignment advantages, they enjoy living in a penthouse upgraded with phallic food dispensers. \ <<case "Painal Queen">>\ -''Painal Queen'' is a sexual [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Hates anal|Encyclopedia][$encyclopedia to "Hates anal"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Painal Queens may naturally become [[Buttsluts|Encyclopedia][$encyclopedia to "Buttsluts"]]. In addition to the standard value and sexual assignment advantages, they enjoy living in a penthouse upgraded with dildo drug dispensers. +''Painal Queen'' is a sexual [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Hates anal|Encyclopedia][$encyclopedia = "Hates anal"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Painal Queens may naturally become [[Buttsluts|Encyclopedia][$encyclopedia = "Buttsluts"]]. In addition to the standard value and sexual assignment advantages, they enjoy living in a penthouse upgraded with dildo drug dispensers. \ <<case "Strugglefuck Queen">>\ -''Strugglefuck Queen'' is a sexual [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Hates penetration|Encyclopedia][$encyclopedia to "Hates penetration"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Strugglefuck Queens may naturally become [[Masochists|Encyclopedia][$encyclopedia to "Masochists"]]. In addition to the standard value and sexual assignment advantages, this Quirk avoids [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] losses if the slave is assigned to be a [[Sexual servant|Encyclopedia][$encyclopedia to "Sexual Servitude"]]. +''Strugglefuck Queen'' is a sexual [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Hates penetration|Encyclopedia][$encyclopedia = "Hates penetration"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Strugglefuck Queens may naturally become [[Masochists|Encyclopedia][$encyclopedia = "Masochists"]]. In addition to the standard value and sexual assignment advantages, this Quirk avoids [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] losses if the slave is assigned to be a [[Sexual servant|Encyclopedia][$encyclopedia = "Sexual Servitude"]]. \ <<case "Tease">>\ -''Tease'' is a sexual [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Shamefast|Encyclopedia][$encyclopedia to "Shamefast"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Teases may naturally become [[Humiliation Fetishists|Encyclopedia][$encyclopedia to "Humiliation Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] while performing [[Public Service|Encyclopedia][$encyclopedia to "Public Service"]]. +''Tease'' is a sexual [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Shamefast|Encyclopedia][$encyclopedia = "Shamefast"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Teases may naturally become [[Humiliation Fetishists|Encyclopedia][$encyclopedia = "Humiliation Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] while performing [[Public Service|Encyclopedia][$encyclopedia = "Public Service"]]. \ <<case "Romantic">>\ -''Romantic'' is a sexual [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Idealistic|Encyclopedia][$encyclopedia to "Idealistic"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Romantics may naturally become [[Pregnancy Fetishists|Encyclopedia][$encyclopedia to "Pregnancy Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Trust|Encyclopedia][$encyclopedia to "Trust"]] on [[Fucktoy|Encyclopedia][$encyclopedia to "Fucktoy"]] duty. +''Romantic'' is a sexual [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Idealistic|Encyclopedia][$encyclopedia = "Idealistic"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Romantics may naturally become [[Pregnancy Fetishists|Encyclopedia][$encyclopedia = "Pregnancy Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Trust|Encyclopedia][$encyclopedia = "Trust"]] on [[Fucktoy|Encyclopedia][$encyclopedia = "Fucktoy"]] duty. \ <<case "Caring">>\ -''Caring'' is a sexual [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Apathetic|Encyclopedia][$encyclopedia to "Apathetic"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Caring slaves may naturally become [[Pregnancy Fetishists|Encyclopedia][$encyclopedia to "Pregnancy Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] while [[Whoring|Encyclopedia][$encyclopedia to "Whoring"]]. +''Caring'' is a sexual [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Apathetic|Encyclopedia][$encyclopedia = "Apathetic"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Caring slaves may naturally become [[Pregnancy Fetishists|Encyclopedia][$encyclopedia = "Pregnancy Fetishists"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] while [[Whoring|Encyclopedia][$encyclopedia = "Whoring"]]. \ <<case "Perverted">>\ -''Perverted'' is a sexual [[Quirk|Encyclopedia][$encyclopedia to "Quirks"]] developed from the [[Repressed|Encyclopedia][$encyclopedia to "Repressed"]] [[Flaw|Encyclopedia][$encyclopedia to "Flaws"]]. Perverted slaves may naturally become [[Submissives|Encyclopedia][$encyclopedia to "Submissives"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] when in incestuous relationships, and gain additional sex drive each week. +''Perverted'' is a sexual [[Quirk|Encyclopedia][$encyclopedia = "Quirks"]] developed from the [[Repressed|Encyclopedia][$encyclopedia = "Repressed"]] [[Flaw|Encyclopedia][$encyclopedia = "Flaws"]]. Perverted slaves may naturally become [[Submissives|Encyclopedia][$encyclopedia = "Submissives"]]. In addition to the standard value and sexual assignment advantages, they get bonus [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] when in incestuous relationships, and gain additional sex drive each week. \ <<case "Future Societies">>\ ''Future Society Models'' are societal goals the player can select and pursue for the arcology. It is possible to maintain four future society goals at once. The first is unlocked after week 20 for players with minimal reputation, or at game start with the Social Engineering character option; the rest unlock as the player achieves higher reputation levels. @@ -1455,38 +1455,38 @@ Money can be expended to directly advance future societies; the spending level c ''Ethnic Supremacy'' is a future society model which approves of slaves not of the chosen race and disapproves of slaves of the chosen race. Improves the perceived beauty of racially inferior sex slaves. Can be developed to affect the ethnic balance and economics seen in the slave market. - Provides demand for slaves of inferior races from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. + Provides demand for slaves of inferior races from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. \ <<case "Ethnic Subjugationism">>\ ''Ethnic Subjugationism'' is a future society model which approves of slaves of the chosen race. Improves the perceived beauty of racially inferior sex slaves. - Provides demand for slaves of the disfavored race from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. + Provides demand for slaves of the disfavored race from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. \ <<case "Gender Radicalism">>\ ''Gender Radicalism'' is a future society model which approves of hormonal and surgical feminization and slaves with dicks. Improves the value of slaves with dicks and slaves with balls. Can be developed to affect the biology seen in the slave market, and subtly influence arcology society. - Provides demand for slaves with dicks from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. + Provides demand for slaves with dicks from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. Provides demand for hormonally treated slaves from the corporation. Provides demand for futanari<<if $seeDicks != 0>> and ballsless bitches<</if>> from the corporation. - Mutually exclusive with [[Gender Fundamentalism|Encyclopedia][$encyclopedia to "Gender Fundamentalism"]]. + Mutually exclusive with [[Gender Fundamentalism|Encyclopedia][$encyclopedia = "Gender Fundamentalism"]]. \ <<case "Gender Fundamentalism">>\ ''Gender Fundamentalism'' is a future society model which approves of pregnancy and fertility and disapproves of slaves who retain testicles. Removes the slave value penalty due to pregnancy and reduces the beauty of slaves with dicks, though gelding can ameliorate this. Like Gender Radicalism, can be developed to affect the biology seen in the slave market, and subtly influence arcology society. - Provides demand for naturally female slaves from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. - Mutually exclusive with [[Gender Radicalism|Encyclopedia][$encyclopedia to "Gender Radicalism"]]. + Provides demand for naturally female slaves from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. + Mutually exclusive with [[Gender Radicalism|Encyclopedia][$encyclopedia = "Gender Radicalism"]]. \ <<case "Paternalism">>\ -''Paternalism'' is a future society model which approves of [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]], slaves choosing their own assignments, good education, mental health treatment, and high [[Health|Encyclopedia][$encyclopedia to "Health"]]; it disapproves of stupidity and undereducation. +''Paternalism'' is a future society model which approves of [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]], slaves choosing their own assignments, good education, mental health treatment, and high [[Health|Encyclopedia][$encyclopedia = "Health"]]; it disapproves of stupidity and undereducation. Applies a small devotion boost to all slaves and increases fines paid by citizens who injure whores and public servants. Increases the reputation penalty for operating an arcade. Slows increases in the ratio of slaves to citizens. Can be developed to build a trusting society that welcomes new slaves. - Provides demand for careful slave breaking from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. + Provides demand for careful slave breaking from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. Provides demand for gentle cosmetic surgeries from the corporation. - Mutually exclusive with [[Degradationism|Encyclopedia][$encyclopedia to "Degradationism"]]. + Mutually exclusive with [[Degradationism|Encyclopedia][$encyclopedia = "Degradationism"]]. \ <<case "Degradationism">>\ ''Degradationism'' is a future society model which approves of frightened or mindbroken slaves, glory holes, the arcade, and heavy tattoos and piercings; it disapproves of trust (except for the Head Girl and Recruiter) and slaves choosing their own assignments. @@ -1496,83 +1496,83 @@ Money can be expended to directly advance future societies; the spending level c Eliminates the fines paid by citizens who injure whores and public servants. Eliminates the reputation penalty for operating an arcade. Can be developed to increase demand for glory holes and arcades. - Provides demand for brutal slave breaking from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. + Provides demand for brutal slave breaking from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. Provides demand for stupid slaves from the corporation. Provides demand for cruelly altered slaves from the corporation. - Mutually exclusive with [[Paternalism|Encyclopedia][$encyclopedia to "Paternalism"]]. + Mutually exclusive with [[Paternalism|Encyclopedia][$encyclopedia = "Paternalism"]]. \ <<case "Body Purism">>\ ''Body Purism'' is a future society model which approves of unimplanted slaves and no heavy tattoos or piercings; disapproves of implants. Improves value of slaves without implants. Can be developed to affect goods seen in the slave market and work towards a solution to the long term effects of drug use. - Provides demand for slaves without implants from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. - Mutually exclusive with [[Transformation Fetishism|Encyclopedia][$encyclopedia to "Transformation Fetishism"]]. + Provides demand for slaves without implants from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. + Mutually exclusive with [[Transformation Fetishism|Encyclopedia][$encyclopedia = "Transformation Fetishism"]]. \ <<case "Transformation Fetishism">>\ ''Transformation Fetishism'' is a future society model which approves of implants and extreme surgery; disapproves of slaves without implants. Reduces value of slaves without implants. Can be developed to radically affect goods seen in the slave market. - Provides demand for slaves with implants from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. - Mutually exclusive with [[Body Purism|Encyclopedia][$encyclopedia to "Body Purism"]]. + Provides demand for slaves with implants from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. + Mutually exclusive with [[Body Purism|Encyclopedia][$encyclopedia = "Body Purism"]]. \ <<case "Maturity Preferentialism">>\ ''Maturity Preferentialism'' is a future society model which approves of older slaves. Improves value of older slaves, but reduces value of young slaves. Will not entirely eliminate the usual preference for younger slaves. Can be developed to make it easier for older player characters to maintain reputation and advance the arcology's prosperity. - Provides demand for older slaves from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. - Mutually exclusive with [[Youth Preferentialism|Encyclopedia][$encyclopedia to "Youth Preferentialism"]]. + Provides demand for older slaves from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. + Mutually exclusive with [[Youth Preferentialism|Encyclopedia][$encyclopedia = "Youth Preferentialism"]]. \ <<case "Youth Preferentialism">>\ ''Youth Preferentialism'' is a future society model which approves of younger slaves. Improves value of younger slaves, but reduces value of old slaves. Can be developed to make it easier for younger player characters to maintain reputation and advance the arcology's prosperity. - Provides demand for young slaves from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. - Mutually exclusive with [[Maturity Preferentialism|Encyclopedia][$encyclopedia to "Maturity Preferentialism"]]. + Provides demand for young slaves from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. + Mutually exclusive with [[Maturity Preferentialism|Encyclopedia][$encyclopedia = "Maturity Preferentialism"]]. \ <<case "Slimness Enthusiasm">>\ ''Slimness Enthusiasm'' is a future society model which approves of slaves with girlish figures; disapproves of slaves with stacked figures. Improves value of slim slaves, but reduces value of stacked slaves. Can be developed to affect goods seen in the slave market and improve slave health. - Provides demand for unexpanded slaves at a healthy weight from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. - Mutually exclusive with [[Asset Expansionism|Encyclopedia][$encyclopedia to "Asset Expansionism"]]. + Provides demand for unexpanded slaves at a healthy weight from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. + Mutually exclusive with [[Asset Expansionism|Encyclopedia][$encyclopedia = "Asset Expansionism"]]. \ <<case "Asset Expansionism">>\ ''Asset Expansionism'' is a future society model which approves of slaves with very large body parts. Improves value of stacked slaves. Can be developed to radically affect goods seen in the slave market. - Provides demand for asset expansion from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. - Mutually exclusive with [[Slimness Enthusiasm|Encyclopedia][$encyclopedia to "Slimness Enthusiasm"]]. + Provides demand for asset expansion from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. + Mutually exclusive with [[Slimness Enthusiasm|Encyclopedia][$encyclopedia = "Slimness Enthusiasm"]]. \ <<case "Pastoralism">>\ ''Pastoralism'' is a future society model which approves of lactation, cockmilking, and the dairy. Improves value of milk and semen. Drives an increase in the ratio of slaves to citizens. Can be developed to massively improve value of milk and semen. - Provides demand for production focused asset expansion from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. - Mutually exclusive with [[Physical Idealism|Encyclopedia][$encyclopedia to "Physical Idealism"]]. + Provides demand for production focused asset expansion from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. + Mutually exclusive with [[Physical Idealism|Encyclopedia][$encyclopedia = "Physical Idealism"]]. \ <<case "Physical Idealism">>\ ''Physical Idealism'' is a future society model which approves of musculature, height, and health. Improves value of slaves with muscles. Can be developed to affect goods seen in the slave market. - Provides demand for muscular slaves from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. - Mutually exclusive with [[Pastoralism|Encyclopedia][$encyclopedia to "Pastoralism"]]. + Provides demand for muscular slaves from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. + Mutually exclusive with [[Pastoralism|Encyclopedia][$encyclopedia = "Pastoralism"]]. \ <<case "Chattel Religionism">>\ -''Chattel Religionism'' is a future society model which approves of appropriate clothing, high devotion, and [[slave marriages|Encyclopedia][$encyclopedia to "Slave Marriages"]]; it disapproves of slutty clothing. +''Chattel Religionism'' is a future society model which approves of appropriate clothing, high devotion, and [[slave marriages|Encyclopedia][$encyclopedia = "Slave Marriages"]]; it disapproves of slutty clothing. Applies a small devotion boost to all slaves, and can remove the weekly devotion gain cap. Drives an increase in the ratio of slaves to citizens. Can be developed to permanently boost reputation and quicken slaves' mental conditioning. - Provides demand for sexual training from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. - Mutually exclusive with [[Multiculturalism|Encyclopedia][$encyclopedia to "Multiculturalism"]]. + Provides demand for sexual training from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. + Mutually exclusive with [[Multiculturalism|Encyclopedia][$encyclopedia = "Multiculturalism"]]. \ <<case "Multiculturalism">>\ ''Multiculturalism'' is a future society model which advances differently than other models: it is improved by the investment of more future society model slots, which can be withdrawn individually if desired. No other advancement occurs and all benefits at each level are available instantly. Provides free reputation each week. Increases arcology prosperity each week. Helps prevent citizens from falling into slavery, slowing population drift towards slaves. - Mutually exclusive with [[Chattel Religionism|Encyclopedia][$encyclopedia to "Chattel Religionism"]]. + Mutually exclusive with [[Chattel Religionism|Encyclopedia][$encyclopedia = "Chattel Religionism"]]. \ <<case "Roman Revivalism">>\ ''Roman Revivalism'' is a future society model which approves of good leadership qualities like wealth and strong defense; disapproves of debt. @@ -1580,7 +1580,7 @@ Money can be expended to directly advance future societies; the spending level c Can apply unique names to slaves. Slows increases in the ratio of slaves to citizens. Can be developed to greatly improve the arcology's resistance to insurrection. - Provides demand for basic educations from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. + Provides demand for basic educations from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. Mutually exclusive with the other Revivalist models. \ <<case "Egyptian Revivalism">>\ @@ -1589,7 +1589,7 @@ Money can be expended to directly advance future societies; the spending level c Can apply unique names to slaves. Slows increases in the ratio of slaves to citizens. Can be developed to improve the Head Girl position, with an additional bonus for Head Girls married to the Concubine, and a massive bonus if the Head Girl is also related to the Concubine. - Provides demand for exotic accents from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. + Provides demand for exotic accents from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. Mutually exclusive with the other Revivalist models. \ <<case "Edo Revivalism">>\ @@ -1597,14 +1597,14 @@ Money can be expended to directly advance future societies; the spending level c Improves efficiency of public servants and club girls. Greatly improves beauty of Japanese slaves. Can be developed to greatly improve the efficiency of direct spending on future societies. - Provides demand for unaccented slaves from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. + Provides demand for unaccented slaves from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. Mutually exclusive with the other Revivalist models. \ <<case "Arabian Revivalism">>\ ''Arabian Revivalism'' is a future society model which approves of keeping a large number of fucktoys and slaves in the master suite, which increases with reputation; disapproves of failure to do so. Grants a bonus to the price received when selling slaves. Can be developed to improve the efficiency of direct spending on future societies and moderately increase rents. - Provides demand for more devoted slaves from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. + Provides demand for more devoted slaves from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. Mutually exclusive with the other Revivalist models. \ <<case "Chinese Revivalism">>\ @@ -1612,7 +1612,7 @@ Money can be expended to directly advance future societies; the spending level c Increases prosperity growth when all three of these positions are staffed. Greatly improves beauty of Chinese slaves. Can be developed to permit the Head Girl to see to an additional slave each week. - Provides demand for intelligence from [[the corporation|Encyclopedia][$encyclopedia to "The Corporation"]]. + Provides demand for intelligence from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]]. Mutually exclusive with the other Revivalist models. \ <<case "Indentured Servants">>\ @@ -1623,62 +1623,62 @@ To prevent the obvious exploitative use of Indentured Servants, using them witho <<case "Menial Slaves">>\ ''Menial slaves'' in general are the numerous slaves in the arcology that are not considered sex slaves, due to advanced age, unattractiveness, or other unsuitability. Their duties in the arcology vary widely from slave to slave and from arcology to arcology. Automation has done away with many traditional jobs in strictly economic terms, but some slaveowning societies prefer to have unskilled tasks done by slaves anyway for reasons of appeal or prestige. Also, the advancement of automation has been beaten back in some areas due to the obviously low practical labor costs in Free Cities with cheap slaves. -Menials remain almost entirely offscreen. The game will track the arcology's population of menial slaves, and many of your decisions can affect the menial population. You can also buy, keep, and sell menial slaves yourself, from the slave markets menu. They will produce a small profit each week through their (unspecified) labors. Alternatively, a tidy profit can be made from playing the slave market for menials. There are also two subtypes of menial slave, both of which become inaccessible if [[Paternalism|Encyclopedia][$encyclopedia to "Paternalism"]] is selected as a societal goal. +Menials remain almost entirely offscreen. The game will track the arcology's population of menial slaves, and many of your decisions can affect the menial population. You can also buy, keep, and sell menial slaves yourself, from the slave markets menu. They will produce a small profit each week through their (unspecified) labors. Alternatively, a tidy profit can be made from playing the slave market for menials. There are also two subtypes of menial slave, both of which become inaccessible if [[Paternalism|Encyclopedia][$encyclopedia = "Paternalism"]] is selected as a societal goal. -__Fuckdolls__ are slaves immured in permanent latex suits with holes over their orifices, turning them into living sex toys. They are more valuable than menial slaves proper, mostly due to the cost of the various compliance and drug components of the suits, which make them quite expensive. The weekly profit from owning Fuckdolls can be improved though a policy unlocked by [[Degradationism|Encyclopedia][$encyclopedia to "Degradationism"]]. Normal menials can be converted into Fuckdolls if an upgraded [[Arcade|Encyclopedia][$encyclopedia to "Arcade"]] is available. +__Fuckdolls__ are slaves immured in permanent latex suits with holes over their orifices, turning them into living sex toys. They are more valuable than menial slaves proper, mostly due to the cost of the various compliance and drug components of the suits, which make them quite expensive. The weekly profit from owning Fuckdolls can be improved though a policy unlocked by [[Degradationism|Encyclopedia][$encyclopedia = "Degradationism"]]. Normal menials can be converted into Fuckdolls if an upgraded [[Arcade|Encyclopedia][$encyclopedia = "Arcade"]] is available. -__Standard Bioreactors__ are slaves who are permanently attached to the arcology for industrial use, which can vary from milking to drug testing to organ farming. They are slightly less valuable than menial slaves proper. The weekly profit from owning Bioreactors can be improved though a policy unlocked by [[Pastoralism|Encyclopedia][$encyclopedia to "Pastoralism"]]. Normal menials can be converted into Bioreactors if an industrialized [[Dairy|Encyclopedia][$encyclopedia to "Dairy"]] is available. +__Standard Bioreactors__ are slaves who are permanently attached to the arcology for industrial use, which can vary from milking to drug testing to organ farming. They are slightly less valuable than menial slaves proper. The weekly profit from owning Bioreactors can be improved though a policy unlocked by [[Pastoralism|Encyclopedia][$encyclopedia = "Pastoralism"]]. Normal menials can be converted into Bioreactors if an industrialized [[Dairy|Encyclopedia][$encyclopedia = "Dairy"]] is available. \ <<case "PC Customization">>\ ''Player Character Customization'' happens at the start of a game of FC: it is not possible to change the PC during the main game. The player must select a career background, a rumored method of acquiring the arcology, and their age group; and choose between some broad body and gender options. \ <<case "PC Age">>\ -''Player Character Age'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] option. Older PCs enjoy easier reputation maintenance, but possess lower sexual energy. +''Player Character Age'' is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] option. Older PCs enjoy easier reputation maintenance, but possess lower sexual energy. \ <<case "PC Body">>\ -''Player Character Body'' is a set of [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] options. All PC body changes will alter scenes, but their main mechanical effect is on reputation maintenance. Feminine options will make it harder to maintain reputation without providing any gameplay advantage, making playing as a feminine PC a form of increased difficulty. There are other minor gameplay differences including differing slave reactions to the PC based on attraction, but these are fairly minor. +''Player Character Body'' is a set of [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] options. All PC body changes will alter scenes, but their main mechanical effect is on reputation maintenance. Feminine options will make it harder to maintain reputation without providing any gameplay advantage, making playing as a feminine PC a form of increased difficulty. There are other minor gameplay differences including differing slave reactions to the PC based on attraction, but these are fairly minor. \ <<case "PC Body">>\ ''Player Character Customization'' happens at the start of a game of FC: it is not possible to change the PC during the main game. The player must select a career background, a rumored method of acquiring the arcology, and their age group; and choose between some broad body and gender options. \ <<case "Wealth">>\ -''Wealth'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for both the career background and rumored method of acquiring the arcology options. In both cases, it provides extra funds at game start, but but no ongoing advantages once the main game begins. +''Wealth'' is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] choice for both the career background and rumored method of acquiring the arcology options. In both cases, it provides extra funds at game start, but but no ongoing advantages once the main game begins. \ <<case "Business">>\ -''Business'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for the career background option. It enhances the business-focused personal attention, increasing the money it produces and improving arcology prosperity when business-focused personal attention is selected. +''Business'' is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] choice for the career background option. It enhances the business-focused personal attention, increasing the money it produces and improving arcology prosperity when business-focused personal attention is selected. \ <<case "PMC Work">>\ -''PMC Work'' (also referred to as a //mercenary background//) is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for the career background option. It greatly reduces the cost of keeping mercenaries in your employ. +''PMC Work'' (also referred to as a //mercenary background//) is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] choice for the career background option. It greatly reduces the cost of keeping mercenaries in your employ. \ <<case "Slaving">>\ -''Slaving'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for the career background option. It enhances slave-focused personal attention, adding bonus [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] or [[Trust|Encyclopedia][$encyclopedia to "Trust"]] to many training applications or preventing their loss. +''Slaving'' is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] choice for the career background option. It enhances slave-focused personal attention, adding bonus [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] or [[Trust|Encyclopedia][$encyclopedia = "Trust"]] to many training applications or preventing their loss. \ <<case "Engineering">>\ -''Engineering'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for the career background option. It provides a significant discount on many arcology upgrades and expansions. +''Engineering'' is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] choice for the career background option. It provides a significant discount on many arcology upgrades and expansions. \ <<case "Medicine">>\ -''Medicine'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for the career background option. It allows the player character to perform surgery personally, providing a discount on surgery costs and a reduction to health damage from surgery. Additionally, slaves may react differently to surgery if the player character performs it. +''Medicine'' is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] choice for the career background option. It allows the player character to perform surgery personally, providing a discount on surgery costs and a reduction to health damage from surgery. Additionally, slaves may react differently to surgery if the player character performs it. \ <<case "Celebrity">>\ -''Celebrity'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for the career background option. It provides extra reputation at game start, but no ongoing advantages once the main game begins, just like the [[Luck|Encyclopedia][$encyclopedia to "Luck"]] choice for the rumored method of acquiring the arcology option. +''Celebrity'' is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] choice for the career background option. It provides extra reputation at game start, but no ongoing advantages once the main game begins, just like the [[Luck|Encyclopedia][$encyclopedia = "Luck"]] choice for the rumored method of acquiring the arcology option. \ <<case "Hard Work">>\ -''Hard Work'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for the rumored method of acquiring the arcology option. It provides a one-time bonus to both [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia to "Trust"]] when a new slave is acquired. +''Hard Work'' is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] choice for the rumored method of acquiring the arcology option. It provides a one-time bonus to both [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] and [[Trust|Encyclopedia][$encyclopedia = "Trust"]] when a new slave is acquired. \ <<case "Force">>\ -''Force'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for the rumored method of acquiring the arcology option. If a slave does not have enough [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] to obey when acquired, this option will terrify her, reducing [[Trust|Encyclopedia][$encyclopedia to "Trust"]] to the point where she should comply. +''Force'' is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] choice for the rumored method of acquiring the arcology option. If a slave does not have enough [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] to obey when acquired, this option will terrify her, reducing [[Trust|Encyclopedia][$encyclopedia = "Trust"]] to the point where she should comply. \ <<case "Social Engineering">>\ -''Social Engineering'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for the rumored method of acquiring the arcology option. It unlocks the first [[Future Society|Encyclopedia][$encyclopedia to "Future Societies"]] selection immediately. It does not add an additional future society model choice; the cap is still four. +''Social Engineering'' is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] choice for the rumored method of acquiring the arcology option. It unlocks the first [[Future Society|Encyclopedia][$encyclopedia = "Future Societies"]] selection immediately. It does not add an additional future society model choice; the cap is still four. \ <<case "Luck">>\ -''Luck'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for the rumored method of acquiring the arcology option. It provides extra reputation at game start, but no ongoing advantages once the main game begins, just like the [[Celebrity|Encyclopedia][$encyclopedia to "Celebrity"]] choice for the career background option. +''Luck'' is a [[Player Character Customization|Encyclopedia][$encyclopedia = "PC Customization"]] choice for the rumored method of acquiring the arcology option. It provides extra reputation at game start, but no ongoing advantages once the main game begins, just like the [[Celebrity|Encyclopedia][$encyclopedia = "Celebrity"]] choice for the career background option. \ <<case "Slave Score (Attractiveness)">>\ -A slave's ''Attractiveness Score'' is a derived stat used to determine a slave's performance at many assignments. It also plays a major role in her price if bought or sold. It's a rough measure, but it's intended to serve as a rough count of how many of your arcology's citizens would be interested in paying to fuck her over the course of a week. The amount they would be willing to pay is determined by her [[Sexual Score|Encyclopedia][$encyclopedia to "Slave Score (Sexual)"]]. Attractiveness Score is affected by virtually every physical trait a slave has, some skills, and societal tastes. +A slave's ''Attractiveness Score'' is a derived stat used to determine a slave's performance at many assignments. It also plays a major role in her price if bought or sold. It's a rough measure, but it's intended to serve as a rough count of how many of your arcology's citizens would be interested in paying to fuck her over the course of a week. The amount they would be willing to pay is determined by her [[Sexual Score|Encyclopedia][$encyclopedia = "Slave Score (Sexual)"]]. Attractiveness Score is affected by virtually every physical trait a slave has, some skills, and societal tastes. \ <<case "Slave Score (Sexual)">>\ -A slave's ''Sexual Score'' is a derived stat used to determine a slave's performance at many assignments. It also plays a major role in her price if bought or sold. It's a rough measure, but it's intended to serve as an estimate of the average price she would command as a street whore over the course of a week. The number of your arcology citizens who might be willing to pay that price is determined by her [[Attractiveness Score|Encyclopedia][$encyclopedia to "Slave Score (Attractiveness)"]]. Sexual Score is affected by sexual skills, some physical traits, [[Health|Encyclopedia][$encyclopedia to "Health"]] and [[Devotion|Encyclopedia][$encyclopedia to "Devotion"]], and societal tastes. +A slave's ''Sexual Score'' is a derived stat used to determine a slave's performance at many assignments. It also plays a major role in her price if bought or sold. It's a rough measure, but it's intended to serve as an estimate of the average price she would command as a street whore over the course of a week. The number of your arcology citizens who might be willing to pay that price is determined by her [[Attractiveness Score|Encyclopedia][$encyclopedia = "Slave Score (Attractiveness)"]]. Sexual Score is affected by sexual skills, some physical traits, [[Health|Encyclopedia][$encyclopedia = "Health"]] and [[Devotion|Encyclopedia][$encyclopedia = "Devotion"]], and societal tastes. \ <<case "Lingua Franca">>\ At the beginning of the game, the lingua franca of the arcology will be determined, either by customization or by default to the most common language of the selected continent. When slaves are generated during the game, they will be assigned a familiarity with the lingua franca based on their nationality, intelligence, education, and in some cases, ethnicity. This accent can range from nonexistent (typical for slaves from the country where the language originated) to crippling, rendering the slave more or less unable to speak and only able to understand basic orders. The latter will reduce a slave's attractiveness. Slaves will learn the lingua franca naturally, a process that is faster for intelligent slaves. It can be sped up by allowing slaves to speak and providing basic slave education. Light accents are considered attractive, but can be eliminated using speech rules that encourage unaccented speech. A thick accent will impede a Head Girl. @@ -1874,130 +1874,130 @@ Error: bad title. <<if ["Flaws", "Arrogant", "Bitchy", "Odd", "Anorexic", "Gluttonous", "Devout", "Liberated", "Hates men", "Hates women"].includes($encyclopedia)>> <br><br> -//Behavioral [[Flaws|Encyclopedia][$encyclopedia to "Flaws"]]://<br> -[[Arrogant|Encyclopedia][$encyclopedia to "Arrogant"]] | [[Bitchy|Encyclopedia][$encyclopedia to "Bitchy"]] | [[Odd|Encyclopedia][$encyclopedia to "Odd"]] | [[Anorexic|Encyclopedia][$encyclopedia to "Anorexic"]] | [[Gluttonous|Encyclopedia][$encyclopedia to "Gluttonous"]] | [[Devout|Encyclopedia][$encyclopedia to "Devout"]] | [[Liberated|Encyclopedia][$encyclopedia to "Liberated"]] | [[Hates men|Encyclopedia][$encyclopedia to "Hates men"]] | [[Hates women|Encyclopedia][$encyclopedia to "Hates women"]] +//Behavioral [[Flaws|Encyclopedia][$encyclopedia = "Flaws"]]://<br> +[[Arrogant|Encyclopedia][$encyclopedia = "Arrogant"]] | [[Bitchy|Encyclopedia][$encyclopedia = "Bitchy"]] | [[Odd|Encyclopedia][$encyclopedia = "Odd"]] | [[Anorexic|Encyclopedia][$encyclopedia = "Anorexic"]] | [[Gluttonous|Encyclopedia][$encyclopedia = "Gluttonous"]] | [[Devout|Encyclopedia][$encyclopedia = "Devout"]] | [[Liberated|Encyclopedia][$encyclopedia = "Liberated"]] | [[Hates men|Encyclopedia][$encyclopedia = "Hates men"]] | [[Hates women|Encyclopedia][$encyclopedia = "Hates women"]] <</if>> <<if ["Quirks", "Confident", "Cutting", "Funny", "Fitness", "Insecure", "Sinful", "Advocate", "Adores men", "Adores women"].includes($encyclopedia)>> <br><br> -//Behavioral [[Quirks|Encyclopedia][$encyclopedia to "Quirks"]]://<br> -[[Confident|Encyclopedia][$encyclopedia to "Confident"]] | [[Cutting|Encyclopedia][$encyclopedia to "Cutting"]] | [[Funny|Encyclopedia][$encyclopedia to "Funny"]] | [[Fitness|Encyclopedia][$encyclopedia to "Fitness"]] | [[Insecure|Encyclopedia][$encyclopedia to "Insecure"]] | [[Sinful|Encyclopedia][$encyclopedia to "Sinful"]] | [[Advocate|Encyclopedia][$encyclopedia to "Advocate"]] | [[Adores women|Encyclopedia][$encyclopedia to "Adores women"]] | [[Adores men|Encyclopedia][$encyclopedia to "Adores men"]] +//Behavioral [[Quirks|Encyclopedia][$encyclopedia = "Quirks"]]://<br> +[[Confident|Encyclopedia][$encyclopedia = "Confident"]] | [[Cutting|Encyclopedia][$encyclopedia = "Cutting"]] | [[Funny|Encyclopedia][$encyclopedia = "Funny"]] | [[Fitness|Encyclopedia][$encyclopedia = "Fitness"]] | [[Insecure|Encyclopedia][$encyclopedia = "Insecure"]] | [[Sinful|Encyclopedia][$encyclopedia = "Sinful"]] | [[Advocate|Encyclopedia][$encyclopedia = "Advocate"]] | [[Adores women|Encyclopedia][$encyclopedia = "Adores women"]] | [[Adores men|Encyclopedia][$encyclopedia = "Adores men"]] <</if>> <<if ["Flaws", "Crude", "Judgemental", "Hates oral", "Hates anal", "Hates penetration", "Repressed", "Idealistic", "Shamefast", "Apathetic", "Cum Addicts", "Anal Addicts", "Attention Whores", "Breast Obsession", "Abusiveness", "Maliciousness", "Self Hatred", "Self Neglect", "Breeding Obsession"].includes($encyclopedia)>> <br><br> -//Sexual [[Flaws|Encyclopedia][$encyclopedia to "Flaws"]]://<br> +//Sexual [[Flaws|Encyclopedia][$encyclopedia = "Flaws"]]://<br> -//Standard flaws:// [[Crude|Encyclopedia][$encyclopedia to "Crude"]] | [[Judgemental|Encyclopedia][$encyclopedia to "Judgemental"]] | [[Hates oral|Encyclopedia][$encyclopedia to "Hates oral"]] | [[Hates anal|Encyclopedia][$encyclopedia to "Hates anal"]] | [[Hates penetration|Encyclopedia][$encyclopedia to "Hates penetration"]] | [[Shamefast|Encyclopedia][$encyclopedia to "Shamefast"]] | [[Idealistic|Encyclopedia][$encyclopedia to "Idealistic"]] | [[Repressed|Encyclopedia][$encyclopedia to "Repressed"]] | [[Apathetic|Encyclopedia][$encyclopedia to "Apathetic"]]<br> -//Paraphilias:// [[Cum Addicts|Encyclopedia][$encyclopedia to "Cum Addicts"]] | [[Anal Addicts|Encyclopedia][$encyclopedia to "Anal Addicts"]] | [[Attention Whores|Encyclopedia][$encyclopedia to "Attention Whores"]] | [[Breast Obsession|Encyclopedia][$encyclopedia to "Breast Obsession"]] | [[Abusiveness|Encyclopedia][$encyclopedia to "Abusiveness"]] | [[Maliciousness|Encyclopedia][$encyclopedia to "Maliciousness"]] | [[Self Hatred|Encyclopedia][$encyclopedia to "Self Hatred"]] | [[Self Neglect|Encyclopedia][$encyclopedia to "Self Neglect"]] | [[Breeding Obsession|Encyclopedia][$encyclopedia to "Breeding Obsession"]] +//Standard flaws:// [[Crude|Encyclopedia][$encyclopedia = "Crude"]] | [[Judgemental|Encyclopedia][$encyclopedia = "Judgemental"]] | [[Hates oral|Encyclopedia][$encyclopedia = "Hates oral"]] | [[Hates anal|Encyclopedia][$encyclopedia = "Hates anal"]] | [[Hates penetration|Encyclopedia][$encyclopedia = "Hates penetration"]] | [[Shamefast|Encyclopedia][$encyclopedia = "Shamefast"]] | [[Idealistic|Encyclopedia][$encyclopedia = "Idealistic"]] | [[Repressed|Encyclopedia][$encyclopedia = "Repressed"]] | [[Apathetic|Encyclopedia][$encyclopedia = "Apathetic"]]<br> +//Paraphilias:// [[Cum Addicts|Encyclopedia][$encyclopedia = "Cum Addicts"]] | [[Anal Addicts|Encyclopedia][$encyclopedia = "Anal Addicts"]] | [[Attention Whores|Encyclopedia][$encyclopedia = "Attention Whores"]] | [[Breast Obsession|Encyclopedia][$encyclopedia = "Breast Obsession"]] | [[Abusiveness|Encyclopedia][$encyclopedia = "Abusiveness"]] | [[Maliciousness|Encyclopedia][$encyclopedia = "Maliciousness"]] | [[Self Hatred|Encyclopedia][$encyclopedia = "Self Hatred"]] | [[Self Neglect|Encyclopedia][$encyclopedia = "Self Neglect"]] | [[Breeding Obsession|Encyclopedia][$encyclopedia = "Breeding Obsession"]] <</if>> <<if ["Quirks", "Unflinching", "Size Queen", "Gagfuck Queen", "Painal Queen", "Strugglefuck Queen", "Tease", "Romantic", "Perverted", "Caring"].includes($encyclopedia)>> <br><br> -//Sexual [[Quirks|Encyclopedia][$encyclopedia to "Quirks"]]://<br> -[[Unflinching|Encyclopedia][$encyclopedia to "Unflinching"]] | [[Size Queen|Encyclopedia][$encyclopedia to "Size Queen"]] | [[Gagfuck Queen|Encyclopedia][$encyclopedia to "Gagfuck Queen"]] | [[Painal Queen|Encyclopedia][$encyclopedia to "Painal Queen"]] | [[Strugglefuck Queen|Encyclopedia][$encyclopedia to "Strugglefuck Queen"]] | [[Tease|Encyclopedia][$encyclopedia to "Tease"]] | [[Romantic|Encyclopedia][$encyclopedia to "Romantic"]] | [[Perverted|Encyclopedia][$encyclopedia to "Perverted"]] | [[Caring|Encyclopedia][$encyclopedia to "Caring"]] +//Sexual [[Quirks|Encyclopedia][$encyclopedia = "Quirks"]]://<br> +[[Unflinching|Encyclopedia][$encyclopedia = "Unflinching"]] | [[Size Queen|Encyclopedia][$encyclopedia = "Size Queen"]] | [[Gagfuck Queen|Encyclopedia][$encyclopedia = "Gagfuck Queen"]] | [[Painal Queen|Encyclopedia][$encyclopedia = "Painal Queen"]] | [[Strugglefuck Queen|Encyclopedia][$encyclopedia = "Strugglefuck Queen"]] | [[Tease|Encyclopedia][$encyclopedia = "Tease"]] | [[Romantic|Encyclopedia][$encyclopedia = "Romantic"]] | [[Perverted|Encyclopedia][$encyclopedia = "Perverted"]] | [[Caring|Encyclopedia][$encyclopedia = "Caring"]] <</if>> <<if ["Boob Fetishists", "Buttsluts", "Cumsluts", "Doms", "Humiliation Fetishists", "Masochists", "Pregnancy Fetishists", "Sadists", "Submissives"].includes($encyclopedia)>> <br><br> //Slave Fetishes//<br> -[[Boob Fetishists|Encyclopedia][$encyclopedia to "Boob Fetishists"]] | [[Buttsluts|Encyclopedia][$encyclopedia to "Buttsluts"]] | [[Cumsluts|Encyclopedia][$encyclopedia to "Cumsluts"]] | [[Doms|Encyclopedia][$encyclopedia to "Doms"]] | [[Humiliation Fetishists|Encyclopedia][$encyclopedia to "Humiliation Fetishists"]] | [[Masochists|Encyclopedia][$encyclopedia to "Masochists"]] | [[Pregnancy Fetishists|Encyclopedia][$encyclopedia to "Pregnancy Fetishists"]] | [[Sadists|Encyclopedia][$encyclopedia to "Sadists"]] | [[Submissives|Encyclopedia][$encyclopedia to "Submissives"]] +[[Boob Fetishists|Encyclopedia][$encyclopedia = "Boob Fetishists"]] | [[Buttsluts|Encyclopedia][$encyclopedia = "Buttsluts"]] | [[Cumsluts|Encyclopedia][$encyclopedia = "Cumsluts"]] | [[Doms|Encyclopedia][$encyclopedia = "Doms"]] | [[Humiliation Fetishists|Encyclopedia][$encyclopedia = "Humiliation Fetishists"]] | [[Masochists|Encyclopedia][$encyclopedia = "Masochists"]] | [[Pregnancy Fetishists|Encyclopedia][$encyclopedia = "Pregnancy Fetishists"]] | [[Sadists|Encyclopedia][$encyclopedia = "Sadists"]] | [[Submissives|Encyclopedia][$encyclopedia = "Submissives"]] <</if>> <<if ["Areolae", "Anuses", "Breasts", "Butts", "Ethnicity", "Faces", "Height", "Lactation", "Lips", "Musculature", "Nipples", "Ovaries", "Penises", "Pregnancy", "Skin Distinctions", "Testicles", "Vaginas", "Teeth", "Weight"].includes($encyclopedia)>> <br><br> //Slaves' bodies//<br> -[[Anuses|Encyclopedia][$encyclopedia to "Anuses"]] | -[[Areolae|Encyclopedia][$encyclopedia to "Areolae"]] | [[Breasts|Encyclopedia][$encyclopedia to "Breasts"]] | [[Butts|Encyclopedia][$encyclopedia to "Butts"]] | [[Ethnicity|Encyclopedia][$encyclopedia to "Ethnicity"]] | [[Faces|Encyclopedia][$encyclopedia to "Faces"]] | [[Height|Encyclopedia][$encyclopedia to "Height"]] | [[Lactation|Encyclopedia][$encyclopedia to "Lactation"]] | [[Lips|Encyclopedia][$encyclopedia to "Lips"]] | [[Musculature|Encyclopedia][$encyclopedia to "Musculature"]] | [[Nipples|Encyclopedia][$encyclopedia to "Nipples"]] | [[Ovaries|Encyclopedia][$encyclopedia to "Ovaries"]] | [[Penises|Encyclopedia][$encyclopedia to "Penises"]] | [[Pregnancy|Encyclopedia][$encyclopedia to "Pregnancy"]] | [[Skin Distinctions|Encyclopedia][$encyclopedia to "Skin Distinctions"]] | [[Teeth|Encyclopedia][$encyclopedia to "Teeth"]] | [[Testicles|Encyclopedia][$encyclopedia to "Testicles"]] | [[Weight|Encyclopedia][$encyclopedia to "Weight"]] | [[Vaginas|Encyclopedia][$encyclopedia to "Vaginas"]] +[[Anuses|Encyclopedia][$encyclopedia = "Anuses"]] | +[[Areolae|Encyclopedia][$encyclopedia = "Areolae"]] | [[Breasts|Encyclopedia][$encyclopedia = "Breasts"]] | [[Butts|Encyclopedia][$encyclopedia = "Butts"]] | [[Ethnicity|Encyclopedia][$encyclopedia = "Ethnicity"]] | [[Faces|Encyclopedia][$encyclopedia = "Faces"]] | [[Height|Encyclopedia][$encyclopedia = "Height"]] | [[Lactation|Encyclopedia][$encyclopedia = "Lactation"]] | [[Lips|Encyclopedia][$encyclopedia = "Lips"]] | [[Musculature|Encyclopedia][$encyclopedia = "Musculature"]] | [[Nipples|Encyclopedia][$encyclopedia = "Nipples"]] | [[Ovaries|Encyclopedia][$encyclopedia = "Ovaries"]] | [[Penises|Encyclopedia][$encyclopedia = "Penises"]] | [[Pregnancy|Encyclopedia][$encyclopedia = "Pregnancy"]] | [[Skin Distinctions|Encyclopedia][$encyclopedia = "Skin Distinctions"]] | [[Teeth|Encyclopedia][$encyclopedia = "Teeth"]] | [[Testicles|Encyclopedia][$encyclopedia = "Testicles"]] | [[Weight|Encyclopedia][$encyclopedia = "Weight"]] | [[Vaginas|Encyclopedia][$encyclopedia = "Vaginas"]] <</if>> <<if ["Attendant", "Bodyguard", "Concubine", "Madam", "DJ", "Head Girl", "Milkmaid", "Recruiter", "Schoolteacher", "Stewardess", "Wardeness", "Nurse"].includes($encyclopedia)>> <br><br> //Leadership positions//<br> -[[Attendant|Encyclopedia][$encyclopedia to "Attendant"]] | [[Bodyguard|Encyclopedia][$encyclopedia to "Bodyguard"]] | [[Concubine|Encyclopedia][$encyclopedia to "Concubine"]] | [[DJ|Encyclopedia][$encyclopedia to "DJ"]] | [[Head Girl|Encyclopedia][$encyclopedia to "Head Girl"]] | [[Madam|Encyclopedia][$encyclopedia to "Madam"]] | [[Milkmaid|Encyclopedia][$encyclopedia to "Milkmaid"]] | [[Nurse|Encyclopedia][$encyclopedia to "Nurse"]] | [[Recruiter|Encyclopedia][$encyclopedia to "Recruiter"]] | [[Schoolteacher|Encyclopedia][$encyclopedia to "Schoolteacher"]] | [[Stewardess|Encyclopedia][$encyclopedia to "Stewardess"]] | [[Wardeness|Encyclopedia][$encyclopedia to "Wardeness"]] +[[Attendant|Encyclopedia][$encyclopedia = "Attendant"]] | [[Bodyguard|Encyclopedia][$encyclopedia = "Bodyguard"]] | [[Concubine|Encyclopedia][$encyclopedia = "Concubine"]] | [[DJ|Encyclopedia][$encyclopedia = "DJ"]] | [[Head Girl|Encyclopedia][$encyclopedia = "Head Girl"]] | [[Madam|Encyclopedia][$encyclopedia = "Madam"]] | [[Milkmaid|Encyclopedia][$encyclopedia = "Milkmaid"]] | [[Nurse|Encyclopedia][$encyclopedia = "Nurse"]] | [[Recruiter|Encyclopedia][$encyclopedia = "Recruiter"]] | [[Schoolteacher|Encyclopedia][$encyclopedia = "Schoolteacher"]] | [[Stewardess|Encyclopedia][$encyclopedia = "Stewardess"]] | [[Wardeness|Encyclopedia][$encyclopedia = "Wardeness"]] <</if>> <<if ["Attending Classes", "Cockmilking", "Confinement", "Fucktoy", "Glory Hole", "Milking", "Public Service", "Rest", "Sexual Servitude", "Servitude", "Whoring"].includes($encyclopedia)>> <br><br> //Assignments//<br> -[[Attending Classes|Encyclopedia][$encyclopedia to "Attending Classes"]] | [[Confinement|Encyclopedia][$encyclopedia to "Confinement"]] | [[Fucktoy|Encyclopedia][$encyclopedia to "Fucktoy"]] | [[Glory Hole|Encyclopedia][$encyclopedia to "Glory Hole"]] | [[Milking|Encyclopedia][$encyclopedia to "Milking"]] | [[Public Service|Encyclopedia][$encyclopedia to "Public Service"]] | [[Rest|Encyclopedia][$encyclopedia to "Rest"]] | [[Servitude, Sexual|Encyclopedia][$encyclopedia to "Sexual Servitude"]] | [[Servitude|Encyclopedia][$encyclopedia to "Servitude"]] | [[Whoring|Encyclopedia][$encyclopedia to "Whoring"]] +[[Attending Classes|Encyclopedia][$encyclopedia = "Attending Classes"]] | [[Confinement|Encyclopedia][$encyclopedia = "Confinement"]] | [[Fucktoy|Encyclopedia][$encyclopedia = "Fucktoy"]] | [[Glory Hole|Encyclopedia][$encyclopedia = "Glory Hole"]] | [[Milking|Encyclopedia][$encyclopedia = "Milking"]] | [[Public Service|Encyclopedia][$encyclopedia = "Public Service"]] | [[Rest|Encyclopedia][$encyclopedia = "Rest"]] | [[Servitude, Sexual|Encyclopedia][$encyclopedia = "Sexual Servitude"]] | [[Servitude|Encyclopedia][$encyclopedia = "Servitude"]] | [[Whoring|Encyclopedia][$encyclopedia = "Whoring"]] <</if>> <<if ["Arcade", "Brothel", "Cellblock", "Club", "Collection Facility", "Head Girl Suite", "Master Suite", "Schoolroom", "Pit", "Servants' Quarters", "Spa", "Clinic"].includes($encyclopedia)>> <br><br> -//Arcology [[Facilities|Encyclopedia][$encyclopedia to "Facilities"]]//<br> -[[[Arcade|Encyclopedia][$encyclopedia to "Arcade"]] | [[Brothel|Encyclopedia][$encyclopedia to "Brothel"]] | [[Cellblock|Encyclopedia][$encyclopedia to "Cellblock"]] | [[Club|Encyclopedia][$encyclopedia to "Club"]] | -[[[Clinic|Encyclopedia][$encyclopedia to "Clinic"]] | [[Dairy|Encyclopedia][$encyclopedia to "Dairy"]] | [[Head Girl Suite|Encyclopedia][$encyclopedia to "Head Girl Suite"]] | [[Master Suite|Encyclopedia][$encyclopedia to "Master Suite"]] | [[Pit|Encyclopedia][$encyclopedia to "Pit"]] | [[Schoolroom|Encyclopedia][$encyclopedia to "Schoolroom"]] | [[Servants' Quarters|Encyclopedia][$encyclopedia to "Servants' Quarters"]] | [[Spa|Encyclopedia][$encyclopedia to "Spa"]] | +//Arcology [[Facilities|Encyclopedia][$encyclopedia = "Facilities"]]//<br> +[[[Arcade|Encyclopedia][$encyclopedia = "Arcade"]] | [[Brothel|Encyclopedia][$encyclopedia = "Brothel"]] | [[Cellblock|Encyclopedia][$encyclopedia = "Cellblock"]] | [[Club|Encyclopedia][$encyclopedia = "Club"]] | +[[[Clinic|Encyclopedia][$encyclopedia = "Clinic"]] | [[Dairy|Encyclopedia][$encyclopedia = "Dairy"]] | [[Head Girl Suite|Encyclopedia][$encyclopedia = "Head Girl Suite"]] | [[Master Suite|Encyclopedia][$encyclopedia = "Master Suite"]] | [[Pit|Encyclopedia][$encyclopedia = "Pit"]] | [[Schoolroom|Encyclopedia][$encyclopedia = "Schoolroom"]] | [[Servants' Quarters|Encyclopedia][$encyclopedia = "Servants' Quarters"]] | [[Spa|Encyclopedia][$encyclopedia = "Spa"]] | <br> //Facility Bonuses//<br> -[[[Advertising|Encyclopedia][$encyclopedia to "Advertising"]] | [[Variety|Encyclopedia][$encyclopedia to "Variety"]] +[[[Advertising|Encyclopedia][$encyclopedia = "Advertising"]] | [[Variety|Encyclopedia][$encyclopedia = "Variety"]] <</if>> <<if ["Anal Skill", "Combat Skill", "Entertainment Skill", "Oral Skill", "Vaginal Skill", "Whoring Skill", "Career Experience"].includes($encyclopedia)>> <br><br> //Skills//<br> -[[Anal Skill|Encyclopedia][$encyclopedia to "Anal Skill"]] | [[Career Experience|Encyclopedia][$encyclopedia to "Career Experience"]] | [[Combat Skill|Encyclopedia][$encyclopedia to "Combat Skill"]] | [[Entertainment Skill|Encyclopedia][$encyclopedia to "Entertainment Skill"]] | [[Oral Skill|Encyclopedia][$encyclopedia to "Oral Skill"]] | [[Vaginal Skill|Encyclopedia][$encyclopedia to "Vaginal Skill"]] | [[Whoring Skill|Encyclopedia][$encyclopedia to "Whoring Skill"]] +[[Anal Skill|Encyclopedia][$encyclopedia = "Anal Skill"]] | [[Career Experience|Encyclopedia][$encyclopedia = "Career Experience"]] | [[Combat Skill|Encyclopedia][$encyclopedia = "Combat Skill"]] | [[Entertainment Skill|Encyclopedia][$encyclopedia = "Entertainment Skill"]] | [[Oral Skill|Encyclopedia][$encyclopedia = "Oral Skill"]] | [[Vaginal Skill|Encyclopedia][$encyclopedia = "Vaginal Skill"]] | [[Whoring Skill|Encyclopedia][$encyclopedia = "Whoring Skill"]] <</if>> <<if ["Future Societies", "Ethnic Supremacy", "Ethnic Subjugationism", "Gender Radicalism", "Gender Fundamentalism", "Paternalism", "Degradationism", "Body Purism", "Transformation Fetishism", "Maturity Preferentialism", "Youth Preferentialism", "Slimness Enthusiasm", "Asset Expansionism", "Pastoralism", "Physical Idealism", "Chattel Religionism", "Multiculturalism", "Roman Revivalism", "Egyptian Revivalism", "Edo Revivalism", "Arabian Revivalism", "Chinese Revivalism"].includes($encyclopedia)>> <br><br> //Future Societies//<br> -[[Future Societies generally|Encyclopedia][$encyclopedia to "Future Societies"]] | [[Ethnic Supremacy|Encyclopedia][$encyclopedia to "Ethnic Supremacy"]] | [[Ethnic Subjugationism|Encyclopedia][$encyclopedia to "Ethnic Subjugationism"]] | [[Gender Radicalism|Encyclopedia][$encyclopedia to "Gender Radicalism"]] | [[Gender Fundamentalism|Encyclopedia][$encyclopedia to "Gender Fundamentalism"]] | [[Paternalism|Encyclopedia][$encyclopedia to "Paternalism"]] | [[Degradationism|Encyclopedia][$encyclopedia to "Degradationism"]] | [[Body Purism|Encyclopedia][$encyclopedia to "Body Purism"]] | [[Transformation Fetishism|Encyclopedia][$encyclopedia to "Transformation Fetishism"]] | [[Maturity Preferentialism|Encyclopedia][$encyclopedia to "Maturity Preferentialism"]] | [[Youth Preferentialism|Encyclopedia][$encyclopedia to "Youth Preferentialism"]] | [[Slimness Enthusiasm|Encyclopedia][$encyclopedia to "Slimness Enthusiasm"]] | [[Asset Expansionism|Encyclopedia][$encyclopedia to "Asset Expansionism"]] | [[Pastoralism|Encyclopedia][$encyclopedia to "Pastoralism"]] | [[Physical Idealism|Encyclopedia][$encyclopedia to "Physical Idealism"]] | [[Chattel Religionism|Encyclopedia][$encyclopedia to "Chattel Religionism"]] | [[Multiculturalism|Encyclopedia][$encyclopedia to "Multiculturalism"]] | [[Roman Revivalism|Encyclopedia][$encyclopedia to "Roman Revivalism"]] | [[Egyptian Revivalism|Encyclopedia][$encyclopedia to "Egyptian Revivalism"]] | [[Edo Revivalism|Encyclopedia][$encyclopedia to "Edo Revivalism"]] | [[Arabian Revivalism|Encyclopedia][$encyclopedia to "Arabian Revivalism"]] | [[Chinese Revivalism|Encyclopedia][$encyclopedia to "Chinese Revivalism"]] +[[Future Societies generally|Encyclopedia][$encyclopedia = "Future Societies"]] | [[Ethnic Supremacy|Encyclopedia][$encyclopedia = "Ethnic Supremacy"]] | [[Ethnic Subjugationism|Encyclopedia][$encyclopedia = "Ethnic Subjugationism"]] | [[Gender Radicalism|Encyclopedia][$encyclopedia = "Gender Radicalism"]] | [[Gender Fundamentalism|Encyclopedia][$encyclopedia = "Gender Fundamentalism"]] | [[Paternalism|Encyclopedia][$encyclopedia = "Paternalism"]] | [[Degradationism|Encyclopedia][$encyclopedia = "Degradationism"]] | [[Body Purism|Encyclopedia][$encyclopedia = "Body Purism"]] | [[Transformation Fetishism|Encyclopedia][$encyclopedia = "Transformation Fetishism"]] | [[Maturity Preferentialism|Encyclopedia][$encyclopedia = "Maturity Preferentialism"]] | [[Youth Preferentialism|Encyclopedia][$encyclopedia = "Youth Preferentialism"]] | [[Slimness Enthusiasm|Encyclopedia][$encyclopedia = "Slimness Enthusiasm"]] | [[Asset Expansionism|Encyclopedia][$encyclopedia = "Asset Expansionism"]] | [[Pastoralism|Encyclopedia][$encyclopedia = "Pastoralism"]] | [[Physical Idealism|Encyclopedia][$encyclopedia = "Physical Idealism"]] | [[Chattel Religionism|Encyclopedia][$encyclopedia = "Chattel Religionism"]] | [[Multiculturalism|Encyclopedia][$encyclopedia = "Multiculturalism"]] | [[Roman Revivalism|Encyclopedia][$encyclopedia = "Roman Revivalism"]] | [[Egyptian Revivalism|Encyclopedia][$encyclopedia = "Egyptian Revivalism"]] | [[Edo Revivalism|Encyclopedia][$encyclopedia = "Edo Revivalism"]] | [[Arabian Revivalism|Encyclopedia][$encyclopedia = "Arabian Revivalism"]] | [[Chinese Revivalism|Encyclopedia][$encyclopedia = "Chinese Revivalism"]] <</if>> <<if ["PC Customization", "PC Age", "PC Body", "Wealth", "Business", "PMC Work", "Slaving", "Engineering", "Medicine", "Celebrity", "Hard Work", "Force", "Social Engineering", "Luck"].includes($encyclopedia)>> <br><br> //Player Character Customization//<br> -[[Customization (PC)|Encyclopedia][$encyclopedia to "PC Customization"]] | [[Age (PC)|Encyclopedia][$encyclopedia to "PC Age"]] | [[Body (PC)|Encyclopedia][$encyclopedia to "PC Body"]] | [[Wealth|Encyclopedia][$encyclopedia to "Wealth"]] | [[Business|Encyclopedia][$encyclopedia to "Business"]] | [[PMC Work|Encyclopedia][$encyclopedia to "PMC Work"]] | [[Slaving|Encyclopedia][$encyclopedia to "Slaving"]] | [[Engineering|Encyclopedia][$encyclopedia to "Engineering"]] | [[Medicine|Encyclopedia][$encyclopedia to "Medicine"]] | [[Celebrity|Encyclopedia][$encyclopedia to "Celebrity"]] | [[Hard Work|Encyclopedia][$encyclopedia to "Hard Work"]] | [[Force|Encyclopedia][$encyclopedia to "Force"]] | [[Social Engineering|Encyclopedia][$encyclopedia to "Social Engineering"]] | [[Luck|Encyclopedia][$encyclopedia to "Luck"]] +[[Customization (PC)|Encyclopedia][$encyclopedia = "PC Customization"]] | [[Age (PC)|Encyclopedia][$encyclopedia = "PC Age"]] | [[Body (PC)|Encyclopedia][$encyclopedia = "PC Body"]] | [[Wealth|Encyclopedia][$encyclopedia = "Wealth"]] | [[Business|Encyclopedia][$encyclopedia = "Business"]] | [[PMC Work|Encyclopedia][$encyclopedia = "PMC Work"]] | [[Slaving|Encyclopedia][$encyclopedia = "Slaving"]] | [[Engineering|Encyclopedia][$encyclopedia = "Engineering"]] | [[Medicine|Encyclopedia][$encyclopedia = "Medicine"]] | [[Celebrity|Encyclopedia][$encyclopedia = "Celebrity"]] | [[Hard Work|Encyclopedia][$encyclopedia = "Hard Work"]] | [[Force|Encyclopedia][$encyclopedia = "Force"]] | [[Social Engineering|Encyclopedia][$encyclopedia = "Social Engineering"]] | [[Luck|Encyclopedia][$encyclopedia = "Luck"]] <</if>> <<if ["Urban Terrain", "Rural Terrain", "Marine Terrain"].includes($encyclopedia)>> <br><br> //Terrain settings//<br> -[[Urban|Encyclopedia][$encyclopedia to "Urban Terrain"]] | -[[Rural|Encyclopedia][$encyclopedia to "Rural Terrain"]] | -[[Marine|Encyclopedia][$encyclopedia to "Marine Terrain"]] +[[Urban|Encyclopedia][$encyclopedia = "Urban Terrain"]] | +[[Rural|Encyclopedia][$encyclopedia = "Rural Terrain"]] | +[[Marine|Encyclopedia][$encyclopedia = "Marine Terrain"]] <</if>> <<if ["Relationships", "Rivalries", "Romances", "Slave Marriages", "Slaveowner Marriages", "Emotional Slut", "Emotionally Bonded"].includes($encyclopedia)>> <br><br> //Relationships//<br> -[[Rivalries|Encyclopedia][$encyclopedia to "Rivalries"]] | -[[Romances|Encyclopedia][$encyclopedia to "Romances"]] | -[[Emotionally Bonded|Encyclopedia][$encyclopedia to "Emotionally Bonded"]] | -[[Emotional Slut|Encyclopedia][$encyclopedia to "Emotional Slut"]] | -[[Slave Marriages|Encyclopedia][$encyclopedia to "Slave Marriages"]] | -[[Slaveowner Marriages|Encyclopedia][$encyclopedia to "Slaveowner Marriages"]] +[[Rivalries|Encyclopedia][$encyclopedia = "Rivalries"]] | +[[Romances|Encyclopedia][$encyclopedia = "Romances"]] | +[[Emotionally Bonded|Encyclopedia][$encyclopedia = "Emotionally Bonded"]] | +[[Emotional Slut|Encyclopedia][$encyclopedia = "Emotional Slut"]] | +[[Slave Marriages|Encyclopedia][$encyclopedia = "Slave Marriages"]] | +[[Slaveowner Marriages|Encyclopedia][$encyclopedia = "Slaveowner Marriages"]] <</if>> <<if ["Facilities", "Flaws", "Hormones (XX)", "Hormones (XY)", "Quirks", "Trust", "Devotion", "Health", "Lingua Franca", "Menial Slaves", "Indentured Servants", "Relationships"].includes($encyclopedia)>> <br><br> //General concepts//<br> -[[Devotion|Encyclopedia][$encyclopedia to "Devotion"]] | [[Facilities|Encyclopedia][$encyclopedia to "Facilities"]] | [[Flaws|Encyclopedia][$encyclopedia to "Flaws"]] | -[[Future Societies|Encyclopedia][$encyclopedia to "Future Societies"]] | -[[Hormones (XX)|Encyclopedia][$encyclopedia to "Hormones (XX)"]] | -[[Hormones (XY)|Encyclopedia][$encyclopedia to "Hormones (XY)"]] | -[[Indentured Servants|Encyclopedia][$encyclopedia to "Indentured Servants"]] | -[[Menial Slaves|Encyclopedia][$encyclopedia to "Menial Slaves"]] | -[[PC Customization|Encyclopedia][$encyclopedia to "PC Customization"]] | [[Quirks|Encyclopedia][$encyclopedia to "Quirks"]] | -[[Lingua Franca|Encyclopedia][$encyclopedia to "Lingua Franca"]] | -[[Relationships|Encyclopedia][$encyclopedia to "Relationships"]] | -[[Slave Score (Attractiveness)|Encyclopedia][$encyclopedia to "Slave Score (Attractiveness)"]] | -[[Slave Score (Sexual)|Encyclopedia][$encyclopedia to "Slave Score (Sexual)"]] | -[[Trust|Encyclopedia][$encyclopedia to "Trust"]] +[[Devotion|Encyclopedia][$encyclopedia = "Devotion"]] | [[Facilities|Encyclopedia][$encyclopedia = "Facilities"]] | [[Flaws|Encyclopedia][$encyclopedia = "Flaws"]] | +[[Future Societies|Encyclopedia][$encyclopedia = "Future Societies"]] | +[[Hormones (XX)|Encyclopedia][$encyclopedia = "Hormones (XX)"]] | +[[Hormones (XY)|Encyclopedia][$encyclopedia = "Hormones (XY)"]] | +[[Indentured Servants|Encyclopedia][$encyclopedia = "Indentured Servants"]] | +[[Menial Slaves|Encyclopedia][$encyclopedia = "Menial Slaves"]] | +[[PC Customization|Encyclopedia][$encyclopedia = "PC Customization"]] | [[Quirks|Encyclopedia][$encyclopedia = "Quirks"]] | +[[Lingua Franca|Encyclopedia][$encyclopedia = "Lingua Franca"]] | +[[Relationships|Encyclopedia][$encyclopedia = "Relationships"]] | +[[Slave Score (Attractiveness)|Encyclopedia][$encyclopedia = "Slave Score (Attractiveness)"]] | +[[Slave Score (Sexual)|Encyclopedia][$encyclopedia = "Slave Score (Sexual)"]] | +[[Trust|Encyclopedia][$encyclopedia = "Trust"]] <</if>> <</nobr>> __Encyclopedia FC__ -Gameplay: <<link "First Game Guide">><<set $encyclopedia to "First Game Guide">><<goto "Encyclopedia">><</link>> | <<link "How to Play">><<set $encyclopedia to "How to Play">><<goto "Encyclopedia">><</link>> | <<link "Keyboard Shortcuts">><<set $encyclopedia to "Keyboard Shortcuts">><<goto "Encyclopedia">><</link>> | <<link "Tips and Tricks">><<set $encyclopedia to "Tips and Tricks">><<goto "Encyclopedia">><</link>> | <<link "Drugs and Their Effects">><<set $encyclopedia to "Drugs and Their Effects">><<goto "Encyclopedia">><</link>> | <<link "From Rebellious to Devoted">><<set $encyclopedia to "From Rebellious to Devoted">><<goto "Encyclopedia">><</link>> | <<link "Sexual Energy">><<set $encyclopedia to "Sexual Energy">><<goto "Encyclopedia">><</link>> | <<link "Random Events">><<set $encyclopedia to "Random Events">><<goto "Encyclopedia">><</link>> | <<link "Enslaving People">><<set $encyclopedia to "Enslaving People">><<goto "Encyclopedia">><</link>> | <<link "Arcologies and Reputation">><<set $encyclopedia to "Arcologies and Reputation">><<goto "Encyclopedia">><</link>> | <<link "Pre-Owned Slaves">><<set $encyclopedia to "Pre-Owned Slaves">><<goto "Encyclopedia">><</link>> | <<link "The Corporation">><<set $encyclopedia to "The Corporation">><<goto "Encyclopedia">><</link>> | <<link "Costs Summary">><<set $encyclopedia to "Costs Summary">><<goto "Encyclopedia">><</link>> | <<link "Rules Assistant">><<set $encyclopedia to "Rules Assistant">><<goto "Encyclopedia">><</link>> -The X-Series Arcology: <<link "What the Upgrades Do">><<set $encyclopedia to "What the Upgrades Do">><<goto "Encyclopedia">><</link>> | <<link "Personal Assistant">><<set $encyclopedia to "Personal Assistant">><<goto "Encyclopedia">><</link>> | <<link "Security Drones">><<set $encyclopedia to "Security Drones">><<goto "Encyclopedia">><</link>> | <<link "Water Filtration">><<set $encyclopedia to "Water Filtration">><<goto "Encyclopedia">><</link>> | <<link "Slave Nutrition">><<set $encyclopedia to "Slave Nutrition">><<goto "Encyclopedia">><</link>> | <<link "The Remote Surgery">><<set $encyclopedia to "The Remote Surgery">><<goto "Encyclopedia">><</link>> | <<link "The Pharmaceutical Fab.">><<set $encyclopedia to "The Pharmaceutical Fab.">><<goto "Encyclopedia">><</link>> | <<link "The Studio">><<set $encyclopedia to "The Studio">><<goto "Encyclopedia">><</link>> | <<link "The Auto Salon">><<set $encyclopedia to "The Auto Salon">><<goto "Encyclopedia">><</link>> -The Free Cities today: <<link "Money">><<set $encyclopedia to "Money">><<goto "Encyclopedia">><</link>> | <<link "Slave Couture">><<set $encyclopedia to "Slave Couture">><<goto "Encyclopedia">><</link>> | <<link "Nymphomania">><<set $encyclopedia to "Nymphomania">><<goto "Encyclopedia">><</link>> | <<link "Gender">><<set $encyclopedia to "Gender">><<goto "Encyclopedia">><</link>> | <<link "The Head Girl">><<set $encyclopedia to "The Head Girl">><<goto "Encyclopedia">><</link>> | <<link "Madams">><<set $encyclopedia to "Madams">><<goto "Encyclopedia">><</link>> | <<link "DJs">><<set $encyclopedia to "DJs">><<goto "Encyclopedia">><</link>> | <<link "Milkmaids">><<set $encyclopedia to "Milkmaids">><<goto "Encyclopedia">><</link>> | <<link "Stewardesses">><<set $encyclopedia to "Stewardesses">><<goto "Encyclopedia">><</link>> | <<link "Slave Bodyguards">><<set $encyclopedia to "Slave Bodyguards">><<goto "Encyclopedia">><</link>> | <<link "Slave Dairy">><<set $encyclopedia to "Slave Dairy">><<goto "Encyclopedia">><</link>> | <<link "The Ejaculate Market">><<set $encyclopedia to "The Ejaculate Market">><<goto "Encyclopedia">><</link>> | <<link "Modern Anal">><<set $encyclopedia to "Modern Anal">><<goto "Encyclopedia">><</link>> | <<link "Disease in the Free Cities">><<set $encyclopedia to "Disease in the Free Cities">><<goto "Encyclopedia">><</link>> | <<link "Free Cities Justice">><<set $encyclopedia to "Free Cities Justice">><<goto "Encyclopedia">><</link>> | <<link "Slave Marriage">><<set $encyclopedia to "Slave Marriage">><<goto "Encyclopedia">><</link>> | <<link "Arcades">><<set $encyclopedia to "Arcades">><<goto "Encyclopedia">><</link>> | <<link "Fuckdolls">><<set $encyclopedia to "Fuckdolls">><<goto "Encyclopedia">><</link>> -Free Cities culture tomorrow: <<link "The Future of Society">><<set $encyclopedia to "The Future of Society">><<goto "Encyclopedia">><</link>> | <<link "The New Rome">><<set $encyclopedia to "The New Rome">><<goto "Encyclopedia">><</link>> | <<link "Naked, Barefoot, and Pregnant">><<set $encyclopedia to "Naked, Barefoot, and Pregnant">><<goto "Encyclopedia">><</link>> | <<link "The Top">><<set $encyclopedia to "The Top">><<goto "Encyclopedia">><</link>> | <<link "The Bottom">><<set $encyclopedia to "The Bottom">><<goto "Encyclopedia">><</link>> | <<link "The Purity of the Human Form">><<set $encyclopedia to "The Purity of the Human Form">><<goto "Encyclopedia">><</link>> | <<link "A World Built on Implants">><<set $encyclopedia to "A World Built on Implants">><<goto "Encyclopedia">><</link>> | <<link "Slaves as Stock">><<set $encyclopedia to "Slaves as Stock">><<goto "Encyclopedia">><</link>> | <<link "Slavery and the Physical Ideal">><<set $encyclopedia to "Slavery and the Physical Ideal">><<goto "Encyclopedia">><</link>> | <<link "Faith in the Free Cities">><<set $encyclopedia to "Faith in the Free Cities">><<goto "Encyclopedia">><</link>> -Interviews: <<link "Slave Whore, Arcology K-2">><<set $encyclopedia to "Slave Whore, Arcology K-2">><<goto "Encyclopedia">><</link>> | <<link "Slave Acolyte, Arcology V-7">><<set $encyclopedia to "Slave Acolyte, Arcology V-7">><<goto "Encyclopedia">><</link>><<if $seeExtreme != 0>> | <<link "Public Slave, Arcology A-3">><<set $encyclopedia to "Public Slave, Arcology A-3">><<goto "Encyclopedia">><</link>><</if>> | <<link "Mercenary, Arcology B-2">><<set $encyclopedia to "Mercenary, Arcology B-2">><<goto "Encyclopedia">><</link>> | <<link "Slave Trainer, Arcology D-10">><<set $encyclopedia to "Slave Trainer, Arcology D-10">><<goto "Encyclopedia">><</link>> -Buying slaves: <<link "Kidnapped Slaves">><<set $encyclopedia to "Kidnapped Slaves">><<goto "Encyclopedia">><</link>> | <<link "Slave Schools">><<set $encyclopedia to "Slave Schools">><<goto "Encyclopedia">><</link>> | <<link "Stables">><<set $encyclopedia to "Stables">><<goto "Encyclopedia">><</link>> | <<link "Household Liquidations">><<set $encyclopedia to "Household Liquidations">><<goto "Encyclopedia">><</link>> | <<link "Direct Sales">><<set $encyclopedia to "Direct Sales">><<goto "Encyclopedia">><</link>> | <<link "Gingering">><<set $encyclopedia to "Gingering">><<goto "Encyclopedia">><</link>> -Incorporated Mods: <<link "Security Force">><<set $encyclopedia to "Security Force">><<goto "Encyclopedia">><</link>> -Pregmod: <<link "Repopulationism">><<set $encyclopedia to "Repopulationism">><<goto "Encyclopedia">><</link>>| <<link "Eugenics Focus">><<set $encyclopedia to "Eugenics Focus">><<goto "Encyclopedia">><</link>> | <<link "Gender Radicalism research">><<set $encyclopedia to "Gender Radicalism research">><<goto "Encyclopedia">><</link>> | <<link "Transformation Fetishism research">><<set $encyclopedia to "Transformation Fetishism research">><<goto "Encyclopedia">><</link>> | <<link "Asset Expansionist research">><<set $encyclopedia to "Asset Expansionist research">><<goto "Encyclopedia">><</link>> | <<link "Slimness Enthusiast research">><<set $encyclopedia to "Slimness Enthusiast research">><<goto "Encyclopedia">><</link>> | <<link "Youth Preferentialism Research">><<set $encyclopedia to "Youth Preferentialism Research">><<goto "Encyclopedia">><</link>> | <<link "Eugenics Breeding Proposal">><<set $encyclopedia to "Eugenics Breeding Proposal">><<goto "Encyclopedia">><</link>> | <<link "Escort">><<set $encyclopedia to "Escort">><<goto "Encyclopedia">><</link>> | <<link "Servant">><<set $encyclopedia to "Servant">><<goto "Encyclopedia">><</link>> | <<link "Hyper-pregnancy">><<set $encyclopedia to "Hyper-pregnancy">><<goto "Encyclopedia">><</link>> | <<link "Super Fertility Drugs">><<set $encyclopedia to "Super Fertility Drugs">><<goto "Encyclopedia">><</link>> | <<link "Pregnancy Generator">><<set $encyclopedia to "Pregnancy Generator">><<goto "Encyclopedia">><</link>> | <<link "Childbirth and C-Secs">><<set $encyclopedia to "Childbirth and C-Secs">><<goto "Encyclopedia">><</link>> | <<link "Enemas and Force-Feeding">><<set $encyclopedia to "Enemas and Force-Feeding">><<goto "Encyclopedia">><</link>> | <<link "Belly Implants">><<set $encyclopedia to "Belly Implants">><<goto "Encyclopedia">><</link>> | <<link "Cervix Micropump Filter">><<set $encyclopedia to "Cervix Micropump Filter">><<goto "Encyclopedia">><</link>> | <<link "Player Pregnancy">><<set $encyclopedia to "Player Pregnancy">><<goto "Encyclopedia">><</link>> | <<link "The Flesh Heap">><<set $encyclopedia to "The Flesh Heap">><<goto "Encyclopedia">><</link>> | <<link "Gestation Drugs and Labor Suppressants">><<set $encyclopedia to "Gestation Drugs and Labor Suppressants">><<goto "Encyclopedia">><</link>> -Lolimod: <<link "Lolis and the Free Cities">><<set $encyclopedia to "Lolis and the Free Cities">><<goto "Encyclopedia">><</link>> | <<link "Fertility Age">><<set $encyclopedia to "Fertility Age">><<goto "Encyclopedia">><</link>> | <<link "Male Fertility">><<set $encyclopedia to "Male Fertility">><<goto "Encyclopedia">><</link>> | <<link "Precocious Puberty">><<set $encyclopedia to "Precocious Puberty">><<goto "Encyclopedia">><</link>> | <<link "Cradle Robbers">><<set $encyclopedia to "Cradle Robbers">><<goto "Encyclopedia">><</link>> | <<link "The Inucbation Facility">><<set $encyclopedia to "The Inucbation Facility">><<goto "Encyclopedia">><</link>> - -<<link "Credits">><<set $encyclopedia to "Credits">><<goto "Encyclopedia">><</link>> +Gameplay: <<link "First Game Guide">><<set $encyclopedia = "First Game Guide">><<goto "Encyclopedia">><</link>> | <<link "How to Play">><<set $encyclopedia = "How to Play">><<goto "Encyclopedia">><</link>> | <<link "Keyboard Shortcuts">><<set $encyclopedia = "Keyboard Shortcuts">><<goto "Encyclopedia">><</link>> | <<link "Tips and Tricks">><<set $encyclopedia = "Tips and Tricks">><<goto "Encyclopedia">><</link>> | <<link "Drugs and Their Effects">><<set $encyclopedia = "Drugs and Their Effects">><<goto "Encyclopedia">><</link>> | <<link "From Rebellious to Devoted">><<set $encyclopedia = "From Rebellious to Devoted">><<goto "Encyclopedia">><</link>> | <<link "Sexual Energy">><<set $encyclopedia = "Sexual Energy">><<goto "Encyclopedia">><</link>> | <<link "Random Events">><<set $encyclopedia = "Random Events">><<goto "Encyclopedia">><</link>> | <<link "Enslaving People">><<set $encyclopedia = "Enslaving People">><<goto "Encyclopedia">><</link>> | <<link "Arcologies and Reputation">><<set $encyclopedia = "Arcologies and Reputation">><<goto "Encyclopedia">><</link>> | <<link "Pre-Owned Slaves">><<set $encyclopedia = "Pre-Owned Slaves">><<goto "Encyclopedia">><</link>> | <<link "The Corporation">><<set $encyclopedia = "The Corporation">><<goto "Encyclopedia">><</link>> | <<link "Costs Summary">><<set $encyclopedia = "Costs Summary">><<goto "Encyclopedia">><</link>> | <<link "Rules Assistant">><<set $encyclopedia = "Rules Assistant">><<goto "Encyclopedia">><</link>> +The X-Series Arcology: <<link "What the Upgrades Do">><<set $encyclopedia = "What the Upgrades Do">><<goto "Encyclopedia">><</link>> | <<link "Personal Assistant">><<set $encyclopedia = "Personal Assistant">><<goto "Encyclopedia">><</link>> | <<link "Security Drones">><<set $encyclopedia = "Security Drones">><<goto "Encyclopedia">><</link>> | <<link "Water Filtration">><<set $encyclopedia = "Water Filtration">><<goto "Encyclopedia">><</link>> | <<link "Slave Nutrition">><<set $encyclopedia = "Slave Nutrition">><<goto "Encyclopedia">><</link>> | <<link "The Remote Surgery">><<set $encyclopedia = "The Remote Surgery">><<goto "Encyclopedia">><</link>> | <<link "The Pharmaceutical Fab.">><<set $encyclopedia = "The Pharmaceutical Fab.">><<goto "Encyclopedia">><</link>> | <<link "The Studio">><<set $encyclopedia = "The Studio">><<goto "Encyclopedia">><</link>> | <<link "The Auto Salon">><<set $encyclopedia = "The Auto Salon">><<goto "Encyclopedia">><</link>> +The Free Cities today: <<link "Money">><<set $encyclopedia = "Money">><<goto "Encyclopedia">><</link>> | <<link "Slave Couture">><<set $encyclopedia = "Slave Couture">><<goto "Encyclopedia">><</link>> | <<link "Nymphomania">><<set $encyclopedia = "Nymphomania">><<goto "Encyclopedia">><</link>> | <<link "Gender">><<set $encyclopedia = "Gender">><<goto "Encyclopedia">><</link>> | <<link "The Head Girl">><<set $encyclopedia = "The Head Girl">><<goto "Encyclopedia">><</link>> | <<link "Madams">><<set $encyclopedia = "Madams">><<goto "Encyclopedia">><</link>> | <<link "DJs">><<set $encyclopedia = "DJs">><<goto "Encyclopedia">><</link>> | <<link "Milkmaids">><<set $encyclopedia = "Milkmaids">><<goto "Encyclopedia">><</link>> | <<link "Stewardesses">><<set $encyclopedia = "Stewardesses">><<goto "Encyclopedia">><</link>> | <<link "Slave Bodyguards">><<set $encyclopedia = "Slave Bodyguards">><<goto "Encyclopedia">><</link>> | <<link "Slave Dairy">><<set $encyclopedia = "Slave Dairy">><<goto "Encyclopedia">><</link>> | <<link "The Ejaculate Market">><<set $encyclopedia = "The Ejaculate Market">><<goto "Encyclopedia">><</link>> | <<link "Modern Anal">><<set $encyclopedia = "Modern Anal">><<goto "Encyclopedia">><</link>> | <<link "Disease in the Free Cities">><<set $encyclopedia = "Disease in the Free Cities">><<goto "Encyclopedia">><</link>> | <<link "Free Cities Justice">><<set $encyclopedia = "Free Cities Justice">><<goto "Encyclopedia">><</link>> | <<link "Slave Marriage">><<set $encyclopedia = "Slave Marriage">><<goto "Encyclopedia">><</link>> | <<link "Arcades">><<set $encyclopedia = "Arcades">><<goto "Encyclopedia">><</link>> | <<link "Fuckdolls">><<set $encyclopedia = "Fuckdolls">><<goto "Encyclopedia">><</link>> +Free Cities culture tomorrow: <<link "The Future of Society">><<set $encyclopedia = "The Future of Society">><<goto "Encyclopedia">><</link>> | <<link "The New Rome">><<set $encyclopedia = "The New Rome">><<goto "Encyclopedia">><</link>> | <<link "Naked, Barefoot, and Pregnant">><<set $encyclopedia = "Naked, Barefoot, and Pregnant">><<goto "Encyclopedia">><</link>> | <<link "The Top">><<set $encyclopedia = "The Top">><<goto "Encyclopedia">><</link>> | <<link "The Bottom">><<set $encyclopedia = "The Bottom">><<goto "Encyclopedia">><</link>> | <<link "The Purity of the Human Form">><<set $encyclopedia = "The Purity of the Human Form">><<goto "Encyclopedia">><</link>> | <<link "A World Built on Implants">><<set $encyclopedia = "A World Built on Implants">><<goto "Encyclopedia">><</link>> | <<link "Slaves as Stock">><<set $encyclopedia = "Slaves as Stock">><<goto "Encyclopedia">><</link>> | <<link "Slavery and the Physical Ideal">><<set $encyclopedia = "Slavery and the Physical Ideal">><<goto "Encyclopedia">><</link>> | <<link "Faith in the Free Cities">><<set $encyclopedia = "Faith in the Free Cities">><<goto "Encyclopedia">><</link>> +Interviews: <<link "Slave Whore, Arcology K-2">><<set $encyclopedia = "Slave Whore, Arcology K-2">><<goto "Encyclopedia">><</link>> | <<link "Slave Acolyte, Arcology V-7">><<set $encyclopedia = "Slave Acolyte, Arcology V-7">><<goto "Encyclopedia">><</link>><<if $seeExtreme != 0>> | <<link "Public Slave, Arcology A-3">><<set $encyclopedia = "Public Slave, Arcology A-3">><<goto "Encyclopedia">><</link>><</if>> | <<link "Mercenary, Arcology B-2">><<set $encyclopedia = "Mercenary, Arcology B-2">><<goto "Encyclopedia">><</link>> | <<link "Slave Trainer, Arcology D-10">><<set $encyclopedia = "Slave Trainer, Arcology D-10">><<goto "Encyclopedia">><</link>> +Buying slaves: <<link "Kidnapped Slaves">><<set $encyclopedia = "Kidnapped Slaves">><<goto "Encyclopedia">><</link>> | <<link "Slave Schools">><<set $encyclopedia = "Slave Schools">><<goto "Encyclopedia">><</link>> | <<link "Stables">><<set $encyclopedia = "Stables">><<goto "Encyclopedia">><</link>> | <<link "Household Liquidations">><<set $encyclopedia = "Household Liquidations">><<goto "Encyclopedia">><</link>> | <<link "Direct Sales">><<set $encyclopedia = "Direct Sales">><<goto "Encyclopedia">><</link>> | <<link "Gingering">><<set $encyclopedia = "Gingering">><<goto "Encyclopedia">><</link>> +Incorporated Mods: <<link "Security Force">><<set $encyclopedia = "Security Force">><<goto "Encyclopedia">><</link>> +Pregmod: <<link "Repopulationism">><<set $encyclopedia = "Repopulationism">><<goto "Encyclopedia">><</link>>| <<link "Eugenics Focus">><<set $encyclopedia = "Eugenics Focus">><<goto "Encyclopedia">><</link>> | <<link "Gender Radicalism research">><<set $encyclopedia = "Gender Radicalism research">><<goto "Encyclopedia">><</link>> | <<link "Transformation Fetishism research">><<set $encyclopedia = "Transformation Fetishism research">><<goto "Encyclopedia">><</link>> | <<link "Asset Expansionist research">><<set $encyclopedia = "Asset Expansionist research">><<goto "Encyclopedia">><</link>> | <<link "Slimness Enthusiast research">><<set $encyclopedia = "Slimness Enthusiast research">><<goto "Encyclopedia">><</link>> | <<link "Youth Preferentialism Research">><<set $encyclopedia = "Youth Preferentialism Research">><<goto "Encyclopedia">><</link>> | <<link "Eugenics Breeding Proposal">><<set $encyclopedia = "Eugenics Breeding Proposal">><<goto "Encyclopedia">><</link>> | <<link "Escort">><<set $encyclopedia = "Escort">><<goto "Encyclopedia">><</link>> | <<link "Servant">><<set $encyclopedia = "Servant">><<goto "Encyclopedia">><</link>> | <<link "Hyper-pregnancy">><<set $encyclopedia = "Hyper-pregnancy">><<goto "Encyclopedia">><</link>> | <<link "Super Fertility Drugs">><<set $encyclopedia = "Super Fertility Drugs">><<goto "Encyclopedia">><</link>> | <<link "Pregnancy Generator">><<set $encyclopedia = "Pregnancy Generator">><<goto "Encyclopedia">><</link>> | <<link "Childbirth and C-Secs">><<set $encyclopedia = "Childbirth and C-Secs">><<goto "Encyclopedia">><</link>> | <<link "Enemas and Force-Feeding">><<set $encyclopedia = "Enemas and Force-Feeding">><<goto "Encyclopedia">><</link>> | <<link "Belly Implants">><<set $encyclopedia = "Belly Implants">><<goto "Encyclopedia">><</link>> | <<link "Cervix Micropump Filter">><<set $encyclopedia = "Cervix Micropump Filter">><<goto "Encyclopedia">><</link>> | <<link "Player Pregnancy">><<set $encyclopedia = "Player Pregnancy">><<goto "Encyclopedia">><</link>> | <<link "The Flesh Heap">><<set $encyclopedia = "The Flesh Heap">><<goto "Encyclopedia">><</link>> | <<link "Gestation Drugs and Labor Suppressants">><<set $encyclopedia = "Gestation Drugs and Labor Suppressants">><<goto "Encyclopedia">><</link>> +Lolimod: <<link "Lolis and the Free Cities">><<set $encyclopedia = "Lolis and the Free Cities">><<goto "Encyclopedia">><</link>> | <<link "Fertility Age">><<set $encyclopedia = "Fertility Age">><<goto "Encyclopedia">><</link>> | <<link "Male Fertility">><<set $encyclopedia = "Male Fertility">><<goto "Encyclopedia">><</link>> | <<link "Precocious Puberty">><<set $encyclopedia = "Precocious Puberty">><<goto "Encyclopedia">><</link>> | <<link "Cradle Robbers">><<set $encyclopedia = "Cradle Robbers">><<goto "Encyclopedia">><</link>> | <<link "The Inucbation Facility">><<set $encyclopedia = "The Inucbation Facility">><<goto "Encyclopedia">><</link>> + +<<link "Credits">><<set $encyclopedia = "Credits">><<goto "Encyclopedia">><</link>> diff --git a/src/gui/mainMenu/AlphaDisclaimer.tw b/src/gui/mainMenu/AlphaDisclaimer.tw index c01d35b0c49a0b19743844d99b6a46fd2e7383a3..0f82bc805317a9e81180a85ad2f4093a17c8177d 100644 --- a/src/gui/mainMenu/AlphaDisclaimer.tw +++ b/src/gui/mainMenu/AlphaDisclaimer.tw @@ -1,13 +1,13 @@ :: Alpha disclaimer -<<set $ui to "start">>\ +<<set $ui = "start">>\ //v. $ver// @@color:green;//Mod: expanded age ranges and other tweaks 2016-08-30//@@ @@color:darkred;+SV@@ @@color:green;//Mod: extra preg content and other crap//@@ -''This is an alpha.'' That means the game is missing content, is full of bugs, is imbalanced, and is generally in an incomplete state. The game will keep a start of turn autosave. If you encounter a bug, I strongly recommend you reload your start of turn autosave immediately. Bugs will occasionally cause a bugged slave named $activeSlave.slaveName (or similar) to appear. If this happens, use the "Discard her" option on the slave menu to get rid of her. Then, please report the circumstances (especially what random event you just saw) to the dev. Please submit your feedback and bug reports at https://www.reddit.com/r/freecitiesgame/ or at http://freecitiesblog.blogspot.com/. +''This is an alpha.'' That means the game is missing content, is full of bugs, is imbalanced, and is generally in an incomplete state. The game will keep a start of turn autosave. If you encounter a bug, I strongly recommend you reload your start of turn autosave immediately. Bugs will occasionally cause a bugged slave named $activeSlave.slaveName (or similar) to appear. If this happens, use the "Discard her" option on the slave menu to get rid of her. Then, please report the circumstances (especially what random event you just saw) to the dev. Please submit your feedback and bug reports at https://www.reddit.com/r/freecitiesgame/ or at https://freecitiesblog.blogspot.com/. -An in-game encyclopedia is available from the sidebar (or [[here|Encyclopedia][$nextButton to "Back", $nextLink to passage()]] if you'd prefer to have a look before starting), with answers to most basic gameplay questions. +An in-game encyclopedia is available from the sidebar (or [[here|Encyclopedia][$nextButton = "Back", $nextLink = passage()]] if you'd prefer to have a look before starting), with answers to most basic gameplay questions. __Important note for new players, and a reminder for FC veterans:__ when the player is offered a set of choices, the ''Continue'' button at the top of the left sidebar will almost always remain available. Using this to decline all the options presented is //not cheating.// If it's available, it's supposed to be available. It represents the player character politely bowing out of the situation. diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index 6e83d1bb9d0e02ca62aad3be3cffa2d6f88d8e8f..755020e957fd47c83bdd0d749b17a87b3a900176 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -3,12 +3,12 @@ /* This needs to be broken down into individual files that can be added to StoryInit instead. */ <<if def $slaves>> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].assignment is "be imported">> + <<for $i = 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].assignment == "be imported">> <<set $slaves[$i].ID += 1200000>> - <<set $slaves[$i].assignment to "rest">> - <<set $slaves[$i].assignmentVisible to 1>> - <<set $slaves[$i].weekAcquired to 1>> + <<set $slaves[$i].assignment = "rest">> + <<set $slaves[$i].assignmentVisible = 1>> + <<set $slaves[$i].weekAcquired = 1>> <<PMODinit $slaves[$i]>> <<if $slaves[$i].mother > 0>> <<set $slaves[$i].mother += 1200000>> @@ -30,15 +30,15 @@ <<set $slaves[$i].sisters = 0>> <<set $slaves[$i].breedingMark = 0>> <<if $arcologies[0].FSRomanRevivalist > 90>> - <<set $slaves[$i].nationality to "Roman Revivalist">> + <<set $slaves[$i].nationality = "Roman Revivalist">> <<elseif $arcologies[0].FSEgyptianRevivalist > 90>> - <<set $slaves[$i].nationality to "Ancient Egyptian Revivalist">> + <<set $slaves[$i].nationality = "Ancient Egyptian Revivalist">> <<elseif $arcologies[0].FSEdoRevivalist > 90>> - <<set $slaves[$i].nationality to "Edo Revivalist">> + <<set $slaves[$i].nationality = "Edo Revivalist">> <<elseif $arcologies[0].FSArabianRevivalist > 90>> - <<set $slaves[$i].nationality to "Arabian Revivalist">> + <<set $slaves[$i].nationality = "Arabian Revivalist">> <<elseif $arcologies[0].FSChineseRevivalist > 90>> - <<set $slaves[$i].nationality to "Ancient Chinese Revivalist">> + <<set $slaves[$i].nationality = "Ancient Chinese Revivalist">> <</if>> <<if $slaves[$i].relationTarget != 0>> <<set $slaves[$i].relationTarget += 1200000>> @@ -47,30 +47,30 @@ <<set $slaves[$i].relationshipTarget += 1200000>> <</if>> <<else>> - <<set $dump to $slaves.pluck([$i], [$i])>><<set $i-->> + <<set $dump = $slaves.pluck([$i], [$i])>><<set $i-->> <</if>> <</for>> <<set $genePool = ngUpdateGenePool($genePool)>> /* - <<for $i to 0; $i < $genePool.length; $i++>> - <<for $k to 0; $k < $slaves.length; $k++>> + <<for $i = 0; $i < $genePool.length; $i++>> + <<for $k = 0; $k < $slaves.length; $k++>> <<if $genePool[$i].ID+1200000 == $slaves[$k].ID>> <<set $genePool[$i].ID += 1200000>> <<break>> <</if>> <</for>> <<if $k == $slaves.length>> - <<set $dump to $genePool.pluck([$i], [$i])>><<set $i-->> + <<set $dump = $genePool.pluck([$i], [$i])>><<set $i-->> <</if>> <</for>> */ - <<for $i to 0; $i < $slaves.length; $i++>> + <<for $i = 0; $i < $slaves.length; $i++>> <<if $slaves[$i].relation != 0>> <<set $seed = 0>> - <<for $j to 0; $j < $slaves.length; $j++>> - <<if $slaves[$i].relationTarget is $slaves[$j].ID>> - <<if $slaves[$j].relationTarget is $slaves[$i].ID>> - <<set $seed to 1>> + <<for $j = 0; $j < $slaves.length; $j++>> + <<if $slaves[$i].relationTarget == $slaves[$j].ID>> + <<if $slaves[$j].relationTarget == $slaves[$i].ID>> + <<set $seed = 1>> <<break>> <</if>> <</if>> @@ -82,10 +82,10 @@ <</if>> <<if $slaves[$i].relationship > 0>> <<set $seed = 0>> - <<for $j to 0; $j < $slaves.length; $j++>> - <<if $slaves[$i].relationshipTarget is $slaves[$j].ID>> - <<if $slaves[$j].relationshipTarget is $slaves[$i].ID>> - <<set $seed to 1>> + <<for $j = 0; $j < $slaves.length; $j++>> + <<if $slaves[$i].relationshipTarget == $slaves[$j].ID>> + <<if $slaves[$j].relationshipTarget == $slaves[$i].ID>> + <<set $seed = 1>> <<break>> <</if>> <</if>> @@ -96,7 +96,7 @@ <</if>> <</if>> <</for>> - <<for $i to 0; $i < $slaves.length; $i++>> + <<for $i = 0; $i < $slaves.length; $i++>> <<if $familyTesting == 1>> <<if $slaves[$i].canRecruit == 1>> /*<<set $recruiters.push($slaves[$i])>>*/ @@ -104,15 +104,15 @@ <<else>> <<if $slaves[$i].relation == 0>> <<if random(1,100) <= 5>> - <<set $slaves[$i].recruiter to "twin">> - <<elseif ($slaves[$i].actualAge > 32) and (random(1,100) <= 41)>> - <<set $slaves[$i].recruiter to "mother">> - <<elseif ($slaves[$i].actualAge < 24) and (random(1,100) <= 40)>> - <<set $slaves[$i].recruiter to "daughter">> - <<elseif ($slaves[$i].actualAge < 43) and (random(1,100) <= 20)>> - <<set $slaves[$i].recruiter to "older sister">> - <<elseif ($slaves[$i].actualAge < 25) and ($slaves[$i].actualAge > 18) and (random(1,100) <= 20)>> - <<set $slaves[$i].recruiter to "young sister">> + <<set $slaves[$i].recruiter = "twin">> + <<elseif ($slaves[$i].actualAge > 32) && (random(1,100) <= 41)>> + <<set $slaves[$i].recruiter = "mother">> + <<elseif ($slaves[$i].actualAge < 24) && (random(1,100) <= 40)>> + <<set $slaves[$i].recruiter = "daughter">> + <<elseif ($slaves[$i].actualAge < 43) && (random(1,100) <= 20)>> + <<set $slaves[$i].recruiter = "older sister">> + <<elseif ($slaves[$i].actualAge < 25) && ($slaves[$i].actualAge > 18) && (random(1,100) <= 20)>> + <<set $slaves[$i].recruiter = "young sister">> <</if>> <<else>> <<set $slaves[$i].recruiter = 0>> @@ -293,7 +293,7 @@ <<set $saveImported = 0>> <</if>> <<if ndef $positionMainLinks>> - <<set $positionMainLinks to -1>> + <<set $positionMainLinks = -1>> <</if>> <<if ndef $seeImages>> <<set $seeImages = 0>> @@ -305,7 +305,7 @@ <<set $seeMainFetishes = 0>> <</if>> <<if ndef $seeSummaryImages>> - <<set $seeSummaryImages to 1>> + <<set $seeSummaryImages = 1>> <</if>> <<if ndef $universalRulesBirthing>> <<set $universalRulesBirthing = 0>> @@ -324,7 +324,7 @@ <</if>> <</if>> <<if ($ver != "0.9.4") && ($ver != "0.9.5") && ($ver != "0.9.6") && ($ver != "0.9.7") && ($ver != "0.9.8") && ($ver != "0.9.9") && ($ver != "0.9.10")>> - <<for _r to 0; _r < $defaultRules.length; _r++>> + <<for _r = 0; _r < $defaultRules.length; _r++>> <<if ndef $defaultRules[_r].aphrodisiacs>> <<set $defaultRules[_r].aphrodisiacs = 0>> <</if>> @@ -360,7 +360,7 @@ <<set $PC.refreshmentType = 1>> <</if>> <</if>> -<<for _r to 0; _r < $defaultRules.length; _r++>> +<<for _r = 0; _r < $defaultRules.length; _r++>> <<if ndef $defaultRules[_r].dietMilk>> <<set $defaultRules[_r].dietMilk = 0>> <</if>> @@ -368,107 +368,107 @@ <<set $defaultRules[_r].dietCum = 0>> <</if>> <</for>> -<<set $policyCost to 5000>> +<<set $policyCost = 5000>> <<if $saveImported == 0>> <<set $cheater = 0>> -<<set $PCName to "Anonymous">> -<<set $PC to {title: 1, ID: -1, dick: 1, vagina: 0, preg: 0, pregSource: 0, pregMood: 0, labor: 0, births: 0, boobsBonus: 0, degeneracy: 0, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, career: "capitalist", rumor: "wealth", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 2, sexualEnergy: 4, refreshment: "cigar", refreshmentType: 0, cumTap: 0, race: "white", origRace: "white", skin: "white", origSkin: "white", eyeColor: "blue", origEyeColor: "blue", hColor: "blonde", origHColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birtharcOwner: 0, intelligence: 3, face: 3, actualAge: 35, physicalAge: 35, visualAge: 35, birthWeek: 0, boobsImplant: 0, butt: 0, buttImplant: 0, ballsImplant: 0, ageImplant: 0, newVag: 0}>> +<<set $PCName = "Anonymous">> +<<set $PC = {title: 1, ID: -1, dick: 1, vagina: 0, preg: 0, pregSource: 0, pregMood: 0, labor: 0, births: 0, boobsBonus: 0, degeneracy: 0, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, career: "capitalist", rumor: "wealth", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 2, sexualEnergy: 4, refreshment: "cigar", refreshmentType: 0, cumTap: 0, race: "white", origRace: "white", skin: "white", origSkin: "white", eyeColor: "blue", origEyeColor: "blue", hColor: "blonde", origHColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birtharcOwner: 0, intelligence: 3, face: 3, actualAge: 35, physicalAge: 35, visualAge: 35, birthWeek: 0, boobsImplant: 0, butt: 0, buttImplant: 0, ballsImplant: 0, ageImplant: 0, newVag: 0}>> <<set $cash = 10000>> <<set $normalizedEvents = 0>> -<<set $autosave to 1>> -<<set $useFSNames to 1>> -<<set $seeDetails to 1>> -<<set $seeDesk to 1>> -<<set $seeArcology to 1>> -<<set $seeFCNN to 1>> -<<set $seeBuy to 1>> -<<set $seeArcology to 1>> +<<set $autosave = 1>> +<<set $useFSNames = 1>> +<<set $seeDetails = 1>> +<<set $seeDesk = 1>> +<<set $seeArcology = 1>> +<<set $seeFCNN = 1>> +<<set $seeBuy = 1>> +<<set $seeArcology = 1>> <<set $seeExtreme = 0>> -<<set $seeHyperPreg to 0>> -<<set $seeCircumcision to 1>> -<<set $seeAge to 1>> -<<set $seeDicks to 25>> -<<set $seeRace to 1>> -<<set $seeNationality to 1>> +<<set $seeHyperPreg = 0>> +<<set $seeCircumcision = 1>> +<<set $seeAge = 1>> +<<set $seeDicks = 25>> +<<set $seeRace = 1>> +<<set $seeNationality = 1>> <<set $seeImages = 0>> <<set $imageChoice = 0>> <<set $seeMainFetishes = 0>> -<<set $seeSummaryImages to 1>> -<<set $lineSeparations to 1>> -<<set $showSexualHistory to 1>> +<<set $seeSummaryImages = 1>> +<<set $lineSeparations = 1>> +<<set $showSexualHistory = 1>> <<set $showBodyMods = 0>> -<<set $showImplantEffects to 1>> -<<set $showClothing to 1>> -<<set $showAgeDetail to 1>> -<<set $showBoobCCs to 1>> -<<set $showHeightCMs to 1>> -<<set $showDickCMs to 1>> -<<set $showScores to 1>> -<<set $showAssignToScenes to 1>> -<<set $showEWD to 1>> -<<set $showEWM to 1>> -<<set $showVignettes to 1>> -<<set $showAppraisal to 1>> -<<set $positionMainLinks to -1>> -<<set $displayAssignments to 1>> -<<set $sortSlavesBy to "devotion">> -<<set $sortSlavesOrder to "descending">> -<<set $sortSlavesMain to 1>> +<<set $showImplantEffects = 1>> +<<set $showClothing = 1>> +<<set $showAgeDetail = 1>> +<<set $showBoobCCs = 1>> +<<set $showHeightCMs = 1>> +<<set $showDickCMs = 1>> +<<set $showScores = 1>> +<<set $showAssignToScenes = 1>> +<<set $showEWD = 1>> +<<set $showEWM = 1>> +<<set $showVignettes = 1>> +<<set $showAppraisal = 1>> +<<set $positionMainLinks = -1>> +<<set $displayAssignments = 1>> +<<set $sortSlavesBy = "devotion">> +<<set $sortSlavesOrder = "descending">> +<<set $sortSlavesMain = 1>> <<set $HGSeverity = 0>> -<<set $HGFormality to 1>> +<<set $HGFormality = 1>> <<set $universalRulesConsent = 0>> <<set $universalRulesRest = 0>> -<<set $universalRulesFacilityWork to 1>> -<<set $universalRulesImpregnation to "none">> +<<set $universalRulesFacilityWork = 1>> +<<set $universalRulesImpregnation = "none">> <<set $universalRulesBirthing = 0>> <<set $universalRulesCSec = 0>> -<<set $universalRulesNewSlavesRA to 1>> +<<set $universalRulesNewSlavesRA = 1>> <<set $slaveDead = 0>> -<<set $rulesAssistantMain to 1>> +<<set $rulesAssistantMain = 1>> <<set $rulesAssistantAuto = 0>> -<<set $abbreviateDevotion to 2>> -<<set $abbreviateRules to 2>> -<<set $abbreviateClothes to 2>> -<<set $abbreviateOrigins to 2>> -<<set $abbreviateRulesets to 2>> -<<set $abbreviateNationality to 2>> -<<set $abbreviateHealth to 2>> -<<set $abbreviateDiet to 2>> -<<set $abbreviateDrugs to 2>> -<<set $abbreviateRace to 2>> -<<set $abbreviateGenitalia to 2>> -<<set $abbreviatePhysicals to 2>> -<<set $abbreviateSkills to 2>> -<<set $abbreviateMental to 2>> -<<set $abbreviateSidebar to 2>> -<<set $nicknamesAllowed to 1>> -<<set $modRequestsAllowed to 1>> -<<set $expansionRequestsAllowed to 1>> -<<set $plot to 1>> -<<set $continent to "North America">> -<<set $terrain to "rural">> -<<set $language to "English">> -<<set $headGirlTrainsSkills to 1>> -<<set $headGirlTrainsHealth to 1>> -<<set $headGirlTrainsObedience to 1>> -<<set $headGirlTrainsFlaws to 1>> -<<set $headGirlTrainsParaphilias to 1>> +<<set $abbreviateDevotion = 2>> +<<set $abbreviateRules = 2>> +<<set $abbreviateClothes = 2>> +<<set $abbreviateOrigins = 2>> +<<set $abbreviateRulesets = 2>> +<<set $abbreviateNationality = 2>> +<<set $abbreviateHealth = 2>> +<<set $abbreviateDiet = 2>> +<<set $abbreviateDrugs = 2>> +<<set $abbreviateRace = 2>> +<<set $abbreviateGenitalia = 2>> +<<set $abbreviatePhysicals = 2>> +<<set $abbreviateSkills = 2>> +<<set $abbreviateMental = 2>> +<<set $abbreviateSidebar = 2>> +<<set $nicknamesAllowed = 1>> +<<set $modRequestsAllowed = 1>> +<<set $expansionRequestsAllowed = 1>> +<<set $plot = 1>> +<<set $continent = "North America">> +<<set $terrain = "rural">> +<<set $language = "English">> +<<set $headGirlTrainsSkills = 1>> +<<set $headGirlTrainsHealth = 1>> +<<set $headGirlTrainsObedience = 1>> +<<set $headGirlTrainsFlaws = 1>> +<<set $headGirlTrainsParaphilias = 1>> <<include "Init Rules">> -<<set $autoSurgery to {lactation: 0, cosmetic: 1, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, hips: 0, hipsImplant: 0, butt: 0, faceShape: "normal", lips: 10, holes: 0}>> +<<set $autoSurgery = {lactation: 0, cosmetic: 1, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, hips: 0, hipsImplant: 0, butt: 0, faceShape: "normal", lips: 10, holes: 0}>> <<else>> <<if $freshPC == 0>> - <<set $cash to Math.clamp(1000*Math.trunc($cash/100000), 5000, 1000000)>> + <<set $cash = Math.clamp(1000*Math.trunc($cash/100000), 5000, 1000000)>> <<if $retainCareer == 0>> <<set $PC.career = "arcology owner">> <</if>> <<else>> - <<set $cheater to 0>> - <<set $PCName to "Anonymous">> - <<set $PC to {title: 1, ID: -1, dick: 1, vagina: 0, preg: 0, pregSource: 0, pregMood: 0, labor: 0, births: 0, boobsBonus: 0, degeneracy: 0, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, career: "capitalist", rumor: "wealth", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 2, sexualEnergy: 4, refreshment: "cigar", refreshmentType: 0, cumTap: 0, race: "white", origRace: "white", skin: "white", origSkin: "white", eyeColor: "blue", origEyeColor: "blue", hColor: "blonde", origHColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birtharcOwner: 0, intelligence: 3, face: 3, actualAge: 35, physicalAge: 35, visualAge: 35, birthWeek: 0, boobsImplant: 0, butt: 0, buttImplant: 0, ballsImplant: 0, ageImplant: 0, newVag: 0}>> + <<set $cheater = 0>> + <<set $PCName = "Anonymous">> + <<set $PC = {title: 1, ID: -1, dick: 1, vagina: 0, preg: 0, pregSource: 0, pregMood: 0, labor: 0, births: 0, boobsBonus: 0, degeneracy: 0, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, career: "capitalist", rumor: "wealth", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 2, sexualEnergy: 4, refreshment: "cigar", refreshmentType: 0, cumTap: 0, race: "white", origRace: "white", skin: "white", origSkin: "white", eyeColor: "blue", origEyeColor: "blue", hColor: "blonde", origHColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birtharcOwner: 0, intelligence: 3, face: 3, actualAge: 35, physicalAge: 35, visualAge: 35, birthWeek: 0, boobsImplant: 0, butt: 0, buttImplant: 0, ballsImplant: 0, ageImplant: 0, newVag: 0}>> <</if>> <</if>> @@ -476,16 +476,16 @@ <<set $targetArcology = {type: "New"}>> -<<set $REFeminizationCheckinIDs to []>> -<<set $REMILFCheckinIDs to []>> -<<set $REOrientationCheckinIDs to []>> -<<set $REUglyCheckinIDs to []>> -<<set $REButtholeCheckinIDs to []>> -<<set $REFutaSisterCheckinIDs to []>> -<<set $REReductionCheckinIDs to []>> +<<set $REFeminizationCheckinIDs = []>> +<<set $REMILFCheckinIDs = []>> +<<set $REOrientationCheckinIDs = []>> +<<set $REUglyCheckinIDs = []>> +<<set $REButtholeCheckinIDs = []>> +<<set $REFutaSisterCheckinIDs = []>> +<<set $REReductionCheckinIDs = []>> <<set $activeSlave = 0>> -<<set $bioreactorPerfectedID to []>> +<<set $bioreactorPerfectedID = []>> <<set $independenceDay = 0>> <<set $invasionVictory = 0>> @@ -608,7 +608,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $arcadeNameCaps = "The Arcade">> <<set $arcade = 0>> <<set $fuckdollsSold = 0>> -<<set $fuckdollPrice to 3000>> +<<set $fuckdollPrice = 3000>> <<set $cellblockSlaves = 0>> <<set $cellblockDecoration = "standard">> <<set $cellblockUpgrade = 0>> @@ -656,7 +656,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $boobAccessibility = 0>> <<set $servantMilkers = 0>> <<set $servantMilkersMultiplier = 1>> -<<set $servantMilkersJobs to ["be a servant", "work as a servant", "take classes", "please you", "be a subordinate slave", "stay confined", "recruit girls", "rest"]>> +<<set $servantMilkersJobs = ["be a servant", "work as a servant", "take classes", "please you", "be a subordinate slave", "stay confined", "recruit girls", "rest"]>> <<set $foodCost = 25>> <<set $legendaryWhoreID = 0>> @@ -676,7 +676,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $FSGotRepCreditFour = 0>> <<set $FSGotRepCreditFive = 0>> <<set $FSGotRepCreditSix = 0>> -<<set $FSSingleSlaveRep to 10>> +<<set $FSSingleSlaveRep = 10>> <<set $FSSpending = 0>> <<set $FSLockinLevel = 100>> <<set $applyLaw = 0>> @@ -696,13 +696,13 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $trainingAssets = 0>> <<set $surgicalAssets = 0>> <<set $drugAssets = 0>> -<<set $generalAssetPrice to 10>> -<<set $slaveAssetPrice to 10>> -<<set $entrapmentAssetPrice to 10>> -<<set $captureAssetPrice to 10>> -<<set $trainingAssetPrice to 10>> -<<set $surgicalAssetPrice to 10>> -<<set $drugAssetPrice to 10>> +<<set $generalAssetPrice = 10>> +<<set $slaveAssetPrice = 10>> +<<set $entrapmentAssetPrice = 10>> +<<set $captureAssetPrice = 10>> +<<set $trainingAssetPrice = 10>> +<<set $surgicalAssetPrice = 10>> +<<set $drugAssetPrice = 10>> <<set $generalUpgradeBreaking = "unselected">> <<set $generalUpgradeWeight = "unselected">> <<set $generalUpgradeMuscle = "unselected">> @@ -729,7 +729,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) /* master suite reporting and alternate descriptions */ <<set $verboseDescriptions = 0>> /* Accordion 000-250-006 */ -<<set $useAccordion to 0>> +<<set $useAccordion = 0>> /* alternate clothing access variables */ <<set $clothesBoughtBunny = 0>> <<set $clothesBoughtConservative = 0>> @@ -749,7 +749,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $toysBoughtGags = 0>> <<set $toysBoughtButtPlugs = 0>> /* assistant FS appearance variable */ -<<set $assistantFSAppearance to "default">> +<<set $assistantFSAppearance = "default">> /*onlyintendeddickgirls variables */ <<set $makeDicks = 0>> @@ -806,39 +806,39 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $playerSurgeryType = 0>> <<set $bodyswapAnnounced = 0>> -<<set $fakeBellies to ["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"]>> /* lets fake bellies be separated from other .bellyAccessory */ +<<set $fakeBellies = ["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"]>> /* lets fake bellies be separated from other .bellyAccessory */ <<set $schoolSuggestion = 0>> -<<set $TSS to {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> -<<set $GRI to {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> -<<set $SCP to {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> -<<set $LDE to {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> -<<set $TGA to {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> -<<set $TFS to {farmUpgrade: 0, schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> +<<set $TSS = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> +<<set $GRI = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> +<<set $SCP = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> +<<set $LDE = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> +<<set $TGA = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> +<<set $TFS = {farmUpgrade: 0, schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> <<set $futaAddiction = 0>> -<<set $IDNumber to 1>> -<<set $RulesID to 3>> +<<set $IDNumber = 1>> +<<set $RulesID = 3>> -<<set $week to 1>> -<<set $month to "January">> -<<set $day to 19>> -<<set $year to 2037>> +<<set $week = 1>> +<<set $month = "January">> +<<set $day = 19>> +<<set $year = 2037>> <<set $weddingPlanned = 0>> <<set $weddingSlaveID = 0>> -<<set $personalAttention to "business">> -<<set $trainingRegimen to "break her will">> +<<set $personalAttention = "sex">> +<<set $trainingRegimen = "break her will">> <<set $HeadGirl = 0>> <<set $HGRelease = 0>> <<set $HGTimeInGrade = 0>> <<set $HGEnergy = 0>> <<set $HGCum = 0>> <<set $Recruiter = 0>> -<<set $recruiterTarget to "desperate whores">> +<<set $recruiterTarget = "desperate whores">> <<set $recruiterProgress = 0>> -<<set $recruiterIdleRule to "number">> -<<set $recruiterIdleNumber to 20>> +<<set $recruiterIdleRule = "number">> +<<set $recruiterIdleNumber = 20>> <<set $Bodyguard = 0>> <<set $Madam = 0>> <<set $DJ = 0>> @@ -854,28 +854,28 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $Concubine = 0>> <<set $assistant = 0>> <<set $assistantPower = 0>> -<<set $economicUncertainty to 10>> +<<set $economicUncertainty = 10>> <<set $assistantAnnounced = 0>> -<<set $assistantAppearance to "normal">> +<<set $assistantAppearance = "normal">> <<set $assistantExtra1 = 0>> <<set $assistantOptions = 0>> <<set $assistantFSOptions = 0>> -<<set $assistantName to "your personal assistant">> +<<set $assistantName = "your personal assistant">> <<set $assistantNameAnnounced = 0>> <<set $assistantBodyDesire = 0>> <<set $marketAssistantAnnounced = 0>> -<<set $marketAssistantRelationship to "cute">> +<<set $marketAssistantRelationship = "cute">> <<set $marketAssistantLimit = 0>> <<set $marketAssistantAggressiveness = 0>> -<<set $justiceEvents to ["slave deal", "slave training", "majority deal", "indenture deal", "virginity deal"]>> +<<set $justiceEvents = ["slave deal", "slave training", "majority deal", "indenture deal", "virginity deal"]>> <<set $fixedNationality = 0>> <<set $fixedRace = 0>> -<<set $ui to "start">> +<<set $ui = "start">> -<<set $brandTarget to "buttocks">> -<<set $brandDesign to "your initials">> +<<set $brandTarget = "buttocks">> +<<set $brandDesign = "your initials">> <<set $oralTotal = 0>> <<set $vaginalTotal = 0>> @@ -915,7 +915,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $organFarmUpgrade = 0>> <<set $organsCompleted = 0>> <<set $limbsCompleted = 0>> -<<set $limbs to []>> +<<set $limbs = []>> <<set $ImplantProductionUpgrade = 0>> <<set $implantFillable = 0>> <<set $permaPregImplant = 0>> @@ -946,36 +946,36 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $gingeringDetected = 0>> <<set $gingeringDetection = 0>> <<set $surgeryDescription = 0>> -<<set $encyclopedia to "How to Play">> -<<set $showEncyclopedia to 1>> +<<set $encyclopedia = "How to Play">> +<<set $showEncyclopedia = 1>> -<<set $trinkets to []>> +<<set $trinkets = []>> <<set $SPcost = 1000>> <<set $preOwnedViewed = 0>> <<set $debtWarned = 0>> -<<set $economy to 1>> -<<set $neighboringArcologies to 3>> -<<set $internationalTrade to 1>> +<<set $economy = 1>> +<<set $neighboringArcologies = 3>> +<<set $internationalTrade = 1>> <<set $internationalVariety = 0>> -<<set $slaveCostFactor to 0.9>> +<<set $slaveCostFactor = 0.9>> <<set $menialDemandFactor = 0>> -<<set $minimumSlaveCost to 2500>> +<<set $minimumSlaveCost = 2500>> <<set $facilityCost = 100>> <<set $enduringRep = 1000>> <<set $rep = 1000>> <<set $repGain = 0>> <<set $repLoss = 0>> <<set $cashLastWeek = 0>> -<<set $AProsperityCap to 60>> -<<set $ACitizens to ($AProsperityCap+200)*16>> -<<set $ASlaves to ($AProsperityCap+200)*4>> -<<set $AHelots to $ASlaves*2>> +<<set $AProsperityCap = 60>> +<<set $ACitizens = ($AProsperityCap+200)*16>> +<<set $ASlaves = ($AProsperityCap+200)*4>> +<<set $AHelots = $ASlaves*2>> <<set $helots = 0>> <<set $fuckdolls = 0>> <<set $menialBioreactors = 0>> -<<set $AGrowth to 2>> +<<set $AGrowth = 2>> <<set $prestigeAuctioned = 0>> -<<set $slaveMarketLimit to 20>> +<<set $slaveMarketLimit = 20>> <<set $slavesSeen = 0>> <<set $alwaysSubsidizeRep = 0>> @@ -988,7 +988,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $ProEnslavementRep = 0>> <<set $AntiEnslavementCash = 0>> <<set $AntiEnslavementRep = 0>> -<<set $BasicSMR to 1>> +<<set $BasicSMR = 1>> <<set $HealthInspectionSMR = 0>> <<set $EducationSMR = 0>> <<set $FrigiditySMR = 0>> @@ -1019,12 +1019,12 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $MixedMarriage = 0>> <<set $CulturalOpenness = 0>> -<<set $policyCost to 5000>> +<<set $policyCost = 5000>> <<set $expiree = 0>> <<set $retiree = 0>> <<set $birthee = 0>> -<<set $retirementAge to 45>> -<<set $customRetirementAge to 45>> +<<set $retirementAge = 45>> +<<set $customRetirementAge = 45>> <<set $CustomRetirementAgePolicy = 0>> <<set $BioreactorRetirement = 0>> <<set $ArcadeRetirement = 0>> @@ -1034,9 +1034,9 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $BirthsMilestoneRetirement = 0>> <<set $KillsMilestoneRetirement = 0>> <<set $retirementSex = 10000>> -<<set $retirementMilk to 50000>> -<<set $retirementBirths to 5>> -<<set $retirementKills to 3>> +<<set $retirementMilk = 50000>> +<<set $retirementBirths = 5>> +<<set $retirementKills = 3>> <<set $nicaea = 0>> <<set $nicaeaAnnounceable = 0>> <<set $nicaeaAnnounced = 0>> @@ -1044,47 +1044,47 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $nicaeaPower = 0>> <<set $nicaeaHeld = 0>> -<<set $oralUseWeight to 5>> -<<set $vaginalUseWeight to 5>> -<<set $analUseWeight to 5>> +<<set $oralUseWeight = 5>> +<<set $vaginalUseWeight = 5>> +<<set $analUseWeight = 5>> -<<set $veryYoungCareers to ["a refugee", "a child actress", "a model", "an orphan", "an orphan", "an orphan", "a street urchin", "a street urchin", "a sweatshop worker", "a sweatshop worker", "a sweatshop worker", "a girl scout", "a part-time farm laborer", "a paper girl", "a pick-pocket", "from a middle class family", "from a lower class family", "from an upper class family", "a child prostitute", "homeless", "a juvenile delinquent", "a student from a public school", "a student from a public school", "a student from a public school", "a child soldier", "a student from a private school", "a student from a boarding school", "being homeschooled by her parents", "an orphan", "a beggar", "a dropout", "a club recruiter", "a military brat", "a model-UN star", "a street thug", "a pageant star", "a babysitter", "a cheerleader", "a student council president", "a farmer's daughter", "captain of the kendo club", "a handmaiden"]>> +<<set $veryYoungCareers = ["a refugee", "a child actress", "a model", "an orphan", "an orphan", "an orphan", "a street urchin", "a street urchin", "a sweatshop worker", "a sweatshop worker", "a sweatshop worker", "a girl scout", "a part-time farm laborer", "a paper girl", "a pick-pocket", "from a middle class family", "from a lower class family", "from an upper class family", "a child prostitute", "homeless", "a juvenile delinquent", "a student from a public school", "a student from a public school", "a student from a public school", "a child soldier", "a student from a private school", "a student from a boarding school", "being homeschooled by her parents", "an orphan", "a beggar", "a dropout", "a club recruiter", "a military brat", "a model-UN star", "a street thug", "a pageant star", "a babysitter", "a cheerleader", "a student council president", "a farmer's daughter", "captain of the kendo club", "a handmaiden"]>> -<<set $youngCareers to ["a refugee", "an apprentice", "an air hostess", "a ride attendant", "an arcade attendant", "a barista", "a bartender", "a courier", "a prisoner", "a model", "a racing driver", "a teaching assistant", "a maid", "a truck driver", "a factory worker", "an office worker", "a farm laborer", "a secretary", "a cook", "a service worker", "a housewife", "a stripper", "a prostitute", "a saleswoman", "a criminal", "a student", "a student", "a camgirl", "a student", "a soldier", "a security guard", "a cheerleader", "a housesitter", "a gang member", "a farmer's daughter", "a handmaiden", "a waitress", "an assassin", "unemployed", "unemployed", "unemployed", "unemployed", "unemployed"]>> +<<set $youngCareers = ["a refugee", "an apprentice", "an air hostess", "a ride attendant", "an arcade attendant", "a barista", "a bartender", "a courier", "a prisoner", "a model", "a racing driver", "a teaching assistant", "a maid", "a truck driver", "a factory worker", "an office worker", "a farm laborer", "a secretary", "a cook", "a service worker", "a housewife", "a stripper", "a prostitute", "a saleswoman", "a criminal", "a student", "a student", "a camgirl", "a student", "a soldier", "a security guard", "a cheerleader", "a housesitter", "a gang member", "a farmer's daughter", "a handmaiden", "a waitress", "an assassin", "unemployed", "unemployed", "unemployed", "unemployed", "unemployed"]>> -<<set $educatedCareers to ["a principal", "an assassin", "a mercenary", "a dispatch officer", "a transporter", "a paramedic", "a child actress", "a mechanic", "a pilot", "an MS pilot", "an air hostess", "an engineer", "a professional bartender", "a procuress", "a refugee", "a doctor", "a private detective", "a journalist", "a journalist", "a lawyer", "a teacher", "a business owner", "a classical dancer", "a classical musician", "an investor", "a writer", "a programmer", "a counselor", "a nun", "a scientist", "an actress", "a criminal", "a politician", "a military officer", "a professor", "a shut-in", "a serial divorcee", "a manager", "a medical student", "a therapist", "a psychologist", "a veterinarian", "a wedding planner", "an estate agent", "a teaching assistant", "a private instructor", "a librarian", "a military recruiter", "a college scout", "a scholar"]>> +<<set $educatedCareers = ["a principal", "an assassin", "a mercenary", "a dispatch officer", "a transporter", "a paramedic", "a child actress", "a mechanic", "a pilot", "an MS pilot", "an air hostess", "an engineer", "a professional bartender", "a procuress", "a refugee", "a doctor", "a private detective", "a journalist", "a journalist", "a lawyer", "a teacher", "a business owner", "a classical dancer", "a classical musician", "an investor", "a writer", "a programmer", "a counselor", "a nun", "a scientist", "an actress", "a criminal", "a politician", "a military officer", "a professor", "a shut-in", "a serial divorcee", "a manager", "a medical student", "a therapist", "a psychologist", "a veterinarian", "a wedding planner", "an estate agent", "a teaching assistant", "a private instructor", "a librarian", "a military recruiter", "a college scout", "a scholar"]>> -<<set $uneducatedCareers to ["a procuress", "an enforcer", "a prisoner", "a racing driver", "a medic", "a ride attendant", "an arcade attendant", "a barista", "a bartender", "a masseuse", "a refugee", "a masseuse", "a model", "a pimp", "a maid", "a mail carrier", "a fisherwoman", "a truck driver", "an athlete", "a trophy wife", "a teacher", "a factory worker", "a dancer", "a musician", "an office worker", "a farm laborer", "a secretary", "a cook", "a nurse", "a service worker", "a housewife", "a camgirl", "a stripper", "a prostitute", "a saleswoman", "a criminal", "a student", "a soldier", "a security guard", "an actress", "a party girl", "a law enforcement officer", "a bouncer", "a bodyguard", "a local news anchor", "a weathergirl", "a camwhore", "a cocktail waitress", "a mistress", "a house DJ", "an aspiring pop star", "in a militia", "a revolutionary", "a cheerleader", "a prison guard", "an enforcer", "a medic", "a paramedic", "a lifeguard", "a dairy worker", "a rancher", "a farmer's daughter", "a charity worker", "a caregiver", "a handmaiden", "a waitress", "unemployed", "unemployed", "unemployed", "unemployed", "unemployed"]>> +<<set $uneducatedCareers = ["a procuress", "an enforcer", "a prisoner", "a racing driver", "a medic", "a ride attendant", "an arcade attendant", "a barista", "a bartender", "a masseuse", "a refugee", "a masseuse", "a model", "a pimp", "a maid", "a mail carrier", "a fisherwoman", "a truck driver", "an athlete", "a trophy wife", "a teacher", "a factory worker", "a dancer", "a musician", "an office worker", "a farm laborer", "a secretary", "a cook", "a nurse", "a service worker", "a housewife", "a camgirl", "a stripper", "a prostitute", "a saleswoman", "a criminal", "a student", "a soldier", "a security guard", "an actress", "a party girl", "a law enforcement officer", "a bouncer", "a bodyguard", "a local news anchor", "a weathergirl", "a camwhore", "a cocktail waitress", "a mistress", "a house DJ", "an aspiring pop star", "in a militia", "a revolutionary", "a cheerleader", "a prison guard", "an enforcer", "a medic", "a paramedic", "a lifeguard", "a dairy worker", "a rancher", "a farmer's daughter", "a charity worker", "a caregiver", "a handmaiden", "a waitress", "unemployed", "unemployed", "unemployed", "unemployed", "unemployed"]>> -<<set $gratefulCareers to ["unemployed", "a prisoner", "a refugee", "homeless", "a street urchin", "a sweatshop worker", "a child soldier", "an orphan", "a student from a boarding school", "a beggar", "a pick-pocket", "from a lower class family", "a shut-in"]>> +<<set $gratefulCareers = ["unemployed", "a prisoner", "a refugee", "homeless", "a street urchin", "a sweatshop worker", "a child soldier", "an orphan", "a student from a boarding school", "a beggar", "a pick-pocket", "from a lower class family", "a shut-in"]>> -<<set $menialCareers to ["an athlete", "an apprentice", "a courier", "an engineer", "a mechanic", "a pilot", "a ride attendant", "an arcade attendant", "a dropout", "a mail carrier", "a student from a private school", "a fisherwoman", "a truck driver", "a factory worker", "a farm laborer", "a cook", "a service worker", "a paper girl", "a part-time farm laborer", "a maid", "a housewife", "a student", "from an upper class family", "a programmer", "a student from a public school", "from a middle class family", "a nun", "being homeschooled by her parents", "a housesitter", "a babysitter", "a handmaiden"]>> +<<set $menialCareers = ["an athlete", "an apprentice", "a courier", "an engineer", "a mechanic", "a pilot", "a ride attendant", "an arcade attendant", "a dropout", "a mail carrier", "a student from a private school", "a fisherwoman", "a truck driver", "a factory worker", "a farm laborer", "a cook", "a service worker", "a paper girl", "a part-time farm laborer", "a maid", "a housewife", "a student", "from an upper class family", "a programmer", "a student from a public school", "from a middle class family", "a nun", "being homeschooled by her parents", "a housesitter", "a babysitter", "a handmaiden"]>> -<<set $entertainmentCareers to ["a party girl", "a racing driver", "a child actress", "a camgirl", "an actress", "a journalist", "a writer", "a local news anchor", "a weathergirl", "a camwhore", "a cocktail waitress", "a cheerleader", "a waitress"]>> +<<set $entertainmentCareers = ["a party girl", "a racing driver", "a child actress", "a camgirl", "an actress", "a journalist", "a writer", "a local news anchor", "a weathergirl", "a camwhore", "a cocktail waitress", "a cheerleader", "a waitress"]>> -<<set $whoreCareers to ["a prostitute", "a child prostitute", "a stripper", "a saleswoman", "a criminal", "a porn star", "a trophy wife", "a Futanari Sister", "a model", "a juvenile delinquent", "a mistress", "a serial divorcee", "a pageant star"]>> +<<set $whoreCareers = ["a prostitute", "a child prostitute", "a stripper", "a saleswoman", "a criminal", "a porn star", "a trophy wife", "a Futanari Sister", "a model", "a juvenile delinquent", "a mistress", "a serial divorcee", "a pageant star"]>> -<<set $HGCareers to ["a lawyer", "a military officer", "a politician", "a model-UN star", "a student council president", "a leading arcology citizen"]>> +<<set $HGCareers = ["a lawyer", "a military officer", "a politician", "a model-UN star", "a student council president", "a leading arcology citizen"]>> <<set $recruiterCareers = ["a military recruiter", "a club recruiter", "a college scout", "a girl scout"]>> -<<set $madamCareers to ["a procuress", "a pimp", "a business owner", "a manager"]>> +<<set $madamCareers = ["a procuress", "a pimp", "a business owner", "a manager"]>> -<<set $DJCareers to ["a dancer", "a musician", "a classical dancer", "a classical musician", "a house DJ", "an aspiring pop star"]>> +<<set $DJCareers = ["a dancer", "a musician", "a classical dancer", "a classical musician", "a house DJ", "an aspiring pop star"]>> -<<set $bodyguardCareers to ["a soldier", "an assassin", "a transporter", "an MS pilot", "a bodyguard", "a law enforcement officer", "a child soldier", "in a militia", "a revolutionary", "a military brat", "captain of the kendo club", "an assassin"]>> +<<set $bodyguardCareers = ["a soldier", "an assassin", "a transporter", "an MS pilot", "a bodyguard", "a law enforcement officer", "a child soldier", "in a militia", "a revolutionary", "a military brat", "captain of the kendo club", "an assassin"]>> -<<set $wardenessCareers to ["a security guard", "a mercenary", "an enforcer", "a private detective", "a bouncer", "a prison guard", "an enforcer", "a street thug", "a gang member"]>> +<<set $wardenessCareers = ["a security guard", "a mercenary", "an enforcer", "a private detective", "a bouncer", "a prison guard", "an enforcer", "a street thug", "a gang member"]>> -<<set $nurseCareers to ["a nurse", "a doctor", "a medic", "a paramedic", "a medical student"]>> +<<set $nurseCareers = ["a nurse", "a doctor", "a medic", "a paramedic", "a medical student"]>> -<<set $attendantCareers to ["a masseuse", "a dispatch officer", "a counselor", "a lifeguard", "a therapist", "a psychologist"]>> +<<set $attendantCareers = ["a masseuse", "a dispatch officer", "a counselor", "a lifeguard", "a therapist", "a psychologist"]>> -<<set $milkmaidCareers to ["a dairy worker", "a rancher", "a veterinarian", "a farmer's daughter"]>> +<<set $milkmaidCareers = ["a dairy worker", "a rancher", "a veterinarian", "a farmer's daughter"]>> -<<set $stewardessCareers to ["a secretary", "a barista", "a bartender", "an air hostess", "a professional bartender", "an office worker", "an investor", "a charity worker", "a caregiver", "a wedding planner", "an estate agent"]>> +<<set $stewardessCareers = ["a secretary", "a barista", "a bartender", "an air hostess", "a professional bartender", "an office worker", "an investor", "a charity worker", "a caregiver", "a wedding planner", "an estate agent"]>> -<<set $schoolteacherCareers to ["a principal", "a teaching assistant", "a teacher", "a scientist", "a professor", "a private instructor", "a librarian", "a scholar"]>> +<<set $schoolteacherCareers = ["a principal", "a teaching assistant", "a teacher", "a scientist", "a professor", "a private instructor", "a librarian", "a scholar"]>> <<set $whiteNationalities = ["American", "Argentinian", "Australian", "Austrian", "Belarusian", "Belgian", "Brazilian", "British", "Canadian", "Chilean", "Czech", "Danish", "Dutch", "Estonian", "Finnish", "French", "German", "Hungarian", "Icelandic", "Irish", "Israeli", "Italian", "Lithuanian", "Norwegian", "Polish", "Portuguese", "Romanian", "Russian", "Scottish", "Serbian", "Slovak", "South African", "Swiss", "Ukrainian", "a New Zealander"]>> @@ -1122,204 +1122,205 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $africaNationalities = ["Algerian", "Congolese", "Ethiopian", "Ghanan", "Kenyan", "Libyan", "Malian", "Moroccan", "Nigerian", "South African", "Sudanese", "Tanzanian", "Tunisian", "Ugandan", "Zimbabwean"]>> <<set $australiaNationalities = ["Australian", "a New Zealander"]>> -/* END Custom Nationalities region filter */<<set $whiteAmericanSlaveNames to ["Sophia", "Emma", "Olivia", "Ava", "Isabella", "Mia", "Zoe", "Lily", "Emily", "Madelyn", "Madison", "Chloe", "Charlotte", "Aubrey", "Avery", "Abigail", "Kaylee", "Layla", "Harper", "Ella", "Amelia", "Arianna", "Riley", "Aria", "Hailey", "Hannah", "Evelyn", "Addison", "Mackenzie", "Adalyn", "Ellie", "Brooklyn", "Nora", "Scarlett", "Grace", "Anna", "Isabelle", "Natalie", "Kaitlyn", "Lillian", "Sarah", "Audrey", "Elizabeth", "Leah", "Annabelle", "Kylie", "Mila", "Claire", "Victoria", "Maya", "Lila", "Elena", "Lucy", "Savannah", "Gabriella", "Callie", "Alaina", "Sophie", "Makayla", "Kennedy", "Sadie", "Skyler", "Allison", "Caroline", "Penelope", "Alyssa", "Peyton", "Samantha", "Liliana", "Bailey", "Maria", "Reagan", "Violet", "Eliana", "Adeline", "Eva", "Stella", "Keira", "Katherine", "Jessica", "Jennifer", "Amanda", "Ashley", "Sarah", "Stephanie", "Melissa", "Nicole", "Elizabeth", "Heather", "Tiffany", "Michelle", "Amber", "Megan", "Amy", "Rachel", "Kimberly", "Christina", "Lauren", "Crystal", "Brittany", "Rebecca", "Laura", "Danielle", "Emily", "Samantha", "Angela", "Erin", "Kelly", "Sara", "Lisa", "Katherine", "Andrea", "Jamie", "Mary", "Erica", "Courtney", "Kristen", "Shannon", "April", "Katie", "Lindsey", "Kristin", "Lindsay", "Christine", "Alicia", "Vanessa", "Maria", "Kathryn", "Allison", "Julie", "Anna", "Tara", "Kayla", "Natalie", "Victoria", "Monica", "Jacqueline", "Holly", "Kristina", "Patricia", "Cassandra", "Brandy", "Whitney", "Chelsea", "Brandi", "Catherine", "Cynthia", "Kathleen", "Veronica", "Leslie", "Natasha", "Krystal", "Stacy", "Diana", "Erika", "Dana", "Jenna", "Meghan", "Carrie", "Leah", "Melanie", "Brooke", "Karen", "Alexandra", "Valerie", "Caitlin", "Julia", "Alyssa", "Jasmine", "Hannah", "Stacey", "Brittney", "Susan", "Margaret", "Sandra", "Candice", "Latoya", "Bethany", "Misty"]>> +/* END Custom Nationalities region filter */ -<<set $africanAmericanSlaveNames to ["Madison", "Kayla", "Makayla", "Nevaeh", "Jada", "Brianna", "Chloe", "Destiny", "Alyssa", "Gabrielle", "Imani", "Kimora", "Aaliyah", "Jayla", "Abigail", "Arianna", "Ava", "Fatoumata", "Jade", "London", "Savannah", "Victoria", "Aniyah", "Nyla", "Olivia", "Taylor", "Ashley", "Sarah", "Jasmine", "Laila", "Chelsea", "Heaven"]>> +<<set $whiteAmericanSlaveNames = ["Sophia", "Emma", "Olivia", "Ava", "Isabella", "Mia", "Zoe", "Lily", "Emily", "Madelyn", "Madison", "Chloe", "Charlotte", "Aubrey", "Avery", "Abigail", "Kaylee", "Layla", "Harper", "Ella", "Amelia", "Arianna", "Riley", "Aria", "Hailey", "Hannah", "Evelyn", "Addison", "Mackenzie", "Adalyn", "Ellie", "Brooklyn", "Nora", "Scarlett", "Grace", "Anna", "Isabelle", "Natalie", "Kaitlyn", "Lillian", "Sarah", "Audrey", "Elizabeth", "Leah", "Annabelle", "Kylie", "Mila", "Claire", "Victoria", "Maya", "Lila", "Elena", "Lucy", "Savannah", "Gabriella", "Callie", "Alaina", "Sophie", "Makayla", "Kennedy", "Sadie", "Skyler", "Allison", "Caroline", "Penelope", "Alyssa", "Peyton", "Samantha", "Liliana", "Bailey", "Maria", "Reagan", "Violet", "Eliana", "Adeline", "Eva", "Stella", "Keira", "Katherine", "Jessica", "Jennifer", "Amanda", "Ashley", "Sarah", "Stephanie", "Melissa", "Nicole", "Elizabeth", "Heather", "Tiffany", "Michelle", "Amber", "Megan", "Amy", "Rachel", "Kimberly", "Christina", "Lauren", "Crystal", "Brittany", "Rebecca", "Laura", "Danielle", "Emily", "Samantha", "Angela", "Erin", "Kelly", "Sara", "Lisa", "Katherine", "Andrea", "Jamie", "Mary", "Erica", "Courtney", "Kristen", "Shannon", "April", "Katie", "Lindsey", "Kristin", "Lindsay", "Christine", "Alicia", "Vanessa", "Maria", "Kathryn", "Allison", "Julie", "Anna", "Tara", "Kayla", "Natalie", "Victoria", "Monica", "Jacqueline", "Holly", "Kristina", "Patricia", "Cassandra", "Brandy", "Whitney", "Chelsea", "Brandi", "Catherine", "Cynthia", "Kathleen", "Veronica", "Leslie", "Natasha", "Krystal", "Stacy", "Diana", "Erika", "Dana", "Jenna", "Meghan", "Carrie", "Leah", "Melanie", "Brooke", "Karen", "Alexandra", "Valerie", "Caitlin", "Julia", "Alyssa", "Jasmine", "Hannah", "Stacey", "Brittney", "Susan", "Margaret", "Sandra", "Candice", "Latoya", "Bethany", "Misty"]>> -<<set $asianAmericanSlaveNames to ["Sophia", "Chloe", "Emily", "Tiffany", "Fiona", "Isabella", "Olivia", "Sarah", "Angela", "Vivian", "Nicole", "Rachel", "Michelle", "Ashley", "Grace", "Joyce", "Anna", "Sophie", "Fatima", "Jasmine", "Jenny", "Jessica", "Cindy", "Emma", "Hannah", "Amy", "Angelina", "Mia", ]>> +<<set $africanAmericanSlaveNames = ["Madison", "Kayla", "Makayla", "Nevaeh", "Jada", "Brianna", "Chloe", "Destiny", "Alyssa", "Gabrielle", "Imani", "Kimora", "Aaliyah", "Jayla", "Abigail", "Arianna", "Ava", "Fatoumata", "Jade", "London", "Savannah", "Victoria", "Aniyah", "Nyla", "Olivia", "Taylor", "Ashley", "Sarah", "Jasmine", "Laila", "Chelsea", "Heaven"]>> -<<set $latinaSlaveNames to ["Ashley", "Isabella", "Marina", "Carmen", "Emily", "Brianna", "Mia", "Samantha", "Sophia", "Melanie", "Genesis", "Kimberly", "Angelina", "Madison", "Gabriella", "Camila", "Jennifer", "Alyssa", "Sofia", "Arianna", "Hailey", "Maria", "Kayla", "Abigail", "Gabriela", "Victoria", "Stephanie", "Allison", "Vanessa", "Emma", "Daniela", "Evelyn", "SofÃa", "Marti", "Valenti", "MÃa", "Isabella", "MarÃa", "Zoe", "Catali", "Emma", "Alma", "Sophia", "Alice", "Julia", "Isabella", "Manuela", "Laura", "Luiza", "Valenti", "Maria", "Eduarda", "SofÃa", "Emilia", "Isidora", "Florencia", "Antonella", "Marti", "Maite", "Amanda", "Josefa", "Agusti", "Maria", "Valenti", "Isabella", "SofÃa", "Valeria", "MarÃa", "José", "Gabriela", "Sara", "Salomé", "Daniela", "Xime", "Valenti", "MarÃa", "Fernanda", "SofÃa", "MarÃa", "Marti", "Emilia", "Zoe", "Mia", "Dulce", "MarÃa", "MarÃa", "Elizabeth", "Beatriz", "Ramo", "Liz", "Concepción", "Caroli", "Mabel", "Raquel", "NoemÃ", "MarÃa", "Camila", "Fernanda", "Milagros", "Luz", "Abigail", "Aria", "Lucia", "Alexandra", "Florencia", "LucÃa", "Agusti", "Camila", "Julia", "Julieta", "SofÃa", "Abril", "Paula", "Micaela", "Camila", "Isabella", "SofÃa", "Victoria", "Valenti", "Valeria", "Nicole", "Samantha", "Maria", "Antonella"]>> +<<set $asianAmericanSlaveNames = ["Sophia", "Chloe", "Emily", "Tiffany", "Fiona", "Isabella", "Olivia", "Sarah", "Angela", "Vivian", "Nicole", "Rachel", "Michelle", "Ashley", "Grace", "Joyce", "Anna", "Sophie", "Fatima", "Jasmine", "Jenny", "Jessica", "Cindy", "Emma", "Hannah", "Amy", "Angelina", "Mia", ]>> -<<set $belarusianSlaveNames to ["Nastya", "Dasha", "Maria", "Olga", "Anastasia", "Liza", "Kate", "Anna", "Alina", "Marina", "Julia", "Irina", "Katya", "Polina", "Tanya", "Daria", "Natasha", "Alexandra", "Ksenia", "Mary", "Victoria", "Masha", "Ekaterina", "Yana", "Arina", "Lera", "Ann", "Svetlana", "Mariya", "Diana", "Kseniya", "Kastiaryna", "Kristina", "Lena", "Helen", "Natalia", "Tatiana", "Sveta", "Anastasiya", "Oksana", "Sasha", "Anya", "Alena", "Darya", "Yulia", "Katerina", "Valeria", "Ksusha", "Sonya", "Helena", "Vitaliya", "Darya", "Lena", "Masha", "Karina", "Arina", "Diana", "Yuliya", "Natalia", "Viktoriya", "Anastasiya", "Daria", "Taya", "Irene", "Tatiana", "Nadzeya", "Alex", "Katia", "Natalya", "Valeria", "Alexandra", "Zlata"]>> +<<set $latinaSlaveNames = ["Ashley", "Isabella", "Marina", "Carmen", "Emily", "Brianna", "Mia", "Samantha", "Sophia", "Melanie", "Genesis", "Kimberly", "Angelina", "Madison", "Gabriella", "Camila", "Jennifer", "Alyssa", "Sofia", "Arianna", "Hailey", "Maria", "Kayla", "Abigail", "Gabriela", "Victoria", "Stephanie", "Allison", "Vanessa", "Emma", "Daniela", "Evelyn", "SofÃa", "Marti", "Valenti", "MÃa", "Isabella", "MarÃa", "Zoe", "Catali", "Emma", "Alma", "Sophia", "Alice", "Julia", "Isabella", "Manuela", "Laura", "Luiza", "Valenti", "Maria", "Eduarda", "SofÃa", "Emilia", "Isidora", "Florencia", "Antonella", "Marti", "Maite", "Amanda", "Josefa", "Agusti", "Maria", "Valenti", "Isabella", "SofÃa", "Valeria", "MarÃa", "José", "Gabriela", "Sara", "Salomé", "Daniela", "Xime", "Valenti", "MarÃa", "Fernanda", "SofÃa", "MarÃa", "Marti", "Emilia", "Zoe", "Mia", "Dulce", "MarÃa", "MarÃa", "Elizabeth", "Beatriz", "Ramo", "Liz", "Concepción", "Caroli", "Mabel", "Raquel", "NoemÃ", "MarÃa", "Camila", "Fernanda", "Milagros", "Luz", "Abigail", "Aria", "Lucia", "Alexandra", "Florencia", "LucÃa", "Agusti", "Camila", "Julia", "Julieta", "SofÃa", "Abril", "Paula", "Micaela", "Camila", "Isabella", "SofÃa", "Victoria", "Valenti", "Valeria", "Nicole", "Samantha", "Maria", "Antonella"]>> -<<set $russianSlaveNames to ["Agrippina", "Gruscha", "Albina", "Alewtina", "Alexandra", "Alina", "Alisa", "Aljona", "Alla", "Anastasia", "Anfisa", "Anisa", "Anna", "Anjelika", "Antonina", "Arina", "Avrora", "Darja", "Diana", "Edita", "Eleonora", "Elwira", "Emma", "Evelina", "Faina", "Galina", "Inga", "Inna", "Irina", "Janna", "Ekaterina", "Elena", "Elisaveta", "Eva", "Ewdokija", "Evgenija", "Efrosinja", "Julia", "Kapitolina", "Kira", "Klara", "Klavdia", "Kristina", "Ksenia", "Lada", "Larisa", "Lara", "Lidija", "Lilija", "Lybow", "Ludmila", "Maja", "Marfa", "Margarita", "Maria", "Marusja", "Marina", "Marta", "Mila", "Nadeschda", "Natalja", "Natalia", "Nina", "Nonna", "Olga", "Olesja", "Olympiada", "Oksana", "Pelageja", "Polina", "Raisa", "Rimma", "Rosa", "Ruslana", "Janna", "Serafima", "Sofja", "Stella", "Svetlana", "Taisija", "Tamara", "Tatjana", "Uljana", "Valentina", "Valeria", "Varvara", "Vasilisa", "Vera", "Veronika", "Violetta", "Viola", "Zinaida", "Zoja"]>> +<<set $belarusianSlaveNames = ["Nastya", "Dasha", "Maria", "Olga", "Anastasia", "Liza", "Kate", "Anna", "Alina", "Marina", "Julia", "Irina", "Katya", "Polina", "Tanya", "Daria", "Natasha", "Alexandra", "Ksenia", "Mary", "Victoria", "Masha", "Ekaterina", "Yana", "Arina", "Lera", "Ann", "Svetlana", "Mariya", "Diana", "Kseniya", "Kastiaryna", "Kristina", "Lena", "Helen", "Natalia", "Tatiana", "Sveta", "Anastasiya", "Oksana", "Sasha", "Anya", "Alena", "Darya", "Yulia", "Katerina", "Valeria", "Ksusha", "Sonya", "Helena", "Vitaliya", "Darya", "Lena", "Masha", "Karina", "Arina", "Diana", "Yuliya", "Natalia", "Viktoriya", "Anastasiya", "Daria", "Taya", "Irene", "Tatiana", "Nadzeya", "Alex", "Katia", "Natalya", "Valeria", "Alexandra", "Zlata"]>> -<<set $egyptianSlaveNames to ["Shaimaa", "Fatma", "Maha", "Farida", "Aya", "Shahd", "Ashraqat", "Sahar", "Fatin", "Dalal", "Doha", "Suha", "Rowan", "Hosniya", "Hasnaa", "Hosna", "Gamila", "Gamalat", "Habiba", "Aya", "Rania", "Sarah", "Reem", "Hoda", "Marwa", "Fatima", "Eisha", "Nesreen", "Fatoumata", "Mariam", "Aminata", "Hawa", "Awa", "Oumou", "Djeneba", "Bintou", "Fanta", "Kadiatou", "Fatima", "Khadija", "Aicha", "Malika", "Naima", "Rachida", "Nadia", "Karima", "Saida", "Mariam", "Shayma", "Khawla"]>> +<<set $russianSlaveNames = ["Agrippina", "Gruscha", "Albina", "Alewtina", "Alexandra", "Alina", "Alisa", "Aljona", "Alla", "Anastasia", "Anfisa", "Anisa", "Anna", "Anjelika", "Antonina", "Arina", "Avrora", "Darja", "Diana", "Edita", "Eleonora", "Elwira", "Emma", "Evelina", "Faina", "Galina", "Inga", "Inna", "Irina", "Janna", "Ekaterina", "Elena", "Elisaveta", "Eva", "Ewdokija", "Evgenija", "Efrosinja", "Julia", "Kapitolina", "Kira", "Klara", "Klavdia", "Kristina", "Ksenia", "Lada", "Larisa", "Lara", "Lidija", "Lilija", "Lybow", "Ludmila", "Maja", "Marfa", "Margarita", "Maria", "Marusja", "Marina", "Marta", "Mila", "Nadeschda", "Natalja", "Natalia", "Nina", "Nonna", "Olga", "Olesja", "Olympiada", "Oksana", "Pelageja", "Polina", "Raisa", "Rimma", "Rosa", "Ruslana", "Janna", "Serafima", "Sofja", "Stella", "Svetlana", "Taisija", "Tamara", "Tatjana", "Uljana", "Valentina", "Valeria", "Varvara", "Vasilisa", "Vera", "Veronika", "Violetta", "Viola", "Zinaida", "Zoja"]>> -<<set $brazilianSlaveNames to ["Ana", "Amanda", "Fernanda", "Julia", "Mariana", "Camila", "Leticia", "Larissa", "Beatriz", "Natália", "ThaÃs", "Juliana", "Vitória", "Jéssica", "Luana", "Laura", "Bruna", "Rafaela", "Maria", "Isabela", "Barbara", "Carolina", "Aline", "Ana", "Brenda", "LÃvia", "Gabriela", "Andressa", "Clara", "Raquel", "Daniela", "Clara", "Marcela", "LuÃza", "Giovana", "Stéfani", "Caroline", "Raissa", "Aléxia", "Milena", "Natália", "Tayná", "Sabrina", "Ana", "Luiza", "Yasmin", "Carla", "Helena", "Carmen", "Agripina", "Marta", "Mercedes", "Neuza", "Joana", "Janete"]>> +<<set $egyptianSlaveNames = ["Shaimaa", "Fatma", "Maha", "Farida", "Aya", "Shahd", "Ashraqat", "Sahar", "Fatin", "Dalal", "Doha", "Suha", "Rowan", "Hosniya", "Hasnaa", "Hosna", "Gamila", "Gamalat", "Habiba", "Aya", "Rania", "Sarah", "Reem", "Hoda", "Marwa", "Fatima", "Eisha", "Nesreen", "Fatoumata", "Mariam", "Aminata", "Hawa", "Awa", "Oumou", "Djeneba", "Bintou", "Fanta", "Kadiatou", "Fatima", "Khadija", "Aicha", "Malika", "Naima", "Rachida", "Nadia", "Karima", "Saida", "Mariam", "Shayma", "Khawla"]>> -<<set $chineseSlaveNames to ["Ah", "Ai", "An", "Bai", "Bao", "Bi", "Bo", "Cai", "Chang", "Chao", "Chen", "Cheng", "Chin", "Chun", "Da", "Dan", "Fang", "Fen", "Fu", "Guanting", "Guanyu", "Guiying", "Guo", "Hai", "He", "Heng", "Hong", "Hua", "Huan", "Huang", "Hui", "Jia", "Jian", "Jiang", "Jie", "Jin", "Jing", "Jingyi", "Ju", "Juan", "Jun", "Kun", "Lan", "Lei", "Li", "Lian", "Lili", "Lim", "Lin", "Ling", "Mei", "Min", "Ming", "Mu", "Na", "Ni", "Ning", "Nuan", "Ping", "Qian", "Qing", "Qiong", "Qiu", "Rong", "Ru", "Shan", "Shi", "Shu", "Shufen", "Shui", "Shun", "Su", "Tai", "Ting", "Tingting", "Tu", "Wei", "Wen", "Wu", "Xia", "Xian", "Xiang", "Xiaomei", "Xiaoyan", "Xinyi", "Xiu", "Xiulan", "Xiuying", "Xue", "Xun", "Ya", "Yahui", "Yaling", "Yan", "Yang", "Yating", "Yawen", "Yazhu", "Yi", "Yijun", "Yin", "Ying", "Yong", "Yu", "Yun", "Zan", "Zedong", "Zhen", "Zheng", "Zhi", "Zhihao", "Zhong", "Zhou"]>> +<<set $brazilianSlaveNames = ["Ana", "Amanda", "Fernanda", "Julia", "Mariana", "Camila", "Leticia", "Larissa", "Beatriz", "Natália", "ThaÃs", "Juliana", "Vitória", "Jéssica", "Luana", "Laura", "Bruna", "Rafaela", "Maria", "Isabela", "Barbara", "Carolina", "Aline", "Ana", "Brenda", "LÃvia", "Gabriela", "Andressa", "Clara", "Raquel", "Daniela", "Clara", "Marcela", "LuÃza", "Giovana", "Stéfani", "Caroline", "Raissa", "Aléxia", "Milena", "Natália", "Tayná", "Sabrina", "Ana", "Luiza", "Yasmin", "Carla", "Helena", "Carmen", "Agripina", "Marta", "Mercedes", "Neuza", "Joana", "Janete"]>> -<<set $koreanSlaveNames to ["Bora", "Chae-Won", "Duri", "Eun", "Eun-Jeong", "Eun-Ji", "Eun-Jung", "Eun-Seo", "Eun-Yeong", "Eun-Young", "Gyeong", "Gyeong-Hui", "Gyeong-Ja", "Gyeong-Suk", "Ha-Yoon", "Ha-Yun", "Hana", "Haneul", "Hwan", "Hye-Jin", "Hyeon", "Hyeon-Jeong", "Hyeon-Ju", "Hyun", "Hyun-Joo", "Hyun-Jung", "Iseul", "Jeon", "Jeong-Hui", "Jeong-Suk", "Ji", "Ji-Ah", "Ji-Eun", "Ji-Hu", "Ji-Hye", "Ji-Min", "Ji-U", "Ji-Woo", "Ji-Yeong", "Ji-Young", "Ji-Yu", "Jong", "Joo-Won", "Ju-Won", "Jun", "Jung", "Jung-Hee", "Jung-Sook", "Kyung", "Kyung-Hee", "Kyung-Ja", "Kyung-Sook", "Mei-Hui", "Mei-Ling", "Mi-Gyeong", "Mi-Kyung", "Mi-Suk", "Min", "Min-Ji", "Min-Jun", "Min-Seo", "Min-Su", "Myeong", "Myeong-Suk", "Myung", "Nari", "Sang", "Seo-Hyeon", "Seo-Hyun", "Seo-Yeon", "Seo-Yoon", "Seo-Yun", "Seong", "Seong-Hyeon", "Seong-Min", "Seung", "Shu-Fen", "Shu-Hui", "Soo-Jin", "Su-Bin", "Su-Jin", "Suk-Ja", "Sung", "Sung-Hyun", "Sung-Min", "Ya-Ting", "Yeong", "Yeong-Hui", "Yeong-Ja", "Yeong-Suk", "Yong", "Yoon-Seo", "Young", "Young-Hee", "Young-Ja", "Young-Sook"]>> +<<set $chineseSlaveNames = ["Ah", "Ai", "An", "Bai", "Bao", "Bi", "Bo", "Cai", "Chang", "Chao", "Chen", "Cheng", "Chin", "Chun", "Da", "Dan", "Fang", "Fen", "Fu", "Guanting", "Guanyu", "Guiying", "Guo", "Hai", "He", "Heng", "Hong", "Hua", "Huan", "Huang", "Hui", "Jia", "Jian", "Jiang", "Jie", "Jin", "Jing", "Jingyi", "Ju", "Juan", "Jun", "Kun", "Lan", "Lei", "Li", "Lian", "Lili", "Lim", "Lin", "Ling", "Mei", "Min", "Ming", "Mu", "Na", "Ni", "Ning", "Nuan", "Ping", "Qian", "Qing", "Qiong", "Qiu", "Rong", "Ru", "Shan", "Shi", "Shu", "Shufen", "Shui", "Shun", "Su", "Tai", "Ting", "Tingting", "Tu", "Wei", "Wen", "Wu", "Xia", "Xian", "Xiang", "Xiaomei", "Xiaoyan", "Xinyi", "Xiu", "Xiulan", "Xiuying", "Xue", "Xun", "Ya", "Yahui", "Yaling", "Yan", "Yang", "Yating", "Yawen", "Yazhu", "Yi", "Yijun", "Yin", "Ying", "Yong", "Yu", "Yun", "Zan", "Zedong", "Zhen", "Zheng", "Zhi", "Zhihao", "Zhong", "Zhou"]>> -<<set $indianSlaveNames to ["Aadhya", "Ananya", "Saanvi", "Aaradhya", "Anaya", "Aanya", "Anika", "Pari", "Myra", "Shanaya", "Ananya", "Anika", "Aradhya", "Harini", "Navya", "Ridhi", "Rishika", "Sanvi", "Shreya"]>> +<<set $koreanSlaveNames = ["Bora", "Chae-Won", "Duri", "Eun", "Eun-Jeong", "Eun-Ji", "Eun-Jung", "Eun-Seo", "Eun-Yeong", "Eun-Young", "Gyeong", "Gyeong-Hui", "Gyeong-Ja", "Gyeong-Suk", "Ha-Yoon", "Ha-Yun", "Hana", "Haneul", "Hwan", "Hye-Jin", "Hyeon", "Hyeon-Jeong", "Hyeon-Ju", "Hyun", "Hyun-Joo", "Hyun-Jung", "Iseul", "Jeon", "Jeong-Hui", "Jeong-Suk", "Ji", "Ji-Ah", "Ji-Eun", "Ji-Hu", "Ji-Hye", "Ji-Min", "Ji-U", "Ji-Woo", "Ji-Yeong", "Ji-Young", "Ji-Yu", "Jong", "Joo-Won", "Ju-Won", "Jun", "Jung", "Jung-Hee", "Jung-Sook", "Kyung", "Kyung-Hee", "Kyung-Ja", "Kyung-Sook", "Mei-Hui", "Mei-Ling", "Mi-Gyeong", "Mi-Kyung", "Mi-Suk", "Min", "Min-Ji", "Min-Jun", "Min-Seo", "Min-Su", "Myeong", "Myeong-Suk", "Myung", "Nari", "Sang", "Seo-Hyeon", "Seo-Hyun", "Seo-Yeon", "Seo-Yoon", "Seo-Yun", "Seong", "Seong-Hyeon", "Seong-Min", "Seung", "Shu-Fen", "Shu-Hui", "Soo-Jin", "Su-Bin", "Su-Jin", "Suk-Ja", "Sung", "Sung-Hyun", "Sung-Min", "Ya-Ting", "Yeong", "Yeong-Hui", "Yeong-Ja", "Yeong-Suk", "Yong", "Yoon-Seo", "Young", "Young-Hee", "Young-Ja", "Young-Sook"]>> -<<set $indonesianSlaveNames to ["Abigail", "Amalia", "Annisa", "Batari", "Bella", "Bethari", "Bulan", "Cahaya", "Cahya", "Cindy", "Cinta", "Citra", "Dewi", "Dian", "Dina", "Dinda", "Dwi", "Eka", "Eko", "Elsa", "Gabriella", "Gita", "Grace", "Hana", "Iman", "Indah", "Intan", "Jasmine", "Jessica", "Karina", "Kasih", "Lestari", "Maria", "Mawar", "Mega", "Melati", "Nabila", "Nadya", "Nirmala", "Nurul", "Putri", "Ratu", "Sarah", "Sari", "Sharon", "Sinta", "Syifa", "Tri", "Utari", "Vania", "Vina", "Wangi", "Wulan"]>> +<<set $indianSlaveNames = ["Aadhya", "Ananya", "Saanvi", "Aaradhya", "Anaya", "Aanya", "Anika", "Pari", "Myra", "Shanaya", "Ananya", "Anika", "Aradhya", "Harini", "Navya", "Ridhi", "Rishika", "Sanvi", "Shreya"]>> -<<set $bangladeshiSlaveNames to ["Megh", "Chandni", "Roslin", "Sreea", "Abida", "Sharina", "Shaily", "Angela", "Nawrin", "Munazza", "Moon", "Sadia", "Amelia", "Lisa", "Nishad", "Joya", "Somebody", "Eider", "Afia", "Saliha", "Eva", "Fahmida", "Fima", "Rimi", "Disha", "Ojana", "Puja", "Zarat", "Crystal", "Farzana", "Anuva", "Sayeda", "Sayed", "Tasnuva", "Jenifar", "Morning", "Sky", "Hannah", "Arpita", "Oporajita", "Tripty", "Alavee", "Tazy", "Farzana", "Swappneel", "Shompa", "Orpa", "Rhiana", "Sumaya", "Khan", "Aurona", "Fariha", "Sanjana", "Farhan", "Mithee"]>> +<<set $indonesianSlaveNames = ["Abigail", "Amalia", "Annisa", "Batari", "Bella", "Bethari", "Bulan", "Cahaya", "Cahya", "Cindy", "Cinta", "Citra", "Dewi", "Dian", "Dina", "Dinda", "Dwi", "Eka", "Eko", "Elsa", "Gabriella", "Gita", "Grace", "Hana", "Iman", "Indah", "Intan", "Jasmine", "Jessica", "Karina", "Kasih", "Lestari", "Maria", "Mawar", "Mega", "Melati", "Nabila", "Nadya", "Nirmala", "Nurul", "Putri", "Ratu", "Sarah", "Sari", "Sharon", "Sinta", "Syifa", "Tri", "Utari", "Vania", "Vina", "Wangi", "Wulan"]>> -<<set $japaneseSlaveNames to ["Ai", "Aika", "Aiko", "Aimi", "Aina", "Airi", "Akane", "Akari", "Akemi", "Aki", "Akiko", "Akira", "Ami", "Anna", "Aoi", "Asuka", "Atsuko", "Aya", "Ayaka", "Ayako", "Ayame", "Ayane", "Ayano", "Ayumi", "Chihiro", "Chika", "Chikako", "Chinatsu", "Chiyo", "Chiyoko", "Cho", "Chou", "Chouko", "Emi", "Erika", "Etsuko", "Hana", "Hanae", "Hanako", "Haru", "Haruka", "Haruko", "Haruna", "Hibiki", "Hikari", "Hikaru", "Hina", "Hinata", "Hiroko", "Hitomi", "Honoka", "Hoshi", "Hoshiko", "Hotaru", "Izumi", "Junko", "Kaede", "Kana", "Kanako", "Kanon", "Kaori", "Kaoru", "Kasumi", "Kazue", "Kazuko", "Keiko", "Kiku", "Kimiko", "Kiyoko", "Kohaku", "Koharu", "Kokoro", "Kotone", "Kumiko", "Kyo", "Kyou", "Mai", "Makoto", "Mami", "Manami", "Mao", "Mari", "Mariko", "Marina", "Masami", "Masuyo", "Mayu", "Megumi", "Mei", "Michi", "Michiko", "Midori", "Miho", "Mika", "Miki", "Miku", "Minako", "Minami", "Minato", "Minoru", "Mio", "Misaki", "Mitsuko", "Miu", "Miyako", "Miyu", "Mizuki", "Moe", "Momoka", "Momoko", "Moriko", "Nana", "Nanako", "Nanami", "Nao", "Naoko", "Naomi", "Natsuki", "Natsuko", "Natsumi", "Noa", "Noriko", "Ran", "Rei", "Ren", "Riko", "Rin", "Rina", "Rio", "Risa", "Sachiko", "Saki", "Sakura", "Sakurako", "Satomi", "Saya", "Sayaka", "Sayuri", "Setsuko", "Shiho", "Shinju", "Shinobu", "Shiori", "Shizuka", "Shun", "Sora", "Sumiko", "Suzu", "Suzume", "Takako", "Takara", "Tamiko", "Tomiko", "Tomoko", "Tomomi", "Tsubaki", "Tsubame", "Tsubasa", "Tsukiko", "Ume", "Umeko", "Wakana", "Yasu", "Yoko", "Yoshi", "Yoshiko", "Youko", "Yua", "Yui", "Yuina", "Yuki", "Yukiko", "Yuko", "Yumi", "Yumiko", "Yuri", "Yuu", "Yuuka", "Yuuki", "Yuuko", "Yuuna", "Yuzuki"]>> +<<set $bangladeshiSlaveNames = ["Megh", "Chandni", "Roslin", "Sreea", "Abida", "Sharina", "Shaily", "Angela", "Nawrin", "Munazza", "Moon", "Sadia", "Amelia", "Lisa", "Nishad", "Joya", "Somebody", "Eider", "Afia", "Saliha", "Eva", "Fahmida", "Fima", "Rimi", "Disha", "Ojana", "Puja", "Zarat", "Crystal", "Farzana", "Anuva", "Sayeda", "Sayed", "Tasnuva", "Jenifar", "Morning", "Sky", "Hannah", "Arpita", "Oporajita", "Tripty", "Alavee", "Tazy", "Farzana", "Swappneel", "Shompa", "Orpa", "Rhiana", "Sumaya", "Khan", "Aurona", "Fariha", "Sanjana", "Farhan", "Mithee"]>> -<<set $nigerianSlaveNames to ["Esther", "Abigail", "Rose", "Stephanie", "Temitope", "Mary", "Hellen", "Ayomide", "Redeem", "Marie", "Linda", "Wendy", "Kebe", "Kemi", "Mercy", "Maris", "Doris", "Chinelo", "Dorcas", "Hannah", "Promise", "Hadiza", "Stella", "Olabisi", "Habeeba", "Michelle", "Theresa", "Wisfavour"]>> +<<set $japaneseSlaveNames = ["Ai", "Aika", "Aiko", "Aimi", "Aina", "Airi", "Akane", "Akari", "Akemi", "Aki", "Akiko", "Akira", "Ami", "Anna", "Aoi", "Asuka", "Atsuko", "Aya", "Ayaka", "Ayako", "Ayame", "Ayane", "Ayano", "Ayumi", "Chihiro", "Chika", "Chikako", "Chinatsu", "Chiyo", "Chiyoko", "Cho", "Chou", "Chouko", "Emi", "Erika", "Etsuko", "Hana", "Hanae", "Hanako", "Haru", "Haruka", "Haruko", "Haruna", "Hibiki", "Hikari", "Hikaru", "Hina", "Hinata", "Hiroko", "Hitomi", "Honoka", "Hoshi", "Hoshiko", "Hotaru", "Izumi", "Junko", "Kaede", "Kana", "Kanako", "Kanon", "Kaori", "Kaoru", "Kasumi", "Kazue", "Kazuko", "Keiko", "Kiku", "Kimiko", "Kiyoko", "Kohaku", "Koharu", "Kokoro", "Kotone", "Kumiko", "Kyo", "Kyou", "Mai", "Makoto", "Mami", "Manami", "Mao", "Mari", "Mariko", "Marina", "Masami", "Masuyo", "Mayu", "Megumi", "Mei", "Michi", "Michiko", "Midori", "Miho", "Mika", "Miki", "Miku", "Minako", "Minami", "Minato", "Minoru", "Mio", "Misaki", "Mitsuko", "Miu", "Miyako", "Miyu", "Mizuki", "Moe", "Momoka", "Momoko", "Moriko", "Nana", "Nanako", "Nanami", "Nao", "Naoko", "Naomi", "Natsuki", "Natsuko", "Natsumi", "Noa", "Noriko", "Ran", "Rei", "Ren", "Riko", "Rin", "Rina", "Rio", "Risa", "Sachiko", "Saki", "Sakura", "Sakurako", "Satomi", "Saya", "Sayaka", "Sayuri", "Setsuko", "Shiho", "Shinju", "Shinobu", "Shiori", "Shizuka", "Shun", "Sora", "Sumiko", "Suzu", "Suzume", "Takako", "Takara", "Tamiko", "Tomiko", "Tomoko", "Tomomi", "Tsubaki", "Tsubame", "Tsubasa", "Tsukiko", "Ume", "Umeko", "Wakana", "Yasu", "Yoko", "Yoshi", "Yoshiko", "Youko", "Yua", "Yui", "Yuina", "Yuki", "Yukiko", "Yuko", "Yumi", "Yumiko", "Yuri", "Yuu", "Yuuka", "Yuuki", "Yuuko", "Yuuna", "Yuzuki"]>> -<<set $pakistaniSlaveNames to ["Noor", "Anam", "Karen", "Ayesha", "Mishael", "Mariam", "Aisha", "Faiza", "Zakia", "Aanya", "Komal", "Hajra", "Ifrah", "Lintah", "Leah", "Tooba", "Asma", "Kheezran", "Sana", "Riasat", "Saima", "Mahrukh", "Haniya", "Mariyam", "Umara", "Zuny", "Sajida", "Rameen", "Unsa", "Neha", "Rabia", "Rida", "Zainnah", "Ameria", "Sarah", "Asmi", "Mizha", "Ruby", "Areeba", "Zainab", "Momna", "Rue", "Eraj", "Sara", "Krishma", "Alayna", "Usmaan", "Kainat", "Imama", "Sana"]>> +<<set $nigerianSlaveNames = ["Esther", "Abigail", "Rose", "Stephanie", "Temitope", "Mary", "Hellen", "Ayomide", "Redeem", "Marie", "Linda", "Wendy", "Kebe", "Kemi", "Mercy", "Maris", "Doris", "Chinelo", "Dorcas", "Hannah", "Promise", "Hadiza", "Stella", "Olabisi", "Habeeba", "Michelle", "Theresa", "Wisfavour"]>> -<<set $mexicanSlaveNames to ["Daniela", "Fernanda", "Andrea", "Ana", "MarÃa", "Alejandra", "Mariana", "Gabriela", "Jazmin", "Adriana", "Karla", "Rosa", "Elizabeth", "Samantha", "Itzel", "Esmeralda", "Laura", "Viridiana", "Melissa", "Sara", "Jessica", "Miriam", "Brenda", "Karen", "Tania", "Michelle", "Alma", "Frida", "Alondra", "Karina", "Ali", "Valeria", "Alexa", "Marian", "Cris", "Carolina", "Sofia", "Areli", "Paula", "Paulina", "Victoria", "Lorna", "Susy", "Benvidez", "Claudia", "Cynthia", "Liz", "Rocio", "Paola", "Rebeca"]>> +<<set $pakistaniSlaveNames = ["Noor", "Anam", "Karen", "Ayesha", "Mishael", "Mariam", "Aisha", "Faiza", "Zakia", "Aanya", "Komal", "Hajra", "Ifrah", "Lintah", "Leah", "Tooba", "Asma", "Kheezran", "Sana", "Riasat", "Saima", "Mahrukh", "Haniya", "Mariyam", "Umara", "Zuny", "Sajida", "Rameen", "Unsa", "Neha", "Rabia", "Rida", "Zainnah", "Ameria", "Sarah", "Asmi", "Mizha", "Ruby", "Areeba", "Zainab", "Momna", "Rue", "Eraj", "Sara", "Krishma", "Alayna", "Usmaan", "Kainat", "Imama", "Sana"]>> -<<set $dominicanSlaveNames to ["Nicole", "Lola", "Pamola", "Andrea", "Regine", "Camila", "Alaysha", "Maria", "Carmen", "Naelle", "Dorcas", "Sarah", "Diana", "Jhoka", "Erika", "Crystal", "Kimberly", "Isamar", "Brandy", "Zuleyka", "Nachelle", "Osari"]>> +<<set $mexicanSlaveNames = ["Daniela", "Fernanda", "Andrea", "Ana", "MarÃa", "Alejandra", "Mariana", "Gabriela", "Jazmin", "Adriana", "Karla", "Rosa", "Elizabeth", "Samantha", "Itzel", "Esmeralda", "Laura", "Viridiana", "Melissa", "Sara", "Jessica", "Miriam", "Brenda", "Karen", "Tania", "Michelle", "Alma", "Frida", "Alondra", "Karina", "Ali", "Valeria", "Alexa", "Marian", "Cris", "Carolina", "Sofia", "Areli", "Paula", "Paulina", "Victoria", "Lorna", "Susy", "Benvidez", "Claudia", "Cynthia", "Liz", "Rocio", "Paola", "Rebeca"]>> -<<set $filipinaSlaveNames to ["Kim", "Angelica", "Marie", "Sarah", "Joyce", "Michelle", "Anna", "Bea", "Patricia", "Jessica", "Bianca", "Kate", "Angela", "Jane", "Nikki", "Victoria", "Camille", "Trisha", "Lovely", "Joan", "Joramae", "Emily", "Mae", "Ella", "Grace", "Sam", "Maria", "Jean", "Danica", "Pauline", "Kathleen", "Lorraine", "Cheskka", "Isabel", "Sheila", "Danielle", "Sophia", "Anne", "Tricia", "Kristine", "Alyssa", "Erin", "Nina", "Mio", "Mackenzie", "Marjorie", "Daniella", "Thalia", "Kaye", "Jovilyn"]>> +<<set $dominicanSlaveNames = ["Nicole", "Lola", "Pamola", "Andrea", "Regine", "Camila", "Alaysha", "Maria", "Carmen", "Naelle", "Dorcas", "Sarah", "Diana", "Jhoka", "Erika", "Crystal", "Kimberly", "Isamar", "Brandy", "Zuleyka", "Nachelle", "Osari"]>> -<<set $ethiopianSlaveNames to ["Rediet", "Beza", "Winta", "Hilina", "Samrawit", "Betty", "Martha", "Kidist", "Tirhas", "Yenu", "Mimi", "Melal", "Yeabsira", "Tinsae", "Helina", "Ferhan", "Sherry", "Lilie", "Niya", "Halim", "Ann", "Sumeya", "Zinash", "Sosen", "Phoebe", "Genet", "Yannet", "Asres", "Bekele", "Betelhem", "Grace", "Meskerem", "Sara", "Afewerk", "Seada", "Meron", "Deborah", "Eldad", "Genet", "Legese", "Anna", "Eyerusalem", "Bebobaby", "Emebet", "Yeshambel", "Emu", "Sinetibeb", "Jerusalem", "Annan", "Samira", "Rita", "Saba", "Loret"]>> +<<set $filipinaSlaveNames = ["Kim", "Angelica", "Marie", "Sarah", "Joyce", "Michelle", "Anna", "Bea", "Patricia", "Jessica", "Bianca", "Kate", "Angela", "Jane", "Nikki", "Victoria", "Camille", "Trisha", "Lovely", "Joan", "Joramae", "Emily", "Mae", "Ella", "Grace", "Sam", "Maria", "Jean", "Danica", "Pauline", "Kathleen", "Lorraine", "Cheskka", "Isabel", "Sheila", "Danielle", "Sophia", "Anne", "Tricia", "Kristine", "Alyssa", "Erin", "Nina", "Mio", "Mackenzie", "Marjorie", "Daniella", "Thalia", "Kaye", "Jovilyn"]>> -<<set $germanSlaveNames to ["Anna", "Maria", "Julia", "Katharina", "Katarina", "Catharina", "Eva", "Christina", "Kristina", "Monika", "Monica", "Karin", "Carin", "Sabine", "Susanne", "Christine", "Kristine", "Barbara", "Claudia", "Heike", "Marion", "Katrin", "Kathrin", "Cathrin", "Catrin", "Sarah", "Sara", "Ursula", "Lisa", "Brigitte", "Stefanie", "Stephanie", "Renate", "Elke", "Petra", "Birgit", "Jutta", "Nina", "Jana", "Ingrid", "Annika", "Marie", "Anke", "Andrea", "Sonja", "Lena", "Hannah", "Hanna", "Jasmin", "Yasmin", "Johanna", "Silvia", "Sylvia", "Sandra", "Ute", "Anja", "Anne", "Helga", "Nicole", "Christiane", "Kristiane", "Gisela", "Giesela", "Laura", "Carolin", "Caroline", "Karoline", "Elisabeth", "Ulrike", "Christa", "Krista", "Jessica", "Jessika", "Melanie", "Gabriele", "Martina", "Angelika", "Angelica", "Kerstin", "Daniela", "Alexandra", "Maike", "Meike", "Franziska", "Jennifer", "Sigrid", "Siegrid", "Hannelore", "Erika", "Erica", "Astrid", "Angela", "Silke", "Sylke", "Bärbel", "Rita", "Doris", "Lea", "Leah", "Vanessa", "Antje", "Nadine", "Christel", "Kristel", "Marianne", "Katja", "Regina", "Tanja", "Tania", "Inge", "Dagmar", "Maren", "Alina", "Sophie", "Sofie", "Gudrun", "Kornelia", "Cornelia", "Lara", "Waltraud", "Waltraut", "Bettina", "Leoni", "Leonie", "Ingeborg", "Rosemarie", "Manuela", "Ivonne", "Yvonne", "Beate", "Heidi", "Luisa", "Louisa", "Isabel", "Isabell", "Isabelle", "Marlies", "Nele", "Neele", "Natalie", "Nathalie", "Charlotte", "Annette", "Anette", "Britta", "Michaela", "Svenja", "Swenja", "Kirsten", "Gerda", "Simone", "Sabrina", "Ilse", "Sophia", "Sofia", "Lina", "Hildegard", "Hilde", "Janina", "Bianca", "Bianka", "Irmgard", "Edith", "Miriam", "Antonia", "Irene", "Ruth", "Michelle", "Pia", "Kim", "Ann", "Margret", "Margrit", "Jacqueline", "Jaqueline", "Emma", "Janin", "Janine", "Vera", "Wera", "Clara", "Klara", "Melina", "Josephine", "Josefine", "Elena", "Emily", "Emilie", "Emmily", "Anneliese", "Annelise", "Paula", "Victoria", "Viktoria", "Christin", "Kristin", "Corinna", "Lilli", "Lilly", "Margot", "Carmen", "Marina", "Annegret", "Saskia", "Sina", "Sinah", "Evelyn", "Evelin", "Eveline", "Celina", "Eileen", "Aileen", "Ayleen", "Aylin", "Tatjana", "Gertrud", "Ilona", "Mia", "Carina", "Karina", "Lieselotte", "Liselotte", "Maja", "Maya", "Iris", "Elfriede", "Merle", "Roswitha", "Roswita", "Denise", "Annemarie", "Wiebke", "Wibke", "Amelie", "Amely", "Jule", "Margarethe", "Margarete", "Heidemarie", "Olga", "Carla", "Karla", "Ines", "Mareike", "Vivien", "Vivienne", "Celine", "Céline", "Chiara", "Kiara", "Uta", "Dorothea", "Rebecca", "Rebekka", "Ellen", "Carola", "Karola", "Finja", "Finnja", "Mandy", "Anita", "Tina", "Verena", "Diana", "Patricia", "Patrizia", "Edeltraut", "Edeltraud", "Lidia", "Lydia", "Gabriela", "Emilia", "Melissa", "Sibylle", "Sybille", "Birte", "Heidrun", "Ina", "Marlene", "Angelina", "Pauline", "Linda", "Frauke", "Zoe", "Zoé", "Juliane", "Traute", "Larissa", "Karen", "Caren", "Ursel", "Leni", "Theresa", "Teresa", "Jenny", "Inga", "Ronja", "Greta", "Lucy", "Lucie", "Emely", "Emelie", "Emmely", "Hertha", "Herta", "Irma", "Erna", "Käthe", "Fiona", "Nadja", "Hella", "Hilde", "Irina", "Marita", "Frieda", "Frida", "Gabi", "Gaby", "Helena", "Ida", "Marga", "Helene", "Selina", "Nolo", "Lia", "Liah", "Gina", "Judith", "Heide", "Carlotta", "Karlotta", "Luise", "Louise", "Stella", "Kimberly", "Kimberley", "Dörte", "Dörthe", "Martha", "Marta", "Ingeburg", "Kira", "Kyra", "Jette"]>> +<<set $ethiopianSlaveNames = ["Rediet", "Beza", "Winta", "Hilina", "Samrawit", "Betty", "Martha", "Kidist", "Tirhas", "Yenu", "Mimi", "Melal", "Yeabsira", "Tinsae", "Helina", "Ferhan", "Sherry", "Lilie", "Niya", "Halim", "Ann", "Sumeya", "Zinash", "Sosen", "Phoebe", "Genet", "Yannet", "Asres", "Bekele", "Betelhem", "Grace", "Meskerem", "Sara", "Afewerk", "Seada", "Meron", "Deborah", "Eldad", "Genet", "Legese", "Anna", "Eyerusalem", "Bebobaby", "Emebet", "Yeshambel", "Emu", "Sinetibeb", "Jerusalem", "Annan", "Samira", "Rita", "Saba", "Loret"]>> -<<set $saudiSlaveNames to ["Myriam", "Bushra", "Noura", "Laila", "Habiba", "Nadia", "Sowsan", "Bayan", "Destiny", "Rana", "Reem", "Nana", "Sarah", "Lamia", "Alsama", "Nada", "Nouf", "May", "Faten", "Salsabyl", "Lizet", "Ghayda", "Ala", "Beatrice", "Ouiam", "Lulu", "Reenad", "Alexandra", "Ola", "Haifa", "Al-Anoud", "Asia", "Mariam", "Fatima", "Marceline", "Nona", "Kefaya", "Raihana", "Abrar", "Ghada", "Arwa", "Hadeel", "Alaa"]>> +<<set $germanSlaveNames = ["Anna", "Maria", "Julia", "Katharina", "Katarina", "Catharina", "Eva", "Christina", "Kristina", "Monika", "Monica", "Karin", "Carin", "Sabine", "Susanne", "Christine", "Kristine", "Barbara", "Claudia", "Heike", "Marion", "Katrin", "Kathrin", "Cathrin", "Catrin", "Sarah", "Sara", "Ursula", "Lisa", "Brigitte", "Stefanie", "Stephanie", "Renate", "Elke", "Petra", "Birgit", "Jutta", "Nina", "Jana", "Ingrid", "Annika", "Marie", "Anke", "Andrea", "Sonja", "Lena", "Hannah", "Hanna", "Jasmin", "Yasmin", "Johanna", "Silvia", "Sylvia", "Sandra", "Ute", "Anja", "Anne", "Helga", "Nicole", "Christiane", "Kristiane", "Gisela", "Giesela", "Laura", "Carolin", "Caroline", "Karoline", "Elisabeth", "Ulrike", "Christa", "Krista", "Jessica", "Jessika", "Melanie", "Gabriele", "Martina", "Angelika", "Angelica", "Kerstin", "Daniela", "Alexandra", "Maike", "Meike", "Franziska", "Jennifer", "Sigrid", "Siegrid", "Hannelore", "Erika", "Erica", "Astrid", "Angela", "Silke", "Sylke", "Bärbel", "Rita", "Doris", "Lea", "Leah", "Vanessa", "Antje", "Nadine", "Christel", "Kristel", "Marianne", "Katja", "Regina", "Tanja", "Tania", "Inge", "Dagmar", "Maren", "Alina", "Sophie", "Sofie", "Gudrun", "Kornelia", "Cornelia", "Lara", "Waltraud", "Waltraut", "Bettina", "Leoni", "Leonie", "Ingeborg", "Rosemarie", "Manuela", "Ivonne", "Yvonne", "Beate", "Heidi", "Luisa", "Louisa", "Isabel", "Isabell", "Isabelle", "Marlies", "Nele", "Neele", "Natalie", "Nathalie", "Charlotte", "Annette", "Anette", "Britta", "Michaela", "Svenja", "Swenja", "Kirsten", "Gerda", "Simone", "Sabrina", "Ilse", "Sophia", "Sofia", "Lina", "Hildegard", "Hilde", "Janina", "Bianca", "Bianka", "Irmgard", "Edith", "Miriam", "Antonia", "Irene", "Ruth", "Michelle", "Pia", "Kim", "Ann", "Margret", "Margrit", "Jacqueline", "Jaqueline", "Emma", "Janin", "Janine", "Vera", "Wera", "Clara", "Klara", "Melina", "Josephine", "Josefine", "Elena", "Emily", "Emilie", "Emmily", "Anneliese", "Annelise", "Paula", "Victoria", "Viktoria", "Christin", "Kristin", "Corinna", "Lilli", "Lilly", "Margot", "Carmen", "Marina", "Annegret", "Saskia", "Sina", "Sinah", "Evelyn", "Evelin", "Eveline", "Celina", "Eileen", "Aileen", "Ayleen", "Aylin", "Tatjana", "Gertrud", "Ilona", "Mia", "Carina", "Karina", "Lieselotte", "Liselotte", "Maja", "Maya", "Iris", "Elfriede", "Merle", "Roswitha", "Roswita", "Denise", "Annemarie", "Wiebke", "Wibke", "Amelie", "Amely", "Jule", "Margarethe", "Margarete", "Heidemarie", "Olga", "Carla", "Karla", "Ines", "Mareike", "Vivien", "Vivienne", "Celine", "Céline", "Chiara", "Kiara", "Uta", "Dorothea", "Rebecca", "Rebekka", "Ellen", "Carola", "Karola", "Finja", "Finnja", "Mandy", "Anita", "Tina", "Verena", "Diana", "Patricia", "Patrizia", "Edeltraut", "Edeltraud", "Lidia", "Lydia", "Gabriela", "Emilia", "Melissa", "Sibylle", "Sybille", "Birte", "Heidrun", "Ina", "Marlene", "Angelina", "Pauline", "Linda", "Frauke", "Zoe", "Zoé", "Juliane", "Traute", "Larissa", "Karen", "Caren", "Ursel", "Leni", "Theresa", "Teresa", "Jenny", "Inga", "Ronja", "Greta", "Lucy", "Lucie", "Emely", "Emelie", "Emmely", "Hertha", "Herta", "Irma", "Erna", "Käthe", "Fiona", "Nadja", "Hella", "Hilde", "Irina", "Marita", "Frieda", "Frida", "Gabi", "Gaby", "Helena", "Ida", "Marga", "Helene", "Selina", "Nolo", "Lia", "Liah", "Gina", "Judith", "Heide", "Carlotta", "Karlotta", "Luise", "Louise", "Stella", "Kimberly", "Kimberley", "Dörte", "Dörthe", "Martha", "Marta", "Ingeburg", "Kira", "Kyra", "Jette"]>> -<<set $turkishSlaveNames to ["Zeynep", "Elif", "Ecrin", "Yagmur", "Nisanur", "Azra", "Nehir", "Zehra", "Irem", "Eylül", "Ela", "Merve", "Belinay", "Hiranur", "Sümeyye", "Meryem", "Fatma", "Nisa", "Rabia", "Ayse", "Büsra", "Elanur", "Hatice", "Melisa", "Tuana", "Medine", "Damla", "Kübra", "Esmanur", "Ceylin", "Emine", "Nisa", "Nur", "Irmak", "Asmin", "Ceren", "Duru", "Esma", "Melike", "Melek", "Yaren", "Asya", "Sudenaz", "Betül", "Beren", "Ebrar", "Beyza", "Hayrunnisa", "Berfin", "Sevval", "Ilayda", "Aysegül", "Cemre", "Eda", "Defne", "Berra", "Hilal", "Esra", "Edanur", "Aysenur", "Ece", "Rümeysa", "Buglem", "Elif", "Naz", "Gamze", "Ada", "Aleyna", "Semanur", "Elif", "Nur", "Fatma", "Nur", "Deniz", "Fatmanur", "Esma", "Nur", "Cansu", "Dilara", "Melis", "Nazli", "Sila", "Beyzanur", "Esila", "Hazal", "Ipek", "Havin", "Tugba", "Öykü", "Aylin", "Miray", "Bahar", "Sude", "Rumeysa", "Gizem", "Ilknur", "Yasemin", "Buse", "Seyma", "Eslem", "Ezgi", "Asli", "Derin", "Selin", "Hümeyra"]>> +<<set $saudiSlaveNames = ["Myriam", "Bushra", "Noura", "Laila", "Habiba", "Nadia", "Sowsan", "Bayan", "Destiny", "Rana", "Reem", "Nana", "Sarah", "Lamia", "Alsama", "Nada", "Nouf", "May", "Faten", "Salsabyl", "Lizet", "Ghayda", "Ala", "Beatrice", "Ouiam", "Lulu", "Reenad", "Alexandra", "Ola", "Haifa", "Al-Anoud", "Asia", "Mariam", "Fatima", "Marceline", "Nona", "Kefaya", "Raihana", "Abrar", "Ghada", "Arwa", "Hadeel", "Alaa"]>> -<<set $colombianSlaveNames to ["Laura", "Angie", "Maria", "Daniela", "Alejandra", "Diana", "Natalia", "Paula", "Paola", "Camila", "Ana", "Maria", "Valeria", "Valentina", "Luisa", "Karen", "Angelica", "Lorena", "Tatiana", "Andrea", "Sofia", "Gabriela", "Mariana", "Juliana", "Jéssica", "Katherine", "Erika", "Lizeth", "Yessica", "Veronica", "Maria", "Fernanda", "Adriana", "Evelyn", "Yuliza", "Yenni", "Nataly", "Lady", "Angie", "Sofia", "Astrid", "Yeimi", "Maria", "Alejandra", "Gabriella", "Antonia", "Lisseth", "Martinez", "Stefania", "Sandra", "Ingrid", "Allison", "Dania", "Carolina", "Herrera"]>> +<<set $turkishSlaveNames = ["Zeynep", "Elif", "Ecrin", "Yagmur", "Nisanur", "Azra", "Nehir", "Zehra", "Irem", "Eylül", "Ela", "Merve", "Belinay", "Hiranur", "Sümeyye", "Meryem", "Fatma", "Nisa", "Rabia", "Ayse", "Büsra", "Elanur", "Hatice", "Melisa", "Tuana", "Medine", "Damla", "Kübra", "Esmanur", "Ceylin", "Emine", "Nisa", "Nur", "Irmak", "Asmin", "Ceren", "Duru", "Esma", "Melike", "Melek", "Yaren", "Asya", "Sudenaz", "Betül", "Beren", "Ebrar", "Beyza", "Hayrunnisa", "Berfin", "Sevval", "Ilayda", "Aysegül", "Cemre", "Eda", "Defne", "Berra", "Hilal", "Esra", "Edanur", "Aysenur", "Ece", "Rümeysa", "Buglem", "Elif", "Naz", "Gamze", "Ada", "Aleyna", "Semanur", "Elif", "Nur", "Fatma", "Nur", "Deniz", "Fatmanur", "Esma", "Nur", "Cansu", "Dilara", "Melis", "Nazli", "Sila", "Beyzanur", "Esila", "Hazal", "Ipek", "Havin", "Tugba", "Öykü", "Aylin", "Miray", "Bahar", "Sude", "Rumeysa", "Gizem", "Ilknur", "Yasemin", "Buse", "Seyma", "Eslem", "Ezgi", "Asli", "Derin", "Selin", "Hümeyra"]>> -<<set $argentinianSlaveNames to ["Agustina", "Rocio", "Camila", "Julieta", "Sofia", "Micaela", "Sara", "Victoria", "Romina", "Abril", "Paula", "Valentina", "Martina", "Paz", "Malena", "Florencia", "Nadia", "Natalia", "Belén", "Magali", "Daniela", "Milagros", "Nayla", "Julia", "Jessica", "Tania", "Tatiana", "Magdalena", "Riffo", "Cami", "Ayelén", "Gaby", "Karen", "Emilia", "Agus", "Antonella", "Maria", "Carla", "Nani", "Sol", "Rosario", "Virginia", "Clara", "Marlene", "Melisa", "Agostina", "Anto", "Marti", "Carolina", "Candelaria", "Andrea"]>> +<<set $colombianSlaveNames = ["Laura", "Angie", "Maria", "Daniela", "Alejandra", "Diana", "Natalia", "Paula", "Paola", "Camila", "Ana", "Maria", "Valeria", "Valentina", "Luisa", "Karen", "Angelica", "Lorena", "Tatiana", "Andrea", "Sofia", "Gabriela", "Mariana", "Juliana", "Jéssica", "Katherine", "Erika", "Lizeth", "Yessica", "Veronica", "Maria", "Fernanda", "Adriana", "Evelyn", "Yuliza", "Yenni", "Nataly", "Lady", "Angie", "Sofia", "Astrid", "Yeimi", "Maria", "Alejandra", "Gabriella", "Antonia", "Lisseth", "Martinez", "Stefania", "Sandra", "Ingrid", "Allison", "Dania", "Carolina", "Herrera"]>> -<<set $vietnameseSlaveNames to ["An", "Anh", "Annie", "Bui", "Bình", "Ca", "Cam", "Chau", "Chi", "Cuc", "Dieu", "Do", "Ha", "Hai", "Hang", "Hanh", "Hao", "Hien", "Hoa", "Hong", "Hue", "Huong", "Huyen", "Jane", "Jenny", "Kieu", "Kim Cuc", "Kim", "Kim-Ly", "Lan", "Lanh", "Le", "Lien", "Linh", "Loan", "Mai", "Minh", "My", "Natalie", "Nga", "Ngan", "Nghi", "Ngoc Bich", "Ngoc", "Ngon", "Nguyen", "Nguyet", "Nhat", "Nhung", "Oanh", "Phuc", "Phuong", "Phýõng", "Quy", "Quyen", "Rose", "Sang", "Thanh", "Thao", "Thi", "Thu", "Thuy", "Tien", "Tiên", "Trang", "Truc", "Tu", "Tuyen", "Tuyet", "Uyên", "Van", "Vinh", "Xuan", "Yen"]>> +<<set $argentinianSlaveNames = ["Agustina", "Rocio", "Camila", "Julieta", "Sofia", "Micaela", "Sara", "Victoria", "Romina", "Abril", "Paula", "Valentina", "Martina", "Paz", "Malena", "Florencia", "Nadia", "Natalia", "Belén", "Magali", "Daniela", "Milagros", "Nayla", "Julia", "Jessica", "Tania", "Tatiana", "Magdalena", "Riffo", "Cami", "Ayelén", "Gaby", "Karen", "Emilia", "Agus", "Antonella", "Maria", "Carla", "Nani", "Sol", "Rosario", "Virginia", "Clara", "Marlene", "Melisa", "Agostina", "Anto", "Marti", "Carolina", "Candelaria", "Andrea"]>> -<<set $iranianSlaveNames to ["Maryam", "Fatemeh", "Negin", "Zahra", "Shaghayegh", "Neda", "Niloofar", "Mina", "Poone", "Katy", "Atousa", "Assal", "Soha", "Fatima", "Maria", "Ghazaleh", "Marjan", "Boshra", "Setareaseman", "Sabs", "Sarah", "Angel", "Raheleh", "Parinaz", "Saedeh", "Mehrnaz", "Saye", "Nazi", "Saba", "Rozhin", "Elisa", "Raha", "Mandana", "Sajedeh", "Pani", "Sara", "Mahdie", "Azin", "Haniye", "Aeen", "Mojan", "Nikki", "Donya", "Mania", "Mino", "Somaye", "Romi", "Sima", "Nooshin", "Mari"]>> +<<set $vietnameseSlaveNames = ["An", "Anh", "Annie", "Bui", "Bình", "Ca", "Cam", "Chau", "Chi", "Cuc", "Dieu", "Do", "Ha", "Hai", "Hang", "Hanh", "Hao", "Hien", "Hoa", "Hong", "Hue", "Huong", "Huyen", "Jane", "Jenny", "Kieu", "Kim Cuc", "Kim", "Kim-Ly", "Lan", "Lanh", "Le", "Lien", "Linh", "Loan", "Mai", "Minh", "My", "Natalie", "Nga", "Ngan", "Nghi", "Ngoc Bich", "Ngoc", "Ngon", "Nguyen", "Nguyet", "Nhat", "Nhung", "Oanh", "Phuc", "Phuong", "Phýõng", "Quy", "Quyen", "Rose", "Sang", "Thanh", "Thao", "Thi", "Thu", "Thuy", "Tien", "Tiên", "Trang", "Truc", "Tu", "Tuyen", "Tuyet", "Uyên", "Van", "Vinh", "Xuan", "Yen"]>> -<<set $congoleseSlaveNames to ["Belvie", "Divine", "Julie", "Keicha", "Ruth", "Grasnie", "Merveille", "Sarah", "Reine", "Liu", "Peniel", "Junelle", "Japhet", "Belcha", "Stael", "Staelle", "Mayifa", "Rihanna", "Dorsia", "Durcia", "Franchelyn", "Duchel", "Grace", "Jodrey", "Lolie", "Marvine", "Nada", "Nuptia", "Mich", "Isabelle", "Fiavina", "Genicka", "Sabrina", "Clavidia", "Jeanny", "Delande", "Andreche", "Claire", "Ingrid", "Dan", "Aminata", "Lady", "Patrique", "Sereine", "Valentina", "Mholie", "Frichnelle", "Valdinelle", "Sidorelle", "Aicha"]>> +<<set $iranianSlaveNames = ["Maryam", "Fatemeh", "Negin", "Zahra", "Shaghayegh", "Neda", "Niloofar", "Mina", "Poone", "Katy", "Atousa", "Assal", "Soha", "Fatima", "Maria", "Ghazaleh", "Marjan", "Boshra", "Setareaseman", "Sabs", "Sarah", "Angel", "Raheleh", "Parinaz", "Saedeh", "Mehrnaz", "Saye", "Nazi", "Saba", "Rozhin", "Elisa", "Raha", "Mandana", "Sajedeh", "Pani", "Sara", "Mahdie", "Azin", "Haniye", "Aeen", "Mojan", "Nikki", "Donya", "Mania", "Mino", "Somaye", "Romi", "Sima", "Nooshin", "Mari"]>> -<<set $frenchSlaveNames to ["Emma", "Léa", "Chloé", "Manon", "Inès", "Lola", "Jade", "Camille", "Sarah", "Louise", "Zoé", "Lilou", "Lena", "Maëlys", "Clara", "Irina", "Eva", "Lina", "Anaïs", "Louna", "Romane", "Juliette", "Lucie", "Ambre", "Alice", "Lou", "Lisa", "Clémence", "Jeanne", "Louane", "Mathilde", "Océane", "Charlotte", "Marie", "Noémie", "Celia", "Anna", "Nina", "Pauline", "Lana", "Laura", "Lily", "Léonie", "Alicia", "Julie", "Julia", "Rose", "Margaux", "Élise", "Melina", "Luna", "Elisa", "Margot", "Elsa", "Maëlle", "Mélissa", "Justine", "Maeva", "Agathe", "Elena", "Inaya", "Leane", "Éloïse", "Émilie", "Yasmine", "Faustine", "Sara", "Gabrielle", "Anaelle", "Sofia", "Marion", "Leana", "Capucine", "Maya", "Olivia", "Maissa", "Valentine", "Mila", "Salomé", "Aya", "Morgane", "Emy", "Elea", "Kenza", "Lise", "Adèle", "Méline", "Amandine", "Zelie", "Emmy", "Victoria", "Assia", "Héloïse", "Ninon", "Candice", "Lyna", "Stella", "Manel", "Thais", "Apolline", "Cloé", "Marine", "Alix", "Loane", "Lila", "Lylou", "Enola", "Charline", "Clementine", "Anae", "Victoire", "Andrea", "Shana", "Elina", "Lison", "Eden", "Myriam", "Nour", "Cassandra", "Enora", "Constance", "Alyssa", "Tess", "Angelina", "Amélie", "Lucile", "Coline", "Clea", "Lilia", "Garance", "Eléonore", "Clarisse", "Fanny", "Selma", "LilyRose", "Sasha", "Axelle", "Solène", "Chiara", "Flora", "Marwa", "Laly", "Nora", "Leila", "Roxane", "Alexia", "Eline", "Mailys", "Cassandre", "Hanae", "Maeline", "Lilly", "Salma", "Sirine", "Anouk", "Lili", "Anissa", "LouAnn", "Rachel", "Camelia", "Romy", "Violette", "Maelie", "Iris", "Amina", "Chaima", "Maely", "LouAnne", "Lya", "Selena", "Tessa", "Sophie", "Charlie", "Carla", "Maryam", "Céleste", "Naomie", "Melinda", "Mia", "Farah", "Kelya", "Laurine", "Maia", "Claire", "Sana", "Kelly", "Noelie", "Angèle", "Estelle", "Ema", "Ilona", "Diane", "Amelia", "Emeline", "Helena", "Joséphine", "Lara", "Louisa", "Imane", "Serena", "Louanne", "Naila", "Paloma", "Amel", "Asma", "Fatima", "Maria", "Alycia", "Alizee", "Aicha", "Aurore", "Alexandra", "Lindsay", "Naomi", "Fatoumata", "Eve", "Albane", "Daphné", "Élodie", "Jasmine", "Ella", "Kiara", "Rania", "Melody", "Elia", "Shaina", "Ana", "Flavie", "Lalie", "Syrine", "Ava", "Giulia", "Mayssa", "Suzanne", "Norah", "Ilyana", "Maelyne", "Dounia", "Mariam", "Aliya", "Mélanie", "Naelle", "Elyne", "Dina", "Coralie", "Maiwenn", "Wendy", "Sophia", "Amira", "Shanna", "Esther", "Hanna", "Nesrine", "Alya", "Kelia", "Orlane", "Eloane", "Malak", "Yousra", "Ilana", "Shayna", "Noeline", "Clelia", "Jessica", "Perrine", "Maylis", "Marina", "Elya", "Khadija", "Mellina", "Mya", "Soline", "Leona", "Line", "Louison", "Mae", "Raphaëlle", "Audrey", "Aminata", "Blanche", "Noa", "Thea", "Berenice", "Oriane", "Marilou", "Neila", "Eugénie", "Hajar", "Jenna", "Pénélope", "Imene", "Lilya", "Marylou", "Cassie", "Leyna", "Maissane", "Safia", "Yaelle", "Cyrielle", "Laure", "Safa", "Ludivine", "Lucy", "Livia", "Sabrina", "Tiphaine", "Ashley", "Ophélie", "Lia", "Maily", "Calie", "Leia", "Maud", "Melodie", "Kahina", "Nawel", "Charlene", "Madeleine", "Melyne", "Emmie", "Emie", "Erine", "Lilie", "Paola", "Yuna", "Izia", "Hana", "Louann", "Cleo", "Melyna", "Yael", "Soumaya", "Meriem", "Caroline", "Annaelle", "Hélène", "Juline", "Jihane", "Hortense", "Laetitia", "Leanne", "Soraya", "Aliyah", "Ambrine", "Elora", "Lylia", "Sonia", "Assya", "Celya", "Rébecca", "Iliana", "LiliRose", "Angeline", "Hafsa", "Hawa", "Mina", "Amy", "Angela", "Kim", "Maelia", "Bertille", "Leina", "Lilas", "Ornella", "Sidonie", "Thalia", "Hind", "Johanna", "Manelle", "Melia", "Aurélie", "Nayla", "Zahra", "Tatiana", "Sixtine", "Isaure", "Maellys", "Tina", "Flore", "Lorena", "Tania", "Joana", "Leelou", "Aline", "Ela", "Elif", "Janna", "Kayla", "Lilwenn", "Naya", "Rosalie", "Elyna", "Hannah", "Lydia", "Anastasia", "Elona", "Linda", "Nell", "Élisabeth", "Isis", "Mona", "Nais", "Neyla", "Maimouna", "Sherine", "Cali", "Céline", "Judith", "Samia", "Deborah", "Emna", "Fleur", "Florine", "Zia", "Nelia", "Annabelle", "Cécile", "Cecilia", "Gwendoline", "Vanessa", "Emily", "Célestine", "Naia", "Prune", "Selene", "Astrid", "Chayma", "Janelle", "Kessy", "Kyara", "Yasmina", "Abigael", "Carmen", "Clotilde", "Gaëlle", "Grace", "Meissa", "Chahinez", "Naima", "Taina", "Eleana", "Fantine", "Hiba", "Nisa", "Alienor", "Isra", "Diana", "Sakina", "Kamelia", "Lamia", "Lucille", "Meryem", "Philomène", "Tiffany", "Youna", "Lucia", "Malia", "Milla", "Halima", "Joy", "Joyce", "Nada", "Philippine", "Kaina", "Loanne", "Kayna", "Augustine", "Gabriella", "Sacha", "Safiya", "Tamara", "Elissa", "Lois", "Lyana", "Savannah", "Shaima", "Talia", "Aaliyah", "Emmanuelle", "Fatma", "Adriana", "Aleyna", "Ibtissem", "Kimberley", "Liana", "Maelyss", "Awa", "Liya", "Luce", "Maelly", "Soukaina", "Suzie", "Jana", "Layana", "Nola", "Rahma", "Alessia", "Alia", "Alyssia", "Athénaïs", "Eya", "Gwenaëlle", "Imen", "Maina"]>> +<<set $congoleseSlaveNames = ["Belvie", "Divine", "Julie", "Keicha", "Ruth", "Grasnie", "Merveille", "Sarah", "Reine", "Liu", "Peniel", "Junelle", "Japhet", "Belcha", "Stael", "Staelle", "Mayifa", "Rihanna", "Dorsia", "Durcia", "Franchelyn", "Duchel", "Grace", "Jodrey", "Lolie", "Marvine", "Nada", "Nuptia", "Mich", "Isabelle", "Fiavina", "Genicka", "Sabrina", "Clavidia", "Jeanny", "Delande", "Andreche", "Claire", "Ingrid", "Dan", "Aminata", "Lady", "Patrique", "Sereine", "Valentina", "Mholie", "Frichnelle", "Valdinelle", "Sidorelle", "Aicha"]>> -<<set $thaiSlaveNames to ["A-Gun", "Aom", "Arisa", "Bam", "Beam", "Benyapa", "Bow", "Buppha", "Bussaba", "Chailai", "Chanchira", "Chimlin", "Chuenchai", "Dao", "Eve", "Fah", "Fai", "Fern", "Fon", "Hom", "Jane", "Janjira", "Jenny", "Jira", "June", "Kamlai", "Kanokwan", "Kanya", "Karawek", "Kate", "Kosum", "Kulap", "Kwang", "Lamai", "Lawan", "Malee", "Mali", "May", "Mild", "Mind", "Mint", "Muk", "Nam", "Nan", "Nat", "Natcha", "Natchaya", "New", "Ngam-Chit", "Nick", "Ning", "Noon", "Nutcha", "Pakpao", "Pam", "Pang", "Pat", "Pen-Chan", "Pensri", "Phailin", "Phairoh", "Phawta", "Phueng", "Pim", "Ploy", "Pop", "Praew", "Ratana", "Saengdao", "Samorn", "Sanoh", "Sirada", "Solada", "Som", "Sroy", "Sudarat", "Sukanya", "Sukhon", "Taeng", "Tangmo", "Thanchanok", "Toey", "Vanida", "View", "Waan", "Waen", "Wipada", "Yanisa"]>> +<<set $frenchSlaveNames = ["Emma", "Léa", "Chloé", "Manon", "Inès", "Lola", "Jade", "Camille", "Sarah", "Louise", "Zoé", "Lilou", "Lena", "Maëlys", "Clara", "Irina", "Eva", "Lina", "Anaïs", "Louna", "Romane", "Juliette", "Lucie", "Ambre", "Alice", "Lou", "Lisa", "Clémence", "Jeanne", "Louane", "Mathilde", "Océane", "Charlotte", "Marie", "Noémie", "Celia", "Anna", "Nina", "Pauline", "Lana", "Laura", "Lily", "Léonie", "Alicia", "Julie", "Julia", "Rose", "Margaux", "Élise", "Melina", "Luna", "Elisa", "Margot", "Elsa", "Maëlle", "Mélissa", "Justine", "Maeva", "Agathe", "Elena", "Inaya", "Leane", "Éloïse", "Émilie", "Yasmine", "Faustine", "Sara", "Gabrielle", "Anaelle", "Sofia", "Marion", "Leana", "Capucine", "Maya", "Olivia", "Maissa", "Valentine", "Mila", "Salomé", "Aya", "Morgane", "Emy", "Elea", "Kenza", "Lise", "Adèle", "Méline", "Amandine", "Zelie", "Emmy", "Victoria", "Assia", "Héloïse", "Ninon", "Candice", "Lyna", "Stella", "Manel", "Thais", "Apolline", "Cloé", "Marine", "Alix", "Loane", "Lila", "Lylou", "Enola", "Charline", "Clementine", "Anae", "Victoire", "Andrea", "Shana", "Elina", "Lison", "Eden", "Myriam", "Nour", "Cassandra", "Enora", "Constance", "Alyssa", "Tess", "Angelina", "Amélie", "Lucile", "Coline", "Clea", "Lilia", "Garance", "Eléonore", "Clarisse", "Fanny", "Selma", "LilyRose", "Sasha", "Axelle", "Solène", "Chiara", "Flora", "Marwa", "Laly", "Nora", "Leila", "Roxane", "Alexia", "Eline", "Mailys", "Cassandre", "Hanae", "Maeline", "Lilly", "Salma", "Sirine", "Anouk", "Lili", "Anissa", "LouAnn", "Rachel", "Camelia", "Romy", "Violette", "Maelie", "Iris", "Amina", "Chaima", "Maely", "LouAnne", "Lya", "Selena", "Tessa", "Sophie", "Charlie", "Carla", "Maryam", "Céleste", "Naomie", "Melinda", "Mia", "Farah", "Kelya", "Laurine", "Maia", "Claire", "Sana", "Kelly", "Noelie", "Angèle", "Estelle", "Ema", "Ilona", "Diane", "Amelia", "Emeline", "Helena", "Joséphine", "Lara", "Louisa", "Imane", "Serena", "Louanne", "Naila", "Paloma", "Amel", "Asma", "Fatima", "Maria", "Alycia", "Alizee", "Aicha", "Aurore", "Alexandra", "Lindsay", "Naomi", "Fatoumata", "Eve", "Albane", "Daphné", "Élodie", "Jasmine", "Ella", "Kiara", "Rania", "Melody", "Elia", "Shaina", "Ana", "Flavie", "Lalie", "Syrine", "Ava", "Giulia", "Mayssa", "Suzanne", "Norah", "Ilyana", "Maelyne", "Dounia", "Mariam", "Aliya", "Mélanie", "Naelle", "Elyne", "Dina", "Coralie", "Maiwenn", "Wendy", "Sophia", "Amira", "Shanna", "Esther", "Hanna", "Nesrine", "Alya", "Kelia", "Orlane", "Eloane", "Malak", "Yousra", "Ilana", "Shayna", "Noeline", "Clelia", "Jessica", "Perrine", "Maylis", "Marina", "Elya", "Khadija", "Mellina", "Mya", "Soline", "Leona", "Line", "Louison", "Mae", "Raphaëlle", "Audrey", "Aminata", "Blanche", "Noa", "Thea", "Berenice", "Oriane", "Marilou", "Neila", "Eugénie", "Hajar", "Jenna", "Pénélope", "Imene", "Lilya", "Marylou", "Cassie", "Leyna", "Maissane", "Safia", "Yaelle", "Cyrielle", "Laure", "Safa", "Ludivine", "Lucy", "Livia", "Sabrina", "Tiphaine", "Ashley", "Ophélie", "Lia", "Maily", "Calie", "Leia", "Maud", "Melodie", "Kahina", "Nawel", "Charlene", "Madeleine", "Melyne", "Emmie", "Emie", "Erine", "Lilie", "Paola", "Yuna", "Izia", "Hana", "Louann", "Cleo", "Melyna", "Yael", "Soumaya", "Meriem", "Caroline", "Annaelle", "Hélène", "Juline", "Jihane", "Hortense", "Laetitia", "Leanne", "Soraya", "Aliyah", "Ambrine", "Elora", "Lylia", "Sonia", "Assya", "Celya", "Rébecca", "Iliana", "LiliRose", "Angeline", "Hafsa", "Hawa", "Mina", "Amy", "Angela", "Kim", "Maelia", "Bertille", "Leina", "Lilas", "Ornella", "Sidonie", "Thalia", "Hind", "Johanna", "Manelle", "Melia", "Aurélie", "Nayla", "Zahra", "Tatiana", "Sixtine", "Isaure", "Maellys", "Tina", "Flore", "Lorena", "Tania", "Joana", "Leelou", "Aline", "Ela", "Elif", "Janna", "Kayla", "Lilwenn", "Naya", "Rosalie", "Elyna", "Hannah", "Lydia", "Anastasia", "Elona", "Linda", "Nell", "Élisabeth", "Isis", "Mona", "Nais", "Neyla", "Maimouna", "Sherine", "Cali", "Céline", "Judith", "Samia", "Deborah", "Emna", "Fleur", "Florine", "Zia", "Nelia", "Annabelle", "Cécile", "Cecilia", "Gwendoline", "Vanessa", "Emily", "Célestine", "Naia", "Prune", "Selene", "Astrid", "Chayma", "Janelle", "Kessy", "Kyara", "Yasmina", "Abigael", "Carmen", "Clotilde", "Gaëlle", "Grace", "Meissa", "Chahinez", "Naima", "Taina", "Eleana", "Fantine", "Hiba", "Nisa", "Alienor", "Isra", "Diana", "Sakina", "Kamelia", "Lamia", "Lucille", "Meryem", "Philomène", "Tiffany", "Youna", "Lucia", "Malia", "Milla", "Halima", "Joy", "Joyce", "Nada", "Philippine", "Kaina", "Loanne", "Kayna", "Augustine", "Gabriella", "Sacha", "Safiya", "Tamara", "Elissa", "Lois", "Lyana", "Savannah", "Shaima", "Talia", "Aaliyah", "Emmanuelle", "Fatma", "Adriana", "Aleyna", "Ibtissem", "Kimberley", "Liana", "Maelyss", "Awa", "Liya", "Luce", "Maelly", "Soukaina", "Suzie", "Jana", "Layana", "Nola", "Rahma", "Alessia", "Alia", "Alyssia", "Athénaïs", "Eya", "Gwenaëlle", "Imen", "Maina"]>> -<<set $britishSlaveNames to ["Emily", "Chloe", "Megan", "Charlotte", "Emma", "Lauren", "Hannah", "Ellie", "Sophie", "Katie", "Amy", "Lucy", "Olivia", "Jessica", "Georgia", "Rebecca", "Holly", "Sarah", "Caitlin", "Beth", "Bethany", "Molly", "Grace", "Shannon", "Rachel", "Jess", "Alice", "Laura", "Abbie", "Ella", "Amber", "Jade", "Anna", "Jasmine", "Zoe", "Leah", "Rosie", "Mia", "Phoebe", "Lily", "Becky", "Erin", "Courtney", "Niamh", "Kate", "Louise", "Natalie", "Eleanor", "Charlie", "Lydia"]>> +<<set $thaiSlaveNames = ["A-Gun", "Aom", "Arisa", "Bam", "Beam", "Benyapa", "Bow", "Buppha", "Bussaba", "Chailai", "Chanchira", "Chimlin", "Chuenchai", "Dao", "Eve", "Fah", "Fai", "Fern", "Fon", "Hom", "Jane", "Janjira", "Jenny", "Jira", "June", "Kamlai", "Kanokwan", "Kanya", "Karawek", "Kate", "Kosum", "Kulap", "Kwang", "Lamai", "Lawan", "Malee", "Mali", "May", "Mild", "Mind", "Mint", "Muk", "Nam", "Nan", "Nat", "Natcha", "Natchaya", "New", "Ngam-Chit", "Nick", "Ning", "Noon", "Nutcha", "Pakpao", "Pam", "Pang", "Pat", "Pen-Chan", "Pensri", "Phailin", "Phairoh", "Phawta", "Phueng", "Pim", "Ploy", "Pop", "Praew", "Ratana", "Saengdao", "Samorn", "Sanoh", "Sirada", "Solada", "Som", "Sroy", "Sudarat", "Sukanya", "Sukhon", "Taeng", "Tangmo", "Thanchanok", "Toey", "Vanida", "View", "Waan", "Waen", "Wipada", "Yanisa"]>> -<<set $scottishSlaveNames to ["Aileen", "Alisa", "Morrigan", "Blair", "Beatrice", "Edna", "Fergie", "Fiona", "Jamie", "Jessie", "Jean", "Kristie", "Lindsay", "Marie", "Rodina", "Olivia", "Sheona", "Sheena", "Mary"]>> +<<set $britishSlaveNames = ["Emily", "Chloe", "Megan", "Charlotte", "Emma", "Lauren", "Hannah", "Ellie", "Sophie", "Katie", "Amy", "Lucy", "Olivia", "Jessica", "Georgia", "Rebecca", "Holly", "Sarah", "Caitlin", "Beth", "Bethany", "Molly", "Grace", "Shannon", "Rachel", "Jess", "Alice", "Laura", "Abbie", "Ella", "Amber", "Jade", "Anna", "Jasmine", "Zoe", "Leah", "Rosie", "Mia", "Phoebe", "Lily", "Becky", "Erin", "Courtney", "Niamh", "Kate", "Louise", "Natalie", "Eleanor", "Charlie", "Lydia"]>> -<<set $italianSlaveNames to ["Giulia", "Chiara", "Sara", "Martina", "Francesca", "Silvia", "Elisa", "Federica", "Alessia", "Elèna", "Alice", "Laura", "Valentina", "Giorgia", "Anna", "Claudia", "Sofia", "Eleonora", "Marta", "Arianna", "Ilaria", "Irene", "Beatrice", "Valeria", "Michela", "Roberta", "Gaia", "Alessandra", "Giada", "Simona", "Aurora", "Noemi", "Rebecca", "Cristina", "Veronica", "Maria", "Serena", "Benedetta", "Greta", "Lisa", "Paola", "Elisabetta", "Ludovica", "Lucrezia", "Camilla", "Carlotta", "Caterina", "Jessica", "Miriam", "Annalisa"]>> +<<set $scottishSlaveNames = ["Aileen", "Alisa", "Morrigan", "Blair", "Beatrice", "Edna", "Fergie", "Fiona", "Jamie", "Jessie", "Jean", "Kristie", "Lindsay", "Marie", "Rodina", "Olivia", "Sheona", "Sheena", "Mary"]>> -<<set $spanishSlaveNames to ["Lucia", "Paula", "Maria", "Daniela", "Sara", "Carla", "Claudia", "Sofia", "Alba", "Irene", "Marta", "Laura", "Julia", "Martina", "Carmen", "Adriana", "Aitana", "Elena", "Ana", "Noa", "Nerea", "Alejandra", "Ainhoa", "Andrea", "Natalia", "Ines", "Marina", "Ariadna", "Rocio", "Angela", "Leire", "Valeria", "Laia", "Ainara", "Emma", "Celia", "Candela", "Blanca", "Carlota", "Lola", "Alicia", "Jimena", "Cristina", "Nora", "Nuria", "Clara", "Aroa", "Eva", "Carolina", "Victoria", "Leyre", "Noelia", "Isabel", "Miriam", "Naiara", "Sandra", "Aina", "Aya", "Lara", "Patricia", "Malak", "Silvia", "Erika", "Gabriela", "Africa", "Nayara", "Abril", "Mar", "Berta", "Elsa", "Raquel", "Helena", "Paola", "Mireia", "Salma", "Olivia", "Vega", "Lidia", "Naia", "Alma", "Iria", "Lorena", "Anna", "Diana", "Jana", "Luna", "Fatima", "Beatriz", "Saray", "Yaiza", "Manuela", "Valentina", "Mara", "Alexia", "Esther", "Nadia", "Iris", "Alexandra", "Ana", "Maria", "Monica", "Teresa"]>> +<<set $italianSlaveNames = ["Giulia", "Chiara", "Sara", "Martina", "Francesca", "Silvia", "Elisa", "Federica", "Alessia", "Elèna", "Alice", "Laura", "Valentina", "Giorgia", "Anna", "Claudia", "Sofia", "Eleonora", "Marta", "Arianna", "Ilaria", "Irene", "Beatrice", "Valeria", "Michela", "Roberta", "Gaia", "Alessandra", "Giada", "Simona", "Aurora", "Noemi", "Rebecca", "Cristina", "Veronica", "Maria", "Serena", "Benedetta", "Greta", "Lisa", "Paola", "Elisabetta", "Ludovica", "Lucrezia", "Camilla", "Carlotta", "Caterina", "Jessica", "Miriam", "Annalisa"]>> -<<set $kenyanSlaveNames to ["Faith", "Winnie", "Linda", "Sharon", "Anne", "Isabel", "Pauline", "Kelly", "Esther", "Diana", "Joan", "Olive", "Rose", "Mary", "Christine", "Melanie", "Mercy", "Damaris", "Belinda", "Alice", "Lucy", "Valentine", "Susan", "Lisa", "Beryl", "Vivian", "Angela", "Wendy", "Janet", "Jennifer", "Harriet", "Grace", "Ann", "Annitah", "Judy", "Sandra", "Nicole", "Dorah", "Bethsheba", "Ilthiam", "Cecilia", "Kuki", "Gloria", "Cindy", "Shirley", "Jane", "Saumu", "Rachel", "Fatuma", "Kelsey"]>> +<<set $spanishSlaveNames = ["Lucia", "Paula", "Maria", "Daniela", "Sara", "Carla", "Claudia", "Sofia", "Alba", "Irene", "Marta", "Laura", "Julia", "Martina", "Carmen", "Adriana", "Aitana", "Elena", "Ana", "Noa", "Nerea", "Alejandra", "Ainhoa", "Andrea", "Natalia", "Ines", "Marina", "Ariadna", "Rocio", "Angela", "Leire", "Valeria", "Laia", "Ainara", "Emma", "Celia", "Candela", "Blanca", "Carlota", "Lola", "Alicia", "Jimena", "Cristina", "Nora", "Nuria", "Clara", "Aroa", "Eva", "Carolina", "Victoria", "Leyre", "Noelia", "Isabel", "Miriam", "Naiara", "Sandra", "Aina", "Aya", "Lara", "Patricia", "Malak", "Silvia", "Erika", "Gabriela", "Africa", "Nayara", "Abril", "Mar", "Berta", "Elsa", "Raquel", "Helena", "Paola", "Mireia", "Salma", "Olivia", "Vega", "Lidia", "Naia", "Alma", "Iria", "Lorena", "Anna", "Diana", "Jana", "Luna", "Fatima", "Beatriz", "Saray", "Yaiza", "Manuela", "Valentina", "Mara", "Alexia", "Esther", "Nadia", "Iris", "Alexandra", "Ana", "Maria", "Monica", "Teresa"]>> -<<set $ukrainianSlaveNames to ["Dasha", "Anna", "Julia", "Anastasia", "Nastya", "Marina", "Ann", "Maria", "Alina", "Kate", "Victoria", "Sasha", "Mary", "Olga", "Liza", "Ilona", "Tanya", "Vika", "Yana", "Irina", "Yulia", "Nastia", "Sveta", "Oksana", "Natasha", "Olya", "Tania", "Polina", "Sophie", "Elena", "Ira", "Lena", "Masha", "Karina", "Arina", "Diana", "Yuliya", "Natalia", "Viktoriya", "Anastasiya", "Daria", "Taya", "Irene", "Tatiana", "Alex", "Katia", "Natalya", "Valeria", "Alexandra", "Zlata"]>> +<<set $kenyanSlaveNames = ["Faith", "Winnie", "Linda", "Sharon", "Anne", "Isabel", "Pauline", "Kelly", "Esther", "Diana", "Joan", "Olive", "Rose", "Mary", "Christine", "Melanie", "Mercy", "Damaris", "Belinda", "Alice", "Lucy", "Valentine", "Susan", "Lisa", "Beryl", "Vivian", "Angela", "Wendy", "Janet", "Jennifer", "Harriet", "Grace", "Ann", "Annitah", "Judy", "Sandra", "Nicole", "Dorah", "Bethsheba", "Ilthiam", "Cecilia", "Kuki", "Gloria", "Cindy", "Shirley", "Jane", "Saumu", "Rachel", "Fatuma", "Kelsey"]>> -<<set $canadianSlaveNames to ["Sarah", "Emily", "Emma", "Jessica", "Catherine", "Amy", "Hannah", "Rachel", "Samantha", "Laurence", "Audrey", "Julia", "Camille", "Megan", "Madison", "Gabrielle", "Jade", "Ashley", "Marie", "Kayla", "Vanessa", "Maude", "Laura", "Stephanie", "Alexandra", "Sabrina", "Taylor", "Olivia", "Laurie", "Mélissa", "Morgan", "Émilie", "Chloe", "Andrea", "Jenna", "Caroline", "Alyssa", "Julie", "Rebecca", "Amanda", "Elizabeth", "Chelsea", "Bianca", "Sydney", "Justine", "Roxanne", "Charlotte", "Sophie", "Ànna", "Frédérique"]>> +<<set $ukrainianSlaveNames = ["Dasha", "Anna", "Julia", "Anastasia", "Nastya", "Marina", "Ann", "Maria", "Alina", "Kate", "Victoria", "Sasha", "Mary", "Olga", "Liza", "Ilona", "Tanya", "Vika", "Yana", "Irina", "Yulia", "Nastia", "Sveta", "Oksana", "Natasha", "Olya", "Tania", "Polina", "Sophie", "Elena", "Ira", "Lena", "Masha", "Karina", "Arina", "Diana", "Yuliya", "Natalia", "Viktoriya", "Anastasiya", "Daria", "Taya", "Irene", "Tatiana", "Alex", "Katia", "Natalya", "Valeria", "Alexandra", "Zlata"]>> -<<set $peruvianSlaveNames to ["Andrea", "Maria", "Veronica", "Daniela", "Gabriela", "Karen", "Liz", "Sara", "Cristina", "Gaby", "Abigail", "Luz", "Sandra", "Carito", "Melisa", "Lesli", "Alessandra", "Sofia", "Yessica", "Fiorella", "Maricielo", "Naida", "Mayra", "Rosemary", "Paola", "Beatriz", "Katherin", "Estefani", "Xio", "Evy", "Evelyn", "Anell", "Rout", "Alessa", "Cynthia", "Vallya", "Corali", "Berenisse", "Lisbeth", "Dayana", "Gabriela", "Cala", "Claudia", "Cruz", "Amarilis", "Darly", "Arely", "Eskarlee", "Dayna", "Ariel", "Rosangela", "Treysi", "Soledad", "Mänon", "Laka"]>> +<<set $canadianSlaveNames = ["Sarah", "Emily", "Emma", "Jessica", "Catherine", "Amy", "Hannah", "Rachel", "Samantha", "Laurence", "Audrey", "Julia", "Camille", "Megan", "Madison", "Gabrielle", "Jade", "Ashley", "Marie", "Kayla", "Vanessa", "Maude", "Laura", "Stephanie", "Alexandra", "Sabrina", "Taylor", "Olivia", "Laurie", "Mélissa", "Morgan", "Émilie", "Chloe", "Andrea", "Jenna", "Caroline", "Alyssa", "Julie", "Rebecca", "Amanda", "Elizabeth", "Chelsea", "Bianca", "Sydney", "Justine", "Roxanne", "Charlotte", "Sophie", "Ànna", "Frédérique"]>> -<<set $venezuelanSlaveNames to ["Noely", "Patricia", "Genesis", "Maria Alejandra", "Alejandra", "Claudia", "Aury", "Yaneth", "Nicel", "Pauled", "Isabell", "Keybell", "Gab", "Karelys", "Rossi", "Lis", "Fiora", "Sharai", "Marilyn", "Marian", "Zenahir", "Euclarissa", "Lucero", "Molina", "Zuleibis", "Jashiel", "Dayan", "Ambar", "Canónicco", "Rossybell", "Gliosmar", "Aurismar", "Fabiana", "Desireez", "Dayana", "Iris", "Loli", "Andrea", "Kattye", "Martha", "Denise", "Keysha", "Montes", "De", "Oca", "Exis", "Nana", "Fabiola", "Carolina", "Astrid", "Nathaly", "Steffany", "Juliana", "Belkis", "La", "Junca", "Orii"]>> +<<set $peruvianSlaveNames = ["Andrea", "Maria", "Veronica", "Daniela", "Gabriela", "Karen", "Liz", "Sara", "Cristina", "Gaby", "Abigail", "Luz", "Sandra", "Carito", "Melisa", "Lesli", "Alessandra", "Sofia", "Yessica", "Fiorella", "Maricielo", "Naida", "Mayra", "Rosemary", "Paola", "Beatriz", "Katherin", "Estefani", "Xio", "Evy", "Evelyn", "Anell", "Rout", "Alessa", "Cynthia", "Vallya", "Corali", "Berenisse", "Lisbeth", "Dayana", "Gabriela", "Cala", "Claudia", "Cruz", "Amarilis", "Darly", "Arely", "Eskarlee", "Dayna", "Ariel", "Rosangela", "Treysi", "Soledad", "Mänon", "Laka"]>> -<<set $irishSlaveNames to ["Emily", "Sophie", "Emma", "Grace", "Ella", "Aoife", "Amelia", "Lily", "Ava", "Sarah", "Hannah", "Lucy", "Sophia", "Mia", "Anna", "Olivia", "Ruby", "Saoirse", "Caoimhe", "Kate", "Chloe", "Katie", "Holly", "Lauren", "Erin", "Ellie", "Cara", "Niamh", "Leah", "Molly", "Jessica", "Isabelle", "Ciara", "Amy", "Julia", "Zoe", "Eva", "Isabella", "Robyn", "Sofia", "Laura", "Freya", "Kayla", "Aisling", "Abigail", "Charlotte", "Ellen", "Eve", "RóisÃn", "Millie", "Faye", "Rachel"]>> +<<set $venezuelanSlaveNames = ["Noely", "Patricia", "Genesis", "Maria Alejandra", "Alejandra", "Claudia", "Aury", "Yaneth", "Nicel", "Pauled", "Isabell", "Keybell", "Gab", "Karelys", "Rossi", "Lis", "Fiora", "Sharai", "Marilyn", "Marian", "Zenahir", "Euclarissa", "Lucero", "Molina", "Zuleibis", "Jashiel", "Dayan", "Ambar", "Canónicco", "Rossybell", "Gliosmar", "Aurismar", "Fabiana", "Desireez", "Dayana", "Iris", "Loli", "Andrea", "Kattye", "Martha", "Denise", "Keysha", "Montes", "De", "Oca", "Exis", "Nana", "Fabiola", "Carolina", "Astrid", "Nathaly", "Steffany", "Juliana", "Belkis", "La", "Junca", "Orii"]>> -<<set $icelandicSlaveNames to ["Guðrún", "Anna", "KristÃn", "SigrÃður", "Margrjet", "Helga", "Sigrún", "Ingibjörg", "MarÃa", "Jóhanna", "ElÃn", "KatrÃn", "Hildur", "Ragnheiður", "Ãsta", "Guðbjörg", "Lilja", "Eva", "Erla", "ElÃsabet", "Guðný", "Ólöf", "Steinunn", "Sara", "Auður", "Hulda", "Sólveig", "Kolbrún", "BryndÃs", "Inga", "ÃsdÃs", "Þórunn", "Berglind", "Unnur", "Ãris", "Þóra", "Hrafnhildur", "Rakel", "Birna", "Jóna", "ÞórdÃs", "Halldóra", "Erna", "Linda", "Karen", "Edda", "Hanna", "Valgerður", "JónÃna", "Thelma"]>> +<<set $irishSlaveNames = ["Emily", "Sophie", "Emma", "Grace", "Ella", "Aoife", "Amelia", "Lily", "Ava", "Sarah", "Hannah", "Lucy", "Sophia", "Mia", "Anna", "Olivia", "Ruby", "Saoirse", "Caoimhe", "Kate", "Chloe", "Katie", "Holly", "Lauren", "Erin", "Ellie", "Cara", "Niamh", "Leah", "Molly", "Jessica", "Isabelle", "Ciara", "Amy", "Julia", "Zoe", "Eva", "Isabella", "Robyn", "Sofia", "Laura", "Freya", "Kayla", "Aisling", "Abigail", "Charlotte", "Ellen", "Eve", "RóisÃn", "Millie", "Faye", "Rachel"]>> -<<set $finnishSlaveNames to ["Maria", "Sofia", "Emilia", "Olivia", "Amanda", "Aurora", "Aino", "Helmi", "Matilda", "Ilona", "Linnea", "Aada", "Ella", "Iida", "Eveliina", "Emma", "Aleksandra", "Helena", "Ellen", "Katariina", "Kristiina", "Elina", "Lilja", "Anna", "Johanna", "Anni", "Elli", "Venla", "Enni", "Inkeri", "Elsa", "Alexandra", "Alina", "Sara", "Kerttu", "Kaarina", "Lumi", "Eevi", "Alisa", "Karoliina", "Isla", "Siiri", "Josefiina", "Aava", "Julia", "Pihla", "Vilhelmiina", "Elisabet", "Vilma", "Alma"]>> +<<set $icelandicSlaveNames = ["Guðrún", "Anna", "KristÃn", "SigrÃður", "Margrjet", "Helga", "Sigrún", "Ingibjörg", "MarÃa", "Jóhanna", "ElÃn", "KatrÃn", "Hildur", "Ragnheiður", "Ãsta", "Guðbjörg", "Lilja", "Eva", "Erla", "ElÃsabet", "Guðný", "Ólöf", "Steinunn", "Sara", "Auður", "Hulda", "Sólveig", "Kolbrún", "BryndÃs", "Inga", "ÃsdÃs", "Þórunn", "Berglind", "Unnur", "Ãris", "Þóra", "Hrafnhildur", "Rakel", "Birna", "Jóna", "ÞórdÃs", "Halldóra", "Erna", "Linda", "Karen", "Edda", "Hanna", "Valgerður", "JónÃna", "Thelma"]>> -<<set $newZealanderSlaveNames to ["Charlotte", "Olivia", "Isla", "Emily", "Sophie", "Amelia", "Ella", "Harper", "Sophia", "Ruby", "Isabella", "Ava", "Grace", "Mia", "Chloe", "Mila", "Lily", "Zoe", "Lucy", "Emma", "Hannah", "Georgia", "Eva", "Paige", "Aria", "Sienna", "Bella", "Willow", "Evelyn", "Indie", "Madison", "Scarlett", "Abigail", "Hazel", "Maddison", "Jessica", "Mackenzie", "Eden", "Elizabeth", "Alexis", "Isabelle", "Ivy", "Alice", "Holly", "Zara", "Maia", "Evie", "Millie", "Olive", "Aaliyah" ]>> +<<set $finnishSlaveNames = ["Maria", "Sofia", "Emilia", "Olivia", "Amanda", "Aurora", "Aino", "Helmi", "Matilda", "Ilona", "Linnea", "Aada", "Ella", "Iida", "Eveliina", "Emma", "Aleksandra", "Helena", "Ellen", "Katariina", "Kristiina", "Elina", "Lilja", "Anna", "Johanna", "Anni", "Elli", "Venla", "Enni", "Inkeri", "Elsa", "Alexandra", "Alina", "Sara", "Kerttu", "Kaarina", "Lumi", "Eevi", "Alisa", "Karoliina", "Isla", "Siiri", "Josefiina", "Aava", "Julia", "Pihla", "Vilhelmiina", "Elisabet", "Vilma", "Alma"]>> -<<set $polishSlaveNames to ["Julia", "Lena", "Maja", "Zuzanna", "Wiktoria", "Amelia", "Oliwia", "Aleksandra", "Natalia", "Zofia", "Hanna", "Alicja", "Emilia", "Nikola", "Maria", "Anna", "Gabriela", "Martyna", "Nadia", "Milena", "Magdalena", "Karolina", "Weronika", "Laura", "Antonina", "Agata", "Pola", "Kornelia", "Paulina", "Kinga", "Patrycja", "Marta", "Michalina", "Nina", "Iga", "Malgorzata", "Klaudia", "Katarzyna", "Joanna", "Liliana", "Jagoda", "Dominika", "Barbara", "Blanka", "Helena", "Marcelina", "Izabela", "Kaja", "Ewa", "Lucja", "Daria", "Sandra", "Kamila", "Malwina", "Sara", "Kalina", "Olga", "Roksana", "Natasza", "Anastazja", "Klara", "Matylda", "Justyna", "Eliza", "Urszula", "Adrianna", "Olivia", "Aniela", "Agnieszka", "Nicola", "Monika", "Lilianna", "Marika", "Lidia", "Dorota", "Vanessa", "Karina", "Róza", "Victoria", "Marianna", "Marlena", "Liwia", "Rozalia", "Ada", "Aurelia", "Nela", "Dagmara", "Julita", "Sonia", "Bianka", "Angelika", "Anita", "Nicole", "Ewelina", "Jessica", "Elena", "Sylwia", "Tatiana", "Maya", "Diana"]>> +<<set $newZealanderSlaveNames = ["Charlotte", "Olivia", "Isla", "Emily", "Sophie", "Amelia", "Ella", "Harper", "Sophia", "Ruby", "Isabella", "Ava", "Grace", "Mia", "Chloe", "Mila", "Lily", "Zoe", "Lucy", "Emma", "Hannah", "Georgia", "Eva", "Paige", "Aria", "Sienna", "Bella", "Willow", "Evelyn", "Indie", "Madison", "Scarlett", "Abigail", "Hazel", "Maddison", "Jessica", "Mackenzie", "Eden", "Elizabeth", "Alexis", "Isabelle", "Ivy", "Alice", "Holly", "Zara", "Maia", "Evie", "Millie", "Olive", "Aaliyah" ]>> -<<set $greekSlaveNames to ["Maria", "Eleni", "Helen", "Aiketerine", "Baslikike", "Vasiliki", "Sofia", "Aggeliki", "Georgia", "Anastasia", "Evangelia", "Demetra", "Eirene", "Anna", "Panagiota", "Ioanna", "Konstantina", "Despoina", "Calliope", "Alexandra", "Kyriake", "Dominique", "Paraskevi"]>> +<<set $polishSlaveNames = ["Julia", "Lena", "Maja", "Zuzanna", "Wiktoria", "Amelia", "Oliwia", "Aleksandra", "Natalia", "Zofia", "Hanna", "Alicja", "Emilia", "Nikola", "Maria", "Anna", "Gabriela", "Martyna", "Nadia", "Milena", "Magdalena", "Karolina", "Weronika", "Laura", "Antonina", "Agata", "Pola", "Kornelia", "Paulina", "Kinga", "Patrycja", "Marta", "Michalina", "Nina", "Iga", "Malgorzata", "Klaudia", "Katarzyna", "Joanna", "Liliana", "Jagoda", "Dominika", "Barbara", "Blanka", "Helena", "Marcelina", "Izabela", "Kaja", "Ewa", "Lucja", "Daria", "Sandra", "Kamila", "Malwina", "Sara", "Kalina", "Olga", "Roksana", "Natasza", "Anastazja", "Klara", "Matylda", "Justyna", "Eliza", "Urszula", "Adrianna", "Olivia", "Aniela", "Agnieszka", "Nicola", "Monika", "Lilianna", "Marika", "Lidia", "Dorota", "Vanessa", "Karina", "Róza", "Victoria", "Marianna", "Marlena", "Liwia", "Rozalia", "Ada", "Aurelia", "Nela", "Dagmara", "Julita", "Sonia", "Bianka", "Angelika", "Anita", "Nicole", "Ewelina", "Jessica", "Elena", "Sylwia", "Tatiana", "Maya", "Diana"]>> -<<set $israeliSlaveNames to ["Noa", "Shira", "Maya", "Tamar", "Yael", "Talia", "Roni", "Sarah", "Noya", "Michal", "Hila", "Tahel", "Adi", "Ayala", "Hodaya", "Maayan", "Lian", "Ella", "Avigayil", "Rivka"]>> +<<set $greekSlaveNames = ["Maria", "Eleni", "Helen", "Aiketerine", "Baslikike", "Vasiliki", "Sofia", "Aggeliki", "Georgia", "Anastasia", "Evangelia", "Demetra", "Eirene", "Anna", "Panagiota", "Ioanna", "Konstantina", "Despoina", "Calliope", "Alexandra", "Kyriake", "Dominique", "Paraskevi"]>> -<<set $armenianSlaveNames to ["Mane", "Milena", "Mari", "Elen", "Nare", "Annie", "Anna", "Anahit", "Mariam", "Merry", "Maria", "Gayane", "Lilit", "Eva", "Angelina", "Hasmik", "Susanna", "Sona", "Gohar", "Karine", "Marianna", "Viktoria", "Ruzanna", "Anush", "Nataly", "Lusine", "Liana", "Syuzana", "Diana", "Yana", "Arevik", "Marina", "Syuzi", "Monika", "Tamara", "Armine", "Elina", "Marina", "Svetlana", "Narine", "Seda", "Nelly", "Margarita", "Astghik", "Sofi", "Karina", "Emma", "Lina"]>> +<<set $israeliSlaveNames = ["Noa", "Shira", "Maya", "Tamar", "Yael", "Talia", "Roni", "Sarah", "Noya", "Michal", "Hila", "Tahel", "Adi", "Ayala", "Hodaya", "Maayan", "Lian", "Ella", "Avigayil", "Rivka"]>> -<<set $moroccanSlaveNames to ["Fatima", "Khadija", "Aicha", "Malika", "Naima", "Rachida", "Nadia", "Karima", "Amina", "Saida", "Zohra", "Samira", "Latifa", "Fatiha", "Hafida", "Najat", "Bouchra", "Rahma", "Hanane", "Jamila", "Souad", "Hanan", "Laila", "Fatima Zohra", "Fatna", "Sara", "Hayat", "Habiba", "Yamina", "Siham", "Mariam", "Zahra", "Ikram", "Fadma", "Halima", "Salma", "Amal", "Farida", "Loubna", "Iman", "Aziza", "Hajar", "Rabia", "Mina", "Sanae", "Mimount", "Hakima", "Yasmina", "Imane"]>> +<<set $armenianSlaveNames = ["Mane", "Milena", "Mari", "Elen", "Nare", "Annie", "Anna", "Anahit", "Mariam", "Merry", "Maria", "Gayane", "Lilit", "Eva", "Angelina", "Hasmik", "Susanna", "Sona", "Gohar", "Karine", "Marianna", "Viktoria", "Ruzanna", "Anush", "Nataly", "Lusine", "Liana", "Syuzana", "Diana", "Yana", "Arevik", "Marina", "Syuzi", "Monika", "Tamara", "Armine", "Elina", "Marina", "Svetlana", "Narine", "Seda", "Nelly", "Margarita", "Astghik", "Sofi", "Karina", "Emma", "Lina"]>> -<<set $romanianSlaveNames to ["Sofia", "Daria", "Alexandra", "Olivia", "Ilinca", "Ioana", "Mara", "Julia", "Raluca", "Elena", "Ana", "Maria", "Sara", "Isaura", "Mercedesa", "Cristina", "Rosalinda", "Teodora", "Iuliana", "Andreea"]>> +<<set $moroccanSlaveNames = ["Fatima", "Khadija", "Aicha", "Malika", "Naima", "Rachida", "Nadia", "Karima", "Amina", "Saida", "Zohra", "Samira", "Latifa", "Fatiha", "Hafida", "Najat", "Bouchra", "Rahma", "Hanane", "Jamila", "Souad", "Hanan", "Laila", "Fatima Zohra", "Fatna", "Sara", "Hayat", "Habiba", "Yamina", "Siham", "Mariam", "Zahra", "Ikram", "Fadma", "Halima", "Salma", "Amal", "Farida", "Loubna", "Iman", "Aziza", "Hajar", "Rabia", "Mina", "Sanae", "Mimount", "Hakima", "Yasmina", "Imane"]>> -<<set $swedishSlaveNames to ["Alice", "Maja", "Elsa", "Julia", "Linnéa", "Ella", "Ebba", "Molly", "Wilma", "Emma", "Nellie", "Alva", "Isabelle", "Olivia", "Agnes", "Klara", "Elin", "Emilia", "Freja", "Ellen", "Lilly", "Nova", "Moa", "Ida", "Stella", "Alma", "Saga", "Amanda", "Alicia", "Astrid", "Vera", "Tuva", "Isabella", "Felicia", "Elvira", "Sara", "Selma", "Signe", "Matilda", "Hanna", "Ester", "Ellie", "Thea", "Tyra", "Tilde", "Lova", "Lea", "Minna", "Sofia", "Meja", "Nora", "Lovisa", "Inez", "Siri", "Filippa", "Emelie", "Nathalie", "Edith", "Liv", "Tindra", "Tilda", "Stina", "Leia", "Märta", "Ingrid", "Livia", "Emmy", "Cornelia", "Iris", "Jasmine", "Juni", "Melissa", "My", "Tove", "Elise", "Linn", "Lisa", "Svea", "Joline", "Ronja", "Elina", "Mira", "Josefin", "Anna", "Evelina", "Hilda", "Rebecca", "Vilda", "Frida", "Lina", "Sigrid", "Greta", "Nicole", "Hedda", "Majken", "Sofie", "Annie", "Victoria", "Hedvig", "Hilma", "Maria", "Rut"]>> +<<set $romanianSlaveNames = ["Sofia", "Daria", "Alexandra", "Olivia", "Ilinca", "Ioana", "Mara", "Julia", "Raluca", "Elena", "Ana", "Maria", "Sara", "Isaura", "Mercedesa", "Cristina", "Rosalinda", "Teodora", "Iuliana", "Andreea"]>> -<<set $lithuanianSlaveNames to ["Austeja", "Emilija", "Gabija", "Vilte", "Kamile", "Ugne", "Leja", "Urte", "Gabriele", "Ieva", "Viktorija", "Zivile", "Ruta", "Laima", "Vaira", "Audra", "Aukse", "Ausra", "Gintare", "Sniega"]>> +<<set $swedishSlaveNames = ["Alice", "Maja", "Elsa", "Julia", "Linnéa", "Ella", "Ebba", "Molly", "Wilma", "Emma", "Nellie", "Alva", "Isabelle", "Olivia", "Agnes", "Klara", "Elin", "Emilia", "Freja", "Ellen", "Lilly", "Nova", "Moa", "Ida", "Stella", "Alma", "Saga", "Amanda", "Alicia", "Astrid", "Vera", "Tuva", "Isabella", "Felicia", "Elvira", "Sara", "Selma", "Signe", "Matilda", "Hanna", "Ester", "Ellie", "Thea", "Tyra", "Tilde", "Lova", "Lea", "Minna", "Sofia", "Meja", "Nora", "Lovisa", "Inez", "Siri", "Filippa", "Emelie", "Nathalie", "Edith", "Liv", "Tindra", "Tilda", "Stina", "Leia", "Märta", "Ingrid", "Livia", "Emmy", "Cornelia", "Iris", "Jasmine", "Juni", "Melissa", "My", "Tove", "Elise", "Linn", "Lisa", "Svea", "Joline", "Ronja", "Elina", "Mira", "Josefin", "Anna", "Evelina", "Hilda", "Rebecca", "Vilda", "Frida", "Lina", "Sigrid", "Greta", "Nicole", "Hedda", "Majken", "Sofie", "Annie", "Victoria", "Hedvig", "Hilma", "Maria", "Rut"]>> -<<set $bolivianSlaveNames to ["Maria", "Ana Maria", "Patricia", "Paula", "Claudia", "Alejandra", "Viviana", "Juana", "Jimena", "Ximena", "Carla", "Isabela", "Sandra", "Marisol", "Daniela", "Rocio", "Pilar", "Urpi", "Illary", "Tica", "Saywa", "Illa", "Killa", "K'antu", "Kusi", "Mayu", "Chaska", "Q'orianka"]>> +<<set $lithuanianSlaveNames = ["Austeja", "Emilija", "Gabija", "Vilte", "Kamile", "Ugne", "Leja", "Urte", "Gabriele", "Ieva", "Viktorija", "Zivile", "Ruta", "Laima", "Vaira", "Audra", "Aukse", "Ausra", "Gintare", "Sniega"]>> -<<set $haitianSlaveNames to ["Stéphanie", "Fabiola", "Esther", "Tamara", "Roseline", "Cassandra", "Farah", "Lovelie", "Darline", "Samentha", "Vanessa", "Nadège", "Rachelle", "Judith", "Manoucheca", "Mardochée", "Beatrice", "Fabienne", "Mirlande", "Natacha", "Wideline", "Johanne", "Madeleine", "Islande", "Judeline", "Angeline", "Chedeline", "Jessica", "Rose-Merline", "Rose", "Medjine", "Esterline", "Nephtalie", "Jesula", "Fredeline", "Guerlande", "Marie", "Gaelle", "Jenniflore", "Lourdes-Gina", "Anaïca", "Nadia", "Kimberly"]>> +<<set $bolivianSlaveNames = ["Maria", "Ana Maria", "Patricia", "Paula", "Claudia", "Alejandra", "Viviana", "Juana", "Jimena", "Ximena", "Carla", "Isabela", "Sandra", "Marisol", "Daniela", "Rocio", "Pilar", "Urpi", "Illary", "Tica", "Saywa", "Illa", "Killa", "K'antu", "Kusi", "Mayu", "Chaska", "Q'orianka"]>> -<<set $cubanSlaveNames to ["Armena", "Belgis", "Chamayra", "Cheena", "Dayami", "Estelle", "JaJuan", "Javier", "Judith", "Laline", "Maela", "Magalys", "Maria", "Marisa", "Norma", "Vionaika", "Yaineris", "Yanire", "Yelina", "Yonaidys", "Yosdalkis", "Yuricema"]>> +<<set $haitianSlaveNames = ["Stéphanie", "Fabiola", "Esther", "Tamara", "Roseline", "Cassandra", "Farah", "Lovelie", "Darline", "Samentha", "Vanessa", "Nadège", "Rachelle", "Judith", "Manoucheca", "Mardochée", "Beatrice", "Fabienne", "Mirlande", "Natacha", "Wideline", "Johanne", "Madeleine", "Islande", "Judeline", "Angeline", "Chedeline", "Jessica", "Rose-Merline", "Rose", "Medjine", "Esterline", "Nephtalie", "Jesula", "Fredeline", "Guerlande", "Marie", "Gaelle", "Jenniflore", "Lourdes-Gina", "Anaïca", "Nadia", "Kimberly"]>> -<<set $whiteSouthAfricanSlaveNames to ["Alletta", "Aneke", "Anje", "Behati", "Brunelda", "Charlize", "Corli", "Diani", "Elani", "Elize", "Emmarentia", "Gidea", "Hanneleen", "Hentie", "Imka", "Isabeau", "Kriszanne", "Liani", "Marlize", "Meriska", "Noeline", "Riana", "Saartjie", "Sonique", "Susara", "Tilana", "Trudene", "Wilona", "Yolandi", "Zandre"]>> +<<set $cubanSlaveNames = ["Armena", "Belgis", "Chamayra", "Cheena", "Dayami", "Estelle", "JaJuan", "Javier", "Judith", "Laline", "Maela", "Magalys", "Maria", "Marisa", "Norma", "Vionaika", "Yaineris", "Yanire", "Yelina", "Yonaidys", "Yosdalkis", "Yuricema"]>> -<<set $blackSouthAfricanSlaveNames to ["Iminathi", "Minenhle", "Rethabile", "Bokamoso", "Karabo", "Amogelang", "Tshegofatso", "Lesedi", "Amahle", "Thandolwethu", "Andile", "Ayanda", "Ayize", "Busisiwe", "Duduzile", "Dumisile", "Hlengiwe", "Khethiwe", "Lindiwe", "Mbali", "Mlungisi", "Mthandeni", "Nandi", "Nobesuthu", "Nomathemba", "Nomzamo", "Sinenhlanhla", "Siphephelo", "Thenjiwe", "Xolisile", "Zandile", "Zanele", "Zimkhitha", "Zintle", "Ziyanda", "Zodwa", "Zukelwa", "Yandiswa", "Yonela", "Unathi", "Vathiswa", "Veliswa", "Vuyokazi", "Weziwe", "Sibongiseni", "Sisipho", "Thotyelwa", "Thozama", "Thumeka", "Qaqamba"]>> +<<set $whiteSouthAfricanSlaveNames = ["Alletta", "Aneke", "Anje", "Behati", "Brunelda", "Charlize", "Corli", "Diani", "Elani", "Elize", "Emmarentia", "Gidea", "Hanneleen", "Hentie", "Imka", "Isabeau", "Kriszanne", "Liani", "Marlize", "Meriska", "Noeline", "Riana", "Saartjie", "Sonique", "Susara", "Tilana", "Trudene", "Wilona", "Yolandi", "Zandre"]>> -<<set $chileanSlaveNames to ["Martina", "SofÃa", "Constanza", "Antonia", "Catalina", "Valentina", "Isidora", "Javiera", "Fernanda", "MarÃa", "Antonella", "Francisca", "Emilia", "Josefa", "Agustina", "Camila", "Florencia", "Ignacia", "Trinidad", "Belén", "AnaÃs", "PÃa", "Amanda", "Maite", "RocÃo", "Daniela", "Victoria", "Monserrat", "Magdalena", "Laura", "Paz", "Gabriela", "Matilda", "Renata", "Barbara", "Millaray", "Carolina", "Emily", "Josefina", "Mia", "Paula", "Genesis", "Katalina", "Krishna", "Carla", "Paloma"]>> +<<set $blackSouthAfricanSlaveNames = ["Iminathi", "Minenhle", "Rethabile", "Bokamoso", "Karabo", "Amogelang", "Tshegofatso", "Lesedi", "Amahle", "Thandolwethu", "Andile", "Ayanda", "Ayize", "Busisiwe", "Duduzile", "Dumisile", "Hlengiwe", "Khethiwe", "Lindiwe", "Mbali", "Mlungisi", "Mthandeni", "Nandi", "Nobesuthu", "Nomathemba", "Nomzamo", "Sinenhlanhla", "Siphephelo", "Thenjiwe", "Xolisile", "Zandile", "Zanele", "Zimkhitha", "Zintle", "Ziyanda", "Zodwa", "Zukelwa", "Yandiswa", "Yonela", "Unathi", "Vathiswa", "Veliswa", "Vuyokazi", "Weziwe", "Sibongiseni", "Sisipho", "Thotyelwa", "Thozama", "Thumeka", "Qaqamba"]>> -<<set $belgianSlaveNames to ["Elise", "Emma", "Louise", "Elena", "Fleur", "Hanne", "Lotte", "Marie", "Laura", "Mila", "Lore", "Camille", "Fien", "Janne", "Kato", "Sara", "Charlotte", "Lena", "Nina", "Amélie", "Bo", "Julie", "Lisa", "Amber", "Eline", "Femke", "Lina", "Oona", "Rania", "Zoë", "Anna", "Axelle", "Hannah", "Juliette", "Kaat", "Lara", "Lily", "Nore", "Enora", "Eva", "Fran", "Linde", "Liv", "Noor", "Pauline", "Tess", "Amelia", "Aya", "Elisa", "Ella"]>> +<<set $chileanSlaveNames = ["Martina", "SofÃa", "Constanza", "Antonia", "Catalina", "Valentina", "Isidora", "Javiera", "Fernanda", "MarÃa", "Antonella", "Francisca", "Emilia", "Josefa", "Agustina", "Camila", "Florencia", "Ignacia", "Trinidad", "Belén", "AnaÃs", "PÃa", "Amanda", "Maite", "RocÃo", "Daniela", "Victoria", "Monserrat", "Magdalena", "Laura", "Paz", "Gabriela", "Matilda", "Renata", "Barbara", "Millaray", "Carolina", "Emily", "Josefina", "Mia", "Paula", "Genesis", "Katalina", "Krishna", "Carla", "Paloma"]>> -<<set $danishSlaveNames to ["Mathilde", "Emma", "Laura", "Freja", "Sofie", "Anna", "Caroline", "Ida", "Sarah", "Maja", "Lærke", "Emilie", "Clara", "Julie", "Victoria", "Isabella", "Amalie", "Josefine", "Cecilie", "Marie", "Signe", "Katrine", "Sofia", "Frida", "Alberte", "Nanna", "Frederikke", "Alma", "Liva", "Nicoline", "Malou", "Olivia", "Mille", "Maria", "Jasmin", "Astrid", "Johanne", "Andrea", "Karla", "Rebecca", "Camilla", "Ella", "Tilde", "Sille", "Filippa", "Asta", "Thea", "Hannah", "Silje", "Anne"]>> +<<set $belgianSlaveNames = ["Elise", "Emma", "Louise", "Elena", "Fleur", "Hanne", "Lotte", "Marie", "Laura", "Mila", "Lore", "Camille", "Fien", "Janne", "Kato", "Sara", "Charlotte", "Lena", "Nina", "Amélie", "Bo", "Julie", "Lisa", "Amber", "Eline", "Femke", "Lina", "Oona", "Rania", "Zoë", "Anna", "Axelle", "Hannah", "Juliette", "Kaat", "Lara", "Lily", "Nore", "Enora", "Eva", "Fran", "Linde", "Liv", "Noor", "Pauline", "Tess", "Amelia", "Aya", "Elisa", "Ella"]>> -<<set $norwegianSlaveNames to ["Emma", "Nora", "Sofie", "Linnea", "Ingrid", "Emilie", "Ida", "Anna", "Amalie", "Thea", "Julie", "Ella", "Leah", "Mia", "Vilde", "Sofia", "Frida", "Maria", "Olivia", "Sara", "Maja", "Mathilde", "Victoria", "Aurora", "Hedda", "Tuva", "Marie", "Elise", "Hanna", "Jenny", "Selma", "Julia", "Eline", "Live", "Oda", "Lilly", "Malin", "Alma", "Mille", "Mathea", "Amanda", "Sigrid", "Tiril", "Andrea", "Mari", "Pernille", "Isabella", "Celine", "Martine", "Mina", "Ada", "Astrid", "Alva", "Synne", "Hannah", "Sarah", "Signe", "Mie", "Johanne", "Emily", "Josefine", "Sunniva", "Eva", "Ronja", "Solveig", "Hermine", "Karoline", "Helene", "Ingeborg", "Iben", "Nathalie", "Sophia", "Oline", "Lykke", "Kaja", "Lotte", "Alexandra", "Amelia", "Maren", "Stella", "Agnes", "Erle", "Lina", "Lea", "Adele", "Milla", "Elida", "Isabel", "Isabell", "Johanna", "Helena", "Lisa", "Luna", "Matilde", "Silje", "Tilde", "Anne", "Emilia", "Sanna", "Ylva"]>> +<<set $danishSlaveNames = ["Mathilde", "Emma", "Laura", "Freja", "Sofie", "Anna", "Caroline", "Ida", "Sarah", "Maja", "Lærke", "Emilie", "Clara", "Julie", "Victoria", "Isabella", "Amalie", "Josefine", "Cecilie", "Marie", "Signe", "Katrine", "Sofia", "Frida", "Alberte", "Nanna", "Frederikke", "Alma", "Liva", "Nicoline", "Malou", "Olivia", "Mille", "Maria", "Jasmin", "Astrid", "Johanne", "Andrea", "Karla", "Rebecca", "Camilla", "Ella", "Tilde", "Sille", "Filippa", "Asta", "Thea", "Hannah", "Silje", "Anne"]>> -<<set $hungarianSlaveNames to ["Jázmin", "Anna", "Hanna", "Nóra", "Zsófia", "Boglárka", "Lili", "Réka", "Dóra", "Viktória", "Luca", "Petra", "Emma", "Laura", "Eszter", "Noémi", "Vivien", "Lilla", "Gréta", "Csenge", "Dorina", "Fanni", "Sára", "Bianka", "Zoé", "Panna", "Fruzsina", "Regina", "Virág", "Alexandra", "Liliána", "Flóra", "Rebeka", "Kamilla", "Lara", "Dorka", "Nikolett", "Kinga", "Kata", "Maja", "Blanka", "Léna", "Barbara", "Kitti", "Ramóna", "TÃmea", "Szonja", "Mira", "Emese", "Júlia", "Vanessza", "Tamara", "Amanda", "Izabella", "Vanda", "Dorottya", "Eniko", "Lilien", "Kiara", "Adél", "Borbála", "EmÃlia", "Janka", "Dzsenifer", "Adrienn", "Krisztina", "Veronika", "Liza", "Leila", "Melissza", "Hanga", "Bernadett", "Kira", "Dalma", "Natália", "Zita", "Kincso", "Katalin", "Szófia", "Johanna", "Boróka", "KÃra", "Amira", "Dzsesszika", "Alexa", "Orsolya", "AlÃz", "Lotti", "Zselyke", "Brigitta", "Diána", "LÃvia", "MÃra", "Klaudia", "Lia", "Gabriella", "Mária", "Melinda", "Abigél", "Cintia" -]>> +<<set $norwegianSlaveNames = ["Emma", "Nora", "Sofie", "Linnea", "Ingrid", "Emilie", "Ida", "Anna", "Amalie", "Thea", "Julie", "Ella", "Leah", "Mia", "Vilde", "Sofia", "Frida", "Maria", "Olivia", "Sara", "Maja", "Mathilde", "Victoria", "Aurora", "Hedda", "Tuva", "Marie", "Elise", "Hanna", "Jenny", "Selma", "Julia", "Eline", "Live", "Oda", "Lilly", "Malin", "Alma", "Mille", "Mathea", "Amanda", "Sigrid", "Tiril", "Andrea", "Mari", "Pernille", "Isabella", "Celine", "Martine", "Mina", "Ada", "Astrid", "Alva", "Synne", "Hannah", "Sarah", "Signe", "Mie", "Johanne", "Emily", "Josefine", "Sunniva", "Eva", "Ronja", "Solveig", "Hermine", "Karoline", "Helene", "Ingeborg", "Iben", "Nathalie", "Sophia", "Oline", "Lykke", "Kaja", "Lotte", "Alexandra", "Amelia", "Maren", "Stella", "Agnes", "Erle", "Lina", "Lea", "Adele", "Milla", "Elida", "Isabel", "Isabell", "Johanna", "Helena", "Lisa", "Luna", "Matilde", "Silje", "Tilde", "Anne", "Emilia", "Sanna", "Ylva"]>> -<<set $estonianSlaveNames to ["Sofia", "Eliise", "Maria", "Mia", "Lisandra", "Mirtel", "Sandra", "Emma", "Laura", "Darja", "Arina", "Milana", "Alisa", "Anastasia", "Lenna", "Liisa", "Anna", "Viktoria", "Elisabeth", "Polina", "Marta", "Aleksandra", "Marleen", "Hanna", "Nora"]>> +<<set $hungarianSlaveNames = ["Jázmin", "Anna", "Hanna", "Nóra", "Zsófia", "Boglárka", "Lili", "Réka", "Dóra", "Viktória", "Luca", "Petra", "Emma", "Laura", "Eszter", "Noémi", "Vivien", "Lilla", "Gréta", "Csenge", "Dorina", "Fanni", "Sára", "Bianka", "Zoé", "Panna", "Fruzsina", "Regina", "Virág", "Alexandra", "Liliána", "Flóra", "Rebeka", "Kamilla", "Lara", "Dorka", "Nikolett", "Kinga", "Kata", "Maja", "Blanka", "Léna", "Barbara", "Kitti", "Ramóna", "TÃmea", "Szonja", "Mira", "Emese", "Júlia", "Vanessza", "Tamara", "Amanda", "Izabella", "Vanda", "Dorottya", "Eniko", "Lilien", "Kiara", "Adél", "Borbála", "EmÃlia", "Janka", "Dzsenifer", "Adrienn", "Krisztina", "Veronika", "Liza", "Leila", "Melissza", "Hanga", "Bernadett", "Kira", "Dalma", "Natália", "Zita", "Kincso", "Katalin", "Szófia", "Johanna", "Boróka", "KÃra", "Amira", "Dzsesszika", "Alexa", "Orsolya", "AlÃz", "Lotti", "Zselyke", "Brigitta", "Diána", "LÃvia", "MÃra", "Klaudia", "Lia", "Gabriella", "Mária", "Melinda", "Abigél", "Cintia"]>> -<<set $slovakSlaveNames to ["Sofia", "Nina", "Natália", "Nela", "Viktória", "Ema", "Laura", "Michaela", "KristÃna", "Simona", "Mária", "Anna", "Zuzana", "KatarÃna", "Helena", "Eva", "Jana", "Alžbeta", "Margita", "Marta"]>> +<<set $estonianSlaveNames = ["Sofia", "Eliise", "Maria", "Mia", "Lisandra", "Mirtel", "Sandra", "Emma", "Laura", "Darja", "Arina", "Milana", "Alisa", "Anastasia", "Lenna", "Liisa", "Anna", "Viktoria", "Elisabeth", "Polina", "Marta", "Aleksandra", "Marleen", "Hanna", "Nora"]>> -<<set $kazakhSlaveNames to ["Ayzere", "Inzhu", "Ayaru", "Kausar", "Aisha", "Aruzhan", "Amina", "Ayaulym", "Sezim", "Inkar", "Diana", "Alina", "Madina", "Sofia", "Ayana", "Darya", "Victoria", "Ayala", "Zhanerke", "Nurai" ]>> +<<set $slovakSlaveNames = ["Sofia", "Nina", "Natália", "Nela", "Viktória", "Ema", "Laura", "Michaela", "KristÃna", "Simona", "Mária", "Anna", "Zuzana", "KatarÃna", "Helena", "Eva", "Jana", "Alžbeta", "Margita", "Marta"]>> -<<set $zimbabweanSlaveNames to ["Anokosha", "Aneni", "Anodiwa", "Batsirai", "Chenesai", "Chiedza", "Chiratidzo", "Chishamiso", "Dadisai", "Edzai", "Fadzai", "Haruperi", "Hazvinei", "Idai", "Ipaishe", "Kunashe", "Kundai", "Maitaishe", "Mawanda", "Mukudzei", "Mutsa", "Ndafadzwa", "Ngonidzashe", "Nyararai", "Paidamoyo", "Pamhidzai", "Panashe", "Ropafadzo", "Ruponeso", "Ruramisai", "Ruvarashe", "Ruwadzano", "Sarudzai", "Tanatswa", "Tanyaradzwa", "Tapiwanashe", "Tinaye", "Ropafadzo", "Timukudzei", "Tsungirirai", "Varaidzo", "Chivaraidzo", "Vhenekerayi", "Vongai", "Wadzanai", "Watinoda", "Yananiso", "Yemurai", "Zviedzo", "Zvinodaishe"]>> +<<set $kazakhSlaveNames = ["Ayzere", "Inzhu", "Ayaru", "Kausar", "Aisha", "Aruzhan", "Amina", "Ayaulym", "Sezim", "Inkar", "Diana", "Alina", "Madina", "Sofia", "Ayana", "Darya", "Victoria", "Ayala", "Zhanerke", "Nurai" ]>> -<<set $ugandanSlaveNames to ["Jesca", "Christine", "Joy", "Sarah", "Lilly", "Lucy", "Judith", "Rose", "Alice", "Margaret", "Rebecca", "Jessica", "Caroline", "Susan", "Jacquiline", "Betty", "Cecilia", "Beatrice", "Juliana", "Anne", "Veronica", "Anifa", "Jalia", "Emma", "Victoria", "Mary", "Tophace", "Lydia", "Florence", "Flavia", "Evelyn", "Peace", "Naome", "Justine", "Lyndah", "Femiar", "Huda", "Idah", "Ruth", "Dorothy", "Rita", "Harriet", "Barbara", "Annet", "Rosemary", "Angelline", "Sylivia", "Lukia", "Nabilah", "Kyabangi"]>> +<<set $zimbabweanSlaveNames = ["Anokosha", "Aneni", "Anodiwa", "Batsirai", "Chenesai", "Chiedza", "Chiratidzo", "Chishamiso", "Dadisai", "Edzai", "Fadzai", "Haruperi", "Hazvinei", "Idai", "Ipaishe", "Kunashe", "Kundai", "Maitaishe", "Mawanda", "Mukudzei", "Mutsa", "Ndafadzwa", "Ngonidzashe", "Nyararai", "Paidamoyo", "Pamhidzai", "Panashe", "Ropafadzo", "Ruponeso", "Ruramisai", "Ruvarashe", "Ruwadzano", "Sarudzai", "Tanatswa", "Tanyaradzwa", "Tapiwanashe", "Tinaye", "Ropafadzo", "Timukudzei", "Tsungirirai", "Varaidzo", "Chivaraidzo", "Vhenekerayi", "Vongai", "Wadzanai", "Watinoda", "Yananiso", "Yemurai", "Zviedzo", "Zvinodaishe"]>> -<<set $tanzanianSlaveNames to ["Anna", "Maida", "Bahati", "Khadija", "Fatma", "Aziza", "Nuru", "Faida", "Elizabeth", "Batilda", "Hazara", "Ania", "Diana", "Maua", "Meryce", "Josephine", "Zuleikha", "Maria", "Asha", "Riziki", "Gaudentia", "Mgeni", "Janet", "Mariam", "Mwajuma", "Aisha", "Halima", "Mkiwa", "Rosemary", "Grace", "Devota", "Susan", "Joyce", "Mwanatumu", "Stella", "Janeth", "Kiumbwa", "Mwanne", "Lediana", "Amina", "Bernadeta", "Shamsa", "Savelina", "Mwanawetu", "Mhonga", "Sijapata", "Lucy", "Eliatta", "Zaynab", "Kidawa"]>> +<<set $ugandanSlaveNames = ["Jesca", "Christine", "Joy", "Sarah", "Lilly", "Lucy", "Judith", "Rose", "Alice", "Margaret", "Rebecca", "Jessica", "Caroline", "Susan", "Jacquiline", "Betty", "Cecilia", "Beatrice", "Juliana", "Anne", "Veronica", "Anifa", "Jalia", "Emma", "Victoria", "Mary", "Tophace", "Lydia", "Florence", "Flavia", "Evelyn", "Peace", "Naome", "Justine", "Lyndah", "Femiar", "Huda", "Idah", "Ruth", "Dorothy", "Rita", "Harriet", "Barbara", "Annet", "Rosemary", "Angelline", "Sylivia", "Lukia", "Nabilah", "Kyabangi"]>> -<<set $dutchSlaveNames to ["Tess", "Sophie", "Julia", "Emma", "Lisa", "Fenna", "Mila", "Sara", "Lotte", "Zoë", "Eva", "Anna", "Fleur", "Isa", "Lynn", "Evi", "Lieke", "Saar", "Noa", "Sanne", "Roos", "Sarah", "Maud", "Olivia", "Elin", "Esmee", "Femke", "Sofie", "Anne", "Liv", "Nina", "Noor", "Nora", "Amy", "Jasmijn", "Iris", "Naomi", "Floor", "Yara", "Feline", "Tessa", "Elise", "Isabella", "Milou", "Eline", "Lana", "Evy", "Benthe", "Nova", "Liz"]>> +<<set $tanzanianSlaveNames = ["Anna", "Maida", "Bahati", "Khadija", "Fatma", "Aziza", "Nuru", "Faida", "Elizabeth", "Batilda", "Hazara", "Ania", "Diana", "Maua", "Meryce", "Josephine", "Zuleikha", "Maria", "Asha", "Riziki", "Gaudentia", "Mgeni", "Janet", "Mariam", "Mwajuma", "Aisha", "Halima", "Mkiwa", "Rosemary", "Grace", "Devota", "Susan", "Joyce", "Mwanatumu", "Stella", "Janeth", "Kiumbwa", "Mwanne", "Lediana", "Amina", "Bernadeta", "Shamsa", "Savelina", "Mwanawetu", "Mhonga", "Sijapata", "Lucy", "Eliatta", "Zaynab", "Kidawa"]>> -<<set $austrianSlaveNames to ["Lena", "Leonie", "Sarah", "Anna", "Julia", "Katharina", "Hannah", "Sophie", "Laura", "Lisa", "Lea", "Lara", "Viktoria", "Selina", "Vanessa", "Sophia", "Elena", "Nina", "Johanna", "Magdalena", "Jana", "Emma", "Marie", "Theresa", "Alina", "Jasmin", "Valentina", "Angelina", "Emily", "Christina", "Chiara", "Melanie", "Michelle", "Clara", "Amelie", "Marlene", "Anja", "Natalie", "Helena", "Nadine", "Stefanie", "Miriam", "Anna-Lena", "Eva", "Elisa", "Larissa", "Maria", "Carina", "Emely", "Annika"]>> +<<set $dutchSlaveNames = ["Tess", "Sophie", "Julia", "Emma", "Lisa", "Fenna", "Mila", "Sara", "Lotte", "Zoë", "Eva", "Anna", "Fleur", "Isa", "Lynn", "Evi", "Lieke", "Saar", "Noa", "Sanne", "Roos", "Sarah", "Maud", "Olivia", "Elin", "Esmee", "Femke", "Sofie", "Anne", "Liv", "Nina", "Noor", "Nora", "Amy", "Jasmijn", "Iris", "Naomi", "Floor", "Yara", "Feline", "Tessa", "Elise", "Isabella", "Milou", "Eline", "Lana", "Evy", "Benthe", "Nova", "Liz"]>> -<<set $swissSlaveNames to ["Emma", "Eva", "Léa", "Camille", "Zoé", "Alice", "Chloé", "Alicia", "Olivia", "Sofia", "Giulia", "Emily", "Mia", "Aurora", "Noemi", "Martina", "Nicole", "Luana", "Leonie", "Iris", "Laura", "Lia"]>> +<<set $austrianSlaveNames = ["Lena", "Leonie", "Sarah", "Anna", "Julia", "Katharina", "Hannah", "Sophie", "Laura", "Lisa", "Lea", "Lara", "Viktoria", "Selina", "Vanessa", "Sophia", "Elena", "Nina", "Johanna", "Magdalena", "Jana", "Emma", "Marie", "Theresa", "Alina", "Jasmin", "Valentina", "Angelina", "Emily", "Christina", "Chiara", "Melanie", "Michelle", "Clara", "Amelie", "Marlene", "Anja", "Natalie", "Helena", "Nadine", "Stefanie", "Miriam", "Anna-Lena", "Eva", "Elisa", "Larissa", "Maria", "Carina", "Emely", "Annika"]>> -<<set $puertoRicanSlaveNames to ["Mia", "Kamila", "Camila", "Alondra", "Valeria", "Amanda", "Gabriela", "Andrea", "Adriana", "Sofia", "Paola", "Victoria", "Isabella", "Alanis", "Ariana", "Genesis", "Natalia", "Fabiola", "Alejandra", "Alana", "Sophia", "Daniela", "Valentina", "Ana", "Alanys", "Mariana", "Alexandra", "Maria", "Nayelis", "Amaia", "Brianna", "Arianna", "Angelica", "Emily", "Kiara", "Karla", "Yarielis", "Kamyla", "Karina", "Carolina", "Melanie", "Angelique", "Paula", "Gabriella", "Mya", "Karelys", "Layla", "Amaya", "Gianna", "Kimberly"]>> +<<set $swissSlaveNames = ["Emma", "Eva", "Léa", "Camille", "Zoé", "Alice", "Chloé", "Alicia", "Olivia", "Sofia", "Giulia", "Emily", "Mia", "Aurora", "Noemi", "Martina", "Nicole", "Luana", "Leonie", "Iris", "Laura", "Lia"]>> -<<set $czechSlaveNames to ["EliÅ¡ka", "Tereza", "Anna", "Adéla", "Natálie", "Sofie", "Kristýna", "KarolÃna", "Viktorie", "Barbora", "Nela", "Veronika", "Lucie", "Katerina", "Klára", "Marie", "Laura", "Aneta", "Zuzana", "Amálie"]>> +<<set $puertoRicanSlaveNames = ["Mia", "Kamila", "Camila", "Alondra", "Valeria", "Amanda", "Gabriela", "Andrea", "Adriana", "Sofia", "Paola", "Victoria", "Isabella", "Alanis", "Ariana", "Genesis", "Natalia", "Fabiola", "Alejandra", "Alana", "Sophia", "Daniela", "Valentina", "Ana", "Alanys", "Mariana", "Alexandra", "Maria", "Nayelis", "Amaia", "Brianna", "Arianna", "Angelica", "Emily", "Kiara", "Karla", "Yarielis", "Kamyla", "Karina", "Carolina", "Melanie", "Angelique", "Paula", "Gabriella", "Mya", "Karelys", "Layla", "Amaya", "Gianna", "Kimberly"]>> -<<set $portugueseSlaveNames to ["Maria", "Sofia", "Leonor", "Matilde", "Beatriz", "Ines", "Carolina", "Mariana", "Filipa", "Margarida", "Ana", "Francisca", "Lara", "Alexandra", "Clara", "Isabel", "Joana", "Rita", "Laura", "Madalena"]>> +<<set $czechSlaveNames = ["EliÅ¡ka", "Tereza", "Anna", "Adéla", "Natálie", "Sofie", "Kristýna", "KarolÃna", "Viktorie", "Barbora", "Nela", "Veronika", "Lucie", "Katerina", "Klára", "Marie", "Laura", "Aneta", "Zuzana", "Amálie"]>> -<<set $jamaicanSlaveNames to ["Brianna", "Rihanna", "Gabrielle", "Ashley", "Jada", "Tiana", "Abigail", "Amelia", "Kayla", "Danielle", "Nadia", "Reta", "Rahima", "Sadiki", "Samiha", "Serafina", "Tamasha", "Tisha", "Zalika", "Zawadi", "Abigail", "Anah", "Asenath", "Atarah", "Athalia", "Candace", "Chloe", "Damaris", "Deborah", "Eden", "Dominique", "Emily", "Farrah", "Felicia", "Fiona", "Gale", "Haley", "Jade", "Jessica", "Jillian"]>> +<<set $portugueseSlaveNames = ["Maria", "Sofia", "Leonor", "Matilde", "Beatriz", "Ines", "Carolina", "Mariana", "Filipa", "Margarida", "Ana", "Francisca", "Lara", "Alexandra", "Clara", "Isabel", "Joana", "Rita", "Laura", "Madalena"]>> -<<set $malaysianSlaveNames to ["Nur", "Zara", "Hannah", "Damia", "Sophia", "Alicia", "Aishah", "Humaira", "Batrisyia", "Safiyyah", "Sarah", "Iris", "Alya", "Adriana", "Amani", "Keisha", "Arissa", "Balqis", "Qistina", "Arianna", "Qaisara", "Khalisha", "Chloe", "Marissa", "Mia"]>> +<<set $jamaicanSlaveNames = ["Brianna", "Rihanna", "Gabrielle", "Ashley", "Jada", "Tiana", "Abigail", "Amelia", "Kayla", "Danielle", "Nadia", "Reta", "Rahima", "Sadiki", "Samiha", "Serafina", "Tamasha", "Tisha", "Zalika", "Zawadi", "Abigail", "Anah", "Asenath", "Atarah", "Athalia", "Candace", "Chloe", "Damaris", "Deborah", "Eden", "Dominique", "Emily", "Farrah", "Felicia", "Fiona", "Gale", "Haley", "Jade", "Jessica", "Jillian"]>> -<<set $guatemalanSlaveNames to ["Arabella", "MarÃa", "Irma", "Josefa", "Alcina", "Myrna", "Gabriela", "Rigoberta", "Elisa", "Luz", "Soluna", "Shery", "Daphne", "Cristina", "Leonora", "Julia", "Lillian", "Mercedes", "Petrona", "Zury", "Itzel", "Akna", "Sacniete", "Xoc", "Chimalmat", "Ixazaluoh", "Xmucane", "Xpiayoc", "Colel"]>> +<<set $malaysianSlaveNames = ["Nur", "Zara", "Hannah", "Damia", "Sophia", "Alicia", "Aishah", "Humaira", "Batrisyia", "Safiyyah", "Sarah", "Iris", "Alya", "Adriana", "Amani", "Keisha", "Arissa", "Balqis", "Qistina", "Arianna", "Qaisara", "Khalisha", "Chloe", "Marissa", "Mia"]>> -<<set $ghananSlaveNames to ["Adwoa", "Abénaa", "Akúá", "Akuba", "Yaa", "Afua", "Ãm`ma", "Akosua", "Ataá Pánin", "Ataá Kúmaa", "Táwia", "Nyankómà gó", "PÃèsÃe", "Máanu", "Mánsã", "Anané", "Anúm", "Nsiã´", "Bótwe", "Nkróma", "Badúwaa", "Dúku", "Dúnu", "Kaakyire", "Afúom", "AfirÃyie", "Agyenim", "Nyamékye", "Nyaméama", "Kumi", "Antó"]>> +<<set $guatemalanSlaveNames = ["Arabella", "MarÃa", "Irma", "Josefa", "Alcina", "Myrna", "Gabriela", "Rigoberta", "Elisa", "Luz", "Soluna", "Shery", "Daphne", "Cristina", "Leonora", "Julia", "Lillian", "Mercedes", "Petrona", "Zury", "Itzel", "Akna", "Sacniete", "Xoc", "Chimalmat", "Ixazaluoh", "Xmucane", "Xpiayoc", "Colel"]>> -<<set $serbianSlaveNames to ["Dunja", "Milica", "Ana", "Anastasija", "Andela", "Nada", "Lena", "Lara", "Lana", "Una", "Tara", "Jovana", "Sara", "Mia", "Teodora", "Marija", "Katarina", "Aleksandra", "Jelena", "Radmila", "Ljiljana", "Snežana"]>> +<<set $ghananSlaveNames = ["Adwoa", "Abénaa", "Akúá", "Akuba", "Yaa", "Afua", "Ãm`ma", "Akosua", "Ataá Pánin", "Ataá Kúmaa", "Táwia", "Nyankómà gó", "PÃèsÃe", "Máanu", "Mánsã", "Anané", "Anúm", "Nsiã´", "Bótwe", "Nkróma", "Badúwaa", "Dúku", "Dúnu", "Kaakyire", "Afúom", "AfirÃyie", "Agyenim", "Nyamékye", "Nyaméama", "Kumi", "Antó"]>> -<<set $australianSlaveNames to ["Olivia", "Charlotte", "Mia", "Ava", "Amelia", "Emily", "Sophia", "Sophie", "Chloe", "Ruby", "Lily", "Grace", "Ella", "Isabella", "Isla", "Maddison", "Sienna", "Zoe", "Scarlett", "Matilda"]>> +<<set $serbianSlaveNames = ["Dunja", "Milica", "Ana", "Anastasija", "Andela", "Nada", "Lena", "Lara", "Lana", "Una", "Tara", "Jovana", "Sara", "Mia", "Teodora", "Marija", "Katarina", "Aleksandra", "Jelena", "Radmila", "Ljiljana", "Snežana"]>> -<<set $burmeseSlaveNames to ["Aung", "U", "May", "Khaing", "Ei", "Khin", "Myat", "Phyu", "Mon", "Aye", "Htet", "Htun", "Thu", "Su", "Hsu", "Win", "Yi", "Hnin", "Kyaw", "Le", "Zin", "Nwe", "Thiri", "Thin", "Kay", "Naing", "Phyo", "Hnin", "Yin", "Thet", "Cho", "Nway"]>> +<<set $australianSlaveNames = ["Olivia", "Charlotte", "Mia", "Ava", "Amelia", "Emily", "Sophia", "Sophie", "Chloe", "Ruby", "Lily", "Grace", "Ella", "Isabella", "Isla", "Maddison", "Sienna", "Zoe", "Scarlett", "Matilda"]>> -<<set $algerianSlaveNames to ["Narimène", "Fatma-Zohra", "Faïza", "Sérine", "Lydia", "Nawel", "Mouni", "Melinda", "Nassima", "Tassadit", "Raouia", "Safia", "Zohra", "Yassmine", "Salima", "Silya", "Fatima", "Aicha", "Amel", "Sehryne", "Celia", "Dallal", "Sarra", "Manel", "Sihem", "Amina", "Nadira", "Kahina", "Souhila", "Nadia", "Ratiba", "Souad", "Samia", "Rekia", "Lamia", "Fatiha", "Nabila", "Rima"]>> +<<set $burmeseSlaveNames = ["Aung", "U", "May", "Khaing", "Ei", "Khin", "Myat", "Phyu", "Mon", "Aye", "Htet", "Htun", "Thu", "Su", "Hsu", "Win", "Yi", "Hnin", "Kyaw", "Le", "Zin", "Nwe", "Thiri", "Thin", "Kay", "Naing", "Phyo", "Hnin", "Yin", "Thet", "Cho", "Nway"]>> -<<set $sudaneseSlaveNames to ["Yamilé", "Amina", "Muna", "Nawal", "Bakhita", "Fatima", "Nahid", "Hawa", "Mariam", "Jalila", "Leila", "Halima", "Zina", "Malkat", "Mhadsin", "Awmima", "Tasabih", "Muram", "Safa", "Widad"]>> +<<set $algerianSlaveNames = ["Narimène", "Fatma-Zohra", "Faïza", "Sérine", "Lydia", "Nawel", "Mouni", "Melinda", "Nassima", "Tassadit", "Raouia", "Safia", "Zohra", "Yassmine", "Salima", "Silya", "Fatima", "Aicha", "Amel", "Sehryne", "Celia", "Dallal", "Sarra", "Manel", "Sihem", "Amina", "Nadira", "Kahina", "Souhila", "Nadia", "Ratiba", "Souad", "Samia", "Rekia", "Lamia", "Fatiha", "Nabila", "Rima"]>> -<<set $iraqiSlaveNames to ["Noor", "Raghad", "Gulustan", "Dunya", "Rana", "Alaa", "Maysar", "Inam", "Danah", "Sundus", "Shatha", "Bedia", "Suaad", "Alia", "Eaman", "Samira", "Thumal", "Sajida", "Bahija", "Wasma'a", "Yanar", "Houzan", "Nahla", "Awatef", "Naziha", "Betool", "Haifa", "Thura", "Sahar", "Aida", "Huda", "Zainab", "Nuha", "Nazik", "Kenza", "Zaha", "Leila", "Sondul", "Basimah", "Rihab", "Lihadh", "Atika", "Sajida", "Farida", "Rahma", "Affifa", "Salima", "Amal", "Toba", "Maysoon"]>> +<<set $sudaneseSlaveNames = ["Yamilé", "Amina", "Muna", "Nawal", "Bakhita", "Fatima", "Nahid", "Hawa", "Mariam", "Jalila", "Leila", "Halima", "Zina", "Malkat", "Mhadsin", "Awmima", "Tasabih", "Muram", "Safa", "Widad"]>> -<<set $uzbekSlaveNames to ["Durdona", "Feruza", "Firuza", "Gulnora", "Shahnoza", "Umida", "Yulduz", "Anora", "Chinara", "Elnura", "Guli", "Guldasta", "Gulnara", "Indira", "Nargiza", "Olma", "Ona", "Parizoda", "Shahlo", "Tahmina", "Zarina", "Zeb"]>> +<<set $iraqiSlaveNames = ["Noor", "Raghad", "Gulustan", "Dunya", "Rana", "Alaa", "Maysar", "Inam", "Danah", "Sundus", "Shatha", "Bedia", "Suaad", "Alia", "Eaman", "Samira", "Thumal", "Sajida", "Bahija", "Wasma'a", "Yanar", "Houzan", "Nahla", "Awatef", "Naziha", "Betool", "Haifa", "Thura", "Sahar", "Aida", "Huda", "Zainab", "Nuha", "Nazik", "Kenza", "Zaha", "Leila", "Sondul", "Basimah", "Rihab", "Lihadh", "Atika", "Sajida", "Farida", "Rahma", "Affifa", "Salima", "Amal", "Toba", "Maysoon"]>> -<<set $nepaleseSlaveNames to ["Rubina", "Mamta", "Sobta", "Kajal", "Indu", "Saraswoti", "Anjali", "Trishna", "Sarita", "Sita", "Nary", "Sonu", "Rekha", "Binu", "Jyoti", "Namita", "Chandra", "Anjila", "Mana", "Menuka", "Ghim", "Punam", "Sajana", "Laxmi", "Dipa", "Yasodha", "Bhujunga", "Renuka", "Anita", "Anu", "Krishna", "Sabitra", "Niru", "Maya", "Bhawana", "Gyanu", "Sneba", "Luniva", "Sujata", "Sherya", "Anusha", "Sadina", "Alisha", "Alina", "Sirjana"]>> +<<set $uzbekSlaveNames = ["Durdona", "Feruza", "Firuza", "Gulnora", "Shahnoza", "Umida", "Yulduz", "Anora", "Chinara", "Elnura", "Guli", "Guldasta", "Gulnara", "Indira", "Nargiza", "Olma", "Ona", "Parizoda", "Shahlo", "Tahmina", "Zarina", "Zeb"]>> -<<set $afghanSlaveNames to ["Apana", "Ariana", "Barsala", "Behnaz", "Benazira", "Gabina", "Gulalai", "Heela", "Helai", "Heley", "Hosai", "Kashmala", "Kubra", "Lalzari", "Lawanga", "Malala", "Malghalara", "Marjan", "Mina", "Muska", "Naghma", "Nazaneen", "Nigina", "Noushin", "Orbala", "Orzala", "Panra", "Parghunda", "Sanga", "Satara", "Selai", "Senzala", "Shahlalai", "Shaperai", "Shastai", "Sooraya", "Tahmina", "Tanima", "Wajia", "Zaib", "Zarbaha", "Zarghuna", "Zarka", "Zarsanga", "Zartaj"]>> +<<set $nepaleseSlaveNames = ["Rubina", "Mamta", "Sobta", "Kajal", "Indu", "Saraswoti", "Anjali", "Trishna", "Sarita", "Sita", "Nary", "Sonu", "Rekha", "Binu", "Jyoti", "Namita", "Chandra", "Anjila", "Mana", "Menuka", "Ghim", "Punam", "Sajana", "Laxmi", "Dipa", "Yasodha", "Bhujunga", "Renuka", "Anita", "Anu", "Krishna", "Sabitra", "Niru", "Maya", "Bhawana", "Gyanu", "Sneba", "Luniva", "Sujata", "Sherya", "Anusha", "Sadina", "Alisha", "Alina", "Sirjana"]>> -<<set $yemeniSlaveNames to ["Fatima", "Waseelah", "Hana", "Jamala", "Zana", "Nadia", "Reem", "Hoda", "Shada", "Nujood", "Boushra", "Raufa", "Amal", "Tawakkol", "Anisah", "Eshraq", "Entesar", "Hakimah", "Khadejah", "Safa", "Sumaya", "Zahra", "Wahiba", "Amat"]>> +<<set $afghanSlaveNames = ["Apana", "Ariana", "Barsala", "Behnaz", "Benazira", "Gabina", "Gulalai", "Heela", "Helai", "Heley", "Hosai", "Kashmala", "Kubra", "Lalzari", "Lawanga", "Malala", "Malghalara", "Marjan", "Mina", "Muska", "Naghma", "Nazaneen", "Nigina", "Noushin", "Orbala", "Orzala", "Panra", "Parghunda", "Sanga", "Satara", "Selai", "Senzala", "Shahlalai", "Shaperai", "Shastai", "Sooraya", "Tahmina", "Tanima", "Wajia", "Zaib", "Zarbaha", "Zarghuna", "Zarka", "Zarsanga", "Zartaj"]>> -<<set $lebaneseSlaveNames to ["Darine", "Nathaline", "Sahar", "Jouana", "Marwa", "Tagrid", "Afaf", "Aya", "Nadia", "Assile", "Nadine", "Saria", "Yara", "Fatima", "Lara", "Nada", "Souad", "Rayane", "Aida", "Narine", "Tamara", "Nathalie", "Nayla", "Farah", "Rebecca", "Marie", "Reem", "Karen", "Lama", "Myriam", "Randa", "Iman", "Layla", "Najwa", "Rima", "Raghida", "Mirna", "Amal", "Haifa", "Dina", "Saloua", "Lidya", "Zena", "Nawal", "Elissar", "Warda", "Salwa", "Fadwa", "Aline", "Majida"]>> +<<set $yemeniSlaveNames = ["Fatima", "Waseelah", "Hana", "Jamala", "Zana", "Nadia", "Reem", "Hoda", "Shada", "Nujood", "Boushra", "Raufa", "Amal", "Tawakkol", "Anisah", "Eshraq", "Entesar", "Hakimah", "Khadejah", "Safa", "Sumaya", "Zahra", "Wahiba", "Amat"]>> -<<set $tunisianSlaveNames to ["Nesrine", "Elhem", "Saida", "Raja", "Boutheïna", "Echraf", "Fatma", "Mouna", "Rakia", "Chaïma", "Oumayma", "Amal", "Manel", "Meriem", "Nihel", "Rahma", "Kaouthar", "Maïssa", "Maroua", "Meserra", "Marwa", "Wafa", "Henda", "Wajdi", "Nour", "Khadija", "Habiba", "Amira", "Leila", "Azza", "Chahnez", "Nesria", "Houda", "Khaoula", "Selima", "Marwa", "Aida", "Insaf", "Mounira", "Hayet", "Fadhila", "Awatef", "Hajer", "Sonia", "Senda", "Faten", "Abir", "Salma", "Ameni", "Dora"]>> +<<set $lebaneseSlaveNames = ["Darine", "Nathaline", "Sahar", "Jouana", "Marwa", "Tagrid", "Afaf", "Aya", "Nadia", "Assile", "Nadine", "Saria", "Yara", "Fatima", "Lara", "Nada", "Souad", "Rayane", "Aida", "Narine", "Tamara", "Nathalie", "Nayla", "Farah", "Rebecca", "Marie", "Reem", "Karen", "Lama", "Myriam", "Randa", "Iman", "Layla", "Najwa", "Rima", "Raghida", "Mirna", "Amal", "Haifa", "Dina", "Saloua", "Lidya", "Zena", "Nawal", "Elissar", "Warda", "Salwa", "Fadwa", "Aline", "Majida"]>> -<<set $emiratiSlaveNames to ["Maitha", "Dina", "Muna", "Sara", "Noura", "Asmaa", "Ala'a", "Moza", "Raja", "Fatma", "Ebtisam", "Najat", "Maisoon", "Noor", "Wafa", "Hind", "Haya", "Reem", "Manal", "Nayla", "Nujoom", "Ahlam", "Ruwaida", "Lubna", "Maryam", "Hassa", "Shamsa", "Alia"]>> +<<set $tunisianSlaveNames = ["Nesrine", "Elhem", "Saida", "Raja", "Boutheïna", "Echraf", "Fatma", "Mouna", "Rakia", "Chaïma", "Oumayma", "Amal", "Manel", "Meriem", "Nihel", "Rahma", "Kaouthar", "Maïssa", "Maroua", "Meserra", "Marwa", "Wafa", "Henda", "Wajdi", "Nour", "Khadija", "Habiba", "Amira", "Leila", "Azza", "Chahnez", "Nesria", "Houda", "Khaoula", "Selima", "Marwa", "Aida", "Insaf", "Mounira", "Hayet", "Fadhila", "Awatef", "Hajer", "Sonia", "Senda", "Faten", "Abir", "Salma", "Ameni", "Dora"]>> -<<set $libyanSlaveNames to ["Entisar", "Saddeka", "Alaa", "Kholoud", "Najat", "Nadia", "Salsabil", "Khalifa", "Haneen", "Salwa", "Huda", "Nagia", "Fatima", "Ghada", "Amira", "Asmahan", "Hala", "Asia", "Ayesha", "Safia", "Iman", "Maryam", "Fatiha", "Zuhra"]>> +<<set $emiratiSlaveNames = ["Maitha", "Dina", "Muna", "Sara", "Noura", "Asmaa", "Ala'a", "Moza", "Raja", "Fatma", "Ebtisam", "Najat", "Maisoon", "Noor", "Wafa", "Hind", "Haya", "Reem", "Manal", "Nayla", "Nujoom", "Ahlam", "Ruwaida", "Lubna", "Maryam", "Hassa", "Shamsa", "Alia"]>> -<<set $jordanianSlaveNames to ["Zina", "Haya", "Zean", "Luna", "Anfal", "Razan", "Yasmeen", "Abeer", "Shatha", "Maysa", "Tareiza", "Ala'a", "Enshirah", "Aida", "Shahenaz", "Sama'a", "Hebah", "Ayah", "Shorooq", "Sherin", "Rima", "Nada", "Dana", "Samah", "Toujan", "Ina'am", "Haya", "Zein", "Aisha", "Alia", "Iman", "Salma", "Basma", "Ghida", "Badiya", "Firyal", "Noor", "Nejla", "Rahma", "Raiyah", "Salha", "Sana", "Sarah", "Sumaya"]>> +<<set $libyanSlaveNames = ["Entisar", "Saddeka", "Alaa", "Kholoud", "Najat", "Nadia", "Salsabil", "Khalifa", "Haneen", "Salwa", "Huda", "Nagia", "Fatima", "Ghada", "Amira", "Asmahan", "Hala", "Asia", "Ayesha", "Safia", "Iman", "Maryam", "Fatiha", "Zuhra"]>> -<<set $omaniSlaveNames to ["Shinoona", "Buthaina", "Mazoon", "Samira", "Rawya", "Fatma", "Sneha", "Nitya", "Jokha", "Kamila", "Shawana", "Salma", "Latifah", "Hunaina", "Khwala", "Asila", "Salsabeel", "Mazan", "Noora", "Sharifa"]>> +<<set $jordanianSlaveNames = ["Zina", "Haya", "Zean", "Luna", "Anfal", "Razan", "Yasmeen", "Abeer", "Shatha", "Maysa", "Tareiza", "Ala'a", "Enshirah", "Aida", "Shahenaz", "Sama'a", "Hebah", "Ayah", "Shorooq", "Sherin", "Rima", "Nada", "Dana", "Samah", "Toujan", "Ina'am", "Haya", "Zein", "Aisha", "Alia", "Iman", "Salma", "Basma", "Ghida", "Badiya", "Firyal", "Noor", "Nejla", "Rahma", "Raiyah", "Salha", "Sana", "Sarah", "Sumaya"]>> -<<set $malianSlaveNames to ["Kadiatou", "Nassira", "Mariatou", "Hamchétou", "Diéné", "Fatoumata", "Naîgnouma", "Meiya", "Aminata", "Djenebou", "Sidibé", "Nare", "Touty", "Astan", "Aïda", "Aoua", "Mariam", "Bako", "Oumou", "Inna", "Adame", "Rahamatou", "Fatalmoudou"]>> +<<set $omaniSlaveNames = ["Shinoona", "Buthaina", "Mazoon", "Samira", "Rawya", "Fatma", "Sneha", "Nitya", "Jokha", "Kamila", "Shawana", "Salma", "Latifah", "Hunaina", "Khwala", "Asila", "Salsabeel", "Mazan", "Noora", "Sharifa"]>> -<<set $cowSlaveNames to ["Big Mac", "Moscow", "MooMoo", "Madonna", "Cowlick", "Bertha", "Waffles", "Brown Cow", "Hamburger", "Heifer", "Honeybun", "Cookie", "Pinky", "Sweetie", "Sunny", "Blue", "Sunshine", "Sugar", "Cupcake", "Cocoa", "Baby", "Muffin", "Princess", "Bessie", "Clarabelle", "Betty Sue", "Emma", "Henrietta", "Ella", "Penelope", "Nettie", "Anna", "Bella", "Annabelle", "Dorothy", "Molly", "Gertie", "Annie", "Rose", "Darla", "Meg", "Dahlia", "Margie", "Lois", "Flower", "Maggie", "Jasmine", "Minnie", "Esmeralda", "Bella", "Daisy", "Shelly", "Candie", "Cinnamon ", "Penny ", "Jasmayne ", "Bella ", "Clover", "Precious ", "Diamond ", "Arabella ", "Sasha ", "Sweetpea", "Swiss Miss"]>> +<<set $malianSlaveNames = ["Kadiatou", "Nassira", "Mariatou", "Hamchétou", "Diéné", "Fatoumata", "Naîgnouma", "Meiya", "Aminata", "Djenebou", "Sidibé", "Nare", "Touty", "Astan", "Aïda", "Aoua", "Mariam", "Bako", "Oumou", "Inna", "Adame", "Rahamatou", "Fatalmoudou"]>> -<<set $chattelReligionistSlaveNames to ["Faith", "Patience", "Purity", "Chastity", "Constance", "Grace", "Penance", "Trinity", "Mercy", "Charity", "Verity", "Amity", "Peace", "Prudence", "Temperance", "Grace", "Love", "Hope", "Destiny", "Abundance", "Allegiance", "Amnesty", "Ardour", "Beauty", "Belief", "Blessing", "Bliss", "Charisma", "Cheer", "Charm", "Chastity", "Clarity", "Clemency", "Comfort", "Compassion", "Concord", "Condolence", "Constancy", "Courage", "Credence", "Desire", "Discretion", "Empathy", "Endurance", "Esteem", "Eternity", "Evanescence", "Favour", "Felicity", "Fidelity", "Fortune", "Gaiety", "Glory", "Gracious", "Gravitas", "Harmony", "Happiness", "Honesty", "Hope", "Humility", "Innocent", "Integrity", "Joy", "Justice", "Kindness", "Laughter", "Loyalty", "Luck", "Merit", "Modesty", "Perserverance", "Piety", "Pleasant", "Prosperity", "Prudence", "Purity", "Radiance", "Remembrance", "Respect", "Reverence", "Salvation", "Sanctity", "Serendipity", "Serenity", "Silence", "Sincerity", "Solace", "Solemnity", "Success", "Sympathy", "Temperance", "Thankfulness", "Tolerance", "Tranquility", "Truth", "Unity", "Virtue", "Wisdom", "Wonder", "Heaven"]>> +<<set $cowSlaveNames = ["Big Mac", "Moscow", "MooMoo", "Madonna", "Cowlick", "Bertha", "Waffles", "Brown Cow", "Hamburger", "Heifer", "Honeybun", "Cookie", "Pinky", "Sweetie", "Sunny", "Blue", "Sunshine", "Sugar", "Cupcake", "Cocoa", "Baby", "Muffin", "Princess", "Bessie", "Clarabelle", "Betty Sue", "Emma", "Henrietta", "Ella", "Penelope", "Nettie", "Anna", "Bella", "Annabelle", "Dorothy", "Molly", "Gertie", "Annie", "Rose", "Darla", "Meg", "Dahlia", "Margie", "Lois", "Flower", "Maggie", "Jasmine", "Minnie", "Esmeralda", "Bella", "Daisy", "Shelly", "Candie", "Cinnamon ", "Penny ", "Jasmayne ", "Bella ", "Clover", "Precious ", "Diamond ", "Arabella ", "Sasha ", "Sweetpea", "Swiss Miss"]>> -<<set $romanSlaveNames to ["Aconia", "Aelia", "Agrippina", "Antistia", "Antonia", "Arria", "Atia", "Aurela", "Baebiana", "Caecilia", "Caesonia", "Calpurnia", "Claudia", "Cornelia", "Crispina", "Domitia", "Domitilla", "Drusilla", "Diana", "Euphemia", "Eutropia", "Fabia", "Faustina", "Flavia", "Galeria", "Galla", "Gnaea", "Gratidia", "Helena", "Helvia", "Herennia", "Honoria", "Hostia", "Julia", "Junia", "Justina", "Leontia", "Lepida", "Licinia", "Livia", "Livilla", "Lollia", "Lucilla", "Maecia", "Magia", "Manlia", "Marcella", "Marcia", "Messalina", "Minervina", "Mellisa", "Metella", "Munatia", "Octavia", "Ocellina", "Orbiana", "Otacilia", "Paccia", "Papianilla", "Paulina", "Placiaida", "Plautia", "Plautilla", "Plotina", "Pompeia", "Popilla", "Poppaea", "Porcia", "Risca", "Pulcheria", "Sabina", "Salonina", "Sempronia", "Servilia", "Severa", "Statilia", "Sulpicia", "Terentia", "Theodora", "Titania", "Tranquillina", "Tullia", "Ulpia", "Urgulania", "Valeria", "Verina", "Vesta", "Vibia", "Violentilla", "Vipsania", "Vistilla", "Gaia", "Lucia", "Marca", "Publia", "Quinta", "Tita", "Tiberia", "Sexta", "Aula", "Decima", "Gnaea", "Spuria", "Mania", "Servia", "Appia", "Numeria", "Vibia", "Agricola", "Agrippa", "Ahala", "Ahenobarba", "Albina", "Alba", "Ambusta", "Annalis", "Aquila", "Aquilina", "Arvina", "Asina", "Atella", "Avita", "Balba", "Barba", "Barbata", "Bassa", "Bestia", "Bibacula", "Bibula", "Blaesa", "Broccha", "Bruta", "Bubulca", "Bulba", "Caeca", "Calida", "Calvina", "Calva", "Camilla", "Canina", "Cana", "Catilina", "Catula", "Celeris", "Celsa", "Cethega", "Cicurina", "Cincinnata", "Cinna", "Corda", "Cornicen", "Cornuta", "Corvina", "Corva", "Cossa", "Costa", "Cotta", "Crassipes", "Crassa", "Crispina", "Crispa", "Curva", "Dentata", "Dentra", "Dives", "Dolabella", "Drusa", "Figula", "Fimbria", "Flacca", "Flava", "Flora", "Fusa", "Gemella", "Graccha", "Gurges", "Habita", "Helva", "Imperiosa", "Iulla", "Lactuca", "Laenas", "Lanata", "Laevina", "Laterensis", "Lentula", "Lepida", "Licina", "Longa", "Luculla", "Lupa", "Macra", "Macula", "Malleola", "Mamerca", "Marcella", "Merenda", "Merga", "Merula", "Messalla", "Metella", "Murena", "Mus", "Musca", "Nasica", "Natta", "Nepos", "Nerva", "Nigra", "Novella", "Ocella", "Pacila", "Paeta", "Pansa", "Papa", "Patercula", "Paulla", "Pera", "Pictrix", "Planca", "Plauta", "Poplicola", "Postuma", "Potita", "Praeconina", "Praetextata", "Prisca", "Procula", "Publicola", "Pulchra", "Pulla", "Pulvilla", "Quadrata", "Ralla", "Regilla", "Regula", "Rufa", "Ruga", "Rulla", "Rutila", "Salinatrix", "Saturnina", "Scaeva", "Scaevola", "Scapula", "Scaura", "Scrofa", "Seneca", "Severa", "Silana", "Sila", "Structa", "Sulla", "Sura", "Taura", "Triaria", "Trigemina", "Tuberta", "Tubula", "Tuditana", "Tulla", "Turda", "Vara", "Vatia", "Verres", "Vetus", "Vitula", "Volusa"]>> +<<set $chattelReligionistSlaveNames = ["Faith", "Patience", "Purity", "Chastity", "Constance", "Grace", "Penance", "Trinity", "Mercy", "Charity", "Verity", "Amity", "Peace", "Prudence", "Temperance", "Grace", "Love", "Hope", "Destiny", "Abundance", "Allegiance", "Amnesty", "Ardour", "Beauty", "Belief", "Blessing", "Bliss", "Charisma", "Cheer", "Charm", "Chastity", "Clarity", "Clemency", "Comfort", "Compassion", "Concord", "Condolence", "Constancy", "Courage", "Credence", "Desire", "Discretion", "Empathy", "Endurance", "Esteem", "Eternity", "Evanescence", "Favour", "Felicity", "Fidelity", "Fortune", "Gaiety", "Glory", "Gracious", "Gravitas", "Harmony", "Happiness", "Honesty", "Hope", "Humility", "Innocent", "Integrity", "Joy", "Justice", "Kindness", "Laughter", "Loyalty", "Luck", "Merit", "Modesty", "Perserverance", "Piety", "Pleasant", "Prosperity", "Prudence", "Purity", "Radiance", "Remembrance", "Respect", "Reverence", "Salvation", "Sanctity", "Serendipity", "Serenity", "Silence", "Sincerity", "Solace", "Solemnity", "Success", "Sympathy", "Temperance", "Thankfulness", "Tolerance", "Tranquility", "Truth", "Unity", "Virtue", "Wisdom", "Wonder", "Heaven"]>> -<<set $ancientEgyptianSlaveNames to ["A'at", "Ahhotep", "Ahmose", "Ahmose", "Hentempet", "Ahmose", "Hent-Tenemu", "Ahmose", "Henuttimehu", "Ahmose", "Inhapi", "Ahmose", "Meryetamun", "Ahmose", "Meryt-Amon", "Ahmose-Nefertari", "Ahmose", "Nefertiry", "Ahmose", "Sitkamose", "Ahmose", "Tumerisy", "Ahset", "Amtes", "Amunet", "Ana", "Aneksi", "Ankhesenamon", "Ankhesenpaaten", "Ankhesenpaaten-ta-sherit", "Ankhes-Pepi", "Ankhetitat", "Ankhnesmery-Re", "Ankhnes-Pepi", "Aoh", "Ashait", "Ast", "Atet", "Baketamon", "Bakt", "Baktwerel", "Beketaten", "Berenib", "Betresh", "Betrest", "Bint-Anath", "Bunefer", "Dedyet", "Fent-Ankhet", "Gilukhipa", "Hapynma'at", "Hedjhekenu", "Henhenet", "Henite", "Hent", "Hentaneb", "Hentmereb", "Hentmire", "Hent-Temehu", "Henutmire", "Henutsen", "Henuttawy", "Herit", "Herneith", "Hetepheres", "Hetephernebty", "Heterphenebty", "Huy", "Imi", "Inhapi", "Intakaes", "Iput", "Ipwet", "Ipy", "Isetnofret", "Isis", "Istnofret", "Itekuyet", "Itet", "Kasmut", "Kawit", "Kemanub", "Kemanut", "Kemsit", "Kentetenka", "Khama'at", "Khamerernebty", "Khemut", "Khentikus", "Khentkawes", "Khenut", "Khumit", "Khuit", "Kiya", "Ma'at", "Hornefrure'", "Maatkare-Nefertari", "Meket-Aten", "Maia", "Menhet", "Menwi", "Mereneith", "Mereryet", "Meresankh", "Meritites", "Merneith", "Merseger", "Merti", "Meryetamun", "Meryetre", "Merysankh", "Merytamon", "Merit-Amon", "Meritaten", "Merytaten-tasherit", "Meryt-Re-Hatshepsut", "Mutemwiya", "Mutnodjme", "Mutnofret", "Muyet", "Nebet", "Nebettawy", "Nebt", "Nebt-tawya", "Neferhent", "Neferhetep", "Neferhetepes", "Neferkent", "Neferneferure", "Nefertari", "Nefertiti", "Nefertkau,", "Nefertkaw", "Neferu", "Neferu", "Neferukhayt", "Neferukhebt", "Neferu-Re", "Nefret", "Nefru", "Nefru-Ptah", "Nefrusheri", "Nefru-Sobek", "Nefru-totenen", "Neith", "Neithotep", "Nemathap", "Nenseddjedet", "Neshkons", "Nestanebtishru", "Nit", "Nitemat", "Nithotep", "Nodjmet", "Nofret", "Nofret", "Nubkhas", "Nubkhesed", "Rai", "Raia", "Redji", "Reputneb", "Sadeh", "Sadek", "Sebek-shedty-Neferu", "Senebsen", "Senisonbe", "Sennuwy", "Seshseshet", "Sitamun", "Sit-Hathor-Yunet", "Sitre", "Sobekemsaf", "Sotepenre", "Ta-Opet", "Tadukhipa", "Takhaet", "Tarset", "Taweret", "Tem", "Tener", "Teo", "Tetisheri", "Tey", "Thent", "Hep", "Tia", "Tiy", "Tiye", "Tjepu", "Tuia", "Tuya", "Tuyu", "Twosre", "Weret-Imtes"]>> +<<set $romanSlaveNames = ["Aconia", "Aelia", "Agrippina", "Antistia", "Antonia", "Arria", "Atia", "Aurela", "Baebiana", "Caecilia", "Caesonia", "Calpurnia", "Claudia", "Cornelia", "Crispina", "Domitia", "Domitilla", "Drusilla", "Diana", "Euphemia", "Eutropia", "Fabia", "Faustina", "Flavia", "Galeria", "Galla", "Gnaea", "Gratidia", "Helena", "Helvia", "Herennia", "Honoria", "Hostia", "Julia", "Junia", "Justina", "Leontia", "Lepida", "Licinia", "Livia", "Livilla", "Lollia", "Lucilla", "Maecia", "Magia", "Manlia", "Marcella", "Marcia", "Messalina", "Minervina", "Mellisa", "Metella", "Munatia", "Octavia", "Ocellina", "Orbiana", "Otacilia", "Paccia", "Papianilla", "Paulina", "Placiaida", "Plautia", "Plautilla", "Plotina", "Pompeia", "Popilla", "Poppaea", "Porcia", "Risca", "Pulcheria", "Sabina", "Salonina", "Sempronia", "Servilia", "Severa", "Statilia", "Sulpicia", "Terentia", "Theodora", "Titania", "Tranquillina", "Tullia", "Ulpia", "Urgulania", "Valeria", "Verina", "Vesta", "Vibia", "Violentilla", "Vipsania", "Vistilla", "Gaia", "Lucia", "Marca", "Publia", "Quinta", "Tita", "Tiberia", "Sexta", "Aula", "Decima", "Gnaea", "Spuria", "Mania", "Servia", "Appia", "Numeria", "Vibia", "Agricola", "Agrippa", "Ahala", "Ahenobarba", "Albina", "Alba", "Ambusta", "Annalis", "Aquila", "Aquilina", "Arvina", "Asina", "Atella", "Avita", "Balba", "Barba", "Barbata", "Bassa", "Bestia", "Bibacula", "Bibula", "Blaesa", "Broccha", "Bruta", "Bubulca", "Bulba", "Caeca", "Calida", "Calvina", "Calva", "Camilla", "Canina", "Cana", "Catilina", "Catula", "Celeris", "Celsa", "Cethega", "Cicurina", "Cincinnata", "Cinna", "Corda", "Cornicen", "Cornuta", "Corvina", "Corva", "Cossa", "Costa", "Cotta", "Crassipes", "Crassa", "Crispina", "Crispa", "Curva", "Dentata", "Dentra", "Dives", "Dolabella", "Drusa", "Figula", "Fimbria", "Flacca", "Flava", "Flora", "Fusa", "Gemella", "Graccha", "Gurges", "Habita", "Helva", "Imperiosa", "Iulla", "Lactuca", "Laenas", "Lanata", "Laevina", "Laterensis", "Lentula", "Lepida", "Licina", "Longa", "Luculla", "Lupa", "Macra", "Macula", "Malleola", "Mamerca", "Marcella", "Merenda", "Merga", "Merula", "Messalla", "Metella", "Murena", "Mus", "Musca", "Nasica", "Natta", "Nepos", "Nerva", "Nigra", "Novella", "Ocella", "Pacila", "Paeta", "Pansa", "Papa", "Patercula", "Paulla", "Pera", "Pictrix", "Planca", "Plauta", "Poplicola", "Postuma", "Potita", "Praeconina", "Praetextata", "Prisca", "Procula", "Publicola", "Pulchra", "Pulla", "Pulvilla", "Quadrata", "Ralla", "Regilla", "Regula", "Rufa", "Ruga", "Rulla", "Rutila", "Salinatrix", "Saturnina", "Scaeva", "Scaevola", "Scapula", "Scaura", "Scrofa", "Seneca", "Severa", "Silana", "Sila", "Structa", "Sulla", "Sura", "Taura", "Triaria", "Trigemina", "Tuberta", "Tubula", "Tuditana", "Tulla", "Turda", "Vara", "Vatia", "Verres", "Vetus", "Vitula", "Volusa"]>> -<<set $edoSlaveNames to ["Adakichi", "Aihachi", "Aika", "Aikichi", "Aiko", "Aimatsu", "Akiko", "Ariko", "Asa", "Asakichi", "Asao", "Ayako", "Ayano", "Azuma", "Baicho", "Baisho", "Botan", "Charyoei", "Chieko", "Chikafuku", "Chikafumi", "Chikano", "Chikashizu", "Chikayoshi", "Chikayu", "Chikayuki", "Chisako", "Chiyo", "Chiyoe", "Chiyoha", "Chiyokichi", "Chiyoko", "Chiyoryo", "Chiyoteru", "Chiyotsuru", "Chiyowaka", "Chiyoyakko", "Chizu", "Chizuha", "Chizuru", "Cho", "Chocho", "Dan’ei", "Danji", "Danko", "Dango", "Edagiku", "Emi", "Emicho", "Emigiku", "Emiyo", "Enko", "Eriko", "Fuji", "Fujie", "Fujigiku", "Fujiha", "Fukichiyo", "Fukiha", "Fukimi", "Fukiyo", "Fukizo", "Fuku", "Fukuai", "Fukuaya", "Fukuchiyo", "Fukucho", "Fukudama", "Fukuha", "Fukuhana", "Fukuharu", "Fukuhina", "Fukuhiro", "Fukumi", "Fukumusume", "Fukunae", "Fukusato", "Fukusuke", "Fukusuzu", "Fukuteru", "Fukuya", "Fukuyo", "Fukuyoshi", "Fukuyu", "Fumi", "Fumichiyo", "Fumicho", "Fumihana", "Fumiko", "Fumino", "Fumukazu", "Fusakichi", "Fusako", "Fusao", "Hamako", "Hamayu", "Hanachiyo", "Hanaji", "Hanakichi", "Hanako", "Hanamatsu", "Hanaryo", "Hanayakko", "Harukichi", "Haruko", "Hatsu", "Hatsuko", "Hatsuyo", "Hidechiyo", "Hidecho", "Hideji", "Hidemi", "Hideryu", "Hideyakko", "Hidezuru", "Hinacho", "Hinagiku", "Hinako", "Hinazuru", "Hisa", "Hisacho", "Hisae", "Hisaei", "Hisamomo", "Hisasuzu", "Hisayo", "Hisazuru", "Ichiei", "Ichiemi", "Ichiharu", "Ichiho", "Ichika", "Ichimame", "Ichimomo", "Ichiraku", "Ichiryu", "Ichisayo", "Ichiteru", "Ichitomi", "Ichiume", "Ichiya", "Ichiyakko", "Iku", "Ikumatsu", "Imayoshi", "Ine", "Iroha", "Ishino", "Ishiyakko", "Iso", "Isoei", "Itozuru", "Kameji", "Kameko", "Kaneha", "Kanemi", "Kanoaki", "Kanoemi", "Kanoka", "Kasen", "Katsuchiyo", "Katsue", "Katsuha", "Katsuji", "Katsuna", "Katsune", "Katsuru", "Kayo", "Kichihana", "Kichiyakko", "Kichiyo", "Kichiyu", "Kiku", "Kikuka", "Kikumaru", "Kikumatsu", "Kikuno", "Kikuryo", "Kikutsuru", "Kikuya", "Kikuyakko", "Kikuyu", "Kimiei", "Kimikiku", "Kimina", "Kimitomo", "Kimiyakko", "Kin'ei", "Kin'ichi", "Kinhei", "Kinko", "Kinmatsu", "Kinroku", "Kinryo", "Kinryu", "Kinshi", "Kinsuke", "Kinu", "Kinyo", "Kitanomatsu", "Kiyo", "Kozuru", "Koen", "Kofuku", "Kofusa", "Kogiku", "Koi", "Koiku", "Kojako", "Komagiku", "Komaji", "Komako", "Komame", "Komari", "Komaru", "Komasu", "Komomo", "Komume", "Koriki", "Korin", "Koroku", "Kosaki", "Kosaku", "Kosen", "Koshizu", "Kosome", "Kosue", "Kotaka", "Kotama", "Kotatsu", "Koteru", "Kotetsu", "Koto", "Kotobuki", "Kotoei", "Kotogiku", "Kotoha", "Kotoji", "Kotomi", "Kotono", "Kotoyo", "Kotsuma", "Koume", "Koyachiyo", "Koyakko", "Koyana", "Koyei", "Koyo", "Koyone", "Koyoshi", "Koyuka", "Koyuki", "Koyumi", "Kozakura", "Kuma", "Kumakichi", "Kumano", "Kumayoshi", "Kunigiku", "Kyoka", "Kyoko", "Machi", "Mamefusa", "Mamegiku", "Mamehana", "Mameharu", "Mamehide", "Mamehiro", "Mameka", "Mamekichi", "Mameko", "Mameraku", "Mameriki", "Mameroku", "Mameryo", "Mameyakko", "Mameyo", "Mameyoshi", "Mameyu", "Maru", "Masuwaka", "Matsuko", "Matsuriki", "Matsuyakko", "Miharu", "Mineko", "Mitsu", "Mitsugiku", "Mitsuko", "Mitsuha", "Mitsuyo", "Miyagiku", "Miyo", "Miyoha", "Miyoharu", "Miyoka", "Miyozuru", "Momifuku", "Momiji", "Momochiyo", "Momoko", "Momomaru", "Momoyakko", "Momozuru", "Naka", "Naochiyo", "Naosome", "Naosono", "Narako", "Narayone", "Oimatsu", "Omine", "Omocha", "Onao", "Otomaru", "Otoyu", "Ran", "Ren", "Riki", "Rikigo", "Rikiha", "Rikiharu", "Rikihei", "Rikiji", "Rikiko", "Rikiya", "Royo", "Ryuko", "Sakae", "Sakiko", "Sana", "Sakyo", "Sanae", "Sankatsu", "Sanko", "Sanya", "Sasa", "Sato", "Satochiyo", "Satogiku", "Satoji", "Satoka", "Satokichi", "Satomi", "Satono", "Satotsuya", "Satoyuki", "Satoyu", "Satsuki", "Sayaka", "Sayoko", "Sekka", "Sen", "Shimekichi", "Shimematsu", "Shinneji", "Shizu", "Shizue", "Shizuko", "Sodeko", "Shun", "Somagiku", "Soyo", "Sumiko", "Suzu", "Suzuhachi", "Suzuka", "Sue", "Suzuko", "Takeko", "Takewaka", "Takeyakko", "Tama", "Tamagiku", "Tamakiku", "Tamako", "Tamaryo", "Tamasuke", "Tamaye", "Tamayu", "Tamazuru", "Tamiko", "Tane", "Taneji", "Taneju", "Taneko", "Tatsu", "Tatsuko", "Teruhina", "Teruji", "Teruko", "Teruyo", "Tetsu", "Toba", "Toki", "Tokiko", "Tokimatsu", "Toku", "Tome", "Tomeko", "Tomewaka", "Tomigiku", "Tomiko", "Tomimatsu", "Tomino", "Tomiryo", "Tomitae", "Tomitsuru", "Tomiwaka", "Tomiyakko", "Tomizuru", "Tomogiku", "Tomoko", "Tomoryo", "Tomowaka", "Tomoyuki", "Tonko", "Tora", "Toshifumi", "Toshihana", "Toshiko", "Toye", "Toyochiyo", "Toyohina", "Toyoji", "Toyofu", "Toyoka", "Tsunechiyo", "Tsuneko", "Tsunemomo", "Tsuneyo", "Tsuneyu", "Tsuru", "Tsurue", "Tsuruha", "Tsuruji", "Tsuruka", "Tsurumatsu", "Tsuruyo", "Tsuruyu", "Tsuta", "Tsutaji", "Tsuyachiyo", "Tsuyu", "Ume", "Umechie", "Umechiho", "Umechika", "Umechiyo", "Umegiku", "Umeha", "Umehisa", "Umeji", "Umeko", "Umeko", "Umematsu", "Umeo", "Umeraku", "Umeryo", "Umeryu", "Umesaya", "Umesuke", "Umesuzu", "Umewaka", "Umeyae", "Umeyakko", "Umeyu", "Uno", "Unofuku", "Unoha", "Unohide", "Unoji", "Unoka", "Unokayo", "Unokazu", "Unokiyo", "Unoko", "Unoshizu", "Unowaka", "Uta", "Utachiyo", "Utaji", "Utaka", "Utamatsu", "Utayu", "Wakaba", "Wakacho", "Wakagusa", "Wakai", "Wakaji", "Wakakimi", "Wakako", "Wakakoma", "Wakamurasaki", "Wakaroku", "Wakatsune", "Wakaume", "Wakayakko", "Wakayo", "Wakayone", "Wakazuru", "Wako", "Yachiyoko", "Yae", "Yaemi", "Yaewaka", "Yaezuru", "Yaichi", "Yasuku", "Yasohachi", "Yasu", "Yoi", "Yone", "Yonehachi", "Yoneyakko", "Yuiko", "Yukako", "Yukari", "Yukiryo", "Yukizono"]>> +<<set $ancientEgyptianSlaveNames = ["A'at", "Ahhotep", "Ahmose", "Ahmose", "Hentempet", "Ahmose", "Hent-Tenemu", "Ahmose", "Henuttimehu", "Ahmose", "Inhapi", "Ahmose", "Meryetamun", "Ahmose", "Meryt-Amon", "Ahmose-Nefertari", "Ahmose", "Nefertiry", "Ahmose", "Sitkamose", "Ahmose", "Tumerisy", "Ahset", "Amtes", "Amunet", "Ana", "Aneksi", "Ankhesenamon", "Ankhesenpaaten", "Ankhesenpaaten-ta-sherit", "Ankhes-Pepi", "Ankhetitat", "Ankhnesmery-Re", "Ankhnes-Pepi", "Aoh", "Ashait", "Ast", "Atet", "Baketamon", "Bakt", "Baktwerel", "Beketaten", "Berenib", "Betresh", "Betrest", "Bint-Anath", "Bunefer", "Dedyet", "Fent-Ankhet", "Gilukhipa", "Hapynma'at", "Hedjhekenu", "Henhenet", "Henite", "Hent", "Hentaneb", "Hentmereb", "Hentmire", "Hent-Temehu", "Henutmire", "Henutsen", "Henuttawy", "Herit", "Herneith", "Hetepheres", "Hetephernebty", "Heterphenebty", "Huy", "Imi", "Inhapi", "Intakaes", "Iput", "Ipwet", "Ipy", "Isetnofret", "Isis", "Istnofret", "Itekuyet", "Itet", "Kasmut", "Kawit", "Kemanub", "Kemanut", "Kemsit", "Kentetenka", "Khama'at", "Khamerernebty", "Khemut", "Khentikus", "Khentkawes", "Khenut", "Khumit", "Khuit", "Kiya", "Ma'at", "Hornefrure'", "Maatkare-Nefertari", "Meket-Aten", "Maia", "Menhet", "Menwi", "Mereneith", "Mereryet", "Meresankh", "Meritites", "Merneith", "Merseger", "Merti", "Meryetamun", "Meryetre", "Merysankh", "Merytamon", "Merit-Amon", "Meritaten", "Merytaten-tasherit", "Meryt-Re-Hatshepsut", "Mutemwiya", "Mutnodjme", "Mutnofret", "Muyet", "Nebet", "Nebettawy", "Nebt", "Nebt-tawya", "Neferhent", "Neferhetep", "Neferhetepes", "Neferkent", "Neferneferure", "Nefertari", "Nefertiti", "Nefertkau,", "Nefertkaw", "Neferu", "Neferu", "Neferukhayt", "Neferukhebt", "Neferu-Re", "Nefret", "Nefru", "Nefru-Ptah", "Nefrusheri", "Nefru-Sobek", "Nefru-totenen", "Neith", "Neithotep", "Nemathap", "Nenseddjedet", "Neshkons", "Nestanebtishru", "Nit", "Nitemat", "Nithotep", "Nodjmet", "Nofret", "Nofret", "Nubkhas", "Nubkhesed", "Rai", "Raia", "Redji", "Reputneb", "Sadeh", "Sadek", "Sebek-shedty-Neferu", "Senebsen", "Senisonbe", "Sennuwy", "Seshseshet", "Sitamun", "Sit-Hathor-Yunet", "Sitre", "Sobekemsaf", "Sotepenre", "Ta-Opet", "Tadukhipa", "Takhaet", "Tarset", "Taweret", "Tem", "Tener", "Teo", "Tetisheri", "Tey", "Thent", "Hep", "Tia", "Tiy", "Tiye", "Tjepu", "Tuia", "Tuya", "Tuyu", "Twosre", "Weret-Imtes"]>> + +<<set $edoSlaveNames = ["Adakichi", "Aihachi", "Aika", "Aikichi", "Aiko", "Aimatsu", "Akiko", "Ariko", "Asa", "Asakichi", "Asao", "Ayako", "Ayano", "Azuma", "Baicho", "Baisho", "Botan", "Charyoei", "Chieko", "Chikafuku", "Chikafumi", "Chikano", "Chikashizu", "Chikayoshi", "Chikayu", "Chikayuki", "Chisako", "Chiyo", "Chiyoe", "Chiyoha", "Chiyokichi", "Chiyoko", "Chiyoryo", "Chiyoteru", "Chiyotsuru", "Chiyowaka", "Chiyoyakko", "Chizu", "Chizuha", "Chizuru", "Cho", "Chocho", "Dan’ei", "Danji", "Danko", "Dango", "Edagiku", "Emi", "Emicho", "Emigiku", "Emiyo", "Enko", "Eriko", "Fuji", "Fujie", "Fujigiku", "Fujiha", "Fukichiyo", "Fukiha", "Fukimi", "Fukiyo", "Fukizo", "Fuku", "Fukuai", "Fukuaya", "Fukuchiyo", "Fukucho", "Fukudama", "Fukuha", "Fukuhana", "Fukuharu", "Fukuhina", "Fukuhiro", "Fukumi", "Fukumusume", "Fukunae", "Fukusato", "Fukusuke", "Fukusuzu", "Fukuteru", "Fukuya", "Fukuyo", "Fukuyoshi", "Fukuyu", "Fumi", "Fumichiyo", "Fumicho", "Fumihana", "Fumiko", "Fumino", "Fumukazu", "Fusakichi", "Fusako", "Fusao", "Hamako", "Hamayu", "Hanachiyo", "Hanaji", "Hanakichi", "Hanako", "Hanamatsu", "Hanaryo", "Hanayakko", "Harukichi", "Haruko", "Hatsu", "Hatsuko", "Hatsuyo", "Hidechiyo", "Hidecho", "Hideji", "Hidemi", "Hideryu", "Hideyakko", "Hidezuru", "Hinacho", "Hinagiku", "Hinako", "Hinazuru", "Hisa", "Hisacho", "Hisae", "Hisaei", "Hisamomo", "Hisasuzu", "Hisayo", "Hisazuru", "Ichiei", "Ichiemi", "Ichiharu", "Ichiho", "Ichika", "Ichimame", "Ichimomo", "Ichiraku", "Ichiryu", "Ichisayo", "Ichiteru", "Ichitomi", "Ichiume", "Ichiya", "Ichiyakko", "Iku", "Ikumatsu", "Imayoshi", "Ine", "Iroha", "Ishino", "Ishiyakko", "Iso", "Isoei", "Itozuru", "Kameji", "Kameko", "Kaneha", "Kanemi", "Kanoaki", "Kanoemi", "Kanoka", "Kasen", "Katsuchiyo", "Katsue", "Katsuha", "Katsuji", "Katsuna", "Katsune", "Katsuru", "Kayo", "Kichihana", "Kichiyakko", "Kichiyo", "Kichiyu", "Kiku", "Kikuka", "Kikumaru", "Kikumatsu", "Kikuno", "Kikuryo", "Kikutsuru", "Kikuya", "Kikuyakko", "Kikuyu", "Kimiei", "Kimikiku", "Kimina", "Kimitomo", "Kimiyakko", "Kin'ei", "Kin'ichi", "Kinhei", "Kinko", "Kinmatsu", "Kinroku", "Kinryo", "Kinryu", "Kinshi", "Kinsuke", "Kinu", "Kinyo", "Kitanomatsu", "Kiyo", "Kozuru", "Koen", "Kofuku", "Kofusa", "Kogiku", "Koi", "Koiku", "Kojako", "Komagiku", "Komaji", "Komako", "Komame", "Komari", "Komaru", "Komasu", "Komomo", "Komume", "Koriki", "Korin", "Koroku", "Kosaki", "Kosaku", "Kosen", "Koshizu", "Kosome", "Kosue", "Kotaka", "Kotama", "Kotatsu", "Koteru", "Kotetsu", "Koto", "Kotobuki", "Kotoei", "Kotogiku", "Kotoha", "Kotoji", "Kotomi", "Kotono", "Kotoyo", "Kotsuma", "Koume", "Koyachiyo", "Koyakko", "Koyana", "Koyei", "Koyo", "Koyone", "Koyoshi", "Koyuka", "Koyuki", "Koyumi", "Kozakura", "Kuma", "Kumakichi", "Kumano", "Kumayoshi", "Kunigiku", "Kyoka", "Kyoko", "Machi", "Mamefusa", "Mamegiku", "Mamehana", "Mameharu", "Mamehide", "Mamehiro", "Mameka", "Mamekichi", "Mameko", "Mameraku", "Mameriki", "Mameroku", "Mameryo", "Mameyakko", "Mameyo", "Mameyoshi", "Mameyu", "Maru", "Masuwaka", "Matsuko", "Matsuriki", "Matsuyakko", "Miharu", "Mineko", "Mitsu", "Mitsugiku", "Mitsuko", "Mitsuha", "Mitsuyo", "Miyagiku", "Miyo", "Miyoha", "Miyoharu", "Miyoka", "Miyozuru", "Momifuku", "Momiji", "Momochiyo", "Momoko", "Momomaru", "Momoyakko", "Momozuru", "Naka", "Naochiyo", "Naosome", "Naosono", "Narako", "Narayone", "Oimatsu", "Omine", "Omocha", "Onao", "Otomaru", "Otoyu", "Ran", "Ren", "Riki", "Rikigo", "Rikiha", "Rikiharu", "Rikihei", "Rikiji", "Rikiko", "Rikiya", "Royo", "Ryuko", "Sakae", "Sakiko", "Sana", "Sakyo", "Sanae", "Sankatsu", "Sanko", "Sanya", "Sasa", "Sato", "Satochiyo", "Satogiku", "Satoji", "Satoka", "Satokichi", "Satomi", "Satono", "Satotsuya", "Satoyuki", "Satoyu", "Satsuki", "Sayaka", "Sayoko", "Sekka", "Sen", "Shimekichi", "Shimematsu", "Shinneji", "Shizu", "Shizue", "Shizuko", "Sodeko", "Shun", "Somagiku", "Soyo", "Sumiko", "Suzu", "Suzuhachi", "Suzuka", "Sue", "Suzuko", "Takeko", "Takewaka", "Takeyakko", "Tama", "Tamagiku", "Tamakiku", "Tamako", "Tamaryo", "Tamasuke", "Tamaye", "Tamayu", "Tamazuru", "Tamiko", "Tane", "Taneji", "Taneju", "Taneko", "Tatsu", "Tatsuko", "Teruhina", "Teruji", "Teruko", "Teruyo", "Tetsu", "Toba", "Toki", "Tokiko", "Tokimatsu", "Toku", "Tome", "Tomeko", "Tomewaka", "Tomigiku", "Tomiko", "Tomimatsu", "Tomino", "Tomiryo", "Tomitae", "Tomitsuru", "Tomiwaka", "Tomiyakko", "Tomizuru", "Tomogiku", "Tomoko", "Tomoryo", "Tomowaka", "Tomoyuki", "Tonko", "Tora", "Toshifumi", "Toshihana", "Toshiko", "Toye", "Toyochiyo", "Toyohina", "Toyoji", "Toyofu", "Toyoka", "Tsunechiyo", "Tsuneko", "Tsunemomo", "Tsuneyo", "Tsuneyu", "Tsuru", "Tsurue", "Tsuruha", "Tsuruji", "Tsuruka", "Tsurumatsu", "Tsuruyo", "Tsuruyu", "Tsuta", "Tsutaji", "Tsuyachiyo", "Tsuyu", "Ume", "Umechie", "Umechiho", "Umechika", "Umechiyo", "Umegiku", "Umeha", "Umehisa", "Umeji", "Umeko", "Umeko", "Umematsu", "Umeo", "Umeraku", "Umeryo", "Umeryu", "Umesaya", "Umesuke", "Umesuzu", "Umewaka", "Umeyae", "Umeyakko", "Umeyu", "Uno", "Unofuku", "Unoha", "Unohide", "Unoji", "Unoka", "Unokayo", "Unokazu", "Unokiyo", "Unoko", "Unoshizu", "Unowaka", "Uta", "Utachiyo", "Utaji", "Utaka", "Utamatsu", "Utayu", "Wakaba", "Wakacho", "Wakagusa", "Wakai", "Wakaji", "Wakakimi", "Wakako", "Wakakoma", "Wakamurasaki", "Wakaroku", "Wakatsune", "Wakaume", "Wakayakko", "Wakayo", "Wakayone", "Wakazuru", "Wako", "Yachiyoko", "Yae", "Yaemi", "Yaewaka", "Yaezuru", "Yaichi", "Yasuku", "Yasohachi", "Yasu", "Yoi", "Yone", "Yonehachi", "Yoneyakko", "Yuiko", "Yukako", "Yukari", "Yukiryo", "Yukizono"]>> <<set $ArcologyNamesSupremacistWhite = ["The Old Dominion", "Thule"]>> <<set $ArcologyNamesSupremacistAsian = ["The Celestial Temple", "Shambhala", "Shangri-La"]>> @@ -1366,86 +1367,86 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $ArcologyNamesEugenics = ["Perfection", "Ancension", "Second Chance"]>> <<set $ArcologyNamesRepopulationist = ["Hope", "The Womb", "Holders of the Future", "Future", "Haven of the Pregnant", "Sacred Womb", "Glorious Mother"]>> -<<set $badWords to ["fuck", "shit", "ass", "cock", "piss", "dick", "slut", "cum", "whore", "butt", "boob", "cunt", "cunny", "pussy", "junk", "trash", "slave"]>> +<<set $badWords = ["fuck", "shit", "ass", "cock", "piss", "dick", "slut", "cum", "whore", "butt", "boob", "cunt", "cunny", "pussy", "junk", "trash", "slave"]>> <<set $niceWeather = []>> -<<set $weatherToday to {name: "Sunny", severity: 1}>> +<<set $weatherToday = {name: "Sunny", severity: 1}>> <<set $niceWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Cloudy", severity: 1}>> +<<set $weatherToday = {name: "Cloudy", severity: 1}>> <<set $niceWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Partly Cloudy", severity: 1}>> +<<set $weatherToday = {name: "Partly Cloudy", severity: 1}>> <<set $niceWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Overcast", severity: 1}>> +<<set $weatherToday = {name: "Overcast", severity: 1}>> <<set $niceWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Light Wind", severity: 1}>> +<<set $weatherToday = {name: "Light Wind", severity: 1}>> <<set $niceWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Clear and Calm", severity: 1}>> +<<set $weatherToday = {name: "Clear and Calm", severity: 1}>> <<set $niceWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Light Rain", severity: 1}>> +<<set $weatherToday = {name: "Light Rain", severity: 1}>> <<set $niceWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Heavy Rain", severity: 1}>> +<<set $weatherToday = {name: "Heavy Rain", severity: 1}>> <<set $niceWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Smoke warning", severity: 1}>> +<<set $weatherToday = {name: "Smoke warning", severity: 1}>> <<set $niceWeather.push($weatherToday)>> <<set $lightWeather = []>> -<<set $weatherToday to {name: "High Winds", severity: 2}>> +<<set $weatherToday = {name: "High Winds", severity: 2}>> <<set $lightWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Acid Rain", severity: 2}>> +<<set $weatherToday = {name: "Acid Rain", severity: 2}>> <<set $lightWeather.push($weatherToday)>> -<<set $weatherToday to {name: "T-Storm Warning", severity: 2}>> +<<set $weatherToday = {name: "T-Storm Warning", severity: 2}>> <<set $lightWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Flood Warning", severity: 2}>> +<<set $weatherToday = {name: "Flood Warning", severity: 2}>> <<set $lightWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Tornado Warning", severity: 2}>> +<<set $weatherToday = {name: "Tornado Warning", severity: 2}>> <<set $lightWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Light Sandstorm", severity: 2}>> +<<set $weatherToday = {name: "Light Sandstorm", severity: 2}>> <<set $lightWeather.push($weatherToday)>> -<<set $weatherToday to {name: "High Heat", severity: 2}>> +<<set $weatherToday = {name: "High Heat", severity: 2}>> <<set $lightWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Smoky", severity: 2}>> +<<set $weatherToday = {name: "Smoky", severity: 2}>> <<set $lightWeather.push($weatherToday)>> <<set $heavyWeather = []>> -<<set $weatherToday to {name: "Extreme Winds", severity: 3}>> +<<set $weatherToday = {name: "Extreme Winds", severity: 3}>> <<set $heavyWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Heavy Acid Rain", severity: 3}>> +<<set $weatherToday = {name: "Heavy Acid Rain", severity: 3}>> <<set $heavyWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Extreme T-storm", severity: 3}>> +<<set $weatherToday = {name: "Extreme T-storm", severity: 3}>> <<set $heavyWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Flooding", severity: 3}>> +<<set $weatherToday = {name: "Flooding", severity: 3}>> <<set $heavyWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Tornadoes", severity: 3}>> +<<set $weatherToday = {name: "Tornadoes", severity: 3}>> <<set $heavyWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Sandstorm", severity: 3}>> +<<set $weatherToday = {name: "Sandstorm", severity: 3}>> <<set $heavyWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Extreme Heat", severity: 3}>> +<<set $weatherToday = {name: "Extreme Heat", severity: 3}>> <<set $heavyWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Dense Smoke", severity: 3}>> +<<set $weatherToday = {name: "Dense Smoke", severity: 3}>> <<set $heavyWeather.push($weatherToday)>> <<set $extremeWeather = []>> -<<set $weatherToday to {name: "Solar Flare", severity: 4}>> +<<set $weatherToday = {name: "Solar Flare", severity: 4}>> <<set $extremeWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Ion Storm", severity: 4}>> +<<set $weatherToday = {name: "Ion Storm", severity: 4}>> <<set $extremeWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Cataclysmic Rains", severity: 4}>> +<<set $weatherToday = {name: "Cataclysmic Rains", severity: 4}>> <<set $extremeWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Cat 6 Hurricane", severity: 4}>> +<<set $weatherToday = {name: "Cat 6 Hurricane", severity: 4}>> <<set $extremeWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Abrasive Sandstorm", severity: 4}>> +<<set $weatherToday = {name: "Abrasive Sandstorm", severity: 4}>> <<set $extremeWeather.push($weatherToday)>> -<<set $weatherToday to {name: "Radiological Warning", severity: 4}>> +<<set $weatherToday = {name: "Radiological Warning", severity: 4}>> <<set $extremeWeather.push($weatherToday)>> -<<set $weatherToday to $niceWeather.random()>> +<<set $weatherToday = $niceWeather.random()>> -<<set $returnTo to "Main">> -<<set $nextButton to "END WEEK">> -<<set $nextLink to "EW Slaves">> +<<set $returnTo = "Main">> +<<set $nextButton = "END WEEK">> +<<set $nextLink = "EW Slaves">> <<set $customSlaveOrdered = 0>> -<<set $customSlave to {slaveName: "custom", birthName: "custom", weekAcquired: 1, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", eyeWear: "none", hColor: "brown", pubicHColor: "brown", skin: 0, hLength: 60, hStyle: 0, pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 500, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 2, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "no default setting", tonguePiercing: 0, vagina: 1, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 1, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 1, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, actualAge: 18, visualAge: 18, physicalAge: 18, mother: 0, father: 0, sisters: 0, daughters: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: []}>> +<<set $customSlave = {slaveName: "custom", birthName: "custom", weekAcquired: 1, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", eyeWear: "none", hColor: "brown", pubicHColor: "brown", skin: 0, hLength: 60, hStyle: 0, pubicHStyle: "neat", waist: 0, corsetPiercing: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 500, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 2, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "no default setting", tonguePiercing: 0, vagina: 1, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 1, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, balls: 0, scrotum: 0, ovaries: 1, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules:"restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, actualAge: 18, visualAge: 18, physicalAge: 18, mother: 0, father: 0, sisters: 0, daughters: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: []}>> <<set $huskSlaveOrdered = 0>> <<set $huskSlave = {age: 18, nationality: "slave", race: "white", sex: 1, virgin: 0}>> @@ -1471,8 +1472,8 @@ FertilityAge($fertilityAge) <<set $disableLisping = 0>> /% End mod section: toggle whether slaves lisp. %/ <<set $cheatMode = 0>> -<<set $weightAffectsAssets to 1>> -<<set $curativeSideEffects to 1>> +<<set $weightAffectsAssets = 1>> +<<set $curativeSideEffects = 1>> <<set $fcnn = []>> <<set $fcnn.push("...coming up at the top of the hour: Catgirl slaves, science fact or science fiction...")>> @@ -1521,7 +1522,7 @@ FertilityAge($fertilityAge) <<set $fcnn.push("...sixth day of street cleaners' strike. Spokesman for the strikers: 'It's getting too nasty...")>> /* HACKY EVENT WORKAROUNDS */ -<<set $eventID to -1>> +<<set $eventID = -1>> /* INCORPORATED MODS */ @@ -1533,7 +1534,7 @@ FertilityAge($fertilityAge) /* Variables for the initial events and presentation logic */ <<set $securityForceCreate = 0>> /* Has the player chosen to create the SF? Used for initial events */ <<set $securityForceEventSeen = 0>> /* Has the player seen the SF event? Used to avoid re-event */ -<<set $securityForceName to "Security Force">> /* What is the SF's name? */ +<<set $securityForceName = "Security Force">> /* What is the SF's name? */ <<set $securityForceActive = 0>> /* SF is active - activates end of turn screen logic */ /* Variables for the SF control panel and logic */ @@ -1543,21 +1544,21 @@ FertilityAge($fertilityAge) <<set $securityForceBooty = 0>> /* How much money has the SF made this week? Used in money calcs */ <<set $securityForceIncome = 0>> /* What was the final, adjusted take for the SF this week? Used for EOW text */ <<set $securityForceProfitable = 0>> /* Is the SF profitable? Used for EOW text */ -<<set $securityForceFocus to "recruit">> /* What is the SF's assigned job? */ -<<set $securityForceRulesOfEngagement to "hold">> /* What are the SF's ROE outside the arcology? */ -<<set $securityForceAccountability to "strict">> /* Is the SF being held accountable for its actions outside the arcology? */ +<<set $securityForceFocus = "recruit">> /* What is the SF's assigned job? */ +<<set $securityForceRulesOfEngagement = "hold">> /* What are the SF's ROE outside the arcology? */ +<<set $securityForceAccountability = "strict">> /* Is the SF being held accountable for its actions outside the arcology? */ <<set $securityForceDepravity = 0>> /* How depraved has the SF become? Used for flavor text injections. */ <<set $securityForceUpgradeToken = 0>> /* Flag to keep track of single upgrade/week. */ <<set $securityForceGiftToken = 0>> /* Flag to keep track of single gift/week. */ /* Variables for the SF Personnel/Gear */ -<<set $securityForcePersonnel to 40>> /* How big is the SF? Maxes out at battalion/regimental (~1000) strength */ +<<set $securityForcePersonnel = 40>> /* How big is the SF? Maxes out at battalion/regimental (~1000) strength */ <<set $securityForceInfantryPower = 0>> /* How many infantry upgrades has the player bought? */ <<set $securityForceVehiclePower = 0>> /* How many vehicle upgrades has the player bought? */ <<set $securityForceAircraftPower = 0>> /* How many aircraft upgrades has the player bought? */ <<set $securityForceDronePower = 0>> /* How many drone upgrades has the player bought? */ <<set $securityForceStimulantPower = 0>> /* How many stimulant upgrades has the player bought? */ <<set $securityForceArcologyUpgrades = 0>> /* How many militarized arcology upgrades has the player bought? */ -<<set $securityForceMissionEfficiency to 1>> /* How efficient is the SF at completing its assigned task? (Upgrades*Drug Multiplier) */ +<<set $securityForceMissionEfficiency = 1>> /* How efficient is the SF at completing its assigned task? (Upgrades*Drug Multiplier) */ <<goto "Alpha disclaimer">> diff --git a/src/pregmod/reMaleCitizenHookup.tw b/src/pregmod/reMaleCitizenHookup.tw index afd81136bbd6099f7e178af6a0170613ed826842..358273b7c2fb0c821fd162bc7fc3469abd14446a 100644 --- a/src/pregmod/reMaleCitizenHookup.tw +++ b/src/pregmod/reMaleCitizenHookup.tw @@ -1,6 +1,6 @@ -:: RE male citizen hookup [nobr] +:: RE citizen hookup [nobr] -<<set $nextButton to "Continue", $nextLink to "RIE Eligibility Check">> +<<set $nextButton = "Continue", $nextLink = "RIE Eligibility Check">> <<set _FS = []>> <<if $arcologies[0].FSSubjugationist != "unset">> @@ -75,7 +75,11 @@ But tonight, you've put in an appearance. Your citizens are drinking your <<if $ <<case "Gender Fundamentalist">> good-looking young lady <<case "Repopulationist">> - pretty, fertile young women with wide, child bearing hips + <<if $arcologies[0].FSRepopulationFocusLaw == 1>> + heavily pregnant, young lady + <<else>> + pretty, fertile young women with wide, child bearing hips + <</if>> <<case "Eugenics">> stunningly gorgeous woman <<case "Paternalist">> @@ -124,7 +128,11 @@ She's yours for the taking, if you want her, and if her praise and proximity wer <<case "Gender Fundamentalist">> press her flirting as far she can decorously take it, batting her eyes at you coquettishly. <<case "Repopulationist">> - press her hips up against your own, before leaning in and whispering "I'm ripe for breeding right now." + <<if $arcologies[0].FSRepopulationFocusLaw == 1>> + brushing her full term, triplets rounded middle tantalizingly against your crotch. + <<else>> + press her hips up against your own, before leaning in and whispering "I'm ripe for breeding right now." + <</if>> <<case "Eugenics">> give you an excellent view straight down her perfect cleavage, straining against the top of her name-brand dress. <<case "Paternalist">> @@ -187,7 +195,11 @@ She's clearly attracted to you; even the most consummate actress would have diff <<case "Gender Fundamentalist">> perky young breasts and an elegantly coiffed strip of hair that perfectly highlights her demure pussy. <<case "Repopulationist">> - a inexperienced body, but one with potential for becoming quite fecund. + <<if $arcologies[0].FSRepopulationFocusLaw == 1>> + an inexperience body undergoing its very first pregnancy. She's taken good care of herself; not a single stretchmark can be seen across the proportionatly giant belly. + <<else>> + an inexperienced body, but one with potential for becoming quite fecund. + <</if>> <<case "Eugenics">> a near flawless body; the only distinguishable mark on it: a small tattoo of a prestigious school. <<case "Paternalist">> @@ -231,7 +243,7 @@ She's clearly attracted to you; even the most consummate actress would have diff <</if>><</if>> When your guest is finally spent, she showers, dresses, and leaves discreetly, offering you a proper thank you. This is the kind of thing that @@color:green;builds a lasting reputation@@ in the Free Cities. <<set $rep += 1000>> - <<if _FS == "Repopulationist">> + <<if _FS == "Repopulationist" && $PC.dick == 1 && $arcologies[0].FSRepopulationFocusLaw == 0 && (random(1,100) > 40)>> <<set $desc = "a tasteful morning-after message, with attached positive pregnancy test, from a pretty " + _FS + " citizen you bred">> <<set $trinkets.push($desc)>> <<elseif _FS != "none">> @@ -261,9 +273,15 @@ She's clearly attracted to you; even the most consummate actress would have diff femininity <<set $arcologies[0].FSGenderFundamentalist += 5>> <<case "Repopulationist">> - ready-to-be-bred body + <<if $arcologies[0].FSRepopulationFocusLaw == 1>> + fecund nody + <<else>> + ready-to-be-bred body + <</if>> + <<set $arcologies[0].FSRepopulationFocus += 5>> <<case "Eugenics">> perfect body + <<set $arcologies[0].FSRestart += 5>> <<case "Paternalist">> appealing body <<set $arcologies[0].FSPaternalist += 5>> diff --git a/src/uncategorized/brothel.tw b/src/uncategorized/brothel.tw index 030a7f4be2f253381f83a0fe859f4ff1b41a384d..932a4234b7fb837a64b49a19d5704262d5e7f7e5 100644 --- a/src/uncategorized/brothel.tw +++ b/src/uncategorized/brothel.tw @@ -169,7 +169,9 @@ $brothelNameCaps <<include "Slave Summary">> <</if>> -<<if (_SL > _DL)>> +<<if $brothel <= _DL>> + <br><br>''$brothelNameCaps is full and cannot hold any more slaves'' +<<elseif (_SL > _DL)>> <br><br>''Send a slave to $brothelName:'' <<set $Flag = 0>> <<include "Slave Summary">> diff --git a/src/uncategorized/cellblock.tw b/src/uncategorized/cellblock.tw index a0f0914ab5ff93fa7ba587150a550c60bc9c743f..3b4760fc37fa8f3813c57b29c83fa13b02c6607a 100644 --- a/src/uncategorized/cellblock.tw +++ b/src/uncategorized/cellblock.tw @@ -91,7 +91,9 @@ $cellblockNameCaps <<include "Slave Summary">> <</if>> -<<if (_SL > _DL)>> +<<if $cellblock <= _DL>> + <br><br>''$cellblockNameCaps is full and cannot hold any more slaves'' +<<elseif (_SL > _DL)>> <br><br>''Send a resistant slave to be broken in the cellblock:'' <<set $Flag = 0>> <<include "Slave Summary">> diff --git a/src/uncategorized/clinic.tw b/src/uncategorized/clinic.tw index 88d2b037bb14f732e5b53530c4c6f5a239230015..ace198c9333aec53b20bf7d3814f468d20b6fd0d 100644 --- a/src/uncategorized/clinic.tw +++ b/src/uncategorized/clinic.tw @@ -123,8 +123,10 @@ $clinicNameCaps <<include "Slave Summary">> <</if>> -<<if (_SL > _DL)>> - <br><br>''Send a slave to get treatment in the clinic:'' +<<if $clinic <= _DL>> + <br><br>''$clinicNameCaps is full and cannot hold any more slaves'' +<<elseif (_SL > _DL)>> + <br><br>''Send a slave to get treatment in $clinicName:'' <<set $Flag = 0>> <<include "Slave Summary">> <</if>> diff --git a/src/uncategorized/club.tw b/src/uncategorized/club.tw index 19d413d25688a0c050484940785cfb38ef209cfe..a5095a4d2145d18a718b744903507a3db92651e2 100644 --- a/src/uncategorized/club.tw +++ b/src/uncategorized/club.tw @@ -217,7 +217,9 @@ $clubNameCaps <<include "Slave Summary">> <</if>> -<<if (_SL > _DL)>> +<<if $club <= _DL>> + <br><br>''$clubNameCaps is full and cannot hold any more slaves'' +<<elseif (_SL > _DL)>> <br><br>''Send a slave to slut around $clubName:'' <<set $Flag = 0>> <<include "Slave Summary">> diff --git a/src/uncategorized/dairy.tw b/src/uncategorized/dairy.tw index 9c5ef1e973e041e11b29a8a272ec1d2762c7569c..5eed7a44adb3e612f8d6f6970524e087c86ba795 100644 --- a/src/uncategorized/dairy.tw +++ b/src/uncategorized/dairy.tw @@ -273,7 +273,7 @@ $dairyNameCaps Each cow is strapped in to her own milking machine. The machines are set up in rows, alternating forward and backward so that the cows are interleaved as closely as possible without touching. <<if ($dairyFeedersUpgrade == 1) && ($dairyFeedersSetting > 0)>> <<if $dairyFeedersSetting == 2>> - A phallic feeding tube completely fills each cow's mouth and throat, making the it eerily quiet in here. Occasionally one of the cows convulses when a particularly long rush of food and drugs flows down her gullet. + A phallic feeding tube completely fills each cow's mouth and throat, making it eerily quiet in there. Occasionally one of the cows convulses when a particularly long rush of food and drugs flows down her gullet. <<else>> When feeding is required, a phallus extends into cows' mouths. <</if>> @@ -466,15 +466,17 @@ $dairyNameCaps <<set $Flag = 1>> <<include "Slave Summary">> <</if>> -<<set _seed to $bioreactorsXY+$bioreactorsXX+$bioreactorsHerm+$bioreactorsBarren>> +<<set _seed = $bioreactorsXY+$bioreactorsXX+$bioreactorsHerm+$bioreactorsBarren>> <<if _seed > 1>> //In addition, _seed milking machines have biological components installed in them.// <<elseif _seed == 1>> //In addition, one milking machine has biological components installed in it.// <</if>> -<<if (_SL > _DL)>> - <br><br>''Send a slave to the dairy:'' +<<if $dairy <= _DL+_seed>> + <br><br>''$dairyNameCaps is full and cannot hold any more slaves'' +<<elseif (_SL > _DL)>> + <br><br>''Send a slave to $dairyName:'' <<set $Flag = 0>> <<include "Slave Summary">> <</if>> diff --git a/src/uncategorized/masterSuite.tw b/src/uncategorized/masterSuite.tw index 7831e605996b17d3eabed84d08f2ffcfb3883e76..819c388ea37add71d5c681529a82815942746b7e 100644 --- a/src/uncategorized/masterSuite.tw +++ b/src/uncategorized/masterSuite.tw @@ -3,7 +3,7 @@ <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Master Suite", $showEncyclopedia = 1, $encyclopedia = "Master Suite", _DL = $MastSiIDs.length, $masterSuiteSlaves = _DL, _SL = $slaves.length>> <<if $masterSuiteName != "the Master Suite">> - <<set $masterSuiteNameCaps to $masterSuiteName.replace("the ", "The ")>> + <<set $masterSuiteNameCaps = $masterSuiteName.replace("the ", "The ")>> <</if>> <<set $masterSuiteAverageEnergy = 0, _masterSuiteAverageCum = 0, _masterSuiteAverageDick = 0, _masterSuiteAverageDom = 0, _masterSuiteAverageMilk = 0, _masterSuiteAveragePreg = 0, _masterSuiteAverageSadism = 0, _masterSuitePregnantSlaves = 0, _masterSuitePregnantSlavesMultiple = 0>> @@ -35,19 +35,19 @@ <</for>> <</if>> /% Onward bound as normal %/ - <<set _Slave to $slaves[_i]>> + <<set _Slave = $slaves[_i]>> <<if $masterSuiteUpgradeLuxury == 2>> <<if canAchieveErection(_Slave)>> <<set _masterSuiteAverageCum += _Slave.balls, _masterSuiteAverageDick += _Slave.dick>> <</if>> <<set _masterSuiteAverageMilk += _Slave.lactation*(_Slave.boobs-_Slave.boobsImplant), $masterSuiteAverageEnergy += _Slave.energy, _masterSuiteAveragePreg += _Slave.preg>> - <<if _Slave.fetish is "dom">> + <<if _Slave.fetish == "dom">> <<set _masterSuiteAverageDom += _Slave.fetishStrength>> - <<elseif _Slave.fetish is "submissive">> + <<elseif _Slave.fetish == "submissive">> <<set _masterSuiteAverageDom -= _Slave.fetishStrength>> - <<elseif _Slave.fetish is "sadist">> + <<elseif _Slave.fetish == "sadist">> <<set _masterSuiteAverageSadism += _Slave.fetishStrength>> - <<elseif _Slave.fetish is "masochist">> + <<elseif _Slave.fetish == "masochist">> <<set _masterSuiteAverageSadism -= _Slave.fetishStrength>> <</if>> <</if>> @@ -335,8 +335,10 @@ $masterSuiteNameCaps is furnished <<include "Slave Summary">> <</if>> -<<if (_SL > _DL)>> - <br><br>''Send a slave to serve in the master suite:'' +<<if $masterSuite <= _DL>> + <br><br>''$masterSuiteNameCaps is full and cannot hold any more slaves'' +<<elseif (_SL > _DL)>> + <br><br>''Send a slave to serve in $masterSuiteName:'' <<set $Flag = 0>> <<include "Slave Summary">> <</if>> diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw index 8daa07b6aa20154273f7634d80faf992507cb5f3..1f309b2e1bd0d624f6cbd5475e670c5e26f2fade 100644 --- a/src/uncategorized/randomNonindividualEvent.tw +++ b/src/uncategorized/randomNonindividualEvent.tw @@ -2,7 +2,7 @@ <<silently>> -<<set $showEncyclopedia to 0>> +<<set $showEncyclopedia = 0>> <<set $events = []>> <<set $RecETSevent = []>> @@ -13,55 +13,35 @@ <<set $groomSlave = 0>> <<set $brideSlave = 0>> -<<set $seed to 0>> -<<set $eventSlave to $slaves.random()>> +<<set $seed = 0>> +<<set $eventSlave = $slaves.random()>> <<if $eventSlave.fuckdoll == 0>> <<if $nicknamesAllowed == 1>> <<if $eventSlave.assignment != "be confined in the arcade">> -<<set $toSearch to $eventSlave.slaveName.toLowerCase();>> -<<if ($toSearch.indexOf("'") is -1)>> +<<set $toSearch = $eventSlave.slaveName.toLowerCase();>> +<<if ($toSearch.indexOf("'") == -1)>> <<if ($week-$eventSlave.weekAcquired >= 4)>> <<if ($eventSlave.devotion >= -20)>> <<set $events.push("RE nickname")>> <<set $events.push("RE nickname")>> <<set $events.push("RE nickname")>> <<set $events.push("RE nickname")>> - <<set $seed to 1>> + <<set $seed = 1>> <<else>> <<set $events.push("RE nickname")>> <<set $events.push("RE nickname")>> - <<set $seed to 1>> + <<set $seed = 1>> <</if>> <</if>> <</if>> /* closes nickname check */ <</if>> <</if>> /* closes no nicknames option */ -<<if ($eventSlave.assignment is "serve in the master suite")>> -<<if ($eventSlave.devotion > 20)>> -<<if ($eventSlave.trust > -20)>> -<<if ($activeSlave.anus > 0)>> -<<if ($activeSlave.vagina != 0)>> - <<if ($corpIncorporated != 0)>> - <<set $events.push("RE shift sleep")>> - <</if>> - <<if ($activeSlave.releaseRules != "restrictive")>> - <<set $events.push("RE shift masturbation")>> - <</if>> - <<if ($activeSlave.entertainSkill >= 60)>> - <<set $events.push("RE shift doorframe")>> - <</if>> -<</if>> -<</if>> -<</if>> -<</if>> -<</if>> - <</if>> /* CLOSES FUCKDOLL CHECK */ -<<set $legendaryFacility to 1>> +<<set $legendaryFacility = 1>> <<if $legendaryWhoreID != 0>> <<set $events.push("RE legendary whore")>> <</if>> @@ -91,20 +71,20 @@ <<if $familyTesting == 1>> -<<set $used to 0>> -<<for $i to 0; $i < $slaves.length; $i++>> +<<set $used = 0>> +<<for $i = 0; $i < $slaves.length; $i++>> <<if ($used == 0)>> <<if ($slaves[$i].daughters > 0)>> <<if ($slaves[$i].devotion > 50)>> - <<set $mother to $slaves[$i]>> - <<set $daughter to RandomDaughter($slaves[$i])>> + <<set $mother = $slaves[$i]>> + <<set $daughter = RandomDaughter($slaves[$i])>> <<if ($daughter.devotion > 50)>> <<if canWalk($daughter)>> <<if canWalk($mother)>> <<if ($daughter.anus != 0)>> <<if ($mother.anus != 0)>> <<set $events.push("RE devoted mother daughter")>> - <<set $used to 1>> + <<set $used = 1>> <</if>> <</if>> <</if>> @@ -115,17 +95,17 @@ <</if>> <</for>> -<<set $used to 0>> -<<for $i to 0; $i < $slaves.length; $i++>> +<<set $used = 0>> +<<for $i = 0; $i < $slaves.length; $i++>> <<if ($used == 0)>> <<if ($slaves[$i].sisters > 0)>> <<if ($slaves[$i].dick == 1)>> - <<set $youngerSister to $slaves[$i]>> - <<set $olderSister to randomSister($slaves[$i])>> + <<set $youngerSister = $slaves[$i]>> + <<set $olderSister = randomSister($slaves[$i])>> <<if ($olderSister.anus == 0)>> <<if ($youngerSister.devotion > ($olderSister.devotion+20))>> <<set $events.push("RE sibling revenge")>> -<<set $used to 1>> +<<set $used = 1>> <</if>> <</if>> <</if>> @@ -133,12 +113,12 @@ <</if>> <</for>> -<<set $used to 0>> -<<for $i to 0; $i < $slaves.length; $i++>> +<<set $used = 0>> +<<for $i = 0; $i < $slaves.length; $i++>> <<if ($used == 0)>> <<if ($slaves[$i].sisters > 0)>> - <<set $alphaTwin to $slaves[$i]>> - <<set $betaTwin to randomTwinSister($slaves[$i])>> + <<set $alphaTwin = $slaves[$i]>> + <<set $betaTwin = randomTwinSister($slaves[$i])>> <<if ($alphaTwin.anus > 0)>> <<if ($betaTwin.anus > 0)>> <<if ($alphaTwin.devotion > 50)>> @@ -146,7 +126,7 @@ <<if canWalk($alphaTwin)>> <<if canWalk($betaTwin)>> <<set $events.push("RE devoted twins")>> -<<set $used to 1>> +<<set $used = 1>> <</if>> <</if>> <</if>> @@ -159,16 +139,16 @@ <<else>> -<<set $used to 0>> -<<for $i to 0; $i < $slaves.length; $i++>> +<<set $used = 0>> +<<for $i = 0; $i < $slaves.length; $i++>> <<if ($used == 0)>> -<<if ($slaves[$i].relation is "mother")>> +<<if ($slaves[$i].relation == "mother")>> <<if ($slaves[$i].relationshipTarget != $slaves[$i].relationTarget)>> <<if ($slaves[$i].devotion > 50)>> - <<set $mother to $slaves[$i]>> - <<for $j to 0; $j < $slaves.length; $j++>> - <<if $slaves[$j].ID is $mother.relationTarget>> - <<set $daughter to $slaves[$j]>> + <<set $mother = $slaves[$i]>> + <<for $j = 0; $j < $slaves.length; $j++>> + <<if $slaves[$j].ID == $mother.relationTarget>> + <<set $daughter = $slaves[$j]>> <<break>> <</if>> <</for>> @@ -178,7 +158,7 @@ <<if ($daughter.anus != 0)>> <<if ($mother.anus != 0)>> <<set $events.push("RE devoted mother daughter")>> - <<set $used to 1>> + <<set $used = 1>> <</if>> <</if>> <</if>> @@ -190,22 +170,22 @@ <</if>> <</for>> -<<set $used to 0>> -<<for $i to 0; $i < $slaves.length; $i++>> +<<set $used = 0>> +<<for $i = 0; $i < $slaves.length; $i++>> <<if ($used == 0)>> -<<if ($slaves[$i].relation is "sister")>> +<<if ($slaves[$i].relation == "sister")>> <<if ($slaves[$i].dick == 1)>> - <<set $youngerSister to $slaves[$i]>> - <<for $j to 0; $j < $slaves.length; $j++>> - <<if $slaves[$j].ID is $slaves[$i].relationTarget>> - <<set $olderSister to $slaves[$j]>> + <<set $youngerSister = $slaves[$i]>> + <<for $j = 0; $j < $slaves.length; $j++>> + <<if $slaves[$j].ID == $slaves[$i].relationTarget>> + <<set $olderSister = $slaves[$j]>> <<break>> <</if>> <</for>> <<if ($olderSister.anus == 0)>> <<if ($youngerSister.devotion > ($olderSister.devotion+20))>> <<set $events.push("RE sibling revenge")>> -<<set $used to 1>> +<<set $used = 1>> <</if>> <</if>> <</if>> @@ -213,14 +193,14 @@ <</if>> <</for>> -<<set $used to 0>> -<<for $i to 0; $i < $slaves.length; $i++>> +<<set $used = 0>> +<<for $i = 0; $i < $slaves.length; $i++>> <<if ($used == 0)>> -<<if ($slaves[$i].relation is "twin")>> - <<set $alphaTwin to $slaves[$i]>> - <<for $j to 0; $j < $slaves.length; $j++>> - <<if $slaves[$j].ID is $slaves[$i].relationTarget>> - <<set $betaTwin to $slaves[$j]>> +<<if ($slaves[$i].relation == "twin")>> + <<set $alphaTwin = $slaves[$i]>> + <<for $j = 0; $j < $slaves.length; $j++>> + <<if $slaves[$j].ID == $slaves[$i].relationTarget>> + <<set $betaTwin = $slaves[$j]>> <<break>> <</if>> <</for>> @@ -231,7 +211,7 @@ <<if canWalk($alphaTwin)>> <<if canWalk($betaTwin)>> <<set $events.push("RE devoted twins")>> -<<set $used to 1>> +<<set $used = 1>> <</if>> <</if>> <</if>> @@ -242,64 +222,58 @@ <</if>> <</for>> -/*<<include "Twin Check">> - -<<if ($alphaTwin.anus > 0) && ($betaTwin.anus > 0) && ($alphaTwin.devotion > 50) && ($betaTwin.devotion > 50)>> - <<set $events.push("RE devoted twins")>> -<</if>>*/ - <</if>> /* closes extended family mode */ /* Fetish Interest Events */ -<<set $buttslutID to 0>> -<<set $cumslutID to 0>> -<<set $humiliationID to 0>> -<<set $subID to 0>> -<<set $pregnancyID to 0>> -<<set $masochistID to 0>> -<<set $boobsID to 0>> -<<for $i to 0; $i < $slaves.length; $i++>> +<<set $buttslutID = 0>> +<<set $cumslutID = 0>> +<<set $humiliationID = 0>> +<<set $subID = 0>> +<<set $pregnancyID = 0>> +<<set $masochistID = 0>> +<<set $boobsID = 0>> +<<for $i = 0; $i < $slaves.length; $i++>> <<if ($slaves[$i].fetishKnown == 1)>> <<if ($slaves[$i].fetishStrength > 95)>> -<<if ($slaves[$i].fetish is "buttslut")>> +<<if ($slaves[$i].fetish == "buttslut")>> <<if ($slaves[$i].anus > 0)>> <<if ($buttslutID == 0)>> - <<set $buttslutID to $slaves[$i].ID>> + <<set $buttslutID = $slaves[$i].ID>> <</if>> <</if>> -<<elseif ($slaves[$i].fetish is "cumslut")>> +<<elseif ($slaves[$i].fetish == "cumslut")>> <<if ($cumslutID == 0)>> - <<set $cumslutID to $slaves[$i].ID>> + <<set $cumslutID = $slaves[$i].ID>> <</if>> -<<elseif ($slaves[$i].fetish is "submissive")>> +<<elseif ($slaves[$i].fetish == "submissive")>> <<if ($slaves[$i].anus > 0)>> <<if ($subID == 0)>> - <<set $subID to $slaves[$i].ID>> + <<set $subID = $slaves[$i].ID>> <</if>> <</if>> -<<elseif ($slaves[$i].fetish is "humiliation")>> +<<elseif ($slaves[$i].fetish == "humiliation")>> <<if ($slaves[$i].anus > 0)>> <<if ($humiliationID == 0)>> - <<set $humiliationID to $slaves[$i].ID>> + <<set $humiliationID = $slaves[$i].ID>> <</if>> <</if>> -<<elseif ($slaves[$i].fetish is "boobs")>> +<<elseif ($slaves[$i].fetish == "boobs")>> <<if ($slaves[$i].lactation > 0)>> <<if ($boobsID == 0)>> - <<set $boobsID to $slaves[$i].ID>> + <<set $boobsID = $slaves[$i].ID>> <</if>> <</if>> -<<elseif ($slaves[$i].fetish is "pregnancy")>> +<<elseif ($slaves[$i].fetish == "pregnancy")>> <<if ($slaves[$i].preg > 15)>> <<if ($pregnancyID == 0)>> - <<set $pregnancyID to $slaves[$i].ID>> + <<set $pregnancyID = $slaves[$i].ID>> <</if>> <</if>> -<<elseif ($slaves[$i].fetish is "masochist")>> +<<elseif ($slaves[$i].fetish == "masochist")>> <<if ($slaves[$i].anus != 0)>> <<if ($masochistID == 0)>> - <<set $masochistID to $slaves[$i].ID>> + <<set $masochistID = $slaves[$i].ID>> <</if>> <</if>> <</if>> @@ -307,42 +281,42 @@ <</if>> <</for>> -<<for $i to 0; $i < $slaves.length; $i++>> +<<for $i = 0; $i < $slaves.length; $i++>> <<if ($slaves[$i].speechRules != "restrictive")>> <<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2)>> -<<if ($slaves[$i].fetish is "none") || ($slaves[$i].fetishStrength <= 60)>> +<<if ($slaves[$i].fetish == "none") || ($slaves[$i].fetishStrength <= 60)>> <<if ($buttslutID != 0)>> <<if ($slaves[$i].anus != 0)>> <<set $REFIevent.push("buttslut")>> - <<set $buttslutInterestTargetID to $slaves[$i].ID>> + <<set $buttslutInterestTargetID = $slaves[$i].ID>> <</if>> <</if>> <<if ($cumslutID != 0)>> <<set $REFIevent.push("cumslut")>> - <<set $cumslutInterestTargetID to $slaves[$i].ID>> + <<set $cumslutInterestTargetID = $slaves[$i].ID>> <</if>> <<if ($subID != 0)>> <<set $REFIevent.push("submissive")>> - <<set $submissiveInterestTargetID to $slaves[$i].ID>> + <<set $submissiveInterestTargetID = $slaves[$i].ID>> <</if>> <<if ($humiliationID != 0)>> <<set $REFIevent.push("humiliation")>> - <<set $humiliationInterestTargetID to $slaves[$i].ID>> + <<set $humiliationInterestTargetID = $slaves[$i].ID>> <</if>> <<if ($boobsID != 0)>> <<set $REFIevent.push("boobs")>> - <<set $boobsInterestTargetID to $slaves[$i].ID>> + <<set $boobsInterestTargetID = $slaves[$i].ID>> <</if>> <<if ($pregnancyID != 0)>> <<if ($slaves[$i].anus != 0)>> <<set $REFIevent.push("pregnancy")>> - <<set $pregnancyInterestTargetID to $slaves[$i].ID>> + <<set $pregnancyInterestTargetID = $slaves[$i].ID>> <</if>> <</if>> <<if ($masochistID != 0)>> <<if ($slaves[$i].anus != 0)>> <<set $REFIevent.push("masochist")>> - <<set $masochistInterestTargetID to $slaves[$i].ID>> + <<set $masochistInterestTargetID = $slaves[$i].ID>> <</if>> <</if>> <</if>> @@ -469,12 +443,12 @@ <</if>> <<if ($Bodyguard.relationship == 0)>> - <<if ($Bodyguard.relationshipRules is "permissive")>> + <<if ($Bodyguard.relationshipRules == "permissive")>> <<if ($Bodyguard.fetish != "mindbroken")>> - <<set $seed to 0>> - <<for $j to 0; $j < $slaves.length; $j++>> + <<set $seed = 0>> + <<for $j = 0; $j < $slaves.length; $j++>> <<if ($slaves[$j].relationship == 0)>> - <<set $seed to 1>> + <<set $seed = 1>> <<break>> <</if>> <</for>> @@ -570,18 +544,18 @@ <<if ($Nurse != 0)>> <<if ($clinicSlaves > 0)>> - <<set $nurseMolestationSubIDs to []>> - <<for $i to 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].assignment is "get treatment in the clinic">> + <<set $nurseMolestationSubIDs = []>> + <<for $i = 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].assignment == "get treatment in the clinic">> <<if $slaves[$i].anus != 0>> <<set $nurseMolestationSubIDs.push($slaves[$i].ID)>> <</if>> <</if>> <</for>> <<if ($nurseMolestationSubIDs.length > 0)>> - <<if ($Nurse.energy > 95) || (($Nurse.fetishStrength > 60) && (($Nurse.fetish is "sadist") || ($Nurse.fetish is "dom")))>> + <<if ($Nurse.energy > 95) || (($Nurse.fetishStrength > 60) && (($Nurse.fetish == "sadist") || ($Nurse.fetish == "dom")))>> <<set $PETSevent.push("nurse molestation")>> - <<set $nurseMolestationSubIDs to $slaves[$i].ID>> + <<set $nurseMolestationSubIDs = $slaves[$i].ID>> <</if>> <</if>> <</if>> @@ -619,7 +593,7 @@ <<set $events.push("RE recruit")>> <</if>> <</if>> -<<set $recruit to []>> +<<set $recruit = []>> <<if $seeDicks != 2>> /*XX ACQUISITIONS*/ @@ -655,7 +629,7 @@ <</if>> <<if ($AProsperityCap > 60)>> <<set $events.push("RE malefactor")>> - <<set $malefactor to ["liberator", "whore", "businesswoman", "addict"]>> + <<set $malefactor = ["liberator", "whore", "businesswoman", "addict"]>> <<if $seeDicks != 0>> <<set $malefactor.push("rapist")>> <</if>> @@ -665,7 +639,7 @@ <<if $arcologies[0].FSPaternalist < 50>> <<set $malefactor.push("escapee")>> <</if>> - <<set $malefactor to $malefactor.random()>> + <<set $malefactor = $malefactor.random()>> <<if ($rep/150) > random(1,100)>> <<set $events.push("RE malefactor")>> <</if>> @@ -749,14 +723,14 @@ <<if $familyTesting == 1>> -<<for $i to 0; $i < $slaves.length; $i++>> +<<for $i = 0; $i < $slaves.length; $i++>> <<if $slaves[$i].fuckdoll == 0>> <<if $slaves[$i].canRecruit == 1>> <<if ($slaves[$i].devotion > 50)>> <<if canWalk($slaves[$i])>> - <<if random(1,100) > 80+(totalRelatives($slaves[$i])*5)>> - <<for $j to 0; $j < $slavesOriginal.length; $j++>> - <<if $slaves[$i].ID is $slavesOriginal[$j].ID>> + <<if random(1,100) > 90+(totalRelatives($slaves[$i])*2)>> + <<for $j = 0; $j < $slavesOriginal.length; $j++>> + <<if $slaves[$i].ID == $slavesOriginal[$j].ID>> <<set $events.push("RE relative recruiter")>> <<break>> <</if>> @@ -770,20 +744,20 @@ <<else>> -<<for $i to 0; $i < $slaves.length; $i++>> +<<for $i = 0; $i < $slaves.length; $i++>> <<if $slaves[$i].recruiter != 0>> <<if $slaves[$i].canRecruit == 1>> <<if ($slaves[$i].devotion > 50)>> <<if ($slaves[$i].relation == 0)>> <<if canWalk($slaves[$i])>> - <<for $j to 0; $j < $recruiters.length; $j++>> - <<if $slaves[$i].ID is $recruiters[$j].ID>> + <<for $j = 0; $j < $recruiters.length; $j++>> + <<if $slaves[$i].ID == $recruiters[$j].ID>> <<set $seed = 1>> <<set $events.push("RE relative recruiter")>> <<break>> <</if>> <</for>> - <<if $seed != 1>><<set $slaves[$i].recruiter to 0>><</if>> + <<if $seed != 1>><<set $slaves[$i].recruiter = 0>><</if>> <</if>> <</if>> <</if>> @@ -794,7 +768,7 @@ <</if>> <<if $FSAnnounced == 1>> - <<set $FSAcquisitionEvents to []>> + <<set $FSAcquisitionEvents = []>> <<if $arcologies[0].FSSupremacist > random(1,100)>> <<set $FSAcquisitionEvents.push("Supremacist")>> <<set $events.push("RE FS acquisition")>> @@ -882,7 +856,7 @@ <<if $arcologies[0].FSEgyptianRevivalist > random(1,100)>> <<set $events.push("RE FSEgyptianRevivalist acquisition")>> <</if>> - <<set $FSNonconformistEvents to []>> + <<set $FSNonconformistEvents = []>> <<if $arcologies[0].FSSupremacist < 95>><<if $arcologies[0].FSSupremacist > 50>> <<set $FSNonconformistEvents.push("Supremacist")>> <<set $events.push("RE FS nonconformist")>> @@ -978,7 +952,7 @@ /* SCHOOL EVENTS */ <<if $cash > 50000>> - <<set $RESEndowment to []>> + <<set $RESEndowment = []>> <<if $TSS.schoolUpgrade == 0>> <<if ($TSS.studentsBought > 1) || ($TSS.schoolPresent != 0)>> <<set $events.push("RES Endowment")>> @@ -1040,7 +1014,7 @@ <</if>> <</if>> -<<set $RESMove to []>> +<<set $RESMove = []>> <<if $TSS.schoolUpgrade != 0>> <<if $TSS.schoolPresent == 0>> <<if $TSS.schoolAnnexed == 0>> @@ -1104,7 +1078,7 @@ <<if $cash > 10000>> <<if $rep > 6000>> - <<set $RESSale to []>> + <<set $RESSale = []>> <<if $seeDicks != 2>> <<if $TSS.studentsBought == 0>> <<set $events.push("RES Sale")>> @@ -1144,9 +1118,9 @@ <<if $justiceEvents.length > 0>> <<if ($seeExtreme == 0) || ($seeDicks == 0)>> - <<for $x to 0; $x < $justiceEvents.length; $x++>> + <<for $x = 0; $x < $justiceEvents.length; $x++>> <<if "slave training" == $justiceEvents[$x]>> - <<set $dump to $justiceEvents.pluck([$x], [$x])>> + <<set $dump = $justiceEvents.pluck([$x], [$x])>> <<break>> <</if>> <</for>> @@ -1178,30 +1152,30 @@ <</if>> <</if>> -<<set $REM to []>> +<<set $REM = []>> <<if random(1,100) > $slaveCostFactor*40>> <<set $events.push("REM fluctuations")>> <<set $events.push("REM fluctuations")>> - <<set $REM to 1>> + <<set $REM = 1>> <</if>> <<if random(1,100) < $slaveCostFactor*60>> <<set $events.push("REM fluctuations")>> <<set $events.push("REM fluctuations")>> - <<set $REM to -1>> + <<set $REM = -1>> <</if>> /* EVENT RANDOMIZATION */ -<<for $i to 0; $i < $RecETSevent.length; $i++>> +<<for $i = 0; $i < $RecETSevent.length; $i++>> <<set $events.push("RecETS")>> <</for>> -<<for $i to 0; $i < $REFIevent.length; $i++>> +<<for $i = 0; $i < $REFIevent.length; $i++>> <<set $events.push("REFI")>> <</for>> -<<for $i to 0; $i < $PESSevent.length; $i++>> +<<for $i = 0; $i < $PESSevent.length; $i++>> <<set $events.push("PESS")>> <</for>> -<<for $i to 0; $i < $PETSevent.length; $i++>> +<<for $i = 0; $i < $PETSevent.length; $i++>> <<set $events.push("PETS")>> <</for>> <<if $cheatMode == 1>> diff --git a/src/uncategorized/reCitizenHookup.tw b/src/uncategorized/reCitizenHookup.tw index c0debdc0dde5786ef79801da10824cd5e5bd50f4..cc1066ceff7b11054b8ad4b8ddad43b27a6001a9 100644 --- a/src/uncategorized/reCitizenHookup.tw +++ b/src/uncategorized/reCitizenHookup.tw @@ -75,7 +75,11 @@ But tonight, you've put in an appearance. Your citizens are drinking your <<if $ <<case "Gender Fundamentalist">> good-looking young lady <<case "Repopulationist">> - pretty, fertile young women with wide, child bearing hips + <<if $arcologies[0].FSRepopulationFocusLaw == 1>> + heavily pregnant, young lady + <<else>> + pretty, fertile young women with wide, child bearing hips + <</if>> <<case "Eugenics">> stunningly gorgeous woman <<case "Paternalist">> @@ -124,7 +128,11 @@ She's yours for the taking, if you want her, and if her praise and proximity wer <<case "Gender Fundamentalist">> press her flirting as far she can decorously take it, batting her eyes at you coquettishly. <<case "Repopulationist">> - press her hips up against your own, before leaning in and whispering "I'm ripe for breeding right now." + <<if $arcologies[0].FSRepopulationFocusLaw == 1>> + lean back just far enough that her full term, triplets rounded middle splits the front of her overly tight dress. + <<else>> + press her hips up against your own, before leaning in and whispering "I'm ripe for breeding right now." + <</if>> <<case "Eugenics">> give you an excellent view straight down her perfect cleavage, straining against the top of her name-brand dress. <<case "Paternalist">> @@ -187,7 +195,11 @@ She's clearly attracted to you; even the most consummate actress would have diff <<case "Gender Fundamentalist">> perky young breasts and an elegantly coiffed strip of hair that perfectly highlights her demure pussy. <<case "Repopulationist">> - a inexperienced body, but one with potential for becoming quite fecund. + <<if $arcologies[0].FSRepopulationFocusLaw == 1>> + an inexperience body undergoing its very first pregnancy. She's taken good care of herself; not a single stretchmark can be seen across the proportionatly giant belly. + <<else>> + an inexperienced body, but one with potential for becoming quite fecund. + <</if>> <<case "Eugenics">> a near flawless body; the only distinguishable mark on it: a small tattoo of a prestigious school. <<case "Paternalist">> @@ -231,7 +243,7 @@ She's clearly attracted to you; even the most consummate actress would have diff <</if>><</if>> When your guest is finally spent, she showers, dresses, and leaves discreetly, offering you a proper thank you. This is the kind of thing that @@color:green;builds a lasting reputation@@ in the Free Cities. <<set $rep += 1000>> - <<if _FS == "Repopulationist" && $PC.dick == 1>> + <<if _FS == "Repopulationist" && $PC.dick == 1 && $arcologies[0].FSRepopulationFocusLaw == 0 && (random(1,100) > 40)>> <<set $desc = "a tasteful morning-after message, with attached positive pregnancy test, from a pretty " + _FS + " citizen you bred">> <<set $trinkets.push($desc)>> <<elseif _FS != "none">> @@ -261,9 +273,15 @@ She's clearly attracted to you; even the most consummate actress would have diff femininity <<set $arcologies[0].FSGenderFundamentalist += 5>> <<case "Repopulationist">> - ready-to-be-bred body + <<if $arcologies[0].FSRepopulationFocusLaw == 1>> + fecund body + <<else>> + ready-to-be-bred body + <</if>> + <<set $arcologies[0].FSRepopulationFocus += 5>> <<case "Eugenics">> perfect body + <<set $arcologies[0].FSRestart += 5>> <<case "Paternalist">> appealing body <<set $arcologies[0].FSPaternalist += 5>> diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw index 121f569f3bcf69aca83a25a1070c36c429635794..ea4d5eea33eec8fd6db0e3d7e3033d26833b3f95 100644 --- a/src/uncategorized/reRelativeRecruiter.tw +++ b/src/uncategorized/reRelativeRecruiter.tw @@ -27,7 +27,9 @@ <<if $slaves[$i].ID is $slavesOriginal[$j].ID>> <<set $eventSlave to $slaves[$i]>> <<set $activeSlave to $slavesOriginal[$j]>> - <<break>> + <<if random(1,100) > 0+(totalRelatives($slaves[$i])*20)>> + <<break>> + <</if>> <</if>> <</for>> <</if>> @@ -45,7 +47,7 @@ <<if $eventSlave.father == 0 && $activeSlave.actualAge < 24 && $seeDicks != 0>> <<set $recruitedType.push("father")>> <</if>> -<<if $eventSlave.daughters < 3 && $activeSlave.actualAge > ($minimumSlaveAge+$fertilityAge) && isFertile($activeSlave)>> +<<if ($eventSlave.daughters < 3) && ($activeSlave.actualAge > ($minimumSlaveAge+$fertilityAge)) && isFertile($activeSlave)>> <<if $seeDicks != 100>> <<set $recruitedType.push("daughter")>> <<set $recruitedType.push("daughter")>> @@ -55,7 +57,7 @@ <</if>> <<set $tempMF = "mother">> <</if>> -<<if $eventSlave.daughters < 3 && $activeSlave.actualAge > ($minimumSlaveAge+$potencyAge) && $activeSlave.balls > 0>> +<<if ($eventSlave.daughters < 3) && $activeSlave.actualAge > ($minimumSlaveAge+$potencyAge) && $activeSlave.balls > 0>> <<if $seeDicks != 100>> <<set $recruitedType.push("daughter")>> <<set $recruitedType.push("daughter")>> @@ -65,7 +67,7 @@ <</if>> <<set $tempMF = "father">> <</if>> -<<if $eventSlave.sisters < 3>> +<<if ($eventSlave.sisters < 3)>> <<if $activeSlave.actualAge <= ($retirementAge-5)>> <<if $seeDicks != 100>> <<set $recruitedType.push("older sister")>> diff --git a/src/uncategorized/saDrugs.tw b/src/uncategorized/saDrugs.tw index 041f79ceab722f397575cf5af72db790c2fc6999..918bd1d03a9725e18b655427e5189e5342719efb 100644 --- a/src/uncategorized/saDrugs.tw +++ b/src/uncategorized/saDrugs.tw @@ -722,10 +722,11 @@ <</if>> <<case "labor supressors">> <<set $slaves[$i].chem += 2>> - <<if $slaves[$i].preg > 43>> + <<if $slaves[$i].preg > 44>> <<set $slaves[$i].health -= 20>> <<set $slaves[$i].labor = 1>> <<set $slaves[$i].induce = 1>> + <<set $birthee = 1>> $pronounCap has been ready to give birth for some time now. Supressing birth for so long @@color:red;greatly affects $possessive health@@. $pronounCap may @@color:red;have trouble@@ giving birth to $possessive oversized child. $pronounCap seems to be in distress, $possessive body is @@color:red;forcing her child out!@@ <<elseif $slaves[$i].preg > 40>> <<set $slaves[$i].health -= 20>> diff --git a/src/uncategorized/saPleaseYou.tw b/src/uncategorized/saPleaseYou.tw index 0954363b3c3664fd72c01ff65c6631ada766e2f7..2909f04e01abdf8759e1b5b64b8e923e9c6ce9b9 100644 --- a/src/uncategorized/saPleaseYou.tw +++ b/src/uncategorized/saPleaseYou.tw @@ -403,7 +403,7 @@ serves you this week. <<if ($PC.preg == 0) && ($PC.vagina == 1) && ($slaves[$i].ballType == "human")>> <<if random(1,100) > 50-($seed*10)>> <<set $PC.preg = 1>> - $PC.pregSource = $slaves[$i].ID; + <<$PC.pregSource = $slaves[$i].ID>> <</if>> <</if>> Rumors spread that you @@color:red;enjoy taking it from slaves.@@ diff --git a/src/uncategorized/schoolroom.tw b/src/uncategorized/schoolroom.tw index 2ab2832491bb7747e7c8c3efd8686de85612785a..95ade46f3218edbee9a3c15c4c4718a4146fdba2 100644 --- a/src/uncategorized/schoolroom.tw +++ b/src/uncategorized/schoolroom.tw @@ -108,7 +108,9 @@ $schoolroomNameCaps is well-equipped, with wall screens to display lessons. Thes <<include "Slave Summary">> <</if>> -<<if (_SL > _DL)>> +<<if $schoolroom <= _DL>> + <br><br>''$schoolroomNameCaps is full and cannot hold any more slaves'' +<<elseif (_SL > _DL)>> <br><br>''Send a slave to study in $schoolroomName:'' <<set $Flag = 0>> <<include "Slave Summary">> diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw index 63f4177e0afee3f6926270c83d5243cb4f31c695..5c3f2894ea94b9f2ca85294c11cd40a60d757fa1 100644 --- a/src/uncategorized/slaveAssignmentsReport.tw +++ b/src/uncategorized/slaveAssignmentsReport.tw @@ -287,7 +287,7 @@ <<if $fighterIDs.includes($slaves[_i])>> <<if canWalk($slaves[_i]) != true>> ''__@@color:pink;$slaves[_i].slaveName@@__'' is no longer independently mobile @@color:yellow;and cannot fight any more.@@ She has been removed from $pitName roster<br>. - <<for _k to 0; _k < $fighterIDs.length; _k++>> + <<for _k = 0; _k < $fighterIDs.length; _k++>> <<if $slaves[_i].ID == $fighterIDs[_k]>> <<set _dump = $fighterIDs.pluck([_k],[_k])>> <<set _k-->> @@ -397,13 +397,13 @@ __''Penthouse Report''__<br> <<if $slaves[$i].assignmentVisible == 1>> <<include "Full Report">> <<if ($slaves[$i].assignment == "be your Head Girl") && ($HGSuiteSlaves > 0)>> - <<set _iTemp = $i, $i = $HGSuiteiIDs.Index>> - <<if $HGSuiteiIDs.ID != $slaves[$i].ID>> + <<set _iTemp = $i, $i = $HGSuiteiIDs[0].Index>> + <<if $HGSuiteiIDs[0].ID != $slaves[$i].ID>> /% Slaves.ID and $HGSuiteiIDs.ID's don't match-up so let's find her %/ <<for _x = 0; _x < $slaves.length; _x++>> - <<if ($HGSuiteiIDs.ID == $slaves[_x].ID)>> + <<if ($HGSuiteiIDs[0].ID == $slaves[_x].ID)>> /% Correct the Index %/ - <<set $HGSuiteiIDs.Index = _x, $i = _x>> + <<set $HGSuiteiIDs[0].Index = _x, $i = _x>> <<break>> <</if>> <</for>> diff --git a/src/uncategorized/slaveSummary.tw b/src/uncategorized/slaveSummary.tw index d8618ff599fe3ffb19d7a0cfb31997687900987b..44561043c556934f1842dbebe8afba6accc40f8c 100644 --- a/src/uncategorized/slaveSummary.tw +++ b/src/uncategorized/slaveSummary.tw @@ -2,47 +2,47 @@ <<set _Pass = passage(), _DairyM = $dairySlaves+$bioreactorsXY+$bioreactorsXX+$bioreactorsHerm+$bioreactorsBarren, _SL = $slaves.length>> <<for _i = 0;_i < _SL;_i++>> -<<set _Slave to $slaves[_i]>> +<<set _Slave = $slaves[_i]>> <<switch _Pass>> <<case "Main">> <<if _Slave.assignmentVisible != 1>><<continue>><</if>> - <<if (_Slave.choosesOwnClothes == 1) && (_Slave.clothes is "choosing her own clothes")>> - <<set $i to _i>> + <<if (_Slave.choosesOwnClothes == 1) && (_Slave.clothes == "choosing her own clothes")>> + <<set $i = _i>> <<silently>><<include "SA chooses own clothes">><</silently>> - <<set _Slave to $slaves[_i]>> + <<set _Slave = $slaves[_i]>> <</if>> <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>> - <<if "be your Head Girl" is _Slave.assignment>>''HG'' - <<elseif "recruit girls" is _Slave.assignment>>''RC'' - <<elseif "guard you" is _Slave.assignment>>''BG'' + <<if "be your Head Girl" == _Slave.assignment>>''HG'' + <<elseif "recruit girls" == _Slave.assignment>>''RC'' + <<elseif "guard you" == _Slave.assignment>>''BG'' <</if>> - <<if $personalAttention is _Slave.ID>>''PA''<</if>> - <<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <<if $personalAttention == _Slave.ID>>''PA''<</if>> + <<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <<case "Personal Attention Select">> <<if (_Slave.assignmentVisible != 1) || (_Slave.fuckdoll > 0)>><<continue>><</if>> <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>> - <<print "[[_Slave.slaveName|Personal Attention Select][$personalAttention to $slaves["+_i+"].ID, $activeSlave to $slaves["+_i+"], $personalAttentionChanged to 1]]">> + <<print "[[_Slave.slaveName|Personal Attention Select][$personalAttention = $slaves["+_i+"].ID, $activeSlave = $slaves["+_i+"], $personalAttentionChanged = 1]]">> <<case "Agent Select">> <<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.assignment != "guard you") && (_Slave.assignment != "recruit girls") && (_Slave.assignment != "be your Head Girl") && (_Slave.devotion >= 20) && (_Slave.intelligence > 0) && (_Slave.intelligenceImplant > 0) && canWalk(_Slave) && canSee(_Slave) && canTalk(_Slave) && _Slave.pregType < 50 && _Slave.breedingMark != 1>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Agent Workaround][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Agent Workaround][$activeSlave = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<case "BG Select">> -<<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && (_Slave.assignment != "guard you") && (_Slave.assignment != "recruit girls") && (_Slave.assignment != "be your Head Girl") and canWalk(_Slave) and canSee(_Slave) && _Slave.breedingMark != 1>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Bodyguard Workaround][$Bodyguard to $slaves["+_i+"]]]">> +<<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && (_Slave.assignment != "guard you") && (_Slave.assignment != "recruit girls") && (_Slave.assignment != "be your Head Girl") && canWalk(_Slave) && canSee(_Slave) && _Slave.breedingMark != 1>> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Bodyguard Workaround][$Bodyguard = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<case "Recruiter Select">> -<<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && (_Slave.assignment != "guard you") && (_Slave.assignment != "recruit girls") && (_Slave.assignment != "be your Head Girl") and canWalk(_Slave) and canSee(_Slave) && canTalk(_Slave)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Recruiter Workaround][$Recruiter to $slaves["+_i+"]]]">> +<<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && (_Slave.assignment != "guard you") && (_Slave.assignment != "recruit girls") && (_Slave.assignment != "be your Head Girl") && canWalk(_Slave) && canSee(_Slave) && canTalk(_Slave)>> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Recruiter Workaround][$Recruiter = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<case "HG Select">> <<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && (_Slave.assignment != "guard you") && (_Slave.assignment != "recruit girls") && (_Slave.assignment != "be your Head Girl") && canWalk(_Slave) && canSee(_Slave) && canTalk(_Slave)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|HG Workaround][$HeadGirl to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|HG Workaround][$HeadGirl = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> @@ -50,7 +50,7 @@ <<if _Slave.fuckdoll > 0>><<continue>><</if>> <<if $Flag == 0>> <<if (_Slave.assignmentVisible == 1) && (_Slave.assignment != "be your Head Girl") && (_Slave.indentureRestrictions <= 0) && _Slave.breedingMark != 1>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> @@ -58,22 +58,22 @@ <<if _Slave.assignment != "live with your Head Girl">> <<continue>> <<else>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <</if>> <<case "Subordinate Targeting">> <<if (_Slave.devotion >= -20) && (_Slave.fuckdoll == 0) && ($activeSlave.ID != _Slave.ID)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Subordinate Targeting][$activeSlave.subTarget to $slaves["+_i+"].ID]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Subordinate Targeting][$activeSlave.subTarget = $slaves["+_i+"].ID]]">> <<else>> <<continue>> <</if>> <<case "Spa">> <<if _Slave.fuckdoll > 0>><<continue>><</if>> <<if $Flag == 0>> - <<if $spa <= $spaSlaves>><<continue>><</if>> + <<if _Slave.assignment == "rest in the spa">><<continue>><</if>> <<if (_Slave.health < 20) || (_Slave.trust < 60) || (_Slave.devotion <= 60) || (_Slave.fetish == "mindbroken")>> <<if _Slave.devotion >= -20 || _Slave.fetish == "mindbroken">> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <<else>> <br>//_Slave.slaveName cannot be trusted in the spa// <<continue>> @@ -86,28 +86,28 @@ <<if _Slave.assignment != "rest in the spa">> <<continue>> <<else>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <<else>> <<if _Slave.ID != $Attendant.ID>> <<continue>> <<else>> - <<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <</if>> <<case "Attendant Select">> <<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && canWalk(_Slave)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Attendant Workaround][$Attendant to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Attendant Workaround][$Attendant = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<case "Brothel">> <<if _Slave.fuckdoll > 0>><<continue>><</if>> <<if $Flag == 0>> - <<if $brothel <= $brothelSlaves>><<continue>><</if>> + <<if _Slave.assignment == "work in the brothel">><<continue>><</if>> <<if _Slave.breedingMark != 1>> <<if (_Slave.devotion > 50) || ((_Slave.devotion >= -50) && (_Slave.trust < -20)) || (_Slave.trust < -50) || (_Slave.trust > 50)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt $slaves[_i] 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves[" + _i + "]]]">> <<else>> <br>//_Slave.slaveName must be either more fearful of you or devoted to you// <<continue>> @@ -120,28 +120,28 @@ <<if _Slave.assignment != "work in the brothel">> <<continue>> <<else>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <<else>> <<if _Slave.ID != $Madam.ID>> <<continue>> <<else>> - <<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <</if>> <<case "Madam Select">> <<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && (_Slave.intelligence > -2) && canWalk(_Slave) && canSee(_Slave) && _Slave.breedingMark != 1>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Madam Workaround][$Madam to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Madam Workaround][$Madam = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<case "Club">> <<if _Slave.fuckdoll > 0>><<continue>><</if>> <<if $Flag == 0>> - <<if $club <= $clubSlaves>><<continue>><</if>> + <<if _Slave.assignment == "serve in the club">><<continue>><</if>> <<if _Slave.breedingMark != 1>> <<if (_Slave.devotion > 50) || ((_Slave.devotion >= -50) && (_Slave.trust < -20)) || (_Slave.trust < -50) || (_Slave.trust > 50)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <<else>> <br>//_Slave.slaveName must be either more fearful of you or devoted to you// <<continue>> @@ -154,27 +154,27 @@ <<if _Slave.assignment != "serve in the club">> <<continue>> <<else>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <<else>> <<if _Slave.ID != $DJ.ID>> <<continue>> <<else>> - <<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <</if>> <<case "DJ Select">> <<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && (_Slave.intelligence > -2) && canWalk(_Slave) && _Slave.breedingMark != 1>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|DJ Workaround][$DJ to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|DJ Workaround][$DJ = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<case "Clinic">> <<if _Slave.fuckdoll > 0>><<continue>><</if>> <<if $Flag == 0>> - <<if $clinic <= $clinicSlaves>><<continue>><</if>> + <<if _Slave.assignment == "get treatment in the clinic">><<continue>><</if>> <<if (_Slave.health < 20) || ((_Slave.chem > 15) && ($clinicUpgradeFilters == 1)) || ((_Slave.bellyImplant > 100) && ($bellyImplants == 1)) || _Slave.preg > 1>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <<else>> <br>//_Slave.slaveName cannot benefit from the clinic// <<continue>> @@ -183,28 +183,28 @@ <<if _Slave.assignment != "get treatment in the clinic">> <<continue>> <<else>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <<else>> <<if _Slave.ID != $Nurse.ID>> <<continue>> <<else>> - <<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <</if>> <<case "Nurse Select">> <<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && canWalk(_Slave) && canSee(_Slave)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Nurse Workaround][$Nurse to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Nurse Workaround][$Nurse = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<case "Schoolroom">> <<if _Slave.fuckdoll > 0>><<continue>><</if>> <<if $Flag == 0>> - <<if $schoolroom <= $schoolroomSlaves>><<continue>><</if>> + <<if _Slave.assignment == "learn in the schoolroom">><<continue>><</if>> <<if (_Slave.devotion >= -20) || ((_Slave.devotion >= -50) && (_Slave.trust < -20)) || (_Slave.trust < -50)>> <<if (_Slave.intelligenceImplant < 1) || (_Slave.accent+$schoolroomUpgradeLanguage > 2) || (_Slave.oralSkill <= 10) || (_Slave.whoreSkill <= 10) || (_Slave.entertainSkill <= 10) || (_Slave.analSkill < 1) || ((_Slave.vaginalSkill < 1) && (_Slave.vagina > 0))>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <<else>> <br>//_Slave.slaveName already has a basic education// <<continue>> @@ -217,25 +217,25 @@ <<if _Slave.assignment != "learn in the schoolroom">> <<continue>> <<else>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <<else>> <<if _Slave.ID != $Schoolteacher.ID>> <<continue>> <<else>> - <<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <</if>> <<case "Schoolteacher Select">> <<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && canTalk(_Slave) && canWalk(_Slave) && canSee(_Slave)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Schoolteacher Workaround][$Schoolteacher to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Schoolteacher Workaround][$Schoolteacher = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<case "Dairy">> <<if _Slave.fuckdoll > 0>><<continue>><</if>> <<if $Flag == 0>> - <<if $dairy <= $dairySlaves+$bioreactorsXY+$bioreactorsXX+$bioreactorsHerm+$bioreactorsBarren>><<continue>><</if>> + <<if _Slave.assignment == "work in the dairy">><<continue>><</if>> <<if (_Slave.indentureRestrictions > 0) && ($dairyRestraintsSetting > 1)>> <br>//_Slave.slaveName's indenture forbids extractive Dairy service.// <<continue>> @@ -253,7 +253,7 @@ <<if (_Slave.devotion > 20) || ((_Slave.devotion >= -50) && (_Slave.trust < -20)) || (_Slave.trust < -50) || (_Slave.amp == 1) || ($dairyRestraintsUpgrade == 1)>> <<if ($dairyStimulatorsSetting < 2) || (_Slave.anus > 2) || ($dairyPrepUpgrade == 1)>> <<if ($dairyPregSetting < 2) || (_Slave.vagina > 2) || (_Slave.ovaries == 0) || ($dairyPrepUpgrade == 1)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <<else>> <br>//_Slave.slaveName's vagina cannot accommodate current machine settings// <<continue>> @@ -278,18 +278,18 @@ <<if _Slave.assignment != "work in the dairy">> <<continue>> <<else>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <<else>> <<if _Slave.ID != $Milkmaid.ID>> <<continue>> <<else>> - <<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <</if>> <<case "Milkmaid Select">> <<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 20) && canWalk(_Slave) && canSee(_Slave)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Milkmaid Workaround][$Milkmaid to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Milkmaid Workaround][$Milkmaid = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> @@ -298,7 +298,7 @@ <<if $Flag == 0>> <<if ($slaves[_i].assignmentVisible != 1) || ($servantsQuarters <= $servantsQuartersSlaves)>><<continue>><</if>> <<if (_Slave.devotion >= -20) || ((_Slave.devotion >= -50) && (_Slave.trust <= 20)) || (_Slave.trust < -20)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <<else>> <br>//_Slave.slaveName must be either more fearful of you or devoted to you// <<continue>> @@ -307,26 +307,26 @@ <<if _Slave.assignment != "work as a servant">> <<continue>> <<else>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <<else>> <<if _Slave.ID != $Stewardess.ID>> <<continue>> <<else>> - <<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <</if>> <<case "Stewardess Select">> <<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && (_Slave.intelligence > -2) && canWalk(_Slave) && canSee(_Slave)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Stewardess Workaround][$Stewardess to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Stewardess Workaround][$Stewardess = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<case "Master Suite">> <<if $Flag == 0>> - <<if $masterSuite <= $masterSuiteSlaves>><<continue>><</if>> + <<if _Slave.assignment == "serve in the master suite">><<continue>><</if>> <<if (_Slave.devotion > 20) || ((_Slave.devotion >= -50) && (_Slave.trust < -20)) || (_Slave.trust < -50)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <<else>> <br>//_Slave.slaveName is not sufficiently broken for the master suite// <<continue>> @@ -336,26 +336,26 @@ <<continue>> <<else>> <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>> - <<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <<else>> <<if _Slave.ID != $Concubine.ID>> <<continue>> <<else>> - <<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <</if>> <<case "Concubine Select">> <<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && _Slave.amp != 1>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Concubine Workaround][$Concubine to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Concubine Workaround][$Concubine = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<case "Cellblock">> <<if $Flag == 0>> - <<if $cellblock <= $cellblockSlaves>><<continue>><</if>> + <<if _Slave.assignment == "be confined in the cellblock">><<continue>><</if>> <<if ((_Slave.devotion < -20) && (_Slave.trust >= -20)) || ((_Slave.devotion < -50) && (_Slave.trust >= -50))>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> @@ -363,19 +363,19 @@ <<if _Slave.assignment != "be confined in the cellblock">> <<continue>> <<else>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <<else>> <<if _Slave.ID != $Wardeness.ID>> <<continue>> <<else>> - <<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <</if>> <<case "Wardeness Select">> <<if (_Slave.assignmentVisible == 1) && (_Slave.fuckdoll == 0) && (_Slave.devotion > 50) && canWalk(_Slave) & canSee(_Slave)>> <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>> - <<print "[[_Slave.slaveName|Wardeness Workaround][$Wardeness to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Wardeness Workaround][$Wardeness = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> @@ -384,7 +384,7 @@ <<if (_Slave.assignmentVisible != 1) || (($arcade <= $arcadeSlaves) && ($arcadeUpgradeFuckdolls != 1))>><<continue>><</if>> <<if _Slave.breedingMark != 1>> <<if (_Slave.indentureRestrictions <= 0)>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <<else>> <br>//_Slave.slaveName's indenture forbids arcade service.// <<continue>> @@ -397,7 +397,7 @@ <<if _Slave.assignment != "be confined in the arcade">> <<continue>> <<else>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</if>> <</if>> <<case "Pit">> @@ -465,14 +465,14 @@ <<if $Flag == 0>> <<if !ruleSlaveSelected(_Slave, $currentRule)>> <br>__'' - <<print "[[_Slave.slaveName|Rules Slave Select Workaround][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Rules Slave Select Workaround][$activeSlave = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<else>> <<if ruleSlaveSelected(_Slave, $currentRule)>> <br>__'' - <<print "[[_Slave.slaveName|Rules Slave Deselect Workaround][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Rules Slave Deselect Workaround][$activeSlave = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> @@ -481,24 +481,24 @@ <<if $Flag == 0>> <<if !ruleSlaveExcluded(_Slave, $currentRule)>> <br>__'' - <<print "[[_Slave.slaveName|Rules Slave Exclude Workaround][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Rules Slave Exclude Workaround][$activeSlave = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <<else>> <<if ruleSlaveExcluded(_Slave, $currentRule)>> <br>__'' - <<print "[[_Slave.slaveName|Rules Slave NoExclude Workaround][$activeSlave to $slaves["+_i+"]]]">> + <<print "[[_Slave.slaveName|Rules Slave NoExclude Workaround][$activeSlave = $slaves["+_i+"]]]">> <<else>> <<continue>> <</if>> <</if>> <<case "Matchmaking">> <<if ($slaves[_i].assignmentVisible != 1) || ($slaves[_i].devotion < 100) || ($slaves[_i].relationship != $activeSlave.relationship) || ($slaves[_i].ID == $activeSlave.ID)>><<continue>><</if>> - <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave to $slaves["+_i+"]]]">> + <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if $seeImages == 1>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>><<print "[[_Slave.slaveName|Slave Interact][$activeSlave = $slaves["+_i+"]]]">> <</switch>> -<<set _Slave.energy to Math.clamp(_Slave.energy, 0, 100)>> +<<set _Slave.energy = Math.clamp(_Slave.energy, 0, 100)>> <<if _Slave.devotion > 100>> <<if _Slave.trust < -95>> @@ -531,82 +531,82 @@ <<set _Slave.devotion = Math.trunc(_Slave.devotion)>> <<set _Slave.health = Math.trunc(_Slave.health)>> -<<set $slaves[_i] to _Slave>> +<<set $slaves[_i] = _Slave>> will -<<if (_Slave.assignment is "rest") && (_Slave.health >= -20)>> +<<if (_Slave.assignment == "rest") && (_Slave.health >= -20)>> ''__@@color:lawngreen;rest.@@__'' -<<elseif (_Slave.assignment is "stay confined") && ((_Slave.devotion > 20) || ((_Slave.trust < -20) && (_Slave.devotion >= -20)) || ((_Slave.trust < -50) && (_Slave.devotion >= -50)))>> +<<elseif (_Slave.assignment == "stay confined") && ((_Slave.devotion > 20) || ((_Slave.trust < -20) && (_Slave.devotion >= -20)) || ((_Slave.trust < -50) && (_Slave.devotion >= -50)))>> ''__@@color:lawngreen;stay confined.@@__'' <<else>> _Slave.assignment<<if _Slave.sentence > 0>> (_Slave.sentence)<</if>>. <</if>> <<if $displayAssignments == 1>> -<<if _Pass is "Main">> +<<if _Pass == "Main">> <<if (_Slave.ID != $HeadGirl.ID) && (_Slave.ID != $Recruiter.ID) && (_Slave.ID != $Bodyguard.ID)>> <<if _Slave.assignment != "rest">> - <<print "[[Rest|Rest Workaround][$activeSlave to $slaves[" + _i + "]]]">> | + <<print "[[Rest|Rest Workaround][$activeSlave = $slaves[" + _i + "]]]">> | <<else>> Rest | <</if>> <<if _Slave.assignment != "please you">> - <<print "[[Fucktoy|Fucktoy Workaround][$activeSlave to $slaves[" + _i + "]]]">> | + <<print "[[Fucktoy|Fucktoy Workaround][$activeSlave = $slaves[" + _i + "]]]">> | <<else>> Fucktoy | <</if>> <<if (_Slave.assignment != "be a servant") && (_Slave.fuckdoll == 0)>> - <<if ((_Slave.devotion >= -20) || ((_Slave.trust < -20) && (_Slave.devotion >= -50)) || (_Slave.trust < -50)) and canWalk(_Slave) and canWalk(_Slave)>> - <<print "[[House Servant|Servant Workaround][$activeSlave to $slaves[" + _i + "]]]">> | + <<if ((_Slave.devotion >= -20) || ((_Slave.trust < -20) && (_Slave.devotion >= -50)) || (_Slave.trust < -50)) && canWalk(_Slave) && canWalk(_Slave)>> + <<print "[[House Servant|Servant Workaround][$activeSlave = $slaves[" + _i + "]]]">> | <</if>> <<else>> Servant | <</if>> <<if (_Slave.assignment != "take classes") && (_Slave.fuckdoll == 0)>> <<if ((_Slave.devotion >= -20) || ((_Slave.trust < -20) && (_Slave.devotion >= -50)) || (_Slave.trust < -50)) && (_Slave.fetish != "mindbroken") && (_Slave.intelligenceImplant != 1)>> - <<print "[[Classes|Classes Workaround][$activeSlave to $slaves[" + _i + "]]]">> | + <<print "[[Classes|Classes Workaround][$activeSlave = $slaves[" + _i + "]]]">> | <</if>> <<else>> Classes | <</if>> <<if (_Slave.assignment != "stay confined") && (_Slave.fuckdoll == 0)>> - <<print "[[Confinement|Confinement Workaround][$activeSlave to $slaves[" + _i + "]]]">> | + <<print "[[Confinement|Confinement Workaround][$activeSlave = $slaves[" + _i + "]]]">> | <<else>> Confinement | <</if>> <<if (_Slave.assignment != "whore") && (_Slave.fuckdoll == 0)>> - <<print "[[Whore|Whore Workaround][$activeSlave to $slaves[" + _i + "]]]">> | + <<print "[[Whore|Whore Workaround][$activeSlave = $slaves[" + _i + "]]]">> | <<else>> Whore | <</if>> <<if (_Slave.assignment != "serve the public") && (_Slave.fuckdoll == 0)>> - <<print "[[Public Servant|Public Servant Workaround][$activeSlave to $slaves[" + _i + "]]]">> | + <<print "[[Public Servant|Public Servant Workaround][$activeSlave = $slaves[" + _i + "]]]">> | <<else>> Public Servant | <</if>> <<if (_Slave.lactation > 0) || (_Slave.balls > 0)>> <<if (_Slave.assignment != "get milked") && (_Slave.fuckdoll == 0)>> - <<print "[[Milking|Milking Workaround][$activeSlave to $slaves[" + _i + "]]]">> | + <<print "[[Milking|Milking Workaround][$activeSlave = $slaves[" + _i + "]]]">> | <<else>> Milking | <</if>> <</if>> <<if _Slave.indentureRestrictions <= 0>> <<if _Slave.assignment != "work a glory hole">> - <<print "[[Hole|Hole Workaround][$activeSlave to $slaves[" + _i + "]]]">> + <<print "[[Hole|Hole Workaround][$activeSlave = $slaves[" + _i + "]]]">> <<else>> Hole <</if>> <</if>> <</if>> <</if>> -<<set _Slave to $slaves[_i]>> +<<set _Slave = $slaves[_i]>> <</if>> <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>> <<if $abbreviateDevotion == 1>> - <<if _Slave.fetish is "mindbroken">>@@color:red;MB@@ + <<if _Slave.fetish == "mindbroken">>@@color:red;MB@@ <<elseif _Slave.devotion < -95>>@@color:darkviolet;VHate [_Slave.devotion]@@ <<elseif _Slave.devotion < -50>>@@color:darkviolet;Hate [_Slave.devotion]@@ <<elseif _Slave.devotion < -20>>@@color:mediumorchid;Res [_Slave.devotion]@@ @@ -615,7 +615,7 @@ will <<elseif _Slave.devotion <= 95>>@@color:deeppink;Devo [_Slave.devotion]@@ <<else>>@@color:magenta;Wor [_Slave.devotion]@@ <</if>> - <<if _Slave.fetish is "mindbroken">> + <<if _Slave.fetish == "mindbroken">> <<elseif _Slave.trust < -95>>@@color:goldenrod;ETerr [_Slave.trust]@@ <<elseif _Slave.trust < -50>>@@color:goldenrod;Terr [_Slave.trust]@@ <<elseif _Slave.trust < -20>>@@color:gold;Fright [_Slave.trust]@@ @@ -624,8 +624,8 @@ will <<elseif _Slave.trust < 95>>@@color:mediumseagreen;Trust [_Slave.trust]@@ <<else>>@@color:seagreen;VTrust [_Slave.trust]@@ <</if>> -<<elseif $abbreviateDevotion is 2>> - <<if _Slave.fetish is "mindbroken">>@@color:red;Mindbroken.@@ +<<elseif $abbreviateDevotion == 2>> + <<if _Slave.fetish == "mindbroken">>@@color:red;Mindbroken.@@ <<elseif _Slave.devotion < -95>>@@color:darkviolet;Very hateful.@@ <<elseif _Slave.devotion < -50>>@@color:darkviolet;Hateful.@@ <<elseif _Slave.devotion < -20>>@@color:mediumorchid;Resistant.@@ @@ -634,7 +634,7 @@ will <<elseif _Slave.devotion <= 95>>@@color:deeppink;Devoted.@@ <<else>>@@color:magenta;Worshipful.@@ <</if>> - <<if _Slave.fetish is "mindbroken">> + <<if _Slave.fetish == "mindbroken">> <<elseif _Slave.trust < -95>>@@color:goldenrod;Extremely terrified.@@ <<elseif _Slave.trust < -50>>@@color:goldenrod;Terrified.@@ <<elseif _Slave.trust < -20>>@@color:gold;Frightened.@@ @@ -645,7 +645,7 @@ will <</if>> <</if>> -<<set $slaves[_i] to _Slave>> +<<set $slaves[_i] = _Slave>> <<if _Slave.fuckdoll == 0>> <<if $abbreviateRules == 1>> <<switch _Slave.livingRules>> @@ -704,7 +704,7 @@ will <<default>> ''MaR:R'' <</switch>> -<<elseif $abbreviateRules is 2>> +<<elseif $abbreviateRules == 2>> Living standard: _Slave.livingRules. <<if canTalk(_Slave)>>Speech rules: _Slave.speechRules.<</if>> Relationship rules: _Slave.relationshipRules. @@ -769,7 +769,7 @@ Release rules: _Slave.releaseRules. <<elseif (_Slave.dietMilk == 2)>> ''Milk++'' <</if>> -<<elseif $abbreviateDiet is 2>> +<<elseif $abbreviateDiet == 2>> <<if _Slave.weight < -95>> @@color:red;Emaciated.@@ <<elseif _Slave.weight < -30>> @@ -831,7 +831,7 @@ Release rules: _Slave.releaseRules. <<elseif _Slave.health > 20>> ''@@color:green;H [_Slave.health]@@'' <</if>> -<<elseif $abbreviateHealth is 2>> +<<elseif $abbreviateHealth == 2>> <<if _Slave.health < -90>> @@color:red;On the edge of death.@@ <<elseif _Slave.health < -50>> @@ -964,7 +964,7 @@ Release rules: _Slave.releaseRules. <<elseif _Slave.inflation == 1>> ''2 ltr _Slave.inflationType'' <</if>> -<<elseif $abbreviateDrugs is 2>> +<<elseif $abbreviateDrugs == 2>> <<if (_Slave.drugs != "no drugs") && (_Slave.drugs != "none")>> On _Slave.drugs. <</if>> @@ -1015,9 +1015,9 @@ Release rules: _Slave.releaseRules. _Slave.pregType babies. <<elseif _Slave.pregType > 4>> quintuplets. - <<elseif _Slave.pregType is 4>> + <<elseif _Slave.pregType == 4>> quadruplets. - <<elseif _Slave.pregType is 3>> + <<elseif _Slave.pregType == 3>> triplets. <<else>> twins. @@ -1044,10 +1044,10 @@ Release rules: _Slave.releaseRules. <</if>> <<SlaveTitle _Slave>> -<<set $seed to $desc.substring(0,1)>> -<<set $seed to $seed.toUpperCase()>> -<<set $desc to $seed + $desc.substring(1)>> -''@@color:coral;$desc<<if $abbreviatePhysicals is 2>>.<</if>>@@'' +<<set $seed = $desc.substring(0,1)>> +<<set $seed = $seed.toUpperCase()>> +<<set $desc = $seed + $desc.substring(1)>> +''@@color:coral;$desc<<if $abbreviatePhysicals == 2>>.<</if>>@@'' <<if $abbreviateNationality == 1>> ''@@color:tan; @@ -1252,7 +1252,7 @@ Release rules: _Slave.releaseRules. <<print _Slave.nationality.charAt(0) + _Slave.nationality.charAt(1) + _Slave.nationality.charAt(2)>> <</switch>> @@'' -<<elseif $abbreviateNationality is 2>> +<<elseif $abbreviateNationality == 2>> ''@@color:tan; <<switch _Slave.nationality>> <<case "Zimbabwean">> @@ -1300,7 +1300,7 @@ Release rules: _Slave.releaseRules. <<default>> <<print _Slave.race.charAt(0).toUpperCase() + _Slave.race.charAt(1) + _Slave.race.charAt(2)>> <</switch>>'' -<<elseif $abbreviateRace is 2>> +<<elseif $abbreviateRace == 2>> ''<<switch _Slave.race>> <<case "white">> Caucasian. @@ -1386,7 +1386,7 @@ Release rules: _Slave.releaseRules. <</if>> <<if _Slave.vagina == 0>> @@color:lime;VV@@ -<<elseif (_Slave.preg > 0) and canWalk(_Slave) && (_Slave.clothes is "no clothing") && (_Slave.shoes is "none")>> +<<elseif (_Slave.preg > 0) && canWalk(_Slave) && (_Slave.clothes == "no clothing") && (_Slave.shoes == "none")>> @@color:pink;NBP@@ <</if>> <<if _Slave.anus == 0>> @@ -1407,7 +1407,7 @@ Release rules: _Slave.releaseRules. A+ <</if>> @@'' -<<elseif $abbreviateGenitalia is 2>> +<<elseif $abbreviateGenitalia == 2>> <<if _Slave.dick > 0>> @@color:pink; <<if _Slave.balls == 0>> @@ -1440,7 +1440,7 @@ Release rules: _Slave.releaseRules. <</if>> <<if _Slave.vagina == 0>> @@color:lime;Virgin.@@ -<<elseif (_Slave.preg > 0) and canWalk(_Slave) && (_Slave.clothes is "no clothing") && (_Slave.shoes is "none")>> +<<elseif (_Slave.preg > 0) && canWalk(_Slave) && (_Slave.clothes == "no clothing") && (_Slave.shoes == "none")>> @@color:pink;Naked, barefoot, and pregnant.@@ <</if>> <<if _Slave.anus == 0>> @@ -1502,9 +1502,9 @@ Release rules: _Slave.releaseRules. <<default>> Face <</switch>> -<<if _Slave.eyes is -2>> +<<if _Slave.eyes == -2>> @@color:red;Blind@@ -<<elseif _Slave.eyes is -1>> +<<elseif _Slave.eyes == -1>> <<if (_Slave.eyewear != "corrective glasses")>> <<if (_Slave.eyewear != "corrective contacts")>> @@color:yellow;Sight-@@ @@ -1524,15 +1524,15 @@ Release rules: _Slave.releaseRules. <<else>> @@color:red;Lips-@@ <</if>> -<<if _Slave.teeth is "crooked">> +<<if _Slave.teeth == "crooked">> @@color:yellow;Cr Teeth@@ -<<elseif _Slave.teeth is "cosmetic braces">> +<<elseif _Slave.teeth == "cosmetic braces">> Cos Braces -<<elseif _Slave.teeth is "straightening braces">> +<<elseif _Slave.teeth == "straightening braces">> Braces -<<elseif _Slave.teeth is "removable">> +<<elseif _Slave.teeth == "removable">> Rem Teeth -<<elseif _Slave.teeth is "pointy">> +<<elseif _Slave.teeth == "pointy">> Fangs <</if>> <<if _Slave.muscles > 95>> @@ -1574,11 +1574,11 @@ Release rules: _Slave.releaseRules. <<if _Slave.voice == 0>> @@color:pink;Mute@@ <<else>> - <<if _Slave.accent is 3>> + <<if _Slave.accent == 3>> @@color:red;Acc--@@ - <<elseif _Slave.accent is 2>> + <<elseif _Slave.accent == 2>> Acc- - <<elseif _Slave.accent is 4>> + <<elseif _Slave.accent == 4>> Acc-- <<elseif _Slave.accent == 1>> @@color:pink;Acc@@ @@ -1683,7 +1683,7 @@ Release rules: _Slave.releaseRules. Br <</if>> @@'' -<<elseif $abbreviatePhysicals is 2>> +<<elseif $abbreviatePhysicals == 2>> @@color:pink; <<if $showAgeDetail == 1>> Age _Slave.actualAge. @@ -1745,15 +1745,15 @@ _Slave.faceShape face. <<else>> @@color:red;Thin lips.@@ <</if>> -<<if _Slave.teeth is "crooked">> +<<if _Slave.teeth == "crooked">> @@color:yellow;Crooked teeth.@@ -<<elseif _Slave.teeth is "cosmetic braces">> +<<elseif _Slave.teeth == "cosmetic braces">> Cosmetic braces. -<<elseif _Slave.teeth is "straightening braces">> +<<elseif _Slave.teeth == "straightening braces">> Braces. -<<elseif _Slave.teeth is "removable">> +<<elseif _Slave.teeth == "removable">> Removable teeth. -<<elseif _Slave.teeth is "pointy">> +<<elseif _Slave.teeth == "pointy">> Sharp fangs. <</if>> <<if _Slave.muscles > 95>> @@ -1795,11 +1795,11 @@ _Slave.faceShape face. <<if _Slave.voice == 0>> @@color:pink;Mute.@@ <<else>> -<<if _Slave.accent is 3>> +<<if _Slave.accent == 3>> @@color:red;Bad accent.@@ -<<elseif _Slave.accent is 4>> +<<elseif _Slave.accent == 4>> @@color:red;No language skills.@@ -<<elseif _Slave.accent is 2>> +<<elseif _Slave.accent == 2>> Accent. <<elseif _Slave.accent == 1>> @@color:pink;Cute accent.@@ @@ -1911,7 +1911,7 @@ _Slave.faceShape face. <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>> <<if $abbreviateSkills == 1>> -''<<if _Slave.fetish is "mindbroken">> +''<<if _Slave.fetish == "mindbroken">> <<elseif _Slave.intelligenceImplant == 1>> <<switch _Slave.intelligence>> <<case 3>> @@ -1948,7 +1948,7 @@ _Slave.faceShape face. <</switch>> <</if>> -<<set _SSkills to (_Slave.analSkill+_Slave.oralSkill)>> +<<set _SSkills = (_Slave.analSkill+_Slave.oralSkill)>> @@color:aquamarine; <<if ((_SSkills+_Slave.whoreSkill+_Slave.entertainSkill) >= 400) && ((_Slave.vagina < 0) || (_Slave.vaginalSkill >= 100))>> MSS @@ -1990,15 +1990,15 @@ _Slave.faceShape face. @@color:green; <<if _Slave.prestige > 2>> Prest++ -<<elseif _Slave.prestige is 2>> +<<elseif _Slave.prestige == 2>> Prest+ <<elseif _Slave.prestige == 1>> Prest <</if>> @@ <</if>>'' -<<elseif $abbreviateSkills is 2>> -<<if _Slave.fetish is "mindbroken">> +<<elseif $abbreviateSkills == 2>> +<<if _Slave.fetish == "mindbroken">> <<elseif _Slave.intelligenceImplant == 1>> <<switch _Slave.intelligence>> <<case 3>> @@ -2034,7 +2034,7 @@ _Slave.faceShape face. Average intelligence. <</switch>> <</if>> -<<set _SSkills to (_Slave.analSkill+_Slave.oralSkill)>> +<<set _SSkills = (_Slave.analSkill+_Slave.oralSkill)>> @@color:aquamarine; <<if ((_SSkills+_Slave.whoreSkill+_Slave.entertainSkill) >= 400) && ((_Slave.vagina < 0) || (_Slave.vaginalSkill >= 100))>> Masterful Sex Slave. @@ -2076,7 +2076,7 @@ _Slave.faceShape face. @@color:green; <<if _Slave.prestige > 2>> Extremely prestigious. -<<elseif _Slave.prestige is 2>> +<<elseif _Slave.prestige == 2>> Very prestigious. <<elseif _Slave.prestige == 1>> Prestigious. @@ -2222,33 +2222,33 @@ _Slave.faceShape face. <</if>> <</if>> <</if>> -<<if _Slave.clitPiercing is 3>> +<<if _Slave.clitPiercing == 3>> <<if _Slave.fetishKnown == 1>> -<<if _Slave.clitSetting is "off">> +<<if _Slave.clitSetting == "off">> SP- -<<elseif ((_Slave.fetish != "submissive") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "submissive")>> +<<elseif ((_Slave.fetish != "submissive") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "submissive")>> SP:sub -<<elseif ((_Slave.fetish != "cumslut") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "oral")>> +<<elseif ((_Slave.fetish != "cumslut") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "oral")>> SP:oral -<<elseif ((_Slave.fetish != "humiliation") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "humiliation")>> +<<elseif ((_Slave.fetish != "humiliation") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "humiliation")>> SP:humil -<<elseif ((_Slave.fetish != "buttslut") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "anal")>> +<<elseif ((_Slave.fetish != "buttslut") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "anal")>> SP:anal -<<elseif ((_Slave.fetish != "boobs") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "boobs")>> +<<elseif ((_Slave.fetish != "boobs") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "boobs")>> SP:boobs -<<elseif ((_Slave.fetish != "sadist") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "sadist")>> +<<elseif ((_Slave.fetish != "sadist") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "sadist")>> SP:sade -<<elseif ((_Slave.fetish != "masochist") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "masochist")>> +<<elseif ((_Slave.fetish != "masochist") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "masochist")>> SP:pain -<<elseif ((_Slave.fetish != "dom") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "dom")>> +<<elseif ((_Slave.fetish != "dom") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "dom")>> SP:dom -<<elseif ((_Slave.fetish != "pregnancy") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "pregnancy")>> +<<elseif ((_Slave.fetish != "pregnancy") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "pregnancy")>> SP:preg -<<elseif ((_Slave.fetish != "none") && (_Slave.clitSetting is "vanilla"))>> +<<elseif ((_Slave.fetish != "none") && (_Slave.clitSetting == "vanilla"))>> SP:vanilla -<<elseif (_Slave.energy <= 95) && (_Slave.clitSetting is "all")>> +<<elseif (_Slave.energy <= 95) && (_Slave.clitSetting == "all")>> SP:all -<<elseif (_Slave.energy > 5) && (_Slave.clitSetting is "none")>> +<<elseif (_Slave.energy > 5) && (_Slave.clitSetting == "none")>> SP:none <</if>> <<else>> @@ -2284,15 +2284,15 @@ _Slave.faceShape face. <</switch>> <</if>> <<if _Slave.attrKnown == 1>> -<<if (_Slave.attrXX < 100) && (_Slave.clitSetting is "women")>> +<<if (_Slave.attrXX < 100) && (_Slave.clitSetting == "women")>> SP:women -<<elseif (_Slave.attrXY < 100) && (_Slave.clitSetting is "men")>> +<<elseif (_Slave.attrXY < 100) && (_Slave.clitSetting == "men")>> SP:men <</if>> <<else>> -<<if _Slave.clitSetting is "women">> +<<if _Slave.clitSetting == "women">> SP:women -<<elseif _Slave.clitSetting is "men">> +<<elseif _Slave.clitSetting == "men">> SP:men <</if>> <</if>> @@ -2318,7 +2318,7 @@ _Slave.faceShape face. <<case "liberated">> Lib <<default>> - <<set _Slave.behavioralFlaw to "none">> + <<set _Slave.behavioralFlaw = "none">> <</switch>> @@ <<switch _Slave.sexualFlaw>> @@ -2359,7 +2359,7 @@ _Slave.faceShape face. <<case "breeder">> @@color:yellow;BreedObsess@@ <<default>> - <<set _Slave.sexualFlaw to "none">> + <<set _Slave.sexualFlaw = "none">> <</switch>> @@color:green; <<switch _Slave.behavioralQuirk>> @@ -2382,7 +2382,7 @@ _Slave.faceShape face. <<case "advocate">> Advoc <<default>> - <<set _Slave.behavioralQuirk to "none">> + <<set _Slave.behavioralQuirk = "none">> <</switch>> <<switch _Slave.sexualQuirk>> <<case "gagfuck queen">> @@ -2404,10 +2404,10 @@ _Slave.faceShape face. <<case "size queen">> SizeQ <<default>> - <<set _Slave.sexualQuirk to "none">> + <<set _Slave.sexualQuirk = "none">> <</switch>> @@ -<<elseif $abbreviateMental is 2>> +<<elseif $abbreviateMental == 2>> <<if _Slave.fetish != "mindbroken">> <<if _Slave.fetishKnown == 1>> @@color:lightcoral; @@ -2543,33 +2543,33 @@ _Slave.faceShape face. <</if>> <</if>> <</if>> -<<if _Slave.clitPiercing is 3>> +<<if _Slave.clitPiercing == 3>> <<if _Slave.fetishKnown == 1>> -<<if _Slave.clitSetting is "off">> +<<if _Slave.clitSetting == "off">> SP off. -<<elseif ((_Slave.fetish != "submissive") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "submissive")>> +<<elseif ((_Slave.fetish != "submissive") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "submissive")>> SP: submissive. -<<elseif ((_Slave.fetish != "cumslut") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "oral")>> +<<elseif ((_Slave.fetish != "cumslut") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "oral")>> SP: oral. -<<elseif ((_Slave.fetish != "humiliation") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "humiliation")>> +<<elseif ((_Slave.fetish != "humiliation") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "humiliation")>> SP: humiliation. -<<elseif ((_Slave.fetish != "buttslut") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "anal")>> +<<elseif ((_Slave.fetish != "buttslut") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "anal")>> SP: anal. -<<elseif ((_Slave.fetish != "boobs") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "boobs")>> +<<elseif ((_Slave.fetish != "boobs") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "boobs")>> SP: breasts. -<<elseif ((_Slave.fetish != "sadist") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "sadist")>> +<<elseif ((_Slave.fetish != "sadist") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "sadist")>> SP: sadism. -<<elseif ((_Slave.fetish != "masochist") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "masochist")>> +<<elseif ((_Slave.fetish != "masochist") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "masochist")>> SP: masochism. -<<elseif ((_Slave.fetish != "dom") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "dom")>> +<<elseif ((_Slave.fetish != "dom") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "dom")>> SP: dominance. -<<elseif ((_Slave.fetish != "pregnancy") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting is "pregnancy")>> +<<elseif ((_Slave.fetish != "pregnancy") || (_Slave.fetishStrength <= 95)) && (_Slave.clitSetting == "pregnancy")>> SP: pregnancy. -<<elseif (_Slave.fetish != "none") && (_Slave.clitSetting is "vanilla")>> +<<elseif (_Slave.fetish != "none") && (_Slave.clitSetting == "vanilla")>> SP: vanilla. -<<elseif (_Slave.energy <= 95) && (_Slave.clitSetting is "all")>> +<<elseif (_Slave.energy <= 95) && (_Slave.clitSetting == "all")>> SP: all. -<<elseif (_Slave.energy > 5) && (_Slave.clitSetting is "none")>> +<<elseif (_Slave.energy > 5) && (_Slave.clitSetting == "none")>> SP: none. <</if>> <<else>> @@ -2603,15 +2603,15 @@ _Slave.faceShape face. <</switch>> <</if>> <<if _Slave.attrKnown == 1>> -<<if (_Slave.attrXX < 100) && (_Slave.clitSetting is "women")>> +<<if (_Slave.attrXX < 100) && (_Slave.clitSetting == "women")>> SP: women. -<<elseif (_Slave.attrXY < 100) && (_Slave.clitSetting is "men")>> +<<elseif (_Slave.attrXY < 100) && (_Slave.clitSetting == "men")>> SP: men. <</if>> <<else>> -<<if _Slave.clitSetting is "women">> +<<if _Slave.clitSetting == "women">> SP: women. -<<elseif _Slave.clitSetting is "men">> +<<elseif _Slave.clitSetting == "men">> SP: men. <</if>> <</if>> @@ -2637,7 +2637,7 @@ _Slave.faceShape face. <<case "liberated">> Mentally liberated. <<default>> - <<set _Slave.behavioralFlaw to "none">> + <<set _Slave.behavioralFlaw = "none">> <</switch>> @@ <<switch _Slave.sexualFlaw>> @@ -2678,7 +2678,7 @@ _Slave.faceShape face. <<case "breeder">> @@color:yellow;Breeding obsession.@@ <<default>> - <<set _Slave.sexualFlaw to "none">> + <<set _Slave.sexualFlaw = "none">> <</switch>> @@color:green; <<switch _Slave.behavioralQuirk>> @@ -2701,7 +2701,7 @@ _Slave.faceShape face. <<case "advocate">> Advocate. <<default>> - <<set _Slave.behavioralQuirk to "none">> + <<set _Slave.behavioralQuirk = "none">> <</switch>> <<switch _Slave.sexualQuirk>> <<case "gagfuck queen">> @@ -2723,21 +2723,21 @@ _Slave.faceShape face. <<case "size queen">> Size queen. <<default>> - <<set _Slave.sexualQuirk to "none">> + <<set _Slave.sexualQuirk = "none">> <</switch>> @@ <</if>> <<if _Slave.customLabel != "">>''@@color:yellow;_Slave.customLabel@@''<</if>> -<<if (_Slave.relationship != 0) || (_Slave.relation != 0) || ($abbreviateClothes is 2) || ($abbreviateRulesets is 2)>> +<<if (_Slave.relationship != 0) || (_Slave.relation != 0) || ($abbreviateClothes == 2) || ($abbreviateRulesets == 2)>> <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>> <</if>> <<if $abbreviateMental == 1>> @@color:lightgreen; <<if $familyTesting == 1>> - <<for _j to 0; _j < _SL; _j++>> + <<for _j = 0; _j < _SL; _j++>> <<if _Slave.mother == $slaves[_j].ID>> $slaves[_j].slaveName's daughter<<if _Slave.relationshipTarget == $slaves[_j].ID>><<if _Slave.relationship == 1>> & friend<<elseif _Slave.relationship == 2>> & BFF<<elseif _Slave.relationship == 3>> & FWB<<elseif _Slave.relationship == 4>> & lover<<else>> & wife<</if>><<set _relationshipHandled = 1>><</if>> <</if>> @@ -2746,7 +2746,7 @@ _Slave.faceShape face. <</if>> <</for>> <<if _Slave.daughters == 1>> - <<for _j to 0; _j < $slaves.length; _j++>> + <<for _j = 0; _j < $slaves.length; _j++>> <<if $slaves[_j].mother == _Slave.ID>> $slaves[_j].slaveName's mother<<if _Slave.relationshipTarget == $slaves[_j].ID>><<if _Slave.relationship == 1>> & friend<<elseif _Slave.relationship == 2>> & BFF<<elseif _Slave.relationship == 3>> & FWB<<elseif _Slave.relationship == 4>> & lover<<else>> & wife<</if>><<set _relationshipHandled = 1>><</if>> <<break>> @@ -2760,7 +2760,7 @@ _Slave.faceShape face. multiple daughters <</if>> <<if _Slave.sisters == 1>> - <<for _j to 0; _j < _SL; _j++>> + <<for _j = 0; _j < _SL; _j++>> <<if areSisters($slaves[_j], _Slave.ID) > 0>> $slaves[_j].slaveName's sister<<if _Slave.relationshipTarget == $slaves[_j].ID>><<if _Slave.relationship == 1>> & friend<<elseif _Slave.relationship == 2>> & BFF<<elseif _Slave.relationship == 3>> & FWB<<elseif _Slave.relationship == 4>> & lover<<else>> & wife<</if>><<set _relationshipHandled = 1>><</if>> <<break>> @@ -2770,8 +2770,8 @@ _Slave.faceShape face. multiple sisters <</if>> <<if _Slave.relationship > 0 && _relationshipHandled != 1>> - <<for _j to 0; _j < _SL; _j++>> - <<if _Slave.relationshipTarget is $slaves[_j].ID>> + <<for _j = 0; _j < _SL; _j++>> + <<if _Slave.relationshipTarget == $slaves[_j].ID>> <<switch _Slave.relationship>> <<case 1>> $slaves[_j].slaveName's friend @@ -2788,20 +2788,20 @@ _Slave.faceShape face. <<break>> <</if>> <</for>> - <<elseif _Slave.relationship is -3>> + <<elseif _Slave.relationship == -3>> Your wife - <<elseif _Slave.relationship is -2>> + <<elseif _Slave.relationship == -2>> E Bonded - <<elseif _Slave.relationship is -1>> + <<elseif _Slave.relationship == -1>> E Slut <</if>> <<else>> <<if _Slave.relation != 0>> - <<for _j to 0; _j < _SL; _j++>> - <<if _Slave.relationTarget is $slaves[_j].ID>> + <<for _j = 0; _j < _SL; _j++>> + <<if _Slave.relationTarget == $slaves[_j].ID>> $slaves[_j].slaveName's _Slave.relation <<if _Slave.relationship <= 0>> <</if>> <<break>> @@ -2809,8 +2809,8 @@ _Slave.faceShape face. <</for>> <</if>> <<if _Slave.relationship > 0>> - <<for _j to 0; _j < _SL; _j++>> - <<if _Slave.relationshipTarget is $slaves[_j].ID>> + <<for _j = 0; _j < _SL; _j++>> + <<if _Slave.relationshipTarget == $slaves[_j].ID>> <<switch _Slave.relationship>> <<case 1>> <<if _Slave.relationshipTarget != _Slave.relationTarget>>$slaves[_j].slaveName's<<else>>&<</if>> friend @@ -2827,13 +2827,13 @@ _Slave.faceShape face. <<break>> <</if>> <</for>> - <<elseif _Slave.relationship is -3>> + <<elseif _Slave.relationship == -3>> Your wife - <<elseif _Slave.relationship is -2>> + <<elseif _Slave.relationship == -2>> E Bonded - <<elseif _Slave.relationship is -1>> + <<elseif _Slave.relationship == -1>> E Slut <</if>> @@ -2841,8 +2841,8 @@ _Slave.faceShape face. @@ <<set _relationshipHandled = 0>> <<if _Slave.rivalry != 0>> -<<for _j to 0; _j < _SL; _j++>> -<<if _Slave.rivalryTarget is $slaves[_j].ID>> +<<for _j = 0; _j < _SL; _j++>> +<<if _Slave.rivalryTarget == $slaves[_j].ID>> @@color:lightsalmon; <<if _Slave.rivalry <= 1>> Disl $slaves[_j].slaveName @@ -2857,9 +2857,9 @@ _Slave.faceShape face. <</if>> <</for>> <</if>> -<<elseif $abbreviateMental is 2>> +<<elseif $abbreviateMental == 2>> <<if $familyTesting == 1>> - <<for _j to 0; _j < _SL; _j++>> + <<for _j = 0; _j < _SL; _j++>> <<if _Slave.mother == $slaves[_j].ID>> $slaves[_j].slaveName's @@color:lightgreen;daughter<<if _Slave.relationshipTarget == $slaves[_j].ID>><<if _Slave.relationship == 1>> and friend<<elseif _Slave.relationship == 2>> and best friend<<elseif _Slave.relationship == 3>> and FWB<<elseif _Slave.relationship == 4>> and lover<<else>> and wife<</if>><<set _relationshipHandled = 1>><</if>>.@@ <</if>> @@ -2868,7 +2868,7 @@ _Slave.faceShape face. <</if>> <</for>> <<if _Slave.daughters == 1>> - <<for _j to 0; _j < _SL; _j++>> + <<for _j = 0; _j < _SL; _j++>> <<if $slaves[_j].mother == _Slave.ID>> $slaves[_j].slaveName's @@color:lightgreen;mother<<if _Slave.relationshipTarget == $slaves[_j].ID>><<if _Slave.relationship == 1>> and friend<<elseif _Slave.relationship == 2>> and best friend<<elseif _Slave.relationship == 3>> and FWB<<elseif _Slave.relationship == 4>> and lover<<else>> and wife<</if>><<set _relationshipHandled = 1>><</if>>.@@ <<break>> @@ -2888,7 +2888,7 @@ _Slave.faceShape face. <</if>> <</if>> <<if _Slave.sisters == 1>> - <<for _j to 0; _j < _SL; _j++>> + <<for _j = 0; _j < _SL; _j++>> <<if areSisters($slaves[_j], _Slave) > 0>> $slaves[_j].slaveName's @@color:lightgreen;sister<<if _Slave.relationshipTarget == $slaves[_j].ID>><<if _Slave.relationship == 1>> and friend<<elseif _Slave.relationship == 2>> and best friend<<elseif _Slave.relationship == 3>> and FWB<<elseif _Slave.relationship == 4>> and lover<<else>> and wife<</if>><<set _relationshipHandled = 1>><</if>>.@@ <<break>> @@ -2904,8 +2904,8 @@ _Slave.faceShape face. <</if>> <</if>> <<if _Slave.relationship > 0 && _relationshipHandled != 1>> - <<for _j to 0; _j < _SL; _j++>> - <<if _Slave.relationshipTarget is $slaves[_j].ID>> + <<for _j = 0; _j < _SL; _j++>> + <<if _Slave.relationshipTarget == $slaves[_j].ID>> <<switch _Slave.relationship>> <<case 1>> $slaves[_j].slaveName's @@color:lightgreen;friend.@@ @@ -2922,20 +2922,20 @@ _Slave.faceShape face. <<break>> <</if>> <</for>> - <<elseif _Slave.relationship is -3>> + <<elseif _Slave.relationship == -3>> @@color:lightgreen;Your wife.@@ - <<elseif _Slave.relationship is -2>> + <<elseif _Slave.relationship == -2>> @@color:lightgreen;Emotionally bonded to you.@@ - <<elseif _Slave.relationship is -1>> + <<elseif _Slave.relationship == -1>> @@color:lightgreen;Emotional slut.@@ <</if>> <<else>> <<if _Slave.relation != 0>> - <<for _j to 0; _j < _SL; _j++>> - <<if _Slave.relationTarget is $slaves[_j].ID>> + <<for _j = 0; _j < _SL; _j++>> + <<if _Slave.relationTarget == $slaves[_j].ID>> $slaves[_j].slaveName's <<if _Slave.relationshipTarget != _Slave.relationTarget>> @@color:lightgreen;_Slave.relation@@. @@ -2948,8 +2948,8 @@ _Slave.faceShape face. <</for>> <</if>> <<if _Slave.relationship > 0>> - <<for _j to 0; _j < _SL; _j++>> - <<if _Slave.relationshipTarget is $slaves[_j].ID>> + <<for _j = 0; _j < _SL; _j++>> + <<if _Slave.relationshipTarget == $slaves[_j].ID>> <<switch _Slave.relationship>> <<case 1>> <<if _Slave.relationshipTarget != _Slave.relationTarget>>$slaves[_j].slaveName's<<else>>and<</if>> @@color:lightgreen;friend.@@ @@ -2966,20 +2966,20 @@ _Slave.faceShape face. <<break>> <</if>> <</for>> - <<elseif _Slave.relationship is -3>> + <<elseif _Slave.relationship == -3>> @@color:lightgreen;Your wife.@@ - <<elseif _Slave.relationship is -2>> + <<elseif _Slave.relationship == -2>> @@color:lightgreen;Emotionally bonded to you.@@ - <<elseif _Slave.relationship is -1>> + <<elseif _Slave.relationship == -1>> @@color:lightgreen;Emotional slut.@@ <</if>> <</if>> <<set _relationshipHandled = 0>> <<if _Slave.rivalry != 0>> -<<for _j to 0; _j < _SL; _j++>> +<<for _j = 0; _j < _SL; _j++>> <<if _Slave.rivalryTarget == $slaves[_j].ID>> <<if _Slave.rivalry <= 1>> @@color:lightsalmon;Dislikes@@ $slaves[_j].slaveName. @@ -2998,7 +2998,7 @@ _Slave.faceShape face. <</if>> <<if _Slave.fuckdoll == 0>> -<<if $abbreviateClothes is 2>> +<<if $abbreviateClothes == 2>> <<if _Slave.choosesOwnClothes == 1>> Dressing herself. <</if>> @@ -3143,15 +3143,15 @@ _Slave.faceShape face. Extreme corsetage. <</switch>> <<if canWalk(_Slave)>> -<<if _Slave.shoes is "heels">> +<<if _Slave.shoes == "heels">> Heels. -<<elseif _Slave.shoes is "extreme heels">> +<<elseif _Slave.shoes == "extreme heels">> Extreme heels. -<<elseif _Slave.shoes is "boots">> +<<elseif _Slave.shoes == "boots">> Boots. <<elseif _Slave.heels == 1>> @@color:yellow;Crawling.@@ -<<elseif _Slave.shoes is "flats">> +<<elseif _Slave.shoes == "flats">> Flats. <</if>> <</if>> @@ -3175,11 +3175,11 @@ _Slave.faceShape face. <<case "long, huge dildo">> Long and wide vaginal dildo. <</switch>> -<<if _Slave.dickAccessory is "chastity">> +<<if _Slave.dickAccessory == "chastity">> Chastity cage. -<<elseif _Slave.dickAccessory is "combined chastity">> +<<elseif _Slave.dickAccessory == "combined chastity">> Combined chastity. -<<elseif _Slave.dickAccessory is "anal chastity">> +<<elseif _Slave.dickAccessory == "anal chastity">> Anal chastity. <</if>> <<switch _Slave.buttplug>> @@ -3199,13 +3199,13 @@ _Slave.faceShape face. <</if>> <</if>> -<<if $abbreviateRulesets is 2>> +<<if $abbreviateRulesets == 2>> <<if (def _Slave.currentRules) && (_Slave.currentRules.length > 0)>> - <<for _r to 0; _r < _Slave.currentRules.length; _r++>> - <<for _s to 0; _s < $defaultRules.length; _s++>> - <<set _currentRule to $defaultRules[_s]>> - <<set _num to (_s+1)>> + <<for _r = 0; _r < _Slave.currentRules.length; _r++>> + <<for _s = 0; _s < $defaultRules.length; _s++>> + <<set _currentRule = $defaultRules[_s]>> + <<set _num = (_s+1)>> <<if _Slave.currentRules[_r] == _currentRule.ID>> Rule _num (_currentRule.name). <</if>> @@ -3214,13 +3214,13 @@ _Slave.faceShape face. <</if>> <</if>> -<<if $abbreviateOrigins is 2>> +<<if $abbreviateOrigins == 2>> <<if _Slave.origin != 0>> <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>>@@color:gray;_Slave.origin@@ <</if>> <</if>> -<<set $slaves[_i] to _Slave>> +<<set $slaves[_i] = _Slave>> <<switch _Pass>> <<case "Main">> @@ -3380,14 +3380,14 @@ _Slave.faceShape face. <<case "New Game Plus">> <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>> <<if $Flag == 0>> - <<print "[[Add to import list|NGP Workaround][$slavesToImport to 1, $activeSlave to $slaves[" + _i + "]]]">> + <<print "[[Add to import list|NGP Workaround][$slavesToImport = 1, $activeSlave = $slaves[" + _i + "]]]">> <<else>> - <<print "[[Remove from import list|NGP Workaround][$slavesToImport to 0, $activeSlave to $slaves[" + _i + "]]]">> + <<print "[[Remove from import list|NGP Workaround][$slavesToImport = 0, $activeSlave = $slaves[" + _i + "]]]">> <<set $slavesToImport += 1>> <</if>> <<case "Matchmaking">> <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>> <</if>> - <<print "[[Match them|Matchmaking][$subSlave to $slaves[" + _i + "]]]">> + <<print "[[Match them|Matchmaking][$subSlave = $slaves[" + _i + "]]]">> <</switch>> <</for>> <<set $activeSlave = 0, _Slave = 0>> diff --git a/src/uncategorized/spa.tw b/src/uncategorized/spa.tw index 6795f1db248f572389d06eafb5d5bc482ed64172..92d26cae94fb796aa91abfe3223ddd8f5207cb83 100644 --- a/src/uncategorized/spa.tw +++ b/src/uncategorized/spa.tw @@ -109,7 +109,9 @@ $spaNameCaps <<include "Slave Summary">> <</if>> -<<if (_SL > _DL)>> +<<if ($spa <= _DL)>> + <br><br>''$spaNameCaps is full and cannot hold any more slaves'' +<<elseif (_SL > _DL)>> <br><br>''Let an obedient slave rest in $spaName:'' <<set $Flag = 0>> <<include "Slave Summary">> diff --git a/src/uncategorized/toychest.tw b/src/uncategorized/toychest.tw index 516e9d6a0b1072ab4215617c734c3a49ecdb09ed..253f79634012ca70b8971c7c914f4ea44380648c 100644 --- a/src/uncategorized/toychest.tw +++ b/src/uncategorized/toychest.tw @@ -1,26 +1,26 @@ :: Toychest [nobr] - + //$slaves[$i].slaveName <<if $slaves[$i].fuckdoll > 0>> is waiting for use nearby. -<<elseif $slaves[$i].fetish is "mindbroken">> +<<elseif $slaves[$i].fetish == "mindbroken">> is waiting dumbly nearby. <<elseif $slaves[$i].devotion > 50>> - <<if $slaves[$i].toyHole is "mouth">> + <<if $slaves[$i].toyHole == "mouth">> has positioned herself nearby with her mouth conveniently <<if $PC.dick == 1>>at cock level<<else>>level with your pussy<</if>>. - <<elseif $slaves[$i].toyHole is "boobs">> + <<elseif $slaves[$i].toyHole == "boobs">> is kneeling nearby with her chest thrust out as far as it will go. - <<elseif ($slaves[$i].toyHole is "pussy") && ($slaves[$i].amp != 1)>> + <<elseif ($slaves[$i].toyHole == "pussy") && ($slaves[$i].amp != 1)>> is kneeling on the couch with legs apart to present her pussy. - <<elseif $slaves[$i].toyHole is "pussy">> + <<elseif $slaves[$i].toyHole == "pussy">> is lying on the couch with her pussy ready for you. - <<elseif ($slaves[$i].toyHole is "ass") && ($slaves[$i].amp != 1)>> + <<elseif ($slaves[$i].toyHole == "ass") && ($slaves[$i].amp != 1)>> is lying on the couch with her legs up and back to present her butthole. - <<elseif $slaves[$i].toyHole is "ass">> + <<elseif $slaves[$i].toyHole == "ass">> is lying on the couch with her butt ready for you. /*check*/ - <<elseif $slaves[$i].toyHole is "dick">> + <<elseif $slaves[$i].toyHole == "dick">> is lying on the couch with her dick at the ready for you. <<else>> is nearby, eagerly presenting herself. @@ -39,117 +39,117 @@ has positioned herself nearby to offer you her body. <</if>> -<<set $seed to random(1,100)>> +<<set $seed = random(1,100)>> <<if $slaves[$i].fuckdoll > 0>> Its holes are, as always, available. -<<elseif $slaves[$i].fetish is "mindbroken">> +<<elseif $slaves[$i].fetish == "mindbroken">> She ignores her clothing, regarding it as an impediment to her purpose. -<<elseif ($slaves[$i].clothes is "attractive lingerie")>> +<<elseif ($slaves[$i].clothes == "attractive lingerie")>> Her nipples show invitingly through the holes in her white lace lingerie. -<<elseif ($slaves[$i].clothes is "shibari ropes")>> +<<elseif ($slaves[$i].clothes == "shibari ropes")>> You've tied her shibari bindings so that she's forced to thrust out her chest. -<<elseif ($slaves[$i].clothes is "uncomfortable straps") && ($seed > 75)>> +<<elseif ($slaves[$i].clothes == "uncomfortable straps") && ($seed > 75)>> Her leather straps are forcing her to thrust out her tits. -<<elseif ($slaves[$i].clothes is "uncomfortable straps") && ($seed > 50)>> +<<elseif ($slaves[$i].clothes == "uncomfortable straps") && ($seed > 50)>> Her leather straps are uncomfortably pressing her breasts and asscrack. -<<elseif ($slaves[$i].clothes is "uncomfortable straps") && ($seed > 25)>> +<<elseif ($slaves[$i].clothes == "uncomfortable straps") && ($seed > 25)>> The rings in her leather straps over each nipple and hole make her look like a perfect fucktoy. -<<elseif ($slaves[$i].clothes is "uncomfortable straps")>> +<<elseif ($slaves[$i].clothes == "uncomfortable straps")>> Her uncomfortable straps force her to constantly present her holes. -<<elseif ($slaves[$i].clothes is "restrictive latex") or ($slaves[$i].clothes is "a latex catsuit")>> +<<elseif ($slaves[$i].clothes == "restrictive latex") || ($slaves[$i].clothes == "a latex catsuit")>> Her complete suit of latex makes her a nice, artistic display, a plastic work of art in the shape of a female form. -<<elseif ($activeSlave.clothes is "a military uniform")>> +<<elseif ($slaves[$i].clothes == "a military uniform")>> Her uniformed presence lends your office the air of a military command center. -<<elseif ($activeSlave.clothes is "a mini skirt")>> +<<elseif ($slaves[$i].clothes == "a mini skirt")>> Her flattering mini dress makes her the perfect office ornament for the modern captain of industry. -<<elseif ($activeSlave.clothes is "a nice nurse outfit")>> +<<elseif ($slaves[$i].clothes == "a nice nurse outfit")>> Her proper nurse's outfit gives the office a clinical air. -<<elseif ($slaves[$i].clothes is "a fallen nuns habit")>> +<<elseif ($slaves[$i].clothes == "a fallen nuns habit")>> Her latex parody of a nuns habit gives the office a sacrilegious air. -<<elseif ($slaves[$i].clothes is "a chattel habit")>> +<<elseif ($slaves[$i].clothes == "a chattel habit")>> Her chattel habit makes the office look like what it is: the inner sanctum of a new and deeply sensual faith. -<<elseif ($slaves[$i].clothes is "a penitent nuns habit")>> +<<elseif ($slaves[$i].clothes == "a penitent nuns habit")>> Her sackcloth habit gives the office a somber air. -<<elseif ($slaves[$i].clothes is "attractive lingerie")>> +<<elseif ($slaves[$i].clothes == "attractive lingerie")>> She's wearing classy lingerie, making her an unusually refined ornament to the office. -<<elseif ($slaves[$i].clothes is "a succubus outfit")>> +<<elseif ($slaves[$i].clothes == "a succubus outfit")>> She's dressed to look like a succubus. There is a <<if $PC.title == 1>>demon in this office, and she serves him<<else>>demoness in this office, and she serves her<</if>>. -<<elseif ($slaves[$i].clothes is "a string bikini")>> +<<elseif ($slaves[$i].clothes == "a string bikini")>> She's wearing a string bikini, making her a sexy, enticing office ornament. -<<elseif ($slaves[$i].clothes is "attractive lingerie for a pregnant woman")>> +<<elseif ($slaves[$i].clothes == "attractive lingerie for a pregnant woman")>> Her breasts gently spill out of her slightly to small top. <<if $slaves[$i].lactation > 0>> Her leaking nipples have rendered her top see-through. <</if>> -<<elseif ($slaves[$i].clothes is "a maternity dress")>> +<<elseif ($slaves[$i].clothes == "a maternity dress")>> Her low cut dress reveals ample cleavage. -<<elseif ($slaves[$i].clothes is "a cheerleader outfit")>> +<<elseif ($slaves[$i].clothes == "a cheerleader outfit")>> She's wearing a slutty cheerleader outfit, making it look like she's here to fuck before team practice. -<<elseif ($slaves[$i].clothes is "clubslut netting")>> +<<elseif ($slaves[$i].clothes == "clubslut netting")>> She's wearing slutty netting and headphones so she can dance to music without annoying visitors. -<<elseif ($slaves[$i].clothes is "cutoffs and a t-shirt")>> +<<elseif ($slaves[$i].clothes == "cutoffs and a t-shirt")>> She's wearing cutoffs and a t-shirt, making her a fun, clean office ornament. -<<elseif ($slaves[$i].clothes is "a slutty nurse outfit")>> +<<elseif ($slaves[$i].clothes == "a slutty nurse outfit")>> She's wearing a slutty nurse outfit, and looks more than ready to minister to any patient's needs. -<<elseif ($slaves[$i].clothes is "a schoolgirl outfit")>> +<<elseif ($slaves[$i].clothes == "a schoolgirl outfit")>> She's wearing a slutty schoolgirl outfit, and looks ready to do whatever it takes to improve her grades. -<<elseif ($slaves[$i].clothes is "a kimono")>> +<<elseif ($slaves[$i].clothes == "a kimono")>> She's wearing a kimono, lending your office an air of elegance, though she lacks some of the air of the true yamato nadeshiko. -<<elseif ($slaves[$i].clothes is "a slutty qipao")>> +<<elseif ($slaves[$i].clothes == "a slutty qipao")>> She's wearing a qipao, lending your office the elegance of an imperial court. -<<elseif ($slaves[$i].clothes is "a hijab and abaya")>> +<<elseif ($slaves[$i].clothes == "a hijab and abaya")>> She's wearing a modest hijab and abaya, lending your office a certain air of conservatism. -<<elseif ($slaves[$i].clothes is "battledress")>> +<<elseif ($slaves[$i].clothes == "battledress")>> She's wearing skimpy battledress, making your office seem a little like the ideal bunker for a survivalist. -<<elseif ($slaves[$i].clothes is "a slutty outfit") && ($slaves[$i].actualAge < 21)>> +<<elseif ($slaves[$i].clothes == "a slutty outfit") && ($slaves[$i].actualAge < 21)>> She's wearing a schoolgirl uniform and sucking on hard candy, giving her a delectably youthful appearance. -<<elseif ($slaves[$i].clothes is "a slutty outfit") && ($slaves[$i].actualAge < 30)>> +<<elseif ($slaves[$i].clothes == "a slutty outfit") && ($slaves[$i].actualAge < 30)>> She's chosen to wear a slutty nurse outfit, and looks more than ready to minister to any patient's needs. -<<elseif ($slaves[$i].clothes is "a slutty outfit") && ($slaves[$i].actualAge < 40)>> +<<elseif ($slaves[$i].clothes == "a slutty outfit") && ($slaves[$i].actualAge < 40)>> She's wearing a schoolgirl uniform and sucking on hard candy, a delightfully perverse outfit for a slave in her thirties. -<<elseif ($slaves[$i].clothes is "a slutty outfit")>> +<<elseif ($slaves[$i].clothes == "a slutty outfit")>> She's wearing a wifely apron that covers her front, but leaves her backside bare, an appropriate outfit for a slave in her forties. -<<elseif ($slaves[$i].clothes is "a halter top dress")>> +<<elseif ($slaves[$i].clothes == "a halter top dress")>> The gorgeous halter top dress she's wearing is almost a work of art. -<<elseif ($slaves[$i].clothes is "a ball gown")>> +<<elseif ($slaves[$i].clothes == "a ball gown")>> The fabulous silken ball gown she's wearing lifts the entire atmosphere. -<<elseif ($slaves[$i].clothes is "a slave gown")>> +<<elseif ($slaves[$i].clothes == "a slave gown")>> The gorgeous gown she's wearing lends an air of class to the office. -<<elseif ($slaves[$i].clothes is "slutty business attire")>> +<<elseif ($slaves[$i].clothes == "slutty business attire")>> The suit she's wearing would make it look like she's here to do business, if not for the extreme shortness of the skirt and her acre of cleavage. -<<elseif ($slaves[$i].clothes is "nice business attire")>> +<<elseif ($slaves[$i].clothes == "nice business attire")>> The suit she's wearing makes it look like she's here to do business, not fuck. -<<elseif ($slaves[$i].clothes is "a comfortable bodysuit")>> +<<elseif ($slaves[$i].clothes == "a comfortable bodysuit")>> The bodysuit she's wearing displays her every fuckable curve. -<<elseif ($slaves[$i].clothes is "a leotard")>> +<<elseif ($slaves[$i].clothes == "a leotard")>> The leotard she's wearing is tight enough to advertise every detail. -<<elseif ($slaves[$i].clothes is "a bunny outfit")>> +<<elseif ($slaves[$i].clothes == "a bunny outfit")>> The bunny outfit she's wearing makes her look ready to serve drinks and suck dick. -<<elseif ($slaves[$i].clothes is "a slutty maid outfit")>> +<<elseif ($slaves[$i].clothes == "a slutty maid outfit")>> Her maid outfit makes her look useful and sexually easy. -<<elseif ($slaves[$i].clothes is "a nice maid outfit")>> +<<elseif ($slaves[$i].clothes == "a nice maid outfit")>> Her maid outfit makes her servitude obvious while not looking too lewd. -<<elseif ($slaves[$i].clothes is "harem gauze")>> +<<elseif ($slaves[$i].clothes == "harem gauze")>> Her harem girl outfit lends her corner of your office an Eastern opulence. -<<elseif ($slaves[$i].clothes is "slutty jewelry")>> +<<elseif ($slaves[$i].clothes == "slutty jewelry")>> The bangles she's wearing make little noises every time she moves, serving as a constant reminder of her sexual availability. -<<elseif ($activeSlave.clothes is "conservative clothing")>> +<<elseif ($slaves[$i].clothes == "conservative clothing")>> Her clothes make it look like she's here for some other purpose than sexual slavery. -<<elseif ($activeSlave.clothes is "chains")>> +<<elseif ($slaves[$i].clothes == "chains")>> Her chains make it obvious that she's here as an office sex toy. -<<elseif ($activeSlave.clothes is "Western clothing")>> +<<elseif ($slaves[$i].clothes == "Western clothing")>> Her Western clothing is comically out of place in a modern office. -<<elseif ($activeSlave.clothes is "body oil")>> +<<elseif ($slaves[$i].clothes == "body oil")>> Her body oil makes her muscles a lovely ornament to the office, and makes all her holes nice and inviting. -<<elseif ($activeSlave.clothes is "a toga")>> +<<elseif ($slaves[$i].clothes == "a toga")>> Her toga lends an air of antiquity to the office. -<<elseif ($activeSlave.clothes is "a slutty qipao")>> +<<elseif ($slaves[$i].clothes == "a slutty qipao")>> Her lovely qipao is a delicious contradiction of conservative silk patterns and scandalously high cuts. -<<elseif ($slaves[$i].vaginalAccessory is "chastity belt")>> +<<elseif ($slaves[$i].vaginalAccessory == "chastity belt")>> Her chastity belt covers and protects her, but leaves her breasts naked, her mouth available, and her asshole vulnerable. -<<elseif ($slaves[$i].vaginalAccessory is "anal chastity")>> +<<elseif ($slaves[$i].vaginalAccessory == "anal chastity")>> Her chastity belt covers and protects her anus, but leaves her breasts naked, her mouth available, and her pussy vulnerable. -<<elseif ($slaves[$i].vaginalAccessory is "combined chastity")>> +<<elseif ($slaves[$i].vaginalAccessory == "combined chastity")>> Her chastity belt covers and protects both her vagina and anus, but leaves her breasts naked and her mouth available. <<else>> She's nude and ready to be fucked. diff --git a/src/utility/assayWidgets.tw b/src/utility/assayWidgets.tw index ef14f6fc48d87c28bb27780f7727954554096bcd..524e0c8a0d9e9f6553dadf80eacff5358dd2d328 100644 --- a/src/utility/assayWidgets.tw +++ b/src/utility/assayWidgets.tw @@ -612,6 +612,8 @@ <<if $arcologies[0].FSSlimnessEnthusiastLaw == 1>> <<if ($args[0].boobs <= 300) && ($args[0].butt <= 1) && ($args[0].weight <= 10) && ($args[0].muscles <= 30)>> <<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>> +<<else>> + <<set $beauty -= ($arcologies[0].FSSlimnessEnthusiast/20)>> <</if>> <</if>> diff --git a/src/utility/birthWidgets.tw b/src/utility/birthWidgets.tw index 7169941a93091a7000e9b1d472cef5547dc20644..7dbc224c4c480059ab2ee10576c625f92980b881 100644 --- a/src/utility/birthWidgets.tw +++ b/src/utility/birthWidgets.tw @@ -1974,7 +1974,7 @@ Her helper arrives with aid far too late. She screams when she sees $slaves[$i]. <</if>> <<case "work a glory hole">> - <<if !canWalk(#slaves[$i])>> + <<if !canWalk($slaves[$i])>> <<if $slaves[$i].fetish is "mindbroken">> While sucking a dick through the hole of her confining box, $slaves[$i].slaveName's body begins to birth another of her brood. She makes no effort to stop sucking the dicks presented to her. <<ClothingBirth>> @@ -1997,7 +1997,7 @@ Her helper arrives with aid far too late. She screams when she sees $slaves[$i]. <</if>> <<case "get milked">> - <<if !canWalk(#slaves[$i])>> + <<if !canWalk($slaves[$i])>> <<if $slaves[$i].fetish is "mindbroken">> While getting milked, $slaves[$i].slaveName's body begins to birth another of her brood. She show little interest and continues kneading her breasts. <<ClothingBirth>> @@ -2020,7 +2020,7 @@ Her helper arrives with aid far too late. She screams when she sees $slaves[$i]. <</if>> <<case "please you">> - <<if !canWalk(#slaves[$i])>> + <<if !canWalk($slaves[$i])>> <<if $slaves[$i].fetish is "mindbroken">> While sitting absentmindedly nearby, $slaves[$i].slaveName's body begins to birth another of her brood. She pays no heed to it and continues waiting for you to use her. <<ClothingBirth>> @@ -2043,7 +2043,7 @@ Her helper arrives with aid far too late. She screams when she sees $slaves[$i]. <</if>> <<case "stay confined">> - <<if !canWalk(#slaves[$i])>> + <<if !canWalk($slaves[$i])>> <<if $slaves[$i].fetish is "mindbroken">> While waiting in confinement, $slaves[$i].slaveName's body begins to birth another of her brood. Since she can't move, she just lets things happen. <<ClothingBirth>>