diff --git a/devTools/tweeGo/targets/sugarcube-2/LICENSE b/devTools/tweeGo/targets/sugarcube-2/LICENSE
index 85a5baca3bf9c63d2f64e6a0a8f75c389c760a8d..1e72fe93daa7691bc183544225a43eeabaedb33b 100644
--- a/devTools/tweeGo/targets/sugarcube-2/LICENSE
+++ b/devTools/tweeGo/targets/sugarcube-2/LICENSE
@@ -1,15 +1,15 @@
 
-Copyright (c) 2013-2017 Thomas Michael Edwards <tmedwards@motoslave.net>.
+Copyright (c) 2013-2017 Thomas Michael Edwards <thomasmedwards@gmail.com>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met: 
+modification, are permitted provided that the following conditions are met:
 
 1. Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer. 
+   list of conditions and the following disclaimer.
 2. 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. 
+   and/or other materials provided with the distribution.
 
 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
diff --git a/devTools/tweeGo/targets/sugarcube-2/header.html b/devTools/tweeGo/targets/sugarcube-2/header.html
index 62084265992e2bd68bfd32b1612cf6fca6718942..ac2fb58aec5ac66c8b50f15820655ac35a4aeefc 100644
--- a/devTools/tweeGo/targets/sugarcube-2/header.html
+++ b/devTools/tweeGo/targets/sugarcube-2/header.html
@@ -6,9 +6,9 @@
 <meta name="viewport" content="width=device-width,initial-scale=1" />
 <!--
 
-SugarCube (v2.17.0): A free (gratis and libre) story format.
+SugarCube (v2.18.0): A free (gratis and libre) story format.
 
-Copyright © 2013–2017 Thomas Michael Edwards <tmedwards@motoslave.net>.
+Copyright © 2013–2017 Thomas Michael Edwards <thomasmedwards@gmail.com>.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -95,8 +95,11 @@ var saveAs=saveAs||navigator.msSaveBlob&&navigator.msSaveBlob.bind(navigator)||f
 </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[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,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) 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-font" type="text/css">@font-face{font-family:tme-fa-icons;src:url(data:application/octet-stream;base64,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) 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}.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}.error:before,[data-icon-after]:after,[data-icon-before]:before,[data-icon]:before,a.link-external:after{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"}a.link-external:after{content:"\00a0\e80e"}</style>
+<style id="style-core-display" type="text/css">#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}</style>
+<style id="style-core-passage" type="text/css">.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}</style>
+<style id="style-core-macro" type="text/css">.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>
@@ -115,8 +118,8 @@ var saveAs=saveAs||navigator.msSaveBlob&&navigator.msSaveBlob.bind(navigator)||f
 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]&&macros[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);}
+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(),function(){var e=jQuery(document.createDocumentFragment()),t=Story.has("StoryInterface")&&Story.get("StoryInterface").text.trim();if(t){if(UIBar.destroy(),jQuery(document.head).find("#style-core-display").remove(),e.append(t),0===e.find("#passages").length)throw new Error('no element with ID "passages" found within "StoryInterface" special passage')}else e.append('<div id="story" role="main"><div id="passages"></div></div>');e.insertBefore("#store-area")}(),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){return"keydown"===e.type?m():g()})}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&&UIBar.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=this.tags.length>0?this.tags.join(" "):null,n=document.createElement("div");return jQuery(n).attr({id:this.domId,"data-passage":this.title,"data-tags":t}).addClass("passage "+this.className),jQuery(document.body).attr("data-tags",t).addClass(this.className),jQuery(document.documentElement).attr("data-tags",t),Object.keys(prerender).forEach(function(t){"function"==typeof prerender[t]&&prerender[t].call(e,n,t)}),Story.has("PassageHeader")&&new Wikifier(n,Story.get("PassageHeader").processText()),new Wikifier(n,this.processText()),Story.has("PassageFooter")&&new Wikifier(n,Story.get("PassageFooter").processText()),Object.keys(postrender).forEach(function(t){"function"==typeof postrender[t]&&postrender[t].call(e,n,t)}),this._excerpt=r.getExcerptFromNode(n),n}},{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(){o||document.getElementById("ui-bar")||(!function(){var e=L10n.get("uiBarToggle"),t=L10n.get("uiBarBackward"),r=L10n.get("uiBarJumpto"),n=L10n.get("uiBarForward");jQuery(document.createDocumentFragment()).append('<div id="ui-bar"><div id="ui-bar-tray">'+('<button id="ui-bar-toggle" tabindex="0" title="'+e+'" aria-label="'+e+'"></button>')+'<div id="ui-bar-history">'+('<button id="history-backward" tabindex="0" title="'+t+'" aria-label="'+t+'">î ¡</button>')+('<button id="history-jumpto" tabindex="0" title="'+r+'" aria-label="'+r+'">î ¹</button>')+('<button id="history-forward" tabindex="0" title="'+n+'" aria-label="'+n+'">î ¢</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>").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(){if(!o){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(){o||(jQuery(document).off(".ui-bar"),jQuery("#ui-bar").remove(),jQuery(document.head).find("#style-ui-bar").remove(),Config.ui.updateStoryElements=!1,o=!0)}function n(){o||jQuery("#ui-bar").addClass("stowed")}function a(){o||jQuery("#ui-bar").removeClass("stowed")}function i(){if(!o){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))}}var o=!1;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:18,patch:0,prerelease:null,build:7982,date:new Date("2017-04-26T15:27:50.743Z"),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/devTools/tweeGo/targets/sugarcube-2/sugarcube-2.py b/devTools/tweeGo/targets/sugarcube-2/sugarcube-2.py
index 276ed30df5e9ba7bf1dae7f221ca685de670afcb..b37dd0a705da6dc506dd4792137f1262316a1c95 100644
--- a/devTools/tweeGo/targets/sugarcube-2/sugarcube-2.py
+++ b/devTools/tweeGo/targets/sugarcube-2/sugarcube-2.py
@@ -2,8 +2,8 @@
 #
 # sugarcube-2.py
 #
-# Copyright (c) 2013-2017 Thomas Michael Edwards <tmedwards@motoslave.net>. All rights reserved.
-# Use of this source code is governed by a Simplified BSD License which can be found in the LICENSE file.
+# Copyright (c) 2013-2017 Thomas Michael Edwards <thomasmedwards@gmail.com>. All rights reserved.
+# Use of this source code is governed by a BSD 2-clause "Simplified" License, which may be found in the LICENSE file.
 #
 ########################################################################################################################
 
@@ -61,6 +61,7 @@ class Header (header.Header):
 				'PassageReady',
 				'StoryBanner',
 				'StoryCaption',
+				'StoryInterface',
 				'StoryShare'
 			]
 		if passage.isStylesheet():
diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw
index c8126df541ba7c8e3b199ece8a4f8eec6cf1b915..0d6f17b34e4e2ebfcba3827f301cc4ffadb988fc 100644
--- a/src/pregmod/incubator.tw
+++ b/src/pregmod/incubator.tw
@@ -7,10 +7,7 @@
 	<<set $incubatorNameCaps = $incubatorName.replace("the ", "The ")>>
 <</if>>
 
-<<set $readySlaves = 0, $readySlave = 0, $incubatorSlaves = 0, _TL = $tanks.length, _SL = $slaves.length, _eligibility = 0>>
-<<for _u = 0; _u < _TL; _u++>>
-	<<set $incubatorSlaves += 1>>
-<</for>>
+<<set $readySlaves = 0, $readySlave = 0, $incubatorSlaves = $tanks.length, $freeTanks = $incubator - $incubatorSlaves, _SL = $slaves.length, _eligibility = 0>>
 
 <br><br>
 $incubatorNameCaps is a clean, cold hall designed to be lined with tanks and their connected monitoring systems.
@@ -24,13 +21,15 @@ $incubatorNameCaps is a clean, cold hall designed to be lined with tanks and the
 <</if>>
 
 <br>It can support $incubator <<if $incubator == 1>>child<<else>>children<</if>>.
-<<if $incubator == $incubatorSlaves>>
+<<if $freeTanks == 0>>
 	All of the tanks are currently occupied by growing children.
+<<elseif $incubator > 1 && $reservedChildren < $freeTanks>>
+	[[Remove an incubation tank|Incubator][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $incubator -= 1]] //Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will reduce upkeep costs//
 <</if>>
 [[Add another incubation tank|Incubator][$cash -= Math.trunc(60000*$upgradeMultiplierArcology), $incubator += 1]] //Costs ¤<<print Math.trunc(60000*$upgradeMultiplierArcology)>> and will increase upkeep costs//
 
 <br><br>
-Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $incubator tanks, <<print $incubator-$incubatorSlaves>> are available. Of those, $reservedChildren tanks are reserved.
+Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $incubator tanks, <<print $freeTanks>> <<if $freeTanks == 1>>is<<else>>are<</if>> available. Of those, $reservedChildren <<if $reservedChildren == 1>>tank is<<else>>tanks are<</if>> reserved.
 <<for _u = 0; _u < _SL; _u++>>
 	<<if $slaves[_u].pregType < 50 && $slaves[_u].preg > 3 && $slaves[_u].eggType == "human">>
 	<<if $slaves[_u].assignment == "work in the dairy" && $dairyPregSetting > 0>>
@@ -38,7 +37,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $
 		<<if $slaves[_u].reservedChildren > 0>>
 			<br>
 			$slaves[_u].reservedChildren of ''<<print "[[$slaves[" + _u + "].slaveName|Long Slave Description][$activeSlave = $slaves[" + _u + "], $nextLink = passage(), $eventDescription = 1]]">>@@.link;'s@@'' children will be placed in $incubatorName.
-			<<if ($slaves[_u].reservedChildren < $slaves[_u].pregType) && ($reservedChildren < ($incubator-$incubatorSlaves))>>
+			<<if ($slaves[_u].reservedChildren < $slaves[_u].pregType) && ($reservedChildren < $freeTanks)>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				<<print "[[Keep another child|Incubator][$slaves[" + _u + "].reservedChildren += 1, $reservedChildren += 1]]">>
 				<<if $slaves[_u].reservedChildren > 0>>
@@ -48,12 +47,12 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				<<print "[[Keep one less child|Incubator][$slaves[" + _u + "].reservedChildren -= 1, $reservedChildren -= 1]]">>
 			<</if>>
-		<<elseif $reservedChildren < ($incubator-$incubatorSlaves)>>
+		<<elseif $reservedChildren < $freeTanks>>
 			<br>
 			''<<print "[[$slaves[" + _u + "].slaveName|Long Slave Description][$activeSlave = $slaves[" + _u + "], $nextLink = passage(), $eventDescription = 1]]">>'' is pregnant and you have an available aging tank.
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;
 			<<print "[[Keep a child|Incubator][$slaves[" + _u + "].reservedChildren += 1, $reservedChildren += 1]]">>
-		<<elseif $reservedChildren == ($incubator-$incubatorSlaves)>>
+		<<elseif $reservedChildren == $freeTanks>>
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;
 			You have no room for ''<<print "[[$slaves[" + _u + "].slaveName|Long Slave Description][$activeSlave = $slaves[" + _u + "], $nextLink = passage(), $eventDescription = 1]]">>@@.link;'s@@'' offspring.
 		<</if>>
@@ -66,7 +65,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $
 	//You have no pregnant slaves bearing eligible children.//
 <</if>>
 <<if $PC.preg > 4 && $PC.pregSource != -1>>
-	<<if $reservedChildren < ($incubator-$incubatorSlaves)>>
+	<<if $reservedChildren < $freeTanks>>
 		<br>''@@.pink;You're pregnant@@'' and have an unreserved tank. If it is @@.lime;still available when you give birth, you can place your child into it.@@
 	<<else>>
 		<br>''@@.pink;You're pregnant@@'' but have no unreserved tanks. If a tank is @@.red;not available when you give birth, you will not be able to keep your child.@@
@@ -124,7 +123,7 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu
 <</if>>
 
 <<if $incubatorSlaves > 0>>
-<<for $i = 0; $i < _TL; $i++>>
+<<for $i = 0; $i < $incubatorSlaves; $i++>>
 		<<if $tanks[$i].growTime <= 0>>
 			<<set $readySlaves = 1>>
 			<br><br>@@.pink;$tanks[$i].slaveName@@ is ready to be released from her tank.
@@ -197,7 +196,7 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu
 <</if>>
 
 <<if $readySlaves == 1>>
-	<<for $i = 0; $i < _TL; $i++>>
+	<<for $i = 0; $i < $incubatorSlaves; $i++>>
 		<<if $tanks[$i].growTime <= 0>>
 			<<set $readySlave = $tanks.pluck([$i], [$i])>>
 			<<break>>
diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw
index f994b855f6ba0a27559ea5a64b17242b0b5ab475..9bfea0d7abdf23411741bade98772aa8c89bdd05 100644
--- a/src/pregmod/widgets/pregmodWidgets.tw
+++ b/src/pregmod/widgets/pregmodWidgets.tw
@@ -2199,7 +2199,7 @@ Of her $slaves[$i].pregType children; $slaves[$i].reservedChildren were taken to
 
 <<if $swapFailure > 600>>
 	<<set $args[0].bodySwap = 1>>
-<<elseif $$args[0].bodySwap == 0>>
+<<elseif $args[0].bodySwap == 0>>
 	<<set $args[0].bodySwap = 2>>
 <</if>>
 
diff --git a/src/uncategorized/brothel.tw b/src/uncategorized/brothel.tw
index 8ae8b975133cf70afedf6e02f58995db69295900..3643317f1381ee932f7d78ea7ef1d25fbd1398da 100644
--- a/src/uncategorized/brothel.tw
+++ b/src/uncategorized/brothel.tw
@@ -138,7 +138,9 @@ $brothelNameCaps
 
 <br>
 <<if $brothelUpgradeDrugs == 1>>
-	It has been upgraded with aphrodisiac injection systems that monitor the whores and adjust dosage to keep them healthy but desperately horny and hopelessly addicted.
+	It has been upgraded with aphrodisiac injection systems that monitor the whores and adjust dosage to keep them healthy but desperately horny and hopelessly addicted. [[Disable the aphrodisiac injection systems|Brothel][$brothelUpgradeDrugs = 0.1]] //Will reduce upkeep costs//
+<<elseif $brothelUpgradeDrugs == 0.1>>
+	It has been upgraded with aphrodisiac injection systems that monitor the whores and adjust dosage to keep them healthy but desperately horny and hopelessly addicted. The systems are currently disabled. [[Enable them|Brothel][$brothelUpgradeDrugs = 1]] //Will increase upkeep costs//
 <<else>>
 	<<set _Tmult1 = Math.trunc(10000*$upgradeMultiplierArcology)>>
 	It is a standard brothel. [[Upgrade the brothel with aphrodisiac injection systems|Brothel][$cash -= _Tmult1, $brothelUpgradeDrugs = 1]] //Costs ¤_Tmult1 and will increase upkeep costs//
diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw
index 2ea7e076d01c6e6fa813f42a7ca804eaf935f7ef..e7a03e79884e502f519d73991b14d5f495f654b3 100644
--- a/src/uncategorized/randomIndividualEvent.tw
+++ b/src/uncategorized/randomIndividualEvent.tw
@@ -1409,7 +1409,7 @@
 <</if>>
 
 <<if ($eventSlave.aphrodisiacs > 1) || ($eventSlave.inflationType == "aphrodisiac")>>
-<<if ($eventSlave.speechRules == "restrictive")>>
+<<if ($eventSlave.speechRules == "restrictive") && ($eventSlave.releaseRules !== "permissive")>>
 	<<set $RESSevent.push("extreme aphrodisiacs")>>
 <</if>>
 <</if>>
diff --git a/src/uncategorized/rulesAssistant.tw b/src/uncategorized/rulesAssistant.tw
index 8cfe7d5b52b4a646e9183b529da7f347f910dab5..9845a48679194359c7fb001e354ec9cf9acaea4e 100644
--- a/src/uncategorized/rulesAssistant.tw
+++ b/src/uncategorized/rulesAssistant.tw
@@ -2563,7 +2563,7 @@ Relationship rules: ''$currentRule.relationshipRules.''
 				<<set $currentRule.aVirginAccessory = "anal chastity">>
 				<<set $currentRule.dickAccessory = "none">>
 				<<set $currentRule.aVirginDickAccessory = "anal chastity">>
-				<<set $currentRule.bellyAccessory = "no default settings">>
+				<<set $currentRule.bellyAccessory = "no default setting">>
 				<<set $currentRule.aVirginButtplug = "none">>
 				<<set $currentRule.buttplug = "none">>
 				<<set $currentRule.eyes = "no default setting">>
@@ -2647,7 +2647,7 @@ Relationship rules: ''$currentRule.relationshipRules.''
 				<<set $currentRule.aVirginAccessory = "no default setting">>
 				<<set $currentRule.dickAccessory = "no default setting">>
 				<<set $currentRule.aVirginDickAccessory = "no default setting">>
-				<<set $currentRule.bellyAccessory = "no default settings">>
+				<<set $currentRule.bellyAccessory = "no default setting">>
 				<<set $currentRule.aVirginButtplug = "no default setting">>
 				<<set $currentRule.buttplug = "no default setting">>
 				<<set $currentRule.eyes = "no default setting">>
@@ -2729,7 +2729,7 @@ Relationship rules: ''$currentRule.relationshipRules.''
 				<<set $currentRule.aVirginAccessory = "no default setting">>
 				<<set $currentRule.dickAccessory = "no default setting">>
 				<<set $currentRule.aVirginDickAccessory = "no default setting">>
-				<<set $currentRule.bellyAccessory = "no default settings">>
+				<<set $currentRule.bellyAccessory = "no default setting">>
 				<<set $currentRule.aVirginButtplug = "no default setting">>
 				<<set $currentRule.buttplug = "no default setting">>
 				<<set $currentRule.eyes = "no default setting">>
diff --git a/src/uncategorized/saHormoneEffects.tw b/src/uncategorized/saHormoneEffects.tw
index 014f9a22df5a18501fe7a2190f37bcae5c129caf..ddecb79c398e5ab8870406725e8f18e399dee1dd 100644
--- a/src/uncategorized/saHormoneEffects.tw
+++ b/src/uncategorized/saHormoneEffects.tw
@@ -279,6 +279,9 @@
 
 <<if _Effects.length < 1>>
 	$possessiveCap body has fully adapted to its hormones.
+	<<if $slaves[$i].drugs == "hormone enhancers">>
+		<<set $slaves[$i].drugs = "none">>
+	<</if>>
 <<elseif (_Effects.length < random(-10,10)) && ($hormoneUpgradePower == 0)>>
 	$pronounCap does not experience significant hormone effects this week.
 <<else>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index a8a7868ff63cd1beffa271e60bb74445875e2128..cf2012aa1e50fb8c10c77aa5ca802e05aecc74f8 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -3137,19 +3137,19 @@ and ($slaves[$i].clothes != "a slutty qipao") and ($slaves[$i].clothes != "restr
 
 /* puberty - not announced for allowing surprise pregnancy */
 <<if $slaves[$i].ovaries == 1 || $slaves[$i].mpreg == 1>>
-<<if $slaves[$i].pubertyXX == 0>>
-<<if $slaves[$i].physicalAge >= $slaves[$i].pubertyAgeXX>>
-	<<set $slaves[$i].pubertyXX = 1>>
-<</if>>
-<</if>>
+	<<if $slaves[$i].pubertyXX == 0>>
+		<<if $slaves[$i].physicalAge >= $slaves[$i].pubertyAgeXX>>
+			<<set $slaves[$i].pubertyXX = 1>>
+		<</if>>
+	<</if>>
 <</if>>
 
 <<if $slaves[$i].balls > 0>>
-<<if $slaves[$i].pubertyXY == 0>>
-<<if $slaves[$i].physicalAge >= $slaves[$i].pubertyAgeXY>>
-	<<set $slaves[$i].pubertyXY = 1>>
-<</if>>
-<</if>>
+	<<if $slaves[$i].pubertyXY == 0>>
+		<<if $slaves[$i].physicalAge >= $slaves[$i].pubertyAgeXY>>
+			<<set $slaves[$i].pubertyXY = 1>>
+		<</if>>
+	<</if>>
 <</if>>
 
 <<if $slaves[$i].inflation == 0>>
@@ -3808,7 +3808,7 @@ and ($slaves[$i].clothes != "a slutty qipao") and ($slaves[$i].clothes != "restr
 			is @@.mediumorchid;completely humiliating.@@
 			<<set $slaves[$i].devotion -= 2>>
 			<<if (($slaves[$i].fetish == "none") || ($slaves[$i].fetishStrength <= 10)) && ($fetishChangeChance > random(0,100))>>
-				However, all the eye's on $object and $possessive jiggling middle @@.lightcoral;makes $object begin to crave humiliation.@@
+				However, all the eyes on $object and $possessive jiggling middle @@.lightcoral;makes $object begin to crave humiliation.@@
 				<<set $slaves[$i].fetish = "humiliation">>
 			<</if>>
 		<</if>>
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index aa6587c51b3cb6092d53f165cdbc32b1eb18256a..a2540e7977d66607c0755909bac380d5400392d8 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -341,6 +341,7 @@ __Rules Assistant__
 	<</for>>
 <</if>>
 <br>
+<<if $cyberMod == 0>>/* CyberMod Toggle */
 /* START hotswap prosthetics */
 <<if ndef $activeSlave.readyLimbs>>
 	<<set $activeSlave.readyLimbs = []>>
@@ -352,6 +353,7 @@ __Rules Assistant__
 <span id = "LimbOptions"><<include "Hotswap Prosthetics">></span>
 <</if>>
 /* END hotswap prosthetics */
+<</if>>/* CyberMod Toggle */
 <br>
 <<switch $activeSlave.assignment>>
 <<case "recover from surgery">>
diff --git a/src/uncategorized/slaveSummary.tw b/src/uncategorized/slaveSummary.tw
index 7d3a2c9c71e1a9842617bb86df25a52bbdb10ac7..7abdcb3ff07fcf85d78a31ba4336ba00f09f676d 100644
--- a/src/uncategorized/slaveSummary.tw
+++ b/src/uncategorized/slaveSummary.tw
@@ -911,8 +911,6 @@ Release rules: _Slave.releaseRules.
 		''Dr:Breast-''
 	<<case "butt redistributors">>
 		''Dr:Butt-''
-	<<default>>
-		''Dr:None''
 	<</switch>>
 	<<if _Slave.curatives == 2>>
 		''Cura''
@@ -3197,7 +3195,9 @@ _Slave.faceShape face.
 <</if>>
 <</if>>
 
-<<if $abbreviateRulesets == 2 && (def _Slave.currentRules) && (_Slave.currentRules.length > 0)>>
+<<if _Slave.useRulesAssistant == 0>>
+&nbsp;&nbsp;&nbsp;&nbsp; @@.lightgreen;RA-Exempt@@
+<<elseif $abbreviateRulesets == 2 && (def _Slave.currentRules) && (_Slave.currentRules.length > 0)>>
 &nbsp;&nbsp;&nbsp;&nbsp;
 <<for _r = 0; _r < _Slave.currentRules.length; _r++>>
 	<<for _s = 0; _s < $defaultRules.length; _s++>>
diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw
index b573ecf389ed920bf547d253230cea3e3512c9e7..5f3c86563b8e259b98599aa46c8c5ff066a83e8d 100644
--- a/src/utility/raWidgets.tw
+++ b/src/utility/raWidgets.tw
@@ -3249,7 +3249,11 @@ Your brand design is ''$brandDesign.''
 		<br>$args[0].slaveName's natural belly is too big to properly wear an empathy belly.
 	<<else>>
 		<<set $args[0].bellyAccessory = _currentRule.bellyAccessory>>
-		<br>$args[0].slaveName has been given the proper belly accessory to wear.
+		<<if $args[0].bellyAccessory == "none">>
+			<br>$args[0].slaveName's belly accessory has been removed.
+		<<else>>
+			<br>$args[0].slaveName has been given the proper belly accessory to wear: $args[0].bellyAccessory.
+		<</if>>
 	<</if>>
 <</if>>
 <</if>>