diff --git a/.eslintignore b/.eslintignore
index e070725..1e5f799 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,3 +1,4 @@
/node_modules
/adorn.js
+/adorn_sw.js
/_site
diff --git a/README.md b/README.md
index 0c7bd80..18e2591 100644
--- a/README.md
+++ b/README.md
@@ -2,13 +2,59 @@
Adorn is a theme for *plain* markup. It aims to make unstyled HTML much more user friendly with minimal fuss. Simply include a style and a script into the document.
-Take a look at the simple source of this page [right click view source]
-
It comprises of two external files:
- `/adorn/adorn.css` Basic style for plain markup
- `/adorn/adorn.js` Navigtational UI Components, etc...
+Take a look at the simple source of this page [right click view source]
+
+
+## Options
+
+Adorn will derive options from a few places
+
+- A [Web App Manifest](https://developer.mozilla.org/en-US/docs/Web/Manifest)
+ If a Link tag such as `` can be found it will load the address defined there or take a bet on it being in the root at `/manifest.json`, but if neither exists it'll carry on regardless.
+
+- Document overides come from `` tags with a matching `name` property.
+
+
+
+Default site Favicon to be put into page
+
+ "favicon" : "/favicon.ico",
+
+Github name or name/repo for linking through, edit options
+
+ "github" : "MrSwitch",
+
+Twitter sharing link
+
+ "twitter:creator" : "@setData",
+
+Shoutout message appears in top right of navbar
+
+ "shoutout": "Adorn: make more beautiful or attractive.",
+
+Footer Author link
+
+ "author" : "Andrew Dodson, https://adodson.com",
+
+Serviceworker URL to register.
+
+ "serviceworker": "./adorn_sw.js",
+
+Fallover, page to show when offline
+
+ "fallover" : [{
+ "mode": "navigate",
+ "fallover": "/offline.html"
+ }],
+
+
+
+
## Rules
diff --git a/adorn.js b/adorn.js
index 0855926..21fb5e9 100644
--- a/adorn.js
+++ b/adorn.js
@@ -1,2 +1,2 @@
-!function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=66)}([function(t,e,n){"use strict";var r=n(57),o=n(18),i=n(56);t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};return r(t)?t=[t]:"string"==typeof t&&(t=document.querySelectorAll(t)),o(t,Array)||(t=i(t)),e&&t.forEach(e),t}},function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i="string"==typeof t?document.createElement(t):t;for(var a in e)if(e.hasOwnProperty(a))if("text"===a)i.appendChild(document.createTextNode(e[a]));else if("html"===a)"string"==typeof e[a]?i.innerHTML=e[a]:i.appendChild(e[a]);else if("object"===r(e[a]))for(var u in e[a])e[a].hasOwnProperty(u)&&(i[a][u]=e[a][u]);else i.setAttribute(a,e[a]);return n.forEach(function(t){"string"==typeof t&&(t=document.createTextNode(t)),t&&i.appendChild(t)}),o&&o.appendChild(i),i}},function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=n(0),i=/[\s,]+/,a=!1;try{var u=Object.defineProperty({},"passive",{get:function(){a=!0}});window.addEventListener("test",null,u)}catch(t){}t.exports=function(t,e,n){var u=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return"object"===(void 0===u?"undefined":r(u))&&u.passive&&!a&&(u=!1),e=e.split(i),o(t,function(t){return e.forEach(function(e){return t.addEventListener(e,n,u)})})}},function(t,e,n){"use strict";t.exports=function(t){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:document).querySelector(t)}},function(t,e,n){"use strict";var r=n(2);t.exports=function(t){"loading"!==document.readyState&&document.body?t():r(document,"DOMContentLoaded",t)}},function(t,e,n){"use strict";t.exports=function(t){try{return t.call(null)}catch(t){}}},function(t,e,n){"use strict";t.exports=function(t){if(t.id)return t.id;var e=(t.innerText||t.textContent||t.innerHTML).toLowerCase().replace(/\s/g,"-").replace(/[^a-z0-9_-]/g,"");return t.id=e,e}},function(t,e,n){"use strict";var r=[];function o(){var t=window.location.hash.substr(1);r.forEach(function(e){e.call(null,t)})}n(2)(window,"hashchange",o),t.exports=function(t){t?r.push(t):o()}},function(t,e,n){"use strict";var r=n(0);t.exports=function(t,e){var n=void 0;return r(t,function(t){n||(n=e(t))}),n}},function(t,e,n){"use strict";t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"&",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"=",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(t){return t};return Object.keys(t).map(function(e){var o=r(t[e]);return e+(null!==o?n+o:"")}).join(e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=h(n(0)),o=h(n(8)),i=h(n(11)),a=h(n(2)),u=h(n(1)),c=h(n(35)),s=h(n(6)),l=h(n(4)),f=h(n(7)),d=h(n(34)),p=h(n(33));function h(t){return t&&t.__esModule?t:{default:t}}var m=new d.default;(0,l.default)(function(){var t=(0,r.default)("h1,h2");if(document.querySelector&&!(document.documentElement.className||"").match(/adorn-(nav|toc)-off/)){(0,r.default)(t,function(t){var e=(0,s.default)(t);t.insertBefore((0,u.default)("a",{name:e,href:"#"+e,"aria-label":"Jump to "+t.innerText,class:"adorn-anchor"}),t.firstChild)});var e=window.location.hash;if(e&&e.length>2){var n=document.querySelector(window.location.hash);n&&n.scrollIntoView()}t.length&&setTimeout(function(){(0,i.default)(document.documentElement,"adorn-toc-on")}),m.resolve(t);var l=(0,p.default)();(0,a.default)(window,"scroll",function(){(0,p.default)(function(t){if("complete"===document.readyState){var e=window.scrollY||window.pageYOffset,n=window.innerHeight,r=document.querySelector(".adorn-toolbar"),i=void 0,a=r&&r.offsetHeight||50,u=window.location.hash;if(u){var s=document.querySelector(u);if(s){var l=(0,c.default)(s)[1];if(l>e&&l2&&void 0!==arguments[2]?arguments[2]:0,i=0,a=void 0,u=document.getElementsByTagName("script")[0].parentNode,c=function(t){!i++&&e&&e(t),a&&clearTimeout(a)};n&&(a=window.setTimeout(function(){c(o("timeout"))},n));var s=r("script",{src:t,onerror:c,onload:c,onreadystatechange:function(){/loaded|complete/i.test(s.readyState)&&c(o("load"))}});return s.async=!0,u.insertBefore(s,u.firstChild),s}},function(t,e,n){"use strict";var r=n(8),o=document.createElement("div"),i=o.matches||o.mozMatchesSelector||o.webkitMatchesSelector||o.msMatchesSelector||o.oMatchesSelector;t.exports=function(t,e){var n=e;return"string"==typeof e&&(n=function(t){return i.call(t,e)}),r(t,n)}},function(t,e,n){"use strict";t.exports=function(t,e){return e.parentNode.insertBefore(t,e)}},function(t,e,n){"use strict";t.exports=document.documentElement||document.body.parentNode},function(t,e,n){"use strict";t.exports=function(t,e){return e&&t instanceof e}},function(t,e,n){"use strict";var r=n(8);t.exports=function(t,e){var n=new RegExp("(^|\\s)"+e+"($|\\s)","i");return r(t,function(t){return(t.className||"").match(n)})}},function(t,e,n){"use strict";var r=n(5),o=n(3);t.exports=function(t){return r(function(){return o('meta[name="'+t+'"]').content})}},function(t,e,n){"use strict";t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"./";if(!t)return"";try{return new URL(t,new URL(e,window.location)).href||t}catch(e){return t}}},function(t,e,n){"use strict";var r=n(9),o=document.documentElement,i=[["Top","Height"],["Left","Width"]];t.exports=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i.forEach(function(t){var e=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&u.return&&u.return()}finally{if(o)throw i}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(t,2),n=e[0],r=e[1],i=n.toLowerCase(),a=r.toLowerCase();if(this[a]&&!(i in this)){var u=void 0!==window["screen"+n]?window["screen"+n]:screen[i],c=screen[a]||window["inner"+r]||o["client"+r];this[i]=parseInt((c-this[a])/2,10)+u}}.bind(n)),window.open(t,e,r(n,","))}},function(t,e,n){"use strict";var r=n(9),o=function(t){return"?"===t?"?":encodeURIComponent(t)};t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o;return r(t,"&","=",e)}},function(t,e,n){"use strict";t.exports=function(){for(var t=arguments.length,e=Array(t),n=0;n2&&void 0!==arguments[2]?arguments[2]:"_tricks_";return e=e||n+r(),window[e]=function(t,e){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;o3&&void 0!==arguments[3]?arguments[3]:6e4,u=void 0;n=r(function(t){return u=t,!0},n),t=t.replace(i,"="+n+"$1");var c=o(t,function(){e(u),c.parentNode.removeChild(c)},a);return c}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.github_btn=function(t){var e=[],n=t.paths;if(t.github){var i=t.github;if(!i.match("/")&&n.length&&(i+="/"+n[0].replace(/\/$/,"")),i.match("/")){var c="https://github.com/"+i,s=h("source")||(window.location.pathname||"").replace(/^\/?([^/]+)/g,"").replace(/\/$/,"index.html").replace(/^\//,"");return e.push((0,a.default)("a",{href:(0,d.default)(s,c+"/blob/master/"),target:"_blank",rel:"noopener",id:"adorn-edit"},["Edit this page"]),(0,a.default)("span"),(0,a.default)("a",{href:""+c,target:"_blank",rel:"noopener",title:"Stars",id:"adorn-github-button"},[(0,a.default)("i",{class:"adorn-icon-github"}),(0,a.default)("span",{class:"adorn-speeach-bubble"})])),(0,o.default)("https://api.github.com/repos/"+i+"?callback=?",function(t){t&&t.data&&t.data.watchers&&(0,r.default)(".adorn-github-button span.adorn-speeach-bubble",function(e){e.innerHTML=t.data.watchers||""})}),u.default.apply(void 0,e)}}},e.twitter_btn=function(t){var e=[],n=t["twitter:creator"]||(0,s.default)("twitter:creator");if(n){var l=(0,a.default)("a",{href:"https://twitter.com/share",class:"adorn-twitter-button",target:"_blank",rel:"noopener","data-via":n.replace("@",""),title:"Tweet"},[(0,a.default)("i",{class:"adorn-icon-twitter"})]);return e.push(l,(0,a.default)("a",{href:"https://twitter.com/search?ref_src=twsrc%5Etfw&q="+encodeURIComponent(m),class:"adorn-twitter-count",rel:"noopener","aria-label":"Twitter comments",target:"_blank"},[(0,a.default)("i",{class:"adorn-speeach-bubble"})])),(0,o.default)("https://cdn.syndication.twitter.com/widgets/tweetbutton/count.json?url="+encodeURIComponent(m),function(t){t&&(0,r.default)(".adorn-twitter-count span.adorn-speeach-bubble",function(e){e.innerHTML=t.count||"",e.title="This page has been shared "+t.count+" times, view these tweets"})}),(0,i.default)(l,"click",function(e){e.preventDefault();var r={text:document.title,via:n.replace("@",""),url:window.location.href.replace(/#.*/,"")},o=(0,s.default)("twitter:hashtag")||t["twitter:hashtag"];o&&(r.hashtag=o),(0,f.default)("https://twitter.com/intent/tweet?"+(0,c.default)(r),"twitter",{width:550,height:250})}),u.default.apply(void 0,e)}},e.share_btn=function(){if("share"in navigator){var t=[],e=(0,a.default)("button",{class:"adorn-icon-share",target:"_blank",rel:"noopener",title:"Share"});return t.push(e),(0,i.default)(e,"click",function(){try{navigator.share({title:document.title,text:document.title,url:location.href}).then(function(){e.style.color="green"})}catch(t){e.style.color="red"}}),u.default.apply(void 0,t)}};var r=p(n(0)),o=p(n(27)),i=p(n(2)),a=p(n(1)),u=p(n(24)),c=p(n(23)),s=p(n(20)),l=p(n(3)),f=p(n(22)),d=p(n(21));function p(t){return t&&t.__esModule?t:{default:t}}var h=function(){var t=(0,l.default)("link[rel=source]");if(t)return t.getAttribute("href")},m=window.location.href},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=s(n(0)),o=s(n(2)),i=s(n(1)),a=s(n(6)),u=s(n(7)),c=s(n(10));function s(t){return t&&t.__esModule?t:{default:t}}e.default=function(t){(0,c.default)(function(e){if(!(e.lenth<2)){var n=function(t){var e=(0,i.default)("div",{class:"adorn-toc"}),n=(0,i.default)("select",{"aria-label":"menu"},[],e),c=[];(0,o.default)(n,"change",function(){window.location.hash=n.options[n.selectedIndex].value});var s=n;return(0,r.default)(t,function(t){var e=+t.tagName.match(/[0-9]/)[0],r=t.innerText||t.textContent||t.innerHTML,o=(0,a.default)(t);1===e&&(s=(0,i.default)("optgroup",{label:r},[],n)),(0,i.default)("option",{value:o},[r],s),c.push(o)}),(0,u.default)(function(t){n.selectedIndex=c.indexOf(t)}),e}(e);t.appendChild(n)}})},t.exports=e.default},function(t,e,n){"use strict";t.exports=function(t,e){return e&&0===t.indexOf(e)?t.slice(e.length):t}},function(t,e,n){"use strict";t.exports=function(t){if(t){if(window.URL&&URL instanceof Function&&0!==URL.length)return new URL(t,window.location);var e=document.createElement("a");return e.href=t,e.cloneNode(!1)}return window.location}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=s(n(1)),o=s(n(31)),i=s(n(30)),a=s(n(16)),u=s(n(29)),c=n(28);function s(t){return t&&t.__esModule?t:{default:t}}e.default=function(t){var e=window.location.pathname||"",n=(0,o.default)(t.root).pathname,s=(e=(e=(0,i.default)(e,n)).replace(/^\//g,"")).split(/([^/]+\/?)/).filter(function(t){return!!t});t.paths=s;var l=[(0,r.default)("a",{href:t.root},[(0,r.default)("img",{src:t.favicon,alt:window.location.hostname,title:t.name})])];s.forEach(function(e,n){var o=t.root+s.slice(0,n+1).join(""),i=e.replace(/\.(html?)$/,"");l.push(" ",(0,r.default)("a",{href:o},[i]))});var f=(0,r.default)("div",{class:"adorn-breadcrumbs"},l),d=[(0,c.github_btn)(t),(0,c.twitter_btn)(t),(0,c.share_btn)(t)].reduce(function(t,e){return e?(t.length&&t.push((0,r.default)("span")),t.push(e),t):t},[]),p=(0,r.default)("div",{class:"adorn-links"},d);t.shoutout&&(p.appendChild((0,r.default)("span")),p.insertAdjacentHTML("beforeend",t.shoutout));var h=(0,r.default)("aside",{class:"adorn-toolbar"},[f,p]);(0,a.default)(h,document.body.firstElementChild||document.body.firstChild),(0,u.default)(f)},t.exports=e.default},function(t,e,n){"use strict";var r=1,o={};t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r++;return n&&o[n]&&(clearTimeout(o[n]),delete o[n]),t&&(o[n]=setTimeout(function(){t()},e)),n}},function(t,e,n){"use strict";var r=function(){function t(t,e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:document.body,o=r(t,e);return n.insertBefore(o,n.firstChild),o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=d(n(0)),o=d(n(11)),i=d(n(1)),a=d(n(39)),u=d(n(38)),c=d(n(36)),s=d(n(7)),l=d(n(10)),f=d(n(6));function d(t){return t&&t.__esModule?t:{default:t}}e.default=function(){(0,l.default)(function(t){if(t.length<2)(0,o.default)(document.documentElement,"adorn-sidebar-off");else{var e=0,n=(0,a.default)("aside",{class:"adorn-sidebar"}),l={};(0,r.default)(t,function(t){var r=+t.tagName.match(/[0-9]/)[0],o=function(t,e,n){if(en);return t}(n,e,r);e=r;var a=t.innerText||t.textContent||t.innerHTML,c=(0,f.default)(t);l[c]=n=(0,i.default)("li",{},[(0,i.default)("a",{href:"#"+c},[a])],o)}),(0,s.default)(function(t){var e=l[t];e&&((0,c.default)(".adorn-sidebar .selected","selected"),(0,o.default)(e,"selected"))})}})},t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=i(n(4)),o=i(n(1));function i(t){return t&&t.__esModule?t:{default:t}}e.default=function(t){t.author&&(0,r.default)(function(){var e=t.author.split(/\s*, \s*/);if(e){var n=["Authored by "];e[1]?n.push((0,o.default)("a",{href:e[1],rel:"author"},[e[0]])):n.push(e[0]),(0,o.default)("footer",{},n,document.body)}})},t.exports=e.default},function(t,e,n){"use strict";t.exports=function(t,e){e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t)}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _each=__webpack_require__(0),_each2=_interopRequireDefault(_each),_on=__webpack_require__(2),_on2=_interopRequireDefault(_on),_create=__webpack_require__(1),_create2=_interopRequireDefault(_create),_insertAfter=__webpack_require__(42),_insertAfter2=_interopRequireDefault(_insertAfter);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function tryitButton(pre,func){var btn=(0,_create2.default)("button",{class:"tryit"},["tryit"]);(0,_insertAfter2.default)(btn,pre),(0,_on2.default)(btn,"click",function(){if(func)func();else{if("function"==typeof tryit&&!tryit(pre.innerText))return;setTimeout(function(){return eval(pre.innerText)},100)}}),func||pre.setAttribute("contenteditable",!0)}exports.default=function(){(0,_each2.default)("pre",function(t){"tryit"!==t.className&&"tryitoffline"!==t.className||tryitButton(t)}),(0,_each2.default)("script",function(t){var e=t.getAttribute("data-tryit");e&&tryitButton(t,window[e]),t.getAttribute("src")&&(0,_on2.default)(t,"click",function(){window.open(t.getAttribute("src"),"_blank")})}),(0,_each2.default)("link",function(t){t.getAttribute("href")&&(0,_on2.default)(t,"click",function(){window.open(t.getAttribute("href"),"_blank")})})},module.exports=exports.default},function(t,e,n){"use strict";var r=i(n(4)),o=i(n(12));function i(t){return t&&t.__esModule?t:{default:t}}(0,r.default)(function(){(0,o.default)("a[target=_blank]:not([rel=noopener])",{rel:"noopener"})})},function(t,e,n){"use strict";var r={bubbles:!0,cancelable:!0},o=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r;return new Event(t,e)};try{o("test")}catch(t){o=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,n=document.createEvent("Event");return n.initEvent(t,!!e.bubbles,!!e.cancelable),n}}t.exports=o},function(t,e,n){"use strict";var r=n(14);t.exports=function(t){window._gaq=window._gaq||[],_gaq.push(["_setAccount",t]),_gaq.push(["_trackPageview"]),r(("https:"===document.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js")}},function(t,e,n){"use strict";var r=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);t.exports=r},function(t,e,n){"use strict";var r=n(47),o=/^file:\/{3}[^/]/i.test(window.location.href);t.exports=r&&o},function(t,e,n){"use strict";var r=n(0),o=/[\s,]+/;t.exports=function(t,e,n){return e=e.split(o),r(t,function(t){return e.forEach(function(e){return t.removeEventListener(e,n)})})}},function(t,e,n){"use strict";var r=n(2),o=n(49),i=n(15);t.exports=function(t,e,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:document,u=function(e){for(var r=e.target;r;){if(i(r,t)){e.delegateTarget=r,n(e);break}r=r.parentNode}};return r(a,e,u),{remove:function(){return o(a,e,u)}}}},function(t,e,n){"use strict";var r=n(50),o=n(48);t.exports=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;if(!o)return!1;r("a","click",function(t){var e=t.delegateTarget;e.href&&e.href.match(/^https?:\/\//)&&(t.preventDefault(),window.open(e.href,"_system"))},t)}},function(t,e,n){"use strict";var r=i(n(16)),o=i(n(1));function i(t){return t&&t.__esModule?t:{default:t}}(0,i(n(3)).default)("meta[name=viewport]")||(0,r.default)((0,o.default)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),document.getElementsByTagName("script")[0])},function(t,e,n){"use strict";"header,section,datalist,option,footer,nav,menu,aside,article,style,script".split(",").forEach(function(t){return document.createElement(t)})},function(t,e,n){"use strict";t.exports=function(t,e){document.documentElement.className=document.documentElement.className+" "+(e?"":"no-")+t}},function(t,e,n){"use strict";var r=n(54),o="ontouchstart"in window;r("touch",o),t.exports=o},function(t,e,n){"use strict";t.exports=function(t){return Array.prototype.slice.call(t)}},function(t,e,n){"use strict";var r=n(18),o="undefined"!=typeof HTMLElement&&HTMLElement||"undefined"!=typeof Element&&Element,i="undefined"!=typeof HTMLDocument&&HTMLDocument||"undefined"!=typeof Document&&Document,a=window.constructor;t.exports=function(t){return r(t,o)||r(t,i)||r(t,a)}},function(t,e,n){"use strict";var r=n(5),o=n(3);t.exports=function(t){return r(function(){return o('link[rel="'+t+'"]').href})}},function(t,e,n){"use strict";var r=n(5);t.exports=function(t){return r(function(){return JSON.parse(t)})}},function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=n(59),i=n(5);t.exports=function(t,e){var n=new XMLHttpRequest;n.onload=function(){var t="object"===r(n.response)?n.response:o(n.response);e(t)},n.onerror=e,n.open("GET",t),"responseType"in n&&i(function(){return n.responseType="json"}),n.send()}},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var n=e.protocol+"//"+e.host,r=n+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var o,i=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?t:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},function(t,e,n){var r,o,i={},a=(r=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=r.apply(this,arguments)),o}),u=function(t){var e={};return function(t){if("function"==typeof t)return t();if(void 0===e[t]){var n=function(t){return document.querySelector(t)}.call(this,t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}}(),c=null,s=0,l=[],f=n(61);function d(t,e){for(var n=0;n=0&&l.splice(e,1)}function b(t){var e=document.createElement("style");return t.attrs.type="text/css",v(e,t.attrs),h(t,e),e}function v(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function w(t,e){var n,r,o,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var a=s++;n=c||(c=b(e)),r=x.bind(null,n,a,!1),o=x.bind(null,n,a,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",v(e,t.attrs),h(t,e),e}(e),r=function(t,e,n){var r=n.css,o=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=f(r)),o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var a=new Blob([r],{type:"text/css"}),u=t.href;t.href=URL.createObjectURL(a),u&&URL.revokeObjectURL(u)}.bind(null,n,e),o=function(){m(n),n.href&&URL.revokeObjectURL(n.href)}):(n=b(e),r=function(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute("media",r),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){m(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(e=e||{}).attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=a()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=p(t,e);return d(n,e),function(t){for(var r=[],o=0;oa.adorn-anchor{opacity:.5}a.adorn-anchor:hover{opacity:1}a.adorn-anchor:before{content:\"#\";position:absolute;left:-1em;color:inherit;vertical-align:middle}a.adorn-anchor:hover:before{-webkit-transform:scale(1.1);-webkit-transform-origin:50% 50%;transform:scale(1.1);transform-origin:50% 50%}.adorn-toolbar{-webkit-transform:translateZ(0);-webkit-transform-origin:0 0;transform:translateZ(0);transform-origin:0 0;-webkit-animation:fadeIn .3s ease;animation:fadeIn .3s ease;background-color:#fff;height:50px;color:#000;display:-webkit-flex;display:flex;-webkit-flex-flow:row;flex-flow:row;-webkit-justify-content:space-between;justify-content:space-between;left:0;right:0;margin:0;padding:5px 10px;position:fixed;top:0;z-index:1;white-space:nowrap}.adorn-toolbar>:last-child{text-align:right;margin-left:20px}.adorn-toolbar>:first-child{text-align:left}.adorn-toolbar>*{flex:1 0 auto;-webkit-flex:1 0 auto;white-space:normal;display:inline-block}.adorn-toolbar:after{content:\"\";border-bottom:1px solid #c7c7c7;position:absolute;bottom:0;width:100%;left:0;z-index:-1;-webkit-animation:fillWidth 1s linear forwards;animation:fillWidth 1s linear forwards}@media (max-width:650px),screen and (max-device-width:480px){.adorn-toolbar{transition:-webkit-transform 1s;transition:transform 1s}.adorn-toolbar #adorn-edit,.adorn-toolbar #adorn-edit+*{display:none}}.adorn-breadcrumbs{white-space:nowrap}.adorn-breadcrumbs>*{display:inline-block;transition:all .3s ease-in}.adorn-breadcrumbs>*>img{margin:-5px 10px -5px 0;background:hsla(0,0%,100%,.2);border-radius:50%;height:36px;vertical-align:middle;width:36px;transition:all .3s}.adorn-breadcrumbs>*>img:hover{-webkit-transform:scale(2.5);-webkit-transform-origin:50% 50%;transform:scale(2.5);transform-origin:50% 50%;filter:none}.adorn-breadcrumbs>:hover~*{transition:all 1s ease-in;-webkit-transform:translateX(50px);-webkit-transform-origin:0 0;transform:translateX(50px);transform-origin:0 0;opacity:0;filter:alpha(opacity=0)}.adorn-breadcrumbs>:last-child{text-decoration:none;color:#444}.adorn-links{white-space:nowrap}.adorn-links>span{margin:0 20px}.adorn-links>span:after{content:\"\\22C5\"}@media (max-width:650px),screen and (max-device-width:480px){.adorn-links>span{margin:0 2px}}@-webkit-keyframes slideInDown{0%{transform:translateY(-100px);-webkit-transform:translateY(-100px)}}@keyframes slideInDown{0%{transform:translateY(-100px);-webkit-transform:translateY(-100px)}}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.webkit{content:\"\"}@-webkit-keyframes fillWidth{0%{width:0;left:50%}to{width:100%;left:0}}.key{content:\"\"}@keyframes fillWidth{0%{width:0;left:50%}to{width:100%;left:0}}.adorn-toc{display:inline-block;margin-left:5px}.adorn-toc:before{content:\"#\"}.adorn-sidebar{background:#eee;border-right:1px solid #c7c7c7;height:calc(100% - 50px);left:0;overflow:auto;padding:10px;position:fixed;top:50px;width:200px;-webkit-animation:fadeIn 1s ease;animation:fadeIn 1s ease}@media (max-width:1048px){.adorn-sidebar{display:none}}.adorn-sidebar a{text-decoration:none;color:inherit}.adorn-sidebar a:hover{color:#0c50c7}.adorn-sidebar li,.adorn-sidebar ul{margin:0;padding:0}.adorn-sidebar>ul{margin:0 -10px}.adorn-sidebar>ul>li>a{font-weight:700}.adorn-sidebar li{list-style:none;padding:0 10px}.adorn-sidebar li.selected>a{color:#0c50c7}.adorn-sidebar li li{font-size:.9em}@supports (appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none){.adorn-toc select{font:inherit;appearance:none;-webkit-appearance:none;-moz-appearance:none;text-decoration:underline;height:2em}.adorn-toc select:not(:focus){border-color:transparent;color:inherit;background-color:inherit}.adorn-toc select::-ms-expand{display:none}}.clearfix{display:inline-block}.clearfix:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}* html .clearfix{height:1%}.clearfix{display:block}.adorn-icon-github{color:inherit;display:inline-block;font-style:normal;text-decoration:inherit}.adorn-icon-github:after{content:\"GitHub\"}.adorn-icon-twitter{background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M27.49 10.126c.011.254.017.507.017.766 0 7.808-5.942 16.809-16.813 16.809a16.72 16.72 0 0 1-9.056-2.653c.463.058.932.083 1.408.083 2.769 0 5.317-.944 7.341-2.534a5.9 5.9 0 0 1-5.52-4.097c.36.067.729.104 1.111.104.54 0 1.185-.071 1.68-.208-2.704-.541-4.616-2.929-4.616-5.795v-.075c0 .441 1.584.711 2.552.74-1.584-1.06-2.69-2.87-2.69-4.917 0-1.085.261-2.101.768-2.974 2.916 3.578 7.255 5.928 12.167 6.173a5.702 5.702 0 0 1-.16-1.343 5.9 5.9 0 0 1 5.901-5.907 5.89 5.89 0 0 1 4.312 1.863 11.91 11.91 0 0 0 3.754-1.431 5.909 5.909 0 0 1-2.598 3.266 12.019 12.019 0 0 0 3.392-.928 11.983 11.983 0 0 1-2.948 3.057z' fill='%23black'/%3E%3C/svg%3E\") no-repeat 50%;background-size:1em}.adorn-icon-share,.adorn-icon-twitter{width:1em;height:1em;font-size:1.5em;vertical-align:middle;display:inline-block}.adorn-icon-share{background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath stroke='null' d='M26.293 20.872a5.39 5.39 0 0 0-3.933 1.705l-11.563-5.7c.04-.266.067-.538.067-.818 0-.271-.026-.536-.064-.797l11.546-5.637a5.395 5.395 0 0 0 3.947 1.72c3 0 5.433-2.45 5.433-5.47 0-3.02-2.432-5.468-5.433-5.468s-5.432 2.448-5.432 5.469c0 .271.026.536.064.797L9.38 12.31a5.395 5.395 0 0 0-3.947-1.72C2.432 10.59 0 13.04 0 16.06c0 3.02 2.432 5.468 5.432 5.468 1.55 0 2.944-.656 3.933-1.704l11.563 5.7a5.43 5.43 0 0 0-.068.817c0 3.021 2.432 5.469 5.432 5.469s5.433-2.448 5.433-5.469c0-3.02-2.431-5.469-5.432-5.469z'/%3E%3C/svg%3E\") no-repeat 50%;background-size:1em}.adorn-speeach-bubble{color:#444;margin-left:5px;position:relative;line-height:1;text-align:center;display:inline-block;background-color:#fff;border:1px solid #444;color:#000;border-radius:15%;padding:5px;transition:all .3s cubic-bezier(.68,-.55,.265,1.55)}.adorn-speeach-bubble:after,.adorn-speeach-bubble:before{position:absolute;left:-6px;bottom:5px;content:\" \";width:0;height:0;padding:0;border:5px solid transparent;border-width:3.5px 5px;border-right-color:inherit;border-left-width:0}.adorn-speeach-bubble:after{border-right-color:#fff;left:-4px;border-width:2.975px 4.25px;border-left-width:0;bottom:5.5px}.adorn-speeach-bubble:empty{-webkit-transform:scale(.01);-webkit-transform-origin:50% 50%;transform:scale(.01);transform-origin:50% 50%;opacity:0}",""])},function(t,e,n){var r=n(64);"string"==typeof r&&(r=[[t.i,r,""]]),n(62)(r,{hmr:!0,transform:void 0,insertInto:void 0}),r.locals&&(t.exports=r.locals)},function(t,e,n){"use strict";n(65);var r=w(n(60)),o=w(n(21)),i=w(n(20)),a=w(n(58)),u=w(n(3)),c=w(n(1)),s=w(n(19)),l=w(n(17)),f=w(n(4));n(55),n(53),n(52);var d=w(n(51)),p=w(n(46));n(44);var h=w(n(43)),m=w(n(41)),b=w(n(40)),v=w(n(32));function w(t){return t&&t.__esModule?t:{default:t}}(0,f.default)(h.default);var g=(0,i.default)("manifest")||(0,a.default)("manifest")||"/manifest.json";(0,r.default)(g,function t(e,n){if(!n||(0,i.default)("manifest")||(0,a.default)("manifest")||(0,c.default)("link",{rel:"manifest",href:e},[],document.head),n&&n.theme_color&&!(0,i.default)("theme-color")&&(0,c.default)("meta",{name:"theme-color",content:n.theme_color},[],document.head),document.body){(n=n||{}).favicon=(0,i.default)("favicon")||(0,o.default)(n.favicon,e)||"/favicon.ico",n.author=(0,i.default)("author")||n.author,n.root=(0,i.default)("root")||(0,o.default)(n.root||"/",e),(0,s.default)(l.default,"no-adorn")||((0,v.default)(n),(0,b.default)(n),(0,m.default)(n)),l.default.getAttribute("lang")||l.default.setAttribute("lang",n.lang||"en"),document.title||(document.title=(0,u.default)("h1,h2").textContent||"");var r=(0,i.default)("ga:tracking")||n["ga:tracking"];r&&(0,p.default)(r);var d=(0,i.default)("sw")||(0,i.default)("serviceworker");d?d=(0,o.default)(d):(d=n.sw||n.serviceworker)&&(d=(0,o.default)(d,e));var h=navigator.serviceWorker;d&&h&&(h.ready.then(function(){var t=n.fallover;t&&t.forEach(function(t){var n=t.mode,r=t.fallover;r=(0,o.default)(r,e),h.controller.postMessage({type:"fallover",fallover:r,mode:n})})}),h.register(d).catch(function(t){}))}else(0,f.default)(t.bind(null,e,n))}.bind(null,g)),(0,d.default)()}]);
+!function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=66)}([function(t,e,n){"use strict";var r=n(57),o=n(18),i=n(56);t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};return r(t)?t=[t]:"string"==typeof t&&(t=document.querySelectorAll(t)),o(t,Array)||(t=i(t)),e&&t.forEach(e),t}},function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i="string"==typeof t?document.createElement(t):t;for(var a in e)if(e.hasOwnProperty(a))if("text"===a)i.appendChild(document.createTextNode(e[a]));else if("html"===a)"string"==typeof e[a]?i.innerHTML=e[a]:i.appendChild(e[a]);else if("object"===r(e[a]))for(var u in e[a])e[a].hasOwnProperty(u)&&(i[a][u]=e[a][u]);else i.setAttribute(a,e[a]);return n.forEach(function(t){"string"==typeof t&&(t=document.createTextNode(t)),t&&i.appendChild(t)}),o&&o.appendChild(i),i}},function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=n(0),i=/[\s,]+/,a=!1;try{var u=Object.defineProperty({},"passive",{get:function(){a=!0}});window.addEventListener("test",null,u)}catch(t){}t.exports=function(t,e,n){var u=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return"object"===(void 0===u?"undefined":r(u))&&u.passive&&!a&&(u=!1),e=e.split(i),o(t,function(t){return e.forEach(function(e){return t.addEventListener(e,n,u)})})}},function(t,e,n){"use strict";t.exports=function(t){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:document).querySelector(t)}},function(t,e,n){"use strict";var r=n(2);t.exports=function(t){"loading"!==document.readyState&&document.body?t():r(document,"DOMContentLoaded",t)}},function(t,e,n){"use strict";t.exports=function(t){try{return t.call(null)}catch(t){}}},function(t,e,n){"use strict";t.exports=function(t){if(t.id)return t.id;var e=(t.innerText||t.textContent||t.innerHTML).toLowerCase().replace(/\s/g,"-").replace(/[^a-z0-9_-]/g,"");return t.id=e,e}},function(t,e,n){"use strict";var r=[];function o(){var t=window.location.hash.substr(1);r.forEach(function(e){e.call(null,t)})}n(2)(window,"hashchange",o),t.exports=function(t){t?r.push(t):o()}},function(t,e,n){"use strict";var r=n(0);t.exports=function(t,e){var n=void 0;return r(t,function(t){n||(n=e(t))}),n}},function(t,e,n){"use strict";t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"&",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"=",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(t){return t};return Object.keys(t).map(function(e){var o=r(t[e]);return e+(null!==o?n+o:"")}).join(e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=h(n(0)),o=h(n(8)),i=h(n(11)),a=h(n(2)),u=h(n(1)),c=h(n(35)),s=h(n(6)),l=h(n(4)),f=h(n(7)),d=h(n(34)),p=h(n(33));function h(t){return t&&t.__esModule?t:{default:t}}var m=new d.default;(0,l.default)(function(){var t=(0,r.default)("h1,h2");if(document.querySelector&&!(document.documentElement.className||"").match(/adorn-(nav|toc)-off/)){(0,r.default)(t,function(t){var e=(0,s.default)(t);t.insertBefore((0,u.default)("a",{name:e,href:"#"+e,"aria-label":"Jump to "+t.innerText,class:"adorn-anchor"}),t.firstChild)});var e=window.location.hash;if(e&&e.length>2){var n=document.querySelector(window.location.hash);n&&n.scrollIntoView()}t.length&&setTimeout(function(){(0,i.default)(document.documentElement,"adorn-toc-on")}),m.resolve(t);var l=(0,p.default)();(0,a.default)(window,"scroll",function(){(0,p.default)(function(t){if("complete"===document.readyState){var e=window.scrollY||window.pageYOffset,n=window.innerHeight,r=document.querySelector(".adorn-toolbar"),i=void 0,a=r&&r.offsetHeight||50,u=window.location.hash;if(u){var s=document.querySelector(u);if(s){var l=(0,c.default)(s)[1];if(l>e&&l2&&void 0!==arguments[2]?arguments[2]:0,i=0,a=void 0,u=document.getElementsByTagName("script")[0].parentNode,c=function(t){!i++&&e&&e(t),a&&clearTimeout(a)};n&&(a=window.setTimeout(function(){c(o("timeout"))},n));var s=r("script",{src:t,onerror:c,onload:c,onreadystatechange:function(){/loaded|complete/i.test(s.readyState)&&c(o("load"))}});return s.async=!0,u.insertBefore(s,u.firstChild),s}},function(t,e,n){"use strict";var r=n(8),o=document.createElement("div"),i=o.matches||o.mozMatchesSelector||o.webkitMatchesSelector||o.msMatchesSelector||o.oMatchesSelector;t.exports=function(t,e){var n=e;return"string"==typeof e&&(n=function(t){return i.call(t,e)}),r(t,n)}},function(t,e,n){"use strict";t.exports=function(t,e){return e.parentNode.insertBefore(t,e)}},function(t,e,n){"use strict";t.exports=document.documentElement||document.body.parentNode},function(t,e,n){"use strict";t.exports=function(t,e){return e&&t instanceof e}},function(t,e,n){"use strict";var r=n(8);t.exports=function(t,e){var n=new RegExp("(^|\\s)"+e+"($|\\s)","i");return r(t,function(t){return(t.className||"").match(n)})}},function(t,e,n){"use strict";var r=n(5),o=n(3);t.exports=function(t){return r(function(){return o('meta[name="'+t+'"]').content})}},function(t,e,n){"use strict";t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"./";if(!t)return"";try{return new URL(t,new URL(e,window.location)).href||t}catch(e){return t}}},function(t,e,n){"use strict";var r=n(9),o=document.documentElement,i=[["Top","Height"],["Left","Width"]];t.exports=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i.forEach(function(t){var e=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&u.return&&u.return()}finally{if(o)throw i}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(t,2),n=e[0],r=e[1],i=n.toLowerCase(),a=r.toLowerCase();if(this[a]&&!(i in this)){var u=void 0!==window["screen"+n]?window["screen"+n]:screen[i],c=screen[a]||window["inner"+r]||o["client"+r];this[i]=parseInt((c-this[a])/2,10)+u}}.bind(n)),window.open(t,e,r(n,","))}},function(t,e,n){"use strict";var r=n(9),o=function(t){return"?"===t?"?":encodeURIComponent(t)};t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o;return r(t,"&","=",e)}},function(t,e,n){"use strict";t.exports=function(){for(var t=arguments.length,e=Array(t),n=0;n2&&void 0!==arguments[2]?arguments[2]:"_tricks_";return e=e||n+r(),window[e]=function(t,e){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;o3&&void 0!==arguments[3]?arguments[3]:6e4,u=void 0;n=r(function(t){return u=t,!0},n),t=t.replace(i,"="+n+"$1");var c=o(t,function(){e(u),c.parentNode.removeChild(c)},a);return c}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.github_btn=function(t){var e=[],n=t.paths;if(t.github){var i=t.github;if(!i.match("/")&&n.length&&(i+="/"+n[0].replace(/\/$/,"")),i.match("/")){var c="https://github.com/"+i,s=h("source")||(window.location.pathname||"").replace(/^\/?([^/]+)/g,"").replace(/\/$/,"index.html").replace(/^\//,"");return e.push((0,a.default)("a",{href:(0,d.default)(s,c+"/blob/master/"),target:"_blank",rel:"noopener",id:"adorn-edit"},["Edit this page"]),(0,a.default)("span"),(0,a.default)("a",{href:""+c,target:"_blank",rel:"noopener",title:"Stars",id:"adorn-github-button"},[(0,a.default)("i",{class:"adorn-icon-github"}),(0,a.default)("span",{class:"adorn-speeach-bubble"})])),(0,o.default)("https://api.github.com/repos/"+i+"?callback=?",function(t){t&&t.data&&t.data.watchers&&(0,r.default)(".adorn-github-button span.adorn-speeach-bubble",function(e){e.innerHTML=t.data.watchers||""})}),u.default.apply(void 0,e)}}},e.twitter_btn=function(t){var e=[],n=t["twitter:creator"]||(0,s.default)("twitter:creator");if(n){var l=(0,a.default)("a",{href:"https://twitter.com/share",class:"adorn-twitter-button",target:"_blank",rel:"noopener","data-via":n.replace("@",""),title:"Tweet"},[(0,a.default)("i",{class:"adorn-icon-twitter"})]);return e.push(l,(0,a.default)("a",{href:"https://twitter.com/search?ref_src=twsrc%5Etfw&q="+encodeURIComponent(m),class:"adorn-twitter-count",rel:"noopener","aria-label":"Twitter comments",target:"_blank"},[(0,a.default)("i",{class:"adorn-speeach-bubble"})])),(0,o.default)("https://cdn.syndication.twitter.com/widgets/tweetbutton/count.json?url="+encodeURIComponent(m),function(t){t&&(0,r.default)(".adorn-twitter-count span.adorn-speeach-bubble",function(e){e.innerHTML=t.count||"",e.title="This page has been shared "+t.count+" times, view these tweets"})}),(0,i.default)(l,"click",function(e){e.preventDefault();var r={text:document.title,via:n.replace("@",""),url:window.location.href.replace(/#.*/,"")},o=(0,s.default)("twitter:hashtag")||t["twitter:hashtag"];o&&(r.hashtag=o),(0,f.default)("https://twitter.com/intent/tweet?"+(0,c.default)(r),"twitter",{width:550,height:250})}),u.default.apply(void 0,e)}},e.share_btn=function(){if("share"in navigator){var t=[],e=(0,a.default)("button",{class:"adorn-icon-share",target:"_blank",rel:"noopener",title:"Share"});return t.push(e),(0,i.default)(e,"click",function(){try{navigator.share({title:document.title,text:document.title,url:location.href}).then(function(){e.style.color="green"})}catch(t){e.style.color="red"}}),u.default.apply(void 0,t)}};var r=p(n(0)),o=p(n(27)),i=p(n(2)),a=p(n(1)),u=p(n(24)),c=p(n(23)),s=p(n(20)),l=p(n(3)),f=p(n(22)),d=p(n(21));function p(t){return t&&t.__esModule?t:{default:t}}var h=function(){var t=(0,l.default)("link[rel=source]");if(t)return t.getAttribute("href")},m=window.location.href},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=s(n(0)),o=s(n(2)),i=s(n(1)),a=s(n(6)),u=s(n(7)),c=s(n(10));function s(t){return t&&t.__esModule?t:{default:t}}e.default=function(t){(0,c.default)(function(e){if(!(e.lenth<2)){var n=function(t){var e=(0,i.default)("div",{class:"adorn-toc"}),n=(0,i.default)("select",{"aria-label":"menu"},[],e),c=[];(0,o.default)(n,"change",function(){window.location.hash=n.options[n.selectedIndex].value});var s=n;return(0,r.default)(t,function(t){var e=+t.tagName.match(/[0-9]/)[0],r=t.innerText||t.textContent||t.innerHTML,o=(0,a.default)(t);1===e&&(s=(0,i.default)("optgroup",{label:r},[],n)),(0,i.default)("option",{value:o},[r],s),c.push(o)}),(0,u.default)(function(t){n.selectedIndex=c.indexOf(t)}),e}(e);t.appendChild(n)}})},t.exports=e.default},function(t,e,n){"use strict";t.exports=function(t,e){return e&&0===t.indexOf(e)?t.slice(e.length):t}},function(t,e,n){"use strict";t.exports=function(t){if(t){if(window.URL&&URL instanceof Function&&0!==URL.length)return new URL(t,window.location);var e=document.createElement("a");return e.href=t,e.cloneNode(!1)}return window.location}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=s(n(1)),o=s(n(31)),i=s(n(30)),a=s(n(16)),u=s(n(29)),c=n(28);function s(t){return t&&t.__esModule?t:{default:t}}e.default=function(t){var e=window.location.pathname||"",n=(0,o.default)(t.root).pathname,s=(e=(e=(0,i.default)(e,n)).replace(/^\//g,"")).split(/([^/]+\/?)/).filter(function(t){return!!t});t.paths=s;var l=[(0,r.default)("a",{href:t.root},[(0,r.default)("img",{src:t.favicon,alt:window.location.hostname,title:t.name})])];s.forEach(function(e,n){var o=t.root+s.slice(0,n+1).join(""),i=e.replace(/\.(html?)$/,"");l.push(" ",(0,r.default)("a",{href:o},[i]))});var f=(0,r.default)("div",{class:"adorn-breadcrumbs"},l),d=[(0,c.github_btn)(t),(0,c.twitter_btn)(t),(0,c.share_btn)(t)].reduce(function(t,e){return e?(t.length&&t.push((0,r.default)("span")),t.push(e),t):t},[]),p=(0,r.default)("div",{class:"adorn-links"},d);t.shoutout&&(p.appendChild((0,r.default)("span")),p.insertAdjacentHTML("beforeend",t.shoutout));var h=(0,r.default)("aside",{class:"adorn-toolbar"},[f,p]);(0,a.default)(h,document.body.firstElementChild||document.body.firstChild),(0,u.default)(f)},t.exports=e.default},function(t,e,n){"use strict";var r=1,o={};t.exports=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r++;return n&&o[n]&&(clearTimeout(o[n]),delete o[n]),t&&(o[n]=setTimeout(function(){t()},e)),n}},function(t,e,n){"use strict";var r=function(){function t(t,e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:document.body,o=r(t,e);return n.insertBefore(o,n.firstChild),o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=d(n(0)),o=d(n(11)),i=d(n(1)),a=d(n(39)),u=d(n(38)),c=d(n(36)),s=d(n(7)),l=d(n(10)),f=d(n(6));function d(t){return t&&t.__esModule?t:{default:t}}e.default=function(){(0,l.default)(function(t){if(t.length<2)(0,o.default)(document.documentElement,"adorn-sidebar-off");else{var e=0,n=(0,a.default)("aside",{class:"adorn-sidebar"}),l={};(0,r.default)(t,function(t){var r=+t.tagName.match(/[0-9]/)[0],o=function(t,e,n){if(en);return t}(n,e,r);e=r;var a=t.innerText||t.textContent||t.innerHTML,c=(0,f.default)(t);l[c]=n=(0,i.default)("li",{},[(0,i.default)("a",{href:"#"+c},[a])],o)}),(0,s.default)(function(t){var e=l[t];e&&((0,c.default)(".adorn-sidebar .selected","selected"),(0,o.default)(e,"selected"))})}})},t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=i(n(4)),o=i(n(1));function i(t){return t&&t.__esModule?t:{default:t}}e.default=function(t){t.author&&(0,r.default)(function(){var e=t.author.split(/\s*, \s*/);if(e){var n=["Authored by "];e[1]?n.push((0,o.default)("a",{href:e[1],rel:"author"},[e[0]])):n.push(e[0]),(0,o.default)("footer",{},n,document.body)}})},t.exports=e.default},function(t,e,n){"use strict";t.exports=function(t,e){e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t)}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _each=__webpack_require__(0),_each2=_interopRequireDefault(_each),_on=__webpack_require__(2),_on2=_interopRequireDefault(_on),_create=__webpack_require__(1),_create2=_interopRequireDefault(_create),_insertAfter=__webpack_require__(42),_insertAfter2=_interopRequireDefault(_insertAfter);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function tryitButton(pre,func){var btn=(0,_create2.default)("button",{class:"tryit"},["tryit"]);(0,_insertAfter2.default)(btn,pre),(0,_on2.default)(btn,"click",function(){if(func)func();else{if("function"==typeof tryit&&!tryit(pre.innerText))return;setTimeout(function(){return eval(pre.innerText)},100)}}),func||pre.setAttribute("contenteditable",!0)}exports.default=function(){(0,_each2.default)("pre",function(t){"tryit"!==t.className&&"tryitoffline"!==t.className||tryitButton(t)}),(0,_each2.default)("script",function(t){var e=t.getAttribute("data-tryit");e&&tryitButton(t,window[e]),t.getAttribute("src")&&(0,_on2.default)(t,"click",function(){window.open(t.getAttribute("src"),"_blank")})}),(0,_each2.default)("link",function(t){t.getAttribute("href")&&(0,_on2.default)(t,"click",function(){window.open(t.getAttribute("href"),"_blank")})})},module.exports=exports.default},function(t,e,n){"use strict";var r=i(n(4)),o=i(n(12));function i(t){return t&&t.__esModule?t:{default:t}}(0,r.default)(function(){(0,o.default)("a[target=_blank]:not([rel=noopener])",{rel:"noopener"})})},function(t,e,n){"use strict";var r={bubbles:!0,cancelable:!0},o=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r;return new Event(t,e)};try{o("test")}catch(t){o=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,n=document.createEvent("Event");return n.initEvent(t,!!e.bubbles,!!e.cancelable),n}}t.exports=o},function(t,e,n){"use strict";var r=n(14);t.exports=function(t){window._gaq=window._gaq||[],_gaq.push(["_setAccount",t]),_gaq.push(["_trackPageview"]),r(("https:"===document.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js")}},function(t,e,n){"use strict";var r=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);t.exports=r},function(t,e,n){"use strict";var r=n(47),o=/^file:\/{3}[^/]/i.test(window.location.href);t.exports=r&&o},function(t,e,n){"use strict";var r=n(0),o=/[\s,]+/;t.exports=function(t,e,n){return e=e.split(o),r(t,function(t){return e.forEach(function(e){return t.removeEventListener(e,n)})})}},function(t,e,n){"use strict";var r=n(2),o=n(49),i=n(15);t.exports=function(t,e,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:document,u=function(e){for(var r=e.target;r;){if(i(r,t)){e.delegateTarget=r,n(e);break}r=r.parentNode}};return r(a,e,u),{remove:function(){return o(a,e,u)}}}},function(t,e,n){"use strict";var r=n(50),o=n(48);t.exports=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;if(!o)return!1;r("a","click",function(t){var e=t.delegateTarget;e.href&&e.href.match(/^https?:\/\//)&&(t.preventDefault(),window.open(e.href,"_system"))},t)}},function(t,e,n){"use strict";var r=i(n(16)),o=i(n(1));function i(t){return t&&t.__esModule?t:{default:t}}(0,i(n(3)).default)("meta[name=viewport]")||(0,r.default)((0,o.default)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),document.getElementsByTagName("script")[0])},function(t,e,n){"use strict";"header,section,datalist,option,footer,nav,menu,aside,article,style,script".split(",").forEach(function(t){return document.createElement(t)})},function(t,e,n){"use strict";t.exports=function(t,e){document.documentElement.className=document.documentElement.className+" "+(e?"":"no-")+t}},function(t,e,n){"use strict";var r=n(54),o="ontouchstart"in window;r("touch",o),t.exports=o},function(t,e,n){"use strict";t.exports=function(t){return Array.prototype.slice.call(t)}},function(t,e,n){"use strict";var r=n(18),o="undefined"!=typeof HTMLElement&&HTMLElement||"undefined"!=typeof Element&&Element,i="undefined"!=typeof HTMLDocument&&HTMLDocument||"undefined"!=typeof Document&&Document,a=window.constructor;t.exports=function(t){return r(t,o)||r(t,i)||r(t,a)}},function(t,e,n){"use strict";var r=n(5),o=n(3);t.exports=function(t){return r(function(){return o('link[rel="'+t+'"]').href})}},function(t,e,n){"use strict";var r=n(5);t.exports=function(t){return r(function(){return JSON.parse(t)})}},function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=n(59),i=n(5);t.exports=function(t,e){var n=new XMLHttpRequest;n.onload=function(){var t="object"===r(n.response)?n.response:o(n.response);e(t)},n.onerror=e,n.open("GET",t),"responseType"in n&&i(function(){return n.responseType="json"}),n.send()}},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var n=e.protocol+"//"+e.host,r=n+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var o,i=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?t:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},function(t,e,n){var r,o,i={},a=(r=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=r.apply(this,arguments)),o}),u=function(t){var e={};return function(t){if("function"==typeof t)return t();if(void 0===e[t]){var n=function(t){return document.querySelector(t)}.call(this,t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}}(),c=null,s=0,l=[],f=n(61);function d(t,e){for(var n=0;n=0&&l.splice(e,1)}function b(t){var e=document.createElement("style");return t.attrs.type="text/css",v(e,t.attrs),h(t,e),e}function v(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function w(t,e){var n,r,o,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var a=s++;n=c||(c=b(e)),r=x.bind(null,n,a,!1),o=x.bind(null,n,a,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",v(e,t.attrs),h(t,e),e}(e),r=function(t,e,n){var r=n.css,o=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=f(r)),o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var a=new Blob([r],{type:"text/css"}),u=t.href;t.href=URL.createObjectURL(a),u&&URL.revokeObjectURL(u)}.bind(null,n,e),o=function(){m(n),n.href&&URL.revokeObjectURL(n.href)}):(n=b(e),r=function(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute("media",r),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){m(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(e=e||{}).attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=a()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=p(t,e);return d(n,e),function(t){for(var r=[],o=0;oa.adorn-anchor{opacity:.5}a.adorn-anchor:hover{opacity:1}a.adorn-anchor:before{content:\"#\";position:absolute;left:-1em;color:inherit;vertical-align:middle}a.adorn-anchor:hover:before{-webkit-transform:scale(1.1);-webkit-transform-origin:50% 50%;transform:scale(1.1);transform-origin:50% 50%}.adorn-toolbar{-webkit-transform:translateZ(0);-webkit-transform-origin:0 0;transform:translateZ(0);transform-origin:0 0;-webkit-animation:fadeIn .3s ease;animation:fadeIn .3s ease;background-color:#fff;height:50px;color:#000;display:-webkit-flex;display:flex;-webkit-flex-flow:row;flex-flow:row;-webkit-justify-content:space-between;justify-content:space-between;left:0;right:0;margin:0;padding:5px 10px;position:fixed;top:0;z-index:1;white-space:nowrap}.adorn-toolbar>:last-child{text-align:right;margin-left:20px}.adorn-toolbar>:first-child{text-align:left}.adorn-toolbar>*{flex:1 0 auto;-webkit-flex:1 0 auto;white-space:normal;display:inline-block}.adorn-toolbar:after{content:\"\";border-bottom:1px solid #c7c7c7;position:absolute;bottom:0;width:100%;left:0;z-index:-1;-webkit-animation:fillWidth 1s linear forwards;animation:fillWidth 1s linear forwards}@media (max-width:650px),screen and (max-device-width:480px){.adorn-toolbar{transition:-webkit-transform 1s;transition:transform 1s}.adorn-toolbar #adorn-edit,.adorn-toolbar #adorn-edit+*{display:none}}.adorn-breadcrumbs{white-space:nowrap}.adorn-breadcrumbs>*{display:inline-block;transition:all .3s ease-in}.adorn-breadcrumbs>*>img{margin:-5px 10px -5px 0;background:hsla(0,0%,100%,.2);border-radius:50%;height:36px;vertical-align:middle;width:36px;transition:all .3s}.adorn-breadcrumbs>*>img:hover{-webkit-transform:scale(2.5);-webkit-transform-origin:50% 50%;transform:scale(2.5);transform-origin:50% 50%;filter:none}.adorn-breadcrumbs>:hover~*{transition:all 1s ease-in;-webkit-transform:translateX(50px);-webkit-transform-origin:0 0;transform:translateX(50px);transform-origin:0 0;opacity:0;filter:alpha(opacity=0)}.adorn-breadcrumbs>:last-child{text-decoration:none;color:#444}.adorn-links{white-space:nowrap}.adorn-links>span{margin:0 20px}.adorn-links>span:after{content:\"\\22C5\"}@media (max-width:650px),screen and (max-device-width:480px){.adorn-links>span{margin:0 2px}}@-webkit-keyframes slideInDown{0%{transform:translateY(-100px);-webkit-transform:translateY(-100px)}}@keyframes slideInDown{0%{transform:translateY(-100px);-webkit-transform:translateY(-100px)}}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.webkit{content:\"\"}@-webkit-keyframes fillWidth{0%{width:0;left:50%}to{width:100%;left:0}}.key{content:\"\"}@keyframes fillWidth{0%{width:0;left:50%}to{width:100%;left:0}}.adorn-toc{display:inline-block;margin-left:5px}.adorn-toc:before{content:\"#\"}.adorn-sidebar{background:#eee;border-right:1px solid #c7c7c7;height:calc(100% - 50px);left:0;overflow:auto;padding:10px;position:fixed;top:50px;width:200px;-webkit-animation:fadeIn 1s ease;animation:fadeIn 1s ease}@media (max-width:1048px){.adorn-sidebar{display:none}}.adorn-sidebar a{text-decoration:none;color:inherit}.adorn-sidebar a:hover{color:#0c50c7}.adorn-sidebar li,.adorn-sidebar ul{margin:0;padding:0}.adorn-sidebar>ul{margin:0 -10px}.adorn-sidebar>ul>li>a{font-weight:700}.adorn-sidebar li{list-style:none;padding:0 10px}.adorn-sidebar li.selected>a{color:#0c50c7}.adorn-sidebar li li{font-size:.9em}@supports (appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none){.adorn-toc select{font:inherit;appearance:none;-webkit-appearance:none;-moz-appearance:none;text-decoration:underline;height:2em}.adorn-toc select:not(:focus){border-color:transparent;color:inherit;background-color:inherit}.adorn-toc select::-ms-expand{display:none}}.clearfix{display:inline-block}.clearfix:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}* html .clearfix{height:1%}.clearfix{display:block}.adorn-icon-github{color:inherit;display:inline-block;font-style:normal;text-decoration:inherit}.adorn-icon-github:after{content:\"GitHub\"}.adorn-icon-twitter{background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M27.49 10.126c.011.254.017.507.017.766 0 7.808-5.942 16.809-16.813 16.809a16.72 16.72 0 0 1-9.056-2.653c.463.058.932.083 1.408.083 2.769 0 5.317-.944 7.341-2.534a5.9 5.9 0 0 1-5.52-4.097c.36.067.729.104 1.111.104.54 0 1.185-.071 1.68-.208-2.704-.541-4.616-2.929-4.616-5.795v-.075c0 .441 1.584.711 2.552.74-1.584-1.06-2.69-2.87-2.69-4.917 0-1.085.261-2.101.768-2.974 2.916 3.578 7.255 5.928 12.167 6.173a5.702 5.702 0 0 1-.16-1.343 5.9 5.9 0 0 1 5.901-5.907 5.89 5.89 0 0 1 4.312 1.863 11.91 11.91 0 0 0 3.754-1.431 5.909 5.909 0 0 1-2.598 3.266 12.019 12.019 0 0 0 3.392-.928 11.983 11.983 0 0 1-2.948 3.057z' fill='%23black'/%3E%3C/svg%3E\") no-repeat 50%;background-size:1em}.adorn-icon-share,.adorn-icon-twitter{width:1em;height:1em;font-size:1.5em;vertical-align:middle;display:inline-block}.adorn-icon-share{background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath stroke='null' d='M26.293 20.872a5.39 5.39 0 0 0-3.933 1.705l-11.563-5.7c.04-.266.067-.538.067-.818 0-.271-.026-.536-.064-.797l11.546-5.637a5.395 5.395 0 0 0 3.947 1.72c3 0 5.433-2.45 5.433-5.47 0-3.02-2.432-5.468-5.433-5.468s-5.432 2.448-5.432 5.469c0 .271.026.536.064.797L9.38 12.31a5.395 5.395 0 0 0-3.947-1.72C2.432 10.59 0 13.04 0 16.06c0 3.02 2.432 5.468 5.432 5.468 1.55 0 2.944-.656 3.933-1.704l11.563 5.7a5.43 5.43 0 0 0-.068.817c0 3.021 2.432 5.469 5.432 5.469s5.433-2.448 5.433-5.469c0-3.02-2.431-5.469-5.432-5.469z'/%3E%3C/svg%3E\") no-repeat 50%;background-size:1em}.adorn-speeach-bubble{color:#444;margin-left:5px;position:relative;line-height:1;text-align:center;display:inline-block;background-color:#fff;border:1px solid #444;color:#000;border-radius:15%;padding:5px;transition:all .3s cubic-bezier(.68,-.55,.265,1.55)}.adorn-speeach-bubble:after,.adorn-speeach-bubble:before{position:absolute;left:-6px;bottom:5px;content:\" \";width:0;height:0;padding:0;border:5px solid transparent;border-width:3.5px 5px;border-right-color:inherit;border-left-width:0}.adorn-speeach-bubble:after{border-right-color:#fff;left:-4px;border-width:2.975px 4.25px;border-left-width:0;bottom:5.5px}.adorn-speeach-bubble:empty{-webkit-transform:scale(.01);-webkit-transform-origin:50% 50%;transform:scale(.01);transform-origin:50% 50%;opacity:0}",""])},function(t,e,n){var r=n(64);"string"==typeof r&&(r=[[t.i,r,""]]),n(62)(r,{hmr:!0,transform:void 0,insertInto:void 0}),r.locals&&(t.exports=r.locals)},function(t,e,n){"use strict";n(65);var r=w(n(60)),o=w(n(21)),i=w(n(20)),a=w(n(58)),u=w(n(3)),c=w(n(1)),s=w(n(19)),l=w(n(17)),f=w(n(4));n(55),n(53),n(52);var d=w(n(51)),p=w(n(46));n(44);var h=w(n(43)),m=w(n(41)),b=w(n(40)),v=w(n(32));function w(t){return t&&t.__esModule?t:{default:t}}(0,f.default)(h.default);var g=(0,i.default)("manifest")||(0,a.default)("manifest")||"/manifest.json";(0,r.default)(g,function t(e,n){if(!n||(0,i.default)("manifest")||(0,a.default)("manifest")||(0,c.default)("link",{rel:"manifest",href:e},[],document.head),n&&n.theme_color&&!(0,i.default)("theme-color")&&(0,c.default)("meta",{name:"theme-color",content:n.theme_color},[],document.head),document.body){(n=n||{}).favicon=(0,i.default)("favicon")||(0,o.default)(n.favicon,e)||"/favicon.ico",n.author=(0,i.default)("author")||n.author,n.root=(0,i.default)("root")||(0,o.default)(n.root||"/",e),(0,s.default)(l.default,"no-adorn")||((0,v.default)(n),(0,b.default)(n),(0,m.default)(n)),l.default.getAttribute("lang")||l.default.setAttribute("lang",n.lang||"en"),document.title||(document.title=(0,u.default)("h1,h2").textContent||"");var r=(0,i.default)("ga:tracking")||n["ga:tracking"];r&&(0,p.default)(r);var d=(0,i.default)("sw")||(0,i.default)("serviceworker");d?d=(0,o.default)(d):(d=n.sw||n.serviceworker)&&(d=(0,o.default)(d,e));var h=navigator.serviceWorker;d&&h&&(h.ready.then(function(){var t=n.fallover;t&&t.forEach(function(t){var n=t.mode,r=t.fallover;r=(0,o.default)(r,e),h.controller.postMessage({type:"fallover",fallover:r,mode:n})})}),h.register(d).catch(function(t){console.error("Adorn: SW registration failed: ",t)}))}else(0,f.default)(t.bind(null,e,n))}.bind(null,g)),(0,d.default)()}]);
//# sourceMappingURL=adorn.js.map
\ No newline at end of file
diff --git a/adorn.js.map b/adorn.js.map
index f14f0b2..979876d 100644
--- a/adorn.js.map
+++ b/adorn.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/tricks/dom/each.js","webpack:///./node_modules/tricks/dom/create.js","webpack:///./node_modules/tricks/events/on.js","webpack:///./node_modules/tricks/dom/query.js","webpack:///./node_modules/tricks/events/ready.js","webpack:///./node_modules/tricks/object/tryCatch.js","webpack:///./node_modules/tricks/dom/id.js","webpack:///./node_modules/tricks/window/onhashchange.js","webpack:///./node_modules/tricks/dom/until.js","webpack:///./node_modules/tricks/string/param.js","webpack:///./src/components/content.js","webpack:///./node_modules/tricks/dom/addClass.js","webpack:///./node_modules/tricks/dom/attr.js","webpack:///./node_modules/tricks/dom/createElement.js","webpack:///./node_modules/tricks/browser/http/getScript.js","webpack:///./node_modules/tricks/dom/matches.js","webpack:///./node_modules/tricks/dom/insertBefore.js","webpack:///./node_modules/tricks/dom/documentElement.js","webpack:///./node_modules/tricks/object/instanceOf.js","webpack:///./node_modules/tricks/dom/hasClass.js","webpack:///./node_modules/tricks/dom/meta.js","webpack:///./node_modules/tricks/string/fullpath.js","webpack:///./node_modules/tricks/window/popup.js","webpack:///./node_modules/tricks/string/querystringify.js","webpack:///./node_modules/tricks/dom/fragment.js","webpack:///./node_modules/tricks/string/random.js","webpack:///./node_modules/tricks/events/globalCallback.js","webpack:///./node_modules/tricks/browser/http/jsonp.js","webpack:///./src/components/social.js","webpack:///./src/components/contentSelect.js","webpack:///./node_modules/tricks/string/ltrim.js","webpack:///./node_modules/tricks/window/url.js","webpack:///./src/components/toolbar.js","webpack:///./node_modules/tricks/time/sleep.js","webpack:///./node_modules/tricks/object/Defer.js","webpack:///./node_modules/tricks/dom/findPos.js","webpack:///./node_modules/tricks/dom/removeClass.js","webpack:///./node_modules/tricks/dom/parents.js","webpack:///./node_modules/tricks/dom/parent.js","webpack:///./node_modules/tricks/dom/prepend.js","webpack:///./src/components/sidebar.js","webpack:///./src/components/footer.js","webpack:///./node_modules/tricks/dom/insertAfter.js","webpack:///./src/components/helpers.js","webpack:///./src/components/security.js","webpack:///./node_modules/tricks/events/createEvent.js","webpack:///./node_modules/tricks/services/googleanalytics.js","webpack:///./node_modules/tricks/support/mobile.js","webpack:///./node_modules/tricks/support/cordova.js","webpack:///./node_modules/tricks/events/off.js","webpack:///./node_modules/tricks/events/delegate.js","webpack:///./node_modules/tricks/helper/cordovaExternalLinks.js","webpack:///./src/components/viewport.js","webpack:///./node_modules/tricks/support/html5.js","webpack:///./node_modules/tricks/support/CSSsupports.js","webpack:///./node_modules/tricks/support/touch.js","webpack:///./node_modules/tricks/array/toArray.js","webpack:///./node_modules/tricks/dom/isDom.js","webpack:///./node_modules/tricks/dom/link.js","webpack:///./node_modules/tricks/string/jsonParse.js","webpack:///./node_modules/tricks/browser/http/json.js","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./src/components.less","webpack:///./src/components.less?e916","webpack:///./src/adorn.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","r","value","n","__esModule","default","object","property","prototype","hasOwnProperty","p","s","t","e","isDom","instanceOf","toArray","matches","callback","arguments","length","document","querySelectorAll","Array","forEach","node","attr","children","append","createElement","x","appendChild","createTextNode","innerHTML","_typeof","y","setAttribute","child","each","SEPERATOR","supportsPassive","opts","window","addEventListener","elements","eventnames","options","passive","split","el","eventname","query","querySelector","on","readyState","body","fn","tag","id","ref","innerText","textContent","toLowerCase","replace","a","handler","hash","location","substr","push","bool","delimiter","seperator","formatFunction","keys","map","join","h","u","f","defer","_Defer2","_ready2","headings","_each2","documentElement","className","match","_id2","insertBefore","_create2","href","aria-label","class","firstChild","selected","scrollIntoView","setTimeout","_addClass2","resolve","sleepId","_sleep2","_on2","T","scrollY","pageYOffset","H","innerHeight","toolbar","toolbar_height","offsetHeight","anchor","_findPos2","_until2","getElementsByTagName","getAttribute","history","replaceState","title","_onhashchange2","bind","hasClass","props","element","prop","tagName","attrs","elm","createEvent","url","timeout","timer","head","parentNode","cb","clearTimeout","script","src","onerror","onload","onreadystatechange","test","async","until","mozMatchesSelector","webkitMatchesSelector","msMatchesSelector","oMatchesSelector","root","reg","RegExp","tryCatch","content","path","relative","URL","param","dimensions","target","_ref","_ref2","_slicedToArray","Position","Dimension","position","dimension","this","dualScreenPos","screen","parseInt","open","encodeURIComponent","formatter","_len","args","_key","frag","createDocumentFragment","Math","random","toString","guid","prefix","globalCallback","getScript","MATCH_CALLBACK_PLACEHOLDER","callback_name","result","json","removeChild","github_btn","manifest","paths","github","repo","repo_path","repo_file","link","pathname","_fullpath2","rel","_jsonp2","data","watchers","item","_fragment2","apply","twitter_btn","twitter_creator","_meta2","btn","data-via","count","preventDefault","params","text","via","hashtag","_popup2","_querystringify2","width","height","share_btn","navigator","share","then","style","color","_query2","parent","_content2","lenth","toc","select","selectedIndex","_group","depth","label","indexOf","str","trim","slice","Function","cloneNode","_social","root_path","_url2","_ltrim2","filter","crumbs","favicon","alt","hostname","val","index","breadcrumbs","links","reduce","social_btns","shoutout","insertAdjacentHTML","aside","_insertBefore2","firstElementChild","_contentSelect2","period","Defer","items","state","response","_createClass","key","_items","_this","set","obj","curleft","curtop","offsetParent","offsetLeft","offsetTop","parents","ul","prev","_prepend2","j","_parent2","_removeClass2","author","nextSibling","_each","_interopRequireDefault","_on","_create","_insertAfter","_insertAfter2","tryitButton","pre","func","tryit","eval","_attr2","dict","bubbles","cancelable","Event","initEvent","tracking","_gaq","protocol","userAgent","mobile","filesystem","removeEventListener","off","eventName","eventHandler","delegateTarget","remove","delegate","cordova","enabled","CSSsupports","_HTMLElement","HTMLElement","Element","_HTMLDocument","HTMLDocument","Document","_Window","constructor","JSON","parse","jsonParse","XMLHttpRequest","v","responseType","send","css","Error","baseUrl","host","currentDir","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","stringify","memo","stylesInDom","isOldIE","all","atob","getElement","styleTarget","HTMLIFrameElement","contentDocument","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","domStyle","refs","parts","addStyle","listToStyles","list","newStyles","base","part","media","sourceMap","insertStyleElement","insertInto","lastStyleElementInsertedAtTop","insertAt","before","removeStyleElement","idx","splice","createStyleElement","type","addAttrs","update","transform","styleIndex","applyToSingletonTag","createObjectURL","revokeObjectURL","Blob","btoa","autoFixUrls","convertToAbsoluteUrls","unescape","blob","oldSrc","styleSheet","cssText","newObj","DEBUG","newList","mayRemove","textStore","replaceText","replacement","Boolean","cssNode","childNodes","useSourceMap","cssMapping","sourceMapping","sourceURLs","sources","source","sourceRoot","concat","mediaQuery","alreadyImportedModules","hmr","locals","w","b","_helpers2","manifest_path","_link2","_json2","setup","theme_color","_hasClass2","_documentElement2","_toolbar2","_sidebar2","_footer2","lang","_googleanalytics2","sw","serviceworker","serviceWorker","ready","fallover","mode","controller","postMessage","register","catch","err","_cordovaExternalLinks2"],"mappings":"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","file":"adorn.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 66);\n","const isDom = require('./isDom.js');\nconst instanceOf = require('../object/instanceOf.js');\nconst toArray = require('../array/toArray.js');\n\nmodule.exports = (matches, callback = () => {}) => {\n\n\tif (isDom(matches)) {\n\t\tmatches = [matches];\n\t}\n\telse if (typeof(matches) === 'string') {\n\t\tmatches = document.querySelectorAll(matches);\n\t}\n\n\tif (!instanceOf(matches, Array)) {\n\t\tmatches = toArray(matches);\n\t}\n\n\tif (callback) {\n\t\tmatches.forEach(callback);\n\t}\n\n\treturn matches;\n};\n","// Create and Append new Dom elements\n// @param node string\n// @param attr object literal\nmodule.exports = (node, attr = {}, children = [], append = null) => {\n\n\tconst n = typeof(node) === 'string' ? document.createElement(node) : node;\n\n\t// Attributes\n\tfor (const x in attr) {\n\n\t\tif (attr.hasOwnProperty(x)) {\n\n\t\t\tif (x === 'text') {\n\t\t\t\tn.appendChild(document.createTextNode(attr[x]));\n\t\t\t}\n\t\t\telse if (x === 'html') {\n\t\t\t\tif (typeof(attr[x]) === 'string') {\n\t\t\t\t\tn.innerHTML = attr[x];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tn.appendChild(attr[x]);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (typeof(attr[x]) === 'object') {\n\t\t\t\tfor (const y in attr[x]) {\n\t\t\t\t\tif (attr[x].hasOwnProperty(y)) {\n\t\t\t\t\t\tn[x][y] = attr[x][y];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tn.setAttribute(x, attr[x]);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Children\n\tchildren.forEach(child => {\n\t\tif (typeof(child) === 'string') {\n\t\t\tchild = document.createTextNode(child);\n\t\t}\n\n\t\tif (child) {\n\t\t\tn.appendChild(child);\n\t\t}\n\t});\n\n\t// Append\n\tif (append) {\n\t\tappend.appendChild(n);\n\t}\n\n\treturn n;\n};\n","// on.js\n// Listen to events, this is a wrapper for addEventListener\n\nconst each = require('../dom/each.js');\nconst SEPERATOR = /[\\s,]+/;\n\n// See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\nlet supportsPassive = false;\ntry {\n\tconst opts = Object.defineProperty({}, 'passive', {\n\t\tget() {\n\t\t\tsupportsPassive = true;\n\t\t}\n\t});\n\twindow.addEventListener('test', null, opts);\n}\ncatch (e) {\n\t// Continue\n}\n\n\nmodule.exports = (elements, eventnames, callback, options = false) => {\n\n\tif (typeof options === 'object' && options.passive && !supportsPassive) {\n\t\t// Override the passive mark\n\t\toptions = false;\n\t}\n\n\teventnames = eventnames.split(SEPERATOR);\n\treturn each(elements, el => eventnames.forEach(eventname => el.addEventListener(eventname, callback, options)));\n};\n","// Select a single element\nmodule.exports = (query, parent = document) => parent.querySelector(query);\n","const on = require('./on.js');\n\nmodule.exports = callback => {\n\tif (document.readyState !== 'loading' && document.body) {\n\t\tcallback();\n\t}\n\telse {\n\t\ton(document, 'DOMContentLoaded', callback);\n\t}\n};\n","module.exports = fn => {\n\ttry {\n\t\treturn fn.call(null);\n\t}\n\tcatch (e) {\n\t\t// Continue\n\t}\n};\n","// Auto Set/Get the ID of a tag element based\nmodule.exports = tag => {\n\n\tif (tag.id) {\n\t\treturn tag.id;\n\t}\n\n\tconst text = (tag.innerText || tag.textContent || tag.innerHTML);\n\tconst ref = text.toLowerCase().replace(/\\s/g, '-').replace(/[^a-z0-9_-]/g, '');\n\n\ttag.id = ref;\n\n\treturn ref;\n};\n","// onhashchange\nconst on = require('../events/on');\n\nconst a = [];\n\non(window, 'hashchange', handler);\n\nfunction handler() {\n\n\t// Get the hash value\n\tconst hash = \twindow.location.hash.substr(1);\n\n\t// Loop through all the handlers\n\ta.forEach(callback => {\n\t\tcallback.call(null, hash);\n\t});\n}\n\nmodule.exports = callback => {\n\n\tif (callback) {\n\t\ta.push(callback);\n\t}\n\telse {\n\t\thandler();\n\t}\n};\n","const each = require('./each.js');\n\nmodule.exports = (elements, callback) => {\n\tlet bool;\n\n\teach(elements, el => {\n\t\tif (!bool) {\n\t\t\tbool = callback(el);\n\t\t}\n\t});\n\n\treturn bool;\n};\n","// Param\n// Explode/encode the parameters of an URL string/object\n// @param string s, string to decode\nmodule.exports = (hash, delimiter = '&', seperator = '=', formatFunction = o => o) =>\n\tObject.keys(hash).map(name => {\n\t\tconst value = formatFunction(hash[name]);\n\t\treturn name + (value !== null ? seperator + value : '');\n\t}).join(delimiter)\n;\n","import each from 'tricks/dom/each';\nimport until from 'tricks/dom/until';\nimport addClass from 'tricks/dom/addClass';\nimport on from 'tricks/events/on';\nimport create from 'tricks/dom/create';\nimport findPos from 'tricks/dom/findPos';\nimport id from 'tricks/dom/id';\nimport ready from 'tricks/events/ready';\nimport onhashchange from 'tricks/window/onhashchange';\nimport Defer from 'tricks/object/Defer';\nimport sleep from 'tricks/time/sleep';\n\n// Pending\nconst defer = new Defer();\n\n// Once the DOM has loaded we can get all the h1,h2 elements in the page\nready(() => {\n\n\t// TOC\n\tconst headings = each('h1,h2');\n\n\tif (!document.querySelector || !!(document.documentElement.className || '').match(/adorn-(nav|toc)-off/)) {\n\t\t// This feature is disabled\n\t\treturn;\n\t}\n\n\n\teach(headings, tag => {\n\n\t\t// Get the ID of the tag\n\t\tconst ref = id(tag);\n\n\t\t// Create an anchor for this tag\n\t\ttag.insertBefore(create('a', {name: ref, href: `#${ref}`, 'aria-label': `Jump to ${tag.innerText}`, class: 'adorn-anchor'}), tag.firstChild);\n\t});\n\n\n\t{\n\t\tconst hash = window.location.hash;\n\n\t\tif (hash && hash.length > 2) {\n\n\t\t\t// If the location.hash is defined, lets navigate to the item\n\t\t\tconst selected = document.querySelector(window.location.hash);\n\t\t\tif (selected) {\n\t\t\t\tselected.scrollIntoView();\n\t\t\t}\n\t\t}\n\t}\n\n\t// Is there a TOC\n\tif (headings.length) {\n\t\tsetTimeout(() => {\n\t\t\t// Lets add a class to the body\n\t\t\taddClass(document.documentElement, 'adorn-toc-on');\n\t\t});\n\t}\n\n\t// Resolve all the callbacks\n\tdefer.resolve(headings);\n\n\t// Get a sleepid\n\tconst sleepId = sleep();\n\n\t// Listen to scroll navigation position\n\ton(window, 'scroll', () => {\n\n\t\t// When this has been idle for the period defined\n\t\tsleep(updateHashLocation.bind(null, headings), 100, sleepId);\n\t});\n\n});\n\n// ///////////////////////////////////\n// Navigation\n// ///////////////////////////////////\n\nexport default callback => {\n\n\tdefer.push(callback);\n\n};\n\n\nfunction updateHashLocation (headings) {\n\n\t// Are properties which affect the position of elements on the page are still loading...\n\tif (document.readyState !== 'complete') {\n\t\t// Ok, then we shouldn't try to determine if the user has changed position in the document.\n\t\treturn;\n\t}\n\n\t// from the list of items\n\t// find the one which is in view on the page\n\tconst T = window.scrollY || window.pageYOffset;\n\tconst H = window.innerHeight;\n\n\tconst toolbar = document.querySelector('.adorn-toolbar');\n\n\tlet tag;\n\n\tconst toolbar_height = (toolbar && toolbar.offsetHeight) || 50;\n\n\t// Is the current hash in the viewport\n\tconst hash = window.location.hash;\n\n\tif (hash) {\n\t\tconst anchor = document.querySelector(hash);\n\n\t\tif (anchor) {\n\t\t\tconst t = findPos(anchor)[1];\n\t\t\tif (t > T && t < T + H) {\n\t\t\t\t// This is fine\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\n\t// Find the current selection\n\tuntil(headings, anchor => {\n\n\t\tconst t = findPos(anchor)[1] + toolbar_height;\n\n\t\tif (T < t) {\n\n\t\t\t// Stop looping\n\t\t\treturn true;\n\t\t}\n\n\t\t// set the last active tag\n\t\ttag = anchor;\n\t});\n\n\n\t// Has a tag been set?\n\tif (tag) {\n\t\t// Set as the current selected one\n\t\tlet ref = tag.getElementsByTagName('a')[0];\n\n\t\tif (ref) {\n\t\t\tref = ref.getAttribute('href').replace(/^#/, '');\n\t\t}\n\n\t\t// Change the current window hash\n\t\tif ('history' in window && 'replaceState' in window.history && window.location.hash !== `#${ ref}`) {\n\t\t\thistory.replaceState({}, document.title, `#${ ref}`);\n\t\t}\n\n\t\t// Trigger onhashchange\n\t\tonhashchange();\n\t}\n}\n","// addClass\nconst each = require('./each.js');\nconst hasClass = require('./hasClass.js');\n\nmodule.exports = (elements, className) =>\n\teach(elements, el => {\n\t\tif (!hasClass(el, className)) {\n\t\t\tel.className += ` ${ className}`;\n\t\t}\n\t});\n","const each = require('./each.js');\n\nmodule.exports = (elements, props) =>\n\teach(elements, element => {\n\t\tfor (const x in props) {\n\t\t\tconst prop = props[x];\n\t\t\tif (typeof prop === 'function') {\n\t\t\t\telement[x] = prop;\n\t\t\t}\n\t\t\telse {\n\t\t\t\telement.setAttribute(x, prop);\n\t\t\t}\n\t\t}\n\t});\n","const attr = require('./attr.js');\n\nmodule.exports = (tagName, attrs) => {\n\tconst elm = document.createElement(tagName);\n\tattr(elm, attrs);\n\treturn elm;\n};\n","const createElement = require('../../dom/createElement.js');\nconst createEvent = require('../../events/createEvent.js');\n\nmodule.exports = (url, callback, timeout = 0) => {\n\n\t// Inject a script tag\n\tlet bool = 0;\n\tlet timer;\n\tconst head = document.getElementsByTagName('script')[0].parentNode;\n\tconst cb = e => {\n\t\tif (!(bool++) && callback) {\n\t\t\tcallback(e);\n\t\t}\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t};\n\n\t// Add timeout\n\tif (timeout) {\n\t\ttimer = window.setTimeout(() => {\n\t\t\tcb(createEvent('timeout'));\n\t\t}, timeout);\n\t}\n\n\t// Build script tag\n\tconst script = createElement('script', {\n\t\tsrc: url,\n\t\tonerror: cb,\n\t\tonload: cb,\n\t\tonreadystatechange: () => {\n\t\t\tif (/loaded|complete/i.test(script.readyState)) {\n\t\t\t\tcb(createEvent('load'));\n\t\t\t}\n\t\t}\n\t});\n\n\t// Set Async\n\tscript.async = true;\n\n\t// Inject script tag into the head element\n\thead.insertBefore(script, head.firstChild);\n\n\treturn script;\n};\n","const until = require('./until.js');\n\nconst el = document.createElement('div');\nconst matches = (el.matches || el.mozMatchesSelector || el.webkitMatchesSelector || el.msMatchesSelector || el.oMatchesSelector);\n\nmodule.exports = (elements, query) => {\n\n\tlet handler = query;\n\n\tif (typeof query === 'string') {\n\t\thandler = el => matches.call(el, query);\n\t}\n\n\treturn until(elements, handler);\n};\n","module.exports = (el, ref) => ref.parentNode.insertBefore(el, ref);\n","module.exports = document.documentElement || document.body.parentNode;\n","module.exports = (test, root) => root && test instanceof root;\n","const until = require('./until.js');\n\nmodule.exports = (elements, className) => {\n\tconst reg = new RegExp(`(^|\\\\s)${ className }($|\\\\s)`, 'i');\n\treturn until(elements, el => (el.className || '').match(reg));\n};\n","const tryCatch = require('../object/tryCatch.js');\nconst query = require('./query.js');\n\nmodule.exports = name => tryCatch(() => query(`meta[name=\"${ name }\"]`).content);\n","// Return the relative url for a path\nmodule.exports = (path, relative = './') => {\n\tif (!path) {\n\t\treturn '';\n\t}\n\n\ttry {\n\t\t// This only works in a few browsers, but what the heck. i'll fix it later\n\t\treturn (new URL(path, new URL(relative, window.location))).href || path;\n\t}\n\tcatch (e) {\n\t\treturn path;\n\t}\n};\n","// popup\n// Easy options as a hash\nconst param = require('../string/param.js');\n\nconst documentElement = document.documentElement;\nconst dimensions = [['Top', 'Height'], ['Left', 'Width']];\n\nmodule.exports = (url, target, options = {}) => {\n\n\t// centers the popup correctly to the current display of a multi-screen display.\n\tdimensions.forEach(generatePosition.bind(options));\n\n\t// Open\n\treturn window.open(url, target, param(options, ','));\n};\n\nfunction generatePosition ([Position, Dimension]) {\n\tconst position = Position.toLowerCase();\n\tconst dimension = Dimension.toLowerCase();\n\tif (this[dimension] && !(position in this)) {\n\t\tconst dualScreenPos = window[`screen${ Position}`] !== undefined ? window[`screen${ Position}`] : screen[position];\n\t\tconst d = screen[dimension] || window[`inner${ Dimension}`] || documentElement[`client${ Dimension}`];\n\t\tthis[position] = parseInt((d - this[dimension]) / 2, 10) + dualScreenPos;\n\t}\n}\n","// Create a Query string\nconst param = require('./param.js');\nconst fn = value => (value === '?' ? '?' : encodeURIComponent(value));\n\nmodule.exports = (o, formatter = fn) => param(o, '&', '=', formatter);\n","module.exports = (...args) => {\n\tconst frag = document.createDocumentFragment();\n\targs.forEach(el => frag.appendChild(el));\n\treturn frag;\n};\n","module.exports = () => parseInt(Math.random() * 1e12, 10).toString(36);\n","// Global Events\n// Attach the callback to the window object\n// Return its unique reference\nconst random = require('../string/random.js');\n\nmodule.exports = (callback, guid, prefix = '_tricks_') => {\n\n\t// If the guid has not been supplied then create a new one.\n\tguid = guid || prefix + random();\n\n\t// Define the callback function\n\twindow[guid] = handle.bind(null, guid, callback);\n\n\treturn guid;\n};\n\nfunction handle(guid, callback, ...args) {\n\tcallback(...args) && delete window[guid];\n}\n","// JSONP\nconst globalCallback = require('../../events/globalCallback.js');\nconst getScript = require('./getScript.js');\n\nconst MATCH_CALLBACK_PLACEHOLDER = /=\\?(&|$)/;\n\nmodule.exports = (url, callback, callback_name, timeout = 60000) => {\n\n\t// Change the name of the callback\n\tlet result;\n\n\t// Add callback to the window object\n\tcallback_name = globalCallback(json => {\n\t\tresult = json;\n\t\treturn true; // this ensure the window reference is removed\n\t}, callback_name);\n\n\t// The URL is a function for some cases and as such\n\t// Determine its value with a callback containing the new parameters of this function.\n\turl = url.replace(MATCH_CALLBACK_PLACEHOLDER, `=${ callback_name }$1`);\n\n\tconst script = getScript(url, () => {\n\t\tcallback(result);\n\t\tscript.parentNode.removeChild(script);\n\t}, timeout);\n\n\treturn script;\n};\n","// Social controls\nimport each from 'tricks/dom/each';\nimport jsonp from 'tricks/http/jsonp';\nimport on from 'tricks/events/on';\nimport create from 'tricks/dom/create';\nimport fragment from 'tricks/dom/fragment';\nimport querystringify from 'tricks/string/querystringify';\nimport meta from 'tricks/dom/meta';\nimport query from 'tricks/dom/query';\nimport popup from 'tricks/window/popup';\nimport fullpath from 'tricks/string/fullpath';\n\nconst link = () => {\n\tconst a = query('link[rel=source]');\n\tif (a) {\n\t\treturn a.getAttribute('href');\n\t}\n};\n\nconst url = window.location.href;\n\nexport function github_btn(manifest) {\n\n\tconst content = [];\n\tconst paths = manifest.paths;\n\n\t// GITHUB\n\tif (!manifest.github) {\n\t\treturn;\n\t}\n\n\t// Repo\n\tlet repo = manifest.github;\n\tif (!repo.match('/') && paths.length) {\n\t\trepo += `/${ paths[0].replace(/\\/$/, '')}`;\n\t}\n\n\tif (!repo.match('/')) {\n\t\treturn;\n\t}\n\n\tconst repo_path = `https://github.com/${repo}`;\n\n\t// Get the location of this file in the repo\n\tconst repo_file = link('source') || (window.location.pathname || '').replace(/^\\/?([^/]+)/g, '').replace(/\\/$/, 'index.html').replace(/^\\//, '');\n\n\tcontent.push(\n\t\tcreate('a', {\n\t\t\thref: fullpath(repo_file, `${repo_path}/blob/master/`),\n\t\t\ttarget: '_blank',\n\t\t\trel: 'noopener',\n\t\t\tid: 'adorn-edit'\n\t\t}, [\n\t\t\t'Edit this page'\n\t\t]),\n\t\tcreate('span'),\n\t\tcreate('a', {\n\t\t\thref: `${repo_path}`,\n\t\t\ttarget: '_blank',\n\t\t\trel: 'noopener',\n\t\t\ttitle: 'Stars',\n\t\t\tid: 'adorn-github-button'\n\t\t}, [\n\t\t\tcreate('i', {class: 'adorn-icon-github'}),\n\t\t\tcreate('span', {class: 'adorn-speeach-bubble'})\n\t\t])\n\t);\n\n\t// Install the GitHub widget\n\t// Probably could make this a little more ajaxy\n\n\tjsonp(`https://api.github.com/repos/${repo}?callback=?`, r => {\n\n\t\tif (r && r.data && r.data.watchers) {\n\n\t\t\t// Add value to twitter icon\n\t\t\teach('.adorn-github-button span.adorn-speeach-bubble', item => {\n\t\t\t\titem.innerHTML = r.data.watchers || '';\n\t\t\t});\n\t\t}\n\n\t});\n\n\treturn fragment(...content);\n}\n\nexport function twitter_btn (manifest) {\n\n\t// Content\n\tconst content = [];\n\n\t// TWITTER\n\tconst twitter_creator = manifest['twitter:creator'] || meta('twitter:creator');\n\n\t// If we dont have a creator, do nothing\n\tif (!twitter_creator) {\n\t\treturn;\n\t}\n\n\n\t// Create components\n\tconst btn = create('a', {\n\t\thref: 'https://twitter.com/share',\n\t\tclass: 'adorn-twitter-button',\n\t\ttarget: '_blank',\n\t\trel: 'noopener',\n\t\t'data-via': twitter_creator.replace('@', ''),\n\t\ttitle: 'Tweet'\n\t}, [\n\t\tcreate('i', {class: 'adorn-icon-twitter'})\n\t]);\n\n\tcontent.push(\n\t\tbtn,\n\t\tcreate('a', {\n\t\t\thref: `https://twitter.com/search?ref_src=twsrc%5Etfw&q=${ encodeURIComponent(url)}`,\n\t\t\tclass: 'adorn-twitter-count',\n\t\t\trel: 'noopener',\n\t\t\t'aria-label': 'Twitter comments',\n\t\t\ttarget: '_blank'\n\t\t}, [\n\t\t\tcreate('i', {class: 'adorn-speeach-bubble'})\n\t\t])\n\t);\n\n\n\t// Probably could make this a little more ajaxy\n\tjsonp(`https://cdn.syndication.twitter.com/widgets/tweetbutton/count.json?url=${ encodeURIComponent(url)}`, r => {\n\t\t// Add value to twitter icon\n\t\tif (!r) {\n\t\t\treturn;\n\t\t}\n\t\teach('.adorn-twitter-count span.adorn-speeach-bubble', item => {\n\t\t\titem.innerHTML = r.count || '';\n\t\t\titem.title = `This page has been shared ${ r.count } times, view these tweets`;\n\t\t});\n\t});\n\n\n\t// Add event to twitter button\n\ton(btn, 'click', e => {\n\n\t\te.preventDefault();\n\n\t\tconst options = {\n\t\t\twidth: 550,\n\t\t\theight: 250\n\t\t};\n\n\t\tconst params = {\n\t\t\ttext: document.title,\n\t\t\tvia: twitter_creator.replace('@', ''),\n\t\t\turl: window.location.href.replace(/#.*/, '')\n\t\t};\n\n\t\tconst hashtag = meta('twitter:hashtag') || manifest['twitter:hashtag'];\n\t\tif (hashtag) {\n\t\t\tparams.hashtag = hashtag;\n\t\t}\n\n\t\tpopup(`https://twitter.com/intent/tweet?${querystringify(params)}`, 'twitter', options);\n\t});\n\n\treturn fragment(...content);\n}\n\n\nexport function share_btn () {\n\n\t// Does this browser support the native Share API\n\tif (!('share' in navigator)) {\n\t\treturn;\n\t}\n\n\t// Content\n\tconst content = [];\n\n\t// Create components\n\tconst btn = create('button', {\n\t\tclass: 'adorn-icon-share',\n\t\ttarget: '_blank',\n\t\trel: 'noopener',\n\t\ttitle: 'Share'\n\t});\n\n\tcontent.push(btn);\n\n\ton(btn, 'click', () => {\n\t\ttry {\n\t\t\tnavigator.share({\n\t\t\t\ttitle: document.title,\n\t\t\t\ttext: document.title,\n\t\t\t\turl: location.href\n\t\t\t}).then(() => {\n\t\t\t\tbtn.style.color = 'green';\n\t\t\t});\n\t\t}\n\t\tcatch (e) {\n\t\t\tbtn.style.color = 'red';\n\t\t}\n\t});\n\n\treturn fragment(...content);\n}\n","import each from 'tricks/dom/each';\nimport on from 'tricks/events/on';\nimport create from 'tricks/dom/create';\nimport id from 'tricks/dom/id';\nimport onhashchange from 'tricks/window/onhashchange';\nimport getContent from './content';\n\n// ///////////////////////////////////\n// Navigation\n// ///////////////////////////////////\n\nexport default parent => {\n\n\tgetContent(content => {\n\n\t\tif (content.lenth < 2) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Create a drop down SELECT box and add it too the breadcrumbs\n\t\tconst toc = createContentSelect(content, parent);\n\t\tparent.appendChild(toc);\n\t});\n};\n\n\nfunction createContentSelect(headings) {\n\tconst toc = create('div', {class: 'adorn-toc'});\n\n\tconst select = create('select', {'aria-label': 'menu'}, [], toc);\n\tconst options = [];\n\ton(select, 'change', () => {\n\t\twindow.location.hash = select.options[select.selectedIndex].value;\n\t});\n\n\tlet _group = select;\n\teach(headings, tag => {\n\n\t\t// Get ID\n\t\tconst depth = +tag.tagName.match(/[0-9]/)[0];\n\t\tconst text = (tag.innerText || tag.textContent || tag.innerHTML);\n\t\tconst ref = id(tag);\n\n\t\tif (depth === 1) {\n\t\t\t_group = create('optgroup', {label: text}, [], select);\n\t\t}\n\n\t\tcreate('option', {value: ref}, [text], _group);\n\n\t\toptions.push(ref);\n\n\t});\n\n\tonhashchange(hash => {\n\t\t// Update the SELECT\n\t\tselect.selectedIndex = options.indexOf(hash);\n\t});\n\n\treturn toc;\n}\n","// Return trimmed string\nmodule.exports = (str, trim) => {\n\tif (!trim) {\n\t\treturn str;\n\t}\n\tif (str.indexOf(trim) === 0) {\n\t\treturn str.slice(trim.length);\n\t}\n\treturn str;\n};\n","module.exports = path => {\n\n\t// If the path is empty\n\tif (!path) {\n\t\treturn window.location;\n\t}\n\n\t// Chrome and FireFox support new URL() to extract URL objects\n\telse if (window.URL && URL instanceof Function && URL.length !== 0) {\n\t\treturn new URL(path, window.location);\n\t}\n\n\t// Ugly shim, it works!\n\telse {\n\t\tconst a = document.createElement('a');\n\t\ta.href = path;\n\t\t// Return clone for IE compatibility view.\n\t\treturn a.cloneNode(false);\n\t}\n};\n","import create from 'tricks/dom/create';\nimport URL from 'tricks/window/url';\nimport ltrim from 'tricks/string/ltrim';\nimport insertBefore from 'tricks/dom/insertBefore';\nimport contentSelect from './contentSelect';\nimport {twitter_btn, github_btn, share_btn} from './social';\n\n// ///////////////////////////////////\n// TOOLBAR\n// ///////////////////////////////////\n\nexport default manifest => {\n\n\t//\n\t// Build toolbar\n\t//\n\n\t// Tidy the path\n\tlet path = (window.location.pathname || '');\n\tconst root_path = URL(manifest.root).pathname;\n\n\t// Remove the root path from the path\n\tpath = ltrim(path, root_path);\n\n\t// Trim the path\n\tpath = path.replace(/^\\//g, '');\n\n\tconst paths = path.split(/([^/]+\\/?)/).filter(s => !!s);\n\tmanifest.paths = paths;\n\n\tconst crumbs = [\n\t\tcreate('a', {href: manifest.root},\n\t\t\t[\n\t\t\t\tcreate('img', {src: manifest.favicon, alt: window.location.hostname, title: manifest.name})\n\t\t\t])\n\t];\n\n\tpaths.forEach((val, index) => {\n\n\t\tconst href = manifest.root + paths.slice(0, index + 1).join('');\n\t\tconst text = val.replace(/\\.(html?)$/, '');\n\n\t\tcrumbs.push(\n\t\t\t' ',\n\t\t\tcreate('a', {href}, [text])\n\t\t);\n\t});\n\n\t// Create Breadcrumbs\n\tconst breadcrumbs = create('div', {class: 'adorn-breadcrumbs'}, crumbs);\n\n\tconst links = [\n\t\tgithub_btn(manifest),\n\t\ttwitter_btn(manifest),\n\t\tshare_btn(manifest)\n\t].reduce((a, btn) => {\n\t\t// Intersperse span elements\n\t\tif (!btn) {\n\t\t\treturn a;\n\t\t}\n\t\tif (a.length) {\n\t\t\ta.push(create('span'));\n\t\t}\n\t\ta.push(btn);\n\t\treturn a;\n\t}, []);\n\n\t// Get Social Buttons\n\tconst social_btns = create('div', {class: 'adorn-links'}, links);\n\n\t// If Navbar Shoutout\n\tif (manifest.shoutout) {\n\t\tsocial_btns.appendChild(create('span'));\n\t\tsocial_btns.insertAdjacentHTML('beforeend', manifest.shoutout);\n\t}\n\n\t// Append\n\tconst aside = create('aside', {class: 'adorn-toolbar'},\n\t\t[\n\t\t\tbreadcrumbs,\n\t\t\tsocial_btns\n\t\t]);\n\n\tinsertBefore(aside, document.body.firstElementChild || document.body.firstChild);\n\n\t// ///////////////////////////////////\n\t// TOC\n\t// ///////////////////////////////////\n\n\tcontentSelect(breadcrumbs);\n};\n","// Sleep\n// Creates an instance of a function which\nlet i = 1;\nconst hash = {};\n\nmodule.exports = (callback, period = 0, guid = i++) => {\n\n\tif (guid && hash[guid]) {\n\t\tclearTimeout(hash[guid]);\n\t\tdelete hash[guid];\n\t}\n\n\tif (callback) {\n\t\t// Set the period to change the state.\n\t\thash[guid] = setTimeout(() => {\n\t\t\tcallback();\n\t\t}, period);\n\t}\n\n\treturn guid;\n};\n","// Defer\n// Creates a new Iterative object\n\nmodule.exports = class Defer {\n\n\tconstructor (...args) {\n\t\tthis.items = [];\n\t\tthis.state = 'pending';\n\t\tthis.response = null;\n\t\tthis.push(...args);\n\t}\n\n\t// Mimic the Array.push function\n\tpush (...args) {\n\n\t\t// Append items to the internal array.\n\t\tthis.items.push(...args);\n\n\t\t// Trigger the custom handler\n\t\tif (this.state !== 'pending') {\n\t\t\t// Trigger the callbacks\n\t\t\tthis.items.forEach(item => item(this.response));\n\n\t\t\t// Remove all the defered items\n\t\t\tthis.length = 0;\n\t\t}\n\t}\n\n\t// Mimic the length\n\tget length () {\n\t\treturn this.items.length;\n\t}\n\tset length (value) {\n\t\treturn this.items.length = value;\n\t}\n\n\tresolve (response) {\n\n\t\t// Change the instances state\n\t\tthis.state = 'resolved';\n\t\tthis.response = response;\n\n\t\t// Trigger the callbacks\n\t\tthis.push();\n\t}\n};\n","// Find position of an element\nmodule.exports = obj => {\n\n\tlet curleft = 0;\n\tlet curtop = 0;\n\n\tif (obj.offsetParent) {\n\t\tdo {\n\t\t\tcurleft += obj.offsetLeft;\n\t\t\tcurtop += obj.offsetTop;\n\t\t} while ((obj = obj.offsetParent));\n\t}\n\n\treturn [curleft, curtop];\n};\n","// removeClass\nconst each = require('./each.js');\n\nmodule.exports = (elements, className) => {\n\tconst reg = new RegExp(`(^|\\\\s)${ className }($|\\\\s)`, 'ig');\n\treturn each(elements, el => {\n\t\tel.className = el.className.replace(reg, ' ');\n\t});\n};\n","// Find parents of an element which match a pattern\n\nconst each = require('./each.js');\nconst matches = require('./matches.js');\nconst documentElement = require('./documentElement.js');\n\nmodule.exports = (elements, match) => {\n\tconst m = [];\n\teach(elements, el => {\n\t\twhile (el && el.parentNode) {\n\t\t\tel = el.parentNode;\n\n\t\t\tif (el === document) {\n\t\t\t\tel = documentElement;\n\t\t\t}\n\n\t\t\tif (matches(el, match)) {\n\t\t\t\tm.push(el);\n\t\t\t}\n\n\t\t\tif (el === documentElement) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t});\n\treturn m;\n};\n","// Find first parent of an element which matches a pattern\n\nconst parents = require('./parents.js');\n\nmodule.exports = (elements, match) => {\n\tconst ul = parents(elements, match);\n\treturn ul.length ? ul[0] : null;\n};\n","const createElement = require('./createElement.js');\n\nmodule.exports = (tagName, prop, parent = document.body) => {\n\tconst elm = createElement(tagName, prop);\n\tparent.insertBefore(elm, parent.firstChild);\n\treturn elm;\n};\n","import each from 'tricks/dom/each';\nimport addClass from 'tricks/dom/addClass';\nimport create from 'tricks/dom/create';\nimport prepend from 'tricks/dom/prepend';\nimport parent from 'tricks/dom/parent';\nimport removeClass from 'tricks/dom/removeClass';\nimport onhashchange from 'tricks/window/onhashchange';\nimport getContent from './content';\nimport id from 'tricks/dom/id';\n\n\n// ///////////////////////////////////\n// Navigation\n// ///////////////////////////////////\n\nexport default () => {\n\n\tgetContent(content => {\n\n\t\tif (content.length < 2) {\n\t\t\taddClass(document.documentElement, 'adorn-sidebar-off');\n\t\t\treturn;\n\t\t}\n\n\t\t// Create a sidebar navigation on the body\n\t\tconst aside = prepend('aside', {class: 'adorn-sidebar'});\n\n\t\t// Create elements\n\t\tlet i = 0;\n\t\tlet prev = aside;\n\t\tconst items = {};\n\n\t\teach(content, item => {\n\n\t\t\t// New depth\n\t\t\tconst j = +item.tagName.match(/[0-9]/)[0];\n\n\t\t\t// Get parent UL\n\t\t\tconst ul = getParentUL(prev, i, j);\n\n\t\t\t// Update depth\n\t\t\ti = j;\n\n\t\t\t// Build list item\n\t\t\tconst text = (item.innerText || item.textContent || item.innerHTML);\n\t\t\tconst ref = id(item);\n\n\t\t\titems[ref] = prev = create('li', {}, [\n\t\t\t\tcreate('a', {href: `#${ref}`}, [text])\n\t\t\t], ul);\n\n\t\t});\n\n\t\t// Show current selection\n\t\tonhashchange(hash => {\n\n\t\t\t// Add Class\n\t\t\tconst item = items[hash];\n\t\t\tif (item) {\n\n\t\t\t\t// Remove class\n\t\t\t\tremoveClass('.adorn-sidebar .selected', 'selected');\n\n\t\t\t\t// Add class\n\t\t\t\taddClass(item, 'selected');\n\t\t\t}\n\t\t});\n\n\t});\n\n};\n\nfunction getParentUL(ul, i, j) {\n\tif (i < j) {\n\t\treturn create('ul', {}, [], ul);\n\t}\n\telse {\n\t\tdo {\n\t\t\tul = parent(ul, 'ul') || ul;\n\t\t}\n\t\twhile (ul && i-- > j);\n\t\treturn ul;\n\t}\n}\n","import ready from 'tricks/events/ready';\nimport create from 'tricks/dom/create';\n\nexport default manifest => {\n\t// ///////////////////////////////////\n\t// FOOTER\n\t// ///////////////////////////////////\n\n\tif (manifest.author) {\n\n\t\tready(() => {\n\n\t\t\tconst author = manifest.author.split(/\\s*, \\s*/);\n\n\t\t\tif (author) {\n\n\t\t\t\tconst children = ['Authored by '];\n\n\t\t\t\tif (author[1]) {\n\t\t\t\t\tchildren.push(\n\t\t\t\t\t\tcreate('a', {\n\t\t\t\t\t\t\thref: author[1],\n\t\t\t\t\t\t\trel: 'author'\n\t\t\t\t\t\t}, [\n\t\t\t\t\t\t\tauthor[0]\n\t\t\t\t\t\t])\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tchildren.push(author[0]);\n\t\t\t\t}\n\n\t\t\t\t// Add Footer link to the body\n\t\t\t\tcreate('footer', {}, children, document.body);\n\t\t\t}\n\n\t\t});\n\t}\n};\n","// Insert After\nmodule.exports = (el, ref) => {\n\tif (ref.nextSibling) {\n\t\tref.parentNode.insertBefore(el, ref.nextSibling);\n\t}\n\telse {\n\t\tref.parentNode.appendChild(el);\n\t}\n};\n","/*global tryit*/\nimport each from 'tricks/dom/each';\nimport on from 'tricks/events/on';\nimport create from 'tricks/dom/create';\nimport insertAfter from 'tricks/dom/insertAfter';\n\nexport default () => {\n\n\t// TryIt\n\teach('pre', pre => {\n\t\tif (pre.className === 'tryit' || pre.className === 'tryitoffline') {\n\t\t\t// Create a button and insert it after the pre tag\n\t\t\ttryitButton(pre);\n\t\t}\n\t});\n\n\t// TryIt, View\n\teach('script', script => {\n\t\tconst func = script.getAttribute('data-tryit');\n\t\tif (func) {\n\t\t\t// Create a button and insert it after the pre tag\n\t\t\ttryitButton(script, window[func]);\n\t\t}\n\n\t\tif (script.getAttribute('src')) {\n\n\t\t\t// Add click event to open in new window\n\t\t\ton(script, 'click', () => {\n\t\t\t\twindow.open(script.getAttribute('src'), '_blank');\n\t\t\t});\n\t\t}\n\t});\n\n\teach('link', script => {\n\t\tif (script.getAttribute('href')) {\n\n\t\t\t// Add click event to open in new window\n\t\t\ton(script, 'click', () => {\n\t\t\t\twindow.open(script.getAttribute('href'), '_blank');\n\t\t\t});\n\t\t}\n\t});\n};\n\nfunction tryitButton(pre, func) {\n\n\tconst btn = create('button', {class: 'tryit'}, ['tryit']);\n\n\tinsertAfter(btn, pre);\n\n\ton(btn, 'click', () => {\n\t\tif (func) {\n\t\t\tfunc();\n\t\t}\n\t\telse if (typeof(tryit) === 'function' && !tryit(pre.innerText)) {\n\t\t\treturn;\n\t\t}\n\t\telse {\n\t\t\tsetTimeout(() => eval(pre.innerText), 100);\n\t\t}\n\t});\n\n\tif (!func) {\n\t\tpre.setAttribute('contenteditable', true);\n\t}\n}\n","import ready from 'tricks/events/ready';\nimport attr from 'tricks/dom/attr';\n\n// Wait for the DOM to load\nready(() => {\n\n\t// Find all external links which dont have noopener and ensure they do\n\t// https://developers.google.com/web/tools/lighthouse/audits/noopener\n\tattr('a[target=_blank]:not([rel=noopener])', {rel: 'noopener'});\n});","// IE does not support `new Event()`\n// See https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events for details\nconst dict = {bubbles: true, cancelable: true};\n\nlet createEvent = (eventname, options = dict) =>\n\tnew Event(eventname, options);\n\ntry {\n\tcreateEvent('test');\n}\ncatch (e) {\n\tcreateEvent = (eventname, options = dict) => {\n\t\tconst e = document.createEvent('Event');\n\t\te.initEvent(eventname, !!options.bubbles, !!options.cancelable);\n\t\treturn e;\n\t};\n}\n\nmodule.exports = createEvent;\n","/* global _gaq */\nconst getScript = require('../http/getScript.js');\n\nmodule.exports = tracking => {\n\twindow._gaq = window._gaq || [];\n\t_gaq.push(['_setAccount', tracking]);\n\t_gaq.push(['_trackPageview']);\n\n\tgetScript(`${'https:' === document.location.protocol ? 'https://ssl' : 'http://www' }.google-analytics.com/ga.js`);\n};\n","// device mobile\nconst bool = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\nmodule.exports = bool;\n","// Phonegap/Cordova Device\nconst mobile = require('./mobile.js');\n\nconst filesystem = /^file:\\/{3}[^/]/i.test(window.location.href);\n\nmodule.exports = (mobile && filesystem);\n","// on.js\n// Listen to events, this is a wrapper for addEventListener\n\nconst each = require('../dom/each.js');\nconst SEPERATOR = /[\\s,]+/;\n\nmodule.exports = (elements, eventnames, callback) => {\n\teventnames = eventnames.split(SEPERATOR);\n\treturn each(elements, el => eventnames.forEach(eventname => el.removeEventListener(eventname, callback)));\n};\n","const on = require('./on.js');\nconst off = require('./off.js');\nconst matches = require('../dom/matches.js');\n\nmodule.exports = (match, eventName, handler, root = document) => {\n\n\tconst eventHandler = e => {\n\t\tlet target = e.target;\n\t\twhile (target) {\n\t\t\tif (matches(target, match)) {\n\t\t\t\te.delegateTarget = target;\n\t\t\t\thandler(e);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Next: match parentNode?\n\t\t\t\ttarget = target.parentNode;\n\t\t\t}\n\t\t}\n\t};\n\n\ton(root, eventName, eventHandler);\n\n\treturn {\n\t\tremove: () => off(root, eventName, eventHandler)\n\t};\n};\n","const delegate = require('../events/delegate');\nconst cordova = require('../support/cordova');\n\nmodule.exports = (root = document) => {\n\tif (!cordova) {\n\t\treturn false;\n\t}\n\telse {\n\t\t// Enable event delegation to fix anchor elements\n\t\tdelegate('a', 'click', e => {\n\n\t\t\tconst target = e.delegateTarget;\n\n\t\t\t// Check this is a valid external URL...\n\t\t\tif (target.href && target.href.match(/^https?:\\/\\//)) {\n\t\t\t\te.preventDefault();\n\t\t\t\twindow.open(target.href, '_system');\n\t\t\t}\n\t\t}, root);\n\t}\n};\n","import insertBefore from 'tricks/dom/insertBefore';\nimport create from 'tricks/dom/create';\nimport query from 'tricks/dom/query';\n\nif (!query('meta[name=viewport]')) {\n\n\t// Insert Meta Tag\n\tinsertBefore(create('meta', {\n\t\tname: 'viewport',\n\t\tcontent: 'width=device-width, initial-scale=1.0'\n\t}), document.getElementsByTagName('script')[0]);\n}\n","\n'header,section,datalist,option,footer,nav,menu,aside,article,style,script'.split(',').forEach(tag => document.createElement(tag));\n","// Add browser ability to the window HTML.classList\nmodule.exports = (property, enabled) => {\n\tdocument.documentElement.className = `${document.documentElement.className } ${ enabled ? '' : 'no-' }${property}`;\n};\n","const CSSsupports = require('./CSSsupports.js');\n\nconst result = ('ontouchstart' in window);\n\nCSSsupports('touch', result);\n\nmodule.exports = result;\n","module.exports = obj => Array.prototype.slice.call(obj);\n","const instanceOf = require('../object/instanceOf.js');\n\nconst _HTMLElement = (typeof HTMLElement !== 'undefined' && HTMLElement) || (typeof Element !== 'undefined' && Element);\nconst _HTMLDocument = (typeof HTMLDocument !== 'undefined' && HTMLDocument) || (typeof Document !== 'undefined' && Document);\nconst _Window = window.constructor;\n\nmodule.exports = test =>\n\tinstanceOf(test, _HTMLElement) ||\n\t\tinstanceOf(test, _HTMLDocument) ||\n\t\tinstanceOf(test, _Window)\n;\n","const tryCatch = require('../object/tryCatch.js');\nconst query = require('./query.js');\n\nmodule.exports = name => tryCatch(() => query(`link[rel=\"${ name }\"]`).href);\n","const tryCatch = require('../object/tryCatch.js');\nmodule.exports = str => tryCatch(() => JSON.parse(str));\n","// JSON\nconst jsonParse = require('../../string/jsonParse.js');\nconst tryCatch = require('../../object/tryCatch.js');\n\nmodule.exports = (url, callback) => {\n\n\tconst x = new XMLHttpRequest();\n\tx.onload = () => {\n\t\t// Get the JSON response\n\t\tconst v = (typeof x.response === 'object') ? x.response : jsonParse(x.response);\n\n\t\t// Callback\n\t\tcallback(v);\n\t};\n\tx.onerror = callback;\n\tx.open('GET', url);\n\n\t// Set responseType if supported\n\tif ('responseType' in x) {\n\t\t// Setting this to an unsupported value can result in a \"SYNTAX_ERR: DOM Exception 12\"\n\t\ttryCatch(() => x.responseType = 'json');\n\t}\n\n\tx.send();\n};\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of