{"version":3,"sources":["node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/lodash.assign/index.js","aos.js","node_modules/lodash.assign/node_modules/lodash._baseassign/index.js","node_modules/lodash.assign/node_modules/lodash._baseassign/node_modules/lodash._basecopy/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._bindcallback/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._isiterateecall/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js","node_modules/lodash.assign/node_modules/lodash.keys/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash._getnative/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash.isarguments/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash.isarray/index.js","node_modules/lodash.debounce/index.js","node_modules/lodash.throttle/index.js","src/js/aos.js","src/js/helpers/calculateOffset.js","src/js/helpers/detector.js","src/js/helpers/elements.js","src/js/helpers/handleScroll.js","src/js/helpers/prepare.js","src/js/libs/classList-shim.js","src/js/libs/observer.js","src/js/libs/offset.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","assignWith","object","source","customizer","index","props","keys","key","value","result","undefined","baseAssign","createAssigner","assign","lodash._baseassign","lodash._createassigner","lodash.keys",2,"baseCopy","lodash._basecopy",3,4,"assigner","restParam","sources","guard","thisArg","bindCallback","isIterateeCall","lodash._bindcallback","lodash._isiterateecall","lodash.restparam",5,"func","argCount","identity","collection","accumulator","other","apply","arguments",6,"baseProperty","isArrayLike","isLength","getLength","isIndex","reIsUint","test","MAX_SAFE_INTEGER","isObject","type",7,"start","TypeError","FUNC_ERROR_TEXT","nativeMax","args","rest","Array","this","otherArgs","Math","max",8,"shimKeys","keysIn","propsLength","allowIndexes","isArray","isArguments","hasOwnProperty","push","Object","Ctor","constructor","isProto","prototype","skipIndexes","getNative","objectProto","nativeKeys","lodash._getnative","lodash.isarguments","lodash.isarray",9,"isObjectLike","isNative","isFunction","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","Function","toString","RegExp","replace",10,"propertyIsEnumerable",11,"arrayTag","nativeIsArray",12,"debounce","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","id","now","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","nativeNow","Date","getTime",13,"dup",14,"throttle","lodash.debounce",15,"_throttle","_debounce","_extend","observe","detect","handleScroll","prepare","elements","window","document","$aosElements","initialized","offset","delay","easing","duration","disable","once","startEvent","refresh","initialize","init","settings","mobile","phone","tablet","forEach","el","node","removeAttribute","querySelector","setAttribute","addEventListener","event","target","nodeType","hasAttribute","AOS","./helpers/detector","./helpers/elements","./helpers/handleScroll","./helpers/prepare","./libs/classList-shim","./libs/observer","lodash.assign","lodash.throttle",16,"getOffset","calculateOffset","optionalOffset","elementOffsetTop","additionalOffset","windowHeight","innerHeight","attrs","getAttribute","anchor","anchorPlacement","isNaN","parseInt","querySelectorAll","top","offsetHeight","./../libs/offset",17,"detector","check","substr","navigator","userAgent","vendor","opera","_detect",18,"createArrayWithElements","finalElements",19,"setState","attrOnce","position","classList","add","remove","$elements","scrollTop","pageYOffset",20,"./calculateOffset",21,"documentElement","defineProperty","HTMLElement","get","update","fn","classes","self","className","split","indexOf","join","ret","splice","toggle","contains","item",22,"ready","selector","listeners","observer","MutationObserver","doc","childList","subtree","removedNodes","listener","len","element","j","jLen","WebKitMutationObserver",23,"_x","_y","offsetLeft","offsetTop","tagName","scrollLeft","offsetParent","left"],"mappings":"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","file":"aos.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o\n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseAssign = require('lodash._baseassign'),\n createAssigner = require('lodash._createassigner'),\n keys = require('lodash.keys');\n\n/**\n * A specialized version of `_.assign` for customizing assigned values without\n * support for argument juggling, multiple sources, and `this` binding `customizer`\n * functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n */\nfunction assignWith(object, source, customizer) {\n var index = -1,\n props = keys(source),\n length = props.length;\n\n while (++index < length) {\n var key = props[index],\n value = object[key],\n result = customizer(value, source[key], key, object, source);\n\n if ((result === result ? (result !== value) : (value === value)) ||\n (value === undefined && !(key in object))) {\n object[key] = result;\n }\n }\n return object;\n}\n\n/**\n * Assigns own enumerable properties of source object(s) to the destination\n * object. Subsequent sources overwrite property assignments of previous sources.\n * If `customizer` is provided it is invoked to produce the assigned values.\n * The `customizer` is bound to `thisArg` and invoked with five arguments:\n * (objectValue, sourceValue, key, object, source).\n *\n * **Note:** This method mutates `object` and is based on\n * [`Object.assign`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).\n *\n * @static\n * @memberOf _\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' });\n * // => { 'user': 'fred', 'age': 40 }\n *\n * // using a customizer callback\n * var defaults = _.partialRight(_.assign, function(value, other) {\n * return _.isUndefined(value) ? other : value;\n * });\n *\n * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });\n * // => { 'user': 'barney', 'age': 36 }\n */\nvar assign = createAssigner(function(object, source, customizer) {\n return customizer\n ? assignWith(object, source, customizer)\n : baseAssign(object, source);\n});\n\nmodule.exports = assign;\n",null,"/**\n * lodash 3.2.0 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCopy = require('lodash._basecopy'),\n keys = require('lodash.keys');\n\n/**\n * The base implementation of `_.assign` without support for argument juggling,\n * multiple sources, and `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return source == null\n ? object\n : baseCopy(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","/**\n * lodash 3.0.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","/**\n * lodash 3.1.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar bindCallback = require('lodash._bindcallback'),\n isIterateeCall = require('lodash._isiterateecall'),\n restParam = require('lodash.restparam');\n\n/**\n * Creates a function that assigns properties of source object(s) to a given\n * destination object.\n *\n * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * lodash 3.0.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\n/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = bindCallback;\n","/**\n * lodash 3.0.9 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * lodash 3.6.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","/**\n * lodash 3.1.2 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar getNative = require('lodash._getnative'),\n isArguments = require('lodash.isarguments'),\n isArray = require('lodash.isarray');\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object != 'function' && isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n isProto = typeof Ctor == 'function' && Ctor.prototype === object,\n result = Array(length),\n skipIndexes = length > 0;\n\n while (++index < length) {\n result[index] = (index + '');\n }\n for (var key in object) {\n if (!(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = keys;\n","/**\n * lodash 3.9.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\n/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && reIsHostCtor.test(value);\n}\n\nmodule.exports = getNative;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\n/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && reIsHostCtor.test(value);\n}\n\nmodule.exports = isArray;\n","/**\n * lodash 3.1.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar getNative = require('lodash._getnative');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeNow = getNative(Date, 'now');\n\n/**\n * Gets the number of milliseconds that have elapsed since the Unix epoch\n * (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @category Date\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => logs the number of milliseconds it took for the deferred function to be invoked\n */\nvar now = nativeNow || function() {\n return new Date().getTime();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the debounced function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=false] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it is invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // avoid costly calculations while the window size is in flux\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\n}\n\n/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = debounce;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar debounce = require('lodash.debounce');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the throttled function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=true] Specify invoking on the leading\n * edge of the timeout.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // avoid excessively updating the position while scrolling\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes\n * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (options === false) {\n leading = false;\n } else if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\n}\n\n/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = throttle;\n","/**\n * *******************************************************\n * AOS (Animate on scroll) - wowjs alternative\n * made to animate elements on scroll in both directions\n * *******************************************************\n */\n\n// Modules & helpers\nvar _throttle = require('lodash.throttle');\nvar _debounce = require('lodash.debounce');\nvar _extend = require('lodash.assign');\n\nvar observe = require('./libs/observer');\nvar classListShim = require('./libs/classList-shim');\n\nvar detect = require('./helpers/detector');\nvar handleScroll = require('./helpers/handleScroll');\nvar prepare = require('./helpers/prepare');\nvar elements = require('./helpers/elements');\n\n\n// Plugin scope\n;(function(window, document, undefined) {\n\n\n /**\n * Private variables\n */\n var $aosElements = [];\n var initialized = false;\n\n /**\n * Default options\n */\n var options = {\n offset: 120,\n delay: 0,\n easing: 'ease',\n duration: 400,\n disable: false,\n once: false,\n startEvent: 'DOMContentLoaded'\n };\n\n /**\n * Refresh AOS\n */\n var refresh = function(initialize) {\n // Allow refresh only when it was first initialized on startEvent\n if (initialize && initialize === true) initialized = true;\n\n if (initialized) {\n // Extend elements objects in $aosElements with their positions\n $aosElements = prepare($aosElements, options);\n // Perform scroll event, to refresh view and show/hide elements\n handleScroll($aosElements, options.once);\n\n return $aosElements;\n }\n };\n\n /**\n * Initializing AOS\n * - Create options merging defaults with user defined options\n * - Set attributes on as global setting - css relies on it\n * - Attach preparing elements to options.startEvent,\n * window resize and orientation change\n * - Attach function that handle scroll and everything connected to it\n * to window scroll event and fire once document is ready to set initial state\n */\n var init = function(settings) {\n options = _extend(options, settings);\n\n // Create initial array with elements -> to be fullfilled later with prepare()\n $aosElements = elements();\n\n /**\n * Check options.disable\n * and do not init plugin if conditions are true\n */\n if (options.disable) {\n if (\n options.disable === true ||\n (options.disable === 'mobile' && detect.mobile()) ||\n (options.disable === 'phone' && detect.phone()) ||\n (options.disable === 'tablet' && detect.tablet()) ||\n (typeof options.disable === 'function' && options.disable() === true)\n ) {\n [].forEach.call($aosElements, function(el, i) {\n el.node.removeAttribute('aos');\n el.node.removeAttribute('aos-easing');\n el.node.removeAttribute('aos-duration');\n el.node.removeAttribute('aos-delay');\n });\n return false;\n }\n }\n\n /**\n * Set global settings on body, based on options\n * so CSS can use it\n */\n document.querySelector('body').setAttribute('aos-easing', options.easing);\n document.querySelector('body').setAttribute('aos-duration', options.duration);\n document.querySelector('body').setAttribute('aos-delay', options.delay);\n\n /**\n * Listen to options.startEvent and fire first refresh\n */\n document.addEventListener(options.startEvent, function() {\n refresh(true);\n });\n\n /**\n * Refresh plugin on window resize or orientation change\n */\n window.addEventListener('resize orientationchange', _debounce(refresh, 50, true));\n\n /**\n * Handle scroll event to animate elements on scroll\n */\n window.addEventListener('scroll', _throttle(function() {\n handleScroll($aosElements, options.once);\n }, 99));\n\n /**\n * Watch if nodes are removed\n * If so refresh plugin\n */\n document.addEventListener('DOMNodeRemoved', function(event) {\n var el = event.target;\n if (el && el.nodeType === 1 && el.hasAttribute && event.target.hasAttribute('aos')) {\n _debounce(refresh, 50, true)\n }\n });\n\n /**\n * Observe [aos] elements\n * If something is loaded by AJAX\n * it'll refresh plugin automatically\n */\n observe('[aos]', refresh);\n\n return $aosElements;\n };\n\n /**\n * Public API\n */\n var AOS = {\n init: init,\n refresh: refresh\n };\n\n window.AOS = AOS;\n\n})(window, document);\n","/**\n * Calculate offset\n * basing on element's settings like:\n * - anchor\n * - offset\n *\n * @param {Node} el [Dom element]\n * @return {Integer} [Final offset that will be used to trigger animation in good position]\n */\n\nvar getOffset = require('./../libs/offset');\n\nvar calculateOffset = function(el, optionalOffset) {\n var elementOffsetTop = 0;\n var additionalOffset = 0;\n var windowHeight = window.innerHeight;\n var attrs = {\n offset: el.getAttribute('aos-offset'),\n anchor: el.getAttribute('aos-anchor'),\n anchorPlacement: el.getAttribute('aos-anchor-placement')\n };\n\n if (attrs.offset && !isNaN(attrs.offset)) {\n additionalOffset = parseInt(attrs.offset);\n }\n\n if (attrs.anchor && document.querySelectorAll(attrs.anchor)) {\n el = document.querySelectorAll(attrs.anchor)[0];\n }\n\n elementOffsetTop = getOffset(el).top;\n\n switch (attrs.anchorPlacement) {\n case 'top-bottom':\n // Default offset\n break;\n case 'center-bottom':\n elementOffsetTop += el.offsetHeight / 2;\n break;\n case 'bottom-bottom':\n elementOffsetTop += el.offsetHeight;\n break;\n case 'top-center':\n elementOffsetTop += windowHeight / 2;\n break;\n case 'bottom-center':\n elementOffsetTop += windowHeight / 2 + el.offsetHeight;\n break;\n case 'center-center':\n elementOffsetTop += windowHeight / 2 + el.offsetHeight / 2;\n break;\n case 'top-top':\n elementOffsetTop += windowHeight;\n break;\n case 'bottom-top':\n elementOffsetTop += el.offsetHeight + windowHeight;\n break;\n case 'center-top':\n elementOffsetTop += el.offsetHeight / 2 + windowHeight;\n break;\n }\n\n if (!attrs.anchorPlacement && !attrs.offset && !isNaN(optionalOffset)) {\n additionalOffset = optionalOffset;\n }\n\n return elementOffsetTop + additionalOffset;\n};\n\nmodule.exports = calculateOffset;\n","/**\n * Device detector\n */\nvar detector = {\n phone: function() {\n var check = false;\n (function(a) {\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true\n })(navigator.userAgent || navigator.vendor || window.opera);\n return check;\n },\n mobile: function() {\n var check = false;\n (function(a) {\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true\n })(navigator.userAgent || navigator.vendor || window.opera);\n return check;\n },\n tablet: function() {\n return _detect.mobile() && !_detect.phone();\n }\n};\n\nmodule.exports = detector;","/**\n * Generate initial array with elements as objects\n * This array will be extended later with elements attributes values\n * like 'position'\n */\nvar createArrayWithElements = function (elements) {\n var elements = elements || document.querySelectorAll('[aos]');\n var finalElements = [];\n\n [].forEach.call(elements, function(el, i) {\n finalElements.push({\n node: el\n });\n });\n\n return finalElements;\n}\n\nmodule.exports = createArrayWithElements;","/**\n * Set or remove aos-animate class\n * @param {node} el element\n * @param {int} top scrolled distance\n * @param {void} once\n */\nvar setState = function (el, top, once) {\n var attrOnce = el.node.getAttribute('aos-once');\n\n if (top > el.position) {\n el.node.classList.add('aos-animate');\n } else if (typeof attrOnce !== 'undefined') {\n if (attrOnce === 'false' || (!once && attrOnce !== 'true')) {\n el.node.classList.remove('aos-animate');\n }\n }\n};\n\n\n/**\n * Scroll logic - add or remove 'aos-animate' class on scroll\n *\n * @param {array} $elements array of elements nodes\n * @param {bool} once plugin option\n * @return {void}\n */\nvar handleScroll = function ($elements, once) {\n var scrollTop = window.pageYOffset;\n var windowHeight = window.innerHeight;\n /**\n * Check all registered elements positions\n * and animate them on scroll\n */\n [].forEach.call($elements, function(el, i) {\n setState(el, windowHeight + scrollTop, once);\n });\n};\n\nmodule.exports = handleScroll;\n","/* Clearing variables */\n\nvar calculateOffset = require('./calculateOffset');\n\nvar prepare = function ($elements, options) {\n\n [].forEach.call($elements, function(el, i) {\n el.node.classList.add('aos-init');\n el.position = calculateOffset(el.node, options.offset);\n });\n\n return $elements;\n};\n\nmodule.exports = prepare;\n","/**\n * Minimal classList shim for IE 9\n * By Devon Govett\n * MIT LICENSE\n */\n\nif (!(\"classList\" in document.documentElement) && Object.defineProperty && typeof HTMLElement !== 'undefined') {\n Object.defineProperty(HTMLElement.prototype, 'classList', {\n get: function() {\n var self = this;\n\n function update(fn) {\n return function(value) {\n var classes = self.className.split(/\\s+/),\n index = classes.indexOf(value);\n\n fn(classes, index, value);\n self.className = classes.join(\" \");\n }\n }\n\n var ret = {\n add: update(function(classes, index, value) {~\n index || classes.push(value);\n }),\n\n remove: update(function(classes, index) {~\n index && classes.splice(index, 1);\n }),\n\n toggle: update(function(classes, index, value) {~\n index ? classes.splice(index, 1) : classes.push(value);\n }),\n\n contains: function(value) {\n return !!~self.className.split(/\\s+/).indexOf(value);\n },\n\n item: function(i) {\n return self.className.split(/\\s+/)[i] || null;\n }\n };\n\n Object.defineProperty(ret, 'length', {\n get: function() {\n return self.className.split(/\\s+/).length;\n }\n });\n\n return ret;\n }\n });\n}","var listeners = [];\nvar doc = window.document;\nvar MutationObserver = window.MutationObserver || window.WebKitMutationObserver;\nvar observer;\n\nfunction ready(selector, fn) {\n // Store the selector and callback to be monitored\n listeners.push({\n selector: selector,\n fn: fn\n });\n if(!observer && MutationObserver){\n // Watch for changes in the document\n observer = new MutationObserver(check);\n observer.observe(doc.documentElement, {\n childList: true,\n subtree: true,\n removedNodes: true\n });\n }\n // Check if the element is currently in the DOM\n check();\n}\n\nfunction check() {\n // Check the DOM for elements matching a stored selector\n for (var i = 0, len = listeners.length, listener, elements; i < len; i++) {\n listener = listeners[i];\n // Query for elements matching the specified selector\n elements = doc.querySelectorAll(listener.selector);\n for (var j = 0, jLen = elements.length, element; j < jLen; j++) {\n element = elements[j];\n // Make sure the callback isn't invoked with the\n // same element more than once\n if (!element.ready) {\n element.ready = true;\n // Invoke the callback with the element\n listener.fn.call(element, element);\n }\n }\n }\n}\n\nmodule.exports = ready;","/**\n * Get offset of DOM element Helper\n * including these with translation\n *\n * @param {Node} el [DOM element]\n * @return {Object} [top and left offset]\n */\nvar offset = function(el) {\n var _x = 0;\n var _y = 0;\n\n while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {\n _x += el.offsetLeft - (el.tagName != 'BODY' ? el.scrollLeft : 0);\n _y += el.offsetTop - (el.tagName != 'BODY' ? el.scrollTop : 0);\n el = el.offsetParent;\n }\n\n return {\n top: _y,\n left: _x\n };\n};\n\nmodule.exports = offset;\n"],"sourceRoot":"/source/"}