refactor js, more natural order of startup methods
authorHakim El Hattab <hakim.elhattab@gmail.com>
Thu, 15 Aug 2013 12:54:17 +0000 (08:54 -0400)
committerHakim El Hattab <hakim.elhattab@gmail.com>
Thu, 15 Aug 2013 12:54:17 +0000 (08:54 -0400)
js/reveal.js
js/reveal.min.js

index 88e694b3fbb78654222962aca980ad49aea2500f..85e238a87e65c6a5f537e63e36ef9fa6fa1320c1 100644 (file)
@@ -209,6 +209,94 @@ var Reveal = (function(){
 
        }
 
+       /**
+        * Loads the dependencies of reveal.js. Dependencies are
+        * defined via the configuration option 'dependencies'
+        * and will be loaded prior to starting/binding reveal.js.
+        * Some dependencies may have an 'async' flag, if so they
+        * will load after reveal.js has been started up.
+        */
+       function load() {
+
+               var scripts = [],
+                       scriptsAsync = [];
+
+               for( var i = 0, len = config.dependencies.length; i < len; i++ ) {
+                       var s = config.dependencies[i];
+
+                       // Load if there's no condition or the condition is truthy
+                       if( !s.condition || s.condition() ) {
+                               if( s.async ) {
+                                       scriptsAsync.push( s.src );
+                               }
+                               else {
+                                       scripts.push( s.src );
+                               }
+
+                               // Extension may contain callback functions
+                               if( typeof s.callback === 'function' ) {
+                                       head.ready( s.src.match( /([\w\d_\-]*)\.?js$|[^\\\/]*$/i )[0], s.callback );
+                               }
+                       }
+               }
+
+               // Called once synchronous scripts finish loading
+               function proceed() {
+                       if( scriptsAsync.length ) {
+                               // Load asynchronous scripts
+                               head.js.apply( null, scriptsAsync );
+                       }
+
+                       start();
+               }
+
+               if( scripts.length ) {
+                       head.ready( proceed );
+
+                       // Load synchronous scripts
+                       head.js.apply( null, scripts );
+               }
+               else {
+                       proceed();
+               }
+
+       }
+
+       /**
+        * Starts up reveal.js by binding input events and navigating
+        * to the current URL deeplink if there is one.
+        */
+       function start() {
+
+               // Make sure we've got all the DOM elements we need
+               setupDOM();
+
+               // Decorate the slide DOM elements with state classes (past/future)
+               setupSlides();
+
+               // Updates the presentation to match the current configuration values
+               configure();
+
+               // Read the initial hash
+               readURL();
+
+               // Notify listeners that the presentation is ready but use a 1ms
+               // timeout to ensure it's not fired synchronously after #initialize()
+               setTimeout( function() {
+                       // Enable transitions now that we're loaded
+                       dom.slides.classList.remove( 'no-transition' );
+
+                       loaded = true;
+
+                       dispatchEvent( 'ready', {
+                               'indexh': indexh,
+                               'indexv': indexv,
+                               'currentSlide': currentSlide
+                       } );
+               }, 1 );
+
+       }
+
        /**
         * Iterates through and decorates slides DOM elements with
         * appropriate classes.
@@ -383,107 +471,6 @@ var Reveal = (function(){
 
        }
 
-       /**
-        * Hides the address bar if we're on a mobile device.
-        */
-       function hideAddressBar() {
-
-               if( /iphone|ipod|android/gi.test( navigator.userAgent ) && !/crios/gi.test( navigator.userAgent ) ) {
-                       // Events that should trigger the address bar to hide
-                       window.addEventListener( 'load', removeAddressBar, false );
-                       window.addEventListener( 'orientationchange', removeAddressBar, false );
-               }
-
-       }
-
-       /**
-        * Loads the dependencies of reveal.js. Dependencies are
-        * defined via the configuration option 'dependencies'
-        * and will be loaded prior to starting/binding reveal.js.
-        * Some dependencies may have an 'async' flag, if so they
-        * will load after reveal.js has been started up.
-        */
-       function load() {
-
-               var scripts = [],
-                       scriptsAsync = [];
-
-               for( var i = 0, len = config.dependencies.length; i < len; i++ ) {
-                       var s = config.dependencies[i];
-
-                       // Load if there's no condition or the condition is truthy
-                       if( !s.condition || s.condition() ) {
-                               if( s.async ) {
-                                       scriptsAsync.push( s.src );
-                               }
-                               else {
-                                       scripts.push( s.src );
-                               }
-
-                               // Extension may contain callback functions
-                               if( typeof s.callback === 'function' ) {
-                                       head.ready( s.src.match( /([\w\d_\-]*)\.?js$|[^\\\/]*$/i )[0], s.callback );
-                               }
-                       }
-               }
-
-               // Called once synchronous scripts finish loading
-               function proceed() {
-                       if( scriptsAsync.length ) {
-                               // Load asynchronous scripts
-                               head.js.apply( null, scriptsAsync );
-                       }
-
-                       start();
-               }
-
-               if( scripts.length ) {
-                       head.ready( proceed );
-
-                       // Load synchronous scripts
-                       head.js.apply( null, scripts );
-               }
-               else {
-                       proceed();
-               }
-
-       }
-
-       /**
-        * Starts up reveal.js by binding input events and navigating
-        * to the current URL deeplink if there is one.
-        */
-       function start() {
-
-               // Make sure we've got all the DOM elements we need
-               setupDOM();
-
-               // Decorate the slide DOM elements with state classes (past/future)
-               setupSlides();
-
-               // Updates the presentation to match the current configuration values
-               configure();
-
-               // Read the initial hash
-               readURL();
-
-               // Notify listeners that the presentation is ready but use a 1ms
-               // timeout to ensure it's not fired synchronously after #initialize()
-               setTimeout( function() {
-                       // Enable transitions now that we're loaded
-                       dom.slides.classList.remove( 'no-transition' );
-
-                       loaded = true;
-
-                       dispatchEvent( 'ready', {
-                               'indexh': indexh,
-                               'indexv': indexv,
-                               'currentSlide': currentSlide
-                       } );
-               }, 1 );
-
-       }
-
        /**
         * Applies the configuration settings from the config
         * object. May be called multiple times.
@@ -744,6 +731,19 @@ var Reveal = (function(){
 
        }
 
+       /**
+        * Hides the address bar if we're on a mobile device.
+        */
+       function hideAddressBar() {
+
+               if( /iphone|ipod|android/gi.test( navigator.userAgent ) && !/crios/gi.test( navigator.userAgent ) ) {
+                       // Events that should trigger the address bar to hide
+                       window.addEventListener( 'load', removeAddressBar, false );
+                       window.addEventListener( 'orientationchange', removeAddressBar, false );
+               }
+
+       }
+
        /**
         * Causes the address bar to hide on mobile devices,
         * more vertical space ftw.
index f3813b0201c0eaabc5b69ef83fb2648de9b7823e..5a834833038b247b520338b08f33c70e47679bf1 100644 (file)
@@ -1,8 +1,8 @@
 /*!
- * reveal.js 2.5.0 (2013-08-15, 08:50)
+ * reveal.js 2.5.0 (2013-08-15, 08:53)
  * http://lab.hakim.se/reveal-js
  * MIT licensed
  *
  * Copyright (C) 2013 Hakim El Hattab, http://hakim.se
  */
-var Reveal=function(){"use strict";function e(e){return t(),Rt||Ct?(window.addEventListener("load",x,!1),f(zt,e),i(),s(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function t(){Ct="WebkitPerspective"in document.body.style||"MozPerspective"in document.body.style||"msPerspective"in document.body.style||"OPerspective"in document.body.style||"perspective"in document.body.style,Rt="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style,It=navigator.userAgent.match(/(iphone|ipod|android)/gi)}function n(){var e=v(document.querySelectorAll(Xt));e.forEach(function(e){var t=v(e.querySelectorAll("section"));t.forEach(function(e,t){t>0&&e.classList.add("future")})})}function r(){_t.theme=document.querySelector("#theme"),_t.wrapper=document.querySelector(".reveal"),_t.slides=document.querySelector(".reveal .slides"),_t.slides.classList.add("no-transition"),_t.background=o(_t.wrapper,"div","backgrounds",null),_t.progress=o(_t.wrapper,"div","progress","<span></span>"),_t.progressbar=_t.progress.querySelector("span"),o(_t.wrapper,"aside","controls",'<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>'),o(_t.wrapper,"div","state-background",null),o(_t.wrapper,"div","pause-overlay",null),zt.controls&&(_t.controls=document.querySelector(".reveal .controls"),_t.controlsLeft=v(document.querySelectorAll(".navigate-left")),_t.controlsRight=v(document.querySelectorAll(".navigate-right")),_t.controlsUp=v(document.querySelectorAll(".navigate-up")),_t.controlsDown=v(document.querySelectorAll(".navigate-down")),_t.controlsPrev=v(document.querySelectorAll(".navigate-prev")),_t.controlsNext=v(document.querySelectorAll(".navigate-next")))}function o(e,t,n,r){var o=e.querySelector("."+n);return o||(o=document.createElement(t),o.classList.add(n),null!==r&&(o.innerHTML=r),e.appendChild(o)),o}function a(){function e(e,t){var n={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundColor:e.getAttribute("data-background-color"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition")},r=document.createElement("div");return r.className="slide-background",n.background&&(/^(http|file|\/\/)/gi.test(n.background)||/\.(png|jpg|jpeg|gif|bmp)$/gi.test(n.background)?r.style.backgroundImage="url("+n.background+")":r.style.background=n.background),n.backgroundSize&&(r.style.backgroundSize=n.backgroundSize),n.backgroundImage&&(r.style.backgroundImage='url("'+n.backgroundImage+'")'),n.backgroundColor&&(r.style.backgroundColor=n.backgroundColor),n.backgroundRepeat&&(r.style.backgroundRepeat=n.backgroundRepeat),n.backgroundPosition&&(r.style.backgroundPosition=n.backgroundPosition),n.backgroundTransition&&r.setAttribute("data-background-transition",n.backgroundTransition),t.appendChild(r),r}h()&&document.body.classList.add("print-pdf"),_t.background.innerHTML="",_t.background.classList.add("no-transition"),v(document.querySelectorAll(Xt)).forEach(function(t){var n;n=h()?e(t,t):e(t,_t.background),v(t.querySelectorAll("section")).forEach(function(t){h()?e(t,t):e(t,n)})})}function i(){/iphone|ipod|android/gi.test(navigator.userAgent)&&!/crios/gi.test(navigator.userAgent)&&(window.addEventListener("load",y,!1),window.addEventListener("orientationchange",y,!1))}function s(){function e(){n.length&&head.js.apply(null,n),c()}for(var t=[],n=[],r=0,o=zt.dependencies.length;o>r;r++){var a=zt.dependencies[r];(!a.condition||a.condition())&&(a.async?n.push(a.src):t.push(a.src),"function"==typeof a.callback&&head.ready(a.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],a.callback))}t.length?(head.ready(e),head.js.apply(null,t)):e()}function c(){r(),n(),l(),B(),setTimeout(function(){_t.slides.classList.remove("no-transition"),Ut=!0,b("ready",{indexh:Mt,indexv:Pt,currentSlide:Nt})},1)}function l(e){if(_t.wrapper.classList.remove(zt.transition),"object"==typeof e&&f(zt,e),Ct===!1&&(zt.transition="linear"),_t.wrapper.classList.add(zt.transition),_t.wrapper.setAttribute("data-transition-speed",zt.transitionSpeed),_t.wrapper.setAttribute("data-background-transition",zt.backgroundTransition),_t.controls&&(_t.controls.style.display=zt.controls&&_t.controls?"block":"none"),_t.progress&&(_t.progress.style.display=zt.progress&&_t.progress?"block":"none"),zt.rtl?_t.wrapper.classList.add("rtl"):_t.wrapper.classList.remove("rtl"),zt.center?_t.wrapper.classList.add("center"):_t.wrapper.classList.remove("center"),zt.mouseWheel?(document.addEventListener("DOMMouseScroll",ht,!1),document.addEventListener("mousewheel",ht,!1)):(document.removeEventListener("DOMMouseScroll",ht,!1),document.removeEventListener("mousewheel",ht,!1)),zt.rollingLinks?w():L(),zt.previewLinks?E():(k(),E("[data-preview-link]")),zt.theme&&_t.theme){var t=_t.theme.getAttribute("href"),n=/[^\/]*?(?=\.css)/,r=t.match(n)[0];zt.theme!==r&&(t=t.replace(n,zt.theme),_t.theme.setAttribute("href",t))}U()}function u(){Bt=!0,window.addEventListener("hashchange",At,!1),window.addEventListener("resize",qt,!1),zt.touch&&(_t.wrapper.addEventListener("touchstart",dt,!1),_t.wrapper.addEventListener("touchmove",ft,!1),_t.wrapper.addEventListener("touchend",vt,!1),window.navigator.msPointerEnabled&&(_t.wrapper.addEventListener("MSPointerDown",pt,!1),_t.wrapper.addEventListener("MSPointerMove",gt,!1),_t.wrapper.addEventListener("MSPointerUp",mt,!1))),zt.keyboard&&document.addEventListener("keydown",ut,!1),zt.progress&&_t.progress&&_t.progress.addEventListener("click",yt,!1),zt.controls&&_t.controls&&["touchstart","click"].forEach(function(e){_t.controlsLeft.forEach(function(t){t.addEventListener(e,bt,!1)}),_t.controlsRight.forEach(function(t){t.addEventListener(e,wt,!1)}),_t.controlsUp.forEach(function(t){t.addEventListener(e,Lt,!1)}),_t.controlsDown.forEach(function(t){t.addEventListener(e,Et,!1)}),_t.controlsPrev.forEach(function(t){t.addEventListener(e,kt,!1)}),_t.controlsNext.forEach(function(t){t.addEventListener(e,St,!1)})})}function d(){Bt=!1,document.removeEventListener("keydown",ut,!1),window.removeEventListener("hashchange",At,!1),window.removeEventListener("resize",qt,!1),_t.wrapper.removeEventListener("touchstart",dt,!1),_t.wrapper.removeEventListener("touchmove",ft,!1),_t.wrapper.removeEventListener("touchend",vt,!1),window.navigator.msPointerEnabled&&(_t.wrapper.removeEventListener("MSPointerDown",pt,!1),_t.wrapper.removeEventListener("MSPointerMove",gt,!1),_t.wrapper.removeEventListener("MSPointerUp",mt,!1)),zt.progress&&_t.progress&&_t.progress.removeEventListener("click",yt,!1),zt.controls&&_t.controls&&["touchstart","click"].forEach(function(e){_t.controlsLeft.forEach(function(t){t.removeEventListener(e,bt,!1)}),_t.controlsRight.forEach(function(t){t.removeEventListener(e,wt,!1)}),_t.controlsUp.forEach(function(t){t.removeEventListener(e,Lt,!1)}),_t.controlsDown.forEach(function(t){t.removeEventListener(e,Et,!1)}),_t.controlsPrev.forEach(function(t){t.removeEventListener(e,kt,!1)}),_t.controlsNext.forEach(function(t){t.removeEventListener(e,St,!1)})})}function f(e,t){for(var n in t)e[n]=t[n]}function v(e){return Array.prototype.slice.call(e)}function p(e,t){var n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}function g(e,t){e.style.WebkitTransform=t,e.style.MozTransform=t,e.style.msTransform=t,e.style.OTransform=t,e.style.transform=t}function m(e){var t=0;if(e){var n=0;v(e.childNodes).forEach(function(e){"number"==typeof e.offsetTop&&e.style&&("absolute"===e.style.position&&(n+=1),t=Math.max(t,e.offsetTop+e.offsetHeight))}),0===n&&(t=e.offsetHeight)}return t}function h(){return/print-pdf/gi.test(window.location.search)}function y(){0===window.orientation?(document.documentElement.style.overflow="scroll",document.body.style.height="120%"):(document.documentElement.style.overflow="",document.body.style.height="100%"),setTimeout(function(){window.scrollTo(0,1)},10)}function b(e,t){var n=document.createEvent("HTMLEvents",1,2);n.initEvent(e,!0,!0),f(n,t),_t.wrapper.dispatchEvent(n)}function w(){if(Ct&&!("msPerspective"in document.body.style))for(var e=document.querySelectorAll(Yt+" a:not(.image)"),t=0,n=e.length;n>t;t++){var r=e[t];if(!(!r.textContent||r.querySelector("*")||r.className&&r.classList.contains(r,"roll"))){var o=document.createElement("span");o.setAttribute("data-title",r.text),o.innerHTML=r.innerHTML,r.classList.add("roll"),r.innerHTML="",r.appendChild(o)}}}function L(){for(var e=document.querySelectorAll(Yt+" a.roll"),t=0,n=e.length;n>t;t++){var r=e[t],o=r.querySelector("span");o&&(r.classList.remove("roll"),r.innerHTML=o.innerHTML)}}function E(e){var t=v(document.querySelectorAll(e?e:"a"));t.forEach(function(e){/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",Tt,!1)})}function k(){var e=v(document.querySelectorAll("a"));e.forEach(function(e){/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",Tt,!1)})}function S(e){A(),_t.preview=document.createElement("div"),_t.preview.classList.add("preview-link-overlay"),_t.wrapper.appendChild(_t.preview),_t.preview.innerHTML=["<header>",'<a class="close" href="#"><span class="icon"></span></a>','<a class="external" href="'+e+'" target="_blank"><span class="icon"></span></a>',"</header>",'<div class="spinner"></div>','<div class="viewport">','<iframe src="'+e+'"></iframe>',"</div>"].join(""),_t.preview.querySelector("iframe").addEventListener("load",function(){_t.preview.classList.add("loaded")},!1),_t.preview.querySelector(".close").addEventListener("click",function(e){A(),e.preventDefault()},!1),_t.preview.querySelector(".external").addEventListener("click",function(){A()},!1),setTimeout(function(){_t.preview.classList.add("visible")},1)}function A(){_t.preview&&(_t.preview.setAttribute("src",""),_t.preview.parentNode.removeChild(_t.preview),_t.preview=null)}function q(e){var t=v(e);return t.forEach(function(e,t){e.hasAttribute("data-fragment-index")||e.setAttribute("data-fragment-index",t)}),t.sort(function(e,t){return e.getAttribute("data-fragment-index")-t.getAttribute("data-fragment-index")}),t}function x(){if(_t.wrapper&&!h()){var e=_t.wrapper.offsetWidth,t=_t.wrapper.offsetHeight;e-=t*zt.margin,t-=t*zt.margin;var n=zt.width,r=zt.height;"string"==typeof n&&/%$/.test(n)&&(n=parseInt(n,10)/100*e),"string"==typeof r&&/%$/.test(r)&&(r=parseInt(r,10)/100*t),_t.slides.style.width=n+"px",_t.slides.style.height=r+"px",Ft=Math.min(e/n,t/r),Ft=Math.max(Ft,zt.minScale),Ft=Math.min(Ft,zt.maxScale),void 0===_t.slides.style.zoom||navigator.userAgent.match(/(iphone|ipod|ipad|android)/gi)?g(_t.slides,"translate(-50%, -50%) scale("+Ft+") translate(50%, 50%)"):_t.slides.style.zoom=Ft;for(var o=v(document.querySelectorAll(Yt)),a=0,i=o.length;i>a;a++){var s=o[a];"none"!==s.style.display&&(s.style.top=zt.center?s.classList.contains("stack")?0:Math.max(-(m(s)/2)-20,-r/2)+"px":"")}F()}}function T(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function M(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){var t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function P(){if(zt.overview){rt();var e=_t.wrapper.classList.contains("overview"),t=400>window.innerWidth?1e3:2500;_t.wrapper.classList.add("overview"),_t.wrapper.classList.remove("exit-overview"),clearTimeout(Zt),clearTimeout(Qt),Zt=setTimeout(function(){for(var n=document.querySelectorAll(Xt),r=0,o=n.length;o>r;r++){var a=n[r],i=zt.rtl?-105:105;if(a.setAttribute("data-index-h",r),g(a,"translateZ(-"+t+"px) translate("+(r-Mt)*i+"%, 0%)"),a.classList.contains("stack"))for(var s=a.querySelectorAll("section"),c=0,l=s.length;l>c;c++){var u=r===Mt?Pt:M(a),d=s[c];d.setAttribute("data-index-h",r),d.setAttribute("data-index-v",c),g(d,"translate(0%, "+105*(c-u)+"%)"),d.addEventListener("click",xt,!0)}else a.addEventListener("click",xt,!0)}j(),x(),e||b("overviewshown",{indexh:Mt,indexv:Pt,currentSlide:Nt})},10)}}function D(){if(zt.overview){clearTimeout(Zt),clearTimeout(Qt),_t.wrapper.classList.remove("overview"),_t.wrapper.classList.add("exit-overview"),Qt=setTimeout(function(){_t.wrapper.classList.remove("exit-overview")},10);for(var e=v(document.querySelectorAll(Yt)),t=0,n=e.length;n>t;t++){var r=e[t];r.style.display="",g(r,""),r.removeEventListener("click",xt,!0)}z(Mt,Pt),nt(),b("overviewhidden",{indexh:Mt,indexv:Pt,currentSlide:Nt})}}function N(e){"boolean"==typeof e?e?P():D():C()?D():P()}function C(){return _t.wrapper.classList.contains("overview")}function R(e){return e=e?e:Nt,e&&!!e.parentNode.nodeName.match(/section/i)}function I(){var e=document.body,t=e.requestFullScreen||e.webkitRequestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullScreen;t&&t.apply(e)}function Y(){var e=_t.wrapper.classList.contains("paused");rt(),_t.wrapper.classList.add("paused"),e===!1&&b("paused")}function X(){var e=_t.wrapper.classList.contains("paused");_t.wrapper.classList.remove("paused"),nt(),e&&b("resumed")}function H(){O()?X():Y()}function O(){return _t.wrapper.classList.contains("paused")}function z(e,t,n,r){Dt=Nt;var o=document.querySelectorAll(Xt);void 0===t&&(t=M(o[e])),Dt&&Dt.parentNode&&Dt.parentNode.classList.contains("stack")&&T(Dt.parentNode,Pt);var a=jt.concat();jt.length=0;var i=Mt,s=Pt;Mt=W(Xt,void 0===e?Mt:e),Pt=W(Ht,void 0===t?Pt:t),j(),x();e:for(var c=0,l=jt.length;l>c;c++){for(var u=0;a.length>u;u++)if(a[u]===jt[c]){a.splice(u,1);continue e}document.documentElement.classList.add(jt[c]),b(jt[c])}for(;a.length;)document.documentElement.classList.remove(a.pop());C()&&P();var d=o[Mt],f=d.querySelectorAll("section");if(Nt=f[Pt]||d,n!==void 0){var p=q(Nt.querySelectorAll(".fragment"));v(p).forEach(function(e,t){n>t?e.classList.add("visible"):e.classList.remove("visible")})}var g=Mt!==i||Pt!==s;g?b("slidechanged",{indexh:Mt,indexv:Pt,previousSlide:Dt,currentSlide:Nt,origin:r}):Dt=null,Dt&&(Dt.classList.remove("present"),document.querySelector(Ot).classList.contains("present")&&setTimeout(function(){var e,t=v(document.querySelectorAll(Xt+".stack"));for(e in t)t[e]&&T(t[e],0)},0)),g&&(Q(Dt),Z(Nt)),_(),F(),K(),G()}function U(){d(),u(),x(),Wt=zt.autoSlide,nt(),a(),_(),F(),K()}function W(e,t){var n=v(document.querySelectorAll(e)),r=n.length;if(r){zt.loop&&(t%=r,0>t&&(t=r+t)),t=Math.max(Math.min(t,r-1),0);for(var o=0;r>o;o++){var a=n[o],i=zt.rtl&&!R(a);if(a.classList.remove("past"),a.classList.remove("present"),a.classList.remove("future"),a.setAttribute("hidden",""),t>o)a.classList.add(i?"future":"past");else if(o>t){a.classList.add(i?"past":"future");for(var s=v(a.querySelectorAll(".fragment.visible"));s.length;)s.pop().classList.remove("visible")}a.querySelector("section")&&a.classList.add("stack")}n[t].classList.add("present"),n[t].removeAttribute("hidden");var c=n[t].getAttribute("data-state");c&&(jt=jt.concat(c.split(" ")));var l=n[t].getAttribute("data-autoslide");Wt=l?parseInt(l,10):zt.autoSlide,nt()}else t=0;return t}function j(){var e,t,n=v(document.querySelectorAll(Xt)),r=n.length;if(r){var o=C()?10:zt.viewDistance;It&&(o=C()?6:1);for(var a=0;r>a;a++){var i=n[a],s=v(i.querySelectorAll("section")),c=s.length;if(e=Math.abs((Mt-a)%(r-o))||0,c){i.style.display="block";for(var l=M(i),u=0;c>u;u++){var d=s[u];t=a===Mt?Math.abs(Pt-u):Math.abs(u-l),d.style.display=e+t>o?"none":"block"}}else i.style.display=e>o?"none":"block"}}}function F(){if(zt.progress&&_t.progress){var e=v(document.querySelectorAll(Xt)),t=document.querySelectorAll(Yt+":not(.stack)").length,n=0;e:for(var r=0;e.length>r;r++){for(var o=e[r],a=v(o.querySelectorAll("section")),i=0;a.length>i;i++){if(a[i].classList.contains("present"))break e;n++}if(o.classList.contains("present"))break;o.classList.contains("stack")===!1&&n++}_t.progressbar.style.width=n/(t-1)*window.innerWidth+"px"}}function _(){if(zt.controls&&_t.controls){var e=$(),t=V();_t.controlsLeft.concat(_t.controlsRight).concat(_t.controlsUp).concat(_t.controlsDown).concat(_t.controlsPrev).concat(_t.controlsNext).forEach(function(e){e.classList.remove("enabled"),e.classList.remove("fragmented")}),e.left&&_t.controlsLeft.forEach(function(e){e.classList.add("enabled")}),e.right&&_t.controlsRight.forEach(function(e){e.classList.add("enabled")}),e.up&&_t.controlsUp.forEach(function(e){e.classList.add("enabled")}),e.down&&_t.controlsDown.forEach(function(e){e.classList.add("enabled")}),(e.left||e.up)&&_t.controlsPrev.forEach(function(e){e.classList.add("enabled")}),(e.right||e.down)&&_t.controlsNext.forEach(function(e){e.classList.add("enabled")}),Nt&&(t.prev&&_t.controlsPrev.forEach(function(e){e.classList.add("fragmented","enabled")}),t.next&&_t.controlsNext.forEach(function(e){e.classList.add("fragmented","enabled")}),R(Nt)?(t.prev&&_t.controlsUp.forEach(function(e){e.classList.add("fragmented","enabled")}),t.next&&_t.controlsDown.forEach(function(e){e.classList.add("fragmented","enabled")})):(t.prev&&_t.controlsLeft.forEach(function(e){e.classList.add("fragmented","enabled")}),t.next&&_t.controlsRight.forEach(function(e){e.classList.add("fragmented","enabled")})))}}function K(){v(_t.background.childNodes).forEach(function(e,t){var n=zt.rtl?"future":"past",r=zt.rtl?"past":"future";e.className="slide-background "+(Mt>t?n:t>Mt?r:"present"),v(e.childNodes).forEach(function(e,t){e.className="slide-background "+(Pt>t?"past":t>Pt?"future":"present")})}),setTimeout(function(){_t.background.classList.remove("no-transition")},1)}function $(){var e=document.querySelectorAll(Xt),t=document.querySelectorAll(Ht),n={left:Mt>0||zt.loop,right:e.length-1>Mt||zt.loop,up:Pt>0,down:t.length-1>Pt};if(zt.rtl){var r=n.left;n.left=n.right,n.right=r}return n}function V(){if(Nt&&zt.fragments){var e=Nt.querySelectorAll(".fragment"),t=Nt.querySelectorAll(".fragment:not(.visible)");return{prev:e.length-t.length>0,next:!!t.length}}return{prev:!1,next:!1}}function Z(e){e&&(v(e.querySelectorAll("video, audio")).forEach(function(e){e.hasAttribute("data-autoplay")&&e.play()}),v(e.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(e){e.hasAttribute("data-autoplay")&&e.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")}))}function Q(e){e&&(v(e.querySelectorAll("video, audio")).forEach(function(e){e.hasAttribute("data-ignore")||e.pause()}),v(e.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(e){e.hasAttribute("data-ignore")||"function"!=typeof e.contentWindow.postMessage||e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}))}function B(){var e=window.location.hash,t=e.slice(2).split("/"),n=e.replace(/#|\//gi,"");if(isNaN(parseInt(t[0],10))&&n.length){var r=document.querySelector("#"+n);if(r){var o=Reveal.getIndices(r);z(o.h,o.v)}else z(Mt||0,Pt||0)}else{var a=parseInt(t[0],10)||0,i=parseInt(t[1],10)||0;(a!==Mt||i!==Pt)&&z(a,i)}}function G(e){if(zt.history)if(clearTimeout(Vt),"number"==typeof e)Vt=setTimeout(G,e);else{var t="/";Nt&&"string"==typeof Nt.getAttribute("id")?t="/"+Nt.getAttribute("id"):((Mt>0||Pt>0)&&(t+=Mt),Pt>0&&(t+="/"+Pt)),window.location.hash=t}}function J(e){var t,n=Mt,r=Pt;if(e){var o=R(e),a=o?e.parentNode:e,i=v(document.querySelectorAll(Xt));n=Math.max(i.indexOf(a),0),o&&(r=Math.max(v(e.parentNode.querySelectorAll("section")).indexOf(e),0))}if(!e&&Nt){var s=Nt.querySelectorAll(".fragment").length>0;if(s){var c=Nt.querySelectorAll(".fragment.visible");t=c.length}}return{h:n,v:r,f:t}}function et(){if(Nt&&zt.fragments){var e=q(Nt.querySelectorAll(".fragment:not(.visible)"));if(e.length){var t=e[0].getAttribute("data-fragment-index");return e=Nt.querySelectorAll('.fragment[data-fragment-index="'+t+'"]'),v(e).forEach(function(e){e.classList.add("visible")}),b("fragmentshown",{fragment:e[0],fragments:e}),_(),!0}}return!1}function tt(){if(Nt&&zt.fragments){var e=q(Nt.querySelectorAll(".fragment.visible"));if(e.length){var t=e[e.length-1].getAttribute("data-fragment-index");return e=Nt.querySelectorAll('.fragment[data-fragment-index="'+t+'"]'),v(e).forEach(function(e){e.classList.remove("visible")}),b("fragmenthidden",{fragment:e[0],fragments:e}),_(),!0}}return!1}function nt(){clearTimeout($t),!Wt||O()||C()||($t=setTimeout(lt,Wt))}function rt(){clearTimeout($t)}function ot(){zt.rtl?(C()||et()===!1)&&$().left&&z(Mt+1):(C()||tt()===!1)&&$().left&&z(Mt-1)}function at(){zt.rtl?(C()||tt()===!1)&&$().right&&z(Mt-1):(C()||et()===!1)&&$().right&&z(Mt+1)}function it(){(C()||tt()===!1)&&$().up&&z(Mt,Pt-1)}function st(){(C()||et()===!1)&&$().down&&z(Mt,Pt+1)}function ct(){if(tt()===!1)if($().up)it();else{var e=document.querySelector(Xt+".past:nth-child("+Mt+")");if(e){var t=e.querySelectorAll("section").length-1||void 0,n=Mt-1;z(n,t)}}}function lt(){et()===!1&&($().down?st():at()),nt()}function ut(e){document.activeElement;var t=!(!document.activeElement||!document.activeElement.type&&!document.activeElement.href&&"inherit"===document.activeElement.contentEditable);if(!(t||e.shiftKey&&32!==e.keyCode||e.altKey||e.ctrlKey||e.metaKey)){if(O()&&-1===[66,190,191].indexOf(e.keyCode))return!1;var n=!1;if("object"==typeof zt.keyboard)for(var r in zt.keyboard)if(parseInt(r,10)===e.keyCode){var o=zt.keyboard[r];"function"==typeof o?o.apply(null,[e]):"string"==typeof o&&"function"==typeof Reveal[o]&&Reveal[o].call(),n=!0}if(n===!1)switch(n=!0,e.keyCode){case 80:case 33:ct();break;case 78:case 34:lt();break;case 72:case 37:ot();break;case 76:case 39:at();break;case 75:case 38:it();break;case 74:case 40:st();break;case 36:z(0);break;case 35:z(Number.MAX_VALUE);break;case 32:C()?D():e.shiftKey?ct():lt();break;case 13:C()?D():n=!1;break;case 66:case 190:case 191:H();break;case 70:I();break;default:n=!1}n?e.preventDefault():27!==e.keyCode&&79!==e.keyCode||!Ct||(N(),e.preventDefault()),nt()}}function dt(e){Gt.startX=e.touches[0].clientX,Gt.startY=e.touches[0].clientY,Gt.startCount=e.touches.length,2===e.touches.length&&zt.overview&&(Gt.startSpan=p({x:e.touches[1].clientX,y:e.touches[1].clientY},{x:Gt.startX,y:Gt.startY}))}function ft(e){if(Gt.captured)navigator.userAgent.match(/android/gi)&&e.preventDefault();else{var t=e.touches[0].clientX,n=e.touches[0].clientY;if(2===e.touches.length&&2===Gt.startCount&&zt.overview){var r=p({x:e.touches[1].clientX,y:e.touches[1].clientY},{x:Gt.startX,y:Gt.startY});Math.abs(Gt.startSpan-r)>Gt.threshold&&(Gt.captured=!0,Gt.startSpan>r?P():D()),e.preventDefault()}else if(1===e.touches.length&&2!==Gt.startCount){var o=t-Gt.startX,a=n-Gt.startY;o>Gt.threshold&&Math.abs(o)>Math.abs(a)?(Gt.captured=!0,ot()):-Gt.threshold>o&&Math.abs(o)>Math.abs(a)?(Gt.captured=!0,at()):a>Gt.threshold?(Gt.captured=!0,it()):-Gt.threshold>a&&(Gt.captured=!0,st()),zt.embedded?(Gt.captured||R(Nt))&&e.preventDefault():e.preventDefault()}}}function vt(){Gt.captured=!1}function pt(e){e.pointerType===e.MSPOINTER_TYPE_TOUCH&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],dt(e))}function gt(e){e.pointerType===e.MSPOINTER_TYPE_TOUCH&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],ft(e))}function mt(e){e.pointerType===e.MSPOINTER_TYPE_TOUCH&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],vt(e))}function ht(e){if(Date.now()-Kt>600){Kt=Date.now();var t=e.detail||-e.wheelDelta;t>0?lt():ct()}}function yt(e){e.preventDefault();var t=v(document.querySelectorAll(Xt)).length,n=Math.floor(e.clientX/_t.wrapper.offsetWidth*t);z(n)}function bt(e){e.preventDefault(),ot()}function wt(e){e.preventDefault(),at()}function Lt(e){e.preventDefault(),it()}function Et(e){e.preventDefault(),st()}function kt(e){e.preventDefault(),ct()}function St(e){e.preventDefault(),lt()}function At(){B()}function qt(){x()}function xt(e){if(Bt&&C()){e.preventDefault();for(var t=e.target;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled")&&(D(),t.nodeName.match(/section/gi))){var n=parseInt(t.getAttribute("data-index-h"),10),r=parseInt(t.getAttribute("data-index-v"),10);z(n,r)}}}function Tt(e){var t=e.target.getAttribute("href");t&&(S(t),e.preventDefault())}var Mt,Pt,Dt,Nt,Ct,Rt,It,Yt=".reveal .slides section",Xt=".reveal .slides>section",Ht=".reveal .slides>section.present>section",Ot=".reveal .slides>section:first-child",zt={width:960,height:700,margin:.1,minScale:.2,maxScale:1,controls:!0,progress:!0,history:!1,keyboard:!0,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,fragments:!0,embedded:!1,autoSlide:0,mouseWheel:!1,rollingLinks:!1,previewLinks:!1,theme:null,transition:"default",transitionSpeed:"default",backgroundTransition:"default",viewDistance:3,dependencies:[]},Ut=!1,Wt=0,jt=[],Ft=1,_t={},Kt=0,$t=0,Vt=0,Zt=0,Qt=0,Bt=!1,Gt={startX:0,startY:0,startSpan:0,startCount:0,captured:!1,threshold:40};return{initialize:e,configure:l,sync:U,slide:z,left:ot,right:at,up:it,down:st,prev:ct,next:lt,prevFragment:tt,nextFragment:et,navigateTo:z,navigateLeft:ot,navigateRight:at,navigateUp:it,navigateDown:st,navigatePrev:ct,navigateNext:lt,layout:x,availableRoutes:$,availableFragments:V,toggleOverview:N,togglePause:H,isOverview:C,isPaused:O,addEventListeners:u,removeEventListeners:d,getIndices:J,getSlide:function(e,t){var n=document.querySelectorAll(Xt)[e],r=n&&n.querySelectorAll("section");return t!==void 0?r?r[t]:void 0:n},getPreviousSlide:function(){return Dt},getCurrentSlide:function(){return Nt},getScale:function(){return Ft},getConfig:function(){return zt},getQueryHash:function(){var e={};return location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(t){e[t.split("=").shift()]=t.split("=").pop()}),e},isFirstSlide:function(){return null==document.querySelector(Yt+".past")?!0:!1},isLastSlide:function(){return Nt&&Nt.classList.contains(".stack")?null==Nt.querySelector(Yt+".future")?!0:!1:null==document.querySelector(Yt+".future")?!0:!1},isReady:function(){return Ut},addEventListener:function(e,t,n){"addEventListener"in window&&(_t.wrapper||document.querySelector(".reveal")).addEventListener(e,t,n)},removeEventListener:function(e,t,n){"addEventListener"in window&&(_t.wrapper||document.querySelector(".reveal")).removeEventListener(e,t,n)}}}();
\ No newline at end of file
+var Reveal=function(){"use strict";function e(e){return t(),Rt||Ct?(window.addEventListener("load",x,!1),d(zt,e),h(),n(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function t(){Ct="WebkitPerspective"in document.body.style||"MozPerspective"in document.body.style||"msPerspective"in document.body.style||"OPerspective"in document.body.style||"perspective"in document.body.style,Rt="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style,It=navigator.userAgent.match(/(iphone|ipod|android)/gi)}function n(){function e(){n.length&&head.js.apply(null,n),r()}for(var t=[],n=[],o=0,a=zt.dependencies.length;a>o;o++){var i=zt.dependencies[o];(!i.condition||i.condition())&&(i.async?n.push(i.src):t.push(i.src),"function"==typeof i.callback&&head.ready(i.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],i.callback))}t.length?(head.ready(e),head.js.apply(null,t)):e()}function r(){a(),o(),c(),B(),setTimeout(function(){_t.slides.classList.remove("no-transition"),Ut=!0,b("ready",{indexh:Mt,indexv:Pt,currentSlide:Nt})},1)}function o(){var e=f(document.querySelectorAll(Xt));e.forEach(function(e){var t=f(e.querySelectorAll("section"));t.forEach(function(e,t){t>0&&e.classList.add("future")})})}function a(){_t.theme=document.querySelector("#theme"),_t.wrapper=document.querySelector(".reveal"),_t.slides=document.querySelector(".reveal .slides"),_t.slides.classList.add("no-transition"),_t.background=i(_t.wrapper,"div","backgrounds",null),_t.progress=i(_t.wrapper,"div","progress","<span></span>"),_t.progressbar=_t.progress.querySelector("span"),i(_t.wrapper,"aside","controls",'<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>'),i(_t.wrapper,"div","state-background",null),i(_t.wrapper,"div","pause-overlay",null),zt.controls&&(_t.controls=document.querySelector(".reveal .controls"),_t.controlsLeft=f(document.querySelectorAll(".navigate-left")),_t.controlsRight=f(document.querySelectorAll(".navigate-right")),_t.controlsUp=f(document.querySelectorAll(".navigate-up")),_t.controlsDown=f(document.querySelectorAll(".navigate-down")),_t.controlsPrev=f(document.querySelectorAll(".navigate-prev")),_t.controlsNext=f(document.querySelectorAll(".navigate-next")))}function i(e,t,n,r){var o=e.querySelector("."+n);return o||(o=document.createElement(t),o.classList.add(n),null!==r&&(o.innerHTML=r),e.appendChild(o)),o}function s(){function e(e,t){var n={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundColor:e.getAttribute("data-background-color"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition")},r=document.createElement("div");return r.className="slide-background",n.background&&(/^(http|file|\/\/)/gi.test(n.background)||/\.(png|jpg|jpeg|gif|bmp)$/gi.test(n.background)?r.style.backgroundImage="url("+n.background+")":r.style.background=n.background),n.backgroundSize&&(r.style.backgroundSize=n.backgroundSize),n.backgroundImage&&(r.style.backgroundImage='url("'+n.backgroundImage+'")'),n.backgroundColor&&(r.style.backgroundColor=n.backgroundColor),n.backgroundRepeat&&(r.style.backgroundRepeat=n.backgroundRepeat),n.backgroundPosition&&(r.style.backgroundPosition=n.backgroundPosition),n.backgroundTransition&&r.setAttribute("data-background-transition",n.backgroundTransition),t.appendChild(r),r}m()&&document.body.classList.add("print-pdf"),_t.background.innerHTML="",_t.background.classList.add("no-transition"),f(document.querySelectorAll(Xt)).forEach(function(t){var n;n=m()?e(t,t):e(t,_t.background),f(t.querySelectorAll("section")).forEach(function(t){m()?e(t,t):e(t,n)})})}function c(e){if(_t.wrapper.classList.remove(zt.transition),"object"==typeof e&&d(zt,e),Ct===!1&&(zt.transition="linear"),_t.wrapper.classList.add(zt.transition),_t.wrapper.setAttribute("data-transition-speed",zt.transitionSpeed),_t.wrapper.setAttribute("data-background-transition",zt.backgroundTransition),_t.controls&&(_t.controls.style.display=zt.controls&&_t.controls?"block":"none"),_t.progress&&(_t.progress.style.display=zt.progress&&_t.progress?"block":"none"),zt.rtl?_t.wrapper.classList.add("rtl"):_t.wrapper.classList.remove("rtl"),zt.center?_t.wrapper.classList.add("center"):_t.wrapper.classList.remove("center"),zt.mouseWheel?(document.addEventListener("DOMMouseScroll",ht,!1),document.addEventListener("mousewheel",ht,!1)):(document.removeEventListener("DOMMouseScroll",ht,!1),document.removeEventListener("mousewheel",ht,!1)),zt.rollingLinks?w():L(),zt.previewLinks?E():(k(),E("[data-preview-link]")),zt.theme&&_t.theme){var t=_t.theme.getAttribute("href"),n=/[^\/]*?(?=\.css)/,r=t.match(n)[0];zt.theme!==r&&(t=t.replace(n,zt.theme),_t.theme.setAttribute("href",t))}U()}function l(){Bt=!0,window.addEventListener("hashchange",At,!1),window.addEventListener("resize",qt,!1),zt.touch&&(_t.wrapper.addEventListener("touchstart",dt,!1),_t.wrapper.addEventListener("touchmove",ft,!1),_t.wrapper.addEventListener("touchend",vt,!1),window.navigator.msPointerEnabled&&(_t.wrapper.addEventListener("MSPointerDown",pt,!1),_t.wrapper.addEventListener("MSPointerMove",gt,!1),_t.wrapper.addEventListener("MSPointerUp",mt,!1))),zt.keyboard&&document.addEventListener("keydown",ut,!1),zt.progress&&_t.progress&&_t.progress.addEventListener("click",yt,!1),zt.controls&&_t.controls&&["touchstart","click"].forEach(function(e){_t.controlsLeft.forEach(function(t){t.addEventListener(e,bt,!1)}),_t.controlsRight.forEach(function(t){t.addEventListener(e,wt,!1)}),_t.controlsUp.forEach(function(t){t.addEventListener(e,Lt,!1)}),_t.controlsDown.forEach(function(t){t.addEventListener(e,Et,!1)}),_t.controlsPrev.forEach(function(t){t.addEventListener(e,kt,!1)}),_t.controlsNext.forEach(function(t){t.addEventListener(e,St,!1)})})}function u(){Bt=!1,document.removeEventListener("keydown",ut,!1),window.removeEventListener("hashchange",At,!1),window.removeEventListener("resize",qt,!1),_t.wrapper.removeEventListener("touchstart",dt,!1),_t.wrapper.removeEventListener("touchmove",ft,!1),_t.wrapper.removeEventListener("touchend",vt,!1),window.navigator.msPointerEnabled&&(_t.wrapper.removeEventListener("MSPointerDown",pt,!1),_t.wrapper.removeEventListener("MSPointerMove",gt,!1),_t.wrapper.removeEventListener("MSPointerUp",mt,!1)),zt.progress&&_t.progress&&_t.progress.removeEventListener("click",yt,!1),zt.controls&&_t.controls&&["touchstart","click"].forEach(function(e){_t.controlsLeft.forEach(function(t){t.removeEventListener(e,bt,!1)}),_t.controlsRight.forEach(function(t){t.removeEventListener(e,wt,!1)}),_t.controlsUp.forEach(function(t){t.removeEventListener(e,Lt,!1)}),_t.controlsDown.forEach(function(t){t.removeEventListener(e,Et,!1)}),_t.controlsPrev.forEach(function(t){t.removeEventListener(e,kt,!1)}),_t.controlsNext.forEach(function(t){t.removeEventListener(e,St,!1)})})}function d(e,t){for(var n in t)e[n]=t[n]}function f(e){return Array.prototype.slice.call(e)}function v(e,t){var n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}function p(e,t){e.style.WebkitTransform=t,e.style.MozTransform=t,e.style.msTransform=t,e.style.OTransform=t,e.style.transform=t}function g(e){var t=0;if(e){var n=0;f(e.childNodes).forEach(function(e){"number"==typeof e.offsetTop&&e.style&&("absolute"===e.style.position&&(n+=1),t=Math.max(t,e.offsetTop+e.offsetHeight))}),0===n&&(t=e.offsetHeight)}return t}function m(){return/print-pdf/gi.test(window.location.search)}function h(){/iphone|ipod|android/gi.test(navigator.userAgent)&&!/crios/gi.test(navigator.userAgent)&&(window.addEventListener("load",y,!1),window.addEventListener("orientationchange",y,!1))}function y(){0===window.orientation?(document.documentElement.style.overflow="scroll",document.body.style.height="120%"):(document.documentElement.style.overflow="",document.body.style.height="100%"),setTimeout(function(){window.scrollTo(0,1)},10)}function b(e,t){var n=document.createEvent("HTMLEvents",1,2);n.initEvent(e,!0,!0),d(n,t),_t.wrapper.dispatchEvent(n)}function w(){if(Ct&&!("msPerspective"in document.body.style))for(var e=document.querySelectorAll(Yt+" a:not(.image)"),t=0,n=e.length;n>t;t++){var r=e[t];if(!(!r.textContent||r.querySelector("*")||r.className&&r.classList.contains(r,"roll"))){var o=document.createElement("span");o.setAttribute("data-title",r.text),o.innerHTML=r.innerHTML,r.classList.add("roll"),r.innerHTML="",r.appendChild(o)}}}function L(){for(var e=document.querySelectorAll(Yt+" a.roll"),t=0,n=e.length;n>t;t++){var r=e[t],o=r.querySelector("span");o&&(r.classList.remove("roll"),r.innerHTML=o.innerHTML)}}function E(e){var t=f(document.querySelectorAll(e?e:"a"));t.forEach(function(e){/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",Tt,!1)})}function k(){var e=f(document.querySelectorAll("a"));e.forEach(function(e){/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",Tt,!1)})}function S(e){A(),_t.preview=document.createElement("div"),_t.preview.classList.add("preview-link-overlay"),_t.wrapper.appendChild(_t.preview),_t.preview.innerHTML=["<header>",'<a class="close" href="#"><span class="icon"></span></a>','<a class="external" href="'+e+'" target="_blank"><span class="icon"></span></a>',"</header>",'<div class="spinner"></div>','<div class="viewport">','<iframe src="'+e+'"></iframe>',"</div>"].join(""),_t.preview.querySelector("iframe").addEventListener("load",function(){_t.preview.classList.add("loaded")},!1),_t.preview.querySelector(".close").addEventListener("click",function(e){A(),e.preventDefault()},!1),_t.preview.querySelector(".external").addEventListener("click",function(){A()},!1),setTimeout(function(){_t.preview.classList.add("visible")},1)}function A(){_t.preview&&(_t.preview.setAttribute("src",""),_t.preview.parentNode.removeChild(_t.preview),_t.preview=null)}function q(e){var t=f(e);return t.forEach(function(e,t){e.hasAttribute("data-fragment-index")||e.setAttribute("data-fragment-index",t)}),t.sort(function(e,t){return e.getAttribute("data-fragment-index")-t.getAttribute("data-fragment-index")}),t}function x(){if(_t.wrapper&&!m()){var e=_t.wrapper.offsetWidth,t=_t.wrapper.offsetHeight;e-=t*zt.margin,t-=t*zt.margin;var n=zt.width,r=zt.height;"string"==typeof n&&/%$/.test(n)&&(n=parseInt(n,10)/100*e),"string"==typeof r&&/%$/.test(r)&&(r=parseInt(r,10)/100*t),_t.slides.style.width=n+"px",_t.slides.style.height=r+"px",Ft=Math.min(e/n,t/r),Ft=Math.max(Ft,zt.minScale),Ft=Math.min(Ft,zt.maxScale),void 0===_t.slides.style.zoom||navigator.userAgent.match(/(iphone|ipod|ipad|android)/gi)?p(_t.slides,"translate(-50%, -50%) scale("+Ft+") translate(50%, 50%)"):_t.slides.style.zoom=Ft;for(var o=f(document.querySelectorAll(Yt)),a=0,i=o.length;i>a;a++){var s=o[a];"none"!==s.style.display&&(s.style.top=zt.center?s.classList.contains("stack")?0:Math.max(-(g(s)/2)-20,-r/2)+"px":"")}F()}}function T(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function M(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){var t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function P(){if(zt.overview){rt();var e=_t.wrapper.classList.contains("overview"),t=400>window.innerWidth?1e3:2500;_t.wrapper.classList.add("overview"),_t.wrapper.classList.remove("exit-overview"),clearTimeout(Zt),clearTimeout(Qt),Zt=setTimeout(function(){for(var n=document.querySelectorAll(Xt),r=0,o=n.length;o>r;r++){var a=n[r],i=zt.rtl?-105:105;if(a.setAttribute("data-index-h",r),p(a,"translateZ(-"+t+"px) translate("+(r-Mt)*i+"%, 0%)"),a.classList.contains("stack"))for(var s=a.querySelectorAll("section"),c=0,l=s.length;l>c;c++){var u=r===Mt?Pt:M(a),d=s[c];d.setAttribute("data-index-h",r),d.setAttribute("data-index-v",c),p(d,"translate(0%, "+105*(c-u)+"%)"),d.addEventListener("click",xt,!0)}else a.addEventListener("click",xt,!0)}j(),x(),e||b("overviewshown",{indexh:Mt,indexv:Pt,currentSlide:Nt})},10)}}function D(){if(zt.overview){clearTimeout(Zt),clearTimeout(Qt),_t.wrapper.classList.remove("overview"),_t.wrapper.classList.add("exit-overview"),Qt=setTimeout(function(){_t.wrapper.classList.remove("exit-overview")},10);for(var e=f(document.querySelectorAll(Yt)),t=0,n=e.length;n>t;t++){var r=e[t];r.style.display="",p(r,""),r.removeEventListener("click",xt,!0)}z(Mt,Pt),nt(),b("overviewhidden",{indexh:Mt,indexv:Pt,currentSlide:Nt})}}function N(e){"boolean"==typeof e?e?P():D():C()?D():P()}function C(){return _t.wrapper.classList.contains("overview")}function R(e){return e=e?e:Nt,e&&!!e.parentNode.nodeName.match(/section/i)}function I(){var e=document.body,t=e.requestFullScreen||e.webkitRequestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullScreen;t&&t.apply(e)}function Y(){var e=_t.wrapper.classList.contains("paused");rt(),_t.wrapper.classList.add("paused"),e===!1&&b("paused")}function X(){var e=_t.wrapper.classList.contains("paused");_t.wrapper.classList.remove("paused"),nt(),e&&b("resumed")}function H(){O()?X():Y()}function O(){return _t.wrapper.classList.contains("paused")}function z(e,t,n,r){Dt=Nt;var o=document.querySelectorAll(Xt);void 0===t&&(t=M(o[e])),Dt&&Dt.parentNode&&Dt.parentNode.classList.contains("stack")&&T(Dt.parentNode,Pt);var a=jt.concat();jt.length=0;var i=Mt,s=Pt;Mt=W(Xt,void 0===e?Mt:e),Pt=W(Ht,void 0===t?Pt:t),j(),x();e:for(var c=0,l=jt.length;l>c;c++){for(var u=0;a.length>u;u++)if(a[u]===jt[c]){a.splice(u,1);continue e}document.documentElement.classList.add(jt[c]),b(jt[c])}for(;a.length;)document.documentElement.classList.remove(a.pop());C()&&P();var d=o[Mt],v=d.querySelectorAll("section");if(Nt=v[Pt]||d,n!==void 0){var p=q(Nt.querySelectorAll(".fragment"));f(p).forEach(function(e,t){n>t?e.classList.add("visible"):e.classList.remove("visible")})}var g=Mt!==i||Pt!==s;g?b("slidechanged",{indexh:Mt,indexv:Pt,previousSlide:Dt,currentSlide:Nt,origin:r}):Dt=null,Dt&&(Dt.classList.remove("present"),document.querySelector(Ot).classList.contains("present")&&setTimeout(function(){var e,t=f(document.querySelectorAll(Xt+".stack"));for(e in t)t[e]&&T(t[e],0)},0)),g&&(Q(Dt),Z(Nt)),_(),F(),K(),G()}function U(){u(),l(),x(),Wt=zt.autoSlide,nt(),s(),_(),F(),K()}function W(e,t){var n=f(document.querySelectorAll(e)),r=n.length;if(r){zt.loop&&(t%=r,0>t&&(t=r+t)),t=Math.max(Math.min(t,r-1),0);for(var o=0;r>o;o++){var a=n[o],i=zt.rtl&&!R(a);if(a.classList.remove("past"),a.classList.remove("present"),a.classList.remove("future"),a.setAttribute("hidden",""),t>o)a.classList.add(i?"future":"past");else if(o>t){a.classList.add(i?"past":"future");for(var s=f(a.querySelectorAll(".fragment.visible"));s.length;)s.pop().classList.remove("visible")}a.querySelector("section")&&a.classList.add("stack")}n[t].classList.add("present"),n[t].removeAttribute("hidden");var c=n[t].getAttribute("data-state");c&&(jt=jt.concat(c.split(" ")));var l=n[t].getAttribute("data-autoslide");Wt=l?parseInt(l,10):zt.autoSlide,nt()}else t=0;return t}function j(){var e,t,n=f(document.querySelectorAll(Xt)),r=n.length;if(r){var o=C()?10:zt.viewDistance;It&&(o=C()?6:1);for(var a=0;r>a;a++){var i=n[a],s=f(i.querySelectorAll("section")),c=s.length;if(e=Math.abs((Mt-a)%(r-o))||0,c){i.style.display="block";for(var l=M(i),u=0;c>u;u++){var d=s[u];t=a===Mt?Math.abs(Pt-u):Math.abs(u-l),d.style.display=e+t>o?"none":"block"}}else i.style.display=e>o?"none":"block"}}}function F(){if(zt.progress&&_t.progress){var e=f(document.querySelectorAll(Xt)),t=document.querySelectorAll(Yt+":not(.stack)").length,n=0;e:for(var r=0;e.length>r;r++){for(var o=e[r],a=f(o.querySelectorAll("section")),i=0;a.length>i;i++){if(a[i].classList.contains("present"))break e;n++}if(o.classList.contains("present"))break;o.classList.contains("stack")===!1&&n++}_t.progressbar.style.width=n/(t-1)*window.innerWidth+"px"}}function _(){if(zt.controls&&_t.controls){var e=$(),t=V();_t.controlsLeft.concat(_t.controlsRight).concat(_t.controlsUp).concat(_t.controlsDown).concat(_t.controlsPrev).concat(_t.controlsNext).forEach(function(e){e.classList.remove("enabled"),e.classList.remove("fragmented")}),e.left&&_t.controlsLeft.forEach(function(e){e.classList.add("enabled")}),e.right&&_t.controlsRight.forEach(function(e){e.classList.add("enabled")}),e.up&&_t.controlsUp.forEach(function(e){e.classList.add("enabled")}),e.down&&_t.controlsDown.forEach(function(e){e.classList.add("enabled")}),(e.left||e.up)&&_t.controlsPrev.forEach(function(e){e.classList.add("enabled")}),(e.right||e.down)&&_t.controlsNext.forEach(function(e){e.classList.add("enabled")}),Nt&&(t.prev&&_t.controlsPrev.forEach(function(e){e.classList.add("fragmented","enabled")}),t.next&&_t.controlsNext.forEach(function(e){e.classList.add("fragmented","enabled")}),R(Nt)?(t.prev&&_t.controlsUp.forEach(function(e){e.classList.add("fragmented","enabled")}),t.next&&_t.controlsDown.forEach(function(e){e.classList.add("fragmented","enabled")})):(t.prev&&_t.controlsLeft.forEach(function(e){e.classList.add("fragmented","enabled")}),t.next&&_t.controlsRight.forEach(function(e){e.classList.add("fragmented","enabled")})))}}function K(){f(_t.background.childNodes).forEach(function(e,t){var n=zt.rtl?"future":"past",r=zt.rtl?"past":"future";e.className="slide-background "+(Mt>t?n:t>Mt?r:"present"),f(e.childNodes).forEach(function(e,t){e.className="slide-background "+(Pt>t?"past":t>Pt?"future":"present")})}),setTimeout(function(){_t.background.classList.remove("no-transition")},1)}function $(){var e=document.querySelectorAll(Xt),t=document.querySelectorAll(Ht),n={left:Mt>0||zt.loop,right:e.length-1>Mt||zt.loop,up:Pt>0,down:t.length-1>Pt};if(zt.rtl){var r=n.left;n.left=n.right,n.right=r}return n}function V(){if(Nt&&zt.fragments){var e=Nt.querySelectorAll(".fragment"),t=Nt.querySelectorAll(".fragment:not(.visible)");return{prev:e.length-t.length>0,next:!!t.length}}return{prev:!1,next:!1}}function Z(e){e&&(f(e.querySelectorAll("video, audio")).forEach(function(e){e.hasAttribute("data-autoplay")&&e.play()}),f(e.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(e){e.hasAttribute("data-autoplay")&&e.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")}))}function Q(e){e&&(f(e.querySelectorAll("video, audio")).forEach(function(e){e.hasAttribute("data-ignore")||e.pause()}),f(e.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(e){e.hasAttribute("data-ignore")||"function"!=typeof e.contentWindow.postMessage||e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}))}function B(){var e=window.location.hash,t=e.slice(2).split("/"),n=e.replace(/#|\//gi,"");if(isNaN(parseInt(t[0],10))&&n.length){var r=document.querySelector("#"+n);if(r){var o=Reveal.getIndices(r);z(o.h,o.v)}else z(Mt||0,Pt||0)}else{var a=parseInt(t[0],10)||0,i=parseInt(t[1],10)||0;(a!==Mt||i!==Pt)&&z(a,i)}}function G(e){if(zt.history)if(clearTimeout(Vt),"number"==typeof e)Vt=setTimeout(G,e);else{var t="/";Nt&&"string"==typeof Nt.getAttribute("id")?t="/"+Nt.getAttribute("id"):((Mt>0||Pt>0)&&(t+=Mt),Pt>0&&(t+="/"+Pt)),window.location.hash=t}}function J(e){var t,n=Mt,r=Pt;if(e){var o=R(e),a=o?e.parentNode:e,i=f(document.querySelectorAll(Xt));n=Math.max(i.indexOf(a),0),o&&(r=Math.max(f(e.parentNode.querySelectorAll("section")).indexOf(e),0))}if(!e&&Nt){var s=Nt.querySelectorAll(".fragment").length>0;if(s){var c=Nt.querySelectorAll(".fragment.visible");t=c.length}}return{h:n,v:r,f:t}}function et(){if(Nt&&zt.fragments){var e=q(Nt.querySelectorAll(".fragment:not(.visible)"));if(e.length){var t=e[0].getAttribute("data-fragment-index");return e=Nt.querySelectorAll('.fragment[data-fragment-index="'+t+'"]'),f(e).forEach(function(e){e.classList.add("visible")}),b("fragmentshown",{fragment:e[0],fragments:e}),_(),!0}}return!1}function tt(){if(Nt&&zt.fragments){var e=q(Nt.querySelectorAll(".fragment.visible"));if(e.length){var t=e[e.length-1].getAttribute("data-fragment-index");return e=Nt.querySelectorAll('.fragment[data-fragment-index="'+t+'"]'),f(e).forEach(function(e){e.classList.remove("visible")}),b("fragmenthidden",{fragment:e[0],fragments:e}),_(),!0}}return!1}function nt(){clearTimeout($t),!Wt||O()||C()||($t=setTimeout(lt,Wt))}function rt(){clearTimeout($t)}function ot(){zt.rtl?(C()||et()===!1)&&$().left&&z(Mt+1):(C()||tt()===!1)&&$().left&&z(Mt-1)}function at(){zt.rtl?(C()||tt()===!1)&&$().right&&z(Mt-1):(C()||et()===!1)&&$().right&&z(Mt+1)}function it(){(C()||tt()===!1)&&$().up&&z(Mt,Pt-1)}function st(){(C()||et()===!1)&&$().down&&z(Mt,Pt+1)}function ct(){if(tt()===!1)if($().up)it();else{var e=document.querySelector(Xt+".past:nth-child("+Mt+")");if(e){var t=e.querySelectorAll("section").length-1||void 0,n=Mt-1;z(n,t)}}}function lt(){et()===!1&&($().down?st():at()),nt()}function ut(e){document.activeElement;var t=!(!document.activeElement||!document.activeElement.type&&!document.activeElement.href&&"inherit"===document.activeElement.contentEditable);if(!(t||e.shiftKey&&32!==e.keyCode||e.altKey||e.ctrlKey||e.metaKey)){if(O()&&-1===[66,190,191].indexOf(e.keyCode))return!1;var n=!1;if("object"==typeof zt.keyboard)for(var r in zt.keyboard)if(parseInt(r,10)===e.keyCode){var o=zt.keyboard[r];"function"==typeof o?o.apply(null,[e]):"string"==typeof o&&"function"==typeof Reveal[o]&&Reveal[o].call(),n=!0}if(n===!1)switch(n=!0,e.keyCode){case 80:case 33:ct();break;case 78:case 34:lt();break;case 72:case 37:ot();break;case 76:case 39:at();break;case 75:case 38:it();break;case 74:case 40:st();break;case 36:z(0);break;case 35:z(Number.MAX_VALUE);break;case 32:C()?D():e.shiftKey?ct():lt();break;case 13:C()?D():n=!1;break;case 66:case 190:case 191:H();break;case 70:I();break;default:n=!1}n?e.preventDefault():27!==e.keyCode&&79!==e.keyCode||!Ct||(N(),e.preventDefault()),nt()}}function dt(e){Gt.startX=e.touches[0].clientX,Gt.startY=e.touches[0].clientY,Gt.startCount=e.touches.length,2===e.touches.length&&zt.overview&&(Gt.startSpan=v({x:e.touches[1].clientX,y:e.touches[1].clientY},{x:Gt.startX,y:Gt.startY}))}function ft(e){if(Gt.captured)navigator.userAgent.match(/android/gi)&&e.preventDefault();else{var t=e.touches[0].clientX,n=e.touches[0].clientY;if(2===e.touches.length&&2===Gt.startCount&&zt.overview){var r=v({x:e.touches[1].clientX,y:e.touches[1].clientY},{x:Gt.startX,y:Gt.startY});Math.abs(Gt.startSpan-r)>Gt.threshold&&(Gt.captured=!0,Gt.startSpan>r?P():D()),e.preventDefault()}else if(1===e.touches.length&&2!==Gt.startCount){var o=t-Gt.startX,a=n-Gt.startY;o>Gt.threshold&&Math.abs(o)>Math.abs(a)?(Gt.captured=!0,ot()):-Gt.threshold>o&&Math.abs(o)>Math.abs(a)?(Gt.captured=!0,at()):a>Gt.threshold?(Gt.captured=!0,it()):-Gt.threshold>a&&(Gt.captured=!0,st()),zt.embedded?(Gt.captured||R(Nt))&&e.preventDefault():e.preventDefault()}}}function vt(){Gt.captured=!1}function pt(e){e.pointerType===e.MSPOINTER_TYPE_TOUCH&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],dt(e))}function gt(e){e.pointerType===e.MSPOINTER_TYPE_TOUCH&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],ft(e))}function mt(e){e.pointerType===e.MSPOINTER_TYPE_TOUCH&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],vt(e))}function ht(e){if(Date.now()-Kt>600){Kt=Date.now();var t=e.detail||-e.wheelDelta;t>0?lt():ct()}}function yt(e){e.preventDefault();var t=f(document.querySelectorAll(Xt)).length,n=Math.floor(e.clientX/_t.wrapper.offsetWidth*t);z(n)}function bt(e){e.preventDefault(),ot()}function wt(e){e.preventDefault(),at()}function Lt(e){e.preventDefault(),it()}function Et(e){e.preventDefault(),st()}function kt(e){e.preventDefault(),ct()}function St(e){e.preventDefault(),lt()}function At(){B()}function qt(){x()}function xt(e){if(Bt&&C()){e.preventDefault();for(var t=e.target;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled")&&(D(),t.nodeName.match(/section/gi))){var n=parseInt(t.getAttribute("data-index-h"),10),r=parseInt(t.getAttribute("data-index-v"),10);z(n,r)}}}function Tt(e){var t=e.target.getAttribute("href");t&&(S(t),e.preventDefault())}var Mt,Pt,Dt,Nt,Ct,Rt,It,Yt=".reveal .slides section",Xt=".reveal .slides>section",Ht=".reveal .slides>section.present>section",Ot=".reveal .slides>section:first-child",zt={width:960,height:700,margin:.1,minScale:.2,maxScale:1,controls:!0,progress:!0,history:!1,keyboard:!0,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,fragments:!0,embedded:!1,autoSlide:0,mouseWheel:!1,rollingLinks:!1,previewLinks:!1,theme:null,transition:"default",transitionSpeed:"default",backgroundTransition:"default",viewDistance:3,dependencies:[]},Ut=!1,Wt=0,jt=[],Ft=1,_t={},Kt=0,$t=0,Vt=0,Zt=0,Qt=0,Bt=!1,Gt={startX:0,startY:0,startSpan:0,startCount:0,captured:!1,threshold:40};return{initialize:e,configure:c,sync:U,slide:z,left:ot,right:at,up:it,down:st,prev:ct,next:lt,prevFragment:tt,nextFragment:et,navigateTo:z,navigateLeft:ot,navigateRight:at,navigateUp:it,navigateDown:st,navigatePrev:ct,navigateNext:lt,layout:x,availableRoutes:$,availableFragments:V,toggleOverview:N,togglePause:H,isOverview:C,isPaused:O,addEventListeners:l,removeEventListeners:u,getIndices:J,getSlide:function(e,t){var n=document.querySelectorAll(Xt)[e],r=n&&n.querySelectorAll("section");return t!==void 0?r?r[t]:void 0:n},getPreviousSlide:function(){return Dt},getCurrentSlide:function(){return Nt},getScale:function(){return Ft},getConfig:function(){return zt},getQueryHash:function(){var e={};return location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(t){e[t.split("=").shift()]=t.split("=").pop()}),e},isFirstSlide:function(){return null==document.querySelector(Yt+".past")?!0:!1},isLastSlide:function(){return Nt&&Nt.classList.contains(".stack")?null==Nt.querySelector(Yt+".future")?!0:!1:null==document.querySelector(Yt+".future")?!0:!1},isReady:function(){return Ut},addEventListener:function(e,t,n){"addEventListener"in window&&(_t.wrapper||document.querySelector(".reveal")).addEventListener(e,t,n)},removeEventListener:function(e,t,n){"addEventListener"in window&&(_t.wrapper||document.querySelector(".reveal")).removeEventListener(e,t,n)}}}();
\ No newline at end of file