From 983cab60e04695bf2780e8ff5a9fe2c7b477697c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alvaro=20Trigo=20Lo=CC=81pez?= <atrigol@gmail.com>
Date: Mon, 5 Mar 2018 18:28:59 +0100
Subject: [PATCH] - Updating dist files

---
 dist/jquery.multiscroll.js         | 1766 ++++++-------
 dist/jquery.multiscroll.min.js     |  204 +-
 dist/jquery.multiscroll.min.js.map |    2 +-
 package-lock.json                  | 3734 ++++++++++++++++++++++++++++
 4 files changed, 4639 insertions(+), 1067 deletions(-)
 create mode 100644 package-lock.json

diff --git a/dist/jquery.multiscroll.js b/dist/jquery.multiscroll.js
index 7938dce..359e565 100644
--- a/dist/jquery.multiscroll.js
+++ b/dist/jquery.multiscroll.js
@@ -7,867 +7,907 @@
  */
 (function($, window, document, Math, undefined) {
 
-	$.fn.multiscroll = function(options) {
-		var MS = $.fn.multiscroll;
-
-		// Create some defaults, extending them with any options that were provided
-		options = $.extend({
-			'verticalCentered' : true,
-			'scrollingSpeed': 700,
-			'easing': 'easeInQuart',
-			'menu': false,
-			'sectionsColor': [],
-			'anchors':[],
-			'navigation': false,
-			'navigationPosition': 'right',
-			'navigationColor': '#000',
-			'navigationTooltips': [],
-			'loopBottom': false,
-			'loopTop': false,
-			'css3': false,
-			'paddingTop': 0,
-			'paddingBottom': 0,
-			'fixedElements': null,
-			'normalScrollElements': null,
-			'keyboardScrolling': true,
-			'touchSensitivity': 5,
-
-			// Custom selectors
-			'sectionSelector': '.ms-section',
-			'leftSelector': '.ms-left',
-			'rightSelector': '.ms-right',
-
-			//events
-			'afterLoad': null,
-			'onLeave': null,
-			'afterRender': null,
-			'afterResize': null
-		}, options);
-
-		//Defines the delay to take place before being able to scroll to the next section
-		//BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and
-		//Apple devices (laptops, mouses...)
-		var scrollDelay = 600;
-
-		var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));
-
-		// adding class namef for right and left blocks
-		if (options.rightSelector !== '.ms-right') {
-			$(options.rightSelector).addClass('ms-right');
-		}
-
-		if (options.leftSelector !== '.ms-left') {
-			$(options.leftSelector).addClass('ms-left');
-		}
-
-		var numberSections = $('.ms-left').find('.ms-section').length;
-		var isMoving = false;
-		var nav;
-		var windowHeight = $(window).height();
-
-
-		addMouseWheelHandler();
-		addTouchHandler();
-
-		//if css3 is not supported, it will use jQuery animations
-		if(options.css3){
-			options.css3 = support3d();
-		}
-
-		$('html, body').css({
-			'overflow' : 'hidden',
-			'height' : '100%'
-		});
-
-		//adding class names to each sections
-		if (options.sectionSelector !== '.ms-section') {
-			$(options.sectionSelector).each(function(){
-				$(this).addClass('ms-section');
-			});
-		}
-
-		//creating the navigation dots
-		if (options.navigation) {
-			$('body').append('<div id="multiscroll-nav"><ul></ul></div>');
-			nav = $('#multiscroll-nav');
-
-			nav.css('color', options.navigationColor);
-			nav.addClass(options.navigationPosition);
-		}
-
-		$('.ms-right, .ms-left').css({
-			'width': '50%',
-			'position': 'absolute',
-			'height': '100%',
-			'-ms-touch-action': 'none'
-		});
-
-		$('.ms-right').css({
-			'right': '1px', //http://stackoverflow.com/questions/23675457/chrome-and-opera-creating-small-padding-when-using-displaytable
-			'top': '0',
-			'-ms-touch-action': 'none',
-			'touch-action': 'none'
-		});
-
-		$('.ms-left').css({
-			'left': '0',
-			'top': '0',
-			'-ms-touch-action': 'none',
-			'touch-action': 'none'
-		});
-
-
-		$('.ms-left .ms-section, .ms-right .ms-section').each(function(){
-			var sectionIndex = $(this).index();
-
-			if(options.paddingTop || options.paddingBottom){
-				$(this).css('padding', options.paddingTop  + ' 0 ' + options.paddingBottom + ' 0');
-			}
-
-			if (typeof options.sectionsColor[sectionIndex] !==  'undefined') {
-				$(this).css('background-color', options.sectionsColor[sectionIndex]);
-			}
-
-			if (typeof options.anchors[sectionIndex] !== 'undefined') {
-				$(this).attr('data-anchor', options.anchors[sectionIndex]);
-			}
-
-			if(options.verticalCentered){
-				addTableClass($(this));
-			}
-
-			//only for the left panel
-			if($(this).closest('.ms-left').length && options.navigation) {
-				var link = '';
-				if(options.anchors.length){
-					link = options.anchors[sectionIndex];
-				}
-				var tooltip = options.navigationTooltips[sectionIndex];
-				if(typeof tooltip === 'undefined'){
-					tooltip = '';
-				}
-				if (options.navigation) {
-					nav.find('ul').append('<li data-tooltip="' + tooltip + '"><a href="#' + link + '"><span></span></a></li>');
-				}
-			}
-		});
-
-		//inverting the right panel
-		$('.ms-right').html( $('.ms-right').find('.ms-section').get().reverse());
-
-		$('.ms-left .ms-section, .ms-right .ms-section').each(function(){
-			var sectionIndex = $(this).index();
-
-			$(this).css({
-				'height': '100%'
-			});
-
-
-			if(!sectionIndex && options.navigation ){
-				//activating the navigation bullet
-				nav.find('li').eq(sectionIndex).find('a').addClass('active');
-			}
-		}).promise().done(function(){
-
-			//if no active section is defined, the 1st one will be the default one
-			if(!$('.ms-left .ms-section.active').length){
-				$('.ms-right').find('.ms-section').last().addClass('active');
-				$('.ms-left').find('.ms-section').first().addClass('active');
-			}
-
-			//vertical centered of the navigation + first bullet active
-			if(options.navigation){
-				nav.css('margin-top', '-' + (nav.height()/2) + 'px');
-			}
-			$.isFunction( options.afterRender ) && options.afterRender.call( this);
-
-			//scrolling to the defined active section and adjusting right and left panels
-			silentScroll();
-
-			//setting the class for the body element
-			setBodyClass();
-
-			$(window).on('load', function() {
-				scrollToAnchor();
-			});
-		});
-
-
-		//detecting any change on the URL to scroll to the given anchor link
-		//(a way to detect back history button as we play with the hashes on the URL)
-		$(window).on('hashchange', hashChangeHandler);
-
-		function hashChangeHandler(){
-			var value =  window.location.hash.replace('#', '');
-			var sectionAnchor = value;
-
-			if(sectionAnchor.length){
-				var section = $('.ms-left').find('[data-anchor="'+sectionAnchor+'"]');
-
-				var isFirstScrollMove = (typeof lastScrolledDestiny === 'undefined' );
-
-				if (isFirstScrollMove || sectionAnchor !== lastScrolledDestiny){
-					scrollPage(section);
-				}
-			}
-		};
-
-
-		/**
-		* Sliding with arrow keys, both, vertical and horizontal
-		*/
-		$(document).keydown(keydownHandler);
-
-
-		var keydownId;
-		function keydownHandler(e) {
-			clearTimeout(keydownId);
-
-			var activeElement = $(document.activeElement);
-
-			if(!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select') &&
-				options.keyboardScrolling){
-				var keyCode = e.which;
-
-				//preventing the scroll with arrow keys & spacebar & Page Up & Down keys
-				var keyControls = [40, 38, 32, 33, 34];
-				if($.inArray(keyCode, keyControls) > -1){
-					e.preventDefault();
-				}
-
-				keydownId = setTimeout(function(){
-					onkeydown(e);
-				},150);
-			}
-		}
-
-		/**
-		 * Sliding with arrow keys, both, vertical and horizontal
-		 */
-		function onkeydown(e){
-			var shiftPressed = e.shiftKey;
-
-			switch (e.which) {
-				//up
-				case 38:
-				case 33:
-					MS.moveSectionUp();
-					break;
-
-				//down
-				case 32: //spacebar
-					if(shiftPressed){
-						MS.moveSectionUp();
-						break;
-					}
-				case 40:
-				case 34:
-					MS.moveSectionDown();
-					break;
-
-				//Home
-				case 36:
-					MS.moveTo(1);
-					break;
-
-				//End
-				case 35:
-					MS.moveTo( $('.ms-left .ms-section').length);
-					break;
-
-				default:
-					return; // exit this handler for other keys
-			}
-		}
-
-		/**
-		 * Disabling any action when pressing of the mouse wheel (Chrome, IE, Opera, Safari)
-		 */
-		$(document).mousedown(function(e) {
-			if(e.button == 1){
-				e.preventDefault();
-				return false;
-			}
-		});
-
-		function navClickHandler(e) {
-			e.preventDefault();
-			var index = $(this).parent().index();
-			scrollPage($('.ms-left .ms-section').eq(index));
-		}
-
-		//navigation action
-		$(document).on('click', '#multiscroll-nav a', navClickHandler);
-
-		function navMouseEnterHandler() {
-			var tooltip = $(this).data('tooltip');
-			$('<div class="multiscroll-tooltip ' + options.navigationPosition +'">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);
-		}
-
-		function navMouseLeaveHandler() {
-			$(this).find('.multiscroll-tooltip').fadeOut(200, function() {
-				$(this).remove();
-			});
-		}
-
-		//navigation tooltips
-		$(document).on({
-			mouseenter: navMouseEnterHandler,
-			mouseleave: navMouseLeaveHandler
-		}, '#multiscroll-nav li');
-
-
-		if(options.normalScrollElements){
-			$(document).on('mouseenter', options.normalScrollElements, function () {
-				MS.setMouseWheelScrolling(false);
-			});
-
-			$(document).on('mouseleave', options.normalScrollElements, function(){
-				MS.setMouseWheelScrolling(true);
-			});
-		}
-
-
-		//when resizing the site, we adjust the heights of the sections
-		$(window).on('resize', doneResizing);
-
-		/**
-		 * When resizing is finished, we adjust the slides sizes and positions
-		 */
-		function doneResizing() {
-			windowHeight = $(window).height();
-			$('.ms-tableCell').each(function() {
-				$(this).css({ height: getTableHeight($(this).parent()) });
-			});
-			silentScroll();
-			$.isFunction( options.afterResize ) && options.afterResize.call( this);
-		}
-
-		function silentScroll(){
-			//moving the right section to the bottom
-			if(options.css3){
-				transformContainer($('.ms-left'), 'translate3d(0px, -' + $('.ms-left').find('.ms-section.active').position().top + 'px, 0px)', false);
-				transformContainer($('.ms-right'), 'translate3d(0px, -' + $('.ms-right').find('.ms-section.active').position().top + 'px, 0px)', false);
-			}else{
-				$('.ms-left').css('top', -$('.ms-left').find('.ms-section.active').position().top );
-				$('.ms-right').css('top', -$('.ms-right').find('.ms-section.active').position().top );
-			}
-		}
-
-		MS.moveSectionUp = function(){
-			var prev = $('.ms-left .ms-section.active').prev('.ms-section');
-
-			if(!prev.length && options.loopTop){
-				prev = $('.ms-left .ms-section').last();
-			}
-
-			if (prev.length) {
-				scrollPage(prev);
-			}
-		};
-
-		MS.moveSectionDown = function (){
-			var next = $('.ms-left .ms-section.active').next('.ms-section');
-
-			if(!next.length && options.loopBottom ){
-				next = $('.ms-left .ms-section').first();
-			}
-
-			if(next.length){
-				scrollPage(next);
-			}
-		};
-
-		MS.moveTo = function (section){
-			var destiny = '';
-
-			if(isNaN(section)){
-				destiny = $('.ms-left [data-anchor="'+section+'"]');
-			}else{
-				destiny = $('.ms-left .ms-section').eq( (section -1) );
-			}
-
-			scrollPage(destiny);
-		};
-
-		function scrollPage(leftDestination){
-			var leftDestinationIndex = leftDestination.index();
-			var rightDestination = $('.ms-right').find('.ms-section').eq( numberSections -1 - leftDestinationIndex);
-			var rightDestinationIndex = numberSections - 1 - leftDestinationIndex;
-			var anchorLink  = leftDestination.data('anchor');
-			var activeSection = $('.ms-left .ms-section.active');
-			var leavingSection = activeSection.index() + 1;
-			var yMovement = getYmovement(leftDestination);
-
-			//preventing from activating the MouseWheelHandler event
-			//more than once if the page is scrolling
-			isMoving = true;
-
-			var topPos = {
-				'left' : leftDestination.position().top,
-				'right': rightDestination.position().top
-			};
-
-			rightDestination.addClass('active').siblings().removeClass('active');
-			leftDestination.addClass('active').siblings().removeClass('active');
-
-			setURLHash(anchorLink);
-
-			// Use CSS3 translate functionality or...
-			if (options.css3){
-				//callback (onLeave)
-				$.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);
-
-				var translate3dLeft = 'translate3d(0px, -' + topPos['left'] + 'px, 0px)';
-				var translate3dRight = 'translate3d(0px, -' + topPos['right'] + 'px, 0px)';
-
-				transformContainer($('.ms-left'), translate3dLeft, true);
-				transformContainer($('.ms-right'), translate3dRight, true);
-
-				setTimeout(function () {
-					//callback (afterLoad)
-					$.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));
-
-					setTimeout(function () {
-						isMoving = false;
-					}, scrollDelay);
-				}, options.scrollingSpeed);
-			}else{
-				//callback (onLeave)
-				$.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);
-
-				$('.ms-left').animate({
-					'top': -topPos['left']
-				}, options.scrollingSpeed, options.easing, function(){
-					$.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));
-
-					setTimeout(function () {
-						isMoving = false;
-					}, scrollDelay);
-				});
-
-				$('.ms-right').animate({
-					'top': -topPos['right']
-				}, options.scrollingSpeed, options.easing);
-			}
-
-			//flag to avoid callingn `scrollPage()` twice in case of using anchor links
-			lastScrolledDestiny = anchorLink;
-
-			activateMenuElement(anchorLink);
-			activateNavDots(anchorLink, leftDestinationIndex);
-		}
-
-		/**
-		* Removes the auto scrolling action fired by the mouse wheel and tackpad.
-		* After this function is called, the mousewheel and trackpad movements won't scroll through sections.
-		*/
-		function removeMouseWheelHandler(){
-			if (document.addEventListener) {
-				document.removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
-				document.removeEventListener('wheel', MouseWheelHandler, false); //Firefox
-			} else {
-				document.detachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
-			}
-		}
-
-		/**
-		* Adds the auto scrolling action for the mouse wheel and tackpad.
-		* After this function is called, the mousewheel and trackpad movements will scroll through sections
-		*/
-		function addMouseWheelHandler(){
-			if (document.addEventListener) {
-				document.addEventListener("mousewheel", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
-				document.addEventListener("wheel", MouseWheelHandler, false); //Firefox
-			} else {
-				document.attachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
-			}
-		}
-
-		/**
-		 * Detecting mousewheel scrolling
-		 *
-		 * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html
-		 * http://www.sitepoint.com/html5-javascript-mouse-wheel/
-		 */
-		function MouseWheelHandler(e) {
-			// cross-browser wheel delta
-			e = window.event || e;
-			var delta = Math.max(-1, Math.min(1,
-					(e.wheelDelta || -e.deltaY || -e.detail)));
-
-			if (!isMoving) { //if theres any #
-
-				//scrolling down?
-				if (delta < 0) {
-					MS.moveSectionDown();
-				}
-
-				//scrolling up?
-				else {
-					MS.moveSectionUp();
-				}
-			}
-
-
-			return false;
-		}
-
-		/**
-		* Adds a css3 transform property to the container class with or without animation depending on the animated param.
-		*/
-		function transformContainer(container, translate3d, animated){
-			container.toggleClass('ms-easing', animated);
-
-			container.css(getTransforms(translate3d));
-		}
-
-
-		/**
-		* Returns the transform styles for all browsers
-		*/
-		function getTransforms(translate3d){
-			return {
-				'-webkit-transform': translate3d,
-				'-moz-transform': translate3d,
-				'-ms-transform':translate3d,
-				'transform': translate3d
-			};
-		}
-
-		/**
-		 * Activating the website navigation dots according to the given slide name.
-		 */
-		function activateNavDots(name, sectionIndex){
-			if(options.navigation){
-				$('#multiscroll-nav').find('.active').removeClass('active');
-				if(name){
-					$('#multiscroll-nav').find('a[href="#' + name + '"]').addClass('active');
-				}else{
-					$('#multiscroll-nav').find('li').eq(sectionIndex).find('a').addClass('active');
-				}
-			}
-		}
-
-		/**
-		 * Activating the website main menu elements according to the given slide name.
-		 */
-		function activateMenuElement(name){
-			if(options.menu){
-				$(options.menu).find('.active').removeClass('active');
-				$(options.menu).find('[data-menuanchor="'+name+'"]').addClass('active');
-			}
-		}
-
-		/**
-		* Retuns `up` or `down` depending on the scrolling movement to reach its destination
-		* from the current section.
-		*/
-		function getYmovement(destiny){
-			var fromIndex = $('.ms-left .ms-section.active').index();
-			var toIndex = destiny.index();
-
-			if(fromIndex > toIndex){
-				return 'up';
-			}
-			return 'down';
-		}
-
-
-		/**
-		* Sets the URL hash for a section with slides
-		*/
-		function setURLHash(anchorLink){
-			if(options.anchors.length){
-				location.hash = anchorLink;
-			}
-
-			setBodyClass();
-		}
-
-		 /**
-		* Sets a class for the body of the page depending on the active section / slide
-		*/
-		function setBodyClass(){
-			var section = $('.ms-left .ms-section.active');
-			var sectionAnchor = section.data('anchor');
-			var sectionIndex = section.index();
-
-			var text = String(sectionIndex);
-
-			if(options.anchors.length){
-				text = sectionAnchor;
-			}
-
-			//changing slash for dash to make it a valid CSS style
-			text = text.replace('/', '-').replace('#','');
-
-			//removing previous anchor classes
-			var classRe = new RegExp('\\b\\s?' + 'ms-viewing' + '-[^\\s]+\\b', "g");
-			$('body')[0].className = $('body')[0].className.replace(classRe, '');
-
-			//adding the current anchor
-			$('body').addClass('ms-viewing-' + text);
-		}
-
-
-		/**
-		* Checks for translate3d support
-		* @return boolean
-		* http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support
-		*/
-		function support3d() {
-			var el = document.createElement('p'),
-				has3d,
-				transforms = {
-					'webkitTransform':'-webkit-transform',
-					'OTransform':'-o-transform',
-					'msTransform':'-ms-transform',
-					'MozTransform':'-moz-transform',
-					'transform':'transform'
-				};
-
-			// Add it to the body to get the computed style.
-			document.body.insertBefore(el, null);
-
-			for (var t in transforms) {
-				if (el.style[t] !== undefined) {
-					el.style[t] = "translate3d(1px,1px,1px)";
-					has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);
-				}
-			}
-
-			document.body.removeChild(el);
-
-			return (has3d !== undefined && has3d.length > 0 && has3d !== "none");
-		}
-
-		/**
-		* Wraps an element in order to center it vertically by using a class style.
-		*/
-		function addTableClass(element){
-			element.addClass('ms-table').wrapInner('<div class="ms-tableCell" style="height: ' + getTableHeight(element) + 'px" />');
-		}
-
-		/**
-		* Gets the height of the section after removing the paddings.
-		*/
-		function getTableHeight(section){
-			var sectionHeight = windowHeight;
-
-			if(options.paddingTop || options.paddingBottom){
-				var paddings = parseInt(section.css('padding-top')) + parseInt(section.css('padding-bottom'));
-				sectionHeight = (windowHeight - paddings);
-			}
-
-			return sectionHeight;
-		}
-
-
-		/**
-		* Scrolls the page to the existent anchor in the URL
-		*/
-		function scrollToAnchor(){
-			//getting the anchor link in the URL and deleting the `#`
-			var sectionAnchor =  window.location.hash.replace('#', '');
-			var section = $('.ms-left .ms-section[data-anchor="'+sectionAnchor+'"]');
-
-			if(sectionAnchor.length){  //if theres any #
-				scrollPage(section);
-			}
-		}
-
-		/**
-		* Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys
-		*/
-		MS.setKeyboardScrolling = function (value){
-			options.keyboardScrolling = value;
-		};
-
-		/**
-		* Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.
-		*/
-		MS.setMouseWheelScrolling = function (value){
-			if(value){
-				addMouseWheelHandler();
-			}else{
-				removeMouseWheelHandler();
-			}
-		};
-
-		/**
-		* Defines the scrolling speed
-		*/
-		MS.setScrollingSpeed = function(value){
-			options.scrollingSpeed = value;
-		};
-
-
-
-		var touchStartY = 0;
-		var touchStartX = 0;
-		var touchEndY = 0;
-		var touchEndX = 0;
-
-		/* Detecting touch events
-
-		* As we are changing the top property of the page on scrolling, we can not use the traditional way to detect it.
-		* This way, the touchstart and the touch moves shows an small difference between them which is the
-		* used one to determine the direction.
-		*/
-		function touchMoveHandler(event){
-			var e = event.originalEvent;
-
-			if(isReallyTouch(e)){
-				//preventing the easing on iOS devices
-				event.preventDefault();
-
-				var activeSection = $('.ms-left .ms-section.active');
-
-				if (!isMoving) { //if theres any #
-					var touchEvents = getEventsPage(e);
-					touchEndY = touchEvents['y'];
-					touchEndX = touchEvents['x'];
-
-
-					//is the movement greater than the minimum resistance to scroll?
-					if (Math.abs(touchStartY - touchEndY) > ($(window).height() / 100 * options.touchSensitivity)) {
-
-						if (touchStartY > touchEndY) {
-							MS.moveSectionDown();
-
-						} else if (touchEndY > touchStartY) {
-							MS.moveSectionUp();
-						}
-					}
-				}
-			}
-		}
-
-		/**
-		* As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen
-		* this way we make sure that is really a touch event what IE is detecting.
-		*/
-		function isReallyTouch(e){
-			//if is not IE   ||  IE is detecting `touch` or `pen`
-			return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';
-		}
-
-
-		/**
-		* Handler to get he coordinates of the starting touch
-		*/
-		function touchStartHandler(event){
-			var e = event.originalEvent;
-
-			if(isReallyTouch(e)){
-				var touchEvents = getEventsPage(e);
-				touchStartY = touchEvents['y'];
-				touchStartX = touchEvents['x'];
-			}
-		}
-
-
-		/**
-		* Adds the possibility to auto scroll through sections on touch devices.
-		*/
-		function addTouchHandler(){
-			if(isTouch){
-				//Microsoft pointers
-				MSPointer = getMSPointer();
-
-				$(document).off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);
-				$(document).off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);
-			}
-		}
-
-		/**
-		* Removes the auto scrolling for touch devices.
-		*/
-		function removeTouchHandler(){
-			if(isTouch){
-				//Microsoft pointers
-				MSPointer = getMSPointer();
-
-				$(document).off('touchstart ' + MSPointer.down);
-				$(document).off('touchmove ' + MSPointer.move);
-			}
-		}
-
-		/*
-		* Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)
-		* http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx
-		*/
-		function getMSPointer(){
-			var pointer;
-
-			//IE >= 11
-			if(window.PointerEvent){
-				pointer = { down: "pointerdown", move: "pointermove"};
-			}
-
-			//IE < 11
-			else{
-				pointer = { down: "MSPointerDown", move: "MSPointerMove"};
-			}
-
-			return pointer;
-		}
-
-		/**
-		* Gets the pageX and pageY properties depending on the browser.
-		* https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854
-		*/
-		function getEventsPage(e){
-			var events = [];
-
-			events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);
-			events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);
-
-			//in touch devices with scrollBar:true, e.pageY is detected, but we have to deal with touch events. #1008
-			if(isTouch && isReallyTouch(e)){
-				events.y = e.touches[0].pageY;
-				events.x = e.touches[0].pageX;
-			}
-
-			return events;
-		}
-
-		/**
-		* Destroy multiscroll.js plugin's events
-		*/
-		MS.destroy = function() {
-			MS.setKeyboardScrolling(false);
-			MS.setMouseWheelScrolling(false);
-			removeTouchHandler();
-
-			$(window)
-				.off('hashchange', hashChangeHandler)
-				.off('resize', doneResizing);
-
-			$(document)
-				.off('mouseenter', '#multiscroll-nav li')
-				.off('mouseleave', '#multiscroll-nav li')
-				.off('click', '#multiscroll-nav a');
-		};
-
-		/**
-		* Build multiscroll.js plugin's events after destroy
-		*/
-		MS.build = function() {
-			MS.setKeyboardScrolling(true);
-			MS.setMouseWheelScrolling(true);
-			addTouchHandler();
-
-			$(window)
-				.on('hashchange', hashChangeHandler)
-				.on('resize', doneResizing);
-
-			$(document)
-				.on('mouseenter', '#multiscroll-nav li', navMouseEnterHandler)
-				.on('mouseleave', '#multiscroll-nav li', navMouseLeaveHandler)
-				.on('click', '#multiscroll-nav a', navClickHandler);
-		};
-
-	};
+    $.fn.multiscroll = function(options) {
+        var MS = $.fn.multiscroll;
+
+        // Create some defaults, extending them with any options that were provided
+        options = $.extend({
+            'verticalCentered' : true,
+            'scrollingSpeed': 700,
+            'easing': 'easeInQuart',
+            'menu': false,
+            'sectionsColor': [],
+            'anchors':[],
+            'navigation': false,
+            'navigationPosition': 'right',
+            'navigationColor': '#000',
+            'navigationTooltips': [],
+            'loopBottom': false,
+            'loopTop': false,
+            'css3': false,
+            'paddingTop': 0,
+            'paddingBottom': 0,
+            'fixedElements': null,
+            'normalScrollElements': null,
+            'keyboardScrolling': true,
+            'touchSensitivity': 5,
+
+            // Custom selectors
+            'sectionSelector': '.ms-section',
+            'leftSelector': '.ms-left',
+            'rightSelector': '.ms-right',
+
+            //events
+            'afterLoad': null,
+            'onLeave': null,
+            'afterRender': null,
+            'afterResize': null
+        }, options);
+
+        //Defines the delay to take place before being able to scroll to the next section
+        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and
+        //Apple devices (laptops, mouses...)
+        var scrollDelay = 600;
+
+        var isTouchDevice = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/);
+        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));
+
+        // adding class namef for right and left blocks
+        if (options.rightSelector !== '.ms-right') {
+            $(options.rightSelector).addClass('ms-right');
+        }
+
+        if (options.leftSelector !== '.ms-left') {
+            $(options.leftSelector).addClass('ms-left');
+        }
+
+        var numberSections = $('.ms-left').find('.ms-section').length;
+        var isMoving = false;
+        var nav;
+        var windowHeight = $(window).height();
+
+        //timeouts
+        var resizeId;
+
+        addMouseWheelHandler();
+        addTouchHandler();
+
+        //if css3 is not supported, it will use jQuery animations
+        if(options.css3){
+            options.css3 = support3d();
+        }
+
+        $('html, body').css({
+            'overflow' : 'hidden',
+            'height' : '100%'
+        });
+
+        //adding class names to each sections
+        if (options.sectionSelector !== '.ms-section') {
+            $(options.sectionSelector).each(function(){
+                $(this).addClass('ms-section');
+            });
+        }
+
+        //creating the navigation dots
+        if (options.navigation) {
+            $('body').append('<div id="multiscroll-nav"><ul></ul></div>');
+            nav = $('#multiscroll-nav');
+
+            nav.css('color', options.navigationColor);
+            nav.addClass(options.navigationPosition);
+        }
+
+        $('.ms-right, .ms-left').css({
+            'width': '50%',
+            'position': 'absolute',
+            'height': '100%',
+            '-ms-touch-action': 'none'
+        });
+
+        $('.ms-right').css({
+            'right': '1px', //http://stackoverflow.com/questions/23675457/chrome-and-opera-creating-small-padding-when-using-displaytable
+            'top': '0',
+            '-ms-touch-action': 'none',
+            'touch-action': 'none'
+        });
+
+        $('.ms-left').css({
+            'left': '0',
+            'top': '0',
+            '-ms-touch-action': 'none',
+            'touch-action': 'none'
+        });
+
+
+        $('.ms-left .ms-section, .ms-right .ms-section').each(function(){
+            var sectionIndex = $(this).index();
+
+            if(options.paddingTop || options.paddingBottom){
+                $(this).css('padding', options.paddingTop  + ' 0 ' + options.paddingBottom + ' 0');
+            }
+
+            if (typeof options.sectionsColor[sectionIndex] !==  'undefined') {
+                $(this).css('background-color', options.sectionsColor[sectionIndex]);
+            }
+
+            if (typeof options.anchors[sectionIndex] !== 'undefined') {
+                $(this).attr('data-anchor', options.anchors[sectionIndex]);
+            }
+
+            if(options.verticalCentered){
+                addTableClass($(this));
+            }
+
+            //only for the left panel
+            if($(this).closest('.ms-left').length && options.navigation) {
+                var link = '';
+                if(options.anchors.length){
+                    link = options.anchors[sectionIndex];
+                }
+                var tooltip = options.navigationTooltips[sectionIndex];
+                if(typeof tooltip === 'undefined'){
+                    tooltip = '';
+                }
+                if (options.navigation) {
+                    nav.find('ul').append('<li data-tooltip="' + tooltip + '"><a href="#' + link + '"><span></span></a></li>');
+                }
+            }
+        });
+
+        //inverting the right panel
+        $('.ms-right').html( $('.ms-right').find('.ms-section').get().reverse());
+
+        $('.ms-left .ms-section, .ms-right .ms-section').each(function(){
+            var sectionIndex = $(this).index();
+
+            $(this).css({
+                'height': '100%'
+            });
+
+
+            if(!sectionIndex && options.navigation ){
+                //activating the navigation bullet
+                nav.find('li').eq(sectionIndex).find('a').addClass('active');
+            }
+        }).promise().done(function(){
+
+            //if no active section is defined, the 1st one will be the default one
+            if(!$('.ms-left .ms-section.active').length){
+                $('.ms-right').find('.ms-section').last().addClass('active');
+                $('.ms-left').find('.ms-section').first().addClass('active');
+            }
+
+            //vertical centered of the navigation + first bullet active
+            if(options.navigation){
+                nav.css('margin-top', '-' + (nav.height()/2) + 'px');
+            }
+            $.isFunction( options.afterRender ) && options.afterRender.call( this);
+
+            //scrolling to the defined active section and adjusting right and left panels
+            silentScroll();
+
+            //setting the class for the body element
+            setBodyClass();
+
+            $(window).on('load', function() {
+                scrollToAnchor();
+            });
+        });
+
+
+        //detecting any change on the URL to scroll to the given anchor link
+        //(a way to detect back history button as we play with the hashes on the URL)
+        $(window).on('hashchange', hashChangeHandler);
+
+        function hashChangeHandler(){
+            var value =  window.location.hash.replace('#', '');
+            var sectionAnchor = value;
+
+            if(sectionAnchor.length){
+                var section = $('.ms-left').find('[data-anchor="'+sectionAnchor+'"]');
+
+                var isFirstScrollMove = (typeof lastScrolledDestiny === 'undefined' );
+
+                if (isFirstScrollMove || sectionAnchor !== lastScrolledDestiny){
+                    scrollPage(section);
+                }
+            }
+        };
+
+
+        /**
+        * Sliding with arrow keys, both, vertical and horizontal
+        */
+        $(document).keydown(keydownHandler);
+
+
+        var keydownId;
+        function keydownHandler(e) {
+            clearTimeout(keydownId);
+
+            var activeElement = $(document.activeElement);
+
+            if(!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select') &&
+                options.keyboardScrolling){
+                var keyCode = e.which;
+
+                //preventing the scroll with arrow keys & spacebar & Page Up & Down keys
+                var keyControls = [40, 38, 32, 33, 34];
+                if($.inArray(keyCode, keyControls) > -1){
+                    e.preventDefault();
+                }
+
+                keydownId = setTimeout(function(){
+                    onkeydown(e);
+                },150);
+            }
+        }
+
+        /**
+         * Sliding with arrow keys, both, vertical and horizontal
+         */
+        function onkeydown(e){
+            var shiftPressed = e.shiftKey;
+
+            switch (e.which) {
+                //up
+                case 38:
+                case 33:
+                    MS.moveSectionUp();
+                    break;
+
+                //down
+                case 32: //spacebar
+                    if(shiftPressed){
+                        MS.moveSectionUp();
+                        break;
+                    }
+                case 40:
+                case 34:
+                    MS.moveSectionDown();
+                    break;
+
+                //Home
+                case 36:
+                    MS.moveTo(1);
+                    break;
+
+                //End
+                case 35:
+                    MS.moveTo( $('.ms-left .ms-section').length);
+                    break;
+
+                default:
+                    return; // exit this handler for other keys
+            }
+        }
+
+        /**
+         * Disabling any action when pressing of the mouse wheel (Chrome, IE, Opera, Safari)
+         */
+        $(document).mousedown(function(e) {
+            if(e.button == 1){
+                e.preventDefault();
+                return false;
+            }
+        });
+
+        function navClickHandler(e) {
+            e.preventDefault();
+            var index = $(this).parent().index();
+            scrollPage($('.ms-left .ms-section').eq(index));
+        }
+
+        //navigation action
+        $(document).on('click', '#multiscroll-nav a', navClickHandler);
+
+        function navMouseEnterHandler() {
+            var tooltip = $(this).data('tooltip');
+            $('<div class="multiscroll-tooltip ' + options.navigationPosition +'">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);
+        }
+
+        function navMouseLeaveHandler() {
+            $(this).find('.multiscroll-tooltip').fadeOut(200, function() {
+                $(this).remove();
+            });
+        }
+
+        //navigation tooltips
+        $(document).on({
+            mouseenter: navMouseEnterHandler,
+            mouseleave: navMouseLeaveHandler
+        }, '#multiscroll-nav li');
+
+
+        if(options.normalScrollElements){
+            $(document).on('mouseenter', options.normalScrollElements, function () {
+                MS.setMouseWheelScrolling(false);
+            });
+
+            $(document).on('mouseleave', options.normalScrollElements, function(){
+                MS.setMouseWheelScrolling(true);
+            });
+        }
+
+
+        //when resizing the site, we adjust the heights of the sections
+        $(window).on('resize', resizeHandler);
+
+
+        var previousHeight = windowsHeight;
+
+        /**
+         * When resizing is finished, we adjust the slides sizes and positions
+         */
+        function resizeHandler() {
+            // rebuild immediately on touch devices
+            if (isTouchDevice) {
+                var activeElement = $(document.activeElement);
+
+                //if the keyboard is NOT visible
+                if (!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select')) {
+                    var currentHeight = $window.height();
+
+                    //making sure the change in the viewport size is enough to force a rebuild. (20 % of the window to avoid problems when hidding scroll bars)
+                    if( Math.abs(currentHeight - previousHeight) > (20 * Math.max(previousHeight, currentHeight) / 100) ){
+                        reBuild(true);
+                        previousHeight = currentHeight;
+                    }
+                }
+            }else{
+                //in order to call the functions only when the resize is finished
+                //http://stackoverflow.com/questions/4298612/jquery-how-to-call-resize-event-only-once-its-finished-resizing
+                clearTimeout(resizeId);
+
+                resizeId = setTimeout(function(){
+                    reBuild(true);
+                }, 350);
+            }
+        }
+
+        /**
+         * When resizing is finished, we adjust the slides sizes and positions
+         */
+        function reBuild(resizing){
+            windowHeight = $(window).height();
+            $('.ms-tableCell').each(function() {
+                $(this).css({ height: getTableHeight($(this).parent()) });
+            });
+
+            if(options.scrollOverflow){
+                scrollBarHandler.createScrollBarForAll();
+            }
+
+            silentScroll();
+            $.isFunction( options.afterResize ) && options.afterResize.call( this);
+        }
+
+        function silentScroll(){
+            //moving the right section to the bottom
+            if(options.css3){
+                transformContainer($('.ms-left'), 'translate3d(0px, -' + $('.ms-left').find('.ms-section.active').position().top + 'px, 0px)', false);
+                transformContainer($('.ms-right'), 'translate3d(0px, -' + $('.ms-right').find('.ms-section.active').position().top + 'px, 0px)', false);
+            }else{
+                $('.ms-left').css('top', -$('.ms-left').find('.ms-section.active').position().top );
+                $('.ms-right').css('top', -$('.ms-right').find('.ms-section.active').position().top );
+            }
+        }
+
+        MS.moveSectionUp = function(){
+            var prev = $('.ms-left .ms-section.active').prev('.ms-section');
+
+            if(!prev.length && options.loopTop){
+                prev = $('.ms-left .ms-section').last();
+            }
+
+            if (prev.length) {
+                scrollPage(prev);
+            }
+        };
+
+        MS.moveSectionDown = function (){
+            var next = $('.ms-left .ms-section.active').next('.ms-section');
+
+            if(!next.length && options.loopBottom ){
+                next = $('.ms-left .ms-section').first();
+            }
+
+            if(next.length){
+                scrollPage(next);
+            }
+        };
+
+        MS.moveTo = function (section){
+            var destiny = '';
+
+            if(isNaN(section)){
+                destiny = $('.ms-left [data-anchor="'+section+'"]');
+            }else{
+                destiny = $('.ms-left .ms-section').eq( (section -1) );
+            }
+
+            scrollPage(destiny);
+        };
+
+        function scrollPage(leftDestination){
+            var leftDestinationIndex = leftDestination.index();
+            var rightDestination = $('.ms-right').find('.ms-section').eq( numberSections -1 - leftDestinationIndex);
+            var rightDestinationIndex = numberSections - 1 - leftDestinationIndex;
+            var anchorLink  = leftDestination.data('anchor');
+            var activeSection = $('.ms-left .ms-section.active');
+            var leavingSection = activeSection.index() + 1;
+            var yMovement = getYmovement(leftDestination);
+
+            //preventing from activating the MouseWheelHandler event
+            //more than once if the page is scrolling
+            isMoving = true;
+
+            var topPos = {
+                'left' : leftDestination.position().top,
+                'right': rightDestination.position().top
+            };
+
+            rightDestination.addClass('active').siblings().removeClass('active');
+            leftDestination.addClass('active').siblings().removeClass('active');
+
+            setURLHash(anchorLink);
+
+            // Use CSS3 translate functionality or...
+            if (options.css3){
+                //callback (onLeave)
+                $.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);
+
+                var translate3dLeft = 'translate3d(0px, -' + topPos['left'] + 'px, 0px)';
+                var translate3dRight = 'translate3d(0px, -' + topPos['right'] + 'px, 0px)';
+
+                transformContainer($('.ms-left'), translate3dLeft, true);
+                transformContainer($('.ms-right'), translate3dRight, true);
+
+                setTimeout(function () {
+                    //callback (afterLoad)
+                    $.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));
+
+                    setTimeout(function () {
+                        isMoving = false;
+                    }, scrollDelay);
+                }, options.scrollingSpeed);
+            }else{
+                //callback (onLeave)
+                $.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);
+
+                $('.ms-left').animate({
+                    'top': -topPos['left']
+                }, options.scrollingSpeed, options.easing, function(){
+                    $.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));
+
+                    setTimeout(function () {
+                        isMoving = false;
+                    }, scrollDelay);
+                });
+
+                $('.ms-right').animate({
+                    'top': -topPos['right']
+                }, options.scrollingSpeed, options.easing);
+            }
+
+            //flag to avoid callingn `scrollPage()` twice in case of using anchor links
+            lastScrolledDestiny = anchorLink;
+
+            activateMenuElement(anchorLink);
+            activateNavDots(anchorLink, leftDestinationIndex);
+        }
+
+        /**
+        * Removes the auto scrolling action fired by the mouse wheel and tackpad.
+        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.
+        */
+        function removeMouseWheelHandler(){
+            if (document.addEventListener) {
+                document.removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
+                document.removeEventListener('wheel', MouseWheelHandler, false); //Firefox
+            } else {
+                document.detachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
+            }
+        }
+
+        /**
+        * Adds the auto scrolling action for the mouse wheel and tackpad.
+        * After this function is called, the mousewheel and trackpad movements will scroll through sections
+        */
+        function addMouseWheelHandler(){
+            if (document.addEventListener) {
+                document.addEventListener("mousewheel", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
+                document.addEventListener("wheel", MouseWheelHandler, false); //Firefox
+            } else {
+                document.attachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
+            }
+        }
+
+        /**
+         * Detecting mousewheel scrolling
+         *
+         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html
+         * http://www.sitepoint.com/html5-javascript-mouse-wheel/
+         */
+        function MouseWheelHandler(e) {
+            // cross-browser wheel delta
+            e = window.event || e;
+            var delta = Math.max(-1, Math.min(1,
+                    (e.wheelDelta || -e.deltaY || -e.detail)));
+
+            if (!isMoving) { //if theres any #
+
+                //scrolling down?
+                if (delta < 0) {
+                    MS.moveSectionDown();
+                }
+
+                //scrolling up?
+                else {
+                    MS.moveSectionUp();
+                }
+            }
+
+
+            return false;
+        }
+
+        /**
+        * Adds a css3 transform property to the container class with or without animation depending on the animated param.
+        */
+        function transformContainer(container, translate3d, animated){
+            container.toggleClass('ms-easing', animated);
+
+            container.css(getTransforms(translate3d));
+        }
+
+
+        /**
+        * Returns the transform styles for all browsers
+        */
+        function getTransforms(translate3d){
+            return {
+                '-webkit-transform': translate3d,
+                '-moz-transform': translate3d,
+                '-ms-transform':translate3d,
+                'transform': translate3d
+            };
+        }
+
+        /**
+         * Activating the website navigation dots according to the given slide name.
+         */
+        function activateNavDots(name, sectionIndex){
+            if(options.navigation){
+                $('#multiscroll-nav').find('.active').removeClass('active');
+                if(name){
+                    $('#multiscroll-nav').find('a[href="#' + name + '"]').addClass('active');
+                }else{
+                    $('#multiscroll-nav').find('li').eq(sectionIndex).find('a').addClass('active');
+                }
+            }
+        }
+
+        /**
+         * Activating the website main menu elements according to the given slide name.
+         */
+        function activateMenuElement(name){
+            if(options.menu){
+                $(options.menu).find('.active').removeClass('active');
+                $(options.menu).find('[data-menuanchor="'+name+'"]').addClass('active');
+            }
+        }
+
+        /**
+        * Retuns `up` or `down` depending on the scrolling movement to reach its destination
+        * from the current section.
+        */
+        function getYmovement(destiny){
+            var fromIndex = $('.ms-left .ms-section.active').index();
+            var toIndex = destiny.index();
+
+            if(fromIndex > toIndex){
+                return 'up';
+            }
+            return 'down';
+        }
+
+
+        /**
+        * Sets the URL hash for a section with slides
+        */
+        function setURLHash(anchorLink){
+            if(options.anchors.length){
+                location.hash = anchorLink;
+            }
+
+            setBodyClass();
+        }
+
+         /**
+        * Sets a class for the body of the page depending on the active section / slide
+        */
+        function setBodyClass(){
+            var section = $('.ms-left .ms-section.active');
+            var sectionAnchor = section.data('anchor');
+            var sectionIndex = section.index();
+
+            var text = String(sectionIndex);
+
+            if(options.anchors.length){
+                text = sectionAnchor;
+            }
+
+            //changing slash for dash to make it a valid CSS style
+            text = text.replace('/', '-').replace('#','');
+
+            //removing previous anchor classes
+            var classRe = new RegExp('\\b\\s?' + 'ms-viewing' + '-[^\\s]+\\b', "g");
+            $('body')[0].className = $('body')[0].className.replace(classRe, '');
+
+            //adding the current anchor
+            $('body').addClass('ms-viewing-' + text);
+        }
+
+
+        /**
+        * Checks for translate3d support
+        * @return boolean
+        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support
+        */
+        function support3d() {
+            var el = document.createElement('p'),
+                has3d,
+                transforms = {
+                    'webkitTransform':'-webkit-transform',
+                    'OTransform':'-o-transform',
+                    'msTransform':'-ms-transform',
+                    'MozTransform':'-moz-transform',
+                    'transform':'transform'
+                };
+
+            // Add it to the body to get the computed style.
+            document.body.insertBefore(el, null);
+
+            for (var t in transforms) {
+                if (el.style[t] !== undefined) {
+                    el.style[t] = "translate3d(1px,1px,1px)";
+                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);
+                }
+            }
+
+            document.body.removeChild(el);
+
+            return (has3d !== undefined && has3d.length > 0 && has3d !== "none");
+        }
+
+        /**
+        * Wraps an element in order to center it vertically by using a class style.
+        */
+        function addTableClass(element){
+            element.addClass('ms-table').wrapInner('<div class="ms-tableCell" style="height: ' + getTableHeight(element) + 'px" />');
+        }
+
+        /**
+        * Gets the height of the section after removing the paddings.
+        */
+        function getTableHeight(section){
+            var sectionHeight = windowHeight;
+
+            if(options.paddingTop || options.paddingBottom){
+                var paddings = parseInt(section.css('padding-top')) + parseInt(section.css('padding-bottom'));
+                sectionHeight = (windowHeight - paddings);
+            }
+
+            return sectionHeight;
+        }
+
+
+        /**
+        * Scrolls the page to the existent anchor in the URL
+        */
+        function scrollToAnchor(){
+            //getting the anchor link in the URL and deleting the `#`
+            var sectionAnchor =  window.location.hash.replace('#', '');
+            var section = $('.ms-left .ms-section[data-anchor="'+sectionAnchor+'"]');
+
+            if(sectionAnchor.length){  //if theres any #
+                scrollPage(section);
+            }
+        }
+
+        /**
+        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys
+        */
+        MS.setKeyboardScrolling = function (value){
+            options.keyboardScrolling = value;
+        };
+
+        /**
+        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.
+        */
+        MS.setMouseWheelScrolling = function (value){
+            if(value){
+                addMouseWheelHandler();
+            }else{
+                removeMouseWheelHandler();
+            }
+        };
+
+        /**
+        * Defines the scrolling speed
+        */
+        MS.setScrollingSpeed = function(value){
+            options.scrollingSpeed = value;
+        };
+
+
+
+        var touchStartY = 0;
+        var touchStartX = 0;
+        var touchEndY = 0;
+        var touchEndX = 0;
+
+        /* Detecting touch events
+
+        * As we are changing the top property of the page on scrolling, we can not use the traditional way to detect it.
+        * This way, the touchstart and the touch moves shows an small difference between them which is the
+        * used one to determine the direction.
+        */
+        function touchMoveHandler(event){
+            var e = event.originalEvent;
+
+            if(isReallyTouch(e)){
+                //preventing the easing on iOS devices
+                event.preventDefault();
+
+                var activeSection = $('.ms-left .ms-section.active');
+
+                if (!isMoving) { //if theres any #
+                    var touchEvents = getEventsPage(e);
+                    touchEndY = touchEvents['y'];
+                    touchEndX = touchEvents['x'];
+
+
+                    //is the movement greater than the minimum resistance to scroll?
+                    if (Math.abs(touchStartY - touchEndY) > ($(window).height() / 100 * options.touchSensitivity)) {
+
+                        if (touchStartY > touchEndY) {
+                            MS.moveSectionDown();
+
+                        } else if (touchEndY > touchStartY) {
+                            MS.moveSectionUp();
+                        }
+                    }
+                }
+            }
+        }
+
+        /**
+        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen
+        * this way we make sure that is really a touch event what IE is detecting.
+        */
+        function isReallyTouch(e){
+            //if is not IE   ||  IE is detecting `touch` or `pen`
+            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';
+        }
+
+
+        /**
+        * Handler to get he coordinates of the starting touch
+        */
+        function touchStartHandler(event){
+            var e = event.originalEvent;
+
+            if(isReallyTouch(e)){
+                var touchEvents = getEventsPage(e);
+                touchStartY = touchEvents['y'];
+                touchStartX = touchEvents['x'];
+            }
+        }
+
+
+        /**
+        * Adds the possibility to auto scroll through sections on touch devices.
+        */
+        function addTouchHandler(){
+            if(isTouch){
+                //Microsoft pointers
+                MSPointer = getMSPointer();
+
+                $(document).off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);
+                $(document).off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);
+            }
+        }
+
+        /**
+        * Removes the auto scrolling for touch devices.
+        */
+        function removeTouchHandler(){
+            if(isTouch){
+                //Microsoft pointers
+                MSPointer = getMSPointer();
+
+                $(document).off('touchstart ' + MSPointer.down);
+                $(document).off('touchmove ' + MSPointer.move);
+            }
+        }
+
+        /*
+        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)
+        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx
+        */
+        function getMSPointer(){
+            var pointer;
+
+            //IE >= 11
+            if(window.PointerEvent){
+                pointer = { down: "pointerdown", move: "pointermove"};
+            }
+
+            //IE < 11
+            else{
+                pointer = { down: "MSPointerDown", move: "MSPointerMove"};
+            }
+
+            return pointer;
+        }
+
+        /**
+        * Gets the pageX and pageY properties depending on the browser.
+        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854
+        */
+        function getEventsPage(e){
+            var events = [];
+
+            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);
+            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);
+
+            //in touch devices with scrollBar:true, e.pageY is detected, but we have to deal with touch events. #1008
+            if(isTouch && isReallyTouch(e)){
+                events.y = e.touches[0].pageY;
+                events.x = e.touches[0].pageX;
+            }
+
+            return events;
+        }
+
+        /**
+        * Destroy multiscroll.js plugin's events
+        */
+        MS.destroy = function() {
+            MS.setKeyboardScrolling(false);
+            MS.setMouseWheelScrolling(false);
+            removeTouchHandler();
+
+            $(window)
+                .off('hashchange', hashChangeHandler)
+                .off('resize', doneResizing);
+
+            $(document)
+                .off('mouseenter', '#multiscroll-nav li')
+                .off('mouseleave', '#multiscroll-nav li')
+                .off('click', '#multiscroll-nav a');
+        };
+
+        /**
+        * Build multiscroll.js plugin's events after destroy
+        */
+        MS.build = function() {
+            MS.setKeyboardScrolling(true);
+            MS.setMouseWheelScrolling(true);
+            addTouchHandler();
+
+            $(window)
+                .on('hashchange', hashChangeHandler)
+                .on('resize', doneResizing);
+
+            $(document)
+                .on('mouseenter', '#multiscroll-nav li', navMouseEnterHandler)
+                .on('mouseleave', '#multiscroll-nav li', navMouseLeaveHandler)
+                .on('click', '#multiscroll-nav a', navClickHandler);
+        };
+
+    };
 })(jQuery, window, document, Math);
diff --git a/dist/jquery.multiscroll.min.js b/dist/jquery.multiscroll.min.js
index c4a7739..7e459ab 100644
--- a/dist/jquery.multiscroll.min.js
+++ b/dist/jquery.multiscroll.min.js
@@ -5,207 +5,5 @@
  *
  * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
  */
-!function(e,t,n,o,i){e.fn.multiscroll=function(s){function a(){var n=t.location.hash.replace("#",""),o=n;if(o.length){var i=e(".ms-left").find('[data-anchor="'+o+'"]'),s="undefined"==typeof lastScrolledDestiny;(s||o!==lastScrolledDestiny)&&h(i)}}function l(t){clearTimeout(O);var o=e(n.activeElement);if(!o.is("textarea")&&!o.is("input")&&!o.is("select")&&s.keyboardScrolling){var i=t.which,a=[40,38,32,33,34];e.inArray(i,a)>-1&&t.preventDefault(),O=setTimeout(function(){r(t)},150)}}/**
-		 * Sliding with arrow keys, both, vertical and horizontal
-		 */
-function r(t){var n=t.shiftKey;switch(t.which){
-//up
-case 38:case 33:X.moveSectionUp();break;
-//down
-case 32://spacebar
-if(n){X.moveSectionUp();break}case 40:case 34:X.moveSectionDown();break;
-//Home
-case 36:X.moveTo(1);break;
-//End
-case 35:X.moveTo(e(".ms-left .ms-section").length);break;default:return}}function c(t){t.preventDefault();var n=e(this).parent().index();h(e(".ms-left .ms-section").eq(n))}function m(){var t=e(this).data("tooltip");e('<div class="multiscroll-tooltip '+s.navigationPosition+'">'+t+"</div>").hide().appendTo(e(this)).fadeIn(200)}function f(){e(this).find(".multiscroll-tooltip").fadeOut(200,function(){e(this).remove()})}/**
-		 * When resizing is finished, we adjust the slides sizes and positions
-		 */
-function d(){N=e(t).height(),e(".ms-tableCell").each(function(){e(this).css({height:P(e(this).parent())})}),u(),e.isFunction(s.afterResize)&&s.afterResize.call(this)}function u(){
-//moving the right section to the bottom
-s.css3?(S(e(".ms-left"),"translate3d(0px, -"+e(".ms-left").find(".ms-section.active").position().top+"px, 0px)",!1),S(e(".ms-right"),"translate3d(0px, -"+e(".ms-right").find(".ms-section.active").position().top+"px, 0px)",!1)):(e(".ms-left").css("top",-e(".ms-left").find(".ms-section.active").position().top),e(".ms-right").css("top",-e(".ms-right").find(".ms-section.active").position().top))}function h(t){var n=t.index(),o=e(".ms-right").find(".ms-section").eq(W-1-n),i=t.data("anchor"),a=e(".ms-left .ms-section.active"),l=a.index()+1,r=b(t);
-//preventing from activating the MouseWheelHandler event
-//more than once if the page is scrolling
-K=!0;var c={left:t.position().top,right:o.position().top};
-// Use CSS3 translate functionality or...
-if(o.addClass("active").siblings().removeClass("active"),t.addClass("active").siblings().removeClass("active"),C(i),s.css3){
-//callback (onLeave)
-e.isFunction(s.onLeave)&&s.onLeave.call(this,l,n+1,r);var m="translate3d(0px, -"+c.left+"px, 0px)",f="translate3d(0px, -"+c.right+"px, 0px)";S(e(".ms-left"),m,!0),S(e(".ms-right"),f,!0),setTimeout(function(){
-//callback (afterLoad)
-e.isFunction(s.afterLoad)&&s.afterLoad.call(this,i,n+1),setTimeout(function(){K=!1},q)},s.scrollingSpeed)}else
-//callback (onLeave)
-e.isFunction(s.onLeave)&&s.onLeave.call(this,l,n+1,r),e(".ms-left").animate({top:-c.left},s.scrollingSpeed,s.easing,function(){e.isFunction(s.afterLoad)&&s.afterLoad.call(this,i,n+1),setTimeout(function(){K=!1},q)}),e(".ms-right").animate({top:-c.right},s.scrollingSpeed,s.easing);
-//flag to avoid callingn `scrollPage()` twice in case of using anchor links
-lastScrolledDestiny=i,w(i),x(i,n)}/**
-		* Removes the auto scrolling action fired by the mouse wheel and tackpad.
-		* After this function is called, the mousewheel and trackpad movements won't scroll through sections.
-		*/
-function v(){n.addEventListener?(n.removeEventListener("mousewheel",g,!1),//IE9, Chrome, Safari, Oper
-n.removeEventListener("wheel",g,!1)):n.detachEvent("onmousewheel",g)}/**
-		* Adds the auto scrolling action for the mouse wheel and tackpad.
-		* After this function is called, the mousewheel and trackpad movements will scroll through sections
-		*/
-function p(){n.addEventListener?(n.addEventListener("mousewheel",g,!1),//IE9, Chrome, Safari, Oper
-n.addEventListener("wheel",g,!1)):n.attachEvent("onmousewheel",g)}/**
-		 * Detecting mousewheel scrolling
-		 *
-		 * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html
-		 * http://www.sitepoint.com/html5-javascript-mouse-wheel/
-		 */
-function g(e){
-// cross-browser wheel delta
-e=t.event||e;var n=o.max(-1,o.min(1,e.wheelDelta||-e.deltaY||-e.detail));//if theres any #
-//scrolling down?
-return K||(n<0?X.moveSectionDown():X.moveSectionUp()),!1}/**
-		* Adds a css3 transform property to the container class with or without animation depending on the animated param.
-		*/
-function S(e,t,n){e.toggleClass("ms-easing",n),e.css(y(t))}/**
-		* Returns the transform styles for all browsers
-		*/
-function y(e){return{"-webkit-transform":e,"-moz-transform":e,"-ms-transform":e,transform:e}}/**
-		 * Activating the website navigation dots according to the given slide name.
-		 */
-function x(t,n){s.navigation&&(e("#multiscroll-nav").find(".active").removeClass("active"),t?e("#multiscroll-nav").find('a[href="#'+t+'"]').addClass("active"):e("#multiscroll-nav").find("li").eq(n).find("a").addClass("active"))}/**
-		 * Activating the website main menu elements according to the given slide name.
-		 */
-function w(t){s.menu&&(e(s.menu).find(".active").removeClass("active"),e(s.menu).find('[data-menuanchor="'+t+'"]').addClass("active"))}/**
-		* Retuns `up` or `down` depending on the scrolling movement to reach its destination
-		* from the current section.
-		*/
-function b(t){var n=e(".ms-left .ms-section.active").index(),o=t.index();return n>o?"up":"down"}/**
-		* Sets the URL hash for a section with slides
-		*/
-function C(e){s.anchors.length&&(location.hash=e),T()}/**
-		* Sets a class for the body of the page depending on the active section / slide
-		*/
-function T(){var t=e(".ms-left .ms-section.active"),n=t.data("anchor"),o=t.index(),i=String(o);s.anchors.length&&(i=n),
-//changing slash for dash to make it a valid CSS style
-i=i.replace("/","-").replace("#","");
-//removing previous anchor classes
-var a=new RegExp("\\b\\s?ms-viewing-[^\\s]+\\b","g");e("body")[0].className=e("body")[0].className.replace(a,""),
-//adding the current anchor
-e("body").addClass("ms-viewing-"+i)}/**
-		* Checks for translate3d support
-		* @return boolean
-		* http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support
-		*/
-function E(){var e,o=n.createElement("p"),s={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};
-// Add it to the body to get the computed style.
-n.body.insertBefore(o,null);for(var a in s)o.style[a]!==i&&(o.style[a]="translate3d(1px,1px,1px)",e=t.getComputedStyle(o).getPropertyValue(s[a]));return n.body.removeChild(o),e!==i&&e.length>0&&"none"!==e}/**
-		* Wraps an element in order to center it vertically by using a class style.
-		*/
-function M(e){e.addClass("ms-table").wrapInner('<div class="ms-tableCell" style="height: '+P(e)+'px" />')}/**
-		* Gets the height of the section after removing the paddings.
-		*/
-function P(e){var t=N;if(s.paddingTop||s.paddingBottom){var n=parseInt(e.css("padding-top"))+parseInt(e.css("padding-bottom"));t=N-n}return t}/**
-		* Scrolls the page to the existent anchor in the URL
-		*/
-function k(){
-//getting the anchor link in the URL and deleting the `#`
-var n=t.location.hash.replace("#",""),o=e('.ms-left .ms-section[data-anchor="'+n+'"]');n.length&&//if theres any #
-h(o)}/* Detecting touch events
-
-		* As we are changing the top property of the page on scrolling, we can not use the traditional way to detect it.
-		* This way, the touchstart and the touch moves shows an small difference between them which is the
-		* used one to determine the direction.
-		*/
-function L(n){var i=n.originalEvent;if(D(i)){
-//preventing the easing on iOS devices
-n.preventDefault();e(".ms-left .ms-section.active");if(!K){//if theres any #
-var a=F(i);A=a.y,V=a.x,
-//is the movement greater than the minimum resistance to scroll?
-o.abs(Q-A)>e(t).height()/100*s.touchSensitivity&&(Q>A?X.moveSectionDown():A>Q&&X.moveSectionUp())}}}/**
-		* As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen
-		* this way we make sure that is really a touch event what IE is detecting.
-		*/
-function D(e){
-//if is not IE   ||  IE is detecting `touch` or `pen`
-return"undefined"==typeof e.pointerType||"mouse"!=e.pointerType}/**
-		* Handler to get he coordinates of the starting touch
-		*/
-function z(e){var t=e.originalEvent;if(D(t)){var n=F(t);Q=n.y,j=n.x}}/**
-		* Adds the possibility to auto scroll through sections on touch devices.
-		*/
-function B(){I&&(
-//Microsoft pointers
-MSPointer=Y(),e(n).off("touchstart "+MSPointer.down).on("touchstart "+MSPointer.down,z),e(n).off("touchmove "+MSPointer.move).on("touchmove "+MSPointer.move,L))}/**
-		* Removes the auto scrolling for touch devices.
-		*/
-function R(){I&&(
-//Microsoft pointers
-MSPointer=Y(),e(n).off("touchstart "+MSPointer.down),e(n).off("touchmove "+MSPointer.move))}/*
-		* Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)
-		* http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx
-		*/
-function Y(){var e;
-//IE >= 11
-return e=t.PointerEvent?{down:"pointerdown",move:"pointermove"}:{down:"MSPointerDown",move:"MSPointerMove"}}/**
-		* Gets the pageX and pageY properties depending on the browser.
-		* https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854
-		*/
-function F(e){var t=[];
-//in touch devices with scrollBar:true, e.pageY is detected, but we have to deal with touch events. #1008
-return t.y="undefined"!=typeof e.pageY&&(e.pageY||e.pageX)?e.pageY:e.touches[0].pageY,t.x="undefined"!=typeof e.pageX&&(e.pageY||e.pageX)?e.pageX:e.touches[0].pageX,I&&D(e)&&(t.y=e.touches[0].pageY,t.x=e.touches[0].pageX),t}var X=e.fn.multiscroll;
-// Create some defaults, extending them with any options that were provided
-s=e.extend({verticalCentered:!0,scrollingSpeed:700,easing:"easeInQuart",menu:!1,sectionsColor:[],anchors:[],navigation:!1,navigationPosition:"right",navigationColor:"#000",navigationTooltips:[],loopBottom:!1,loopTop:!1,css3:!1,paddingTop:0,paddingBottom:0,fixedElements:null,normalScrollElements:null,keyboardScrolling:!0,touchSensitivity:5,
-// Custom selectors
-sectionSelector:".ms-section",leftSelector:".ms-left",rightSelector:".ms-right",
-//events
-afterLoad:null,onLeave:null,afterRender:null,afterResize:null},s);
-//Defines the delay to take place before being able to scroll to the next section
-//BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and
-//Apple devices (laptops, mouses...)
-var q=600,I="ontouchstart"in t||navigator.msMaxTouchPoints>0||navigator.maxTouchPoints;
-// adding class namef for right and left blocks
-".ms-right"!==s.rightSelector&&e(s.rightSelector).addClass("ms-right"),".ms-left"!==s.leftSelector&&e(s.leftSelector).addClass("ms-left");var U,W=e(".ms-left").find(".ms-section").length,K=!1,N=e(t).height();p(),B(),
-//if css3 is not supported, it will use jQuery animations
-s.css3&&(s.css3=E()),e("html, body").css({overflow:"hidden",height:"100%"}),
-//adding class names to each sections
-".ms-section"!==s.sectionSelector&&e(s.sectionSelector).each(function(){e(this).addClass("ms-section")}),
-//creating the navigation dots
-s.navigation&&(e("body").append('<div id="multiscroll-nav"><ul></ul></div>'),U=e("#multiscroll-nav"),U.css("color",s.navigationColor),U.addClass(s.navigationPosition)),e(".ms-right, .ms-left").css({width:"50%",position:"absolute",height:"100%","-ms-touch-action":"none"}),e(".ms-right").css({right:"1px",//http://stackoverflow.com/questions/23675457/chrome-and-opera-creating-small-padding-when-using-displaytable
-top:"0","-ms-touch-action":"none","touch-action":"none"}),e(".ms-left").css({left:"0",top:"0","-ms-touch-action":"none","touch-action":"none"}),e(".ms-left .ms-section, .ms-right .ms-section").each(function(){var t=e(this).index();
-//only for the left panel
-if((s.paddingTop||s.paddingBottom)&&e(this).css("padding",s.paddingTop+" 0 "+s.paddingBottom+" 0"),"undefined"!=typeof s.sectionsColor[t]&&e(this).css("background-color",s.sectionsColor[t]),"undefined"!=typeof s.anchors[t]&&e(this).attr("data-anchor",s.anchors[t]),s.verticalCentered&&M(e(this)),e(this).closest(".ms-left").length&&s.navigation){var n="";s.anchors.length&&(n=s.anchors[t]);var o=s.navigationTooltips[t];"undefined"==typeof o&&(o=""),s.navigation&&U.find("ul").append('<li data-tooltip="'+o+'"><a href="#'+n+'"><span></span></a></li>')}}),
-//inverting the right panel
-e(".ms-right").html(e(".ms-right").find(".ms-section").get().reverse()),e(".ms-left .ms-section, .ms-right .ms-section").each(function(){var t=e(this).index();e(this).css({height:"100%"}),!t&&s.navigation&&
-//activating the navigation bullet
-U.find("li").eq(t).find("a").addClass("active")}).promise().done(function(){
-//if no active section is defined, the 1st one will be the default one
-e(".ms-left .ms-section.active").length||(e(".ms-right").find(".ms-section").last().addClass("active"),e(".ms-left").find(".ms-section").first().addClass("active")),
-//vertical centered of the navigation + first bullet active
-s.navigation&&U.css("margin-top","-"+U.height()/2+"px"),e.isFunction(s.afterRender)&&s.afterRender.call(this),
-//scrolling to the defined active section and adjusting right and left panels
-u(),
-//setting the class for the body element
-T(),e(t).on("load",function(){k()})}),
-//detecting any change on the URL to scroll to the given anchor link
-//(a way to detect back history button as we play with the hashes on the URL)
-e(t).on("hashchange",a),/**
-		* Sliding with arrow keys, both, vertical and horizontal
-		*/
-e(n).keydown(l);var O;/**
-		 * Disabling any action when pressing of the mouse wheel (Chrome, IE, Opera, Safari)
-		 */
-e(n).mousedown(function(e){if(1==e.button)return e.preventDefault(),!1}),
-//navigation action
-e(n).on("click","#multiscroll-nav a",c),
-//navigation tooltips
-e(n).on({mouseenter:m,mouseleave:f},"#multiscroll-nav li"),s.normalScrollElements&&(e(n).on("mouseenter",s.normalScrollElements,function(){X.setMouseWheelScrolling(!1)}),e(n).on("mouseleave",s.normalScrollElements,function(){X.setMouseWheelScrolling(!0)})),
-//when resizing the site, we adjust the heights of the sections
-e(t).on("resize",d),X.moveSectionUp=function(){var t=e(".ms-left .ms-section.active").prev(".ms-section");!t.length&&s.loopTop&&(t=e(".ms-left .ms-section").last()),t.length&&h(t)},X.moveSectionDown=function(){var t=e(".ms-left .ms-section.active").next(".ms-section");!t.length&&s.loopBottom&&(t=e(".ms-left .ms-section").first()),t.length&&h(t)},X.moveTo=function(t){var n="";n=isNaN(t)?e('.ms-left [data-anchor="'+t+'"]'):e(".ms-left .ms-section").eq(t-1),h(n)},/**
-		* Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys
-		*/
-X.setKeyboardScrolling=function(e){s.keyboardScrolling=e},/**
-		* Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.
-		*/
-X.setMouseWheelScrolling=function(e){e?p():v()},/**
-		* Defines the scrolling speed
-		*/
-X.setScrollingSpeed=function(e){s.scrollingSpeed=e};var Q=0,j=0,A=0,V=0;/**
-		* Destroy multiscroll.js plugin's events
-		*/
-X.destroy=function(){X.setKeyboardScrolling(!1),X.setMouseWheelScrolling(!1),R(),e(t).off("hashchange",a).off("resize",d),e(n).off("mouseenter","#multiscroll-nav li").off("mouseleave","#multiscroll-nav li").off("click","#multiscroll-nav a")},/**
-		* Build multiscroll.js plugin's events after destroy
-		*/
-X.build=function(){X.setKeyboardScrolling(!0),X.setMouseWheelScrolling(!0),B(),e(t).on("hashchange",a).on("resize",d),e(n).on("mouseenter","#multiscroll-nav li",m).on("mouseleave","#multiscroll-nav li",f).on("click","#multiscroll-nav a",c)}}}(jQuery,window,document,Math);
+!function(z,R,F,Y,I){z.fn.multiscroll=function(v){var o=z.fn.multiscroll;v=z.extend({verticalCentered:!0,scrollingSpeed:700,easing:"easeInQuart",menu:!1,sectionsColor:[],anchors:[],navigation:!1,navigationPosition:"right",navigationColor:"#000",navigationTooltips:[],loopBottom:!1,loopTop:!1,css3:!1,paddingTop:0,paddingBottom:0,fixedElements:null,normalScrollElements:null,keyboardScrolling:!0,touchSensitivity:5,sectionSelector:".ms-section",leftSelector:".ms-left",rightSelector:".ms-right",afterLoad:null,onLeave:null,afterRender:null,afterResize:null},v);var h=600,n=navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/),i="ontouchstart"in R||0<navigator.msMaxTouchPoints||navigator.maxTouchPoints;".ms-right"!==v.rightSelector&&z(v.rightSelector).addClass("ms-right"),".ms-left"!==v.leftSelector&&z(v.leftSelector).addClass("ms-left");var s,a,l,u=z(".ms-left").find(".ms-section").length,g=!1,r=z(R).height();function e(){var e=R.location.hash.replace("#","");if(e.length){var t=z(".ms-left").find('[data-anchor="'+e+'"]');("undefined"==typeof lastScrolledDestiny||e!==lastScrolledDestiny)&&S(t)}}function t(e){e.preventDefault();var t=z(this).parent().index();S(z(".ms-left .ms-section").eq(t))}function c(){var e=z(this).data("tooltip");z('<div class="multiscroll-tooltip '+v.navigationPosition+'">'+e+"</div>").hide().appendTo(z(this)).fadeIn(200)}function m(){z(this).find(".multiscroll-tooltip").fadeOut(200,function(){z(this).remove()})}w(),L(),v.css3&&(v.css3=function(){var e,t=F.createElement("p"),n={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};for(var o in F.body.insertBefore(t,null),n)t.style[o]!==I&&(t.style[o]="translate3d(1px,1px,1px)",e=R.getComputedStyle(t).getPropertyValue(n[o]));return F.body.removeChild(t),e!==I&&0<e.length&&"none"!==e}()),z("html, body").css({overflow:"hidden",height:"100%"}),".ms-section"!==v.sectionSelector&&z(v.sectionSelector).each(function(){z(this).addClass("ms-section")}),v.navigation&&(z("body").append('<div id="multiscroll-nav"><ul></ul></div>'),(s=z("#multiscroll-nav")).css("color",v.navigationColor),s.addClass(v.navigationPosition)),z(".ms-right, .ms-left").css({width:"50%",position:"absolute",height:"100%","-ms-touch-action":"none"}),z(".ms-right").css({right:"1px",top:"0","-ms-touch-action":"none","touch-action":"none"}),z(".ms-left").css({left:"0",top:"0","-ms-touch-action":"none","touch-action":"none"}),z(".ms-left .ms-section, .ms-right .ms-section").each(function(){var e,t=z(this).index();if((v.paddingTop||v.paddingBottom)&&z(this).css("padding",v.paddingTop+" 0 "+v.paddingBottom+" 0"),void 0!==v.sectionsColor[t]&&z(this).css("background-color",v.sectionsColor[t]),void 0!==v.anchors[t]&&z(this).attr("data-anchor",v.anchors[t]),v.verticalCentered&&(e=z(this)).addClass("ms-table").wrapInner('<div class="ms-tableCell" style="height: '+C(e)+'px" />'),z(this).closest(".ms-left").length&&v.navigation){var n="";v.anchors.length&&(n=v.anchors[t]);var o=v.navigationTooltips[t];void 0===o&&(o=""),v.navigation&&s.find("ul").append('<li data-tooltip="'+o+'"><a href="#'+n+'"><span></span></a></li>')}}),z(".ms-right").html(z(".ms-right").find(".ms-section").get().reverse()),z(".ms-left .ms-section, .ms-right .ms-section").each(function(){var e=z(this).index();z(this).css({height:"100%"}),!e&&v.navigation&&s.find("li").eq(e).find("a").addClass("active")}).promise().done(function(){z(".ms-left .ms-section.active").length||(z(".ms-right").find(".ms-section").last().addClass("active"),z(".ms-left").find(".ms-section").first().addClass("active")),v.navigation&&s.css("margin-top","-"+s.height()/2+"px"),z.isFunction(v.afterRender)&&v.afterRender.call(this),p(),y(),z(R).on("load",function(){var e,t;e=R.location.hash.replace("#",""),t=z('.ms-left .ms-section[data-anchor="'+e+'"]'),e.length&&S(t)})}),z(R).on("hashchange",e),z(F).keydown(function(e){clearTimeout(l);var t=z(F.activeElement);if(!t.is("textarea")&&!t.is("input")&&!t.is("select")&&v.keyboardScrolling){var n=e.which;-1<z.inArray(n,[40,38,32,33,34])&&e.preventDefault(),l=setTimeout(function(){!function(e){var t=e.shiftKey;switch(e.which){case 38:case 33:o.moveSectionUp();break;case 32:if(t){o.moveSectionUp();break}case 40:case 34:o.moveSectionDown();break;case 36:o.moveTo(1);break;case 35:o.moveTo(z(".ms-left .ms-section").length);break;default:;}}(e)},150)}}),z(F).mousedown(function(e){if(1==e.button)return e.preventDefault(),!1}),z(F).on("click","#multiscroll-nav a",t),z(F).on({mouseenter:c,mouseleave:m},"#multiscroll-nav li"),v.normalScrollElements&&(z(F).on("mouseenter",v.normalScrollElements,function(){o.setMouseWheelScrolling(!1)}),z(F).on("mouseleave",v.normalScrollElements,function(){o.setMouseWheelScrolling(!0)})),z(R).on("resize",function(){if(n){var e=z(F.activeElement);if(!e.is("textarea")&&!e.is("input")&&!e.is("select")){var t=$window.height();Y.abs(t-d)>20*Y.max(d,t)/100&&(f(!0),d=t)}}else clearTimeout(a),a=setTimeout(function(){f(!0)},350)});var d=windowsHeight;function f(e){r=z(R).height(),z(".ms-tableCell").each(function(){z(this).css({height:C(z(this).parent())})}),v.scrollOverflow&&scrollBarHandler.createScrollBarForAll(),p(),z.isFunction(v.afterResize)&&v.afterResize.call(this)}function p(){v.css3?(b(z(".ms-left"),"translate3d(0px, -"+z(".ms-left").find(".ms-section.active").position().top+"px, 0px)",!1),b(z(".ms-right"),"translate3d(0px, -"+z(".ms-right").find(".ms-section.active").position().top+"px, 0px)",!1)):(z(".ms-left").css("top",-z(".ms-left").find(".ms-section.active").position().top),z(".ms-right").css("top",-z(".ms-right").find(".ms-section.active").position().top))}function S(e){var t=e.index(),n=z(".ms-right").find(".ms-section").eq(u-1-t),o=e.data("anchor"),i=z(".ms-left .ms-section.active").index()+1,s=function(e){var t=z(".ms-left .ms-section.active").index(),n=e.index();if(n<t)return"up";return"down"}(e);g=!0;var a,l,r,c=e.position().top,m=n.position().top;if(n.addClass("active").siblings().removeClass("active"),e.addClass("active").siblings().removeClass("active"),function(e){v.anchors.length&&(location.hash=e);y()}(o),v.css3){z.isFunction(v.onLeave)&&v.onLeave.call(this,i,t+1,s);var d="translate3d(0px, -"+c+"px, 0px)",f="translate3d(0px, -"+m+"px, 0px)";b(z(".ms-left"),d,!0),b(z(".ms-right"),f,!0),setTimeout(function(){z.isFunction(v.afterLoad)&&v.afterLoad.call(this,o,t+1),setTimeout(function(){g=!1},h)},v.scrollingSpeed)}else z.isFunction(v.onLeave)&&v.onLeave.call(this,i,t+1,s),z(".ms-left").animate({top:-c},v.scrollingSpeed,v.easing,function(){z.isFunction(v.afterLoad)&&v.afterLoad.call(this,o,t+1),setTimeout(function(){g=!1},h)}),z(".ms-right").animate({top:-m},v.scrollingSpeed,v.easing);lastScrolledDestiny=o,a=o,v.menu&&(z(v.menu).find(".active").removeClass("active"),z(v.menu).find('[data-menuanchor="'+a+'"]').addClass("active")),l=o,r=t,v.navigation&&(z("#multiscroll-nav").find(".active").removeClass("active"),l?z("#multiscroll-nav").find('a[href="#'+l+'"]').addClass("active"):z("#multiscroll-nav").find("li").eq(r).find("a").addClass("active"))}function w(){F.addEventListener?(F.addEventListener("mousewheel",x,!1),F.addEventListener("wheel",x,!1)):F.attachEvent("onmousewheel",x)}function x(e){e=R.event||e;var t=Y.max(-1,Y.min(1,e.wheelDelta||-e.deltaY||-e.detail));return g||(t<0?o.moveSectionDown():o.moveSectionUp()),!1}function b(e,t,n){var o;e.toggleClass("ms-easing",n),e.css({"-webkit-transform":o=t,"-moz-transform":o,"-ms-transform":o,transform:o})}function y(){var e=z(".ms-left .ms-section.active"),t=e.data("anchor"),n=e.index(),o=String(n);v.anchors.length&&(o=t),o=o.replace("/","-").replace("#","");var i=new RegExp("\\b\\s?ms-viewing-[^\\s]+\\b","g");z("body")[0].className=z("body")[0].className.replace(i,""),z("body").addClass("ms-viewing-"+o)}function C(e){var t=r;if(v.paddingTop||v.paddingBottom){var n=parseInt(e.css("padding-top"))+parseInt(e.css("padding-bottom"));t=r-n}return t}o.moveSectionUp=function(){var e=z(".ms-left .ms-section.active").prev(".ms-section");!e.length&&v.loopTop&&(e=z(".ms-left .ms-section").last()),e.length&&S(e)},o.moveSectionDown=function(){var e=z(".ms-left .ms-section.active").next(".ms-section");!e.length&&v.loopBottom&&(e=z(".ms-left .ms-section").first()),e.length&&S(e)},o.moveTo=function(e){S(isNaN(e)?z('.ms-left [data-anchor="'+e+'"]'):z(".ms-left .ms-section").eq(e-1))},o.setKeyboardScrolling=function(e){v.keyboardScrolling=e},o.setMouseWheelScrolling=function(e){e?w():F.addEventListener?(F.removeEventListener("mousewheel",x,!1),F.removeEventListener("wheel",x,!1)):F.detachEvent("onmousewheel",x)},o.setScrollingSpeed=function(e){v.scrollingSpeed=e};var T=0,E=0;function M(e){var t=e.originalEvent;if(P(t)){e.preventDefault();z(".ms-left .ms-section.active");if(!g){var n=D(t);E=n.y,n.x,Y.abs(T-E)>z(R).height()/100*v.touchSensitivity&&(E<T?o.moveSectionDown():T<E&&o.moveSectionUp())}}}function P(e){return void 0===e.pointerType||"mouse"!=e.pointerType}function k(e){var t=e.originalEvent;if(P(t)){var n=D(t);T=n.y,n.x}}function L(){i&&(MSPointer=B(),z(F).off("touchstart "+MSPointer.down).on("touchstart "+MSPointer.down,k),z(F).off("touchmove "+MSPointer.move).on("touchmove "+MSPointer.move,M))}function B(){return R.PointerEvent?{down:"pointerdown",move:"pointermove"}:{down:"MSPointerDown",move:"MSPointerMove"}}function D(e){var t=[];return t.y=void 0!==e.pageY&&(e.pageY||e.pageX)?e.pageY:e.touches[0].pageY,t.x=void 0!==e.pageX&&(e.pageY||e.pageX)?e.pageX:e.touches[0].pageX,i&&P(e)&&(t.y=e.touches[0].pageY,t.x=e.touches[0].pageX),t}o.destroy=function(){o.setKeyboardScrolling(!1),o.setMouseWheelScrolling(!1),i&&(MSPointer=B(),z(F).off("touchstart "+MSPointer.down),z(F).off("touchmove "+MSPointer.move)),z(R).off("hashchange",e).off("resize",doneResizing),z(F).off("mouseenter","#multiscroll-nav li").off("mouseleave","#multiscroll-nav li").off("click","#multiscroll-nav a")},o.build=function(){o.setKeyboardScrolling(!0),o.setMouseWheelScrolling(!0),L(),z(R).on("hashchange",e).on("resize",doneResizing),z(F).on("mouseenter","#multiscroll-nav li",c).on("mouseleave","#multiscroll-nav li",m).on("click","#multiscroll-nav a",t)}}}(jQuery,window,document,Math);
 //# sourceMappingURL=jquery.multiscroll.min.js.map
diff --git a/dist/jquery.multiscroll.min.js.map b/dist/jquery.multiscroll.min.js.map
index 637ae94..4b9f395 100644
--- a/dist/jquery.multiscroll.min.js.map
+++ b/dist/jquery.multiscroll.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["jquery.multiscroll.js"],"names":["$","window","document","Math","undefined","fn","multiscroll","options","hashChangeHandler","value","location","hash","replace","sectionAnchor","length","section","find","isFirstScrollMove","lastScrolledDestiny","scrollPage","keydownHandler","e","clearTimeout","keydownId","activeElement","is","keyboardScrolling","keyCode","which","keyControls","inArray","preventDefault","setTimeout","onkeydown","shiftPressed","shiftKey","MS","moveSectionUp","moveSectionDown","moveTo","navClickHandler","index","this","parent","eq","navMouseEnterHandler","tooltip","data","navigationPosition","hide","appendTo","fadeIn","navMouseLeaveHandler","fadeOut","remove","doneResizing","windowHeight","height","each","css","getTableHeight","silentScroll","isFunction","afterResize","call","css3","transformContainer","position","top","leftDestination","leftDestinationIndex","rightDestination","numberSections","anchorLink","activeSection","leavingSection","yMovement","getYmovement","isMoving","topPos","left","right","addClass","siblings","removeClass","setURLHash","onLeave","translate3dLeft","translate3dRight","afterLoad","scrollDelay","scrollingSpeed","animate","easing","activateMenuElement","activateNavDots","removeMouseWheelHandler","addEventListener","removeEventListener","MouseWheelHandler","detachEvent","addMouseWheelHandler","attachEvent","event","delta","max","min","wheelDelta","deltaY","detail","container","translate3d","animated","toggleClass","getTransforms","-webkit-transform","-moz-transform","-ms-transform","transform","name","sectionIndex","navigation","menu","destiny","fromIndex","toIndex","anchors","setBodyClass","text","String","classRe","RegExp","className","support3d","has3d","el","createElement","transforms","webkitTransform","OTransform","msTransform","MozTransform","body","insertBefore","t","style","getComputedStyle","getPropertyValue","removeChild","addTableClass","element","wrapInner","sectionHeight","paddingTop","paddingBottom","paddings","parseInt","scrollToAnchor","touchMoveHandler","originalEvent","isReallyTouch","touchEvents","getEventsPage","touchEndY","touchEndX","abs","touchStartY","touchSensitivity","pointerType","touchStartHandler","touchStartX","addTouchHandler","isTouch","MSPointer","getMSPointer","off","down","on","move","removeTouchHandler","pointer","PointerEvent","events","y","pageY","pageX","touches","x","extend","verticalCentered","sectionsColor","navigationColor","navigationTooltips","loopBottom","loopTop","fixedElements","normalScrollElements","sectionSelector","leftSelector","rightSelector","afterRender","navigator","msMaxTouchPoints","nav","overflow","append","width","-ms-touch-action","touch-action","attr","closest","link","html","get","reverse","promise","done","last","first","keydown","mousedown","button","mouseenter","mouseleave","setMouseWheelScrolling","prev","next","isNaN","setKeyboardScrolling","setScrollingSpeed","destroy","build","jQuery"],"mappings":";;;;;;;CAOA,SAAUA,EAAGC,EAAQC,EAAUC,EAAMC,GAEpCJ,EAAEK,GAAGC,YAAc,SAASC,GA8L3B,QAASC,KACR,GAAIC,GAASR,EAAOS,SAASC,KAAKC,QAAQ,IAAK,IAC3CC,EAAgBJ,CAEpB,IAAGI,EAAcC,OAAO,CACvB,GAAIC,GAAUf,EAAE,YAAYgB,KAAK,iBAAiBH,EAAc,MAE5DI,EAAoD,mBAAxBC,sBAE5BD,GAAqBJ,IAAkBK,sBAC1CC,EAAWJ,IAad,QAASK,GAAeC,GACvBC,aAAaC,EAEb,IAAIC,GAAgBxB,EAAEE,EAASsB,cAE/B,KAAIA,EAAcC,GAAG,cAAgBD,EAAcC,GAAG,WAAaD,EAAcC,GAAG,WACnFlB,EAAQmB,kBAAkB,CAC1B,GAAIC,GAAUN,EAAEO,MAGZC,GAAe,GAAI,GAAI,GAAI,GAAI,GAChC7B,GAAE8B,QAAQH,EAASE,IAAe,GACpCR,EAAEU,iBAGHR,EAAYS,WAAW,WACtBC,EAAUZ,IACT;;;AAOJ,QAASY,GAAUZ,GAClB,GAAIa,GAAeb,EAAEc,QAErB,QAAQd,EAAEO;;AAET,IAAK,IACL,IAAK,IACJQ,EAAGC,eACH;;AAGD,IAAK;AACJ,GAAGH,EAAa,CACfE,EAAGC,eACH,OAEF,IAAK,IACL,IAAK,IACJD,EAAGE,iBACH;;AAGD,IAAK,IACJF,EAAGG,OAAO,EACV;;AAGD,IAAK,IACJH,EAAGG,OAAQvC,EAAE,wBAAwBc,OACrC,MAED,SACC,QAcH,QAAS0B,GAAgBnB,GACxBA,EAAEU,gBACF,IAAIU,GAAQzC,EAAE0C,MAAMC,SAASF,OAC7BtB,GAAWnB,EAAE,wBAAwB4C,GAAGH,IAMzC,QAASI,KACR,GAAIC,GAAU9C,EAAE0C,MAAMK,KAAK,UAC3B/C,GAAE,mCAAqCO,EAAQyC,mBAAoB,KAAOF,EAAU,UAAUG,OAAOC,SAASlD,EAAE0C,OAAOS,OAAO,KAG/H,QAASC,KACRpD,EAAE0C,MAAM1B,KAAK,wBAAwBqC,QAAQ,IAAK,WACjDrD,EAAE0C,MAAMY;;;AA4BV,QAASC,KACRC,EAAexD,EAAEC,GAAQwD,SACzBzD,EAAE,iBAAiB0D,KAAK,WACvB1D,EAAE0C,MAAMiB,KAAMF,OAAQG,EAAe5D,EAAE0C,MAAMC,cAE9CkB,IACA7D,EAAE8D,WAAYvD,EAAQwD,cAAiBxD,EAAQwD,YAAYC,KAAMtB,MAGlE,QAASmB;;AAELtD,EAAQ0D,MACVC,EAAmBlE,EAAE,YAAa,qBAAuBA,EAAE,YAAYgB,KAAK,sBAAsBmD,WAAWC,IAAM,YAAY,GAC/HF,EAAmBlE,EAAE,aAAc,qBAAuBA,EAAE,aAAagB,KAAK,sBAAsBmD,WAAWC,IAAM,YAAY,KAEjIpE,EAAE,YAAY2D,IAAI,OAAQ3D,EAAE,YAAYgB,KAAK,sBAAsBmD,WAAWC,KAC9EpE,EAAE,aAAa2D,IAAI,OAAQ3D,EAAE,aAAagB,KAAK,sBAAsBmD,WAAWC,MAwClF,QAASjD,GAAWkD,GACnB,GAAIC,GAAuBD,EAAgB5B,QACvC8B,EAAmBvE,EAAE,aAAagB,KAAK,eAAe4B,GAAI4B,EAAgB,EAAIF,GAE9EG,EAAcJ,EAAgBtB,KAAK,UACnC2B,EAAgB1E,EAAE,+BAClB2E,EAAiBD,EAAcjC,QAAU,EACzCmC,EAAYC,EAAaR;;;AAI7BS,GAAW,CAEX,IAAIC,IACHC,KAASX,EAAgBF,WAAWC,IACpCa,MAASV,EAAiBJ,WAAWC;;AAStC,GANAG,EAAiBW,SAAS,UAAUC,WAAWC,YAAY,UAC3Df,EAAgBa,SAAS,UAAUC,WAAWC,YAAY,UAE1DC,EAAWZ,GAGPlE,EAAQ0D,KAAK;;AAEhBjE,EAAE8D,WAAWvD,EAAQ+E,UAAY/E,EAAQ+E,QAAQtB,KAAKtB,KAAMiC,EAAiBL,EAAuB,EAAIM,EAExG,IAAIW,GAAkB,qBAAuBR,EAAa,KAAI,WAC1DS,EAAmB,qBAAuBT,EAAc,MAAI,UAEhEb,GAAmBlE,EAAE,YAAauF,GAAiB,GACnDrB,EAAmBlE,EAAE,aAAcwF,GAAkB,GAErDxD,WAAW;;AAEVhC,EAAE8D,WAAWvD,EAAQkF,YAAclF,EAAQkF,UAAUzB,KAAKtB,KAAM+B,EAAaH,EAAuB,GAEpGtC,WAAW,WACV8C,GAAW,GACTY,IACDnF,EAAQoF;;AAGX3F,EAAE8D,WAAWvD,EAAQ+E,UAAY/E,EAAQ+E,QAAQtB,KAAKtB,KAAMiC,EAAiBL,EAAuB,EAAIM,GAExG5E,EAAE,YAAY4F,SACbxB,KAAQW,EAAa,MACnBxE,EAAQoF,eAAgBpF,EAAQsF,OAAQ,WAC1C7F,EAAE8D,WAAWvD,EAAQkF,YAAclF,EAAQkF,UAAUzB,KAAKtB,KAAM+B,EAAaH,EAAuB,GAEpGtC,WAAW,WACV8C,GAAW,GACTY,KAGJ1F,EAAE,aAAa4F,SACdxB,KAAQW,EAAc,OACpBxE,EAAQoF,eAAgBpF,EAAQsF;;AAIpC3E,oBAAsBuD,EAEtBqB,EAAoBrB,GACpBsB,EAAgBtB,EAAYH;;;;AAO7B,QAAS0B,KACJ9F,EAAS+F,kBACZ/F,EAASgG,oBAAoB,aAAcC,GAAmB;AAC9DjG,EAASgG,oBAAoB,QAASC,GAAmB,IAEzDjG,EAASkG,YAAY,eAAgBD;;;;AAQvC,QAASE,KACJnG,EAAS+F,kBACZ/F,EAAS+F,iBAAiB,aAAcE,GAAmB;AAC3DjG,EAAS+F,iBAAiB,QAASE,GAAmB,IAEtDjG,EAASoG,YAAY,eAAgBH;;;;;;AAUvC,QAASA,GAAkB9E;;AAE1BA,EAAIpB,EAAOsG,OAASlF,CACpB,IAAImF,GAAQrG,EAAKsG,KAAI,EAAItG,EAAKuG,IAAI,EAC/BrF,EAAEsF,aAAetF,EAAEuF,SAAWvF,EAAEwF;;AAgBnC,MAdK/B,KAGA0B,EAAQ,EACXpE,EAAGE,kBAKHF,EAAGC,kBAKE;;;AAMR,QAAS6B,GAAmB4C,EAAWC,EAAaC,GACnDF,EAAUG,YAAY,YAAaD,GAEnCF,EAAUnD,IAAIuD,EAAcH;;;AAO7B,QAASG,GAAcH,GACtB,OACCI,oBAAqBJ,EACrBK,iBAAkBL,EAClBM,gBAAgBN,EAChBO,UAAaP;;;AAOf,QAAShB,GAAgBwB,EAAMC,GAC3BjH,EAAQkH,aACVzH,EAAE,oBAAoBgB,KAAK,WAAWoE,YAAY,UAC/CmC,EACFvH,EAAE,oBAAoBgB,KAAK,YAAcuG,EAAO,MAAMrC,SAAS,UAE/DlF,EAAE,oBAAoBgB,KAAK,MAAM4B,GAAG4E,GAAcxG,KAAK,KAAKkE,SAAS;;;AAQxE,QAASY,GAAoByB,GACzBhH,EAAQmH,OACV1H,EAAEO,EAAQmH,MAAM1G,KAAK,WAAWoE,YAAY,UAC5CpF,EAAEO,EAAQmH,MAAM1G,KAAK,qBAAqBuG,EAAK,MAAMrC,SAAS;;;;AAQhE,QAASL,GAAa8C,GACrB,GAAIC,GAAY5H,EAAE,+BAA+ByC,QAC7CoF,EAAUF,EAAQlF,OAEtB,OAAGmF,GAAYC,EACP,KAED;;;AAOR,QAASxC,GAAWZ,GAChBlE,EAAQuH,QAAQhH,SAClBJ,SAASC,KAAO8D,GAGjBsD;;;AAMD,QAASA,KACR,GAAIhH,GAAUf,EAAE,+BACZa,EAAgBE,EAAQgC,KAAK,UAC7ByE,EAAezG,EAAQ0B,QAEvBuF,EAAOC,OAAOT,EAEfjH,GAAQuH,QAAQhH,SAClBkH,EAAOnH;;AAIRmH,EAAOA,EAAKpH,QAAQ,IAAK,KAAKA,QAAQ,IAAI;;AAG1C,GAAIsH,GAAU,GAAIC,QAAO,+BAA0C,IACnEnI,GAAE,QAAQ,GAAGoI,UAAYpI,EAAE,QAAQ,GAAGoI,UAAUxH,QAAQsH,EAAS;;AAGjElI,EAAE,QAAQkF,SAAS,cAAgB8C;;;;;AASpC,QAASK,KACR,GACCC,GADGC,EAAKrI,EAASsI,cAAc,KAE/BC,GACCC,gBAAkB,oBAClBC,WAAa,eACbC,YAAc,gBACdC,aAAe,iBACfvB,UAAY;;AAIdpH,EAAS4I,KAAKC,aAAaR,EAAI,KAE/B,KAAK,GAAIS,KAAKP,GACTF,EAAGU,MAAMD,KAAO5I,IACnBmI,EAAGU,MAAMD,GAAK,2BACdV,EAAQrI,EAAOiJ,iBAAiBX,GAAIY,iBAAiBV,EAAWO,IAMlE,OAFA9I,GAAS4I,KAAKM,YAAYb,GAElBD,IAAUlI,GAAakI,EAAMxH,OAAS,GAAe,SAAVwH;;;AAMpD,QAASe,GAAcC,GACtBA,EAAQpE,SAAS,YAAYqE,UAAU,4CAA8C3F,EAAe0F,GAAW;;;AAMhH,QAAS1F,GAAe7C,GACvB,GAAIyI,GAAgBhG,CAEpB,IAAGjD,EAAQkJ,YAAclJ,EAAQmJ,cAAc,CAC9C,GAAIC,GAAWC,SAAS7I,EAAQ4C,IAAI,gBAAkBiG,SAAS7I,EAAQ4C,IAAI,kBAC3E6F,GAAiBhG,EAAemG,EAGjC,MAAOH;;;AAOR,QAASK;;AAER,GAAIhJ,GAAiBZ,EAAOS,SAASC,KAAKC,QAAQ,IAAK,IACnDG,EAAUf,EAAE,qCAAqCa,EAAc,KAEhEA,GAAcC;AAChBK,EAAWJ;;;;;;AA0Cb,QAAS+I,GAAiBvD,GACzB,GAAIlF,GAAIkF,EAAMwD,aAEd,IAAGC,EAAc3I,GAAG;;AAEnBkF,EAAMxE,gBAEc/B,GAAE,8BAEtB,KAAK8E,EAAU;AACd,GAAImF,GAAcC,EAAc7I,EAChC8I,GAAYF,EAAe,EAC3BG,EAAYH,EAAe;;AAIvB9J,EAAKkK,IAAIC,EAAcH,GAAcnK,EAAEC,GAAQwD,SAAW,IAAMlD,EAAQgK,mBAEvED,EAAcH,EACjB/H,EAAGE,kBAEO6H,EAAYG,GACtBlI,EAAGC;;;;AAWR,QAAS2H,GAAc3I;;AAEtB,MAAgC,mBAAlBA,GAAEmJ,aAAgD,SAAjBnJ,EAAEmJ;;;AAOlD,QAASC,GAAkBlE,GAC1B,GAAIlF,GAAIkF,EAAMwD,aAEd,IAAGC,EAAc3I,GAAG,CACnB,GAAI4I,GAAcC,EAAc7I,EAChCiJ,GAAcL,EAAe,EAC7BS,EAAcT,EAAe;;;AAQ/B,QAASU,KACLC;;AAEFC,UAAYC,IAEZ9K,EAAEE,GAAU6K,IAAI,cAAiBF,UAAUG,MAAMC,GAAG,cAAgBJ,UAAUG,KAAMP,GACpFzK,EAAEE,GAAU6K,IAAI,aAAeF,UAAUK,MAAMD,GAAG,aAAeJ,UAAUK,KAAMpB;;;AAOnF,QAASqB,KACLP;;AAEFC,UAAYC,IAEZ9K,EAAEE,GAAU6K,IAAI,cAAgBF,UAAUG,MAC1ChL,EAAEE,GAAU6K,IAAI,aAAeF,UAAUK;;;;AAQ3C,QAASJ,KACR,GAAIM;;AAYJ,MARCA,GADEnL,EAAOoL,cACGL,KAAM,cAAeE,KAAM,gBAK3BF,KAAM,gBAAiBE,KAAM;;;;AAU3C,QAAShB,GAAc7I,GACtB,GAAIiK;;AAWJ,MATAA,GAAOC,EAAwB,mBAAZlK,GAAEmK,QAA0BnK,EAAEmK,OAASnK,EAAEoK,OAASpK,EAAEmK,MAAQnK,EAAEqK,QAAQ,GAAGF,MAC5FF,EAAOK,EAAwB,mBAAZtK,GAAEoK,QAA0BpK,EAAEmK,OAASnK,EAAEoK,OAASpK,EAAEoK,MAAQpK,EAAEqK,QAAQ,GAAGD,MAGzFb,GAAWZ,EAAc3I,KAC3BiK,EAAOC,EAAIlK,EAAEqK,QAAQ,GAAGF,MACxBF,EAAOK,EAAItK,EAAEqK,QAAQ,GAAGD,OAGlBH,EAtzBR,GAAIlJ,GAAKpC,EAAEK,GAAGC;;AAGdC,EAAUP,EAAE4L,QACXC,kBAAqB,EACrBlG,eAAkB,IAClBE,OAAU,cACV6B,MAAQ,EACRoE,iBACAhE,WACAL,YAAc,EACdzE,mBAAsB,QACtB+I,gBAAmB,OACnBC,sBACAC,YAAc,EACdC,SAAW,EACXjI,MAAQ,EACRwF,WAAc,EACdC,cAAiB,EACjByC,cAAiB,KACjBC,qBAAwB,KACxB1K,mBAAqB,EACrB6I,iBAAoB;;AAGpB8B,gBAAmB,cACnBC,aAAgB,WAChBC,cAAiB;;AAGjB9G,UAAa,KACbH,QAAW,KACXkH,YAAe,KACfzI,YAAe,MACbxD;;;;AAKH,GAAImF,GAAc,IAEdkF,EAAY,gBAAkB3K,IAAYwM,UAAUC,iBAAmB,GAAOD,UAAwB;;AAG5E,cAA1BlM,EAAQgM,eACXvM,EAAEO,EAAQgM,eAAerH,SAAS,YAGN,aAAzB3E,EAAQ+L,cACXtM,EAAEO,EAAQ+L,cAAcpH,SAAS,UAGlC,IAEIyH,GAFAnI,EAAiBxE,EAAE,YAAYgB,KAAK,eAAeF,OACnDgE,GAAW,EAEXtB,EAAexD,EAAEC,GAAQwD,QAG7B4C,KACAsE;;AAGGpK,EAAQ0D,OACV1D,EAAQ0D,KAAOoE,KAGhBrI,EAAE,cAAc2D,KACfiJ,SAAa,SACbnJ,OAAW;;AAIoB,gBAA5BlD,EAAQ8L,iBACXrM,EAAEO,EAAQ8L,iBAAiB3I,KAAK,WAC/B1D,EAAE0C,MAAMwC,SAAS;;AAKf3E,EAAQkH,aACXzH,EAAE,QAAQ6M,OAAO,6CACjBF,EAAM3M,EAAE,oBAER2M,EAAIhJ,IAAI,QAASpD,EAAQwL,iBACzBY,EAAIzH,SAAS3E,EAAQyC,qBAGtBhD,EAAE,uBAAuB2D,KACxBmJ,MAAS,MACT3I,SAAY,WACZV,OAAU,OACVsJ,mBAAoB,SAGrB/M,EAAE,aAAa2D,KACdsB,MAAS;AACTb,IAAO,IACP2I,mBAAoB,OACpBC,eAAgB,SAGjBhN,EAAE,YAAY2D,KACbqB,KAAQ,IACRZ,IAAO,IACP2I,mBAAoB,OACpBC,eAAgB,SAIjBhN,EAAE,+CAA+C0D,KAAK,WACrD,GAAI8D,GAAexH,EAAE0C,MAAMD;;AAmB3B,IAjBGlC,EAAQkJ,YAAclJ,EAAQmJ,gBAChC1J,EAAE0C,MAAMiB,IAAI,UAAWpD,EAAQkJ,WAAc,MAAQlJ,EAAQmJ,cAAgB,MAG1B,mBAAzCnJ,GAAQuL,cAActE,IAChCxH,EAAE0C,MAAMiB,IAAI,mBAAoBpD,EAAQuL,cAActE,IAGV,mBAAlCjH,GAAQuH,QAAQN,IAC1BxH,EAAE0C,MAAMuK,KAAK,cAAe1M,EAAQuH,QAAQN,IAG1CjH,EAAQsL,kBACVxC,EAAcrJ,EAAE0C,OAId1C,EAAE0C,MAAMwK,QAAQ,YAAYpM,QAAUP,EAAQkH,WAAY,CAC5D,GAAI0F,GAAO,EACR5M,GAAQuH,QAAQhH,SAClBqM,EAAO5M,EAAQuH,QAAQN,GAExB,IAAI1E,GAAUvC,EAAQyL,mBAAmBxE,EACnB,oBAAZ1E,KACTA,EAAU,IAEPvC,EAAQkH,YACXkF,EAAI3L,KAAK,MAAM6L,OAAO,qBAAuB/J,EAAU,eAAiBqK,EAAO;;AAMlFnN,EAAE,aAAaoN,KAAMpN,EAAE,aAAagB,KAAK,eAAeqM,MAAMC,WAE9DtN,EAAE,+CAA+C0D,KAAK,WACrD,GAAI8D,GAAexH,EAAE0C,MAAMD,OAE3BzC,GAAE0C,MAAMiB,KACPF,OAAU,UAIP+D,GAAgBjH,EAAQkH;;AAE3BkF,EAAI3L,KAAK,MAAM4B,GAAG4E,GAAcxG,KAAK,KAAKkE,SAAS,YAElDqI,UAAUC,KAAK;;AAGbxN,EAAE,+BAA+Bc,SACpCd,EAAE,aAAagB,KAAK,eAAeyM,OAAOvI,SAAS,UACnDlF,EAAE,YAAYgB,KAAK,eAAe0M,QAAQxI,SAAS;;AAIjD3E,EAAQkH,YACVkF,EAAIhJ,IAAI,aAAc,IAAOgJ,EAAIlJ,SAAS,EAAK,MAEhDzD,EAAE8D,WAAYvD,EAAQiM,cAAiBjM,EAAQiM,YAAYxI,KAAMtB;;AAGjEmB;;AAGAkE,IAEA/H,EAAEC,GAAQgL,GAAG,OAAQ,WACpBpB;;;AAOF7J,EAAEC,GAAQgL,GAAG,aAAczK;;;AAqB3BR,EAAEE,GAAUyN,QAAQvM,EAGpB,IAAIG;;;AAgEJvB,EAAEE,GAAU0N,UAAU,SAASvM,GAC9B,GAAe,GAAZA,EAAEwM,OAEJ,MADAxM,GAAEU,kBACK;;AAWT/B,EAAEE,GAAU+K,GAAG,QAAS,qBAAsBzI;;AAc9CxC,EAAEE,GAAU+K,IACX6C,WAAYjL,EACZkL,WAAY3K,GACV,uBAGA7C,EAAQ6L,uBACVpM,EAAEE,GAAU+K,GAAG,aAAc1K,EAAQ6L,qBAAsB,WAC1DhK,EAAG4L,wBAAuB,KAG3BhO,EAAEE,GAAU+K,GAAG,aAAc1K,EAAQ6L,qBAAsB,WAC1DhK,EAAG4L,wBAAuB;;AAM5BhO,EAAEC,GAAQgL,GAAG,SAAU1H,GAyBvBnB,EAAGC,cAAgB,WAClB,GAAI4L,GAAOjO,EAAE,+BAA+BiO,KAAK,gBAE7CA,EAAKnN,QAAUP,EAAQ2L,UAC1B+B,EAAOjO,EAAE,wBAAwByN,QAG9BQ,EAAKnN,QACRK,EAAW8M,IAIb7L,EAAGE,gBAAkB,WACpB,GAAI4L,GAAOlO,EAAE,+BAA+BkO,KAAK,gBAE7CA,EAAKpN,QAAUP,EAAQ0L,aAC1BiC,EAAOlO,EAAE,wBAAwB0N,SAG/BQ,EAAKpN,QACPK,EAAW+M,IAIb9L,EAAGG,OAAS,SAAUxB,GACrB,GAAI4G,GAAU,EAGbA,GADEwG,MAAMpN,GACEf,EAAE,0BAA0Be,EAAQ,MAEpCf,EAAE,wBAAwB4C,GAAK7B,EAAS,GAGnDI,EAAWwG;;;AAqSZvF,EAAGgM,qBAAuB,SAAU3N,GACnCF,EAAQmB,kBAAoBjB;;;AAM7B2B,EAAG4L,uBAAyB,SAAUvN,GAClCA,EACF4F,IAEAL;;;AAOF5D,EAAGiM,kBAAoB,SAAS5N,GAC/BF,EAAQoF,eAAiBlF,EAK1B,IAAI6J,GAAc,EACdI,EAAc,EACdP,EAAY,EACZC,EAAY;;;AAiIhBhI,EAAGkM,QAAU,WACZlM,EAAGgM,sBAAqB,GACxBhM,EAAG4L,wBAAuB,GAC1B7C,IAEAnL,EAAEC,GACA8K,IAAI,aAAcvK,GAClBuK,IAAI,SAAUxH,GAEhBvD,EAAEE,GACA6K,IAAI,aAAc,uBAClBA,IAAI,aAAc,uBAClBA,IAAI,QAAS;;;AAMhB3I,EAAGmM,MAAQ,WACVnM,EAAGgM,sBAAqB,GACxBhM,EAAG4L,wBAAuB,GAC1BrD,IAEA3K,EAAEC,GACAgL,GAAG,aAAczK,GACjByK,GAAG,SAAU1H,GAEfvD,EAAEE,GACA+K,GAAG,aAAc,sBAAuBpI,GACxCoI,GAAG,aAAc,sBAAuB7H,GACxC6H,GAAG,QAAS,qBAAsBzI,MAIpCgM,OAAQvO,OAAQC,SAAUC","file":"jquery.multiscroll.min.js","sourcesContent":["/*!\r\n * multiscroll.js 0.1.9\r\n * https://github.com/alvarotrigo/multiscroll.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\n(function($, window, document, Math, undefined) {\r\n\r\n\t$.fn.multiscroll = function(options) {\r\n\t\tvar MS = $.fn.multiscroll;\r\n\r\n\t\t// Create some defaults, extending them with any options that were provided\r\n\t\toptions = $.extend({\r\n\t\t\t'verticalCentered' : true,\r\n\t\t\t'scrollingSpeed': 700,\r\n\t\t\t'easing': 'easeInQuart',\r\n\t\t\t'menu': false,\r\n\t\t\t'sectionsColor': [],\r\n\t\t\t'anchors':[],\r\n\t\t\t'navigation': false,\r\n\t\t\t'navigationPosition': 'right',\r\n\t\t\t'navigationColor': '#000',\r\n\t\t\t'navigationTooltips': [],\r\n\t\t\t'loopBottom': false,\r\n\t\t\t'loopTop': false,\r\n\t\t\t'css3': false,\r\n\t\t\t'paddingTop': 0,\r\n\t\t\t'paddingBottom': 0,\r\n\t\t\t'fixedElements': null,\r\n\t\t\t'normalScrollElements': null,\r\n\t\t\t'keyboardScrolling': true,\r\n\t\t\t'touchSensitivity': 5,\r\n\r\n\t\t\t// Custom selectors\r\n\t\t\t'sectionSelector': '.ms-section',\r\n\t\t\t'leftSelector': '.ms-left',\r\n\t\t\t'rightSelector': '.ms-right',\r\n\r\n\t\t\t//events\r\n\t\t\t'afterLoad': null,\r\n\t\t\t'onLeave': null,\r\n\t\t\t'afterRender': null,\r\n\t\t\t'afterResize': null\r\n\t\t}, options);\r\n\r\n\t\t//Defines the delay to take place before being able to scroll to the next section\r\n\t\t//BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and\r\n\t\t//Apple devices (laptops, mouses...)\r\n\t\tvar scrollDelay = 600;\r\n\r\n\t\tvar isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));\r\n\r\n\t\t// adding class namef for right and left blocks\r\n\t\tif (options.rightSelector !== '.ms-right') {\r\n\t\t\t$(options.rightSelector).addClass('ms-right');\r\n\t\t}\r\n\r\n\t\tif (options.leftSelector !== '.ms-left') {\r\n\t\t\t$(options.leftSelector).addClass('ms-left');\r\n\t\t}\r\n\r\n\t\tvar numberSections = $('.ms-left').find('.ms-section').length;\r\n\t\tvar isMoving = false;\r\n\t\tvar nav;\r\n\t\tvar windowHeight = $(window).height();\r\n\r\n\r\n\t\taddMouseWheelHandler();\r\n\t\taddTouchHandler();\r\n\r\n\t\t//if css3 is not supported, it will use jQuery animations\r\n\t\tif(options.css3){\r\n\t\t\toptions.css3 = support3d();\r\n\t\t}\r\n\r\n\t\t$('html, body').css({\r\n\t\t\t'overflow' : 'hidden',\r\n\t\t\t'height' : '100%'\r\n\t\t});\r\n\r\n\t\t//adding class names to each sections\r\n\t\tif (options.sectionSelector !== '.ms-section') {\r\n\t\t\t$(options.sectionSelector).each(function(){\r\n\t\t\t\t$(this).addClass('ms-section');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//creating the navigation dots\r\n\t\tif (options.navigation) {\r\n\t\t\t$('body').append('<div id=\"multiscroll-nav\"><ul></ul></div>');\r\n\t\t\tnav = $('#multiscroll-nav');\r\n\r\n\t\t\tnav.css('color', options.navigationColor);\r\n\t\t\tnav.addClass(options.navigationPosition);\r\n\t\t}\r\n\r\n\t\t$('.ms-right, .ms-left').css({\r\n\t\t\t'width': '50%',\r\n\t\t\t'position': 'absolute',\r\n\t\t\t'height': '100%',\r\n\t\t\t'-ms-touch-action': 'none'\r\n\t\t});\r\n\r\n\t\t$('.ms-right').css({\r\n\t\t\t'right': '1px', //http://stackoverflow.com/questions/23675457/chrome-and-opera-creating-small-padding-when-using-displaytable\r\n\t\t\t'top': '0',\r\n\t\t\t'-ms-touch-action': 'none',\r\n\t\t\t'touch-action': 'none'\r\n\t\t});\r\n\r\n\t\t$('.ms-left').css({\r\n\t\t\t'left': '0',\r\n\t\t\t'top': '0',\r\n\t\t\t'-ms-touch-action': 'none',\r\n\t\t\t'touch-action': 'none'\r\n\t\t});\r\n\r\n\r\n\t\t$('.ms-left .ms-section, .ms-right .ms-section').each(function(){\r\n\t\t\tvar sectionIndex = $(this).index();\r\n\r\n\t\t\tif(options.paddingTop || options.paddingBottom){\r\n\t\t\t\t$(this).css('padding', options.paddingTop  + ' 0 ' + options.paddingBottom + ' 0');\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof options.sectionsColor[sectionIndex] !==  'undefined') {\r\n\t\t\t\t$(this).css('background-color', options.sectionsColor[sectionIndex]);\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof options.anchors[sectionIndex] !== 'undefined') {\r\n\t\t\t\t$(this).attr('data-anchor', options.anchors[sectionIndex]);\r\n\t\t\t}\r\n\r\n\t\t\tif(options.verticalCentered){\r\n\t\t\t\taddTableClass($(this));\r\n\t\t\t}\r\n\r\n\t\t\t//only for the left panel\r\n\t\t\tif($(this).closest('.ms-left').length && options.navigation) {\r\n\t\t\t\tvar link = '';\r\n\t\t\t\tif(options.anchors.length){\r\n\t\t\t\t\tlink = options.anchors[sectionIndex];\r\n\t\t\t\t}\r\n\t\t\t\tvar tooltip = options.navigationTooltips[sectionIndex];\r\n\t\t\t\tif(typeof tooltip === 'undefined'){\r\n\t\t\t\t\ttooltip = '';\r\n\t\t\t\t}\r\n\t\t\t\tif (options.navigation) {\r\n\t\t\t\t\tnav.find('ul').append('<li data-tooltip=\"' + tooltip + '\"><a href=\"#' + link + '\"><span></span></a></li>');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//inverting the right panel\r\n\t\t$('.ms-right').html( $('.ms-right').find('.ms-section').get().reverse());\r\n\r\n\t\t$('.ms-left .ms-section, .ms-right .ms-section').each(function(){\r\n\t\t\tvar sectionIndex = $(this).index();\r\n\r\n\t\t\t$(this).css({\r\n\t\t\t\t'height': '100%'\r\n\t\t\t});\r\n\r\n\r\n\t\t\tif(!sectionIndex && options.navigation ){\r\n\t\t\t\t//activating the navigation bullet\r\n\t\t\t\tnav.find('li').eq(sectionIndex).find('a').addClass('active');\r\n\t\t\t}\r\n\t\t}).promise().done(function(){\r\n\r\n\t\t\t//if no active section is defined, the 1st one will be the default one\r\n\t\t\tif(!$('.ms-left .ms-section.active').length){\r\n\t\t\t\t$('.ms-right').find('.ms-section').last().addClass('active');\r\n\t\t\t\t$('.ms-left').find('.ms-section').first().addClass('active');\r\n\t\t\t}\r\n\r\n\t\t\t//vertical centered of the navigation + first bullet active\r\n\t\t\tif(options.navigation){\r\n\t\t\t\tnav.css('margin-top', '-' + (nav.height()/2) + 'px');\r\n\t\t\t}\r\n\t\t\t$.isFunction( options.afterRender ) && options.afterRender.call( this);\r\n\r\n\t\t\t//scrolling to the defined active section and adjusting right and left panels\r\n\t\t\tsilentScroll();\r\n\r\n\t\t\t//setting the class for the body element\r\n\t\t\tsetBodyClass();\r\n\r\n\t\t\t$(window).on('load', function() {\r\n\t\t\t\tscrollToAnchor();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\r\n\t\t//detecting any change on the URL to scroll to the given anchor link\r\n\t\t//(a way to detect back history button as we play with the hashes on the URL)\r\n\t\t$(window).on('hashchange', hashChangeHandler);\r\n\r\n\t\tfunction hashChangeHandler(){\r\n\t\t\tvar value =  window.location.hash.replace('#', '');\r\n\t\t\tvar sectionAnchor = value;\r\n\r\n\t\t\tif(sectionAnchor.length){\r\n\t\t\t\tvar section = $('.ms-left').find('[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n\t\t\t\tvar isFirstScrollMove = (typeof lastScrolledDestiny === 'undefined' );\r\n\r\n\t\t\t\tif (isFirstScrollMove || sectionAnchor !== lastScrolledDestiny){\r\n\t\t\t\t\tscrollPage(section);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\t/**\r\n\t\t* Sliding with arrow keys, both, vertical and horizontal\r\n\t\t*/\r\n\t\t$(document).keydown(keydownHandler);\r\n\r\n\r\n\t\tvar keydownId;\r\n\t\tfunction keydownHandler(e) {\r\n\t\t\tclearTimeout(keydownId);\r\n\r\n\t\t\tvar activeElement = $(document.activeElement);\r\n\r\n\t\t\tif(!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select') &&\r\n\t\t\t\toptions.keyboardScrolling){\r\n\t\t\t\tvar keyCode = e.which;\r\n\r\n\t\t\t\t//preventing the scroll with arrow keys & spacebar & Page Up & Down keys\r\n\t\t\t\tvar keyControls = [40, 38, 32, 33, 34];\r\n\t\t\t\tif($.inArray(keyCode, keyControls) > -1){\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tkeydownId = setTimeout(function(){\r\n\t\t\t\t\tonkeydown(e);\r\n\t\t\t\t},150);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Sliding with arrow keys, both, vertical and horizontal\r\n\t\t */\r\n\t\tfunction onkeydown(e){\r\n\t\t\tvar shiftPressed = e.shiftKey;\r\n\r\n\t\t\tswitch (e.which) {\r\n\t\t\t\t//up\r\n\t\t\t\tcase 38:\r\n\t\t\t\tcase 33:\r\n\t\t\t\t\tMS.moveSectionUp();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t//down\r\n\t\t\t\tcase 32: //spacebar\r\n\t\t\t\t\tif(shiftPressed){\r\n\t\t\t\t\t\tMS.moveSectionUp();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\tcase 40:\r\n\t\t\t\tcase 34:\r\n\t\t\t\t\tMS.moveSectionDown();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t//Home\r\n\t\t\t\tcase 36:\r\n\t\t\t\t\tMS.moveTo(1);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t//End\r\n\t\t\t\tcase 35:\r\n\t\t\t\t\tMS.moveTo( $('.ms-left .ms-section').length);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn; // exit this handler for other keys\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Disabling any action when pressing of the mouse wheel (Chrome, IE, Opera, Safari)\r\n\t\t */\r\n\t\t$(document).mousedown(function(e) {\r\n\t\t\tif(e.button == 1){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tfunction navClickHandler(e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar index = $(this).parent().index();\r\n\t\t\tscrollPage($('.ms-left .ms-section').eq(index));\r\n\t\t}\r\n\r\n\t\t//navigation action\r\n\t\t$(document).on('click', '#multiscroll-nav a', navClickHandler);\r\n\r\n\t\tfunction navMouseEnterHandler() {\r\n\t\t\tvar tooltip = $(this).data('tooltip');\r\n\t\t\t$('<div class=\"multiscroll-tooltip ' + options.navigationPosition +'\">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);\r\n\t\t}\r\n\r\n\t\tfunction navMouseLeaveHandler() {\r\n\t\t\t$(this).find('.multiscroll-tooltip').fadeOut(200, function() {\r\n\t\t\t\t$(this).remove();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//navigation tooltips\r\n\t\t$(document).on({\r\n\t\t\tmouseenter: navMouseEnterHandler,\r\n\t\t\tmouseleave: navMouseLeaveHandler\r\n\t\t}, '#multiscroll-nav li');\r\n\r\n\r\n\t\tif(options.normalScrollElements){\r\n\t\t\t$(document).on('mouseenter', options.normalScrollElements, function () {\r\n\t\t\t\tMS.setMouseWheelScrolling(false);\r\n\t\t\t});\r\n\r\n\t\t\t$(document).on('mouseleave', options.normalScrollElements, function(){\r\n\t\t\t\tMS.setMouseWheelScrolling(true);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\t//when resizing the site, we adjust the heights of the sections\r\n\t\t$(window).on('resize', doneResizing);\r\n\r\n\t\t/**\r\n\t\t * When resizing is finished, we adjust the slides sizes and positions\r\n\t\t */\r\n\t\tfunction doneResizing() {\r\n\t\t\twindowHeight = $(window).height();\r\n\t\t\t$('.ms-tableCell').each(function() {\r\n\t\t\t\t$(this).css({ height: getTableHeight($(this).parent()) });\r\n\t\t\t});\r\n\t\t\tsilentScroll();\r\n\t\t\t$.isFunction( options.afterResize ) && options.afterResize.call( this);\r\n\t\t}\r\n\r\n\t\tfunction silentScroll(){\r\n\t\t\t//moving the right section to the bottom\r\n\t\t\tif(options.css3){\r\n\t\t\t\ttransformContainer($('.ms-left'), 'translate3d(0px, -' + $('.ms-left').find('.ms-section.active').position().top + 'px, 0px)', false);\r\n\t\t\t\ttransformContainer($('.ms-right'), 'translate3d(0px, -' + $('.ms-right').find('.ms-section.active').position().top + 'px, 0px)', false);\r\n\t\t\t}else{\r\n\t\t\t\t$('.ms-left').css('top', -$('.ms-left').find('.ms-section.active').position().top );\r\n\t\t\t\t$('.ms-right').css('top', -$('.ms-right').find('.ms-section.active').position().top );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tMS.moveSectionUp = function(){\r\n\t\t\tvar prev = $('.ms-left .ms-section.active').prev('.ms-section');\r\n\r\n\t\t\tif(!prev.length && options.loopTop){\r\n\t\t\t\tprev = $('.ms-left .ms-section').last();\r\n\t\t\t}\r\n\r\n\t\t\tif (prev.length) {\r\n\t\t\t\tscrollPage(prev);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tMS.moveSectionDown = function (){\r\n\t\t\tvar next = $('.ms-left .ms-section.active').next('.ms-section');\r\n\r\n\t\t\tif(!next.length && options.loopBottom ){\r\n\t\t\t\tnext = $('.ms-left .ms-section').first();\r\n\t\t\t}\r\n\r\n\t\t\tif(next.length){\r\n\t\t\t\tscrollPage(next);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tMS.moveTo = function (section){\r\n\t\t\tvar destiny = '';\r\n\r\n\t\t\tif(isNaN(section)){\r\n\t\t\t\tdestiny = $('.ms-left [data-anchor=\"'+section+'\"]');\r\n\t\t\t}else{\r\n\t\t\t\tdestiny = $('.ms-left .ms-section').eq( (section -1) );\r\n\t\t\t}\r\n\r\n\t\t\tscrollPage(destiny);\r\n\t\t};\r\n\r\n\t\tfunction scrollPage(leftDestination){\r\n\t\t\tvar leftDestinationIndex = leftDestination.index();\r\n\t\t\tvar rightDestination = $('.ms-right').find('.ms-section').eq( numberSections -1 - leftDestinationIndex);\r\n\t\t\tvar rightDestinationIndex = numberSections - 1 - leftDestinationIndex;\r\n\t\t\tvar anchorLink  = leftDestination.data('anchor');\r\n\t\t\tvar activeSection = $('.ms-left .ms-section.active');\r\n\t\t\tvar leavingSection = activeSection.index() + 1;\r\n\t\t\tvar yMovement = getYmovement(leftDestination);\r\n\r\n\t\t\t//preventing from activating the MouseWheelHandler event\r\n\t\t\t//more than once if the page is scrolling\r\n\t\t\tisMoving = true;\r\n\r\n\t\t\tvar topPos = {\r\n\t\t\t\t'left' : leftDestination.position().top,\r\n\t\t\t\t'right': rightDestination.position().top\r\n\t\t\t};\r\n\r\n\t\t\trightDestination.addClass('active').siblings().removeClass('active');\r\n\t\t\tleftDestination.addClass('active').siblings().removeClass('active');\r\n\r\n\t\t\tsetURLHash(anchorLink);\r\n\r\n\t\t\t// Use CSS3 translate functionality or...\r\n\t\t\tif (options.css3){\r\n\t\t\t\t//callback (onLeave)\r\n\t\t\t\t$.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);\r\n\r\n\t\t\t\tvar translate3dLeft = 'translate3d(0px, -' + topPos['left'] + 'px, 0px)';\r\n\t\t\t\tvar translate3dRight = 'translate3d(0px, -' + topPos['right'] + 'px, 0px)';\r\n\r\n\t\t\t\ttransformContainer($('.ms-left'), translate3dLeft, true);\r\n\t\t\t\ttransformContainer($('.ms-right'), translate3dRight, true);\r\n\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t//callback (afterLoad)\r\n\t\t\t\t\t$.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));\r\n\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tisMoving = false;\r\n\t\t\t\t\t}, scrollDelay);\r\n\t\t\t\t}, options.scrollingSpeed);\r\n\t\t\t}else{\r\n\t\t\t\t//callback (onLeave)\r\n\t\t\t\t$.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);\r\n\r\n\t\t\t\t$('.ms-left').animate({\r\n\t\t\t\t\t'top': -topPos['left']\r\n\t\t\t\t}, options.scrollingSpeed, options.easing, function(){\r\n\t\t\t\t\t$.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));\r\n\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tisMoving = false;\r\n\t\t\t\t\t}, scrollDelay);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$('.ms-right').animate({\r\n\t\t\t\t\t'top': -topPos['right']\r\n\t\t\t\t}, options.scrollingSpeed, options.easing);\r\n\t\t\t}\r\n\r\n\t\t\t//flag to avoid callingn `scrollPage()` twice in case of using anchor links\r\n\t\t\tlastScrolledDestiny = anchorLink;\r\n\r\n\t\t\tactivateMenuElement(anchorLink);\r\n\t\t\tactivateNavDots(anchorLink, leftDestinationIndex);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t* Removes the auto scrolling action fired by the mouse wheel and tackpad.\r\n\t\t* After this function is called, the mousewheel and trackpad movements won't scroll through sections.\r\n\t\t*/\r\n\t\tfunction removeMouseWheelHandler(){\r\n\t\t\tif (document.addEventListener) {\r\n\t\t\t\tdocument.removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n\t\t\t\tdocument.removeEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n\t\t\t} else {\r\n\t\t\t\tdocument.detachEvent(\"onmousewheel\", MouseWheelHandler); //IE 6/7/8\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t* Adds the auto scrolling action for the mouse wheel and tackpad.\r\n\t\t* After this function is called, the mousewheel and trackpad movements will scroll through sections\r\n\t\t*/\r\n\t\tfunction addMouseWheelHandler(){\r\n\t\t\tif (document.addEventListener) {\r\n\t\t\t\tdocument.addEventListener(\"mousewheel\", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n\t\t\t\tdocument.addEventListener(\"wheel\", MouseWheelHandler, false); //Firefox\r\n\t\t\t} else {\r\n\t\t\t\tdocument.attachEvent(\"onmousewheel\", MouseWheelHandler); //IE 6/7/8\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Detecting mousewheel scrolling\r\n\t\t *\r\n\t\t * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html\r\n\t\t * http://www.sitepoint.com/html5-javascript-mouse-wheel/\r\n\t\t */\r\n\t\tfunction MouseWheelHandler(e) {\r\n\t\t\t// cross-browser wheel delta\r\n\t\t\te = window.event || e;\r\n\t\t\tvar delta = Math.max(-1, Math.min(1,\r\n\t\t\t\t\t(e.wheelDelta || -e.deltaY || -e.detail)));\r\n\r\n\t\t\tif (!isMoving) { //if theres any #\r\n\r\n\t\t\t\t//scrolling down?\r\n\t\t\t\tif (delta < 0) {\r\n\t\t\t\t\tMS.moveSectionDown();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//scrolling up?\r\n\t\t\t\telse {\r\n\t\t\t\t\tMS.moveSectionUp();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t* Adds a css3 transform property to the container class with or without animation depending on the animated param.\r\n\t\t*/\r\n\t\tfunction transformContainer(container, translate3d, animated){\r\n\t\t\tcontainer.toggleClass('ms-easing', animated);\r\n\r\n\t\t\tcontainer.css(getTransforms(translate3d));\r\n\t\t}\r\n\r\n\r\n\t\t/**\r\n\t\t* Returns the transform styles for all browsers\r\n\t\t*/\r\n\t\tfunction getTransforms(translate3d){\r\n\t\t\treturn {\r\n\t\t\t\t'-webkit-transform': translate3d,\r\n\t\t\t\t'-moz-transform': translate3d,\r\n\t\t\t\t'-ms-transform':translate3d,\r\n\t\t\t\t'transform': translate3d\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Activating the website navigation dots according to the given slide name.\r\n\t\t */\r\n\t\tfunction activateNavDots(name, sectionIndex){\r\n\t\t\tif(options.navigation){\r\n\t\t\t\t$('#multiscroll-nav').find('.active').removeClass('active');\r\n\t\t\t\tif(name){\r\n\t\t\t\t\t$('#multiscroll-nav').find('a[href=\"#' + name + '\"]').addClass('active');\r\n\t\t\t\t}else{\r\n\t\t\t\t\t$('#multiscroll-nav').find('li').eq(sectionIndex).find('a').addClass('active');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Activating the website main menu elements according to the given slide name.\r\n\t\t */\r\n\t\tfunction activateMenuElement(name){\r\n\t\t\tif(options.menu){\r\n\t\t\t\t$(options.menu).find('.active').removeClass('active');\r\n\t\t\t\t$(options.menu).find('[data-menuanchor=\"'+name+'\"]').addClass('active');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t* Retuns `up` or `down` depending on the scrolling movement to reach its destination\r\n\t\t* from the current section.\r\n\t\t*/\r\n\t\tfunction getYmovement(destiny){\r\n\t\t\tvar fromIndex = $('.ms-left .ms-section.active').index();\r\n\t\t\tvar toIndex = destiny.index();\r\n\r\n\t\t\tif(fromIndex > toIndex){\r\n\t\t\t\treturn 'up';\r\n\t\t\t}\r\n\t\t\treturn 'down';\r\n\t\t}\r\n\r\n\r\n\t\t/**\r\n\t\t* Sets the URL hash for a section with slides\r\n\t\t*/\r\n\t\tfunction setURLHash(anchorLink){\r\n\t\t\tif(options.anchors.length){\r\n\t\t\t\tlocation.hash = anchorLink;\r\n\t\t\t}\r\n\r\n\t\t\tsetBodyClass();\r\n\t\t}\r\n\r\n\t\t /**\r\n\t\t* Sets a class for the body of the page depending on the active section / slide\r\n\t\t*/\r\n\t\tfunction setBodyClass(){\r\n\t\t\tvar section = $('.ms-left .ms-section.active');\r\n\t\t\tvar sectionAnchor = section.data('anchor');\r\n\t\t\tvar sectionIndex = section.index();\r\n\r\n\t\t\tvar text = String(sectionIndex);\r\n\r\n\t\t\tif(options.anchors.length){\r\n\t\t\t\ttext = sectionAnchor;\r\n\t\t\t}\r\n\r\n\t\t\t//changing slash for dash to make it a valid CSS style\r\n\t\t\ttext = text.replace('/', '-').replace('#','');\r\n\r\n\t\t\t//removing previous anchor classes\r\n\t\t\tvar classRe = new RegExp('\\\\b\\\\s?' + 'ms-viewing' + '-[^\\\\s]+\\\\b', \"g\");\r\n\t\t\t$('body')[0].className = $('body')[0].className.replace(classRe, '');\r\n\r\n\t\t\t//adding the current anchor\r\n\t\t\t$('body').addClass('ms-viewing-' + text);\r\n\t\t}\r\n\r\n\r\n\t\t/**\r\n\t\t* Checks for translate3d support\r\n\t\t* @return boolean\r\n\t\t* http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support\r\n\t\t*/\r\n\t\tfunction support3d() {\r\n\t\t\tvar el = document.createElement('p'),\r\n\t\t\t\thas3d,\r\n\t\t\t\ttransforms = {\r\n\t\t\t\t\t'webkitTransform':'-webkit-transform',\r\n\t\t\t\t\t'OTransform':'-o-transform',\r\n\t\t\t\t\t'msTransform':'-ms-transform',\r\n\t\t\t\t\t'MozTransform':'-moz-transform',\r\n\t\t\t\t\t'transform':'transform'\r\n\t\t\t\t};\r\n\r\n\t\t\t// Add it to the body to get the computed style.\r\n\t\t\tdocument.body.insertBefore(el, null);\r\n\r\n\t\t\tfor (var t in transforms) {\r\n\t\t\t\tif (el.style[t] !== undefined) {\r\n\t\t\t\t\tel.style[t] = \"translate3d(1px,1px,1px)\";\r\n\t\t\t\t\thas3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tdocument.body.removeChild(el);\r\n\r\n\t\t\treturn (has3d !== undefined && has3d.length > 0 && has3d !== \"none\");\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t* Wraps an element in order to center it vertically by using a class style.\r\n\t\t*/\r\n\t\tfunction addTableClass(element){\r\n\t\t\telement.addClass('ms-table').wrapInner('<div class=\"ms-tableCell\" style=\"height: ' + getTableHeight(element) + 'px\" />');\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t* Gets the height of the section after removing the paddings.\r\n\t\t*/\r\n\t\tfunction getTableHeight(section){\r\n\t\t\tvar sectionHeight = windowHeight;\r\n\r\n\t\t\tif(options.paddingTop || options.paddingBottom){\r\n\t\t\t\tvar paddings = parseInt(section.css('padding-top')) + parseInt(section.css('padding-bottom'));\r\n\t\t\t\tsectionHeight = (windowHeight - paddings);\r\n\t\t\t}\r\n\r\n\t\t\treturn sectionHeight;\r\n\t\t}\r\n\r\n\r\n\t\t/**\r\n\t\t* Scrolls the page to the existent anchor in the URL\r\n\t\t*/\r\n\t\tfunction scrollToAnchor(){\r\n\t\t\t//getting the anchor link in the URL and deleting the `#`\r\n\t\t\tvar sectionAnchor =  window.location.hash.replace('#', '');\r\n\t\t\tvar section = $('.ms-left .ms-section[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n\t\t\tif(sectionAnchor.length){  //if theres any #\r\n\t\t\t\tscrollPage(section);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t* Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys\r\n\t\t*/\r\n\t\tMS.setKeyboardScrolling = function (value){\r\n\t\t\toptions.keyboardScrolling = value;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.\r\n\t\t*/\r\n\t\tMS.setMouseWheelScrolling = function (value){\r\n\t\t\tif(value){\r\n\t\t\t\taddMouseWheelHandler();\r\n\t\t\t}else{\r\n\t\t\t\tremoveMouseWheelHandler();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Defines the scrolling speed\r\n\t\t*/\r\n\t\tMS.setScrollingSpeed = function(value){\r\n\t\t\toptions.scrollingSpeed = value;\r\n\t\t};\r\n\r\n\r\n\r\n\t\tvar touchStartY = 0;\r\n\t\tvar touchStartX = 0;\r\n\t\tvar touchEndY = 0;\r\n\t\tvar touchEndX = 0;\r\n\r\n\t\t/* Detecting touch events\r\n\r\n\t\t* As we are changing the top property of the page on scrolling, we can not use the traditional way to detect it.\r\n\t\t* This way, the touchstart and the touch moves shows an small difference between them which is the\r\n\t\t* used one to determine the direction.\r\n\t\t*/\r\n\t\tfunction touchMoveHandler(event){\r\n\t\t\tvar e = event.originalEvent;\r\n\r\n\t\t\tif(isReallyTouch(e)){\r\n\t\t\t\t//preventing the easing on iOS devices\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\tvar activeSection = $('.ms-left .ms-section.active');\r\n\r\n\t\t\t\tif (!isMoving) { //if theres any #\r\n\t\t\t\t\tvar touchEvents = getEventsPage(e);\r\n\t\t\t\t\ttouchEndY = touchEvents['y'];\r\n\t\t\t\t\ttouchEndX = touchEvents['x'];\r\n\r\n\r\n\t\t\t\t\t//is the movement greater than the minimum resistance to scroll?\r\n\t\t\t\t\tif (Math.abs(touchStartY - touchEndY) > ($(window).height() / 100 * options.touchSensitivity)) {\r\n\r\n\t\t\t\t\t\tif (touchStartY > touchEndY) {\r\n\t\t\t\t\t\t\tMS.moveSectionDown();\r\n\r\n\t\t\t\t\t\t} else if (touchEndY > touchStartY) {\r\n\t\t\t\t\t\t\tMS.moveSectionUp();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t* As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen\r\n\t\t* this way we make sure that is really a touch event what IE is detecting.\r\n\t\t*/\r\n\t\tfunction isReallyTouch(e){\r\n\t\t\t//if is not IE   ||  IE is detecting `touch` or `pen`\r\n\t\t\treturn typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';\r\n\t\t}\r\n\r\n\r\n\t\t/**\r\n\t\t* Handler to get he coordinates of the starting touch\r\n\t\t*/\r\n\t\tfunction touchStartHandler(event){\r\n\t\t\tvar e = event.originalEvent;\r\n\r\n\t\t\tif(isReallyTouch(e)){\r\n\t\t\t\tvar touchEvents = getEventsPage(e);\r\n\t\t\t\ttouchStartY = touchEvents['y'];\r\n\t\t\t\ttouchStartX = touchEvents['x'];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t/**\r\n\t\t* Adds the possibility to auto scroll through sections on touch devices.\r\n\t\t*/\r\n\t\tfunction addTouchHandler(){\r\n\t\t\tif(isTouch){\r\n\t\t\t\t//Microsoft pointers\r\n\t\t\t\tMSPointer = getMSPointer();\r\n\r\n\t\t\t\t$(document).off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);\r\n\t\t\t\t$(document).off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t* Removes the auto scrolling for touch devices.\r\n\t\t*/\r\n\t\tfunction removeTouchHandler(){\r\n\t\t\tif(isTouch){\r\n\t\t\t\t//Microsoft pointers\r\n\t\t\t\tMSPointer = getMSPointer();\r\n\r\n\t\t\t\t$(document).off('touchstart ' + MSPointer.down);\r\n\t\t\t\t$(document).off('touchmove ' + MSPointer.move);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t* Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)\r\n\t\t* http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx\r\n\t\t*/\r\n\t\tfunction getMSPointer(){\r\n\t\t\tvar pointer;\r\n\r\n\t\t\t//IE >= 11\r\n\t\t\tif(window.PointerEvent){\r\n\t\t\t\tpointer = { down: \"pointerdown\", move: \"pointermove\"};\r\n\t\t\t}\r\n\r\n\t\t\t//IE < 11\r\n\t\t\telse{\r\n\t\t\t\tpointer = { down: \"MSPointerDown\", move: \"MSPointerMove\"};\r\n\t\t\t}\r\n\r\n\t\t\treturn pointer;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t* Gets the pageX and pageY properties depending on the browser.\r\n\t\t* https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854\r\n\t\t*/\r\n\t\tfunction getEventsPage(e){\r\n\t\t\tvar events = [];\r\n\r\n\t\t\tevents.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);\r\n\t\t\tevents.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);\r\n\r\n\t\t\t//in touch devices with scrollBar:true, e.pageY is detected, but we have to deal with touch events. #1008\r\n\t\t\tif(isTouch && isReallyTouch(e)){\r\n\t\t\t\tevents.y = e.touches[0].pageY;\r\n\t\t\t\tevents.x = e.touches[0].pageX;\r\n\t\t\t}\r\n\r\n\t\t\treturn events;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t* Destroy multiscroll.js plugin's events\r\n\t\t*/\r\n\t\tMS.destroy = function() {\r\n\t\t\tMS.setKeyboardScrolling(false);\r\n\t\t\tMS.setMouseWheelScrolling(false);\r\n\t\t\tremoveTouchHandler();\r\n\r\n\t\t\t$(window)\r\n\t\t\t\t.off('hashchange', hashChangeHandler)\r\n\t\t\t\t.off('resize', doneResizing);\r\n\r\n\t\t\t$(document)\r\n\t\t\t\t.off('mouseenter', '#multiscroll-nav li')\r\n\t\t\t\t.off('mouseleave', '#multiscroll-nav li')\r\n\t\t\t\t.off('click', '#multiscroll-nav a');\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Build multiscroll.js plugin's events after destroy\r\n\t\t*/\r\n\t\tMS.build = function() {\r\n\t\t\tMS.setKeyboardScrolling(true);\r\n\t\t\tMS.setMouseWheelScrolling(true);\r\n\t\t\taddTouchHandler();\r\n\r\n\t\t\t$(window)\r\n\t\t\t\t.on('hashchange', hashChangeHandler)\r\n\t\t\t\t.on('resize', doneResizing);\r\n\r\n\t\t\t$(document)\r\n\t\t\t\t.on('mouseenter', '#multiscroll-nav li', navMouseEnterHandler)\r\n\t\t\t\t.on('mouseleave', '#multiscroll-nav li', navMouseLeaveHandler)\r\n\t\t\t\t.on('click', '#multiscroll-nav a', navClickHandler);\r\n\t\t};\r\n\r\n\t};\r\n})(jQuery, window, document, Math);\r\n"]}
\ No newline at end of file
+{"version":3,"sources":["jquery.multiscroll.js"],"names":["$","window","document","Math","undefined","fn","multiscroll","options","MS","extend","verticalCentered","scrollingSpeed","easing","menu","sectionsColor","anchors","navigation","navigationPosition","navigationColor","navigationTooltips","loopBottom","loopTop","css3","paddingTop","paddingBottom","fixedElements","normalScrollElements","keyboardScrolling","touchSensitivity","sectionSelector","leftSelector","rightSelector","afterLoad","onLeave","afterRender","afterResize","scrollDelay","isTouchDevice","navigator","userAgent","match","isTouch","msMaxTouchPoints","addClass","nav","resizeId","keydownId","numberSections","find","length","isMoving","windowHeight","height","hashChangeHandler","sectionAnchor","location","hash","replace","section","lastScrolledDestiny","scrollPage","navClickHandler","e","preventDefault","index","this","parent","eq","navMouseEnterHandler","tooltip","data","hide","appendTo","fadeIn","navMouseLeaveHandler","fadeOut","remove","addMouseWheelHandler","addTouchHandler","has3d","el","createElement","transforms","webkitTransform","OTransform","msTransform","MozTransform","transform","t","body","insertBefore","style","getComputedStyle","getPropertyValue","removeChild","support3d","css","overflow","each","append","width","position","-ms-touch-action","right","top","touch-action","left","element","sectionIndex","attr","wrapInner","getTableHeight","closest","link","html","get","reverse","promise","done","last","first","isFunction","call","silentScroll","setBodyClass","on","keydown","clearTimeout","activeElement","is","keyCode","which","inArray","setTimeout","shiftPressed","shiftKey","moveSectionUp","moveSectionDown","moveTo","onkeydown","mousedown","button","mouseenter","mouseleave","setMouseWheelScrolling","currentHeight","$window","abs","previousHeight","max","reBuild","windowsHeight","resizing","scrollOverflow","scrollBarHandler","createScrollBarForAll","transformContainer","leftDestination","leftDestinationIndex","rightDestination","anchorLink","leavingSection","yMovement","destiny","fromIndex","toIndex","getYmovement","name","topPos","siblings","removeClass","setURLHash","translate3dLeft","translate3dRight","animate","addEventListener","MouseWheelHandler","attachEvent","event","delta","min","wheelDelta","deltaY","detail","container","translate3d","animated","toggleClass","-webkit-transform","-moz-transform","-ms-transform","text","String","classRe","RegExp","className","sectionHeight","paddings","parseInt","prev","next","isNaN","setKeyboardScrolling","value","removeEventListener","detachEvent","setScrollingSpeed","touchStartY","touchEndY","touchMoveHandler","originalEvent","isReallyTouch","touchEvents","getEventsPage","pointerType","touchStartHandler","MSPointer","getMSPointer","off","down","move","PointerEvent","events","y","pageY","pageX","touches","x","destroy","doneResizing","build","jQuery"],"mappings":"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","file":"jquery.multiscroll.min.js","sourcesContent":["/*!\r\n * multiscroll.js 0.1.9\r\n * https://github.com/alvarotrigo/multiscroll.js\r\n * @license MIT licensed\r\n *\r\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\r\n */\r\n(function($, window, document, Math, undefined) {\r\n\r\n    $.fn.multiscroll = function(options) {\r\n        var MS = $.fn.multiscroll;\r\n\r\n        // Create some defaults, extending them with any options that were provided\r\n        options = $.extend({\r\n            'verticalCentered' : true,\r\n            'scrollingSpeed': 700,\r\n            'easing': 'easeInQuart',\r\n            'menu': false,\r\n            'sectionsColor': [],\r\n            'anchors':[],\r\n            'navigation': false,\r\n            'navigationPosition': 'right',\r\n            'navigationColor': '#000',\r\n            'navigationTooltips': [],\r\n            'loopBottom': false,\r\n            'loopTop': false,\r\n            'css3': false,\r\n            'paddingTop': 0,\r\n            'paddingBottom': 0,\r\n            'fixedElements': null,\r\n            'normalScrollElements': null,\r\n            'keyboardScrolling': true,\r\n            'touchSensitivity': 5,\r\n\r\n            // Custom selectors\r\n            'sectionSelector': '.ms-section',\r\n            'leftSelector': '.ms-left',\r\n            'rightSelector': '.ms-right',\r\n\r\n            //events\r\n            'afterLoad': null,\r\n            'onLeave': null,\r\n            'afterRender': null,\r\n            'afterResize': null\r\n        }, options);\r\n\r\n        //Defines the delay to take place before being able to scroll to the next section\r\n        //BE CAREFUL! Not recommened to change it under 400 for a good behavior in laptops and\r\n        //Apple devices (laptops, mouses...)\r\n        var scrollDelay = 600;\r\n\r\n        var isTouchDevice = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/);\r\n        var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));\r\n\r\n        // adding class namef for right and left blocks\r\n        if (options.rightSelector !== '.ms-right') {\r\n            $(options.rightSelector).addClass('ms-right');\r\n        }\r\n\r\n        if (options.leftSelector !== '.ms-left') {\r\n            $(options.leftSelector).addClass('ms-left');\r\n        }\r\n\r\n        var numberSections = $('.ms-left').find('.ms-section').length;\r\n        var isMoving = false;\r\n        var nav;\r\n        var windowHeight = $(window).height();\r\n\r\n        //timeouts\r\n        var resizeId;\r\n\r\n        addMouseWheelHandler();\r\n        addTouchHandler();\r\n\r\n        //if css3 is not supported, it will use jQuery animations\r\n        if(options.css3){\r\n            options.css3 = support3d();\r\n        }\r\n\r\n        $('html, body').css({\r\n            'overflow' : 'hidden',\r\n            'height' : '100%'\r\n        });\r\n\r\n        //adding class names to each sections\r\n        if (options.sectionSelector !== '.ms-section') {\r\n            $(options.sectionSelector).each(function(){\r\n                $(this).addClass('ms-section');\r\n            });\r\n        }\r\n\r\n        //creating the navigation dots\r\n        if (options.navigation) {\r\n            $('body').append('<div id=\"multiscroll-nav\"><ul></ul></div>');\r\n            nav = $('#multiscroll-nav');\r\n\r\n            nav.css('color', options.navigationColor);\r\n            nav.addClass(options.navigationPosition);\r\n        }\r\n\r\n        $('.ms-right, .ms-left').css({\r\n            'width': '50%',\r\n            'position': 'absolute',\r\n            'height': '100%',\r\n            '-ms-touch-action': 'none'\r\n        });\r\n\r\n        $('.ms-right').css({\r\n            'right': '1px', //http://stackoverflow.com/questions/23675457/chrome-and-opera-creating-small-padding-when-using-displaytable\r\n            'top': '0',\r\n            '-ms-touch-action': 'none',\r\n            'touch-action': 'none'\r\n        });\r\n\r\n        $('.ms-left').css({\r\n            'left': '0',\r\n            'top': '0',\r\n            '-ms-touch-action': 'none',\r\n            'touch-action': 'none'\r\n        });\r\n\r\n\r\n        $('.ms-left .ms-section, .ms-right .ms-section').each(function(){\r\n            var sectionIndex = $(this).index();\r\n\r\n            if(options.paddingTop || options.paddingBottom){\r\n                $(this).css('padding', options.paddingTop  + ' 0 ' + options.paddingBottom + ' 0');\r\n            }\r\n\r\n            if (typeof options.sectionsColor[sectionIndex] !==  'undefined') {\r\n                $(this).css('background-color', options.sectionsColor[sectionIndex]);\r\n            }\r\n\r\n            if (typeof options.anchors[sectionIndex] !== 'undefined') {\r\n                $(this).attr('data-anchor', options.anchors[sectionIndex]);\r\n            }\r\n\r\n            if(options.verticalCentered){\r\n                addTableClass($(this));\r\n            }\r\n\r\n            //only for the left panel\r\n            if($(this).closest('.ms-left').length && options.navigation) {\r\n                var link = '';\r\n                if(options.anchors.length){\r\n                    link = options.anchors[sectionIndex];\r\n                }\r\n                var tooltip = options.navigationTooltips[sectionIndex];\r\n                if(typeof tooltip === 'undefined'){\r\n                    tooltip = '';\r\n                }\r\n                if (options.navigation) {\r\n                    nav.find('ul').append('<li data-tooltip=\"' + tooltip + '\"><a href=\"#' + link + '\"><span></span></a></li>');\r\n                }\r\n            }\r\n        });\r\n\r\n        //inverting the right panel\r\n        $('.ms-right').html( $('.ms-right').find('.ms-section').get().reverse());\r\n\r\n        $('.ms-left .ms-section, .ms-right .ms-section').each(function(){\r\n            var sectionIndex = $(this).index();\r\n\r\n            $(this).css({\r\n                'height': '100%'\r\n            });\r\n\r\n\r\n            if(!sectionIndex && options.navigation ){\r\n                //activating the navigation bullet\r\n                nav.find('li').eq(sectionIndex).find('a').addClass('active');\r\n            }\r\n        }).promise().done(function(){\r\n\r\n            //if no active section is defined, the 1st one will be the default one\r\n            if(!$('.ms-left .ms-section.active').length){\r\n                $('.ms-right').find('.ms-section').last().addClass('active');\r\n                $('.ms-left').find('.ms-section').first().addClass('active');\r\n            }\r\n\r\n            //vertical centered of the navigation + first bullet active\r\n            if(options.navigation){\r\n                nav.css('margin-top', '-' + (nav.height()/2) + 'px');\r\n            }\r\n            $.isFunction( options.afterRender ) && options.afterRender.call( this);\r\n\r\n            //scrolling to the defined active section and adjusting right and left panels\r\n            silentScroll();\r\n\r\n            //setting the class for the body element\r\n            setBodyClass();\r\n\r\n            $(window).on('load', function() {\r\n                scrollToAnchor();\r\n            });\r\n        });\r\n\r\n\r\n        //detecting any change on the URL to scroll to the given anchor link\r\n        //(a way to detect back history button as we play with the hashes on the URL)\r\n        $(window).on('hashchange', hashChangeHandler);\r\n\r\n        function hashChangeHandler(){\r\n            var value =  window.location.hash.replace('#', '');\r\n            var sectionAnchor = value;\r\n\r\n            if(sectionAnchor.length){\r\n                var section = $('.ms-left').find('[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n                var isFirstScrollMove = (typeof lastScrolledDestiny === 'undefined' );\r\n\r\n                if (isFirstScrollMove || sectionAnchor !== lastScrolledDestiny){\r\n                    scrollPage(section);\r\n                }\r\n            }\r\n        };\r\n\r\n\r\n        /**\r\n        * Sliding with arrow keys, both, vertical and horizontal\r\n        */\r\n        $(document).keydown(keydownHandler);\r\n\r\n\r\n        var keydownId;\r\n        function keydownHandler(e) {\r\n            clearTimeout(keydownId);\r\n\r\n            var activeElement = $(document.activeElement);\r\n\r\n            if(!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select') &&\r\n                options.keyboardScrolling){\r\n                var keyCode = e.which;\r\n\r\n                //preventing the scroll with arrow keys & spacebar & Page Up & Down keys\r\n                var keyControls = [40, 38, 32, 33, 34];\r\n                if($.inArray(keyCode, keyControls) > -1){\r\n                    e.preventDefault();\r\n                }\r\n\r\n                keydownId = setTimeout(function(){\r\n                    onkeydown(e);\r\n                },150);\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Sliding with arrow keys, both, vertical and horizontal\r\n         */\r\n        function onkeydown(e){\r\n            var shiftPressed = e.shiftKey;\r\n\r\n            switch (e.which) {\r\n                //up\r\n                case 38:\r\n                case 33:\r\n                    MS.moveSectionUp();\r\n                    break;\r\n\r\n                //down\r\n                case 32: //spacebar\r\n                    if(shiftPressed){\r\n                        MS.moveSectionUp();\r\n                        break;\r\n                    }\r\n                case 40:\r\n                case 34:\r\n                    MS.moveSectionDown();\r\n                    break;\r\n\r\n                //Home\r\n                case 36:\r\n                    MS.moveTo(1);\r\n                    break;\r\n\r\n                //End\r\n                case 35:\r\n                    MS.moveTo( $('.ms-left .ms-section').length);\r\n                    break;\r\n\r\n                default:\r\n                    return; // exit this handler for other keys\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Disabling any action when pressing of the mouse wheel (Chrome, IE, Opera, Safari)\r\n         */\r\n        $(document).mousedown(function(e) {\r\n            if(e.button == 1){\r\n                e.preventDefault();\r\n                return false;\r\n            }\r\n        });\r\n\r\n        function navClickHandler(e) {\r\n            e.preventDefault();\r\n            var index = $(this).parent().index();\r\n            scrollPage($('.ms-left .ms-section').eq(index));\r\n        }\r\n\r\n        //navigation action\r\n        $(document).on('click', '#multiscroll-nav a', navClickHandler);\r\n\r\n        function navMouseEnterHandler() {\r\n            var tooltip = $(this).data('tooltip');\r\n            $('<div class=\"multiscroll-tooltip ' + options.navigationPosition +'\">' + tooltip + '</div>').hide().appendTo($(this)).fadeIn(200);\r\n        }\r\n\r\n        function navMouseLeaveHandler() {\r\n            $(this).find('.multiscroll-tooltip').fadeOut(200, function() {\r\n                $(this).remove();\r\n            });\r\n        }\r\n\r\n        //navigation tooltips\r\n        $(document).on({\r\n            mouseenter: navMouseEnterHandler,\r\n            mouseleave: navMouseLeaveHandler\r\n        }, '#multiscroll-nav li');\r\n\r\n\r\n        if(options.normalScrollElements){\r\n            $(document).on('mouseenter', options.normalScrollElements, function () {\r\n                MS.setMouseWheelScrolling(false);\r\n            });\r\n\r\n            $(document).on('mouseleave', options.normalScrollElements, function(){\r\n                MS.setMouseWheelScrolling(true);\r\n            });\r\n        }\r\n\r\n\r\n        //when resizing the site, we adjust the heights of the sections\r\n        $(window).on('resize', resizeHandler);\r\n\r\n\r\n        var previousHeight = windowsHeight;\r\n\r\n        /**\r\n         * When resizing is finished, we adjust the slides sizes and positions\r\n         */\r\n        function resizeHandler() {\r\n            // rebuild immediately on touch devices\r\n            if (isTouchDevice) {\r\n                var activeElement = $(document.activeElement);\r\n\r\n                //if the keyboard is NOT visible\r\n                if (!activeElement.is('textarea') && !activeElement.is('input') && !activeElement.is('select')) {\r\n                    var currentHeight = $window.height();\r\n\r\n                    //making sure the change in the viewport size is enough to force a rebuild. (20 % of the window to avoid problems when hidding scroll bars)\r\n                    if( Math.abs(currentHeight - previousHeight) > (20 * Math.max(previousHeight, currentHeight) / 100) ){\r\n                        reBuild(true);\r\n                        previousHeight = currentHeight;\r\n                    }\r\n                }\r\n            }else{\r\n                //in order to call the functions only when the resize is finished\r\n                //http://stackoverflow.com/questions/4298612/jquery-how-to-call-resize-event-only-once-its-finished-resizing\r\n                clearTimeout(resizeId);\r\n\r\n                resizeId = setTimeout(function(){\r\n                    reBuild(true);\r\n                }, 350);\r\n            }\r\n        }\r\n\r\n        /**\r\n         * When resizing is finished, we adjust the slides sizes and positions\r\n         */\r\n        function reBuild(resizing){\r\n            windowHeight = $(window).height();\r\n            $('.ms-tableCell').each(function() {\r\n                $(this).css({ height: getTableHeight($(this).parent()) });\r\n            });\r\n\r\n            if(options.scrollOverflow){\r\n                scrollBarHandler.createScrollBarForAll();\r\n            }\r\n\r\n            silentScroll();\r\n            $.isFunction( options.afterResize ) && options.afterResize.call( this);\r\n        }\r\n\r\n        function silentScroll(){\r\n            //moving the right section to the bottom\r\n            if(options.css3){\r\n                transformContainer($('.ms-left'), 'translate3d(0px, -' + $('.ms-left').find('.ms-section.active').position().top + 'px, 0px)', false);\r\n                transformContainer($('.ms-right'), 'translate3d(0px, -' + $('.ms-right').find('.ms-section.active').position().top + 'px, 0px)', false);\r\n            }else{\r\n                $('.ms-left').css('top', -$('.ms-left').find('.ms-section.active').position().top );\r\n                $('.ms-right').css('top', -$('.ms-right').find('.ms-section.active').position().top );\r\n            }\r\n        }\r\n\r\n        MS.moveSectionUp = function(){\r\n            var prev = $('.ms-left .ms-section.active').prev('.ms-section');\r\n\r\n            if(!prev.length && options.loopTop){\r\n                prev = $('.ms-left .ms-section').last();\r\n            }\r\n\r\n            if (prev.length) {\r\n                scrollPage(prev);\r\n            }\r\n        };\r\n\r\n        MS.moveSectionDown = function (){\r\n            var next = $('.ms-left .ms-section.active').next('.ms-section');\r\n\r\n            if(!next.length && options.loopBottom ){\r\n                next = $('.ms-left .ms-section').first();\r\n            }\r\n\r\n            if(next.length){\r\n                scrollPage(next);\r\n            }\r\n        };\r\n\r\n        MS.moveTo = function (section){\r\n            var destiny = '';\r\n\r\n            if(isNaN(section)){\r\n                destiny = $('.ms-left [data-anchor=\"'+section+'\"]');\r\n            }else{\r\n                destiny = $('.ms-left .ms-section').eq( (section -1) );\r\n            }\r\n\r\n            scrollPage(destiny);\r\n        };\r\n\r\n        function scrollPage(leftDestination){\r\n            var leftDestinationIndex = leftDestination.index();\r\n            var rightDestination = $('.ms-right').find('.ms-section').eq( numberSections -1 - leftDestinationIndex);\r\n            var rightDestinationIndex = numberSections - 1 - leftDestinationIndex;\r\n            var anchorLink  = leftDestination.data('anchor');\r\n            var activeSection = $('.ms-left .ms-section.active');\r\n            var leavingSection = activeSection.index() + 1;\r\n            var yMovement = getYmovement(leftDestination);\r\n\r\n            //preventing from activating the MouseWheelHandler event\r\n            //more than once if the page is scrolling\r\n            isMoving = true;\r\n\r\n            var topPos = {\r\n                'left' : leftDestination.position().top,\r\n                'right': rightDestination.position().top\r\n            };\r\n\r\n            rightDestination.addClass('active').siblings().removeClass('active');\r\n            leftDestination.addClass('active').siblings().removeClass('active');\r\n\r\n            setURLHash(anchorLink);\r\n\r\n            // Use CSS3 translate functionality or...\r\n            if (options.css3){\r\n                //callback (onLeave)\r\n                $.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);\r\n\r\n                var translate3dLeft = 'translate3d(0px, -' + topPos['left'] + 'px, 0px)';\r\n                var translate3dRight = 'translate3d(0px, -' + topPos['right'] + 'px, 0px)';\r\n\r\n                transformContainer($('.ms-left'), translate3dLeft, true);\r\n                transformContainer($('.ms-right'), translate3dRight, true);\r\n\r\n                setTimeout(function () {\r\n                    //callback (afterLoad)\r\n                    $.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));\r\n\r\n                    setTimeout(function () {\r\n                        isMoving = false;\r\n                    }, scrollDelay);\r\n                }, options.scrollingSpeed);\r\n            }else{\r\n                //callback (onLeave)\r\n                $.isFunction(options.onLeave) && options.onLeave.call(this, leavingSection, (leftDestinationIndex + 1), yMovement);\r\n\r\n                $('.ms-left').animate({\r\n                    'top': -topPos['left']\r\n                }, options.scrollingSpeed, options.easing, function(){\r\n                    $.isFunction(options.afterLoad) && options.afterLoad.call(this, anchorLink, (leftDestinationIndex + 1));\r\n\r\n                    setTimeout(function () {\r\n                        isMoving = false;\r\n                    }, scrollDelay);\r\n                });\r\n\r\n                $('.ms-right').animate({\r\n                    'top': -topPos['right']\r\n                }, options.scrollingSpeed, options.easing);\r\n            }\r\n\r\n            //flag to avoid callingn `scrollPage()` twice in case of using anchor links\r\n            lastScrolledDestiny = anchorLink;\r\n\r\n            activateMenuElement(anchorLink);\r\n            activateNavDots(anchorLink, leftDestinationIndex);\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling action fired by the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements won't scroll through sections.\r\n        */\r\n        function removeMouseWheelHandler(){\r\n            if (document.addEventListener) {\r\n                document.removeEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                document.removeEventListener('wheel', MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                document.detachEvent(\"onmousewheel\", MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds the auto scrolling action for the mouse wheel and tackpad.\r\n        * After this function is called, the mousewheel and trackpad movements will scroll through sections\r\n        */\r\n        function addMouseWheelHandler(){\r\n            if (document.addEventListener) {\r\n                document.addEventListener(\"mousewheel\", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\r\n                document.addEventListener(\"wheel\", MouseWheelHandler, false); //Firefox\r\n            } else {\r\n                document.attachEvent(\"onmousewheel\", MouseWheelHandler); //IE 6/7/8\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Detecting mousewheel scrolling\r\n         *\r\n         * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html\r\n         * http://www.sitepoint.com/html5-javascript-mouse-wheel/\r\n         */\r\n        function MouseWheelHandler(e) {\r\n            // cross-browser wheel delta\r\n            e = window.event || e;\r\n            var delta = Math.max(-1, Math.min(1,\r\n                    (e.wheelDelta || -e.deltaY || -e.detail)));\r\n\r\n            if (!isMoving) { //if theres any #\r\n\r\n                //scrolling down?\r\n                if (delta < 0) {\r\n                    MS.moveSectionDown();\r\n                }\r\n\r\n                //scrolling up?\r\n                else {\r\n                    MS.moveSectionUp();\r\n                }\r\n            }\r\n\r\n\r\n            return false;\r\n        }\r\n\r\n        /**\r\n        * Adds a css3 transform property to the container class with or without animation depending on the animated param.\r\n        */\r\n        function transformContainer(container, translate3d, animated){\r\n            container.toggleClass('ms-easing', animated);\r\n\r\n            container.css(getTransforms(translate3d));\r\n        }\r\n\r\n\r\n        /**\r\n        * Returns the transform styles for all browsers\r\n        */\r\n        function getTransforms(translate3d){\r\n            return {\r\n                '-webkit-transform': translate3d,\r\n                '-moz-transform': translate3d,\r\n                '-ms-transform':translate3d,\r\n                'transform': translate3d\r\n            };\r\n        }\r\n\r\n        /**\r\n         * Activating the website navigation dots according to the given slide name.\r\n         */\r\n        function activateNavDots(name, sectionIndex){\r\n            if(options.navigation){\r\n                $('#multiscroll-nav').find('.active').removeClass('active');\r\n                if(name){\r\n                    $('#multiscroll-nav').find('a[href=\"#' + name + '\"]').addClass('active');\r\n                }else{\r\n                    $('#multiscroll-nav').find('li').eq(sectionIndex).find('a').addClass('active');\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * Activating the website main menu elements according to the given slide name.\r\n         */\r\n        function activateMenuElement(name){\r\n            if(options.menu){\r\n                $(options.menu).find('.active').removeClass('active');\r\n                $(options.menu).find('[data-menuanchor=\"'+name+'\"]').addClass('active');\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Retuns `up` or `down` depending on the scrolling movement to reach its destination\r\n        * from the current section.\r\n        */\r\n        function getYmovement(destiny){\r\n            var fromIndex = $('.ms-left .ms-section.active').index();\r\n            var toIndex = destiny.index();\r\n\r\n            if(fromIndex > toIndex){\r\n                return 'up';\r\n            }\r\n            return 'down';\r\n        }\r\n\r\n\r\n        /**\r\n        * Sets the URL hash for a section with slides\r\n        */\r\n        function setURLHash(anchorLink){\r\n            if(options.anchors.length){\r\n                location.hash = anchorLink;\r\n            }\r\n\r\n            setBodyClass();\r\n        }\r\n\r\n         /**\r\n        * Sets a class for the body of the page depending on the active section / slide\r\n        */\r\n        function setBodyClass(){\r\n            var section = $('.ms-left .ms-section.active');\r\n            var sectionAnchor = section.data('anchor');\r\n            var sectionIndex = section.index();\r\n\r\n            var text = String(sectionIndex);\r\n\r\n            if(options.anchors.length){\r\n                text = sectionAnchor;\r\n            }\r\n\r\n            //changing slash for dash to make it a valid CSS style\r\n            text = text.replace('/', '-').replace('#','');\r\n\r\n            //removing previous anchor classes\r\n            var classRe = new RegExp('\\\\b\\\\s?' + 'ms-viewing' + '-[^\\\\s]+\\\\b', \"g\");\r\n            $('body')[0].className = $('body')[0].className.replace(classRe, '');\r\n\r\n            //adding the current anchor\r\n            $('body').addClass('ms-viewing-' + text);\r\n        }\r\n\r\n\r\n        /**\r\n        * Checks for translate3d support\r\n        * @return boolean\r\n        * http://stackoverflow.com/questions/5661671/detecting-transform-translate3d-support\r\n        */\r\n        function support3d() {\r\n            var el = document.createElement('p'),\r\n                has3d,\r\n                transforms = {\r\n                    'webkitTransform':'-webkit-transform',\r\n                    'OTransform':'-o-transform',\r\n                    'msTransform':'-ms-transform',\r\n                    'MozTransform':'-moz-transform',\r\n                    'transform':'transform'\r\n                };\r\n\r\n            // Add it to the body to get the computed style.\r\n            document.body.insertBefore(el, null);\r\n\r\n            for (var t in transforms) {\r\n                if (el.style[t] !== undefined) {\r\n                    el.style[t] = \"translate3d(1px,1px,1px)\";\r\n                    has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);\r\n                }\r\n            }\r\n\r\n            document.body.removeChild(el);\r\n\r\n            return (has3d !== undefined && has3d.length > 0 && has3d !== \"none\");\r\n        }\r\n\r\n        /**\r\n        * Wraps an element in order to center it vertically by using a class style.\r\n        */\r\n        function addTableClass(element){\r\n            element.addClass('ms-table').wrapInner('<div class=\"ms-tableCell\" style=\"height: ' + getTableHeight(element) + 'px\" />');\r\n        }\r\n\r\n        /**\r\n        * Gets the height of the section after removing the paddings.\r\n        */\r\n        function getTableHeight(section){\r\n            var sectionHeight = windowHeight;\r\n\r\n            if(options.paddingTop || options.paddingBottom){\r\n                var paddings = parseInt(section.css('padding-top')) + parseInt(section.css('padding-bottom'));\r\n                sectionHeight = (windowHeight - paddings);\r\n            }\r\n\r\n            return sectionHeight;\r\n        }\r\n\r\n\r\n        /**\r\n        * Scrolls the page to the existent anchor in the URL\r\n        */\r\n        function scrollToAnchor(){\r\n            //getting the anchor link in the URL and deleting the `#`\r\n            var sectionAnchor =  window.location.hash.replace('#', '');\r\n            var section = $('.ms-left .ms-section[data-anchor=\"'+sectionAnchor+'\"]');\r\n\r\n            if(sectionAnchor.length){  //if theres any #\r\n                scrollPage(section);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the keyboard arrow keys\r\n        */\r\n        MS.setKeyboardScrolling = function (value){\r\n            options.keyboardScrolling = value;\r\n        };\r\n\r\n        /**\r\n        * Adds or remove the possiblity of scrolling through sections by using the mouse wheel or the trackpad.\r\n        */\r\n        MS.setMouseWheelScrolling = function (value){\r\n            if(value){\r\n                addMouseWheelHandler();\r\n            }else{\r\n                removeMouseWheelHandler();\r\n            }\r\n        };\r\n\r\n        /**\r\n        * Defines the scrolling speed\r\n        */\r\n        MS.setScrollingSpeed = function(value){\r\n            options.scrollingSpeed = value;\r\n        };\r\n\r\n\r\n\r\n        var touchStartY = 0;\r\n        var touchStartX = 0;\r\n        var touchEndY = 0;\r\n        var touchEndX = 0;\r\n\r\n        /* Detecting touch events\r\n\r\n        * As we are changing the top property of the page on scrolling, we can not use the traditional way to detect it.\r\n        * This way, the touchstart and the touch moves shows an small difference between them which is the\r\n        * used one to determine the direction.\r\n        */\r\n        function touchMoveHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            if(isReallyTouch(e)){\r\n                //preventing the easing on iOS devices\r\n                event.preventDefault();\r\n\r\n                var activeSection = $('.ms-left .ms-section.active');\r\n\r\n                if (!isMoving) { //if theres any #\r\n                    var touchEvents = getEventsPage(e);\r\n                    touchEndY = touchEvents['y'];\r\n                    touchEndX = touchEvents['x'];\r\n\r\n\r\n                    //is the movement greater than the minimum resistance to scroll?\r\n                    if (Math.abs(touchStartY - touchEndY) > ($(window).height() / 100 * options.touchSensitivity)) {\r\n\r\n                        if (touchStartY > touchEndY) {\r\n                            MS.moveSectionDown();\r\n\r\n                        } else if (touchEndY > touchStartY) {\r\n                            MS.moveSectionUp();\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n        * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen\r\n        * this way we make sure that is really a touch event what IE is detecting.\r\n        */\r\n        function isReallyTouch(e){\r\n            //if is not IE   ||  IE is detecting `touch` or `pen`\r\n            return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';\r\n        }\r\n\r\n\r\n        /**\r\n        * Handler to get he coordinates of the starting touch\r\n        */\r\n        function touchStartHandler(event){\r\n            var e = event.originalEvent;\r\n\r\n            if(isReallyTouch(e)){\r\n                var touchEvents = getEventsPage(e);\r\n                touchStartY = touchEvents['y'];\r\n                touchStartX = touchEvents['x'];\r\n            }\r\n        }\r\n\r\n\r\n        /**\r\n        * Adds the possibility to auto scroll through sections on touch devices.\r\n        */\r\n        function addTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                MSPointer = getMSPointer();\r\n\r\n                $(document).off('touchstart ' +  MSPointer.down).on('touchstart ' + MSPointer.down, touchStartHandler);\r\n                $(document).off('touchmove ' + MSPointer.move).on('touchmove ' + MSPointer.move, touchMoveHandler);\r\n            }\r\n        }\r\n\r\n        /**\r\n        * Removes the auto scrolling for touch devices.\r\n        */\r\n        function removeTouchHandler(){\r\n            if(isTouch){\r\n                //Microsoft pointers\r\n                MSPointer = getMSPointer();\r\n\r\n                $(document).off('touchstart ' + MSPointer.down);\r\n                $(document).off('touchmove ' + MSPointer.move);\r\n            }\r\n        }\r\n\r\n        /*\r\n        * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)\r\n        * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx\r\n        */\r\n        function getMSPointer(){\r\n            var pointer;\r\n\r\n            //IE >= 11\r\n            if(window.PointerEvent){\r\n                pointer = { down: \"pointerdown\", move: \"pointermove\"};\r\n            }\r\n\r\n            //IE < 11\r\n            else{\r\n                pointer = { down: \"MSPointerDown\", move: \"MSPointerMove\"};\r\n            }\r\n\r\n            return pointer;\r\n        }\r\n\r\n        /**\r\n        * Gets the pageX and pageY properties depending on the browser.\r\n        * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854\r\n        */\r\n        function getEventsPage(e){\r\n            var events = [];\r\n\r\n            events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);\r\n            events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);\r\n\r\n            //in touch devices with scrollBar:true, e.pageY is detected, but we have to deal with touch events. #1008\r\n            if(isTouch && isReallyTouch(e)){\r\n                events.y = e.touches[0].pageY;\r\n                events.x = e.touches[0].pageX;\r\n            }\r\n\r\n            return events;\r\n        }\r\n\r\n        /**\r\n        * Destroy multiscroll.js plugin's events\r\n        */\r\n        MS.destroy = function() {\r\n            MS.setKeyboardScrolling(false);\r\n            MS.setMouseWheelScrolling(false);\r\n            removeTouchHandler();\r\n\r\n            $(window)\r\n                .off('hashchange', hashChangeHandler)\r\n                .off('resize', doneResizing);\r\n\r\n            $(document)\r\n                .off('mouseenter', '#multiscroll-nav li')\r\n                .off('mouseleave', '#multiscroll-nav li')\r\n                .off('click', '#multiscroll-nav a');\r\n        };\r\n\r\n        /**\r\n        * Build multiscroll.js plugin's events after destroy\r\n        */\r\n        MS.build = function() {\r\n            MS.setKeyboardScrolling(true);\r\n            MS.setMouseWheelScrolling(true);\r\n            addTouchHandler();\r\n\r\n            $(window)\r\n                .on('hashchange', hashChangeHandler)\r\n                .on('resize', doneResizing);\r\n\r\n            $(document)\r\n                .on('mouseenter', '#multiscroll-nav li', navMouseEnterHandler)\r\n                .on('mouseleave', '#multiscroll-nav li', navMouseLeaveHandler)\r\n                .on('click', '#multiscroll-nav a', navClickHandler);\r\n        };\r\n\r\n    };\r\n})(jQuery, window, document, Math);\r\n"]}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..3598585
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,3734 @@
+{
+  "name": "multiscroll.js",
+  "version": "0.1.9",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "@gulp-sourcemaps/identity-map": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.1.tgz",
+      "integrity": "sha1-z6I7xYQPkQTOMqZedNt+epdLvuE=",
+      "dev": true,
+      "requires": {
+        "acorn": "5.5.0",
+        "css": "2.2.1",
+        "normalize-path": "2.1.1",
+        "source-map": "0.5.7",
+        "through2": "2.0.3"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "@gulp-sourcemaps/map-sources": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz",
+      "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=",
+      "dev": true,
+      "requires": {
+        "normalize-path": "2.1.1",
+        "through2": "2.0.3"
+      }
+    },
+    "acorn": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.0.tgz",
+      "integrity": "sha512-arn53F07VXmls4o4pUhSzBa4fvaagPRe7AVZ8l7NHxFWUie2DsuFSBMMNAkgzRlOhEhzAnxeKyaWVzOH4xqp/g==",
+      "dev": true
+    },
+    "amdefine": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+      "dev": true
+    },
+    "atob": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz",
+      "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=",
+      "dev": true
+    },
+    "commander": {
+      "version": "2.14.1",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
+      "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==",
+      "dev": true
+    },
+    "convert-source-map": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
+      "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
+      "dev": true
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+      "dev": true
+    },
+    "css": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz",
+      "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=",
+      "dev": true,
+      "requires": {
+        "inherits": "2.0.3",
+        "source-map": "0.1.43",
+        "source-map-resolve": "0.3.1",
+        "urix": "0.1.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.1.43",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+          "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+          "dev": true,
+          "requires": {
+            "amdefine": "1.0.1"
+          }
+        }
+      }
+    },
+    "d": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+      "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+      "dev": true,
+      "requires": {
+        "es5-ext": "0.10.39"
+      }
+    },
+    "debug": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+      "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+      "dev": true,
+      "requires": {
+        "ms": "2.0.0"
+      }
+    },
+    "debug-fabulous": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.0.0.tgz",
+      "integrity": "sha512-dsd50qQ1atDeurcxL7XOjPp4nZCGZzWIONDujDXzl1atSyC3hMbZD+v6440etw+Vt0Pr8ce4TQzHfX3KZM05Mw==",
+      "dev": true,
+      "requires": {
+        "debug": "3.1.0",
+        "memoizee": "0.4.12",
+        "object-assign": "4.1.1"
+      }
+    },
+    "detect-newline": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
+      "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=",
+      "dev": true
+    },
+    "es5-ext": {
+      "version": "0.10.39",
+      "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.39.tgz",
+      "integrity": "sha512-AlaXZhPHl0po/uxMx1tyrlt1O86M6D5iVaDH8UgLfgek4kXTX6vzsRfJQWC2Ku+aG8pkw1XWzh9eTkwfVrsD5g==",
+      "dev": true,
+      "requires": {
+        "es6-iterator": "2.0.3",
+        "es6-symbol": "3.1.1"
+      }
+    },
+    "es6-iterator": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+      "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.39",
+        "es6-symbol": "3.1.1"
+      }
+    },
+    "es6-symbol": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+      "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.39"
+      }
+    },
+    "es6-weak-map": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+      "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.39",
+        "es6-iterator": "2.0.3",
+        "es6-symbol": "3.1.1"
+      }
+    },
+    "event-emitter": {
+      "version": "0.3.5",
+      "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+      "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.39"
+      }
+    },
+    "glogg": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz",
+      "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==",
+      "dev": true,
+      "requires": {
+        "sparkles": "1.0.0"
+      }
+    },
+    "graceful-fs": {
+      "version": "4.1.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+      "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+      "dev": true
+    },
+    "gulp": {
+      "version": "3.9.1",
+      "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
+      "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=",
+      "dev": true,
+      "requires": {
+        "archy": "1.0.0",
+        "chalk": "1.1.3",
+        "deprecated": "0.0.1",
+        "gulp-util": "3.0.7",
+        "interpret": "1.0.1",
+        "liftoff": "2.3.0",
+        "minimist": "1.2.0",
+        "orchestrator": "0.3.7",
+        "pretty-hrtime": "1.0.2",
+        "semver": "4.3.6",
+        "tildify": "1.2.0",
+        "v8flags": "2.0.11",
+        "vinyl-fs": "0.3.14"
+      },
+      "dependencies": {
+        "archy": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
+          "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "2.2.1",
+            "escape-string-regexp": "1.0.5",
+            "has-ansi": "2.0.0",
+            "strip-ansi": "3.0.1",
+            "supports-color": "2.0.0"
+          },
+          "dependencies": {
+            "ansi-styles": {
+              "version": "2.2.1",
+              "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+              "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+              "dev": true
+            },
+            "escape-string-regexp": {
+              "version": "1.0.5",
+              "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+              "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+              "dev": true
+            },
+            "has-ansi": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+              "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "2.0.0"
+              },
+              "dependencies": {
+                "ansi-regex": {
+                  "version": "2.0.0",
+                  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
+                  "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=",
+                  "dev": true
+                }
+              }
+            },
+            "strip-ansi": {
+              "version": "3.0.1",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+              "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "2.0.0"
+              },
+              "dependencies": {
+                "ansi-regex": {
+                  "version": "2.0.0",
+                  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
+                  "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=",
+                  "dev": true
+                }
+              }
+            },
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "deprecated": {
+          "version": "0.0.1",
+          "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz",
+          "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=",
+          "dev": true
+        },
+        "gulp-util": {
+          "version": "3.0.7",
+          "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz",
+          "integrity": "sha1-eJJcS4+LSQBawBoBHFV+YhiUHLs=",
+          "dev": true,
+          "requires": {
+            "array-differ": "1.0.0",
+            "array-uniq": "1.0.3",
+            "beeper": "1.1.0",
+            "chalk": "1.1.3",
+            "dateformat": "1.0.12",
+            "fancy-log": "1.2.0",
+            "gulplog": "1.0.0",
+            "has-gulplog": "0.1.0",
+            "lodash._reescape": "3.0.0",
+            "lodash._reevaluate": "3.0.0",
+            "lodash._reinterpolate": "3.0.0",
+            "lodash.template": "3.6.2",
+            "minimist": "1.2.0",
+            "multipipe": "0.1.2",
+            "object-assign": "3.0.0",
+            "replace-ext": "0.0.1",
+            "through2": "2.0.1",
+            "vinyl": "0.5.3"
+          },
+          "dependencies": {
+            "array-differ": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+              "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
+              "dev": true
+            },
+            "array-uniq": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+              "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+              "dev": true
+            },
+            "beeper": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.0.tgz",
+              "integrity": "sha1-nub8HOf1T+qs585zWIsFYDeGaiw=",
+              "dev": true
+            },
+            "dateformat": {
+              "version": "1.0.12",
+              "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
+              "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
+              "dev": true,
+              "requires": {
+                "get-stdin": "4.0.1",
+                "meow": "3.7.0"
+              },
+              "dependencies": {
+                "get-stdin": {
+                  "version": "4.0.1",
+                  "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+                  "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+                  "dev": true
+                },
+                "meow": {
+                  "version": "3.7.0",
+                  "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+                  "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+                  "dev": true,
+                  "requires": {
+                    "camelcase-keys": "2.1.0",
+                    "decamelize": "1.2.0",
+                    "loud-rejection": "1.6.0",
+                    "map-obj": "1.0.1",
+                    "minimist": "1.2.0",
+                    "normalize-package-data": "2.3.5",
+                    "object-assign": "4.1.0",
+                    "read-pkg-up": "1.0.1",
+                    "redent": "1.0.0",
+                    "trim-newlines": "1.0.0"
+                  },
+                  "dependencies": {
+                    "camelcase-keys": {
+                      "version": "2.1.0",
+                      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+                      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+                      "dev": true,
+                      "requires": {
+                        "camelcase": "2.1.1",
+                        "map-obj": "1.0.1"
+                      },
+                      "dependencies": {
+                        "camelcase": {
+                          "version": "2.1.1",
+                          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+                          "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "decamelize": {
+                      "version": "1.2.0",
+                      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+                      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+                      "dev": true
+                    },
+                    "loud-rejection": {
+                      "version": "1.6.0",
+                      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+                      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+                      "dev": true,
+                      "requires": {
+                        "currently-unhandled": "0.4.1",
+                        "signal-exit": "3.0.1"
+                      },
+                      "dependencies": {
+                        "currently-unhandled": {
+                          "version": "0.4.1",
+                          "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+                          "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+                          "dev": true,
+                          "requires": {
+                            "array-find-index": "1.0.2"
+                          },
+                          "dependencies": {
+                            "array-find-index": {
+                              "version": "1.0.2",
+                              "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+                              "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "signal-exit": {
+                          "version": "3.0.1",
+                          "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz",
+                          "integrity": "sha1-WkyISZK2OnrNm623iUw+6c/MrYE=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "map-obj": {
+                      "version": "1.0.1",
+                      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+                      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+                      "dev": true
+                    },
+                    "normalize-package-data": {
+                      "version": "2.3.5",
+                      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+                      "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=",
+                      "dev": true,
+                      "requires": {
+                        "hosted-git-info": "2.1.5",
+                        "is-builtin-module": "1.0.0",
+                        "semver": "4.3.6",
+                        "validate-npm-package-license": "3.0.1"
+                      },
+                      "dependencies": {
+                        "hosted-git-info": {
+                          "version": "2.1.5",
+                          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
+                          "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs=",
+                          "dev": true
+                        },
+                        "is-builtin-module": {
+                          "version": "1.0.0",
+                          "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+                          "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+                          "dev": true,
+                          "requires": {
+                            "builtin-modules": "1.1.1"
+                          },
+                          "dependencies": {
+                            "builtin-modules": {
+                              "version": "1.1.1",
+                              "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+                              "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "validate-npm-package-license": {
+                          "version": "3.0.1",
+                          "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+                          "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+                          "dev": true,
+                          "requires": {
+                            "spdx-correct": "1.0.2",
+                            "spdx-expression-parse": "1.0.4"
+                          },
+                          "dependencies": {
+                            "spdx-correct": {
+                              "version": "1.0.2",
+                              "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+                              "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+                              "dev": true,
+                              "requires": {
+                                "spdx-license-ids": "1.2.2"
+                              },
+                              "dependencies": {
+                                "spdx-license-ids": {
+                                  "version": "1.2.2",
+                                  "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+                                  "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+                                  "dev": true
+                                }
+                              }
+                            },
+                            "spdx-expression-parse": {
+                              "version": "1.0.4",
+                              "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+                              "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+                              "dev": true
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "object-assign": {
+                      "version": "4.1.0",
+                      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+                      "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
+                      "dev": true
+                    },
+                    "read-pkg-up": {
+                      "version": "1.0.1",
+                      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+                      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+                      "dev": true,
+                      "requires": {
+                        "find-up": "1.1.2",
+                        "read-pkg": "1.1.0"
+                      },
+                      "dependencies": {
+                        "find-up": {
+                          "version": "1.1.2",
+                          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+                          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+                          "dev": true,
+                          "requires": {
+                            "path-exists": "2.1.0",
+                            "pinkie-promise": "2.0.1"
+                          },
+                          "dependencies": {
+                            "path-exists": {
+                              "version": "2.1.0",
+                              "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+                              "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+                              "dev": true,
+                              "requires": {
+                                "pinkie-promise": "2.0.1"
+                              }
+                            },
+                            "pinkie-promise": {
+                              "version": "2.0.1",
+                              "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                              "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                              "dev": true,
+                              "requires": {
+                                "pinkie": "2.0.4"
+                              },
+                              "dependencies": {
+                                "pinkie": {
+                                  "version": "2.0.4",
+                                  "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                  "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                  "dev": true
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "read-pkg": {
+                          "version": "1.1.0",
+                          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+                          "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+                          "dev": true,
+                          "requires": {
+                            "load-json-file": "1.1.0",
+                            "normalize-package-data": "2.3.5",
+                            "path-type": "1.1.0"
+                          },
+                          "dependencies": {
+                            "load-json-file": {
+                              "version": "1.1.0",
+                              "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+                              "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+                              "dev": true,
+                              "requires": {
+                                "graceful-fs": "4.1.9",
+                                "parse-json": "2.2.0",
+                                "pify": "2.3.0",
+                                "pinkie-promise": "2.0.1",
+                                "strip-bom": "2.0.0"
+                              },
+                              "dependencies": {
+                                "graceful-fs": {
+                                  "version": "4.1.9",
+                                  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz",
+                                  "integrity": "sha1-uqy6N9GdEfnRRtNXi8mZWMN4fik=",
+                                  "dev": true
+                                },
+                                "parse-json": {
+                                  "version": "2.2.0",
+                                  "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+                                  "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+                                  "dev": true,
+                                  "requires": {
+                                    "error-ex": "1.3.0"
+                                  },
+                                  "dependencies": {
+                                    "error-ex": {
+                                      "version": "1.3.0",
+                                      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz",
+                                      "integrity": "sha1-5ntD8+gsluo6WE/+4Ln8MyXYAtk=",
+                                      "dev": true,
+                                      "requires": {
+                                        "is-arrayish": "0.2.1"
+                                      },
+                                      "dependencies": {
+                                        "is-arrayish": {
+                                          "version": "0.2.1",
+                                          "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+                                          "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+                                          "dev": true
+                                        }
+                                      }
+                                    }
+                                  }
+                                },
+                                "pify": {
+                                  "version": "2.3.0",
+                                  "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+                                  "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+                                  "dev": true
+                                },
+                                "pinkie-promise": {
+                                  "version": "2.0.1",
+                                  "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                                  "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                                  "dev": true,
+                                  "requires": {
+                                    "pinkie": "2.0.4"
+                                  },
+                                  "dependencies": {
+                                    "pinkie": {
+                                      "version": "2.0.4",
+                                      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                      "dev": true
+                                    }
+                                  }
+                                },
+                                "strip-bom": {
+                                  "version": "2.0.0",
+                                  "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+                                  "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+                                  "dev": true,
+                                  "requires": {
+                                    "is-utf8": "0.2.1"
+                                  },
+                                  "dependencies": {
+                                    "is-utf8": {
+                                      "version": "0.2.1",
+                                      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+                                      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            },
+                            "path-type": {
+                              "version": "1.1.0",
+                              "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+                              "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+                              "dev": true,
+                              "requires": {
+                                "graceful-fs": "4.1.9",
+                                "pify": "2.3.0",
+                                "pinkie-promise": "2.0.1"
+                              },
+                              "dependencies": {
+                                "graceful-fs": {
+                                  "version": "4.1.9",
+                                  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz",
+                                  "integrity": "sha1-uqy6N9GdEfnRRtNXi8mZWMN4fik=",
+                                  "dev": true
+                                },
+                                "pify": {
+                                  "version": "2.3.0",
+                                  "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+                                  "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+                                  "dev": true
+                                },
+                                "pinkie-promise": {
+                                  "version": "2.0.1",
+                                  "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                                  "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                                  "dev": true,
+                                  "requires": {
+                                    "pinkie": "2.0.4"
+                                  },
+                                  "dependencies": {
+                                    "pinkie": {
+                                      "version": "2.0.4",
+                                      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "redent": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+                      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+                      "dev": true,
+                      "requires": {
+                        "indent-string": "2.1.0",
+                        "strip-indent": "1.0.1"
+                      },
+                      "dependencies": {
+                        "indent-string": {
+                          "version": "2.1.0",
+                          "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+                          "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+                          "dev": true,
+                          "requires": {
+                            "repeating": "2.0.1"
+                          },
+                          "dependencies": {
+                            "repeating": {
+                              "version": "2.0.1",
+                              "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+                              "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+                              "dev": true,
+                              "requires": {
+                                "is-finite": "1.0.2"
+                              },
+                              "dependencies": {
+                                "is-finite": {
+                                  "version": "1.0.2",
+                                  "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+                                  "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+                                  "dev": true,
+                                  "requires": {
+                                    "number-is-nan": "1.0.1"
+                                  },
+                                  "dependencies": {
+                                    "number-is-nan": {
+                                      "version": "1.0.1",
+                                      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+                                      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "strip-indent": {
+                          "version": "1.0.1",
+                          "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+                          "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+                          "dev": true,
+                          "requires": {
+                            "get-stdin": "4.0.1"
+                          }
+                        }
+                      }
+                    },
+                    "trim-newlines": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+                      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "fancy-log": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.2.0.tgz",
+              "integrity": "sha1-1aUbU+mrIsoH1VjytnrlX9tfy9g=",
+              "dev": true,
+              "requires": {
+                "chalk": "1.1.3",
+                "time-stamp": "1.0.1"
+              },
+              "dependencies": {
+                "time-stamp": {
+                  "version": "1.0.1",
+                  "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.0.1.tgz",
+                  "integrity": "sha1-n0vSNVnJNllm8zAtu6KwfGuZsVE=",
+                  "dev": true
+                }
+              }
+            },
+            "gulplog": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
+              "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
+              "dev": true,
+              "requires": {
+                "glogg": "1.0.0"
+              },
+              "dependencies": {
+                "glogg": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
+                  "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=",
+                  "dev": true,
+                  "requires": {
+                    "sparkles": "1.0.0"
+                  },
+                  "dependencies": {
+                    "sparkles": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+                      "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "has-gulplog": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
+              "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
+              "dev": true,
+              "requires": {
+                "sparkles": "1.0.0"
+              },
+              "dependencies": {
+                "sparkles": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+                  "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
+                  "dev": true
+                }
+              }
+            },
+            "lodash._reescape": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
+              "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
+              "dev": true
+            },
+            "lodash._reevaluate": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
+              "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
+              "dev": true
+            },
+            "lodash._reinterpolate": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+              "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
+              "dev": true
+            },
+            "lodash.template": {
+              "version": "3.6.2",
+              "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
+              "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
+              "dev": true,
+              "requires": {
+                "lodash._basecopy": "3.0.1",
+                "lodash._basetostring": "3.0.1",
+                "lodash._basevalues": "3.0.0",
+                "lodash._isiterateecall": "3.0.9",
+                "lodash._reinterpolate": "3.0.0",
+                "lodash.escape": "3.2.0",
+                "lodash.keys": "3.1.2",
+                "lodash.restparam": "3.6.1",
+                "lodash.templatesettings": "3.1.1"
+              },
+              "dependencies": {
+                "lodash._basecopy": {
+                  "version": "3.0.1",
+                  "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+                  "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
+                  "dev": true
+                },
+                "lodash._basetostring": {
+                  "version": "3.0.1",
+                  "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
+                  "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
+                  "dev": true
+                },
+                "lodash._basevalues": {
+                  "version": "3.0.0",
+                  "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
+                  "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
+                  "dev": true
+                },
+                "lodash._isiterateecall": {
+                  "version": "3.0.9",
+                  "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+                  "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
+                  "dev": true
+                },
+                "lodash.escape": {
+                  "version": "3.2.0",
+                  "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
+                  "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._root": "3.0.1"
+                  },
+                  "dependencies": {
+                    "lodash._root": {
+                      "version": "3.0.1",
+                      "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
+                      "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
+                      "dev": true
+                    }
+                  }
+                },
+                "lodash.keys": {
+                  "version": "3.1.2",
+                  "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+                  "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._getnative": "3.9.1",
+                    "lodash.isarguments": "3.1.0",
+                    "lodash.isarray": "3.0.4"
+                  },
+                  "dependencies": {
+                    "lodash._getnative": {
+                      "version": "3.9.1",
+                      "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+                      "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
+                      "dev": true
+                    },
+                    "lodash.isarguments": {
+                      "version": "3.1.0",
+                      "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+                      "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
+                      "dev": true
+                    },
+                    "lodash.isarray": {
+                      "version": "3.0.4",
+                      "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+                      "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
+                      "dev": true
+                    }
+                  }
+                },
+                "lodash.restparam": {
+                  "version": "3.6.1",
+                  "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
+                  "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
+                  "dev": true
+                },
+                "lodash.templatesettings": {
+                  "version": "3.1.1",
+                  "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
+                  "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._reinterpolate": "3.0.0",
+                    "lodash.escape": "3.2.0"
+                  }
+                }
+              }
+            },
+            "multipipe": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
+              "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
+              "dev": true,
+              "requires": {
+                "duplexer2": "0.0.2"
+              },
+              "dependencies": {
+                "duplexer2": {
+                  "version": "0.0.2",
+                  "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
+                  "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
+                  "dev": true,
+                  "requires": {
+                    "readable-stream": "1.1.14"
+                  },
+                  "dependencies": {
+                    "readable-stream": {
+                      "version": "1.1.14",
+                      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+                      "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+                      "dev": true,
+                      "requires": {
+                        "core-util-is": "1.0.2",
+                        "inherits": "2.0.3",
+                        "isarray": "0.0.1",
+                        "string_decoder": "0.10.31"
+                      },
+                      "dependencies": {
+                        "core-util-is": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                          "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                          "dev": true
+                        },
+                        "inherits": {
+                          "version": "2.0.3",
+                          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                          "dev": true
+                        },
+                        "isarray": {
+                          "version": "0.0.1",
+                          "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                          "dev": true
+                        },
+                        "string_decoder": {
+                          "version": "0.10.31",
+                          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            },
+            "object-assign": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+              "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
+              "dev": true
+            },
+            "replace-ext": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+              "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
+              "dev": true
+            },
+            "through2": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz",
+              "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=",
+              "dev": true,
+              "requires": {
+                "readable-stream": "2.0.6",
+                "xtend": "4.0.1"
+              },
+              "dependencies": {
+                "readable-stream": {
+                  "version": "2.0.6",
+                  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+                  "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+                  "dev": true,
+                  "requires": {
+                    "core-util-is": "1.0.2",
+                    "inherits": "2.0.3",
+                    "isarray": "1.0.0",
+                    "process-nextick-args": "1.0.7",
+                    "string_decoder": "0.10.31",
+                    "util-deprecate": "1.0.2"
+                  },
+                  "dependencies": {
+                    "core-util-is": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                      "dev": true
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                      "dev": true
+                    },
+                    "isarray": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+                      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+                      "dev": true
+                    },
+                    "process-nextick-args": {
+                      "version": "1.0.7",
+                      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+                      "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+                      "dev": true
+                    },
+                    "string_decoder": {
+                      "version": "0.10.31",
+                      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                      "dev": true
+                    },
+                    "util-deprecate": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+                      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+                      "dev": true
+                    }
+                  }
+                },
+                "xtend": {
+                  "version": "4.0.1",
+                  "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+                  "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+                  "dev": true
+                }
+              }
+            },
+            "vinyl": {
+              "version": "0.5.3",
+              "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
+              "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
+              "dev": true,
+              "requires": {
+                "clone": "1.0.2",
+                "clone-stats": "0.0.1",
+                "replace-ext": "0.0.1"
+              },
+              "dependencies": {
+                "clone": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+                  "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+                  "dev": true
+                },
+                "clone-stats": {
+                  "version": "0.0.1",
+                  "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+                  "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
+                  "dev": true
+                }
+              }
+            }
+          }
+        },
+        "interpret": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
+          "integrity": "sha1-1Xn7f2k7hYAElHrzn6DbSfeVYCw=",
+          "dev": true
+        },
+        "liftoff": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz",
+          "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=",
+          "dev": true,
+          "requires": {
+            "extend": "3.0.0",
+            "findup-sync": "0.4.3",
+            "fined": "1.0.2",
+            "flagged-respawn": "0.3.2",
+            "lodash.isplainobject": "4.0.6",
+            "lodash.isstring": "4.0.1",
+            "lodash.mapvalues": "4.6.0",
+            "rechoir": "0.6.2",
+            "resolve": "1.1.7"
+          },
+          "dependencies": {
+            "extend": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
+              "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=",
+              "dev": true
+            },
+            "findup-sync": {
+              "version": "0.4.3",
+              "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
+              "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=",
+              "dev": true,
+              "requires": {
+                "detect-file": "0.1.0",
+                "is-glob": "2.0.1",
+                "micromatch": "2.3.11",
+                "resolve-dir": "0.1.1"
+              },
+              "dependencies": {
+                "detect-file": {
+                  "version": "0.1.0",
+                  "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz",
+                  "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=",
+                  "dev": true,
+                  "requires": {
+                    "fs-exists-sync": "0.1.0"
+                  },
+                  "dependencies": {
+                    "fs-exists-sync": {
+                      "version": "0.1.0",
+                      "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
+                      "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=",
+                      "dev": true
+                    }
+                  }
+                },
+                "is-glob": {
+                  "version": "2.0.1",
+                  "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+                  "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+                  "dev": true,
+                  "requires": {
+                    "is-extglob": "1.0.0"
+                  },
+                  "dependencies": {
+                    "is-extglob": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+                      "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+                      "dev": true
+                    }
+                  }
+                },
+                "micromatch": {
+                  "version": "2.3.11",
+                  "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+                  "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+                  "dev": true,
+                  "requires": {
+                    "arr-diff": "2.0.0",
+                    "array-unique": "0.2.1",
+                    "braces": "1.8.5",
+                    "expand-brackets": "0.1.5",
+                    "extglob": "0.3.2",
+                    "filename-regex": "2.0.0",
+                    "is-extglob": "1.0.0",
+                    "is-glob": "2.0.1",
+                    "kind-of": "3.0.4",
+                    "normalize-path": "2.0.1",
+                    "object.omit": "2.0.0",
+                    "parse-glob": "3.0.4",
+                    "regex-cache": "0.4.3"
+                  },
+                  "dependencies": {
+                    "arr-diff": {
+                      "version": "2.0.0",
+                      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+                      "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+                      "dev": true,
+                      "requires": {
+                        "arr-flatten": "1.0.1"
+                      },
+                      "dependencies": {
+                        "arr-flatten": {
+                          "version": "1.0.1",
+                          "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz",
+                          "integrity": "sha1-5f/lTUXhnzLyFukeuZyM6JK7YEs=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "array-unique": {
+                      "version": "0.2.1",
+                      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+                      "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+                      "dev": true
+                    },
+                    "braces": {
+                      "version": "1.8.5",
+                      "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+                      "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+                      "dev": true,
+                      "requires": {
+                        "expand-range": "1.8.2",
+                        "preserve": "0.2.0",
+                        "repeat-element": "1.1.2"
+                      },
+                      "dependencies": {
+                        "expand-range": {
+                          "version": "1.8.2",
+                          "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+                          "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+                          "dev": true,
+                          "requires": {
+                            "fill-range": "2.2.3"
+                          },
+                          "dependencies": {
+                            "fill-range": {
+                              "version": "2.2.3",
+                              "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+                              "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+                              "dev": true,
+                              "requires": {
+                                "is-number": "2.1.0",
+                                "isobject": "2.1.0",
+                                "randomatic": "1.1.5",
+                                "repeat-element": "1.1.2",
+                                "repeat-string": "1.5.4"
+                              },
+                              "dependencies": {
+                                "is-number": {
+                                  "version": "2.1.0",
+                                  "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+                                  "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+                                  "dev": true,
+                                  "requires": {
+                                    "kind-of": "3.0.4"
+                                  }
+                                },
+                                "isobject": {
+                                  "version": "2.1.0",
+                                  "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+                                  "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+                                  "dev": true,
+                                  "requires": {
+                                    "isarray": "1.0.0"
+                                  },
+                                  "dependencies": {
+                                    "isarray": {
+                                      "version": "1.0.0",
+                                      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+                                      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+                                      "dev": true
+                                    }
+                                  }
+                                },
+                                "randomatic": {
+                                  "version": "1.1.5",
+                                  "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.5.tgz",
+                                  "integrity": "sha1-Xp718tVzxnvSuBJK6QtRVuRXhAs=",
+                                  "dev": true,
+                                  "requires": {
+                                    "is-number": "2.1.0",
+                                    "kind-of": "3.0.4"
+                                  }
+                                },
+                                "repeat-string": {
+                                  "version": "1.5.4",
+                                  "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.4.tgz",
+                                  "integrity": "sha1-ZOwMkeD0tHX5DVtkNlHj5uW2wtU=",
+                                  "dev": true
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "preserve": {
+                          "version": "0.2.0",
+                          "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+                          "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+                          "dev": true
+                        },
+                        "repeat-element": {
+                          "version": "1.1.2",
+                          "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+                          "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "expand-brackets": {
+                      "version": "0.1.5",
+                      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+                      "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+                      "dev": true,
+                      "requires": {
+                        "is-posix-bracket": "0.1.1"
+                      },
+                      "dependencies": {
+                        "is-posix-bracket": {
+                          "version": "0.1.1",
+                          "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+                          "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "extglob": {
+                      "version": "0.3.2",
+                      "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+                      "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+                      "dev": true,
+                      "requires": {
+                        "is-extglob": "1.0.0"
+                      }
+                    },
+                    "filename-regex": {
+                      "version": "2.0.0",
+                      "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz",
+                      "integrity": "sha1-mW4+gEebmLmJfxWopYs9CE6SZ3U=",
+                      "dev": true
+                    },
+                    "is-extglob": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+                      "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+                      "dev": true
+                    },
+                    "kind-of": {
+                      "version": "3.0.4",
+                      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.4.tgz",
+                      "integrity": "sha1-e47PGKThf4Jp1ztQHJ8jLJaIenQ=",
+                      "dev": true,
+                      "requires": {
+                        "is-buffer": "1.1.4"
+                      },
+                      "dependencies": {
+                        "is-buffer": {
+                          "version": "1.1.4",
+                          "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz",
+                          "integrity": "sha1-z8hszV3FpS+oBIkRHGkgxFfi2Ys=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "normalize-path": {
+                      "version": "2.0.1",
+                      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz",
+                      "integrity": "sha1-R4hqwWYnYNQmG32XnSQXCdPOP3o=",
+                      "dev": true
+                    },
+                    "object.omit": {
+                      "version": "2.0.0",
+                      "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz",
+                      "integrity": "sha1-hoWXMz1U5gZilAu0WGBd1q4S/pQ=",
+                      "dev": true,
+                      "requires": {
+                        "for-own": "0.1.4",
+                        "is-extendable": "0.1.1"
+                      },
+                      "dependencies": {
+                        "for-own": {
+                          "version": "0.1.4",
+                          "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz",
+                          "integrity": "sha1-AUm0GjkIjHUV9R6+HBOG1F+TUHI=",
+                          "dev": true,
+                          "requires": {
+                            "for-in": "0.1.6"
+                          },
+                          "dependencies": {
+                            "for-in": {
+                              "version": "0.1.6",
+                              "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz",
+                              "integrity": "sha1-yfluib+tGKVFr17D7TUqHZ5bTcg=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "is-extendable": {
+                          "version": "0.1.1",
+                          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+                          "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "parse-glob": {
+                      "version": "3.0.4",
+                      "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+                      "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+                      "dev": true,
+                      "requires": {
+                        "glob-base": "0.3.0",
+                        "is-dotfile": "1.0.2",
+                        "is-extglob": "1.0.0",
+                        "is-glob": "2.0.1"
+                      },
+                      "dependencies": {
+                        "glob-base": {
+                          "version": "0.3.0",
+                          "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+                          "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+                          "dev": true,
+                          "requires": {
+                            "glob-parent": "2.0.0",
+                            "is-glob": "2.0.1"
+                          },
+                          "dependencies": {
+                            "glob-parent": {
+                              "version": "2.0.0",
+                              "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+                              "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+                              "dev": true,
+                              "requires": {
+                                "is-glob": "2.0.1"
+                              }
+                            }
+                          }
+                        },
+                        "is-dotfile": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz",
+                          "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "regex-cache": {
+                      "version": "0.4.3",
+                      "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
+                      "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
+                      "dev": true,
+                      "requires": {
+                        "is-equal-shallow": "0.1.3",
+                        "is-primitive": "2.0.0"
+                      },
+                      "dependencies": {
+                        "is-equal-shallow": {
+                          "version": "0.1.3",
+                          "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+                          "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+                          "dev": true,
+                          "requires": {
+                            "is-primitive": "2.0.0"
+                          }
+                        },
+                        "is-primitive": {
+                          "version": "2.0.0",
+                          "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+                          "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                },
+                "resolve-dir": {
+                  "version": "0.1.1",
+                  "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz",
+                  "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=",
+                  "dev": true,
+                  "requires": {
+                    "expand-tilde": "1.2.2",
+                    "global-modules": "0.2.3"
+                  },
+                  "dependencies": {
+                    "expand-tilde": {
+                      "version": "1.2.2",
+                      "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
+                      "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=",
+                      "dev": true,
+                      "requires": {
+                        "os-homedir": "1.0.2"
+                      },
+                      "dependencies": {
+                        "os-homedir": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+                          "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "global-modules": {
+                      "version": "0.2.3",
+                      "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
+                      "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=",
+                      "dev": true,
+                      "requires": {
+                        "global-prefix": "0.1.4",
+                        "is-windows": "0.2.0"
+                      },
+                      "dependencies": {
+                        "global-prefix": {
+                          "version": "0.1.4",
+                          "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.4.tgz",
+                          "integrity": "sha1-BRWNsc3i3UkbRV4pDrOri/xFxuE=",
+                          "dev": true,
+                          "requires": {
+                            "ini": "1.3.4",
+                            "is-windows": "0.2.0",
+                            "osenv": "0.1.3",
+                            "which": "1.2.11"
+                          },
+                          "dependencies": {
+                            "ini": {
+                              "version": "1.3.4",
+                              "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+                              "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
+                              "dev": true
+                            },
+                            "osenv": {
+                              "version": "0.1.3",
+                              "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz",
+                              "integrity": "sha1-g88FxtZFj8TVrGNi6jJdkvJ1Qhc=",
+                              "dev": true,
+                              "requires": {
+                                "os-homedir": "1.0.2",
+                                "os-tmpdir": "1.0.2"
+                              },
+                              "dependencies": {
+                                "os-homedir": {
+                                  "version": "1.0.2",
+                                  "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+                                  "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+                                  "dev": true
+                                },
+                                "os-tmpdir": {
+                                  "version": "1.0.2",
+                                  "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+                                  "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+                                  "dev": true
+                                }
+                              }
+                            },
+                            "which": {
+                              "version": "1.2.11",
+                              "resolved": "https://registry.npmjs.org/which/-/which-1.2.11.tgz",
+                              "integrity": "sha1-yLLu6muMFln6fB3U/aq+lTPcXos=",
+                              "dev": true,
+                              "requires": {
+                                "isexe": "1.1.2"
+                              },
+                              "dependencies": {
+                                "isexe": {
+                                  "version": "1.1.2",
+                                  "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz",
+                                  "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=",
+                                  "dev": true
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "is-windows": {
+                          "version": "0.2.0",
+                          "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
+                          "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            },
+            "fined": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmjs.org/fined/-/fined-1.0.2.tgz",
+              "integrity": "sha1-WyhCS3YNdZiWC374SA3/itNmDpc=",
+              "dev": true,
+              "requires": {
+                "expand-tilde": "1.2.2",
+                "lodash.assignwith": "4.2.0",
+                "lodash.isempty": "4.4.0",
+                "lodash.isplainobject": "4.0.6",
+                "lodash.isstring": "4.0.1",
+                "lodash.pick": "4.4.0",
+                "parse-filepath": "1.0.1"
+              },
+              "dependencies": {
+                "expand-tilde": {
+                  "version": "1.2.2",
+                  "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
+                  "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=",
+                  "dev": true,
+                  "requires": {
+                    "os-homedir": "1.0.2"
+                  },
+                  "dependencies": {
+                    "os-homedir": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+                      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+                      "dev": true
+                    }
+                  }
+                },
+                "lodash.assignwith": {
+                  "version": "4.2.0",
+                  "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz",
+                  "integrity": "sha1-EnqX8CrcQXUalU0ksN4X4QDgOOs=",
+                  "dev": true
+                },
+                "lodash.isempty": {
+                  "version": "4.4.0",
+                  "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz",
+                  "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=",
+                  "dev": true
+                },
+                "lodash.pick": {
+                  "version": "4.4.0",
+                  "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+                  "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=",
+                  "dev": true
+                },
+                "parse-filepath": {
+                  "version": "1.0.1",
+                  "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz",
+                  "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=",
+                  "dev": true,
+                  "requires": {
+                    "is-absolute": "0.2.5",
+                    "map-cache": "0.2.2",
+                    "path-root": "0.1.1"
+                  },
+                  "dependencies": {
+                    "is-absolute": {
+                      "version": "0.2.5",
+                      "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.5.tgz",
+                      "integrity": "sha1-mUFCufRo0nwU+/DNMP5325NMp20=",
+                      "dev": true,
+                      "requires": {
+                        "is-relative": "0.2.1",
+                        "is-windows": "0.1.1"
+                      },
+                      "dependencies": {
+                        "is-relative": {
+                          "version": "0.2.1",
+                          "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz",
+                          "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=",
+                          "dev": true,
+                          "requires": {
+                            "is-unc-path": "0.1.1"
+                          },
+                          "dependencies": {
+                            "is-unc-path": {
+                              "version": "0.1.1",
+                              "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.1.tgz",
+                              "integrity": "sha1-qyUz13rXM1YRJMPcD1zYuQBUyGs=",
+                              "dev": true,
+                              "requires": {
+                                "unc-path-regex": "0.1.2"
+                              },
+                              "dependencies": {
+                                "unc-path-regex": {
+                                  "version": "0.1.2",
+                                  "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+                                  "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
+                                  "dev": true
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "is-windows": {
+                          "version": "0.1.1",
+                          "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.1.1.tgz",
+                          "integrity": "sha1-vjEHFUMc+rzMVKs5USEPoLbQGr4=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "map-cache": {
+                      "version": "0.2.2",
+                      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+                      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+                      "dev": true
+                    },
+                    "path-root": {
+                      "version": "0.1.1",
+                      "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
+                      "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
+                      "dev": true,
+                      "requires": {
+                        "path-root-regex": "0.1.2"
+                      },
+                      "dependencies": {
+                        "path-root-regex": {
+                          "version": "0.1.2",
+                          "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
+                          "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            },
+            "flagged-respawn": {
+              "version": "0.3.2",
+              "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz",
+              "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=",
+              "dev": true
+            },
+            "lodash.isplainobject": {
+              "version": "4.0.6",
+              "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+              "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
+              "dev": true
+            },
+            "lodash.isstring": {
+              "version": "4.0.1",
+              "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+              "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=",
+              "dev": true
+            },
+            "lodash.mapvalues": {
+              "version": "4.6.0",
+              "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz",
+              "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=",
+              "dev": true
+            },
+            "rechoir": {
+              "version": "0.6.2",
+              "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+              "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+              "dev": true,
+              "requires": {
+                "resolve": "1.1.7"
+              }
+            },
+            "resolve": {
+              "version": "1.1.7",
+              "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+              "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+              "dev": true
+            }
+          }
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        },
+        "orchestrator": {
+          "version": "0.3.7",
+          "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.7.tgz",
+          "integrity": "sha1-xFBk4ixaKnuZc09AmpX/7cfTw98=",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "0.1.5",
+            "sequencify": "0.0.7",
+            "stream-consume": "0.1.0"
+          },
+          "dependencies": {
+            "end-of-stream": {
+              "version": "0.1.5",
+              "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz",
+              "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=",
+              "dev": true,
+              "requires": {
+                "once": "1.3.3"
+              },
+              "dependencies": {
+                "once": {
+                  "version": "1.3.3",
+                  "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+                  "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
+                  "dev": true,
+                  "requires": {
+                    "wrappy": "1.0.2"
+                  },
+                  "dependencies": {
+                    "wrappy": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+                      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "sequencify": {
+              "version": "0.0.7",
+              "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz",
+              "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=",
+              "dev": true
+            },
+            "stream-consume": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz",
+              "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=",
+              "dev": true
+            }
+          }
+        },
+        "pretty-hrtime": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.2.tgz",
+          "integrity": "sha1-cMqW9NBiikQ7kYdY95QWqae8n6g=",
+          "dev": true
+        },
+        "semver": {
+          "version": "4.3.6",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+          "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
+          "dev": true
+        },
+        "tildify": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
+          "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
+          "dev": true,
+          "requires": {
+            "os-homedir": "1.0.2"
+          },
+          "dependencies": {
+            "os-homedir": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+              "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+              "dev": true
+            }
+          }
+        },
+        "v8flags": {
+          "version": "2.0.11",
+          "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.0.11.tgz",
+          "integrity": "sha1-vKjzDw1tYGEswsAGQeaWLUKuaIE=",
+          "dev": true,
+          "requires": {
+            "user-home": "1.1.1"
+          },
+          "dependencies": {
+            "user-home": {
+              "version": "1.1.1",
+              "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
+              "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
+              "dev": true
+            }
+          }
+        },
+        "vinyl-fs": {
+          "version": "0.3.14",
+          "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
+          "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=",
+          "dev": true,
+          "requires": {
+            "defaults": "1.0.3",
+            "glob-stream": "3.1.18",
+            "glob-watcher": "0.0.6",
+            "graceful-fs": "3.0.11",
+            "mkdirp": "0.5.1",
+            "strip-bom": "1.0.0",
+            "through2": "0.6.5",
+            "vinyl": "0.4.6"
+          },
+          "dependencies": {
+            "defaults": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+              "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+              "dev": true,
+              "requires": {
+                "clone": "1.0.2"
+              },
+              "dependencies": {
+                "clone": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+                  "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+                  "dev": true
+                }
+              }
+            },
+            "glob-stream": {
+              "version": "3.1.18",
+              "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz",
+              "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=",
+              "dev": true,
+              "requires": {
+                "glob": "4.5.3",
+                "glob2base": "0.0.12",
+                "minimatch": "2.0.10",
+                "ordered-read-streams": "0.1.0",
+                "through2": "0.6.5",
+                "unique-stream": "1.0.0"
+              },
+              "dependencies": {
+                "glob": {
+                  "version": "4.5.3",
+                  "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
+                  "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
+                  "dev": true,
+                  "requires": {
+                    "inflight": "1.0.6",
+                    "inherits": "2.0.3",
+                    "minimatch": "2.0.10",
+                    "once": "1.4.0"
+                  },
+                  "dependencies": {
+                    "inflight": {
+                      "version": "1.0.6",
+                      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+                      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+                      "dev": true,
+                      "requires": {
+                        "once": "1.4.0",
+                        "wrappy": "1.0.2"
+                      },
+                      "dependencies": {
+                        "wrappy": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+                          "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                      "dev": true
+                    },
+                    "once": {
+                      "version": "1.4.0",
+                      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+                      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+                      "dev": true,
+                      "requires": {
+                        "wrappy": "1.0.2"
+                      },
+                      "dependencies": {
+                        "wrappy": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+                          "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                },
+                "glob2base": {
+                  "version": "0.0.12",
+                  "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
+                  "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
+                  "dev": true,
+                  "requires": {
+                    "find-index": "0.1.1"
+                  },
+                  "dependencies": {
+                    "find-index": {
+                      "version": "0.1.1",
+                      "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
+                      "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=",
+                      "dev": true
+                    }
+                  }
+                },
+                "minimatch": {
+                  "version": "2.0.10",
+                  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
+                  "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
+                  "dev": true,
+                  "requires": {
+                    "brace-expansion": "1.1.6"
+                  },
+                  "dependencies": {
+                    "brace-expansion": {
+                      "version": "1.1.6",
+                      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
+                      "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
+                      "dev": true,
+                      "requires": {
+                        "balanced-match": "0.4.2",
+                        "concat-map": "0.0.1"
+                      },
+                      "dependencies": {
+                        "balanced-match": {
+                          "version": "0.4.2",
+                          "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+                          "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+                          "dev": true
+                        },
+                        "concat-map": {
+                          "version": "0.0.1",
+                          "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+                          "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                },
+                "ordered-read-streams": {
+                  "version": "0.1.0",
+                  "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
+                  "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=",
+                  "dev": true
+                },
+                "unique-stream": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz",
+                  "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=",
+                  "dev": true
+                }
+              }
+            },
+            "glob-watcher": {
+              "version": "0.0.6",
+              "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
+              "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=",
+              "dev": true,
+              "requires": {
+                "gaze": "0.5.2"
+              },
+              "dependencies": {
+                "gaze": {
+                  "version": "0.5.2",
+                  "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
+                  "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
+                  "dev": true,
+                  "requires": {
+                    "globule": "0.1.0"
+                  },
+                  "dependencies": {
+                    "globule": {
+                      "version": "0.1.0",
+                      "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
+                      "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
+                      "dev": true,
+                      "requires": {
+                        "glob": "3.1.21",
+                        "lodash": "1.0.2",
+                        "minimatch": "0.2.14"
+                      },
+                      "dependencies": {
+                        "glob": {
+                          "version": "3.1.21",
+                          "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
+                          "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+                          "dev": true,
+                          "requires": {
+                            "graceful-fs": "1.2.3",
+                            "inherits": "1.0.2",
+                            "minimatch": "0.2.14"
+                          },
+                          "dependencies": {
+                            "graceful-fs": {
+                              "version": "1.2.3",
+                              "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+                              "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
+                              "dev": true
+                            },
+                            "inherits": {
+                              "version": "1.0.2",
+                              "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
+                              "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "lodash": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
+                          "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
+                          "dev": true
+                        },
+                        "minimatch": {
+                          "version": "0.2.14",
+                          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+                          "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+                          "dev": true,
+                          "requires": {
+                            "lru-cache": "2.7.3",
+                            "sigmund": "1.0.1"
+                          },
+                          "dependencies": {
+                            "lru-cache": {
+                              "version": "2.7.3",
+                              "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+                              "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+                              "dev": true
+                            },
+                            "sigmund": {
+                              "version": "1.0.1",
+                              "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+                              "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+                              "dev": true
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            },
+            "graceful-fs": {
+              "version": "3.0.11",
+              "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
+              "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
+              "dev": true,
+              "requires": {
+                "natives": "1.1.0"
+              },
+              "dependencies": {
+                "natives": {
+                  "version": "1.1.0",
+                  "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz",
+                  "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=",
+                  "dev": true
+                }
+              }
+            },
+            "mkdirp": {
+              "version": "0.5.1",
+              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+              "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+              "dev": true,
+              "requires": {
+                "minimist": "0.0.8"
+              },
+              "dependencies": {
+                "minimist": {
+                  "version": "0.0.8",
+                  "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+                  "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+                  "dev": true
+                }
+              }
+            },
+            "strip-bom": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
+              "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
+              "dev": true,
+              "requires": {
+                "first-chunk-stream": "1.0.0",
+                "is-utf8": "0.2.1"
+              },
+              "dependencies": {
+                "first-chunk-stream": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
+                  "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
+                  "dev": true
+                },
+                "is-utf8": {
+                  "version": "0.2.1",
+                  "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+                  "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+                  "dev": true
+                }
+              }
+            },
+            "through2": {
+              "version": "0.6.5",
+              "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+              "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+              "dev": true,
+              "requires": {
+                "readable-stream": "1.0.34",
+                "xtend": "4.0.1"
+              },
+              "dependencies": {
+                "readable-stream": {
+                  "version": "1.0.34",
+                  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+                  "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+                  "dev": true,
+                  "requires": {
+                    "core-util-is": "1.0.2",
+                    "inherits": "2.0.3",
+                    "isarray": "0.0.1",
+                    "string_decoder": "0.10.31"
+                  },
+                  "dependencies": {
+                    "core-util-is": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                      "dev": true
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                      "dev": true
+                    },
+                    "isarray": {
+                      "version": "0.0.1",
+                      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                      "dev": true
+                    },
+                    "string_decoder": {
+                      "version": "0.10.31",
+                      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                      "dev": true
+                    }
+                  }
+                },
+                "xtend": {
+                  "version": "4.0.1",
+                  "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+                  "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+                  "dev": true
+                }
+              }
+            },
+            "vinyl": {
+              "version": "0.4.6",
+              "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+              "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
+              "dev": true,
+              "requires": {
+                "clone": "0.2.0",
+                "clone-stats": "0.0.1"
+              },
+              "dependencies": {
+                "clone": {
+                  "version": "0.2.0",
+                  "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
+                  "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
+                  "dev": true
+                },
+                "clone-stats": {
+                  "version": "0.0.1",
+                  "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+                  "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
+                  "dev": true
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "gulp-clean-css": {
+      "version": "2.0.13",
+      "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-2.0.13.tgz",
+      "integrity": "sha1-hd70qqKvbwbBZG4FER/XtLXmJ9A=",
+      "dev": true,
+      "requires": {
+        "clean-css": "3.4.20",
+        "gulp-util": "3.0.7",
+        "object-assign": "4.1.0",
+        "readable-stream": "2.1.5",
+        "vinyl-bufferstream": "1.0.1",
+        "vinyl-sourcemaps-apply": "0.2.1"
+      },
+      "dependencies": {
+        "clean-css": {
+          "version": "3.4.20",
+          "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.20.tgz",
+          "integrity": "sha1-wNiWO1RI4DDwvNPd0NrE3+PepQE=",
+          "dev": true,
+          "requires": {
+            "commander": "2.8.1",
+            "source-map": "0.4.4"
+          },
+          "dependencies": {
+            "commander": {
+              "version": "2.8.1",
+              "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
+              "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
+              "dev": true,
+              "requires": {
+                "graceful-readlink": "1.0.1"
+              },
+              "dependencies": {
+                "graceful-readlink": {
+                  "version": "1.0.1",
+                  "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+                  "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+                  "dev": true
+                }
+              }
+            },
+            "source-map": {
+              "version": "0.4.4",
+              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+              "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+              "dev": true,
+              "requires": {
+                "amdefine": "1.0.0"
+              },
+              "dependencies": {
+                "amdefine": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz",
+                  "integrity": "sha1-/RdHRwDLXMnCtwnwvp0jzjwZjDM=",
+                  "dev": true
+                }
+              }
+            }
+          }
+        },
+        "gulp-util": {
+          "version": "3.0.7",
+          "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz",
+          "integrity": "sha1-eJJcS4+LSQBawBoBHFV+YhiUHLs=",
+          "dev": true,
+          "requires": {
+            "array-differ": "1.0.0",
+            "array-uniq": "1.0.3",
+            "beeper": "1.1.0",
+            "chalk": "1.1.3",
+            "dateformat": "1.0.12",
+            "fancy-log": "1.2.0",
+            "gulplog": "1.0.0",
+            "has-gulplog": "0.1.0",
+            "lodash._reescape": "3.0.0",
+            "lodash._reevaluate": "3.0.0",
+            "lodash._reinterpolate": "3.0.0",
+            "lodash.template": "3.6.2",
+            "minimist": "1.2.0",
+            "multipipe": "0.1.2",
+            "object-assign": "3.0.0",
+            "replace-ext": "0.0.1",
+            "through2": "2.0.1",
+            "vinyl": "0.5.3"
+          },
+          "dependencies": {
+            "array-differ": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+              "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
+              "dev": true
+            },
+            "array-uniq": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+              "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+              "dev": true
+            },
+            "beeper": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.0.tgz",
+              "integrity": "sha1-nub8HOf1T+qs585zWIsFYDeGaiw=",
+              "dev": true
+            },
+            "chalk": {
+              "version": "1.1.3",
+              "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+              "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+              "dev": true,
+              "requires": {
+                "ansi-styles": "2.2.1",
+                "escape-string-regexp": "1.0.5",
+                "has-ansi": "2.0.0",
+                "strip-ansi": "3.0.1",
+                "supports-color": "2.0.0"
+              },
+              "dependencies": {
+                "ansi-styles": {
+                  "version": "2.2.1",
+                  "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+                  "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+                  "dev": true
+                },
+                "escape-string-regexp": {
+                  "version": "1.0.5",
+                  "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+                  "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+                  "dev": true
+                },
+                "has-ansi": {
+                  "version": "2.0.0",
+                  "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+                  "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+                  "dev": true,
+                  "requires": {
+                    "ansi-regex": "2.0.0"
+                  },
+                  "dependencies": {
+                    "ansi-regex": {
+                      "version": "2.0.0",
+                      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
+                      "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=",
+                      "dev": true
+                    }
+                  }
+                },
+                "strip-ansi": {
+                  "version": "3.0.1",
+                  "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                  "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+                  "dev": true,
+                  "requires": {
+                    "ansi-regex": "2.0.0"
+                  },
+                  "dependencies": {
+                    "ansi-regex": {
+                      "version": "2.0.0",
+                      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
+                      "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=",
+                      "dev": true
+                    }
+                  }
+                },
+                "supports-color": {
+                  "version": "2.0.0",
+                  "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+                  "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+                  "dev": true
+                }
+              }
+            },
+            "dateformat": {
+              "version": "1.0.12",
+              "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
+              "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
+              "dev": true,
+              "requires": {
+                "get-stdin": "4.0.1",
+                "meow": "3.7.0"
+              },
+              "dependencies": {
+                "get-stdin": {
+                  "version": "4.0.1",
+                  "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+                  "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+                  "dev": true
+                },
+                "meow": {
+                  "version": "3.7.0",
+                  "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+                  "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+                  "dev": true,
+                  "requires": {
+                    "camelcase-keys": "2.1.0",
+                    "decamelize": "1.2.0",
+                    "loud-rejection": "1.6.0",
+                    "map-obj": "1.0.1",
+                    "minimist": "1.2.0",
+                    "normalize-package-data": "2.3.5",
+                    "object-assign": "4.1.0",
+                    "read-pkg-up": "1.0.1",
+                    "redent": "1.0.0",
+                    "trim-newlines": "1.0.0"
+                  },
+                  "dependencies": {
+                    "camelcase-keys": {
+                      "version": "2.1.0",
+                      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+                      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+                      "dev": true,
+                      "requires": {
+                        "camelcase": "2.1.1",
+                        "map-obj": "1.0.1"
+                      },
+                      "dependencies": {
+                        "camelcase": {
+                          "version": "2.1.1",
+                          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+                          "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "decamelize": {
+                      "version": "1.2.0",
+                      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+                      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+                      "dev": true
+                    },
+                    "loud-rejection": {
+                      "version": "1.6.0",
+                      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+                      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+                      "dev": true,
+                      "requires": {
+                        "currently-unhandled": "0.4.1",
+                        "signal-exit": "3.0.1"
+                      },
+                      "dependencies": {
+                        "currently-unhandled": {
+                          "version": "0.4.1",
+                          "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+                          "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+                          "dev": true,
+                          "requires": {
+                            "array-find-index": "1.0.2"
+                          },
+                          "dependencies": {
+                            "array-find-index": {
+                              "version": "1.0.2",
+                              "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+                              "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "signal-exit": {
+                          "version": "3.0.1",
+                          "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz",
+                          "integrity": "sha1-WkyISZK2OnrNm623iUw+6c/MrYE=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "map-obj": {
+                      "version": "1.0.1",
+                      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+                      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+                      "dev": true
+                    },
+                    "normalize-package-data": {
+                      "version": "2.3.5",
+                      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+                      "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=",
+                      "dev": true,
+                      "requires": {
+                        "hosted-git-info": "2.1.5",
+                        "is-builtin-module": "1.0.0",
+                        "semver": "5.3.0",
+                        "validate-npm-package-license": "3.0.1"
+                      },
+                      "dependencies": {
+                        "hosted-git-info": {
+                          "version": "2.1.5",
+                          "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
+                          "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs=",
+                          "dev": true
+                        },
+                        "is-builtin-module": {
+                          "version": "1.0.0",
+                          "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+                          "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+                          "dev": true,
+                          "requires": {
+                            "builtin-modules": "1.1.1"
+                          },
+                          "dependencies": {
+                            "builtin-modules": {
+                              "version": "1.1.1",
+                              "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+                              "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+                              "dev": true
+                            }
+                          }
+                        },
+                        "semver": {
+                          "version": "5.3.0",
+                          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+                          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+                          "dev": true
+                        },
+                        "validate-npm-package-license": {
+                          "version": "3.0.1",
+                          "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+                          "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+                          "dev": true,
+                          "requires": {
+                            "spdx-correct": "1.0.2",
+                            "spdx-expression-parse": "1.0.4"
+                          },
+                          "dependencies": {
+                            "spdx-correct": {
+                              "version": "1.0.2",
+                              "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+                              "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+                              "dev": true,
+                              "requires": {
+                                "spdx-license-ids": "1.2.2"
+                              },
+                              "dependencies": {
+                                "spdx-license-ids": {
+                                  "version": "1.2.2",
+                                  "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+                                  "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+                                  "dev": true
+                                }
+                              }
+                            },
+                            "spdx-expression-parse": {
+                              "version": "1.0.4",
+                              "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+                              "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+                              "dev": true
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "object-assign": {
+                      "version": "4.1.0",
+                      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+                      "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
+                      "dev": true
+                    },
+                    "read-pkg-up": {
+                      "version": "1.0.1",
+                      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+                      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+                      "dev": true,
+                      "requires": {
+                        "find-up": "1.1.2",
+                        "read-pkg": "1.1.0"
+                      },
+                      "dependencies": {
+                        "find-up": {
+                          "version": "1.1.2",
+                          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+                          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+                          "dev": true,
+                          "requires": {
+                            "path-exists": "2.1.0",
+                            "pinkie-promise": "2.0.1"
+                          },
+                          "dependencies": {
+                            "path-exists": {
+                              "version": "2.1.0",
+                              "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+                              "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+                              "dev": true,
+                              "requires": {
+                                "pinkie-promise": "2.0.1"
+                              }
+                            },
+                            "pinkie-promise": {
+                              "version": "2.0.1",
+                              "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                              "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                              "dev": true,
+                              "requires": {
+                                "pinkie": "2.0.4"
+                              },
+                              "dependencies": {
+                                "pinkie": {
+                                  "version": "2.0.4",
+                                  "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                  "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                  "dev": true
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "read-pkg": {
+                          "version": "1.1.0",
+                          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+                          "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+                          "dev": true,
+                          "requires": {
+                            "load-json-file": "1.1.0",
+                            "normalize-package-data": "2.3.5",
+                            "path-type": "1.1.0"
+                          },
+                          "dependencies": {
+                            "load-json-file": {
+                              "version": "1.1.0",
+                              "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+                              "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+                              "dev": true,
+                              "requires": {
+                                "graceful-fs": "4.1.9",
+                                "parse-json": "2.2.0",
+                                "pify": "2.3.0",
+                                "pinkie-promise": "2.0.1",
+                                "strip-bom": "2.0.0"
+                              },
+                              "dependencies": {
+                                "graceful-fs": {
+                                  "version": "4.1.9",
+                                  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz",
+                                  "integrity": "sha1-uqy6N9GdEfnRRtNXi8mZWMN4fik=",
+                                  "dev": true
+                                },
+                                "parse-json": {
+                                  "version": "2.2.0",
+                                  "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+                                  "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+                                  "dev": true,
+                                  "requires": {
+                                    "error-ex": "1.3.0"
+                                  },
+                                  "dependencies": {
+                                    "error-ex": {
+                                      "version": "1.3.0",
+                                      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz",
+                                      "integrity": "sha1-5ntD8+gsluo6WE/+4Ln8MyXYAtk=",
+                                      "dev": true,
+                                      "requires": {
+                                        "is-arrayish": "0.2.1"
+                                      },
+                                      "dependencies": {
+                                        "is-arrayish": {
+                                          "version": "0.2.1",
+                                          "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+                                          "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+                                          "dev": true
+                                        }
+                                      }
+                                    }
+                                  }
+                                },
+                                "pify": {
+                                  "version": "2.3.0",
+                                  "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+                                  "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+                                  "dev": true
+                                },
+                                "pinkie-promise": {
+                                  "version": "2.0.1",
+                                  "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                                  "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                                  "dev": true,
+                                  "requires": {
+                                    "pinkie": "2.0.4"
+                                  },
+                                  "dependencies": {
+                                    "pinkie": {
+                                      "version": "2.0.4",
+                                      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                      "dev": true
+                                    }
+                                  }
+                                },
+                                "strip-bom": {
+                                  "version": "2.0.0",
+                                  "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+                                  "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+                                  "dev": true,
+                                  "requires": {
+                                    "is-utf8": "0.2.1"
+                                  },
+                                  "dependencies": {
+                                    "is-utf8": {
+                                      "version": "0.2.1",
+                                      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+                                      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            },
+                            "path-type": {
+                              "version": "1.1.0",
+                              "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+                              "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+                              "dev": true,
+                              "requires": {
+                                "graceful-fs": "4.1.9",
+                                "pify": "2.3.0",
+                                "pinkie-promise": "2.0.1"
+                              },
+                              "dependencies": {
+                                "graceful-fs": {
+                                  "version": "4.1.9",
+                                  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz",
+                                  "integrity": "sha1-uqy6N9GdEfnRRtNXi8mZWMN4fik=",
+                                  "dev": true
+                                },
+                                "pify": {
+                                  "version": "2.3.0",
+                                  "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+                                  "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+                                  "dev": true
+                                },
+                                "pinkie-promise": {
+                                  "version": "2.0.1",
+                                  "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+                                  "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+                                  "dev": true,
+                                  "requires": {
+                                    "pinkie": "2.0.4"
+                                  },
+                                  "dependencies": {
+                                    "pinkie": {
+                                      "version": "2.0.4",
+                                      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+                                      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "redent": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+                      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+                      "dev": true,
+                      "requires": {
+                        "indent-string": "2.1.0",
+                        "strip-indent": "1.0.1"
+                      },
+                      "dependencies": {
+                        "indent-string": {
+                          "version": "2.1.0",
+                          "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+                          "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+                          "dev": true,
+                          "requires": {
+                            "repeating": "2.0.1"
+                          },
+                          "dependencies": {
+                            "repeating": {
+                              "version": "2.0.1",
+                              "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+                              "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+                              "dev": true,
+                              "requires": {
+                                "is-finite": "1.0.2"
+                              },
+                              "dependencies": {
+                                "is-finite": {
+                                  "version": "1.0.2",
+                                  "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+                                  "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+                                  "dev": true,
+                                  "requires": {
+                                    "number-is-nan": "1.0.1"
+                                  },
+                                  "dependencies": {
+                                    "number-is-nan": {
+                                      "version": "1.0.1",
+                                      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+                                      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+                                      "dev": true
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        },
+                        "strip-indent": {
+                          "version": "1.0.1",
+                          "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+                          "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+                          "dev": true,
+                          "requires": {
+                            "get-stdin": "4.0.1"
+                          }
+                        }
+                      }
+                    },
+                    "trim-newlines": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+                      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "fancy-log": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.2.0.tgz",
+              "integrity": "sha1-1aUbU+mrIsoH1VjytnrlX9tfy9g=",
+              "dev": true,
+              "requires": {
+                "chalk": "1.1.3",
+                "time-stamp": "1.0.1"
+              },
+              "dependencies": {
+                "time-stamp": {
+                  "version": "1.0.1",
+                  "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.0.1.tgz",
+                  "integrity": "sha1-n0vSNVnJNllm8zAtu6KwfGuZsVE=",
+                  "dev": true
+                }
+              }
+            },
+            "gulplog": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
+              "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
+              "dev": true,
+              "requires": {
+                "glogg": "1.0.0"
+              },
+              "dependencies": {
+                "glogg": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
+                  "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=",
+                  "dev": true,
+                  "requires": {
+                    "sparkles": "1.0.0"
+                  },
+                  "dependencies": {
+                    "sparkles": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+                      "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "has-gulplog": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
+              "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
+              "dev": true,
+              "requires": {
+                "sparkles": "1.0.0"
+              },
+              "dependencies": {
+                "sparkles": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+                  "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
+                  "dev": true
+                }
+              }
+            },
+            "lodash._reescape": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
+              "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
+              "dev": true
+            },
+            "lodash._reevaluate": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
+              "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
+              "dev": true
+            },
+            "lodash._reinterpolate": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+              "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
+              "dev": true
+            },
+            "lodash.template": {
+              "version": "3.6.2",
+              "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
+              "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
+              "dev": true,
+              "requires": {
+                "lodash._basecopy": "3.0.1",
+                "lodash._basetostring": "3.0.1",
+                "lodash._basevalues": "3.0.0",
+                "lodash._isiterateecall": "3.0.9",
+                "lodash._reinterpolate": "3.0.0",
+                "lodash.escape": "3.2.0",
+                "lodash.keys": "3.1.2",
+                "lodash.restparam": "3.6.1",
+                "lodash.templatesettings": "3.1.1"
+              },
+              "dependencies": {
+                "lodash._basecopy": {
+                  "version": "3.0.1",
+                  "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+                  "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
+                  "dev": true
+                },
+                "lodash._basetostring": {
+                  "version": "3.0.1",
+                  "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
+                  "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
+                  "dev": true
+                },
+                "lodash._basevalues": {
+                  "version": "3.0.0",
+                  "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
+                  "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
+                  "dev": true
+                },
+                "lodash._isiterateecall": {
+                  "version": "3.0.9",
+                  "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+                  "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
+                  "dev": true
+                },
+                "lodash.escape": {
+                  "version": "3.2.0",
+                  "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
+                  "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._root": "3.0.1"
+                  },
+                  "dependencies": {
+                    "lodash._root": {
+                      "version": "3.0.1",
+                      "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
+                      "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
+                      "dev": true
+                    }
+                  }
+                },
+                "lodash.keys": {
+                  "version": "3.1.2",
+                  "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+                  "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._getnative": "3.9.1",
+                    "lodash.isarguments": "3.1.0",
+                    "lodash.isarray": "3.0.4"
+                  },
+                  "dependencies": {
+                    "lodash._getnative": {
+                      "version": "3.9.1",
+                      "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+                      "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
+                      "dev": true
+                    },
+                    "lodash.isarguments": {
+                      "version": "3.1.0",
+                      "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+                      "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
+                      "dev": true
+                    },
+                    "lodash.isarray": {
+                      "version": "3.0.4",
+                      "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+                      "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
+                      "dev": true
+                    }
+                  }
+                },
+                "lodash.restparam": {
+                  "version": "3.6.1",
+                  "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
+                  "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
+                  "dev": true
+                },
+                "lodash.templatesettings": {
+                  "version": "3.1.1",
+                  "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
+                  "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
+                  "dev": true,
+                  "requires": {
+                    "lodash._reinterpolate": "3.0.0",
+                    "lodash.escape": "3.2.0"
+                  }
+                }
+              }
+            },
+            "minimist": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+              "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+              "dev": true
+            },
+            "multipipe": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
+              "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
+              "dev": true,
+              "requires": {
+                "duplexer2": "0.0.2"
+              },
+              "dependencies": {
+                "duplexer2": {
+                  "version": "0.0.2",
+                  "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
+                  "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
+                  "dev": true,
+                  "requires": {
+                    "readable-stream": "1.1.14"
+                  },
+                  "dependencies": {
+                    "readable-stream": {
+                      "version": "1.1.14",
+                      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+                      "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+                      "dev": true,
+                      "requires": {
+                        "core-util-is": "1.0.2",
+                        "inherits": "2.0.3",
+                        "isarray": "0.0.1",
+                        "string_decoder": "0.10.31"
+                      },
+                      "dependencies": {
+                        "core-util-is": {
+                          "version": "1.0.2",
+                          "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                          "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                          "dev": true
+                        },
+                        "inherits": {
+                          "version": "2.0.3",
+                          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                          "dev": true
+                        },
+                        "isarray": {
+                          "version": "0.0.1",
+                          "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                          "dev": true
+                        },
+                        "string_decoder": {
+                          "version": "0.10.31",
+                          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            },
+            "object-assign": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+              "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
+              "dev": true
+            },
+            "replace-ext": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+              "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
+              "dev": true
+            },
+            "through2": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz",
+              "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=",
+              "dev": true,
+              "requires": {
+                "readable-stream": "2.0.6",
+                "xtend": "4.0.1"
+              },
+              "dependencies": {
+                "readable-stream": {
+                  "version": "2.0.6",
+                  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+                  "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+                  "dev": true,
+                  "requires": {
+                    "core-util-is": "1.0.2",
+                    "inherits": "2.0.3",
+                    "isarray": "1.0.0",
+                    "process-nextick-args": "1.0.7",
+                    "string_decoder": "0.10.31",
+                    "util-deprecate": "1.0.2"
+                  },
+                  "dependencies": {
+                    "core-util-is": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                      "dev": true
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                      "dev": true
+                    },
+                    "isarray": {
+                      "version": "1.0.0",
+                      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+                      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+                      "dev": true
+                    },
+                    "process-nextick-args": {
+                      "version": "1.0.7",
+                      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+                      "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+                      "dev": true
+                    },
+                    "string_decoder": {
+                      "version": "0.10.31",
+                      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                      "dev": true
+                    },
+                    "util-deprecate": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+                      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+                      "dev": true
+                    }
+                  }
+                },
+                "xtend": {
+                  "version": "4.0.1",
+                  "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+                  "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+                  "dev": true
+                }
+              }
+            },
+            "vinyl": {
+              "version": "0.5.3",
+              "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
+              "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
+              "dev": true,
+              "requires": {
+                "clone": "1.0.2",
+                "clone-stats": "0.0.1",
+                "replace-ext": "0.0.1"
+              },
+              "dependencies": {
+                "clone": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+                  "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+                  "dev": true
+                },
+                "clone-stats": {
+                  "version": "0.0.1",
+                  "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+                  "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
+                  "dev": true
+                }
+              }
+            }
+          }
+        },
+        "object-assign": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+          "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
+          "dev": true
+        },
+        "readable-stream": {
+          "version": "2.1.5",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz",
+          "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=",
+          "dev": true,
+          "requires": {
+            "buffer-shims": "1.0.0",
+            "core-util-is": "1.0.2",
+            "inherits": "2.0.3",
+            "isarray": "1.0.0",
+            "process-nextick-args": "1.0.7",
+            "string_decoder": "0.10.31",
+            "util-deprecate": "1.0.2"
+          },
+          "dependencies": {
+            "buffer-shims": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+              "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
+              "dev": true
+            },
+            "core-util-is": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+              "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+              "dev": true
+            },
+            "inherits": {
+              "version": "2.0.3",
+              "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+              "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+              "dev": true
+            },
+            "isarray": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+              "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+              "dev": true
+            },
+            "process-nextick-args": {
+              "version": "1.0.7",
+              "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+              "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+              "dev": true
+            },
+            "string_decoder": {
+              "version": "0.10.31",
+              "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+              "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+              "dev": true
+            },
+            "util-deprecate": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+              "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+              "dev": true
+            }
+          }
+        },
+        "vinyl-bufferstream": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/vinyl-bufferstream/-/vinyl-bufferstream-1.0.1.tgz",
+          "integrity": "sha1-BTeGn1gO/6TKRay0dXnkuf5jCBo=",
+          "dev": true,
+          "requires": {
+            "bufferstreams": "1.0.1"
+          },
+          "dependencies": {
+            "bufferstreams": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.0.1.tgz",
+              "integrity": "sha1-z7GtlWjTujz+k1upq92VLeiKqyo=",
+              "dev": true,
+              "requires": {
+                "readable-stream": "1.1.14"
+              },
+              "dependencies": {
+                "readable-stream": {
+                  "version": "1.1.14",
+                  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+                  "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+                  "dev": true,
+                  "requires": {
+                    "core-util-is": "1.0.2",
+                    "inherits": "2.0.3",
+                    "isarray": "0.0.1",
+                    "string_decoder": "0.10.31"
+                  },
+                  "dependencies": {
+                    "core-util-is": {
+                      "version": "1.0.2",
+                      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                      "dev": true
+                    },
+                    "inherits": {
+                      "version": "2.0.3",
+                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                      "dev": true
+                    },
+                    "isarray": {
+                      "version": "0.0.1",
+                      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                      "dev": true
+                    },
+                    "string_decoder": {
+                      "version": "0.10.31",
+                      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            }
+          }
+        },
+        "vinyl-sourcemaps-apply": {
+          "version": "0.2.1",
+          "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
+          "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
+          "dev": true,
+          "requires": {
+            "source-map": "0.5.6"
+          },
+          "dependencies": {
+            "source-map": {
+              "version": "0.5.6",
+              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+              "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+              "dev": true
+            }
+          }
+        }
+      }
+    },
+    "gulp-rename": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz",
+      "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=",
+      "dev": true
+    },
+    "gulp-sourcemaps": {
+      "version": "2.6.4",
+      "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.4.tgz",
+      "integrity": "sha1-y7IAhFCxvM5s0jv5gze+dRv24wo=",
+      "dev": true,
+      "requires": {
+        "@gulp-sourcemaps/identity-map": "1.0.1",
+        "@gulp-sourcemaps/map-sources": "1.0.0",
+        "acorn": "5.5.0",
+        "convert-source-map": "1.5.1",
+        "css": "2.2.1",
+        "debug-fabulous": "1.0.0",
+        "detect-newline": "2.1.0",
+        "graceful-fs": "4.1.11",
+        "source-map": "0.6.1",
+        "strip-bom-string": "1.0.0",
+        "through2": "2.0.3"
+      }
+    },
+    "gulp-uglify": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz",
+      "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=",
+      "dev": true,
+      "requires": {
+        "gulplog": "1.0.0",
+        "has-gulplog": "0.1.0",
+        "lodash": "4.17.5",
+        "make-error-cause": "1.2.2",
+        "through2": "2.0.3",
+        "uglify-js": "3.3.13",
+        "vinyl-sourcemaps-apply": "0.2.1"
+      }
+    },
+    "gulplog": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
+      "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
+      "dev": true,
+      "requires": {
+        "glogg": "1.0.1"
+      }
+    },
+    "has-gulplog": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
+      "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
+      "dev": true,
+      "requires": {
+        "sparkles": "1.0.0"
+      }
+    },
+    "inherits": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+      "dev": true
+    },
+    "is-promise": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+      "dev": true
+    },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+      "dev": true
+    },
+    "lodash": {
+      "version": "4.17.5",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
+      "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==",
+      "dev": true
+    },
+    "lru-queue": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
+      "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
+      "dev": true,
+      "requires": {
+        "es5-ext": "0.10.39"
+      }
+    },
+    "make-error": {
+      "version": "1.3.4",
+      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz",
+      "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==",
+      "dev": true
+    },
+    "make-error-cause": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz",
+      "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=",
+      "dev": true,
+      "requires": {
+        "make-error": "1.3.4"
+      }
+    },
+    "memoizee": {
+      "version": "0.4.12",
+      "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.12.tgz",
+      "integrity": "sha512-sprBu6nwxBWBvBOh5v2jcsGqiGLlL2xr2dLub3vR8dnE8YB17omwtm/0NSHl8jjNbcsJd5GMWJAnTSVe/O0Wfg==",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.39",
+        "es6-weak-map": "2.0.2",
+        "event-emitter": "0.3.5",
+        "is-promise": "2.1.0",
+        "lru-queue": "0.1.0",
+        "next-tick": "1.0.0",
+        "timers-ext": "0.1.2"
+      }
+    },
+    "ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+      "dev": true
+    },
+    "next-tick": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+      "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+      "dev": true
+    },
+    "normalize-path": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+      "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+      "dev": true,
+      "requires": {
+        "remove-trailing-separator": "1.1.0"
+      }
+    },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+      "dev": true
+    },
+    "process-nextick-args": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+      "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+      "dev": true
+    },
+    "readable-stream": {
+      "version": "2.3.5",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
+      "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
+      "dev": true,
+      "requires": {
+        "core-util-is": "1.0.2",
+        "inherits": "2.0.3",
+        "isarray": "1.0.0",
+        "process-nextick-args": "2.0.0",
+        "safe-buffer": "5.1.1",
+        "string_decoder": "1.0.3",
+        "util-deprecate": "1.0.2"
+      }
+    },
+    "remove-trailing-separator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+      "dev": true
+    },
+    "resolve-url": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+      "dev": true
+    },
+    "safe-buffer": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+      "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+      "dev": true
+    },
+    "source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true
+    },
+    "source-map-resolve": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz",
+      "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=",
+      "dev": true,
+      "requires": {
+        "atob": "1.1.3",
+        "resolve-url": "0.2.1",
+        "source-map-url": "0.3.0",
+        "urix": "0.1.0"
+      }
+    },
+    "source-map-url": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz",
+      "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=",
+      "dev": true
+    },
+    "sparkles": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+      "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
+      "dev": true
+    },
+    "string_decoder": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+      "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "5.1.1"
+      }
+    },
+    "strip-bom-string": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
+      "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=",
+      "dev": true
+    },
+    "through2": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+      "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+      "dev": true,
+      "requires": {
+        "readable-stream": "2.3.5",
+        "xtend": "4.0.1"
+      }
+    },
+    "timers-ext": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.2.tgz",
+      "integrity": "sha1-YcxHp2wavTGV8UUn+XjViulMUgQ=",
+      "dev": true,
+      "requires": {
+        "es5-ext": "0.10.39",
+        "next-tick": "1.0.0"
+      }
+    },
+    "uglify-js": {
+      "version": "3.3.13",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.13.tgz",
+      "integrity": "sha512-7rdn/bDOG1ElSTPdh7AI5TCjLv63ZD4k8BBadN3ssIkhlaQL2c0yRxmXCyOYhZK0wZTgGgUSnYQ4CGu+Jos5cA==",
+      "dev": true,
+      "requires": {
+        "commander": "2.14.1",
+        "source-map": "0.6.1"
+      }
+    },
+    "urix": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+      "dev": true
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+      "dev": true
+    },
+    "vinyl-sourcemaps-apply": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
+      "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
+      "dev": true,
+      "requires": {
+        "source-map": "0.5.7"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "xtend": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+      "dev": true
+    }
+  }
+}
