{"version":3,"sources":["webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/lodash/_baseEach.js","webpack:///./node_modules/lodash/_root.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/_createBaseEach.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/forEach.js","webpack:///./node_modules/lodash/_castFunction.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/identity.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/browser-update/update.npm.full.js","webpack:///./node_modules/yall-js/src/yall.mjs","webpack:///./node_modules/smoothscroll-polyfill/dist/smoothscroll.js"],"names":["baseIsArguments","isObjectLike","objectProto","Object","prototype","hasOwnProperty","propertyIsEnumerable","isArguments","arguments","value","call","module","exports","func","_typeof","Symbol","iterator","obj","constructor","root","stubFalse","freeExports","nodeType","freeModule","Buffer","undefined","isBuffer","Ctor","window","IntersectionObserverEntry","defineProperty","get","this","intersectionRatio","document","registry","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","observe","target","_observationTargets","some","item","element","Error","_registerInstance","push","entry","_monitorIntersections","_checkForIntersections","unobserve","filter","length","_unmonitorIntersections","_unregisterInstance","disconnect","takeRecords","records","_queuedEntries","slice","_initThresholds","opt_threshold","threshold","Array","isArray","sort","t","i","a","isNaN","_parseRootMargin","opt_rootMargin","margins","split","map","margin","parts","exec","parseFloat","unit","_monitoringIntersections","_monitoringInterval","setInterval","addEvent","_domObserver","MutationObserver","attributes","childList","characterData","subtree","clearInterval","removeEvent","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","top","bottom","left","right","width","height","forEach","targetRect","getBoundingClientRect","rootContainsTarget","_rootContainsTarget","oldEntry","intersectionRect","_computeTargetAndRootIntersection","newEntry","time","performance","now","boundingClientRect","rootBounds","_hasCrossedThreshold","isIntersecting","_callback","getComputedStyle","display","rect1","rect2","parent","getParentNode","atRoot","parentRect","parentComputedStyle","body","documentElement","overflow","Math","max","min","html","clientWidth","clientHeight","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","indexOf","index","splice","targetArea","intersectionArea","Number","toFixed","callback","opt_options","fn","timeout","timer","options","bind","setTimeout","rootMargin","join","node","event","opt_useCapture","addEventListener","attachEvent","removeEventListener","detatchEvent","el","err","child","parentNode","host","assignedSlot","freeGlobal","global","freeProcess","process","nodeUtil","types","require","binding","e","baseIsTypedArray","baseUnary","nodeIsTypedArray","isTypedArray","baseGetTag","isObject","tag","baseTimes","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","result","String","key","transform","arg","_Symbol","nativeObjectToString","toString","symToStringTag","toStringTag","isOwn","unmasked","isPrototype","nativeKeys","object","baseFor","keys","iteratee","createBaseFor","fromRight","keysFunc","iterable","props","n","isLength","typedArrayTags","overArg","array","baseForOwn","baseEach","createBaseEach","freeSelf","self","Function","g","isArrayLike","eachFunc","collection","arrayEach","castFunction","identity","type","getRawTag","objectToString","isFunction","arrayLikeKeys","baseKeys","webpackPolyfill","deprecate","paths","children","enumerable","l","reIsUint","test","$bu_","s","vsakt","f","o","o_a","c","y","v","uc","samsung","ios","vsinsecure_below","vsdefault","names","x","silk","get_browser","ua","navigator","userAgent","replace","r","age_years","no_device_update","available","ignore","reason","pattern","RegExp","other","mobile","pats","VV","match","engine","fullv","$1","available_ios","parseInt","is_insecure","is_supported","is_latest","less","vmaj","round","esr","releases_per_year","engine_version","semver","vstr","v1","v2","diff","h","screen","pr","devicePixelRatio","$bu_getBrowser","op","b","ll","_buorgres","languages","language","browserLanguage","userLanguage","getAttribute","llfull","toLowerCase","substr","domain","location","href","apiver","api","jsv","required_min","vs","notify","required","reminder","reminderClosed","onshow","onclick","onclose","pageurl","hostname","newwindow","hash","random","Image","src","reasons","hide_reasons","notified","bb","override_ua","is_below_required","notify_esr","insecure","unsecure","unsupported","check_show","already_shown","cookie","setCookie","hours","Date","getTime","toGMTString","nomessage","$buo_show","burl","url","url_permanent_hide","ta","en","ar","bg","ca","cs","da","de","es","fa","fi","fr","gl","he","hi","hu","id","it","ja","ko","lv","ms","nl","no","pl","pt","ro","ru","sk","sl","sq","sr","sv","th","tr","uk","vi","zh","custom_text","text","msg","msgmore","bupdate","bignore","tar","div","createElement","className","style","style2","args","data","k","busprintf","innerHTML","addmargin","container","appendChild","insertBefore","firstChild","updatebutton","getElementById","noclose","hm","marginTop","bodymt","cursor","open","shift_page_down","getElementsByTagName","ignorebutton","no_permanent_hide","bnever","remind","opacity","visibility","removeChild","dont_show_debuginfo","lazyClass","lazyBackgroundClass","idleLoadTimeout","observeChanges","events","win","ric","io","dataAttrs","arr","queryDOM","selector","querySelectorAll","concat","yallLoad","sourceNode","nodeName","yallApplyFn","yallFlipDataAttrs","autoplay","load","classList","contains","remove","add","lazyBackgroundLoaded","yallBindEvents","eventIndex","listener","_loop","dataAttrIndex","dataset","setAttribute","items","itemIndex","yallIntersectionObserve","intersectionListener","lazyElements","lazyElement","yallMutationObserve","newElement","entries","observeRootSelector","mutationObserverOptions","polyfill","w","d","__forceSmoothScrollPolyfill__","Element","HTMLElement","original","scroll","scrollTo","scrollBy","elementScroll","scrollElement","scrollIntoView","ROUNDING_TOLERANCE","shouldBailOut","smoothScroll","scrollX","pageXOffset","scrollY","pageYOffset","scrollLeft","scrollTop","SyntaxError","behavior","scrollableParent","findScrollableParent","parentRects","clientRects","position","firstArg","TypeError","hasScrollableSpace","axis","scrollHeight","scrollWidth","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","step","context","currentX","currentY","elapsed","startTime","cos","PI","startX","startY","method","scrollable","requestAnimationFrame"],"mappings":"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","file":"js/52-ead9982e0938f86fd6ab.chunk.js","sourcesContent":["var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Built-in value references. */\n\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n\nvar isArguments = baseIsArguments(function () {\n return arguments;\n}()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\nmodule.exports = isArguments;","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function (value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar root = require('./_root'),\n stubFalse = require('./stubFalse');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Built-in value references. */\n\nvar Buffer = moduleExports ? root.Buffer : undefined;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n\nvar isBuffer = nativeIsBuffer || stubFalse;\nmodule.exports = isBuffer;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n}\n\nmodule.exports = isPrototype;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function () {\n 'use strict'; // Exit early if we're not running in a browser.\n\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== 'object') {\n return;\n } // Exit early if all IntersectionObserver and IntersectionObserverEntry\n // features are natively supported.\n\n\n if ('IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function get() {\n return this.intersectionRatio > 0;\n }\n });\n }\n\n return;\n }\n /**\n * A local reference to the document.\n */\n\n\n var document = window.document;\n /**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\n\n var registry = [];\n /**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\n\n function IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect; // Calculates the intersection ratio.\n\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height; // Sets intersection ratio.\n\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n }\n /**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\n\n\n function IntersectionObserver(callback, opt_options) {\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n } // Binds and throttles `this._checkForIntersections`.\n\n\n this._checkForIntersections = throttle(this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT); // Private properties.\n\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin); // Public properties.\n\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function (margin) {\n return margin.value + margin.unit;\n }).join(' ');\n }\n /**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\n\n\n IntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n /**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\n\n IntersectionObserver.prototype.POLL_INTERVAL = null;\n /**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\n\n IntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n /**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\n\n IntersectionObserver.prototype.observe = function (target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function (item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n\n this._observationTargets.push({\n element: target,\n entry: null\n });\n\n this._monitorIntersections();\n\n this._checkForIntersections();\n };\n /**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\n\n\n IntersectionObserver.prototype.unobserve = function (target) {\n this._observationTargets = this._observationTargets.filter(function (item) {\n return item.element != target;\n });\n\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n\n this._unregisterInstance();\n }\n };\n /**\n * Stops observing all target elements for intersection changes.\n */\n\n\n IntersectionObserver.prototype.disconnect = function () {\n this._observationTargets = [];\n\n this._unmonitorIntersections();\n\n this._unregisterInstance();\n };\n /**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\n\n\n IntersectionObserver.prototype.takeRecords = function () {\n var records = this._queuedEntries.slice();\n\n this._queuedEntries = [];\n return records;\n };\n /**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\n\n\n IntersectionObserver.prototype._initThresholds = function (opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n return threshold.sort().filter(function (t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n\n return t !== a[i - 1];\n });\n };\n /**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\n\n\n IntersectionObserver.prototype._parseRootMargin = function (opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function (margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n\n return {\n value: parseFloat(parts[1]),\n unit: parts[2]\n };\n }); // Handles shorthand.\n\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n return margins;\n };\n /**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @private\n */\n\n\n IntersectionObserver.prototype._monitorIntersections = function () {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true; // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(this._checkForIntersections, this.POLL_INTERVAL);\n } else {\n addEvent(window, 'resize', this._checkForIntersections, true);\n addEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections);\n\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n }\n };\n /**\n * Stops polling for intersection changes.\n * @private\n */\n\n\n IntersectionObserver.prototype._unmonitorIntersections = function () {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false;\n clearInterval(this._monitoringInterval);\n this._monitoringInterval = null;\n removeEvent(window, 'resize', this._checkForIntersections, true);\n removeEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this._domObserver) {\n this._domObserver.disconnect();\n\n this._domObserver = null;\n }\n }\n };\n /**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\n\n\n IntersectionObserver.prototype._checkForIntersections = function () {\n var rootIsInDom = this._rootIsInDom();\n\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function (item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n\n var rootContainsTarget = this._rootContainsTarget(target);\n\n var oldEntry = item.entry;\n\n var intersectionRect = rootIsInDom && rootContainsTarget && this._computeTargetAndRootIntersection(target, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n };\n /**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\n\n\n IntersectionObserver.prototype._computeTargetAndRootIntersection = function (target, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n var targetRect = getBoundingClientRect(target);\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ? window.getComputedStyle(parent) : {}; // If the parent isn't displayed, an intersection can't happen.\n\n if (parentComputedStyle.display == 'none') return;\n\n if (parent == this.root || parent == document) {\n atRoot = true;\n parentRect = rootRect;\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body && parent != document.documentElement && parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n } // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n\n\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n if (!intersectionRect) break;\n }\n\n parent = getParentNode(parent);\n }\n\n return intersectionRect;\n };\n /**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\n\n\n IntersectionObserver.prototype._getRootRect = function () {\n var rootRect;\n\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n\n return this._expandRectByRootMargin(rootRect);\n };\n /**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\n\n\n IntersectionObserver.prototype._expandRectByRootMargin = function (rect) {\n var margins = this._rootMarginValues.map(function (margin, i) {\n return margin.unit == 'px' ? margin.value : margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n return newRect;\n };\n /**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\n\n\n IntersectionObserver.prototype._hasCrossedThreshold = function (oldEntry, newEntry) {\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1; // Ignore unchanged ratios\n\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i]; // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n\n if (threshold == oldRatio || threshold == newRatio || threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n };\n /**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\n\n\n IntersectionObserver.prototype._rootIsInDom = function () {\n return !this.root || containsDeep(document, this.root);\n };\n /**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\n\n\n IntersectionObserver.prototype._rootContainsTarget = function (target) {\n return containsDeep(this.root || document, target);\n };\n /**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\n\n\n IntersectionObserver.prototype._registerInstance = function () {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n };\n /**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\n\n\n IntersectionObserver.prototype._unregisterInstance = function () {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n };\n /**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\n\n\n function now() {\n return window.performance && performance.now && performance.now();\n }\n /**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\n\n\n function throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function () {\n fn();\n timer = null;\n }, timeout);\n }\n };\n }\n /**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\n\n\n function addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n }\n /**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\n\n\n function removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n }\n /**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\n\n\n function computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n return width >= 0 && height >= 0 && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n }\n /**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\n\n\n function getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {// Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect(); // Older IE\n\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n\n return rect;\n }\n /**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\n\n\n function getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n }\n /**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\n\n\n function containsDeep(parent, child) {\n var node = child;\n\n while (node) {\n if (node == parent) return true;\n node = getParentNode(node);\n }\n\n return false;\n }\n /**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\n\n\n function getParentNode(node) {\n var parent = node.parentNode;\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n if (parent && parent.assignedSlot) {\n // If the parent is distributed in a , return the parent of a slot.\n return parent.assignedSlot.parentNode;\n }\n\n return parent;\n } // Exposes the constructors globally.\n\n\n window.IntersectionObserver = IntersectionObserver;\n window.IntersectionObserverEntry = IntersectionObserverEntry;\n})();","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object' && global && global.Object === Object && global;\nmodule.exports = freeGlobal;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar freeGlobal = require('./_freeGlobal');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Detect free variable `process` from Node.js. */\n\nvar freeProcess = moduleExports && freeGlobal.process;\n/** Used to access faster Node.js helpers. */\n\nvar nodeUtil = function () {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n } // Legacy `process.binding('util')` for Node.js < 10.\n\n\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}();\n\nmodule.exports = nodeUtil;","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n/* Node.js helper references. */\n\n\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\nmodule.exports = isTypedArray;","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n/** `Object#toString` result references. */\n\n\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n } // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n\n\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\n}\n\nmodule.exports = arrayLikeKeys;","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;","var _Symbol = require('./_Symbol');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\n}\n\nmodule.exports = getRawTag;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n\n var result = [];\n\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n\n return result;\n}\n\nmodule.exports = baseKeys;","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;","var createBaseFor = require('./_createBaseFor');\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n\n\nvar baseFor = createBaseFor();\nmodule.exports = baseFor;","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function (object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n\n return object;\n };\n}\n\nmodule.exports = createBaseFor;","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\n}\n\nmodule.exports = baseTimes;","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar argsTag = '[object Arguments]';\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n/** Used to identify `toStringTag` values of typed arrays. */\n\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;","var overArg = require('./_overArg');\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\n\nvar nativeKeys = overArg(Object.keys, Object);\nmodule.exports = nativeKeys;","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\nmodule.exports = isArray;","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n\n return array;\n}\n\nmodule.exports = arrayEach;","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n\n\nvar baseEach = createBaseEach(baseForOwn);\nmodule.exports = baseEach;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar freeGlobal = require('./_freeGlobal');\n/** Detect free variable `self`. */\n\n\nvar freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\nmodule.exports = root;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && _typeof(value) == 'object';\n}\n\nmodule.exports = isObjectLike;","var isArrayLike = require('./isArrayLike');\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n\n\nfunction createBaseEach(eachFunc, fromRight) {\n return function (collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while (fromRight ? index-- : ++index < length) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar _Symbol = root.Symbol;\nmodule.exports = _Symbol;","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n\n\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;","var identity = require('./identity');\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n\n\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = _typeof(value);\n\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;","var _Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n/** `Object#toString` result references. */\n\n\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n\n\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\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/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\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 */\n\n\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/** Used to detect unsigned integer values. */\n\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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 */\n\nfunction isIndex(value, length) {\n var type = _typeof(value);\n\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;","//(c)2017, MIT Style License \n//it is recommended to directly link to this file because we update the detection code\n\"use strict\";\n\nvar $bu_ = new function () {\n var s = this;\n this.vsakt = {\n e: 18,\n i: 15,\n f: 66,\n o: 60,\n o_a: 50.3,\n s: \"12.1\",\n c: 74,\n y: \"19.4\",\n v: 2.4,\n uc: \"12.10\",\n samsung: 9.2,\n ios: 12.1\n }; //severly insecure below(!) this version, insecure means remote code execution that is actively being exploited\n\n this.vsinsecure_below = {\n i: 11,\n e: 16,\n c: 64,\n f: 59,\n y: \"18.11\",\n s: \"11.1.1\",\n ios: \"9.3.5\",\n v: \"2.0\",\n uc: \"12.6\",\n samsung: \"6.4\",\n o_a: 44,\n o: 55\n };\n this.vsdefault = {\n e: -3,\n i: 11,\n f: -3,\n o: -3,\n o_a: -3,\n s: -1,\n c: -3,\n a: 535,\n y: 19.3,\n v: 2.1,\n uc: 12.8,\n samsung: 7.9,\n ios: 9\n };\n this.names = {\n i: 'Internet Explorer',\n e: \"Edge\",\n f: 'Firefox',\n o: 'Opera',\n o_a: 'Opera',\n s: 'Safari',\n c: \"Chrome\",\n a: \"Android Browser\",\n y: \"Yandex Browser\",\n v: \"Vivaldi\",\n uc: \"UC Browser\",\n samsung: \"Samsung Internet\",\n x: \"Other\",\n ios: \"iOS\",\n silk: \"Silk\"\n };\n\n this.get_browser = function (ua) {\n var n,\n ua = (ua || navigator.userAgent).replace(\"_\", \".\"),\n r = {\n n: \"x\",\n v: 0,\n t: \"other browser\",\n age_years: undefined,\n no_device_update: false,\n available: s.vsakt\n };\n\n function ignore(reason, pattern) {\n if (new RegExp(pattern, \"i\").test(ua)) return reason;\n return false;\n }\n\n r.other = ignore(\"bot\", \"bot|spider|archiver|transcoder|crawl|checker|monitoring|prerender|screenshot|python-|php|uptime|validator|fetcher|facebook|slurp|google|yahoo|node|mail.ru|github|cloudflare|addthis|thumb|proxy|feed|fetch|favicon|link|http|scrape|seo|page|search console|AOLBuild|Teoma|Expeditor\") || // ignore(\"discontinued browser\",\"camino|flot|fennec|galeon|coolnovo\") ||\n ignore(\"TV\", \"SMART-TV|SmartTV\") || ignore(\"niche browser\", \"Dorado|LBBROWSER|Focus|waterfox|Firefox/56.2|Firefox/56.3|Whale|MIDP|k-meleon|sparrow|wii|Chromium|Puffin|Opera Mini|maxthon|maxton|dolfin|dolphin|seamonkey|opera mini|netfront|moblin|maemo|arora|kazehakase|epiphany|konqueror|rekonq|symbian|webos|PaleMoon|QupZilla|Otter|Midori|qutebrowser\") || ignore(\"mobile without upgrade path or landing page\", \"cros|kindle|tizen|silk|blackberry|bb10|RIM|PlayBook|meego|nokia|ucweb|ZuneWP7|537.85.10\"); // ignore(\"android(chrome) web view\",\"; wv\");\n\n r.mobile = /iphone|ipod|ipad|android|mobile|phone|ios|iemobile/i.test(ua);\n var pats = [[\"CriOS.VV\", \"c\", 'ios'], [\"FxiOS.VV\", \"f\", 'ios'], [\"Trident.*rv:VV\", \"i\", 'i'], [\"Trident.VV\", \"io\", 'i'], [\"UCBrowser.VV\", \"uc\", 'c'], [\"MSIE.VV\", \"i\", 'i'], [\"Edge.VV\", \"e\", 'e'], [\"Vivaldi.VV\", \"v\", 'c'], [\"Android.*OPR.VV\", \"o_a\", 'c'], [\"OPR.VV\", \"o\", 'c'], [\"YaBrowser.VV\", \"y\", 'c'], [\"SamsungBrowser.VV\", \"samsung\", 'c'], [\"Silk.VV\", \"silk\", 'c'], [\"Chrome.VV\", \"c\", 'c'], [\"Firefox.VV\", \"f\", 'f'], [\" OS.VV.*Safari\", \"ios\", 'ios'], [\"Version.VV.*Safari\", \"s\", 's'], [\"Safari.VV\", \"so\", 's'], [\"Opera.*Version.VV\", \"o\"], [\"Opera.VV\", \"o\"]];\n var VV = \"(\\\\d+\\\\.?\\\\d+\\\\.?\\\\d*\\\\.?\\\\d*)\";\n\n for (var i = 0; i < pats.length; i++) {\n if (ua.match(new RegExp(pats[i][0].replace(\"VV\", VV), \"i\"))) {\n r.n = pats[i][1];\n r.engine = pats[i][2];\n break;\n }\n }\n\n r.fullv = RegExp.$1;\n r.v = parseFloat(r.fullv); // Special treatment of some systems\n //do not notify old systems since there is no up-to-date browser available\n\n if (/windows.nt.5.0|windows.nt.4.0|windows.95|windows.98|os x 10.2|os x 10.3|os x 10.4|os x 10.5/i.test(ua)) {\n r.no_device_update = true;\n r.available = {};\n } //iOS\n\n\n if (/iphone|ipod|ipad|ios/i.test(ua)) {\n ua.match(new RegExp(\"OS.\" + VV, \"i\")); //\n\n r.n = \"ios\";\n r.fullv = RegExp.$1;\n r.v = parseFloat(r.fullv);\n r.engine = 'ios';\n r.available = {\n \"ios\": s.available_ios(ua, v)\n };\n if (r.available.ios < 11) r.no_device_update = true;\n } //winxp/vista/2003\n\n\n if (/windows.nt.5.1|windows.nt.5.2|windows.nt.6.0/i.test(ua)) {\n r.available = {\n \"c\": 49.9,\n \"f\": 52.9\n };\n } //old mac\n\n\n if (/os x 10.6/i.test(ua)) {\n r.available = {\n \"s\": \"5.1.10\",\n \"c\": 49.9,\n \"f\": 48\n };\n r.no_device_update = true;\n }\n\n if (/os x 10.7|os x 10.8/i.test(ua)) {\n r.available = {\n \"s\": \"6.2.8\",\n \"c\": 49.9,\n \"f\": 48\n };\n r.no_device_update = true;\n }\n\n if (/os x 10.9/i.test(ua)) r.available.s = \"9.1.3\";\n if (/os x 10.10/i.test(ua)) r.available.s = \"10.1.2\"; //check for android stock browser\n\n if (ua.indexOf('Android') > -1 && r.n === \"s\") {\n var v = parseInt((/WebKit\\/([0-9]+)/i.exec(ua) || 0)[1], 10) || 2000;\n\n if (v <= 534) {\n r.n = \"a\";\n r.fullv = r.v = v;\n r.is_insecure = true;\n }\n } // Special treatment of some browsers\n\n\n if (r.n === \"so\") {\n r.v = r.fullv = 4.0;\n r.n = \"s\";\n }\n\n if (r.n === \"io\") {\n r.n = \"i\";\n if (r.v > 6) r.v = 11;else if (r.v > 5) r.v = 10;else if (r.v > 4) r.v = 9;else if (r.v > 3.1) r.v = 8;else if (r.v > 3) r.v = 7;else r.v = 9;\n r.fullv = r.v;\n }\n\n r.t = s.names[r.n] + \" \" + r.v;\n r.is_supported = r.is_latest = !s.vsakt[r.n] ? undefined : s.less(r.fullv, s.vsakt[r.n]) <= 0;\n r.vmaj = Math.round(r.v);\n r.is_insecure = r.is_insecure || !s.vsinsecure_below[r.n] ? undefined : s.less(r.fullv, s.vsinsecure_below[r.n]) === 1;\n\n if (r.n === \"f\" && (r.vmaj === 52 || r.vmaj === 60) || r.n === \"i\" && r.vmaj === 11) {\n r.is_supported = true;\n r.is_insecure = false;\n if (r.n === \"f\") r.esr = true;\n }\n\n if ((r.n === \"c\" || r.n === \"f\" || r.n === \"o\") && s.less(r.fullv, parseFloat(s.vsakt[r.n]) - 1) <= 0) r.is_supported = true; //mark also the version before the current version as supported to make the transitions smoother\n\n if (r.n === \"ios\" && r.v > 10.3) r.is_supported = true;\n if (r.n === \"a\" || r.n === \"x\") r.t = s.names[r.n];\n\n if (r.n === \"e\") {\n r.t = s.names[r.n] + \" \" + r.vmaj;\n r.is_supported = s.less(r.fullv, \"15.15063\") != 1;\n }\n\n var releases_per_year = {\n 'f': 7,\n 'c': 8,\n 'o': 8,\n 'i': 1,\n 'e': 1,\n 's': 1\n }; //,'v':1}\n\n if (releases_per_year[r.n]) {\n r.age_years = Math.round((s.vsakt[r.n] - r.v) / releases_per_year[r.n] * 10) / 10 || 0;\n }\n\n var engines = {\n e: \"Edge.VV\",\n c: \"Chrome.VV\",\n f: \"Firefox.VV\",\n s: \"Version.VV\",\n i: \"MSIE.VV\",\n \"ios\": \" OS.VV\"\n };\n\n if (r.engine) {\n ua.match(new RegExp(engines[r.engine].replace(\"VV\", VV), \"i\"));\n r.engine_version = parseFloat(RegExp.$1);\n }\n\n return r;\n };\n\n this.semver = function (vstr) {\n if (vstr instanceof Array) return vstr;\n var x = (vstr + \".0.0.0\").split('.');\n return [parseInt(x[0]) || 0, parseInt(x[1]) || 0, parseInt(x[2]) || 0, parseInt(x[3]) || 0];\n };\n\n this.less = function (v1, v2) {\n //semantic version comparison: returns 1 if v1v2\n v1 = s.semver(v1);\n v2 = s.semver(v2);\n\n for (var i = 0;; i++) {\n if (i >= v1.length) return i >= v2.length ? 0 : 1;\n if (i >= v2.length) return -1;\n var diff = v2[i] - v1[i];\n if (diff) return diff > 0 ? 1 : -1;\n }\n };\n\n this.available_ios = function (ua, v) {\n var h = Math.max(window.screen.height, window.screen.width),\n pr = window.devicePixelRatio;\n\n if (/ipad/i.test(ua)) {\n if (h == 1024 && pr == 2) // iPad 3 (iOS 9), 4, 5, Mini 2, Mini 3, Mini 4, Air, Air 2, Pro 9.7\n return 10; //? only ipad 4 has ios 10, all other can have ios 11\n\n if (h == 1112) // iPad Pro 10.5\n return 15;\n if (h == 1366) //iPad Pro 12.9, Pro 12.9 (2nd Gen)\n return 15;\n if (h == 1024 && v < 6) return 5; // iPad\n\n return 9; // iPad 2, iPad Mini\n }\n\n if (pr == 1) // 1/3G/3GS\n return 6; //for 3GS\n\n if (h == 812) // && pr == 3)// X\n return 11 + 4;\n if (h == 736 || h == 667) // && pr == 3)// 6+/6s+/7+ and 8+ or // 6+/6s+/7+ and 8+ in zoom mode + // 6/6s/7 and 8\n return 8 + 5;\n if (h == 568) // 5/5C/5s/SE or 6/6s/7 and 8 in zoom mode\n return 10;\n if (h == 480) // i4/4s\n return 7;\n return 6;\n };\n /*\r\n this.sub= function(v,minus) {\r\n //semantic version subtraction\r\n v=s.semver(v)\r\n minus=s.semver(minus)\r\n for (var i=0; ;i++) {\r\n if (i>=v.length||i>minus.length) break;\r\n v[i]-=v[minus];\r\n }\r\n return v.join('.')\r\n }\r\n */\n\n}();\nwindow.$bu_getBrowser = $bu_.get_browser;\n\nvar $buo = function $buo(op, test) {\n var n = window.navigator,\n b;\n op = window._buorgres = op || {};\n var ll = op.l || (n.languages ? n.languages[0] : null) || n.language || n.browserLanguage || n.userLanguage || document.documentElement.getAttribute(\"lang\") || \"en\";\n op.llfull = ll.replace(\"_\", \"-\").toLowerCase().substr(0, 5);\n op.ll = op.llfull.substr(0, 2);\n op.domain = op.domain !== undefined ? op.domain : (/file:/.test(location.href) ? \"https:\" : \"\") + \"//browser-update.org\";\n op.apiver = op.api || op.c || -1;\n op.jsv = \"3.2.11npm\";\n var required_min = op.apiver < 2018 && {\n i: 10,\n f: 11,\n o: 21,\n s: 8,\n c: 30\n } || {};\n var vs = op.notify || op.vs || {}; //old style config: maximum version to notify\n\n vs.e = vs.e || vs.i;\n vs.i = vs.i || vs.e;\n var required = op.required || {}; //minimum browser versions needed\n\n required.e = required.e || required.i;\n required.i = required.i || required.e;\n\n for (b in $bu_.vsdefault) {\n if (vs[b]) {\n //old style: browsers to notify\n if ($bu_.less(vs[b], 0) >= 0) // required <= 0\n required[b] = parseFloat($bu_.vsakt[b]) + parseFloat(vs[b]) + 0.01;else required[b] = parseFloat(vs[b]) + 0.01;\n }\n\n if (!(b in required)) required[b] = $bu_.vsdefault[b];\n if ($bu_.less(required[b], 0) >= 0) // required <= 0\n required[b] = parseFloat($bu_.vsakt[b]) + required[b]; // TODO: make it work for string version\n\n if (required_min[b] && $bu_.less(required[b], required_min[b]) === 1) // required < required_min\n required[b] = required_min[b];\n }\n\n required.ios = required.ios || required.s;\n op.required = required;\n op.reminder = op.reminder < 0.1 ? 0 : op.reminder || 24 * 7;\n op.reminderClosed = op.reminderClosed < 1 ? 0 : op.reminderClosed || 24 * 7;\n\n op.onshow = op.onshow || function (o) {};\n\n op.onclick = op.onclick || function (o) {};\n\n op.onclose = op.onclose || function (o) {};\n\n op.pageurl = op.pageurl || location.hostname || \"x\";\n op.newwindow = op.newwindow !== false;\n op.test = test || op.test || location.hash === \"#test-bu\" || false;\n\n if (Math.random() * 1200 < 1 && !op.test) {\n var i = new Image();\n i.src = \"//browser-update.org/count.php?what=brow&jsv=\" + op.jsv;\n }\n\n op.test = test || op.test || location.hash === \"#test-bu\";\n op.reasons = [];\n op.hide_reasons = [];\n\n function check_show(op) {\n var bb = $bu_.get_browser(op.override_ua);\n op.is_below_required = required[bb.n] && $bu_.less(bb.fullv, required[bb.n]) === 1; //bb.fullv 0) return false;\n if (op.reasons.length > 0) return true;\n return false;\n }\n\n op.notified = check_show(op);\n op.already_shown = document.cookie.indexOf(\"browserupdateorg=pause\") > -1;\n if (!op.test && (!op.notified || op.already_shown)) return;\n\n op.setCookie = function (hours) {\n document.cookie = 'browserupdateorg=pause; expires=' + new Date(new Date().getTime() + 3600000 * hours).toGMTString() + '; path=/';\n };\n\n if (op.reminder > 0) op.setCookie(op.reminder);\n\n if (op.nomessage) {\n op.onshow(op);\n return;\n }\n\n $buo_show();\n};\n\nmodule.exports = $buo;\n\"use strict\";\n\nvar $buo_show = function $buo_show() {\n var op = window._buorgres;\n var bb = $bu_getBrowser();\n var burl = op.burl || \"http\" + (/MSIE/i.test(navigator.userAgent) ? \"\" : \"s\") + \"://browser-update.org/\";\n\n if (!op.url) {\n op.url = burl + (op.l && op.l + \"/\" || \"\") + \"update-browser.html\" + (op.test ? \"?force_outdated=true\" : \"\") + \"#\" + op.jsv + \":\" + op.pageurl;\n }\n\n op.url_permanent_hide = op.url_permanent_hide || burl + \"block-ignore-browser-update-warning.html\";\n /*\r\n if (Math.random()*1000<1 && !op.test && !op.betatest) {\r\n var i = new Image();\r\n var txt=op[\"text_\"+ll]||op.text||\"\";\r\n var extra=encodeURIComponent(\"frac=\"+frac+\"&txt=\"+txt+\"&apiver=\"+op.apiver);\r\n i.src=\"https://browser-update.org/count.php?what=noti&from=\"+bb.n+\"&fromv=\"+bb.v + \"&ref=\"+ escape(op.pageurl) + \"&jsv=\"+op.jsv+\"&tv=\"+op.style+\"&extra=\"+extra;\r\n }\r\n */\n\n function busprintf() {\n var args = arguments;\n var data = args[0];\n\n for (var k = 1; k < args.length; ++k) {\n data = data.replace(/%s/, args[k]);\n }\n\n return data;\n }\n\n var t = {},\n ta;\n t.en = {\n 'msg': 'Your web browser ({brow_name}) is out of date.',\n 'msgmore': 'Update your browser for more security, speed and the best experience on this site.',\n 'bupdate': 'Update browser',\n 'bignore': 'Ignore',\n 'remind': 'You will be reminded in {days} days.',\n 'bnever': 'Never show again'\n };\n t.ar = {\n 'msg': 'متصفح الإنترنت الخاص بك ({brow_name}) غير مُحدّث.',\n 'msgmore': 'قم بتحديث المتصفح الخاص بك لمزيد من الأمان والسرعة ولأفضل تجربة على هذا الموقع.',\n 'bupdate': 'تحديث المتصفح',\n 'bignore': 'تجاهل',\n 'remind': 'سيتم تذكيرك في غضون {days} أيام.',\n 'bnever': 'لا تظهر مرة أخرى'\n };\n t.bg = 'Вашият браузър ({brow_name}) не е актуализиран. Актуализирайте го за повече сигурност, удобство и най-добро изживяване на сайта. Актуализирайте браузъра Игнорирайте';\n t.ca = 'El teu navegador ({brow_name}) està desactualitzat.vulnerabilitats conegudes i pot no mostrar totes les característiques d\\'aquest i altres llocs web. Aprèn a actualitzar el navegador';\n t.cs = 'Váš webový prohlížeč ({brow_name}) je zastaralý . Pro větší bezpečnost, pohodlí a optimální zobrazení této stránky si prosím svůj prohlížeč aktualizujte. Aktualizovat prohlížeč Ignorovat';\n t.da = {\n 'msg': 'Din web browser ({brow_name}) er forældet',\n 'msgmore': 'Opdater din browser for mere sikkerhed, hastighed og den bedste oplevelse på denne side.',\n 'bupdate': 'Opdater browser',\n 'bignore': 'Ignorer',\n 'remind': 'Du vil blive påmindet om {days} dage.',\n 'bnever': 'Vis aldrig igen'\n };\n t.de = {\n 'msg': 'Ihr Webbrowser ({brow_name}) ist veraltet.',\n 'msgmore': 'Aktualisieren Sie Ihren Browser für mehr Sicherheit, Geschwindigkeit und den besten Komfort auf dieser Seite.',\n 'bupdate': 'Browser aktualisieren',\n 'bignore': 'Ignorieren',\n 'remind': 'Sie werden in {days} Tagen wieder erinnert.',\n 'bnever': 'Nie wieder anzeigen'\n };\n t.el = {\n 'msg': 'Το πρόγραμμα περιήγησής σας ({brow_name}) είναι απαρχαιωμένο.',\n 'msgmore': 'Ενημερώστε το πρόγραμμα περιήγησής σας για περισσότερη ασφάλεια, ταχύτητα και την καλύτερη εμπειρία σ\\' αυτόν τον ιστότοπο.',\n 'bupdate': 'Ενημερώστε το πρόγραμμα περιήγησης',\n 'bignore': 'Αγνοήστε',\n 'remind': 'Θα σας το υπενθυμίσουμε σε {days} ημέρες.',\n 'bnever': 'Να μην εμφανιστεί ξανά'\n };\n t.es = {\n 'msg': 'Su navegador web ({brow_name}) está desactualizado.',\n 'msgmore': 'Actualice su navegador para obtener más seguridad, velocidad y para disfrutar de la mejor experiencia en este sitio.',\n 'bupdate': 'Actualizar navegador',\n 'bignore': 'Ignorar',\n 'remind': 'Se le recordará en {days} días.',\n 'bnever': 'No mostrar de nuevo'\n };\n t.fa = {\n 'msg': 'مرورگر شما ({brow_name}) قدیمی است.',\n 'msgmore': 'برای ایمنی، سرعت و تجربه بهتر مرورگر خود را به‌روز کنید.',\n 'bupdate': 'به‌روزرسانی مرورگر',\n 'bignore': 'الان نه',\n 'remind': 'به شما تا {days} روز دیگر دوباره یاد‌آوری خواهد شد.',\n 'bnever': 'هرگز نمایش نده'\n };\n t.fi = 'Selaimesi ({brow_name}) on vanhentunut. Päivitä selaimesi parantaaksesi turvallisuutta, mukavuutta ja käyttökokemusta tällä sivustolla. Päivitä selain Ohita';\n t.fr = {\n 'msg': 'Votre navigateur Web ({brow_name}) n\\'est pas à jour.',\n 'msgmore': 'Mettez à jour votre navigateur pour plus de sécurité et de rapidité et la meilleure expérience sur ce site.',\n 'bupdate': 'Mettre à jour le navigateur',\n 'bignore': 'Ignorer',\n 'remind': 'Vous serez rappelé dans {days} jours.',\n 'bnever': 'Ne plus afficher'\n };\n t.gl = 'Tá an líonléitheoir agat (%s) as dáta.laigeachtaí slándála a bhfuil ar eolas ann agus b\\'fhéidir nach taispeánfaidh sé gach gné den suíomh gréasáin seo ná cinn eile. Foghlaim conas do líonléitheoir a nuashonrú';\n t.he = {\n 'msg': 'דפדפן ({brow_name}) שלך אינו מעודכן.',\n 'msgmore': 'עדכן/י את הדפדפן שלך לשיפור האבטחה והמהירות וכדי ליהנות מהחוויה הטובה ביותר באתר זה.',\n 'bupdate': 'עדכן דפדפן',\n 'bignore': 'התעלם',\n 'remind': 'תקבל/י תזכורת בעוד {days} ימים.',\n 'bnever': 'אל תציג שוב'\n };\n t.hi = {\n 'msg': 'आपका वेब ब्राउज़र ({brow_name}) पुराना है।',\n 'msgmore': 'इस साइट पर अधिक सुरक्षा, गति और सर्वोत्तम अनुभव करने के लिए अपने ब्राउज़र को अपडेट करें ।',\n 'bupdate': 'ब्राउज़र अपडेट करें',\n 'bignore': 'नजरअंदाज करें',\n 'remind': 'आपको {days} दिनों में याद दिलाया जाएगा।',\n 'bnever': 'फिर कभी मत दिखाना'\n };\n t.hu = {\n 'msg': 'A webböngésződ ({brow_name}) elavult.',\n 'msgmore': 'Frissítse böngészőjét a nagyobb biztonság, sebesség és élmény érdekében!',\n 'bupdate': 'Böngésző frissítése',\n 'bignore': 'Mellőzés',\n 'remind': 'Újra emlékeztetünk {days} napon belül.',\n 'bnever': 'Ne mutassa többet'\n };\n t.id = 'Browser Anda ({brow_name}) sudah usang. Perbarui browser Anda untuk pengalaman terbaik yang lebih aman dan nyaman di situs ini. Perbarui Browser Abaikan';\n t.it = {\n 'msg': 'Il tuo browser ({brow_name}) non è aggiornato.',\n 'msgmore': 'Aggiorna il browser per una maggiore sicurezza, velocità e la migliore esperienza su questo sito.',\n 'bupdate': 'Aggiorna browser',\n 'bignore': 'Ignora',\n 'remind': 'Riceverai un promemoria tra {days} giorni.',\n 'bnever': 'Non mostrare di nuovo'\n };\n t.ja = {\n 'msg': 'お使いのブラウザ ({brow_name}) は最新版ではございません。',\n 'msgmore': 'このサイトでのさらなるセキュリティ、速度および最高の体験のためにお使いのブラウザーを更新してください。',\n 'bupdate': 'ブラウザをアップデートする',\n 'bignore': '無視する',\n 'remind': '{days}後にお知らせします。',\n 'bnever': '今後表示しない'\n };\n t.ko = {\n 'msg': '귀하의 웹 브라우저({brow_name})는 오래되었습니다.',\n 'msgmore': '이 사이트에서 보안, 속도와 최상의 경험을 얻으려면 브라우저를 업데이트하십시오.',\n 'bupdate': '브라우저 업데이트하기',\n 'bignore': '무시하기',\n 'remind': '{days}일 후에 알려 드립니다.',\n 'bnever': '다시 표시하지 않기'\n };\n t.lv = 'Jūsu pārlūkprogramma (%s) ir novecojusi. Tai ir zināmas drošības problēmas, un tā var attēlot šo un citas tīmekļa lapas nekorekti. Uzzini, kā atjaunot savu pārlūkprogrammu';\n t.ms = 'Pelayar web ({brow_name}) anda sudah usang. Kemas kini pelayar anda untuk memperoleh lebih keselamatan, keselesaan dan pengalaman terbaik di tapak ini. Kemas kini pelayar Abaikan';\n t.nl = {\n 'msg': 'Uw webbrowser ({brow_name}) is verouderd.',\n 'msgmore': 'Update uw browser voor meer veiligheid, snelheid en om deze site optimaal te kunnen gebruiken.',\n 'bupdate': 'Browser updaten',\n 'bignore': 'Negeren',\n 'remind': 'We zullen u er in {days} dagen aan herinneren.',\n 'bnever': 'Nooit meer tonen'\n };\n t.no = {\n 'msg': 'Nettleseren din ({brow_name}) er utdatert.',\n 'msgmore': 'Oppdater nettleseren din for økt sikkerhet, hastighet og den beste opplevelsen på dette nettstedet.',\n 'bupdate': 'Oppdater nettleser',\n 'bignore': 'Ignorer',\n 'remind': 'Du vil få en påminnelse om {days} dager.',\n 'bnever': 'Aldri vis igjen'\n };\n t.pl = {\n 'msg': 'Twoja przeglądarka ({brow_name}) jest nieaktualna.',\n 'msgmore': 'Zaktualizuj przeglądarkę, by korzystać z tej strony bezpieczniej, szybciej i po prostu sprawniej.',\n 'bupdate': 'Aktualizuj przeglądarkę',\n 'bignore': 'Ignoruj',\n 'remind': 'Przypomnimy o tym za {days} dni.',\n 'bnever': 'Nie pokazuj więcej'\n };\n t.pt = {\n 'msg': 'Seu navegador da web ({brow_name}) está desatualizado.',\n 'msgmore': 'Atualize seu navegador para ter mais segurança e velocidade, além da melhor experiência neste site.',\n 'bupdate': 'Atualizar navegador',\n 'bignore': 'Ignorar',\n 'remind': 'Você será relembrado em {days} dias.',\n 'bnever': 'Não mostrar novamente'\n };\n t.ro = 'Browserul dumneavoastră ({brow_name}) nu este actualizat. Actualizați-vă browserul pentru securitate sporită, confort și cea mai bună experiență pe site. Actualizează browserIgnoră';\n t.ru = {\n 'msg': 'Ваш браузер ({brow_name}) устарел.',\n 'msgmore': 'Обновите ваш браузер для повышения уровня безопасности, скорости и комфорта использования этого сайта.',\n 'bupdate': 'Обновить браузер',\n 'bignore': 'Игнорировать',\n 'remind': 'Вы получите напоминание через {days} дней.',\n 'bnever': 'Больше не показывать '\n };\n t.sk = {\n 'msg': 'Váš internetový prehliadač ({brow_name}) je zastaraný.',\n 'msgmore': 'Pre väčšiu bezpečnosť, rýchlosť a lepšiu skúsenosť s touto stránkou si aktualizujte svoj prehliadač.',\n 'bupdate': 'Aktualizovať prehliadač',\n 'bignore': 'Ignorovať',\n 'remind': 'Bude vám to pripomenuté o {days} dní.',\n 'bnever': 'Už nikdy viac neukazovať'\n };\n t.sl = 'Vaš brskalnik (%s) je zastarel. Ima več varnostnih pomankljivosti in morda ne bo pravilno prikazal te ali drugih strani. Poglejte kako lahko posodobite svoj brskalnik';\n t.sq = 'Shfletuesi juaj ({brow_name}) është i vjetruar. Përditësojeni shfletuesin tuaj për më tepër siguri, rehati dhe për funksionimin më të mirë në këtë sajt. Përditësojeni shfletuesin Shpërfille';\n t.sr = 'Vaš pretraživač (%s) je zastareo. Ima poznate sigurnosne probleme i najverovatnije neće prikazati sve funkcionalnisti ovog i drugih sajtova. Nauči više o nadogradnji svog pretraživača';\n t.sv = {\n 'msg': 'Din webbläsare ({brow_name}) är föråldrad. ',\n 'msgmore': 'Uppdatera din webbläsare för mer säkerhet, hastighet och den bästa upplevelsen på den här sajten. ',\n 'bupdate': 'Uppdatera webbläsaren',\n 'bignore': 'Ignorera',\n 'remind': 'Du får en påminnelse om {days} dagar.',\n 'bnever': 'Visa aldrig igen'\n };\n t.th = 'เว็บเบราว์เซอร์ ({brow_name}) ของคุณตกรุ่นแล้ว อัพเดทเบราว์เซอร์ของคุณเพื่อเพิ่มความปลอดภัย ความสะดวกและประสบการณ์การใช้งานที่ดีที่สุดในเว็บไซท์นี้ อัพเดทเบราว์เซอร์ ไม่สนใจ';\n t.tr = {\n 'msg': 'Web tarayıcınız ({brow_name}) güncel değil.',\n 'msgmore': 'Daha fazla güvenlik ve hız ile bu sitede en iyi deneyim için tarayıcınızı güncelleyin.',\n 'bupdate': 'Tarayıcıyı güncelle',\n 'bignore': 'Yok say',\n 'remind': '{days} gün sonra bir hatırlatma alacaksınız.',\n 'bnever': 'Bir daha gösterme'\n };\n t.uk = {\n 'msg': 'Ваш браузер ({brow_name}) застарілий.',\n 'msgmore': 'Оновіть свій браузер для більшої безпеки, швидкості та повноцінної роботи цього сайту.',\n 'bupdate': 'Оновити браузер',\n 'bignore': 'Пропустити',\n 'remind': 'Ви отримаєте нагадування через {days} днів.',\n 'bnever': 'Більше не показувати'\n };\n t.vi = 'Trình duyệt web của bạn ({brow_name}) đã cũ. Hãy nâng cấp trình duyệt của bạn để được an toàn và thuận lợi hơn đồng thời có được trải nghiệm tốt nhất với trang này';\n t.zh = {\n 'msg': '您的网页浏览器({brow_name})已过期。',\n 'msgmore': '更新您的浏览器,以便在该网站上获得更安全、更快速和最好的体验。',\n 'bupdate': '更新浏览器',\n 'bignore': '忽略',\n 'remind': '会在{days}天后提醒您。',\n 'bnever': '不再显示'\n };\n t[\"zh-tw\"] = t[\"zh-hans-cn\"] = {\n 'msg': '您的網路瀏覽器({brow_name})已過舊。',\n 'msgmore': '更新您的瀏覽器以獲得更佳的安全性、速度以及在此網站的最佳體驗。',\n 'bupdate': '更新瀏覽器',\n 'bignore': '忽略',\n 'remind': '您將在 {days} 天後收到提醒。',\n 'bnever': '不要再顯示'\n };\n var custom_text = op[\"text_\" + op.llfull] || op[\"text_\" + op.ll] || op.text;\n t = ta = custom_text || t[op.llfull] || t[op.ll] || t.en;\n if (ta.msg) t = '' + t.msg + ' ' + t.msgmore + ' ' + t.bupdate + ' ' + t.bignore + '';\n var tar = \"\";\n if (op.newwindow) tar = ' target=\"_blank\" rel=\"noopener\"';\n var div = op.div = document.createElement(\"div\");\n div.id = div.className = \"buorg\";\n var style = '';\n var style2 = '';\n if (ta.msg && (op.ll == \"ar\" || op.ll == \"he\" || op.ll == \"fa\")) style2 += '';\n\n if (!ta.msg && t.indexOf && t.indexOf(\"%s\") !== -1) {\n //legacy style\n t = busprintf(t, bb.t, ' id=\"buorgul\" href=\"' + op.url + '\"' + tar);\n style += '';\n div.innerHTML = '
' + t + '
' + style;\n op.addmargin = true;\n } else {\n if (op.style === \"bottom\") {\n style2 += '';\n } else if (op.style === \"corner\") {\n style2 += '';\n } else {\n op.addmargin = true;\n }\n\n t = t.replace(\"{brow_name}\", bb.t).replace(\"{up_but}\", ' id=\"buorgul\" href=\"' + op.url + '\"' + tar).replace(\"{ignore_but}\", ' id=\"buorgig\"');\n div.innerHTML = '
' + t + '
' + style + style2;\n }\n\n op.text = t;\n\n if (op.container) {\n op.container.appendChild(div);\n op.addmargin = false;\n } else document.body.insertBefore(div, document.body.firstChild);\n\n var updatebutton = document.getElementById(\"buorgul\");\n\n if (updatebutton) {\n updatebutton.onclick = function (e) {\n div.onclick = null;\n op.onclick(op);\n if (op.noclose) return;\n op.setCookie(op.reminderClosed);\n\n if (!op.noclose) {\n div.style.display = \"none\";\n if (op.addmargin) hm.style.marginTop = op.bodymt;\n }\n };\n }\n\n if (!custom_text) {\n //make whole bar clickable except if custom text is set\n div.style.cursor = \"pointer\";\n\n div.onclick = function () {\n if (op.newwindow) window.open(op.url, \"_blank\");else window.location.href = op.url;\n op.setCookie(op.reminderClosed);\n op.onclick(op);\n };\n }\n\n if (op.addmargin && op.shift_page_down !== false) {\n var hm = document.getElementsByTagName(\"html\")[0] || document.body;\n op.bodymt = hm.style.marginTop;\n hm.style.marginTop = div.clientHeight + \"px\";\n }\n\n var ignorebutton = document.getElementById(\"buorga\") || document.getElementById(\"buorgig\");\n\n if (ignorebutton) {\n ignorebutton.onclick = function (e) {\n div.onclick = null;\n op.onclose(op);\n if (op.addmargin && op.shift_page_down !== false) hm.style.marginTop = op.bodymt;\n op.setCookie(op.reminderClosed);\n\n if (!op.no_permanent_hide && ta.bnever && ta.remind) {\n op.div.innerHTML = '
' + (op.reminderClosed > 24 ? ta.remind.replace(\"{days}\", Math.round(op.reminderClosed / 24)) : \"\") + ' ' + ta.bnever + '
' + style + style2;\n div.className = \"buorg buorg-fadeout\";\n\n document.getElementById(\"buorgpermanent\").onclick = function (e) {\n op.setCookie(24 * 365);\n op.div.style.display = \"none\";\n };\n\n op.div.style.opacity = 0;\n op.div.style.visibility = \"hidden\";\n return false;\n }\n\n op.div.style.display = \"none\";\n return false;\n };\n\n if (op.noclose || op.reminderClosed == 0) {\n ignorebutton.parentNode.removeChild(ignorebutton);\n }\n }\n\n op.onshow(op);\n\n if (op.test && !op.dont_show_debuginfo) {\n var e = document.createElement(\"script\");\n e.src = op.domain + \"/update.test.js\";\n document.body.appendChild(e);\n }\n};","export default function (options) {\n options = options || {}; // Options\n\n var lazyClass = options.lazyClass || \"lazy\";\n var lazyBackgroundClass = options.lazyBackgroundClass || \"lazy-bg\";\n var idleLoadTimeout = \"idleLoadTimeout\" in options ? options.idleLoadTimeout : 200;\n var observeChanges = options.observeChanges || false;\n var events = options.events || {}; // Shorthands (saves more than a few bytes!)\n\n var win = window;\n var ric = \"requestIdleCallback\";\n var io = \"IntersectionObserver\"; // App stuff\n\n var dataAttrs = [\"srcset\", \"src\", \"poster\"];\n var arr = [];\n\n var queryDOM = function queryDOM(selector, root) {\n return arr.slice.call((root || document).querySelectorAll(selector || \"img.\".concat(lazyClass, \",video.\").concat(lazyClass, \",iframe.\").concat(lazyClass, \",.\").concat(lazyBackgroundClass)));\n }; // This function handles lazy loading of elements.\n\n\n var yallLoad = function yallLoad(element) {\n var parentNode = element.parentNode;\n var sourceNode;\n\n if (parentNode.nodeName == \"PICTURE\") {\n sourceNode = parentNode;\n }\n\n if (element.nodeName == \"VIDEO\") {\n sourceNode = element;\n }\n\n yallApplyFn(queryDOM(\"source\", sourceNode), yallFlipDataAttrs);\n yallFlipDataAttrs(element);\n\n if (element.autoplay) {\n element.load();\n }\n\n var classList = element.classList; // Lazy load CSS background images\n\n if (classList.contains(lazyBackgroundClass)) {\n classList.remove(lazyBackgroundClass);\n classList.add(options.lazyBackgroundLoaded || \"lazy-bg-loaded\");\n }\n };\n\n var yallBindEvents = function yallBindEvents(element) {\n for (var eventIndex in events) {\n element.addEventListener(eventIndex, events[eventIndex].listener || events[eventIndex], events[eventIndex].options || undefined);\n }\n }; // Added because there was a number of patterns like this peppered throughout\n // the code. This just flips necessary data- attrs on an element\n\n\n var yallFlipDataAttrs = function yallFlipDataAttrs(element) {\n var _loop = function _loop(dataAttrIndex) {\n if (dataAttrs[dataAttrIndex] in element.dataset) {\n win[\"requestAnimationFrame\"](function () {\n element.setAttribute(dataAttrs[dataAttrIndex], element.dataset[dataAttrs[dataAttrIndex]]);\n });\n }\n };\n\n for (var dataAttrIndex in dataAttrs) {\n _loop(dataAttrIndex);\n }\n }; // Noticed lots of loops where a function simply gets executed on every\n // member of an array. This abstraction eliminates that repetiive code.\n\n\n var yallApplyFn = function yallApplyFn(items, fn) {\n for (var itemIndex = 0; itemIndex < items.length; itemIndex++) {\n fn instanceof win[io] ? fn.observe(items[itemIndex]) : fn(items[itemIndex]);\n }\n };\n\n var yallIntersectionObserve = function yallIntersectionObserve(entry) {\n if (entry.isIntersecting || entry.intersectionRatio) {\n var element = entry.target;\n\n if (ric in win && idleLoadTimeout) {\n win[ric](function () {\n yallLoad(element);\n }, {\n timeout: idleLoadTimeout\n });\n } else {\n yallLoad(element);\n }\n\n element.classList.remove(lazyClass);\n intersectionListener.unobserve(element);\n lazyElements = lazyElements.filter(function (lazyElement) {\n return lazyElement != element;\n });\n\n if (!lazyElements.length && !observeChanges) {\n intersectionListener.disconnect();\n }\n }\n };\n\n var yallMutationObserve = function yallMutationObserve(newElement) {\n if (lazyElements.indexOf(newElement) < 0) {\n lazyElements.push(newElement);\n yallBindEvents(newElement);\n intersectionListener.observe(newElement);\n }\n };\n\n var yallCreateMutationObserver = function yallCreateMutationObserver(entry) {\n new MutationObserver(function () {\n yallApplyFn(queryDOM(), yallMutationObserve);\n }).observe(entry, options.mutationObserverOptions || {\n childList: true,\n subtree: true\n });\n };\n\n var lazyElements = queryDOM(); // If the current user agent is a known crawler, immediately load all media\n // for the elements yall is listening for and halt execution (good for SEO).\n\n if (/baidu|(?:google|bing|yandex|duckduck)bot/i.test(navigator.userAgent)) {\n yallApplyFn(lazyElements, yallLoad);\n return;\n }\n\n if (io in win && \"\".concat(io, \"Entry\") in win) {\n var intersectionListener = new win[io](function (entries) {\n yallApplyFn(entries, yallIntersectionObserve);\n }, {\n rootMargin: \"\".concat(\"threshold\" in options ? options.threshold : 200, \"px 0%\")\n });\n yallApplyFn(lazyElements, yallBindEvents);\n yallApplyFn(lazyElements, intersectionListener);\n\n if (observeChanges) {\n yallApplyFn(queryDOM(options.observeRootSelector || \"body\"), yallCreateMutationObserver);\n }\n }\n}","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict'; // polyfill\n\n function polyfill() {\n // aliases\n var w = window;\n var d = document; // return if scroll behavior is supported and polyfill is not forced\n\n if ('scrollBehavior' in d.documentElement.style && w.__forceSmoothScrollPolyfill__ !== true) {\n return;\n } // globals\n\n\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468; // object gathering original scroll methods\n\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n }; // define timing method\n\n var now = w.performance && w.performance.now ? w.performance.now.bind(w.performance) : Date.now;\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n\n\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n\n\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n\n\n function shouldBailOut(firstArg) {\n if (firstArg === null || _typeof(firstArg) !== 'object' || firstArg.behavior === undefined || firstArg.behavior === 'auto' || firstArg.behavior === 'instant') {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (_typeof(firstArg) === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n } // throw error when behavior is not supported\n\n\n throw new TypeError('behavior member of ScrollOptions ' + firstArg.behavior + ' is not a valid value for enumeration ScrollBehavior.');\n }\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n\n\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n\n\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n\n\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n return isScrollableY || isScrollableX;\n }\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n\n\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n\n\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME; // avoid elapsed times higher than one\n\n elapsed = elapsed > 1 ? 1 : elapsed; // apply easing to elapsed time\n\n value = ease(elapsed);\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n context.method.call(context.scrollable, currentX, currentY); // scroll more if we have not reached our destination\n\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n\n\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now(); // define scroll context\n\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n } // scroll looping over a frame\n\n\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n } // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n\n\n w.scroll = w.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n } // avoid smooth behavior if not required\n\n\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(w, arguments[0].left !== undefined ? arguments[0].left : _typeof(arguments[0]) !== 'object' ? arguments[0] : w.scrollX || w.pageXOffset, // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : w.scrollY || w.pageYOffset);\n return;\n } // LET THE SMOOTHNESS BEGIN!\n\n\n smoothScroll.call(w, d.body, arguments[0].left !== undefined ? ~~arguments[0].left : w.scrollX || w.pageXOffset, arguments[0].top !== undefined ? ~~arguments[0].top : w.scrollY || w.pageYOffset);\n }; // w.scrollBy\n\n\n w.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n } // avoid smooth behavior if not required\n\n\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(w, arguments[0].left !== undefined ? arguments[0].left : _typeof(arguments[0]) !== 'object' ? arguments[0] : 0, arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : 0);\n return;\n } // LET THE SMOOTHNESS BEGIN!\n\n\n smoothScroll.call(w, d.body, ~~arguments[0].left + (w.scrollX || w.pageXOffset), ~~arguments[0].top + (w.scrollY || w.pageYOffset));\n }; // Element.prototype.scroll and Element.prototype.scrollTo\n\n\n Element.prototype.scroll = Element.prototype.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n } // avoid smooth behavior if not required\n\n\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(this, // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined ? ~~arguments[0].left : _typeof(arguments[0]) !== 'object' ? ~~arguments[0] : this.scrollLeft, // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined ? ~~arguments[0].top : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop);\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top; // LET THE SMOOTHNESS BEGIN!\n\n smoothScroll.call(this, this, typeof left === 'undefined' ? this.scrollLeft : ~~left, typeof top === 'undefined' ? this.scrollTop : ~~top);\n }; // Element.prototype.scrollBy\n\n\n Element.prototype.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n } // avoid smooth behavior if not required\n\n\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(this, arguments[0].left !== undefined ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft, arguments[0].top !== undefined ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop);\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n }; // Element.prototype.scrollIntoView\n\n\n Element.prototype.scrollIntoView = function () {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(this, arguments[0] === undefined ? true : arguments[0]);\n return;\n } // LET THE SMOOTHNESS BEGIN!\n\n\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(this, scrollableParent, scrollableParent.scrollLeft + clientRects.left - parentRects.left, scrollableParent.scrollTop + clientRects.top - parentRects.top); // reveal parent in viewport unless is fixed\n\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = {\n polyfill: polyfill\n };\n } else {\n // global\n polyfill();\n }\n})();"],"sourceRoot":""}