{"version":3,"file":"scripts/scripts.js","mappings":"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","sources":["webpack://initials-template/./node_modules/axios/index.js","webpack://initials-template/./node_modules/axios/lib/adapters/xhr.js","webpack://initials-template/./node_modules/axios/lib/axios.js","webpack://initials-template/./node_modules/axios/lib/cancel/Cancel.js","webpack://initials-template/./node_modules/axios/lib/cancel/CancelToken.js","webpack://initials-template/./node_modules/axios/lib/cancel/isCancel.js","webpack://initials-template/./node_modules/axios/lib/core/Axios.js","webpack://initials-template/./node_modules/axios/lib/core/InterceptorManager.js","webpack://initials-template/./node_modules/axios/lib/core/buildFullPath.js","webpack://initials-template/./node_modules/axios/lib/core/createError.js","webpack://initials-template/./node_modules/axios/lib/core/dispatchRequest.js","webpack://initials-template/./node_modules/axios/lib/core/enhanceError.js","webpack://initials-template/./node_modules/axios/lib/core/mergeConfig.js","webpack://initials-template/./node_modules/axios/lib/core/settle.js","webpack://initials-template/./node_modules/axios/lib/core/transformData.js","webpack://initials-template/./node_modules/axios/lib/defaults.js","webpack://initials-template/./node_modules/axios/lib/env/data.js","webpack://initials-template/./node_modules/axios/lib/helpers/bind.js","webpack://initials-template/./node_modules/axios/lib/helpers/buildURL.js","webpack://initials-template/./node_modules/axios/lib/helpers/combineURLs.js","webpack://initials-template/./node_modules/axios/lib/helpers/cookies.js","webpack://initials-template/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://initials-template/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://initials-template/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://initials-template/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://initials-template/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://initials-template/./node_modules/axios/lib/helpers/spread.js","webpack://initials-template/./node_modules/axios/lib/helpers/validator.js","webpack://initials-template/./node_modules/axios/lib/utils.js","webpack://initials-template/./assets/js/player.js","webpack://initials-template/./node_modules/browserslist/browser.js","webpack://initials-template/./node_modules/browserslist/error.js","webpack://initials-template/./node_modules/browserslist/index.js","webpack://initials-template/./node_modules/browserslist/parse.js","webpack://initials-template/./node_modules/caniuse-lite/data/agents.js","webpack://initials-template/./node_modules/caniuse-lite/data/browserVersions.js","webpack://initials-template/./node_modules/caniuse-lite/data/browsers.js","webpack://initials-template/./node_modules/caniuse-lite/dist/unpacker/agents.js","webpack://initials-template/./node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack://initials-template/./node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack://initials-template/./node_modules/electron-to-chromium/versions.js","webpack://initials-template/./node_modules/lru-cache/index.js","webpack://initials-template/./scripts/init-window.js","webpack://initials-template/./node_modules/semver/semver.js","webpack://initials-template/./node_modules/tiny-slider/dist/tiny-slider.js","webpack://initials-template/./node_modules/yallist/iterator.js","webpack://initials-template/./node_modules/yallist/yallist.js","webpack://initials-template/./node_modules/@babel/compat-data/native-modules.js","webpack://initials-template/./node_modules/@babel/compat-data/plugins.js","webpack://initials-template/./node_modules/@babel/helper-compilation-targets/lib/debug.js","webpack://initials-template/./node_modules/@babel/helper-compilation-targets/lib/filter-items.js","webpack://initials-template/./node_modules/@babel/helper-compilation-targets/lib/index.js","webpack://initials-template/./node_modules/@babel/helper-compilation-targets/lib/options.js","webpack://initials-template/./node_modules/@babel/helper-compilation-targets/lib/pretty.js","webpack://initials-template/./node_modules/@babel/helper-compilation-targets/lib/targets.js","webpack://initials-template/./node_modules/@babel/helper-compilation-targets/lib/utils.js","webpack://initials-template/./node_modules/@babel/helper-validator-option/lib/find-suggestion.js","webpack://initials-template/./node_modules/@babel/helper-validator-option/lib/index.js","webpack://initials-template/./node_modules/@babel/helper-validator-option/lib/validator.js","webpack://initials-template/./node_modules/@babel/preset-env/lib/debug.js","webpack://initials-template/webpack/bootstrap","webpack://initials-template/webpack/runtime/global","webpack://initials-template/webpack/runtime/make namespace object","webpack://initials-template/./scripts/modules/leaderboard-tree.js","webpack://initials-template/./scripts/modules/steps.js","webpack://initials-template/./scripts/modules/landing-page.js","webpack://initials-template/./scripts/modules/verification-page.js","webpack://initials-template/./scripts/modules/overview-videos.js","webpack://initials-template/./scripts/formValidation.js","webpack://initials-template/./scripts/validationUtils.js","webpack://initials-template/./scripts/scripts.js","webpack://initials-template/./scripts/sliders.js"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.24.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*! @vimeo/player v2.17.1 | (c) 2022 Vimeo | MIT License | https://github.com/vimeo/player.js */\r\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):((e=\"undefined\"!=typeof globalThis?globalThis:e||self).Vimeo=e.Vimeo||{},e.Vimeo.Player=t())}(this,function(){\"use strict\";function r(e,t){for(var n=0;n= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseLatestFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseLatestFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n\n function parseLatestFloat(v) {\n return parseFloat(v.split('-')[1] || v)\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfigFile = env.findConfigFile\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var iMax = data.released.length - 1\n while (iMax >= 0) {\n if (data.released[iMax] in features[name]) break\n iMax--\n }\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released[iMax]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115', 'firefox 128']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var max = string.length, n = 1; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{K:0,E:0,F:0.0563043,G:0.0422282,A:0.0140761,B:0.478586,fC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"fC\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{fC:962323200,K:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{\"4\":0.007166,\"5\":0.007166,\"6\":0.010749,\"7\":0.007166,\"8\":0.010749,\"9\":0.039413,C:0,L:0,M:0.003583,H:0,N:0,O:0.007166,P:0.057328,Q:0,I:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0.014332,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0.003583,r:0.007166,s:0.064494,t:0.007166,u:0.007166,v:0.007166,w:0.010749,x:0.014332,AB:0.017915,BB:0.025081,CB:0.014332,DB:0.025081,EB:0.053745,FB:0.254393,GB:3.38594,HB:0.917248,IB:0,D:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"D\",\"\",\"\",\"\"],E:\"Edge\",F:{\"4\":1689897600,\"5\":1692576000,\"6\":1694649600,\"7\":1697155200,\"8\":1698969600,\"9\":1701993600,C:1438128000,L:1447286400,M:1470096000,H:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,I:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,v:1680825600,w:1683158400,x:1685664000,AB:1706227200,BB:1708732800,CB:1711152000,DB:1713398400,EB:1715990400,FB:1718841600,GB:1721865600,HB:1724371200,IB:1726704000,D:1729123200},D:{C:\"ms\",L:\"ms\",M:\"ms\",H:\"ms\",N:\"ms\",O:\"ms\",P:\"ms\"}},C:{A:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0.351134,\"5\":0,\"6\":0.007166,\"7\":0.089575,\"8\":0,\"9\":0.007166,gC:0,GC:0,J:0.003583,JB:0,K:0,E:0,F:0,G:0,A:0,B:0.014332,C:0,L:0,M:0,H:0,N:0,O:0,P:0,KB:0,y:0,z:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0.003583,dB:0.007166,eB:0.003583,fB:0,gB:0,hB:0,iB:0,jB:0.003583,kB:0,lB:0.042996,mB:0,nB:0.007166,oB:0.003583,pB:0.017915,qB:0,rB:0,HC:0.003583,sB:0,IC:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0,\"7B\":0,\"8B\":0,\"9B\":0.014332,Q:0,I:0,R:0,JC:0,S:0,T:0,U:0,V:0,W:0,X:0.007166,Y:0,Z:0,a:0,b:0,c:0,d:0.003583,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0.007166,m:0.010749,n:0,o:0.003583,p:0,q:0,r:0,s:0.007166,t:0,u:0,v:0,w:0.007166,x:0,AB:0.007166,BB:0.003583,CB:0.007166,DB:0.007166,EB:0.014332,FB:0.032247,GB:0.042996,HB:0.447875,IB:1.08923,D:0.007166,KC:0,LC:0,MC:0,hC:0,iC:0,jC:0},B:\"moz\",C:[\"gC\",\"GC\",\"iC\",\"jC\",\"J\",\"JB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"KB\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"HC\",\"sB\",\"IC\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"Q\",\"I\",\"R\",\"JC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"D\",\"KC\",\"LC\",\"MC\",\"hC\"],E:\"Firefox\",F:{\"0\":1368489600,\"1\":1372118400,\"2\":1375747200,\"3\":1379376000,\"4\":1688428800,\"5\":1690848000,\"6\":1693267200,\"7\":1695686400,\"8\":1698105600,\"9\":1700524800,gC:1161648000,GC:1213660800,iC:1246320000,jC:1264032000,J:1300752000,JB:1308614400,K:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,H:1342483200,N:1346112000,O:1349740800,P:1353628800,KB:1357603200,y:1361232000,z:1364860800,LB:1386633600,MB:1391472000,NB:1395100800,OB:1398729600,PB:1402358400,QB:1405987200,RB:1409616000,SB:1413244800,TB:1417392000,UB:1421107200,VB:1424736000,WB:1428278400,XB:1431475200,YB:1435881600,ZB:1439251200,aB:1442880000,bB:1446508800,cB:1450137600,dB:1453852800,eB:1457395200,fB:1461628800,gB:1465257600,hB:1470096000,iB:1474329600,jB:1479168000,kB:1485216000,lB:1488844800,mB:1492560000,nB:1497312000,oB:1502150400,pB:1506556800,qB:1510617600,rB:1516665600,HC:1520985600,sB:1525824000,IC:1529971200,tB:1536105600,uB:1540252800,vB:1544486400,wB:1548720000,xB:1552953600,yB:1558396800,zB:1562630400,\"0B\":1567468800,\"1B\":1571788800,\"2B\":1575331200,\"3B\":1578355200,\"4B\":1581379200,\"5B\":1583798400,\"6B\":1586304000,\"7B\":1588636800,\"8B\":1591056000,\"9B\":1593475200,Q:1595894400,I:1598313600,R:1600732800,JC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752000,v:1681171200,w:1683590400,x:1686009600,AB:1702944000,BB:1705968000,CB:1708387200,DB:1710806400,EB:1713225600,FB:1715644800,GB:1718064000,HB:1720483200,IB:1722902400,D:1725321600,KC:1727740800,LC:null,MC:null,hC:null}},D:{A:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0.03583,\"5\":0.168401,\"6\":0.10749,\"7\":0.07166,\"8\":0.068077,\"9\":0.10749,J:0,JB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0,M:0,H:0,N:0,O:0,P:0,KB:0,y:0,z:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.010749,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0.003583,fB:0,gB:0.007166,hB:0.025081,iB:0.021498,jB:0.007166,kB:0.003583,lB:0.003583,mB:0.007166,nB:0,oB:0,pB:0.032247,qB:0.003583,rB:0.007166,HC:0,sB:0,IC:0.003583,tB:0,uB:0,vB:0,wB:0,xB:0.025081,yB:0.007166,zB:0,\"0B\":0.028664,\"1B\":0.028664,\"2B\":0,\"3B\":0,\"4B\":0.007166,\"5B\":0.010749,\"6B\":0.010749,\"7B\":0.007166,\"8B\":0.021498,\"9B\":0.017915,Q:0.103907,I:0.014332,R:0.021498,S:0.032247,T:0.010749,U:0.014332,V:0.025081,W:0.075243,X:0.017915,Y:0.010749,Z:0.014332,a:0.053745,b:0.014332,c:0.014332,d:0.050162,e:0.010749,f:0.010749,g:0.017915,h:0.046579,i:0.025081,j:0.021498,k:0.021498,l:0.017915,m:0.111073,n:0.085992,o:0.017915,p:0.028664,q:0.03583,r:0.046579,s:1.42603,t:0.025081,u:0.039413,v:0.050162,w:0.10749,x:0.103907,AB:0.10749,BB:0.118239,CB:0.14332,DB:0.229312,EB:0.369049,FB:1.49053,GB:12.777,HB:2.30745,IB:0.014332,D:0.003583,KC:0,LC:0,MC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"JB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"KB\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"HC\",\"sB\",\"IC\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"D\",\"KC\",\"LC\",\"MC\"],E:\"Chrome\",F:{\"0\":1343692800,\"1\":1348531200,\"2\":1352246400,\"3\":1357862400,\"4\":1689724800,\"5\":1692057600,\"6\":1694476800,\"7\":1696896000,\"8\":1698710400,\"9\":1701993600,J:1264377600,JB:1274745600,K:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,H:1316131200,N:1319500800,O:1323734400,P:1328659200,KB:1332892800,y:1337040000,z:1340668800,LB:1361404800,MB:1364428800,NB:1369094400,OB:1374105600,PB:1376956800,QB:1384214400,RB:1389657600,SB:1392940800,TB:1397001600,UB:1400544000,VB:1405468800,WB:1409011200,XB:1412640000,YB:1416268800,ZB:1421798400,aB:1425513600,bB:1429401600,cB:1432080000,dB:1437523200,eB:1441152000,fB:1444780800,gB:1449014400,hB:1453248000,iB:1456963200,jB:1460592000,kB:1464134400,lB:1469059200,mB:1472601600,nB:1476230400,oB:1480550400,pB:1485302400,qB:1489017600,rB:1492560000,HC:1496707200,sB:1500940800,IC:1504569600,tB:1508198400,uB:1512518400,vB:1516752000,wB:1520294400,xB:1523923200,yB:1527552000,zB:1532390400,\"0B\":1536019200,\"1B\":1539648000,\"2B\":1543968000,\"3B\":1548720000,\"4B\":1552348800,\"5B\":1555977600,\"6B\":1559606400,\"7B\":1564444800,\"8B\":1568073600,\"9B\":1571702400,Q:1575936000,I:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656000,r:1669680000,s:1673308800,t:1675728000,u:1678147200,v:1680566400,w:1682985600,x:1685404800,AB:1705968000,BB:1708387200,CB:1710806400,DB:1713225600,EB:1715644800,FB:1718064000,GB:1721174400,HB:1724112000,IB:1726531200,D:1728950400,KC:null,LC:null,MC:null}},E:{A:{J:0,JB:0,K:0,E:0,F:0,G:0.003583,A:0,B:0,C:0,L:0.007166,M:0.028664,H:0.007166,kC:0,NC:0,lC:0,mC:0,nC:0,oC:0,OC:0,AC:0.007166,BC:0.010749,pC:0.057328,qC:0.078826,rC:0.025081,PC:0.010749,QC:0.021498,CC:0.028664,sC:0.218563,DC:0.028664,RC:0.03583,SC:0.032247,TC:0.182733,UC:0.021498,VC:0.042996,tC:0.290223,EC:0.017915,WC:0.039413,XC:0.039413,YC:0.042996,ZC:0.118239,aC:1.44753,bC:0.415628,FC:0.017915,cC:0,uC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"kC\",\"NC\",\"J\",\"JB\",\"lC\",\"K\",\"mC\",\"E\",\"nC\",\"F\",\"G\",\"oC\",\"A\",\"OC\",\"B\",\"AC\",\"C\",\"BC\",\"L\",\"pC\",\"M\",\"qC\",\"H\",\"rC\",\"PC\",\"QC\",\"CC\",\"sC\",\"DC\",\"RC\",\"SC\",\"TC\",\"UC\",\"VC\",\"tC\",\"EC\",\"WC\",\"XC\",\"YC\",\"ZC\",\"aC\",\"bC\",\"FC\",\"cC\",\"uC\",\"\"],E:\"Safari\",F:{kC:1205798400,NC:1226534400,J:1244419200,JB:1275868800,lC:1311120000,K:1343174400,mC:1382400000,E:1382400000,nC:1410998400,F:1413417600,G:1443657600,oC:1458518400,A:1474329600,OC:1490572800,B:1505779200,AC:1522281600,C:1537142400,BC:1553472000,L:1568851200,pC:1585008000,M:1600214400,qC:1619395200,H:1632096000,rC:1635292800,PC:1639353600,QC:1647216000,CC:1652745600,sC:1658275200,DC:1662940800,RC:1666569600,SC:1670889600,TC:1674432000,UC:1679875200,VC:1684368000,tC:1690156800,EC:1695686400,WC:1698192000,XC:1702252800,YC:1705881600,ZC:1709596800,aC:1715558400,bC:1722211200,FC:1726444800,cC:null,uC:null}},F:{A:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,G:0,B:0,C:0,H:0,N:0,O:0,P:0,KB:0,y:0,z:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0.003583,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0.017915,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0,\"7B\":0,\"8B\":0,\"9B\":0,Q:0,I:0,R:0,JC:0,S:0.028664,T:0.003583,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.039413,f:0,g:0,h:0,i:0,j:0,k:0,l:0.032247,m:0,n:0,o:0,p:0,q:0,r:0,s:0.154069,t:0,u:0.060911,v:0,w:0,x:0,vC:0,wC:0,xC:0,yC:0,AC:0,dC:0,zC:0,BC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"G\",\"vC\",\"wC\",\"xC\",\"yC\",\"B\",\"AC\",\"dC\",\"zC\",\"C\",\"BC\",\"H\",\"N\",\"O\",\"P\",\"KB\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"Q\",\"I\",\"R\",\"JC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"\",\"\",\"\"],E:\"Opera\",F:{\"0\":1401753600,\"1\":1405987200,\"2\":1409616000,\"3\":1413331200,G:1150761600,vC:1223424000,wC:1251763200,xC:1267488000,yC:1277942400,B:1292457600,AC:1302566400,dC:1309219200,zC:1323129600,C:1323129600,BC:1352073600,H:1372723200,N:1377561600,O:1381104000,P:1386288000,KB:1390867200,y:1393891200,z:1399334400,LB:1417132800,MB:1422316800,NB:1425945600,OB:1430179200,PB:1433808000,QB:1438646400,RB:1442448000,SB:1445904000,TB:1449100800,UB:1454371200,VB:1457308800,WB:1462320000,XB:1465344000,YB:1470096000,ZB:1474329600,aB:1477267200,bB:1481587200,cB:1486425600,dB:1490054400,eB:1494374400,fB:1498003200,gB:1502236800,hB:1506470400,iB:1510099200,jB:1515024000,kB:1517961600,lB:1521676800,mB:1525910400,nB:1530144000,oB:1534982400,pB:1537833600,qB:1543363200,rB:1548201600,sB:1554768000,tB:1561593600,uB:1566259200,vB:1570406400,wB:1573689600,xB:1578441600,yB:1583971200,zB:1587513600,\"0B\":1592956800,\"1B\":1595894400,\"2B\":1600128000,\"3B\":1603238400,\"4B\":1613520000,\"5B\":1612224000,\"6B\":1616544000,\"7B\":1619568000,\"8B\":1623715200,\"9B\":1627948800,Q:1631577600,I:1633392000,R:1635984000,JC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000,q:1707264000,r:1710115200,s:1711497600,t:1716336000,u:1719273600,v:1721088000,w:1724284800,x:1727222400},D:{G:\"o\",B:\"o\",C:\"o\",vC:\"o\",wC:\"o\",xC:\"o\",yC:\"o\",AC:\"o\",dC:\"o\",zC:\"o\",BC:\"o\"}},G:{A:{F:0,NC:0,\"0C\":0,eC:0.00447708,\"1C\":0.00149236,\"2C\":0.00746181,\"3C\":0.00895417,\"4C\":0,\"5C\":0.00746181,\"6C\":0.0298472,\"7C\":0.00895417,\"8C\":0.0462632,\"9C\":0.117897,AD:0.0149236,BD:0.0119389,CD:0.199976,DD:0.00298472,ED:0.0656639,FD:0.00895417,GD:0.037309,HD:0.152221,ID:0.105958,JD:0.0567097,PC:0.0567097,QC:0.0671563,CC:0.0790952,KD:0.741704,DC:0.150729,RC:0.317873,SC:0.15819,TC:0.264148,UC:0.0656639,VC:0.10745,LD:0.920787,EC:0.0850646,WC:0.131328,XC:0.120881,YC:0.179083,ZC:0.419354,aC:8.55869,bC:1.44162,FC:0.156698,cC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"NC\",\"0C\",\"eC\",\"1C\",\"2C\",\"3C\",\"F\",\"4C\",\"5C\",\"6C\",\"7C\",\"8C\",\"9C\",\"AD\",\"BD\",\"CD\",\"DD\",\"ED\",\"FD\",\"GD\",\"HD\",\"ID\",\"JD\",\"PC\",\"QC\",\"CC\",\"KD\",\"DC\",\"RC\",\"SC\",\"TC\",\"UC\",\"VC\",\"LD\",\"EC\",\"WC\",\"XC\",\"YC\",\"ZC\",\"aC\",\"bC\",\"FC\",\"cC\",\"\",\"\"],E:\"Safari on iOS\",F:{NC:1270252800,\"0C\":1283904000,eC:1299628800,\"1C\":1331078400,\"2C\":1359331200,\"3C\":1394409600,F:1410912000,\"4C\":1413763200,\"5C\":1442361600,\"6C\":1458518400,\"7C\":1473724800,\"8C\":1490572800,\"9C\":1505779200,AD:1522281600,BD:1537142400,CD:1553472000,DD:1568851200,ED:1572220800,FD:1580169600,GD:1585008000,HD:1600214400,ID:1619395200,JD:1632096000,PC:1639353600,QC:1647216000,CC:1652659200,KD:1658275200,DC:1662940800,RC:1666569600,SC:1670889600,TC:1674432000,UC:1679875200,VC:1684368000,LD:1690156800,EC:1694995200,WC:1698192000,XC:1702252800,YC:1705881600,ZC:1709596800,aC:1715558400,bC:1722211200,FC:1726444800,cC:null}},H:{A:{MD:0.05},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"MD\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{MD:1426464000}},I:{A:{GC:0,J:0.0000327216,D:0.326169,ND:0,OD:0,PD:0,QD:0.000130886,eC:0.000130886,RD:0,SD:0.000523546},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"ND\",\"OD\",\"PD\",\"GC\",\"J\",\"QD\",\"eC\",\"RD\",\"SD\",\"D\",\"\",\"\",\"\"],E:\"Android Browser\",F:{ND:1256515200,OD:1274313600,PD:1291593600,GC:1298332800,J:1318896000,QD:1341792000,eC:1374624000,RD:1386547200,SD:1401667200,D:1728864000}},J:{A:{E:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{E:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,I:1.24603,AC:0,dC:0,BC:0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"AC\",\"dC\",\"C\",\"BC\",\"I\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,AC:1314835200,dC:1318291200,C:1330300800,BC:1349740800,I:1709769600},D:{I:\"webkit\"}},L:{A:{D:44.331},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{D:1728864000}},M:{A:{D:0.365712},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{D:1725321600}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{CC:1.13563},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"CC\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{CC:1710115200},D:{CC:\"webkit\"}},P:{A:{\"0\":0.0647361,\"1\":0.0647361,\"2\":0.0755255,\"3\":1.27314,J:0.0971042,y:0.0215787,z:0.0431574,TD:0.0107894,UD:0.0107894,VD:0.0323681,WD:0,XD:0,OC:0,YD:0.0107894,ZD:0,aD:0.0107894,bD:0,cD:0,DC:0,EC:0.0215787,FC:0,dD:0.0215787},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"TD\",\"UD\",\"VD\",\"WD\",\"XD\",\"OC\",\"YD\",\"ZD\",\"aD\",\"bD\",\"cD\",\"DC\",\"EC\",\"FC\",\"dD\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{\"0\":1689292800,\"1\":1697587200,\"2\":1711497600,\"3\":1715126400,J:1461024000,TD:1481846400,UD:1509408000,VD:1528329600,WD:1546128000,XD:1554163200,OC:1567900800,YD:1582588800,ZD:1593475200,aD:1605657600,bD:1618531200,cD:1629072000,DC:1640736000,EC:1651708800,FC:1659657600,dD:1667260800,y:1677369600,z:1684454400}},Q:{A:{eD:0.3208},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"eD\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{eD:1710288000}},R:{A:{fD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"fD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{fD:1710201600}},S:{A:{gD:0.051328,hD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"gD\",\"hD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{gD:1527811200,hD:1631664000}}};\n","module.exports={\"0\":\"22\",\"1\":\"23\",\"2\":\"24\",\"3\":\"25\",\"4\":\"115\",\"5\":\"116\",\"6\":\"117\",\"7\":\"118\",\"8\":\"119\",\"9\":\"120\",A:\"10\",B:\"11\",C:\"12\",D:\"130\",E:\"7\",F:\"8\",G:\"9\",H:\"15\",I:\"80\",J:\"4\",K:\"6\",L:\"13\",M:\"14\",N:\"16\",O:\"17\",P:\"18\",Q:\"79\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"107\",r:\"108\",s:\"109\",t:\"110\",u:\"111\",v:\"112\",w:\"113\",x:\"114\",y:\"20\",z:\"21\",AB:\"121\",BB:\"122\",CB:\"123\",DB:\"124\",EB:\"125\",FB:\"126\",GB:\"127\",HB:\"128\",IB:\"129\",JB:\"5\",KB:\"19\",LB:\"26\",MB:\"27\",NB:\"28\",OB:\"29\",PB:\"30\",QB:\"31\",RB:\"32\",SB:\"33\",TB:\"34\",UB:\"35\",VB:\"36\",WB:\"37\",XB:\"38\",YB:\"39\",ZB:\"40\",aB:\"41\",bB:\"42\",cB:\"43\",dB:\"44\",eB:\"45\",fB:\"46\",gB:\"47\",hB:\"48\",iB:\"49\",jB:\"50\",kB:\"51\",lB:\"52\",mB:\"53\",nB:\"54\",oB:\"55\",pB:\"56\",qB:\"57\",rB:\"58\",sB:\"60\",tB:\"62\",uB:\"63\",vB:\"64\",wB:\"65\",xB:\"66\",yB:\"67\",zB:\"68\",\"0B\":\"69\",\"1B\":\"70\",\"2B\":\"71\",\"3B\":\"72\",\"4B\":\"73\",\"5B\":\"74\",\"6B\":\"75\",\"7B\":\"76\",\"8B\":\"77\",\"9B\":\"78\",AC:\"11.1\",BC:\"12.1\",CC:\"15.5\",DC:\"16.0\",EC:\"17.0\",FC:\"18.0\",GC:\"3\",HC:\"59\",IC:\"61\",JC:\"82\",KC:\"131\",LC:\"132\",MC:\"133\",NC:\"3.2\",OC:\"10.1\",PC:\"15.2-15.3\",QC:\"15.4\",RC:\"16.1\",SC:\"16.2\",TC:\"16.3\",UC:\"16.4\",VC:\"16.5\",WC:\"17.1\",XC:\"17.2\",YC:\"17.3\",ZC:\"17.4\",aC:\"17.5\",bC:\"17.6\",cC:\"18.1\",dC:\"11.5\",eC:\"4.2-4.3\",fC:\"5.5\",gC:\"2\",hC:\"134\",iC:\"3.5\",jC:\"3.6\",kC:\"3.1\",lC:\"5.1\",mC:\"6.1\",nC:\"7.1\",oC:\"9.1\",pC:\"13.1\",qC:\"14.1\",rC:\"15.1\",sC:\"15.6\",tC:\"16.6\",uC:\"TP\",vC:\"9.5-9.6\",wC:\"10.0-10.1\",xC:\"10.5\",yC:\"10.6\",zC:\"11.6\",\"0C\":\"4.0-4.1\",\"1C\":\"5.0-5.1\",\"2C\":\"6.0-6.1\",\"3C\":\"7.0-7.1\",\"4C\":\"8.1-8.4\",\"5C\":\"9.0-9.2\",\"6C\":\"9.3\",\"7C\":\"10.0-10.2\",\"8C\":\"10.3\",\"9C\":\"11.0-11.2\",AD:\"11.3-11.4\",BD:\"12.0-12.1\",CD:\"12.2-12.5\",DD:\"13.0-13.1\",ED:\"13.2\",FD:\"13.3\",GD:\"13.4-13.7\",HD:\"14.0-14.4\",ID:\"14.5-14.8\",JD:\"15.0-15.1\",KD:\"15.6-15.8\",LD:\"16.6-16.7\",MD:\"all\",ND:\"2.1\",OD:\"2.2\",PD:\"2.3\",QD:\"4.1\",RD:\"4.4\",SD:\"4.4.3-4.4.4\",TD:\"5.0-5.4\",UD:\"6.2-6.4\",VD:\"7.2-7.4\",WD:\"8.2\",XD:\"9.2\",YD:\"11.1-11.2\",ZD:\"12.0\",aD:\"13.0\",bD:\"14.0\",cD:\"15.0\",dD:\"19.0\",eD:\"14.9\",fD:\"13.52\",gD:\"2.5\",hD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"28.3\": \"120\",\n\t\"29.0\": \"122\",\n\t\"29.1\": \"122\",\n\t\"29.2\": \"122\",\n\t\"29.3\": \"122\",\n\t\"29.4\": \"122\",\n\t\"30.0\": \"124\",\n\t\"30.1\": \"124\",\n\t\"30.2\": \"124\",\n\t\"30.3\": \"124\",\n\t\"30.4\": \"124\",\n\t\"30.5\": \"124\",\n\t\"31.0\": \"126\",\n\t\"31.1\": \"126\",\n\t\"31.2\": \"126\",\n\t\"31.3\": \"126\",\n\t\"31.4\": \"126\",\n\t\"31.5\": \"126\",\n\t\"31.6\": \"126\",\n\t\"31.7\": \"126\",\n\t\"32.0\": \"128\",\n\t\"32.1\": \"128\",\n\t\"32.2\": \"128\",\n\t\"33.0\": \"130\",\n\t\"34.0\": \"132\"\n};","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","export default \"var apiBaseUrl = \\\"/umbraco/api/\\\";\\r\\n\\r\\n// region SHARED | Custom Functions\\r\\nfunction getElementByClassName(className) {\\r\\n var elements = document.getElementsByClassName(className);\\r\\n if (elements.length > 0) {\\r\\n return elements[0];\\r\\n }\\r\\n return null;\\r\\n}\\r\\n\\r\\nfunction scrollTo(element) {\\r\\n window.scroll({\\r\\n behavior: \\\"smooth\\\",\\r\\n left: 0,\\r\\n top: element.offsetTop\\r\\n });\\r\\n}\\r\\n\\r\\nfunction fadeIn(element) {\\r\\n if (element) {\\r\\n element.classList.remove(\\\"fade-out\\\");\\r\\n element.classList.add(\\\"fade-in\\\");\\r\\n }\\r\\n}\\r\\n\\r\\nfunction fadeOut(element) {\\r\\n if (element) {\\r\\n element.classList.remove(\\\"fade-in\\\");\\r\\n element.classList.add(\\\"fade-out\\\");\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SHARED | Scroll to Top\\r\\n\\r\\n// EVENT LISTENERS\\r\\n\\r\\nwindow.addEventListener(\\\"scroll\\\", function () {\\r\\n if (window.scrollY === 0) {\\r\\n fadeOut(document.getElementById(\\\"scrollTop\\\"));\\r\\n } else {\\r\\n fadeIn(document.getElementById(\\\"scrollTop\\\"));\\r\\n }\\r\\n});\\r\\n\\r\\n// SCROLL TO TOP\\r\\n\\r\\nvar scrollTop = document.getElementById(\\\"scrollTop\\\");\\r\\nvar scrollDown = getElementByClassName(\\\"scroll-down\\\");\\r\\n\\r\\nif (scrollTop) {\\r\\n document.getElementById(\\\"scrollTop\\\").addEventListener(\\\"click\\\", function () {\\r\\n scrollTo(document.body);\\r\\n });\\r\\n}\\r\\n\\r\\n// SLIDE DOWN\\r\\n\\r\\nif (scrollDown) {\\r\\n getElementByClassName(\\\"scroll-down\\\").addEventListener(\\\"click\\\", function () {\\r\\n scrollTo(document.getElementById(\\\"mainContainer\\\"));\\r\\n });\\r\\n}\\r\\n\\r\\nwindow.addEventListener(\\\"resize\\\", function () {\\r\\n if (sidebarIsOpened) {\\r\\n hideSidebar();\\r\\n }\\r\\n calculateScrollTopArrowPosition();\\r\\n});\\r\\n\\r\\nfunction calculateScrollTopArrowPosition() {\\r\\n var nbm = document.getElementById(\\\"navbarMenu\\\");\\r\\n if(nbm === null )\\r\\n {\\r\\n return;\\r\\n }\\r\\n var screenWidth = document.body.offsetWidth;\\r\\n var contentWidth = document.getElementById(\\\"navbarMenu\\\").offsetWidth;\\r\\n var iconWidth = document.getElementById(\\\"scrollTop\\\").offsetWidth;\\r\\n var position = (screenWidth - contentWidth - iconWidth) / 2;\\r\\n\\r\\n if (position >= 0) {\\r\\n document.getElementById(\\\"scrollTop\\\").style.right = (screenWidth - contentWidth - iconWidth) / 2 + \\\"px\\\";\\r\\n }\\r\\n}\\r\\n\\r\\ncalculateScrollTopArrowPosition();\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SHARED | ACCORDIONS\\r\\n\\r\\nvar accordionHeads = document.getElementsByClassName(\\\"accordion-head\\\");\\r\\n\\r\\nfunction listenAccordions() {\\r\\n accordionHeads = document.getElementsByClassName(\\\"accordion-head\\\");\\r\\n for (var i = 0; i < accordionHeads.length; i++) {\\r\\n addAccordionEventListeners(i);\\r\\n }\\r\\n}\\r\\n\\r\\nfunction addAccordionEventListeners(index) {\\r\\n var selectedHead = accordionHeads[index];\\r\\n var selectedAccordion = selectedHead.parentElement;\\r\\n var selectedAccordionBody = selectedAccordion.getElementsByClassName(\\\"accordion-body\\\")[0];\\r\\n\\r\\n selectedHead.addEventListener(\\\"click\\\", function (e) {\\r\\n if (!document.getElementById(\\\"dashboardMyProfilePage\\\") && !document.getElementById(\\\"registrationPage\\\")) {\\r\\n\\r\\n if (!e.target.parentElement.classList.contains(\\\"item\\\")) {\\r\\n closeOtherAccordions(index);\\r\\n\\r\\n }\\r\\n }\\r\\n\\r\\n try {\\r\\n selectedHead.classList.toggle(\\\"active\\\");\\r\\n selectedAccordionBody.classList.toggle(\\\"opened\\\");\\r\\n } catch (e) {\\r\\n console.error(\\\"Accordion - Selected body not found\\\");\\r\\n }\\r\\n });\\r\\n\\r\\n // // scroll to View disabled on Contact Us Page and Notifications Page\\r\\n // if (!document.getElementById(\\\"contactUsPage\\\") && !document.getElementById(\\\"dashboardNotificationsPage\\\") && !document.getElementById(\\\"dashboardMyProfilePage\\\")) {\\r\\n // \\t// Code for Safari 3.1 to 6.0\\r\\n // \\tselectedAccordionBody.addEventListener(\\\"webkitTransitionEnd\\\", function () {\\r\\n // \\t\\tif (selectedHead.classList.contains(\\\"active\\\")) {\\r\\n // \\t\\t\\tselectedHead.scrollIntoView();\\r\\n // \\t\\t}\\r\\n // \\t});\\r\\n //\\r\\n // \\t// Standard syntax\\r\\n // \\tselectedAccordionBody.addEventListener(\\\"transitionend\\\", function () {\\r\\n // \\t\\tif (selectedHead.classList.contains(\\\"active\\\")) {\\r\\n // \\t\\t\\tselectedHead.scrollIntoView();\\r\\n // \\t\\t}\\r\\n // \\t});\\r\\n // }\\r\\n}\\r\\n\\r\\nfunction closeOtherAccordions(current) {\\r\\n for (var i = 0; i < accordionHeads.length; i++) {\\r\\n var selectedHead = accordionHeads[i];\\r\\n var selectedAccordion = selectedHead.parentElement;\\r\\n var selectedAccordionBody = selectedAccordion.getElementsByClassName(\\\"accordion-body\\\")[0];\\r\\n\\r\\n if (i !== current) {\\r\\n accordionHeads[i].classList.remove(\\\"active\\\");\\r\\n selectedAccordionBody.classList.remove(\\\"opened\\\");\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region REGISTRATION | INNER ACCORDIONS\\r\\n\\r\\nif (document.getElementById(\\\"registrationPage\\\")) {\\r\\n listenInnerAccordions();\\r\\n}\\r\\n\\r\\nvar innerAccordionHeads = document.getElementsByClassName(\\\"inner-accordion-head\\\");\\r\\n\\r\\nfunction listenInnerAccordions() {\\r\\n innerAccordionHeads = document.getElementsByClassName(\\\"inner-accordion-head\\\");\\r\\n for (var i = 0; i < innerAccordionHeads.length; i++) {\\r\\n addInnerAccordionEventListeners(i);\\r\\n }\\r\\n}\\r\\n\\r\\nfunction addInnerAccordionEventListeners(index) {\\r\\n var selectedHead = innerAccordionHeads[index];\\r\\n var selectedAccordion = selectedHead.parentElement;\\r\\n var selectedAccordionBody = selectedAccordion.getElementsByClassName(\\\"inner-accordion-body\\\")[0];\\r\\n\\r\\n selectedHead.addEventListener(\\\"click\\\", function () {\\r\\n closeOtherInnerAccordions(index);\\r\\n\\r\\n try {\\r\\n selectedHead.classList.toggle(\\\"active\\\");\\r\\n selectedAccordionBody.classList.toggle(\\\"opened\\\");\\r\\n } catch (e) {\\r\\n console.error(\\\"Accordion - Selected body not found\\\");\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction closeOtherInnerAccordions(current) {\\r\\n for (var i = 0; i < innerAccordionHeads.length; i++) {\\r\\n var selectedHead = innerAccordionHeads[i];\\r\\n var selectedAccordion = selectedHead.parentElement;\\r\\n var selectedAccordionBody = selectedAccordion.getElementsByClassName(\\\"inner-accordion-body\\\")[0];\\r\\n\\r\\n if (i !== current) {\\r\\n innerAccordionHeads[i].classList.remove(\\\"active\\\");\\r\\n selectedAccordionBody.classList.remove(\\\"opened\\\");\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SHARED | Carousels\\r\\n\\r\\nif (document.getElementById(\\\"heroSlides\\\")) {\\r\\n var heroSlides = tns({\\r\\n container: \\\"#heroSlides\\\",\\r\\n items: 1,\\r\\n slideBy: \\\"page\\\",\\r\\n autoplay: false,\\r\\n speed: 400,\\r\\n controls: false,\\r\\n preventScrollOnTouch: \\\"auto\\\",\\r\\n autoplayButtonOutput: false\\r\\n });\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"testimonialsSlides\\\")) {\\r\\n var testimonialsSlides = tns({\\r\\n container: \\\"#testimonialsSlides\\\",\\r\\n items: 1,\\r\\n slideBy: \\\"page\\\",\\r\\n autoplay: true,\\r\\n speed: 400,\\r\\n autoplayTimeout: 10000,\\r\\n controls: false,\\r\\n mouseDrag: true,\\r\\n autoplayButtonOutput: false\\r\\n });\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"newsTileSlides\\\")) {\\r\\n var newsTileSlides = tns({\\r\\n container: \\\"#newsTileSlides\\\",\\r\\n items: 1,\\r\\n slideBy: \\\"page\\\",\\r\\n autoplay: true,\\r\\n speed: 400,\\r\\n autoplayTimeout: 10000,\\r\\n controls: false,\\r\\n mouseDrag: true,\\r\\n autoplayButtonOutput: false\\r\\n });\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"eventSpeakerSlide\\\")) {\\r\\n var eventSpeakerSlides = tns({\\r\\n container: \\\"#eventSpeakerSlide\\\",\\r\\n items: 1,\\r\\n slideBy: \\\"page\\\",\\r\\n autoplay: true,\\r\\n speed: 400,\\r\\n controls: false,\\r\\n mouseDrag: true,\\r\\n autoplayButtonOutput: false\\r\\n });\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"courseSlider\\\")) {\\r\\n var courseSlides = tns({\\r\\n container: \\\"#courseSlider\\\",\\r\\n items: 1,\\r\\n slideBy: \\\"page\\\",\\r\\n autoplay: true,\\r\\n speed: 400,\\r\\n controls: false,\\r\\n mouseDrag: true,\\r\\n autoplayButtonOutput: false\\r\\n });\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SHARED | Validators\\r\\n\\r\\n\\r\\n\\r\\nfunction clickSearchBar() {\\r\\n var overlay = document.getElementById(\\\"searchOverlay\\\");\\r\\n\\r\\n if ($(\\\"#searchOverlay\\\").is(\\\":visible\\\")) {\\r\\n // Allow Body Scrolling\\r\\n document.body.classList.remove(\\\"no-scroll\\\");\\r\\n\\r\\n $(\\\"#searchOverlay\\\").fadeOut(300);\\r\\n } else {\\r\\n // Prevent Body Scrolling\\r\\n document.body.classList.add(\\\"no-scroll\\\");\\r\\n\\r\\n $(\\\"#searchOverlay\\\").fadeIn(300);\\r\\n }\\r\\n}\\r\\n\\r\\n$(document).on(\\\"click\\\", \\\".search-text-container\\\", function (e) {\\r\\n e.stopPropagation();\\r\\n});\\r\\n\\r\\n$(document).click(function () {\\r\\n if ($(\\\"#searchOverlay\\\").is(\\\":visible\\\")) {\\r\\n document.body.classList.remove(\\\"no-scroll\\\");\\r\\n $(\\\"#searchOverlay\\\").fadeOut(300);\\r\\n }\\r\\n});\\r\\n\\r\\n$(\\\"#searchInput\\\")\\r\\n .keyup(function () {\\r\\n var keyword = $(\\\"#searchInput\\\").val();\\r\\n\\r\\n if (keyword) {\\r\\n $(\\\"#searchRecommendation\\\").slideDown(300);\\r\\n\\r\\n $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n dataType: \\\"json\\\",\\r\\n url: apiBaseUrl + \\\"Search/GetPredictiveKeywords?keyword=\\\" + keyword,\\r\\n success: function (response) {\\r\\n // Remove all element\\r\\n $(\\\"#searchRecommendation\\\").empty();\\r\\n\\r\\n if (response) {\\r\\n response.forEach(function (element) {\\r\\n $(\\\"#searchRecommendation\\\")\\r\\n .append(\\r\\n \\\"\\\"\\r\\n );\\r\\n });\\r\\n }\\r\\n }\\r\\n });\\r\\n } else {\\r\\n $(\\\"#searchRecommendation\\\").slideUp(300);\\r\\n }\\r\\n })\\r\\n .keypress(function (event) {\\r\\n if (event.key === \\\"Enter\\\") {\\r\\n redirectToResults();\\r\\n }\\r\\n });\\r\\n\\r\\nfunction redirectToResults() {\\r\\n var keyword = $(\\\"#searchInput\\\").val();\\r\\n window.location.href = window.location.origin + \\\"/search?q=\\\" + keyword;\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SEARCH RESULTS PAGE\\r\\n\\r\\n// set up base variables\\r\\nvar selectedSearchInterests;\\r\\nvar selectedSearchCategories;\\r\\n\\r\\n// init criteria and interest fetch only in search listing\\r\\nif (document.getElementById(\\\"searchListingPage\\\")) {\\r\\n ajaxCriteria();\\r\\n ajaxInterests();\\r\\n document.getElementById(\\\"searchPageInput\\\").value = getParameterByName(\\\"q\\\");\\r\\n updateSearchResult();\\r\\n\\r\\n // drop down categories\\r\\n $(\\\"#categoriesButton\\\").click(function () {\\r\\n if ($(\\\".categories-container\\\").is(\\\":visible\\\")) {\\r\\n $(this).removeClass(\\\"active\\\");\\r\\n $(\\\".categories-container\\\").slideUp();\\r\\n $(\\\".categories-container\\\").css(\\\"display\\\", \\\"flex\\\");\\r\\n } else {\\r\\n $(this).addClass(\\\"active\\\");\\r\\n $(\\\".categories-container\\\").slideDown();\\r\\n $(\\\".categories-container\\\").css(\\\"display\\\", \\\"flex\\\");\\r\\n }\\r\\n });\\r\\n\\r\\n $(\\\"#interestsClearButton\\\").click(function () {\\r\\n $(\\\".interests .interest\\\").each(function (index, item) {\\r\\n $(item).removeClass(\\\"selected\\\");\\r\\n });\\r\\n document.getElementById(\\\"interestsSelectAllCheckbox\\\").checked = false;\\r\\n updateSearchResult();\\r\\n });\\r\\n\\r\\n $(\\\"#interestsSelectAllButton\\\").click(function () {\\r\\n if (!document.getElementById(\\\"interestsSelectAllCheckbox\\\").checked) {\\r\\n $(\\\".interests .interest\\\").each(function (index, item) {\\r\\n $(item).addClass(\\\"selected\\\");\\r\\n });\\r\\n updateSearchResult();\\r\\n document.getElementById(\\\"interestsSelectAllCheckbox\\\").checked = true;\\r\\n } else {\\r\\n document.getElementById(\\\"interestsSelectAllCheckbox\\\").checked = true;\\r\\n }\\r\\n });\\r\\n\\r\\n $(\\\"#categoriesClearButton\\\").click(function () {\\r\\n $(\\\".categories .category input\\\").each(function (index, item) {\\r\\n $(item).prop(\\\"checked\\\", false);\\r\\n });\\r\\n document.getElementById(\\\"categoriesSelectAllCheckbox\\\").checked = false;\\r\\n updateSearchResult();\\r\\n });\\r\\n\\r\\n $(\\\"#categoriesSelectAllButton\\\").click(function () {\\r\\n if (!document.getElementById(\\\"categoriesSelectAllCheckbox\\\").checked) {\\r\\n $(\\\".categories .category input\\\").each(function (index, item) {\\r\\n $(item).prop(\\\"checked\\\", true);\\r\\n });\\r\\n updateSearchResult();\\r\\n document.getElementById(\\\"categoriesSelectAllCheckbox\\\").checked = true;\\r\\n } else {\\r\\n document.getElementById(\\\"categoriesSelectAllCheckbox\\\").checked = true;\\r\\n }\\r\\n });\\r\\n\\r\\n $(\\\"#searchCriteria\\\").on(\\\"click\\\", \\\".interest\\\", function () {\\r\\n var selectedInterest = $(this);\\r\\n\\r\\n if (selectedInterest.hasClass(\\\"selected\\\")) {\\r\\n selectedInterest.removeClass(\\\"selected\\\");\\r\\n document.getElementById(\\\"interestsSelectAllCheckbox\\\").checked = false;\\r\\n } else {\\r\\n selectedInterest.addClass(\\\"selected\\\");\\r\\n }\\r\\n updateSearchResult();\\r\\n });\\r\\n\\r\\n $(\\\"#searchCriteria\\\").on(\\\"click\\\", \\\".category input\\\", function () {\\r\\n document.getElementById(\\\"categoriesSelectAllCheckbox\\\").checked = false;\\r\\n updateSearchResult();\\r\\n });\\r\\n}\\r\\n\\r\\n// fetch interests\\r\\nfunction ajaxInterests() {\\r\\n return $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n dataType: \\\"json\\\",\\r\\n url: apiBaseUrl + \\\"Search/GetInterests\\\",\\r\\n success: function (response) {\\r\\n selectedSearchInterests = [];\\r\\n Object.keys(response).forEach(function (key) {\\r\\n selectedSearchInterests.push(key);\\r\\n $(\\\"#searchCriteria .interests\\\").append(\\\"
\\\" + response[key] + \\\"
\\\");\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\n// fetch criteria\\r\\nfunction ajaxCriteria() {\\r\\n return $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n dataType: \\\"json\\\",\\r\\n url: apiBaseUrl + \\\"Search/GetCategories\\\",\\r\\n success: function (response) {\\r\\n selectedSearchCategories = [];\\r\\n Object.keys(response).forEach(function (key) {\\r\\n selectedSearchCategories.push(key);\\r\\n $(\\\"#searchCriteria .categories\\\").append(\\\"
\\\");\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\n// update selected categories\\r\\nfunction updateSelectedCategories() {\\r\\n selectedSearchCategories = [];\\r\\n\\r\\n $(\\\".categories .category input\\\").each(function (index, item) {\\r\\n var selectedCategory = $(this);\\r\\n\\r\\n if (selectedCategory.prop(\\\"checked\\\")) {\\r\\n selectedSearchCategories.push(selectedCategory.attr(\\\"id\\\"));\\r\\n } else {\\r\\n selectedSearchCategories = selectedSearchCategories.filter(function (category) {\\r\\n return category !== selectedCategory.attr(\\\"id\\\");\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\n// update selected interests\\r\\nfunction updateSelectedInterests() {\\r\\n selectedSearchInterests = [];\\r\\n\\r\\n $(\\\".interests .interest\\\").each(function (index, item) {\\r\\n var selectedInterest = $(this);\\r\\n\\r\\n if (selectedInterest.hasClass(\\\"selected\\\")) {\\r\\n selectedSearchInterests.push(selectedInterest.attr(\\\"key\\\"));\\r\\n } else {\\r\\n selectedSearchInterests = selectedSearchInterests.filter(function (interest) {\\r\\n return interest !== selectedInterest.attr(\\\"key\\\");\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\n// fetch search results\\r\\nfunction fetchSearchResults() {\\r\\n updateSelectedCategories();\\r\\n updateSelectedInterests();\\r\\n\\r\\n $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: {\\r\\n \\\"Keyword\\\": $(\\\"#searchPageInput\\\").val(),\\r\\n \\\"Categories\\\": selectedSearchCategories,\\r\\n \\\"Interests\\\": selectedSearchInterests,\\r\\n \\\"Page\\\": selectedPage\\r\\n },\\r\\n url: apiBaseUrl + \\\"Search/GetSearchResultsForListingPage\\\",\\r\\n success: function (response) {\\r\\n $(\\\".pagination > .pages\\\").empty();\\r\\n\\r\\n if (response) {\\r\\n if (response.Pagination) {\\r\\n createPagination(response.Pagination);\\r\\n }\\r\\n\\r\\n $(\\\"#listingContainer\\\").empty();\\r\\n\\r\\n if (response.HeroItem) {\\r\\n if (response.HeroItem.Author) {\\r\\n document.getElementById(\\\"listingContainer\\\").classList.add(\\\"news\\\");\\r\\n var heroItem =\\r\\n \\\" \\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"

\\\" + response.HeroItem.Author + \\\"

\\\\n\\\" +\\r\\n \\\"

\\\" + response.HeroItem.Title + \\\"

\\\\n\\\" +\\r\\n \\\"

\\\" + response.HeroItem.Lead + \\\"

\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\" \\t\\t

\\\\n\\\" +\\r\\n \\\" \\t\\tInterests: \\\" + response.HeroItem.Interests.join(\\\", \\\").toUpperCase() +\\r\\n \\\" \\t\\t

\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\";\\r\\n $(\\\"#listingContainer\\\").append(heroItem);\\r\\n }\\r\\n }\\r\\n\\r\\n response.Result.forEach(function (element) {\\r\\n var category = \\\"

\\\" + element.Category.toUpperCase() + \\\"

\\\\n\\\";\\r\\n\\r\\n var item =\\r\\n \\\" \\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\" \\\\n\\\";\\r\\n $(\\\"#listingContainer\\\").append(item);\\r\\n });\\r\\n }\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction getParameterByName(name, url) {\\r\\n if (!url) url = window.location.href;\\r\\n name = name.replace(/[\\\\[\\\\]]/g, \\\"\\\\\\\\$&\\\");\\r\\n var regex = new RegExp(\\\"[?&]\\\" + name + \\\"(=([^&#]*)|&|#|$)\\\");\\r\\n var results = regex.exec(url);\\r\\n if (!results) return null;\\r\\n if (!results[2]) return \\\"\\\";\\r\\n return decodeURIComponent(results[2].replace(/\\\\+/g, \\\" \\\"));\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region MAIN LISTING HANDLER LOGIC\\r\\n\\r\\nvar selectedPage = 1;\\r\\n\\r\\nfunction updateSearchResult() {\\r\\n if (document.getElementById(\\\"searchListingPage\\\")) {\\r\\n $(document).one(\\\"ajaxStop\\\", function () {\\r\\n fetchSearchResults();\\r\\n });\\r\\n } else {\\r\\n searchAjaxCall();\\r\\n }\\r\\n}\\r\\n\\r\\nfunction searchAjaxCall() {\\r\\n var data;\\r\\n var route;\\r\\n\\r\\n if (document.getElementById(\\\"discussionBoardListing\\\")) {\\r\\n data = {\\r\\n \\\"Page\\\": selectedPage,\\r\\n \\\"Order\\\": document.getElementById(\\\"listingFilter\\\").value\\r\\n };\\r\\n route = \\\"DiscussionBoard/GetTopics\\\";\\r\\n } else if (document.getElementById(\\\"resourceListingPage\\\")) {\\r\\n data = {\\r\\n \\\"Tag\\\": document.getElementById(\\\"listingFilter\\\").value,\\r\\n \\\"Page\\\": selectedPage\\r\\n };\\r\\n route = \\\"ContentListing/GetProfilerResources\\\";\\r\\n }\\r\\n\\r\\n $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: data,\\r\\n url: apiBaseUrl + route,\\r\\n success: function (response) {\\r\\n $(\\\".pagination > .pages\\\").empty();\\r\\n\\r\\n if (response) {\\r\\n if (response.Pagination) {\\r\\n createPagination(response.Pagination);\\r\\n }\\r\\n\\r\\n if (document.getElementById(\\\"discussionBoardListing\\\")) {\\r\\n document.getElementById(\\\"discussionBoardListingContainer\\\").innerHTML = \\\"\\\";\\r\\n\\r\\n if (response.Topics) {\\r\\n response.Topics.forEach(function (element) {\\r\\n createDiscussionListElement(document.getElementById(\\\"discussionBoardListingContainer\\\"), element);\\r\\n });\\r\\n }\\r\\n } else {\\r\\n $(\\\"#listingContainer\\\").empty();\\r\\n\\r\\n if (response.HeroItem) {\\r\\n if (response.HeroItem.Author) {\\r\\n document.getElementById(\\\"listingContainer\\\").classList.add(\\\"news\\\");\\r\\n var heroItem =\\r\\n \\\" \\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"

\\\" + response.HeroItem.Author + \\\"

\\\\n\\\" +\\r\\n \\\"

\\\" + response.HeroItem.Title + \\\"

\\\\n\\\" +\\r\\n \\\"

\\\" + response.HeroItem.Lead + \\\"

\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\" \\t\\t

\\\\n\\\" +\\r\\n \\\" \\t\\tInterests: \\\" + response.HeroItem.Interests.join(\\\", \\\").toUpperCase() +\\r\\n \\\" \\t\\t

\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\";\\r\\n $(\\\"#listingContainer\\\").append(heroItem);\\r\\n }\\r\\n }\\r\\n\\r\\n response.Result.forEach(function (element) {\\r\\n var category = \\\"

\\\" + element.Category.toUpperCase() + \\\"

\\\\n\\\";\\r\\n\\r\\n var item =\\r\\n \\\" \\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\" \\\\n\\\";\\r\\n $(\\\"#listingContainer\\\").append(item);\\r\\n });\\r\\n }\\r\\n }\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction createPagination(pagination) {\\r\\n currentPage = pagination.CurrentPage;\\r\\n numberOfPages = pagination.NumberOfPages;\\r\\n updateVisibility();\\r\\n var minPage = determineMinPage();\\r\\n var maxPage = determineMaxPage();\\r\\n\\r\\n for (var page = minPage; page <= maxPage; page++) {\\r\\n $(\\\".pagination > .pages\\\").append(\\\"\\\" + page + \\\"\\\");\\r\\n }\\r\\n}\\r\\n\\r\\nfunction determineMinPage() {\\r\\n var iterator = 3;\\r\\n var value;\\r\\n\\r\\n if (currentPage === numberOfPages) {\\r\\n iterator = 5;\\r\\n } else if (currentPage === numberOfPages - 1) {\\r\\n iterator = 4;\\r\\n }\\r\\n\\r\\n for (var i = 0; i < iterator; i++) {\\r\\n if (currentPage - i > 0) {\\r\\n value = currentPage - i;\\r\\n }\\r\\n }\\r\\n return value;\\r\\n}\\r\\n\\r\\nfunction determineMaxPage() {\\r\\n var iterator = 3;\\r\\n var value;\\r\\n\\r\\n if (currentPage === 1) {\\r\\n iterator = 5;\\r\\n } else if (currentPage === 2) {\\r\\n iterator = 4;\\r\\n }\\r\\n\\r\\n for (var i = 0; i < iterator; i++) {\\r\\n if (currentPage + i <= numberOfPages) {\\r\\n value = currentPage + i;\\r\\n }\\r\\n }\\r\\n return value;\\r\\n}\\r\\n\\r\\n$(\\\"#searchPageInput\\\").keypress(function (event) {\\r\\n if (event.key === \\\"Enter\\\") {\\r\\n updateSearchResult();\\r\\n }\\r\\n});\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region CONTENT LISTING / SEARCH | Pagination\\r\\n\\r\\n$(\\\".pages\\\").on(\\\"click\\\", \\\"a\\\", function (event) {\\r\\n if (document.getElementById(\\\"discussionBoard\\\")) {\\r\\n event.preventDefault();\\r\\n selectedPage = parseInt($(this).text(), 10);\\r\\n fetchPosts();\\r\\n document.getElementById(\\\"mainContainer\\\").scrollIntoView();\\r\\n } else if (document.getElementById(\\\"dashboardNotificationsPage\\\")) {\\r\\n event.preventDefault();\\r\\n selectedPage = parseInt($(this).text(), 10);\\r\\n listNotifications();\\r\\n document.getElementById(\\\"notificationFilter\\\").scrollIntoView();\\r\\n } else if (document.getElementById(\\\"searchListingPage\\\") || document.getElementById(\\\"resourceListingPage\\\")) {\\r\\n event.preventDefault();\\r\\n selectedPage = parseInt($(this).text(), 10);\\r\\n if (document.getElementById(\\\"searchListingPage\\\")) {\\r\\n fetchSearchResults();\\r\\n } else {\\r\\n searchAjaxCall();\\r\\n }\\r\\n document.getElementById(\\\"searchCriteria\\\").scrollIntoView();\\r\\n }\\r\\n});\\r\\n\\r\\nfunction manipulatePaginationVisibility(action, where) {\\r\\n var elements = document.getElementsByClassName(where);\\r\\n\\r\\n Array.prototype.forEach.call(elements, function (el) {\\r\\n if (action === \\\"active\\\") {\\r\\n el.classList.remove(\\\"inactive\\\");\\r\\n } else if (action === \\\"inactive\\\") {\\r\\n el.classList.add(\\\"inactive\\\");\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction listingNext() {\\r\\n if (currentPage !== numberOfPages) {\\r\\n selectedPage = selectedPage + 1;\\r\\n if (document.getElementById(\\\"discussionBoard\\\")) {\\r\\n fetchPosts();\\r\\n document.getElementById(\\\"mainContainer\\\").scrollIntoView();\\r\\n } else {\\r\\n updateSearchResult();\\r\\n document.getElementById(\\\"searchCriteria\\\").scrollIntoView();\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\nfunction updateVisibility() {\\r\\n if (currentPage !== numberOfPages) {\\r\\n manipulatePaginationVisibility(\\\"active\\\", \\\"next\\\");\\r\\n } else {\\r\\n manipulatePaginationVisibility(\\\"inactive\\\", \\\"next\\\");\\r\\n }\\r\\n\\r\\n if (selectedPage !== 1) {\\r\\n manipulatePaginationVisibility(\\\"active\\\", \\\"prev\\\");\\r\\n } else {\\r\\n manipulatePaginationVisibility(\\\"inactive\\\", \\\"prev\\\");\\r\\n }\\r\\n}\\r\\n\\r\\nfunction listingPrev() {\\r\\n if (selectedPage !== 1) {\\r\\n selectedPage = selectedPage - 1;\\r\\n if (document.getElementById(\\\"discussionBoard\\\")) {\\r\\n fetchPosts();\\r\\n document.getElementById(\\\"mainContainer\\\").scrollIntoView();\\r\\n } else {\\r\\n updateSearchResult();\\r\\n document.getElementById(\\\"searchCriteria\\\").scrollIntoView();\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region CONTENT LISTING / SEARCH | Grid/Listing View Listeners\\r\\n\\r\\nvar gridViewButton = document.getElementById(\\\"gridViewButton\\\");\\r\\nvar listingViewButton = document.getElementById(\\\"listingViewButton\\\");\\r\\nvar animationLenght = 500;\\r\\n\\r\\nif (gridViewButton) {\\r\\n document.getElementById(\\\"gridViewButton\\\").addEventListener(\\\"click\\\", function () {\\r\\n if (!document.getElementById(\\\"gridViewButton\\\").classList.contains(\\\"selected\\\")) {\\r\\n document.getElementById(\\\"gridViewButton\\\").classList.add(\\\"selected\\\");\\r\\n document.getElementById(\\\"listingViewButton\\\").classList.remove(\\\"selected\\\");\\r\\n var elem = $(\\\".element\\\");\\r\\n elem.fadeOut(animationLenght, function () {\\r\\n document.getElementById(\\\"listingContainer\\\").classList.add(\\\"grid-view\\\");\\r\\n elem.fadeIn(animationLenght);\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nif (listingViewButton) {\\r\\n document.getElementById(\\\"listingViewButton\\\").addEventListener(\\\"click\\\", function () {\\r\\n if (!document.getElementById(\\\"listingViewButton\\\").classList.contains(\\\"selected\\\")) {\\r\\n document.getElementById(\\\"listingViewButton\\\").classList.add(\\\"selected\\\");\\r\\n document.getElementById(\\\"gridViewButton\\\").classList.remove(\\\"selected\\\");\\r\\n var elem = $(\\\".element\\\");\\r\\n elem.fadeOut(animationLenght, function () {\\r\\n document.getElementById(\\\"listingContainer\\\").classList.remove(\\\"grid-view\\\");\\r\\n elem.fadeIn(animationLenght);\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction listViewMobile() {\\r\\n if (document.getElementById(\\\"listingViewButton\\\")) {\\r\\n if (window.outerWidth < tabletBreakpoint && document.getElementById(\\\"listingViewButton\\\").classList.contains(\\\"selected\\\")) {\\r\\n document.getElementById(\\\"listingViewButton\\\").classList.remove(\\\"selected\\\");\\r\\n document.getElementById(\\\"gridViewButton\\\").classList.add(\\\"selected\\\");\\r\\n document.getElementById(\\\"listingContainer\\\").classList.add(\\\"grid-view\\\");\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\nwindow.addEventListener(\\\"resize\\\", listViewMobile);\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region CONTENT LISTING / SEARCH | Interest Dropdown listener\\r\\n\\r\\n$(\\\"#interestsButton\\\").click(function () {\\r\\n if ($(\\\".interests-container\\\").is(\\\":visible\\\")) {\\r\\n $(this).removeClass(\\\"active\\\");\\r\\n $(\\\".interests-container\\\").slideUp();\\r\\n $(\\\".interests-container\\\").css(\\\"display\\\", \\\"flex\\\");\\r\\n } else {\\r\\n $(this).addClass(\\\"active\\\");\\r\\n $(\\\".interests-container\\\").slideDown();\\r\\n $(\\\".interests-container\\\").css(\\\"display\\\", \\\"flex\\\");\\r\\n }\\r\\n});\\r\\n\\r\\nfunction toggleSelected(div) {\\r\\n if (div.parentElement.classList.contains(\\\"selected\\\")) {\\r\\n div.parentElement.classList.remove(\\\"selected\\\");\\r\\n } else {\\r\\n div.parentElement.classList.add(\\\"selected\\\");\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SHARED | Sidebar\\r\\n\\r\\nvar sidebarOverlay = getElementByClassName(\\\"sidebar-overlay\\\");\\r\\nvar sidebarUserMenu = getElementByClassName(\\\"user-menu\\\");\\r\\nvar sidebarIsOpened = false;\\r\\n\\r\\nfunction hideIcons() {\\r\\n // Hide Header Icons\\r\\n fadeOut(getElementByClassName(\\\"hamburger-menu\\\"));\\r\\n fadeOut(getElementByClassName(\\\"search\\\"));\\r\\n\\r\\n if (getElementByClassName(\\\"user\\\")) {\\r\\n fadeOut(getElementByClassName(\\\"user\\\"));\\r\\n }\\r\\n\\r\\n if (getElementByClassName(\\\"user-photo\\\")) {\\r\\n fadeOut(getElementByClassName(\\\"user-photo\\\"));\\r\\n }\\r\\n\\r\\n // Prevent Body Scrolling\\r\\n document.body.classList.add(\\\"no-scroll\\\");\\r\\n}\\r\\n\\r\\nfunction showIcons() {\\r\\n // Show Header Icons\\r\\n fadeIn(getElementByClassName(\\\"hamburger-menu\\\"));\\r\\n fadeIn(getElementByClassName(\\\"search\\\"));\\r\\n\\r\\n if (getElementByClassName(\\\"user\\\")) {\\r\\n fadeIn(getElementByClassName(\\\"user\\\"));\\r\\n }\\r\\n\\r\\n if (getElementByClassName(\\\"user-photo\\\")) {\\r\\n fadeIn(getElementByClassName(\\\"user-photo\\\"));\\r\\n }\\r\\n\\r\\n // Allow Body Scrolling\\r\\n document.body.classList.remove(\\\"no-scroll\\\");\\r\\n}\\r\\n\\r\\nfunction showSidebar() {\\r\\n hideIcons();\\r\\n fadeIn(sidebarOverlay);\\r\\n sidebarIsOpened = true;\\r\\n}\\r\\n\\r\\nfunction showUserMenu() {\\r\\n if (window.outerWidth < tabletBreakpoint + 1) {\\r\\n hideIcons();\\r\\n fadeIn(sidebarUserMenu);\\r\\n sidebarIsOpened = true;\\r\\n }\\r\\n}\\r\\n\\r\\nfunction hideSidebar() {\\r\\n showIcons();\\r\\n fadeOut(sidebarOverlay);\\r\\n sidebarIsOpened = false;\\r\\n}\\r\\n\\r\\nfunction hideUserMenu() {\\r\\n if (window.outerWidth < tabletBreakpoint + 1) {\\r\\n showIcons();\\r\\n fadeOut(sidebarUserMenu);\\r\\n sidebarIsOpened = false;\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SHARED | Header and Sidebar Login/Recovery\\r\\n\\r\\nvar tabletBreakpoint = 768;\\r\\nvar desktopBreakpoint = 1025;\\r\\n\\r\\nvar sidebarLoginRecovery = document.getElementById(\\\"sidebarLoginRecovery\\\");\\r\\nvar headerLoginRecovery = document.getElementById(\\\"headerLoginRecovery\\\");\\r\\nvar isLoginRecoveryOpen = false;\\r\\n\\r\\nfunction openLogin() {\\r\\n if (sidebarLoginRecovery && headerLoginRecovery) {\\r\\n if (window.outerWidth < tabletBreakpoint + 1) {\\r\\n hideIcons();\\r\\n fadeIn(sidebarLoginRecovery);\\r\\n isLoginRecoveryOpen = true;\\r\\n } else {\\r\\n fadeIn(headerLoginRecovery);\\r\\n isLoginRecoveryOpen = true;\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\nfunction closeLogin() {\\r\\n if (sidebarLoginRecovery && headerLoginRecovery) {\\r\\n if (window.outerWidth < tabletBreakpoint + 1) {\\r\\n showIcons();\\r\\n fadeOut(sidebarLoginRecovery);\\r\\n isLoginRecoveryOpen = false;\\r\\n } else {\\r\\n fadeOut(headerLoginRecovery);\\r\\n isLoginRecoveryOpen = false;\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\nfunction toggleLogin() {\\r\\n if (sidebarLoginRecovery && headerLoginRecovery) {\\r\\n if (!isLoginRecoveryOpen) {\\r\\n openLogin();\\r\\n } else {\\r\\n closeLogin();\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\n$(document).on(\\\"click\\\", \\\".dropdown, .user, .nav-menu, #sidebarRecoveryContent, #sidebarLoginContent, .header-box\\\", function (e) {\\r\\n e.stopPropagation();\\r\\n});\\r\\n\\r\\n$(document).click(function () {\\r\\n closeLogin();\\r\\n});\\r\\n\\r\\n// Password Recovery / Login Shows\\r\\n\\r\\nfunction openPasswordRecovery() {\\r\\n if (window.outerWidth < tabletBreakpoint + 1) {\\r\\n document.getElementById(\\\"sidebarRecoveryContent\\\").style.display = \\\"flex\\\";\\r\\n document.getElementById(\\\"sidebarLoginContent\\\").style.display = \\\"none\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"headerRecoveryContent\\\").style.display = \\\"flex\\\";\\r\\n document.getElementById(\\\"headerLoginContent\\\").style.display = \\\"none\\\";\\r\\n }\\r\\n}\\r\\n\\r\\nfunction redirectToLogin() {\\r\\n if (window.outerWidth < tabletBreakpoint + 1) {\\r\\n document.getElementById(\\\"sidebarRecoveryContent\\\").style.display = \\\"none\\\";\\r\\n document.getElementById(\\\"sidebarLoginContent\\\").style.display = \\\"flex\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"headerRecoveryContent\\\").style.display = \\\"none\\\";\\r\\n document.getElementById(\\\"headerLoginContent\\\").style.display = \\\"flex\\\";\\r\\n }\\r\\n}\\r\\n\\r\\nfunction passwordRecoveryPanelToggle() {\\r\\n var currentState = document.getElementById(\\\"logIn\\\").style.display;\\r\\n\\r\\n if (currentState === \\\"flex\\\" || currentState === \\\"\\\") {\\r\\n document.getElementById(\\\"logIn\\\").style.display = \\\"none\\\";\\r\\n document.getElementById(\\\"passwordRecovery\\\").style.display = \\\"flex\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"logIn\\\").style.display = \\\"flex\\\";\\r\\n document.getElementById(\\\"passwordRecovery\\\").style.display = \\\"none\\\";\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region REGISTRATION PAGE | Registration Form Submission\\r\\n\\r\\nif (document.getElementById(\\\"discussionBoardName\\\")) {\\r\\n var discussionBoardName = document.getElementById(\\\"discussionBoardName\\\");\\r\\n\\r\\n discussionBoardName.onkeyup = resetValidator;\\r\\n\\r\\n function resetValidator() {\\r\\n discussionBoardName.setCustomValidity(\\\"\\\");\\r\\n }\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"registrationCode\\\")) {\\r\\n var regCode = document.getElementById(\\\"registrationCode\\\");\\r\\n\\r\\n regCode.onkeyup = resetValidator;\\r\\n\\r\\n function resetValidator() {\\r\\n regCode.setCustomValidity(\\\"\\\");\\r\\n }\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"email\\\") && document.getElementById(\\\"confirmedEmail\\\")) {\\r\\n var email = document.getElementById(\\\"email\\\");\\r\\n var confEmail = document.getElementById(\\\"confirmedEmail\\\");\\r\\n var regCode = document.getElementById(\\\"registrationCode\\\");\\r\\n\\r\\n email.onkeyup = resetValidator;\\r\\n confEmail.onkeyup = resetValidator;\\r\\n\\r\\n function resetValidator() {\\r\\n regCode.setCustomValidity(\\\"\\\");\\r\\n }\\r\\n}\\r\\n\\r\\nif (document.querySelector(\\\"#registrationForm\\\")) {\\r\\n //document.querySelector(\\\"#registrationForm\\\").addEventListener(\\\"submit\\\", function (e) {\\r\\n //\\te.preventDefault();\\r\\n\\r\\n //\\tvar data = {\\r\\n //\\t\\t\\\"Email\\\": $(\\\"#registrationForm #email\\\").val(),\\r\\n //\\t\\t\\\"Password\\\": $(\\\"#registrationForm #password\\\").val(),\\r\\n //\\t\\t\\\"DiscussionBoardName\\\": $(\\\"#registrationForm #discussionBoardName\\\").val(),\\r\\n //\\t\\t\\\"PhoneNumber\\\": $(\\\"#registrationForm #phoneNumber\\\").val(),\\r\\n //\\t\\t\\\"UserTitle\\\": $(\\\"#registrationForm #user-title\\\").val(),\\r\\n //\\t\\t\\\"FistName\\\": $(\\\"#registrationForm #firstName\\\").val(),\\r\\n //\\t\\t\\\"LastName\\\": $(\\\"#registrationForm #lastName\\\").val(),\\r\\n //\\t\\t\\\"CompanyName\\\": $(\\\"#registrationForm #companyName\\\").val(),\\r\\n //\\t\\t\\\"JobTitle\\\": $(\\\"#registrationForm #jobTitle\\\").val(),\\r\\n //\\t\\t\\\"Industry\\\": $(\\\"#registrationForm #Industry\\\").val(),\\r\\n //\\t\\t\\\"Country\\\": $(\\\"#registrationForm #Country\\\").val(),\\r\\n //\\t\\t\\\"NewsletterCheckbox\\\": $(\\\"#registrationForm #newsletterCheckbox\\\").prop(\\\"checked\\\"),\\r\\n //\\t\\t\\\"WeeklyCheckbox\\\": $(\\\"#registrationForm #weeklyCheckbox\\\").prop(\\\"checked\\\"),\\r\\n //\\t\\t\\\"MonthlyCheckbox\\\": $(\\\"#registrationForm #monthlyCheckbox\\\").prop(\\\"checked\\\"),\\r\\n //\\t\\t\\\"MembershipType\\\": determineMembershipType(),\\r\\n //\\t\\t\\\"Code\\\": $(\\\"#registrationForm #registrationCode\\\").val()\\r\\n //\\t};\\r\\n\\r\\n //\\tsendRegistrationForm(data);\\r\\n //});\\r\\n\\r\\n //pre select membership\\r\\n if (window.location.hash) {\\r\\n document.getElementById(\\\"registrationCode\\\").value = window.location.hash.split(\\\"#\\\").pop();\\r\\n // document.getElementById(\\\"registrationCode\\\").disabled = true;\\r\\n document.getElementById(\\\"registrationMembership\\\").classList.add(\\\"pre-selected\\\");\\r\\n document.getElementById(\\\"advancedMemberCheckbox\\\").checked = true;\\r\\n document.getElementById(\\\"associateMemberCheckbox\\\").disabled = true;\\r\\n }\\r\\n\\r\\n document.getElementById(\\\"registrationCode\\\").addEventListener(\\\"change\\\", function () {\\r\\n if (document.getElementById(\\\"registrationCode\\\").value) {\\r\\n document.getElementById(\\\"registrationMembership\\\").classList.add(\\\"pre-selected\\\");\\r\\n document.getElementById(\\\"advancedMemberCheckbox\\\").checked = true;\\r\\n document.getElementById(\\\"associateMemberCheckbox\\\").disabled = true;\\r\\n } else {\\r\\n document.getElementById(\\\"registrationMembership\\\").classList.remove(\\\"pre-selected\\\");\\r\\n document.getElementById(\\\"associateMemberCheckbox\\\").checked = true;\\r\\n document.getElementById(\\\"associateMemberCheckbox\\\").disabled = false;\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction determineMembershipType() {\\r\\n var isAssociateMemberCheckboxChecked = document.getElementById(\\\"associateMemberCheckbox\\\").checked;\\r\\n var isAdvancedMemberCheckboxChecked = document.getElementById(\\\"advancedMemberCheckbox\\\").checked;\\r\\n\\r\\n if (isAssociateMemberCheckboxChecked) {\\r\\n return \\\"associateMemberCheckbox\\\";\\r\\n } else if (isAdvancedMemberCheckboxChecked) {\\r\\n return \\\"advancedMemberCheckbox\\\";\\r\\n }\\r\\n return null;\\r\\n}\\r\\n\\r\\nfunction sendRegistrationForm(data) {\\r\\n var emailValid = document.getElementById(\\\"email\\\");\\r\\n emailValid.setCustomValidity(\\\"\\\");\\r\\n\\r\\n var discussionBoardNameValid = document.getElementById(\\\"discussionBoardName\\\");\\r\\n discussionBoardNameValid.setCustomValidity(\\\"\\\");\\r\\n\\r\\n var registrationCode = document.getElementById(\\\"registrationCode\\\");\\r\\n registrationCode.setCustomValidity(\\\"\\\");\\r\\n\\r\\n var regPassword = document.getElementById(\\\"password\\\");\\r\\n regPassword.setCustomValidity(\\\"\\\");\\r\\n\\r\\n document.getElementById(\\\"registerButton\\\").disabled = true;\\r\\n document.getElementById(\\\"registerButton\\\").value = \\\"Please wait\\\";\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n data: data,\\r\\n url: apiBaseUrl + \\\"Membership/RegisterNewMember\\\",\\r\\n success: function (response) {\\r\\n document.getElementById(\\\"registerButton\\\").disabled = false;\\r\\n document.getElementById(\\\"registerButton\\\").value = \\\"Submit\\\";\\r\\n ga(\\\"send\\\", \\\"event\\\", \\\"Form Submission\\\", \\\"submission\\\", \\\"Registration Complete\\\");\\r\\n if (response) {\\r\\n if (response.Url) {\\r\\n window.location.href = response.Url;\\r\\n } else {\\r\\n window.location.href = window.location.protocol + \\\"//\\\" + window.location.hostname + (window.location.port ? \\\":\\\" + window.location.port : \\\"\\\") + \\\"/registration-complete/\\\";\\r\\n }\\r\\n } else {\\r\\n window.location.href = window.location.protocol + \\\"//\\\" + window.location.hostname + (window.location.port ? \\\":\\\" + window.location.port : \\\"\\\") + \\\"/registration-complete/\\\";\\r\\n }\\r\\n },\\r\\n error: function (error) {\\r\\n sendErrorLog(error, \\\"Registration Page\\\");\\r\\n\\r\\n if (error.responseJSON.ErrorCode === 1) {\\r\\n emailValid.setCustomValidity(error.responseJSON.Message);\\r\\n document.getElementById(\\\"registerButton\\\").disabled = false;\\r\\n document.getElementById(\\\"registerButton\\\").click();\\r\\n document.getElementById(\\\"registerButton\\\").value = \\\"Submit\\\";\\r\\n } else if (error.responseJSON.ErrorCode === 2) {\\r\\n discussionBoardNameValid.setCustomValidity(error.responseJSON.Message);\\r\\n document.getElementById(\\\"registerButton\\\").disabled = false;\\r\\n document.getElementById(\\\"registerButton\\\").click();\\r\\n document.getElementById(\\\"registerButton\\\").value = \\\"Submit\\\";\\r\\n } else if (error.responseJSON.ErrorCode === 3) {\\r\\n regPassword.setCustomValidity(error.responseJSON.Message);\\r\\n document.getElementById(\\\"registerButton\\\").disabled = false;\\r\\n document.getElementById(\\\"registerButton\\\").click();\\r\\n document.getElementById(\\\"registerButton\\\").value = \\\"Submit\\\";\\r\\n } else if (error.responseJSON.ErrorCode === 4) {\\r\\n registrationCode.setCustomValidity(error.responseJSON.Message);\\r\\n document.getElementById(\\\"registerButton\\\").disabled = false;\\r\\n document.getElementById(\\\"registerButton\\\").click();\\r\\n document.getElementById(\\\"registerButton\\\").value = \\\"Submit\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"registerButton\\\").setCustomValidity(error.Message);\\r\\n document.getElementById(\\\"registerButton\\\").disabled = false;\\r\\n document.getElementById(\\\"registerButton\\\").value = \\\"Submit\\\";\\r\\n }\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction sendErrorLog(error, pageId) {\\r\\n //return $.ajax({\\r\\n //\\ttype: \\\"POST\\\",\\r\\n //\\tdata: {\\r\\n //\\t\\tScreenSize: window.innerWidth + \\\"x\\\" + window.innerHeight,\\r\\n //\\t\\tBrowser: window.navigator.userAgent,\\r\\n //\\t\\tIssueText: JSON.stringify(error),\\r\\n //\\t\\tPageId: pageId,\\r\\n //\\t\\tComment: \\\"\\\"\\r\\n //\\t},\\r\\n //\\turl: apiBaseUrl + \\\"Diagnostic/RegisterErrorReport\\\",\\r\\n //\\tsuccess: function () {\\r\\n //\\t},\\r\\n //\\terror: function () {\\r\\n //\\t}\\r\\n //});\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SHARED | Page Reorder\\r\\n\\r\\nfunction reorder() {\\r\\n if (window.outerWidth < tabletBreakpoint + 1 && document.getElementById(\\\"htmlSidebar\\\")) {\\r\\n $(\\\"#interestsTag\\\").prependTo(\\\"#mainContainer\\\");\\r\\n $(\\\"#publisher\\\").prependTo(\\\"#mainContainer\\\");\\r\\n } else if (window.outerWidth > tabletBreakpoint + 1 && document.getElementById(\\\"htmlSidebar\\\")) {\\r\\n $(\\\"#interestsTag\\\").prependTo(\\\"#htmlSidebar\\\");\\r\\n $(\\\"#publisher\\\").prependTo(\\\"#htmlSidebar\\\");\\r\\n }\\r\\n\\r\\n // if (window.outerWidth < tabletBreakpoint + 1 && document.getElementById(\\\"registrationSidebar\\\")) {\\r\\n // \\t$(\\\"#whyJoin\\\").appendTo(\\\"#mainContainer\\\");\\r\\n // } else if (window.outerWidth > tabletBreakpoint + 1 && document.getElementById(\\\"registrationSidebar\\\")) {\\r\\n // \\t$(\\\"#whyJoin\\\").appendTo(\\\"#registrationSidebar\\\");\\r\\n // }\\r\\n\\r\\n function isFullscreen() {\\r\\n return document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement;\\r\\n }\\r\\n\\r\\n if (window.outerWidth < desktopBreakpoint + 1 && document.getElementById(\\\"magazineContent\\\") && !isFullscreen()) {\\r\\n $(\\\"#magazine\\\").appendTo(\\\"#descriptionContent\\\");\\r\\n } else if (window.outerWidth > desktopBreakpoint + 1 && document.getElementById(\\\"magazineContent\\\") && !isFullscreen()) {\\r\\n $(\\\"#magazine\\\").appendTo(\\\"#fullContent\\\");\\r\\n }\\r\\n\\r\\n if (window.outerWidth < tabletBreakpoint + 1 && document.getElementById(\\\"contactUseContent\\\")) {\\r\\n $(\\\"#headline\\\").prependTo(\\\".main-sidebar\\\");\\r\\n } else if (window.outerWidth > tabletBreakpoint + 1 && document.getElementById(\\\"contactUseContent\\\")) {\\r\\n $(\\\"#headline\\\").prependTo(\\\"#contactUseContent\\\");\\r\\n }\\r\\n}\\r\\n\\r\\nreorder();\\r\\n\\r\\nwindow.addEventListener(\\\"resize\\\", reorder);\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region REGISTRATION PAGE | Toggle Visibility\\r\\n\\r\\n/*if (document.querySelector(\\\"#registrationForm\\\")) {\\r\\n var newsletterCheckbox = document.getElementById(\\\"newsletterCheckbox\\\");\\r\\n var hearfromUs = document.getElementById(\\\"hearFromUs\\\");\\r\\n\\r\\n newsletterCheckbox.addEventListener(\\\"change\\\", function () {\\r\\n if (hearfromUs.style.display === \\\"none\\\") {\\r\\n hearfromUs.style.display = \\\"flex\\\";\\r\\n } else {\\r\\n hearfromUs.style.display = \\\"none\\\";\\r\\n }\\r\\n });\\r\\n}*/\\r\\n\\r\\n// endregion+\\r\\n\\r\\n// region MAIN PAGE / CONTACT US PAGE | From Submission\\r\\n\\r\\n//if (document.querySelector(\\\"#getInTouchForm\\\")) {\\r\\n//\\tdocument.querySelector(\\\"#getInTouchForm\\\").addEventListener(\\\"submit\\\", function (e) {\\r\\n//\\t\\te.preventDefault();\\r\\n\\r\\n//\\t\\t//var data = {\\r\\n//\\t\\t//\\t\\\"Email\\\": $(\\\"#getInTouchForm #email\\\").val(),\\r\\n//\\t\\t//\\t\\\"Title\\\": $(\\\"#getInTouchForm #user-title\\\").val(),\\r\\n//\\t\\t//\\t\\\"Name\\\": $(\\\"#getInTouchForm #firstName\\\").val(),\\r\\n//\\t\\t//\\t\\\"Surname\\\": $(\\\"#getInTouchForm #lastName\\\").val(),\\r\\n//\\t\\t//\\t\\\"Phone\\\": $(\\\"#getInTouchForm #phoneNumber\\\").val(),\\r\\n//\\t\\t//\\t\\\"Company\\\": $(\\\"#getInTouchForm #companyName\\\").val(),\\r\\n//\\t\\t//\\t\\\"Message\\\": $(\\\"#getInTouchForm #enquiry\\\").val()\\r\\n//\\t\\t//};\\r\\n\\r\\n//\\t\\tif (!document.getElementById(\\\"policyCheckbox\\\").checked) {\\r\\n//\\t\\t\\tdocument.getElementById(\\\"getInTouchForm\\\").classList.add(\\\"error\\\");\\r\\n//\\t\\t} else {\\r\\n//\\t\\t\\tdocument.getElementById(\\\"getInTouchForm\\\").classList.remove(\\\"error\\\");\\r\\n//\\t\\t\\t//sendContactUsForm(data);\\r\\n//\\t\\t}\\r\\n//\\t});\\r\\n//}\\r\\n\\r\\n//if (document.querySelector(\\\"#contactForm\\\")) {\\r\\n//\\tdocument.querySelector(\\\"#contactForm\\\").addEventListener(\\\"submit\\\", function (e) {\\r\\n//\\t\\te.preventDefault();\\r\\n\\r\\n//\\t\\tvar data = {\\r\\n//\\t\\t\\t\\\"Email\\\": $(\\\"#contactForm #email\\\").val(),\\r\\n//\\t\\t\\t\\\"Title\\\": \\\"\\\",\\r\\n//\\t\\t\\t\\\"Phone\\\": \\\"\\\",\\r\\n//\\t\\t\\t\\\"Name\\\": $(\\\"#contactForm #firstName\\\").val(),\\r\\n//\\t\\t\\t\\\"Surname\\\": $(\\\"#contactForm #lastName\\\").val(),\\r\\n//\\t\\t\\t\\\"Company\\\": $(\\\"#contactForm #companyName\\\").val(),\\r\\n//\\t\\t\\t\\\"Message\\\": $(\\\"#contactForm #enquiry\\\").val()\\r\\n//\\t\\t};\\r\\n\\r\\n//\\t\\tif (!document.getElementById(\\\"policyCheckbox\\\").checked) {\\r\\n//\\t\\t\\tdocument.getElementById(\\\"contactForm\\\").classList.add(\\\"error\\\");\\r\\n//\\t\\t} else {\\r\\n//\\t\\t\\tdocument.getElementById(\\\"contactForm\\\").classList.remove(\\\"error\\\");\\r\\n//\\t\\t\\tsendContactUsForm(data);\\r\\n//\\t\\t}\\r\\n//\\t});\\r\\n//}\\r\\n\\r\\n//function sendContactUsForm(data) {\\r\\n//\\treturn $.ajax({\\r\\n//\\t\\ttype: \\\"POST\\\",\\r\\n//\\t\\tdata: data,\\r\\n//\\t\\turl: apiBaseUrl + \\\"ContactForm/SendContactForm\\\",\\r\\n//\\t\\tsuccess: function () {\\r\\n//\\t\\t\\tga(\\\"send\\\", {\\r\\n//\\t\\t\\t\\t\\\"hitType\\\": \\\"event\\\",\\r\\n//\\t\\t\\t\\t\\\"eventCategory\\\": \\\"Form Submission\\\",\\r\\n//\\t\\t\\t\\t\\\"eventAction\\\": \\\"submission\\\",\\r\\n//\\t\\t\\t\\t\\\"eventLabel\\\": \\\"Ask us anything\\\"\\r\\n//\\t\\t\\t});\\r\\n//\\t\\t\\tif (document.querySelector(\\\"#getInTouchForm\\\")) {\\r\\n//\\t\\t\\t\\tdocument.getElementsByClassName(\\\"get-in-touch\\\")[1].style.display = \\\"none\\\";\\r\\n//\\t\\t\\t\\tdocument.getElementsByClassName(\\\"thank-you\\\")[0].style.display = \\\"flex\\\";\\r\\n//\\t\\t\\t} else {\\r\\n//\\t\\t\\t\\tdocument.getElementsByClassName(\\\"form\\\")[0].style.display = \\\"none\\\";\\r\\n//\\t\\t\\t\\tdocument.getElementsByClassName(\\\"thank-you\\\")[0].style.display = \\\"block\\\";\\r\\n//\\t\\t\\t}\\r\\n//\\t\\t}\\r\\n//\\t});\\r\\n//}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SHARED | Google Maps Init and Styles\\r\\n\\r\\nvar mapStyle = [\\r\\n {\\r\\n \\\"featureType\\\": \\\"administrative\\\",\\r\\n \\\"elementType\\\": \\\"labels\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"administrative.country\\\",\\r\\n \\\"elementType\\\": \\\"geometry.stroke\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"administrative.province\\\",\\r\\n \\\"elementType\\\": \\\"geometry.stroke\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"landscape\\\",\\r\\n \\\"elementType\\\": \\\"geometry\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"on\\\"\\r\\n },\\r\\n {\\r\\n \\\"color\\\": \\\"#e3e3e3\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"landscape.natural\\\",\\r\\n \\\"elementType\\\": \\\"labels\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"poi\\\",\\r\\n \\\"elementType\\\": \\\"all\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"road\\\",\\r\\n \\\"elementType\\\": \\\"all\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"color\\\": \\\"#cccccc\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"road\\\",\\r\\n \\\"elementType\\\": \\\"labels\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"transit\\\",\\r\\n \\\"elementType\\\": \\\"labels.icon\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"transit.line\\\",\\r\\n \\\"elementType\\\": \\\"geometry\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"transit.line\\\",\\r\\n \\\"elementType\\\": \\\"labels.text\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"transit.station.airport\\\",\\r\\n \\\"elementType\\\": \\\"geometry\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"transit.station.airport\\\",\\r\\n \\\"elementType\\\": \\\"labels\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"water\\\",\\r\\n \\\"elementType\\\": \\\"geometry\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"color\\\": \\\"#FFFFFF\\\"\\r\\n }\\r\\n ]\\r\\n },\\r\\n {\\r\\n \\\"featureType\\\": \\\"water\\\",\\r\\n \\\"elementType\\\": \\\"labels\\\",\\r\\n \\\"stylers\\\": [\\r\\n {\\r\\n \\\"visibility\\\": \\\"off\\\"\\r\\n }\\r\\n ]\\r\\n }\\r\\n];\\r\\n\\r\\nfunction initMap() {\\r\\n if (document.getElementById(\\\"contactUsPage\\\")) {\\r\\n contactUsMapAndSidebar();\\r\\n } else if (document.getElementById(\\\"eventContentPage\\\")) {\\r\\n eventsMap();\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region CONTACT US PAGE | Google Map and Sidebar\\r\\n\\r\\nvar contactUsAccordions = [];\\r\\n\\r\\nfunction contactUsMapAndSidebar() {\\r\\n var center = {lat: 6.259832, lng: 23.617387};\\r\\n var pinContent = [];\\r\\n var infoWindows = [];\\r\\n var markers = [];\\r\\n\\r\\n var map = new google.maps.Map(\\r\\n document.getElementById(\\\"googleMap\\\"), {\\r\\n zoom: 2,\\r\\n center: center,\\r\\n styles: mapStyle,\\r\\n zoomControl: true,\\r\\n mapTypeControl: false,\\r\\n scaleControl: false,\\r\\n streetViewControl: false,\\r\\n rotateControl: false,\\r\\n fullscreenControl: true\\r\\n });\\r\\n\\r\\n $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n dataType: \\\"json\\\",\\r\\n url: apiBaseUrl + \\\"Headquarters/GetHeadquarters\\\",\\r\\n success: function (response) {\\r\\n populateContactUsSidebar(transformHeadquartersResponse(response));\\r\\n populateContactUsMap(transformHeadquartersResponse(response), response, pinContent, infoWindows, markers, map);\\r\\n contactUsAccordions = document.getElementById(\\\"headquartersAccordions\\\").getElementsByClassName(\\\"accordion-head\\\");\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\n// rearrange response for accordion display\\r\\nfunction transformHeadquartersResponse(response) {\\r\\n var headquarters = [];\\r\\n var transformedResponse = [];\\r\\n response.forEach(function (headquarter) {\\r\\n if (headquarters.indexOf(headquarter.Region) < 0) {\\r\\n headquarters.push(headquarter.Region);\\r\\n }\\r\\n });\\r\\n headquarters.forEach(function (headquarter) {\\r\\n var accordion = {};\\r\\n accordion.Region = headquarter;\\r\\n accordion.Content = response.filter(function (responseElement) {\\r\\n return responseElement.Region === headquarter;\\r\\n });\\r\\n transformedResponse.push(accordion);\\r\\n });\\r\\n return transformedResponse;\\r\\n}\\r\\n\\r\\nfunction populateContactUsMap(transformedResponse, response, pinContent, infoWindows, markers, map) {\\r\\n var image = {\\r\\n url: \\\"assets/image/map-pin.svg\\\",\\r\\n scaledSize: new google.maps.Size(30, 30)\\r\\n };\\r\\n\\r\\n Object.keys(response).forEach(function (key) {\\r\\n // find accordion index\\r\\n var array = transformedResponse.filter(function (element) {\\r\\n return element.Region === response[key].Region;\\r\\n });\\r\\n var accordionIndex = transformedResponse.indexOf(array[0]);\\r\\n\\r\\n // create pin\\r\\n var pin =\\r\\n \\\"
\\\" +\\r\\n \\\"\\t

\\\" + response[key].Region + \\\"

\\\" +\\r\\n \\\"\\t

\\\" + response[key].Address1 + \\\"

\\\" +\\r\\n \\\"\\t

\\\" + response[key].Address2 + \\\"

\\\" +\\r\\n \\\"\\t

\\\" + response[key].Address3 + \\\"

\\\" +\\r\\n \\\"\\t

\\\" + response[key].CityZip + \\\", \\\" + response[key].Country + \\\"

\\\" +\\r\\n \\\"\\t

\\\" +\\r\\n \\\"\\t\\t\\\\n\\\" +\\r\\n \\\" \\\\n\\\" +\\r\\n \\\" \\t\\t\\\" + response[key].Phone1 + \\\"

\\\" +\\r\\n \\\"
\\\";\\r\\n\\r\\n // push pin to pincontent\\r\\n pinContent.push(pin);\\r\\n\\r\\n // create infowindow for marker\\r\\n infoWindows.push(new google.maps.InfoWindow({\\r\\n content: pinContent[key]\\r\\n }));\\r\\n\\r\\n // create marker on map\\r\\n markers.push(new google.maps.Marker({\\r\\n position: {lat: parseFloat(response[key].Latitude), lng: parseFloat(response[key].Longitude)},\\r\\n map: map,\\r\\n optimized: false,\\r\\n icon: image\\r\\n }));\\r\\n\\r\\n // listen to marker click events\\r\\n markers[key].addListener(\\\"click\\\", function () {\\r\\n // open info window\\r\\n infoWindows[key].open(map, this);\\r\\n\\r\\n // close other info windows\\r\\n Object.keys(markers).forEach(function (index) {\\r\\n if (index !== key) {\\r\\n infoWindows[index].close(map, this);\\r\\n }\\r\\n });\\r\\n\\r\\n // close all accordions\\r\\n closeOtherAccordions(-1);\\r\\n\\r\\n // open corresponding accordion\\r\\n var selectedHead = contactUsAccordions[accordionIndex];\\r\\n var selectedAccordionBody = selectedHead.parentElement.getElementsByClassName(\\\"accordion-body\\\")[0];\\r\\n selectedHead.classList.add(\\\"active\\\");\\r\\n selectedAccordionBody.classList.add(\\\"opened\\\");\\r\\n\\r\\n });\\r\\n });\\r\\n}\\r\\n\\r\\nfunction populateContactUsSidebar(response) {\\r\\n if (response) {\\r\\n // empty out accordion section\\r\\n $(\\\"#headquartersAccordions\\\").empty();\\r\\n\\r\\n // iterate through headquarters\\r\\n response.forEach(function (headquarter) {\\r\\n // inner content holder\\r\\n var content = \\\"\\\";\\r\\n\\r\\n // iterate through content items\\r\\n headquarter.Content.forEach(function (element) {\\r\\n var phone2 = \\\"\\\";\\r\\n var fax = \\\"\\\";\\r\\n\\r\\n // Existing phone2 and fax logic...\\r\\n\\r\\n // append content item HTML to inner content holder\\r\\n content +=\\r\\n \\\"

\\\" + element.Address1 + \\\"

\\\\n\\\" +\\r\\n \\\"

\\\" + element.Address2 + \\\"

\\\\n\\\" +\\r\\n \\\"

\\\" + element.Address3 + \\\"

\\\\n\\\" +\\r\\n \\\"

\\\" + element.CityZip + \\\"

\\\\n\\\" +\\r\\n \\\"

\\\" + element.Country + \\\"

\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"

\\\\n\\\" +\\r\\n \\\" \\\\n\\\" +\\r\\n \\\" \\\\n\\\" +\\r\\n \\\" \\\\n\\\" +\\r\\n \\\" \\\" + element.Phone1 +\\r\\n \\\"

\\\\n\\\" +\\r\\n phone2 +\\r\\n fax;\\r\\n\\r\\n // Creating the buttons wrapping div first.\\r\\n content +=\\r\\n \\\"
\\\\n\\\";\\r\\n\\r\\n // Conditional check for Email\\r\\n if (element.Email && element.Email.trim() !== \\\"\\\") {\\r\\n content +=\\r\\n \\\" Email us\\\\n\\\";\\r\\n }\\r\\n\\r\\n // Always include the Directions link\\r\\n content +=\\r\\n \\\" Directions\\\\n\\\" +\\r\\n \\\"
\\\\n\\\";\\r\\n });\\r\\n\\r\\n // create accordion\\r\\n var item =\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\" + headquarter.Region + \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n content +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\";\\r\\n $(\\\"#headquartersAccordions\\\").append(item);\\r\\n });\\r\\n\\r\\n listenAccordions();\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region EVENTS PAGE | Google Map\\r\\n\\r\\nfunction eventsMap() {\\r\\n var lat = parseFloat(document.getElementById(\\\"lat\\\").value);\\r\\n var lng = parseFloat(document.getElementById(\\\"lng\\\").value);\\r\\n var address = document.getElementById(\\\"address\\\").value;\\r\\n\\r\\n document.getElementById(\\\"googleMapStatic\\\").src =\\r\\n \\\"https://maps.googleapis.com/maps/api/staticmap?center=\\\" + lat + \\\",\\\" + lng + \\\"&zoom=15&markers=color:black%7Clabel:%7C\\\" + lat + \\\",\\\" + lng + \\\"&format=png&sensor=false&size=300x300&maptype=roadmap&style=visibility:on|saturation:-100|gamma:1|lightness:0|&key=AIzaSyDDrwZqaN6vaGUrV8xu6JIUN_ukHldsS7E\\\";\\r\\n document.getElementById(\\\"googleMapStaticLink\\\").href = \\\"https://www.google.com/maps/search/?api=1&query=\\\" + address;\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region MAGAZINE LISTING PAGE | Ajax and Pagination\\r\\n\\r\\n$(\\\".magazine-item\\\").hover(function () {\\r\\n $(this).addClass(\\\"hover\\\");\\r\\n}, function () {\\r\\n $(this).removeClass(\\\"hover\\\");\\r\\n});\\r\\n\\r\\nvar currentPage = 0;\\r\\nvar numberOfPages = 0;\\r\\nvar pageParent;\\r\\n\\r\\nfunction listingMagazine() {\\r\\n $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n data: {\\r\\n parent: pageParent,\\r\\n currentPage: currentPage\\r\\n },\\r\\n dataType: \\\"json\\\",\\r\\n url: apiBaseUrl + \\\"MagazineListing/GetMagazines\\\",\\r\\n success: function (response) {\\r\\n $(\\\"#magazineListingContainer\\\").empty();\\r\\n currentPage = response.Pagination.CurrentPage;\\r\\n numberOfPages = response.Pagination.NumberOfPages;\\r\\n updateMagazinePagination();\\r\\n if (response) {\\r\\n response.Result.forEach(function (element) {\\r\\n var item =\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"\\t\\t\\\\n\\\" +\\r\\n \\\"\\t\\t\\\\n\\\" +\\r\\n \\\"\\t\\t\\t\\\" + element.IssueTitle +\\r\\n \\\"\\t\\t\\\\n\\\" +\\r\\n \\\"\\t
\\\";\\r\\n $(\\\"#magazineListingContainer\\\").append(item);\\r\\n });\\r\\n }\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction magazineListingNext() {\\r\\n if (window.outerWidth < tabletBreakpoint + 1) {\\r\\n if (currentPage !== numberOfPages) {\\r\\n currentPage = currentPage + 1;\\r\\n listingMagazine();\\r\\n }\\r\\n } else if (currentPage !== numberOfPages - 2) {\\r\\n currentPage = currentPage + 1;\\r\\n listingMagazine();\\r\\n }\\r\\n}\\r\\n\\r\\nfunction magazineListingPrev() {\\r\\n if (currentPage !== 1) {\\r\\n currentPage = currentPage - 1;\\r\\n listingMagazine();\\r\\n }\\r\\n}\\r\\n\\r\\nfunction updateMagazinePagination() {\\r\\n if (window.outerWidth < tabletBreakpoint + 1) {\\r\\n if (currentPage !== numberOfPages) {\\r\\n document.getElementById(\\\"magazinePaginationNext\\\").classList.remove(\\\"inactive\\\");\\r\\n } else {\\r\\n document.getElementById(\\\"magazinePaginationNext\\\").classList.add(\\\"inactive\\\");\\r\\n }\\r\\n } else if (currentPage !== numberOfPages - 2) {\\r\\n document.getElementById(\\\"magazinePaginationNext\\\").classList.remove(\\\"inactive\\\");\\r\\n } else {\\r\\n document.getElementById(\\\"magazinePaginationNext\\\").classList.add(\\\"inactive\\\");\\r\\n }\\r\\n\\r\\n if (currentPage !== 1) {\\r\\n document.getElementById(\\\"magazinePaginationPrev\\\").classList.remove(\\\"inactive\\\");\\r\\n } else {\\r\\n document.getElementById(\\\"magazinePaginationPrev\\\").classList.add(\\\"inactive\\\");\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SHARED | Window Onload Functions (Contact us, Search, Content Listing, Magazine Listing)\\r\\n\\r\\nfunction setCookie(cname, cvalue) {\\r\\n document.cookie = cname + \\\"=\\\" + cvalue + \\\";\\\";\\r\\n}\\r\\n\\r\\nwindow.onload = function () {\\r\\n if (!document.getElementById(\\\"contactUsPage\\\") && !document.getElementById(\\\"profilerPage\\\") && !document.getElementById(\\\"dashboardNotificationsPage\\\")) {\\r\\n listenAccordions();\\r\\n }\\r\\n\\r\\n if (document.getElementById(\\\"magazineListing\\\")) {\\r\\n currentPage = 1;\\r\\n pageParent = document.getElementById(\\\"pageParent\\\").value;\\r\\n listingMagazine(pageParent, currentPage);\\r\\n }\\r\\n\\r\\n if (getCookie(\\\"dropdown\\\") === \\\"1\\\") {\\r\\n if (sidebarLoginRecovery && headerLoginRecovery) {\\r\\n openLogin();\\r\\n setCookie(\\\"dropdown\\\", 0);\\r\\n }\\r\\n }\\r\\n};\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SHARED | Yumpu\\r\\n\\r\\nfunction openYumpu(yumpuID) {\\r\\n var elem = document.getElementById(\\\"yumpu\\\");\\r\\n var url = \\\"https://www.yumpu.com/en/document/read/\\\" + yumpuID;\\r\\n var win;\\r\\n\\r\\n if (elem.requestFullscreen) {\\r\\n elem.requestFullscreen();\\r\\n } else if (elem.mozRequestFullScreen) { /* Firefox */\\r\\n elem.mozRequestFullScreen();\\r\\n } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */\\r\\n elem.webkitRequestFullscreen();\\r\\n } else if (elem.msRequestFullscreen) { /* IE/Edge */\\r\\n win = window.open(url, \\\"_blank\\\");\\r\\n win.focus();\\r\\n } else {\\r\\n win = window.open(url, \\\"_blank\\\");\\r\\n win.focus();\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region DASHBOARD - MY PROFILE\\r\\n\\r\\nfunction toggleEdit(name) {\\r\\n var section = document.getElementById(name);\\r\\n\\r\\n if (section.classList.contains(\\\"edit\\\")) {\\r\\n section.classList.remove(\\\"edit\\\");\\r\\n\\r\\n // Hide input fields out edit\\r\\n document.getElementById(\\\"trainingProgram\\\").style.display = \\\"none\\\";\\r\\n document.getElementById(\\\"companyWithDuringProgram\\\").style.display = \\\"none\\\";\\r\\n document.getElementById(\\\"doneNegotiationCompany\\\").style.display = \\\"none\\\";\\r\\n document.getElementById(\\\"companyUsedForService\\\").style.display = \\\"none\\\";\\r\\n document.getElementById(\\\"listOfProBody\\\").style.display = \\\"none\\\";\\r\\n\\r\\n section.querySelector(\\\".buttons\\\").classList.remove(\\\"edit\\\");\\r\\n if (name === \\\"myAccount\\\") {\\r\\n section.querySelector(\\\"#newsletterCheckbox\\\").disabled = true;\\r\\n }\\r\\n } else {\\r\\n section.classList.add(\\\"edit\\\");\\r\\n\\r\\n // Show active input fields in edit\\r\\n var switch1TE = document.getElementById(\\\"switch\\\");\\r\\n var switch2TE = document.getElementById(\\\"switch2\\\");\\r\\n var switch3TE = document.getElementById(\\\"switch3\\\");\\r\\n var switch4TE = document.getElementById(\\\"switch4\\\");\\r\\n if (switch1TE.checked) {\\r\\n document.getElementById(\\\"trainingProgram\\\").style.display = \\\"block\\\";\\r\\n document.getElementById(\\\"companyWithDuringProgram\\\").style.display = \\\"block\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"trainingProgram\\\").style.display = \\\"none\\\";\\r\\n document.getElementById(\\\"companyWithDuringProgram\\\").style.display = \\\"none\\\";\\r\\n document.getElementById(\\\"companyWithDuringProgram\\\").value = \\\"\\\";\\r\\n }\\r\\n\\r\\n if (switch2TE.checked) {\\r\\n document.getElementById(\\\"doneNegotiationCompany\\\").style.display = \\\"block\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"doneNegotiationCompany\\\").style.display = \\\"none\\\";\\r\\n }\\r\\n\\r\\n if (switch3TE.checked) {\\r\\n document.getElementById(\\\"companyUsedForService\\\").style.display = \\\"block\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"companyUsedForService\\\").style.display = \\\"none\\\";\\r\\n }\\r\\n\\r\\n if (switch4TE.checked) {\\r\\n document.getElementById(\\\"listOfProBody\\\").style.display = \\\"block\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"listOfProBody\\\").style.display = \\\"none\\\";\\r\\n }\\r\\n\\r\\n section.querySelector(\\\".buttons\\\").classList.add(\\\"edit\\\");\\r\\n if (name === \\\"myAccount\\\") {\\r\\n section.querySelector(\\\"#newsletterCheckbox\\\").disabled = false;\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\nfunction avatarToggle(id) {\\r\\n document.getElementById(id).checked = true;\\r\\n}\\r\\n\\r\\n// EVENT LISTENERS and ON INITS\\r\\nif (document.querySelector(\\\"#myProfile\\\")) {\\r\\n setSwitches();\\r\\n fetchPersonalInformation();\\r\\n fetchAndParseEmailAddress();\\r\\n\\r\\n // document.getElementById(\\\"myProfileForm\\\").addEventListener(\\\"submit\\\", function (e) {\\r\\n // \\te.preventDefault();\\r\\n // \\tupdatePersonalInformation();\\r\\n // });\\r\\n document.getElementById(\\\"emailForm\\\").addEventListener(\\\"submit\\\", function (e) {\\r\\n e.preventDefault();\\r\\n updateEmail();\\r\\n });\\r\\n document.getElementById(\\\"passwordForm\\\").addEventListener(\\\"submit\\\", function (e) {\\r\\n e.preventDefault();\\r\\n updatePassword();\\r\\n });\\r\\n\\r\\n // upload picture event listener\\r\\n document.getElementById(\\\"file\\\").addEventListener(\\\"change\\\", function (e) {\\r\\n document.getElementById(\\\"uploadLabel\\\").innerText = document.getElementById(\\\"file\\\").value.split(/(\\\\\\\\|\\\\/)/g).pop();\\r\\n });\\r\\n\\r\\n // toggle how did you hear\\r\\n var howDidYouHear2 = document.getElementById(\\\"howDidYouHear\\\");\\r\\n var howDidYouHearTextContainer = document.getElementById(\\\"howDidYouHearTextContainer\\\");\\r\\n var howDidYouHearText2 = document.getElementById(\\\"howDidYouHearText\\\");\\r\\n\\r\\n howDidYouHear2.addEventListener(\\\"change\\\", function () {\\r\\n if (howDidYouHear2.value === \\\"941\\\") {\\r\\n howDidYouHearTextContainer.style.display = \\\"flex\\\";\\r\\n howDidYouHearText2.required = true;\\r\\n } else {\\r\\n howDidYouHearTextContainer.style.display = \\\"none\\\";\\r\\n howDidYouHearText2.false = false;\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction setSwitches() {\\r\\n var switch1SS = document.getElementById(\\\"switch\\\");\\r\\n var switch2SS = document.getElementById(\\\"switch2\\\");\\r\\n var switch3SS = document.getElementById(\\\"switch3\\\");\\r\\n var switch4SS = document.getElementById(\\\"switch4\\\");\\r\\n\\r\\n switch1SS.addEventListener(\\\"change\\\", function () {\\r\\n if (this.checked) {\\r\\n document.getElementById(\\\"trainingProgram\\\").style.display = \\\"block\\\";\\r\\n document.getElementById(\\\"companyWithDuringProgram\\\").style.display = \\\"block\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"trainingProgram\\\").style.display = \\\"none\\\";\\r\\n document.getElementById(\\\"companyWithDuringProgram\\\").style.display = \\\"none\\\";\\r\\n }\\r\\n });\\r\\n switch2SS.addEventListener(\\\"change\\\", function () {\\r\\n if (this.checked) {\\r\\n document.getElementById(\\\"doneNegotiationCompany\\\").style.display = \\\"block\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"doneNegotiationCompany\\\").style.display = \\\"none\\\";\\r\\n }\\r\\n });\\r\\n switch3SS.addEventListener(\\\"change\\\", function () {\\r\\n if (this.checked) {\\r\\n document.getElementById(\\\"companyUsedForService\\\").style.display = \\\"block\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"companyUsedForService\\\").style.display = \\\"none\\\";\\r\\n }\\r\\n });\\r\\n switch4SS.addEventListener(\\\"change\\\", function () {\\r\\n if (this.checked) {\\r\\n document.getElementById(\\\"listOfProBody\\\").style.display = \\\"block\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"listOfProBody\\\").style.display = \\\"none\\\";\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction fetchPersonalInformation() {\\r\\n return $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n dataType: \\\"json\\\",\\r\\n url: apiBaseUrl + \\\"Profile/GetProfileData\\\",\\r\\n success: function (response) {\\r\\n parsePersonalInformation(response);\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction fetchAndParseEmailAddress() {\\r\\n return $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n dataType: \\\"json\\\",\\r\\n url: apiBaseUrl + \\\"Profile/GetMemberEmail\\\",\\r\\n success: function (response) {\\r\\n document.getElementById(\\\"valueEmail\\\").innerHTML = response;\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction parsePersonalInformation(response) {\\r\\n\\r\\n // Title, Name, Surname\\r\\n document.getElementById(\\\"valueName\\\").innerHTML = response.Title + \\\" \\\" + \\\"\\\" + response.Name + \\\" \\\" + response.Surname + \\\"\\\";\\r\\n createOptions(response.Titles, \\\"user-title\\\");\\r\\n document.getElementById(\\\"firstName\\\").value = response.Name;\\r\\n document.getElementById(\\\"lastName\\\").value = response.Surname;\\r\\n\\r\\n // Discussion board name\\r\\n document.getElementById(\\\"valueDiscussionBoardName\\\").innerHTML = response.DiscussionBoardName;\\r\\n document.getElementById(\\\"discussionBoardName\\\").value = response.DiscussionBoardName;\\r\\n\\r\\n // Phone number\\r\\n document.getElementById(\\\"valuePhoneNumber\\\").innerHTML = response.Phone;\\r\\n document.getElementById(\\\"phoneNumber\\\").value = response.Phone;\\r\\n\\r\\n // Company\\r\\n document.getElementById(\\\"valueCompanyName\\\").innerHTML = response.Company;\\r\\n document.getElementById(\\\"companyName\\\").value = response.Company;\\r\\n\\r\\n // Job Title\\r\\n document.getElementById(\\\"valueJobTitle\\\").innerHTML = response.JobTitle;\\r\\n document.getElementById(\\\"jobTitle\\\").value = response.JobTitle;\\r\\n\\r\\n // Industry\\r\\n document.getElementById(\\\"valueIndustry\\\").innerHTML = response.Industry;\\r\\n createOptions(response.Industries, \\\"Industry\\\");\\r\\n\\r\\n // Country\\r\\n document.getElementById(\\\"valueCountry\\\").innerHTML = response.Country;\\r\\n createCountries(response.Countries, \\\"Country\\\");\\r\\n\\r\\n // How did you hear about us?\\r\\n document.getElementById(\\\"valueHowDidYouHear\\\").innerHTML = response.HowYouHeard;\\r\\n createOptions(response.HowYouHeards, \\\"howDidYouHear\\\");\\r\\n\\r\\n // How did you hear about us? Description\\r\\n document.getElementById(\\\"valueHowDidYouHearText\\\").innerHTML = response.HowYouHeardText;\\r\\n document.getElementById(\\\"howDidYouHearText\\\").value = response.HowYouHeardText;\\r\\n response.HowYouHeards.forEach(function (heard) {\\r\\n if ((heard.Id === 941 && heard.Selected)) {\\r\\n document.getElementById(\\\"howDidYouHearTextContainer\\\").style.display = \\\"flex\\\";\\r\\n }\\r\\n });\\r\\n\\r\\n // Have you completed any of The Gap Partnership training programmes?\\r\\n document.getElementById(\\\"valueTrainingProgram\\\").innerHTML = toggleTextBuilder(response.CompletedTrainingProgramme, response.TrainingProgramName);\\r\\n setToggle(response.CompletedTrainingProgramme, \\\"switch\\\");\\r\\n createOptions(response.TrainingProgrammes, \\\"trainingProgram\\\");\\r\\n document.getElementById(\\\"valueCompanyWithDuringProgram\\\").innerHTML = response.CompanyWithDuringTraining;\\r\\n document.getElementById(\\\"companyWithDuringProgram\\\").value = response.CompanyWithDuringTraining;\\r\\n\\r\\n // Have you done any negotiations with company other than The Gap Partnership?\\r\\n document.getElementById(\\\"valueDoneNegotiationCompany\\\").innerHTML = toggleTextBuilder(response.DoneNegotiation, response.DoneNegotiationCompany);\\r\\n setToggle(response.DoneNegotiation, \\\"switch2\\\");\\r\\n document.getElementById(\\\"doneNegotiationCompany\\\").value = response.DoneNegotiationCompany;\\r\\n\\r\\n // Have you engaged The Gap Partnership's consulting services?\\r\\n document.getElementById(\\\"valueCompanyUsedForService\\\").innerHTML = toggleTextBuilder(response.Engaged, response.EngagedService);\\r\\n setToggle(response.Engaged, \\\"switch3\\\");\\r\\n document.getElementById(\\\"companyUsedForService\\\").value = response.EngagedService;\\r\\n\\r\\n // How much negotiating do you do in your role?\\r\\n document.getElementById(\\\"valueNegotiating\\\").innerHTML = response.NegotiationFreqnency;\\r\\n createOptions(response.NegotiationFrequencies, \\\"negotiating\\\");\\r\\n\\r\\n // Are you a member of any professional bodies?\\r\\n document.getElementById(\\\"valueListOfProBody\\\").innerHTML = toggleTextBuilder(response.MemberOfAnyBody, response.MemberOfAnyBodyText);\\r\\n setToggle(response.MemberOfAnyBody, \\\"switch4\\\");\\r\\n document.getElementById(\\\"listOfProBody\\\").value = response.MemberOfAnyBodyText;\\r\\n\\r\\n // Newsletter\\r\\n document.getElementById(\\\"newsletterCheckbox\\\").checked = response.NewsletterAllowed;\\r\\n}\\r\\n\\r\\nfunction createCountries(list, parentId) {\\r\\n // delete options\\r\\n document.getElementById(parentId).innerHTML = \\\"\\\";\\r\\n // // create popular options\\r\\n // var popular = [\\r\\n // \\t{id: 279, text: \\\"Germany\\\", disabled: false},\\r\\n // \\t{id: 353, text: \\\"Netherlands\\\", disabled: false},\\r\\n // \\t{id: 431, text: \\\"United Kingdom\\\", disabled: false},\\r\\n // \\t{id: 432, text: \\\"United States\\\", disabled: false},\\r\\n // \\t{id: null, text: \\\"-\\\", disabled: true}];\\r\\n // popular.forEach(function (item) {\\r\\n // \\tvar optionElement = document.createElement(\\\"OPTION\\\");\\r\\n // \\toptionElement.value = item.id;\\r\\n // \\tvar text = document.createTextNode(item.text);\\r\\n // \\tif (item.disabled) {\\r\\n // \\t\\toptionElement.disabled = true;\\r\\n // \\t}\\r\\n // \\toptionElement.appendChild(text);\\r\\n // \\tdocument.getElementById(parentId).appendChild(optionElement);\\r\\n // });\\r\\n // create fetched options\\r\\n Object.keys(list).forEach(function (key) {\\r\\n\\r\\n var optionElement = document.createElement(\\\"OPTION\\\");\\r\\n optionElement.value = list[key].Text;\\r\\n var text = document.createTextNode(list[key].Text);\\r\\n if (list[key].Selected) {\\r\\n optionElement.selected = true;\\r\\n }\\r\\n if (list[key].Id === 1244) {\\r\\n\\r\\n optionElement.disabled = true;\\r\\n }\\r\\n optionElement.appendChild(text);\\r\\n document.getElementById(parentId).appendChild(optionElement);\\r\\n });\\r\\n}\\r\\n\\r\\nfunction createOptions(list, parentId) {\\r\\n document.getElementById(parentId).innerHTML = \\\"\\\";\\r\\n Object.keys(list).forEach(function (key) {\\r\\n var optionElement = document.createElement(\\\"OPTION\\\");\\r\\n optionElement.value = list[key].Text;\\r\\n var text = document.createTextNode(list[key].Text);\\r\\n if (list[key].Selected) {\\r\\n optionElement.selected = true;\\r\\n }\\r\\n optionElement.appendChild(text);\\r\\n document.getElementById(parentId).appendChild(optionElement);\\r\\n });\\r\\n}\\r\\n\\r\\nfunction toggleTextBuilder(boolean, text) {\\r\\n if (!boolean) {\\r\\n return \\\"No\\\";\\r\\n }\\r\\n return \\\"Yes, \\\" + text;\\r\\n}\\r\\n\\r\\nfunction setToggle(boolean, elementId) {\\r\\n document.getElementById(elementId).checked = boolean;\\r\\n}\\r\\n\\r\\nfunction updatePersonalInformation(isMyProfile) {\\r\\n\\r\\n var isMyProfileLocal;\\r\\n\\r\\n // isMyProfileLocal = isMyProfile === undefined ? true : isMyProfile;\\r\\n\\r\\n if (isMyProfile === undefined) {\\r\\n isMyProfileLocal = true;\\r\\n } else {\\r\\n isMyProfileLocal = false;\\r\\n }\\r\\n\\r\\n var data = {\\r\\n \\\"Title\\\": document.getElementById(\\\"user-title\\\").value,\\r\\n \\\"Name\\\": document.getElementById(\\\"firstName\\\").value,\\r\\n \\\"Surname\\\": document.getElementById(\\\"lastName\\\").value,\\r\\n \\\"Phone\\\": document.getElementById(\\\"phoneNumber\\\").value,\\r\\n \\\"Company\\\": document.getElementById(\\\"companyName\\\").value,\\r\\n \\\"JobTitle\\\": document.getElementById(\\\"jobTitle\\\").value,\\r\\n \\\"Industry\\\": document.getElementById(\\\"Industry\\\").value,\\r\\n \\\"Country\\\": document.getElementById(\\\"Country\\\").value,\\r\\n \\\"HowYouHeard\\\": document.getElementById(\\\"howDidYouHear\\\").value,\\r\\n \\\"CompletedTrainingProgramme\\\": document.getElementById(\\\"switch\\\").checked,\\r\\n \\\"TrainingProgramName\\\": document.getElementById(\\\"trainingProgram\\\").value,\\r\\n \\\"CompanyWithDuringTraining\\\": document.getElementById(\\\"companyWithDuringProgram\\\").value,\\r\\n \\\"DoneNegotiation\\\": document.getElementById(\\\"switch2\\\").checked,\\r\\n \\\"DoneNegotiationCompany\\\": document.getElementById(\\\"doneNegotiationCompany\\\").value,\\r\\n \\\"Engaged\\\": document.getElementById(\\\"switch3\\\").checked,\\r\\n \\\"EngagedService\\\": document.getElementById(\\\"companyUsedForService\\\").value,\\r\\n \\\"NegotiationFreqnency\\\": document.getElementById(\\\"negotiating\\\").value,\\r\\n \\\"MemberOfAnyBody\\\": document.getElementById(\\\"switch4\\\").checked,\\r\\n \\\"MemberOfAnyBodyText\\\": document.getElementById(\\\"listOfProBody\\\").value,\\r\\n \\\"NewsletterAllowed\\\": document.getElementById(\\\"newsletterCheckbox\\\").checked,\\r\\n \\\"DiscussionBoardName\\\": document.getElementById(\\\"discussionBoardName\\\").value,\\r\\n \\\"HowDidYouHearFreeText\\\": document.getElementById(\\\"howDidYouHearText\\\").value\\r\\n };\\r\\n\\r\\n document.getElementById(\\\"myProfileSubmit\\\").value = \\\"Saving...\\\";\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n data: data,\\r\\n url: apiBaseUrl + \\\"Profile/UpdateProfileData\\\",\\r\\n success: function () {\\r\\n fetchPersonalInformation();\\r\\n if (isMyProfileLocal) {\\r\\n toggleEdit(\\\"myProfile\\\");\\r\\n } else {\\r\\n toggleEdit(\\\"myAccount\\\");\\r\\n }\\r\\n document.getElementById(\\\"myProfileSubmit\\\").value = \\\"Update\\\";\\r\\n },\\r\\n error: function (error) {\\r\\n document.getElementById(\\\"myProfileSubmit\\\").value = \\\"Error\\\";\\r\\n if (error.responseJSON === \\\"Discussion board name already used\\\") {\\r\\n discussionBoardName.setCustomValidity(\\\"Discussion board name already used\\\");\\r\\n }\\r\\n //this is causing an infinite loop. I cannot see why this is needed at the moment\\r\\n // if (isMyProfileLocal) {\\r\\n // document.getElementById(\\\"myProfileSubmit\\\").click();\\r\\n // }\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction updateEmail() {\\r\\n var data = {\\r\\n \\\"NewEmail\\\": document.getElementById(\\\"email\\\").value\\r\\n };\\r\\n\\r\\n $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n data: data,\\r\\n url: apiBaseUrl + \\\"Profile/UpdateMembership\\\",\\r\\n success: function () {\\r\\n location.reload();\\r\\n document.getElementById(\\\"mainContainer\\\").scrollIntoView();\\r\\n },\\r\\n error: function (request) {\\r\\n document.getElementById(\\\"email\\\").setCustomValidity(\\\"This email is already registered!\\\");\\r\\n document.getElementById(\\\"emailForm\\\").reportValidity();\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction isPasswordValidMyProfile() {\\r\\n return (/^.*(?=.{10,})((?=.*[\\\\[\\\\]!@#$%^&*()/\\\\\\\\\\\\-_=+{};:,<.>]){1})(?=.*\\\\d)((?=.*[a-z]){1})((?=.*[A-Z]){1}).*$/g).test(password.value);\\r\\n}\\r\\n\\r\\nfunction updatePassword() {\\r\\n if (!isPasswordValidMyProfile(document.getElementById(\\\"password\\\").value)) {\\r\\n document.getElementById(\\\"password\\\").setCustomValidity(\\\"Password is weak\\\");\\r\\n document.getElementById(\\\"passwordForm\\\").reportValidity();\\r\\n return;\\r\\n }\\r\\n\\r\\n var data = {\\r\\n \\\"OldPassword\\\": document.getElementById(\\\"oldPassword\\\").value,\\r\\n \\\"NewPassword\\\": document.getElementById(\\\"password\\\").value\\r\\n };\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n data: data,\\r\\n url: apiBaseUrl + \\\"Profile/UpdateMembership\\\",\\r\\n success: function () {\\r\\n location.reload();\\r\\n document.getElementById(\\\"mainContainer\\\").scrollIntoView();\\r\\n alert(\\\"Password updated!\\\");\\r\\n },\\r\\n error: function (request) {\\r\\n if (request.responseJSON.Message === \\\"New password is not strong enough\\\") {\\r\\n document.getElementById(\\\"password\\\").setCustomValidity(\\\"New password is not strong enough\\\");\\r\\n }\\r\\n if (request.responseJSON.Message === \\\"Unable to modify member password as the given old password does not matches the current password\\\") {\\r\\n document.getElementById(\\\"oldPassword\\\").setCustomValidity(\\\"Unable to modify member password as the given old password does not matches the current password\\\");\\r\\n }\\r\\n document.getElementById(\\\"passwordForm\\\").reportValidity();\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction submitMyAccount() {\\r\\n if (document.getElementById(\\\"email\\\").value || document.getElementById(\\\"confirmedEmail\\\").value) {\\r\\n document.getElementById(\\\"email\\\").setCustomValidity(\\\"\\\");\\r\\n document.getElementById(\\\"emailFormSubmit\\\").click();\\r\\n } else if (document.getElementById(\\\"oldPassword\\\").value || document.getElementById(\\\"password\\\").value || document.getElementById(\\\"confirmedPassword\\\").value) {\\r\\n document.getElementById(\\\"password\\\").setCustomValidity(\\\"\\\");\\r\\n document.getElementById(\\\"oldPassword\\\").setCustomValidity(\\\"\\\");\\r\\n document.getElementById(\\\"passwordFormSubmit\\\").click();\\r\\n } else {\\r\\n updatePersonalInformation(false);\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region DASHBOARD - PREFERENCES\\r\\n\\r\\nvar dashboardInterests = [];\\r\\n\\r\\nif (document.getElementById(\\\"dashboardInterests\\\")) {\\r\\n fetchInterests();\\r\\n}\\r\\n\\r\\nfunction fetchInterests() {\\r\\n return $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n dataType: \\\"json\\\",\\r\\n url: apiBaseUrl + \\\"Membership/GetMemberInterests\\\",\\r\\n success: function (response) {\\r\\n dashboardInterests = response;\\r\\n Object.keys(response).forEach(function (key) {\\r\\n var node = document.createElement(\\\"DIV\\\");\\r\\n node.innerText = response[key].Text;\\r\\n node.classList.add(\\\"interest\\\");\\r\\n node.setAttribute(\\\"key\\\", response[key].Id);\\r\\n if (response[key].State) {\\r\\n node.classList.add(\\\"selected\\\");\\r\\n }\\r\\n document.getElementById(\\\"dashboardInterests\\\").appendChild(node);\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\n$(\\\"#dashboardInterests\\\").on(\\\"click\\\", \\\".interest\\\", function () {\\r\\n if (this.classList.contains(\\\"selected\\\")) {\\r\\n this.classList.remove(\\\"selected\\\");\\r\\n document.getElementById(\\\"interestSwitch\\\").checked = false;\\r\\n } else {\\r\\n this.classList.add(\\\"selected\\\");\\r\\n }\\r\\n dashboardUpdateInterests();\\r\\n});\\r\\n\\r\\nfunction dashboardUpdateInterests() {\\r\\n $(\\\"#dashboardInterests .interest\\\").each(function (index, item) {\\r\\n var selectedInterest = $(this);\\r\\n\\r\\n Object.keys(dashboardInterests).forEach(function (key) {\\r\\n if (dashboardInterests[key].Id.toString() === selectedInterest[0].attributes[1].value) {\\r\\n if (selectedInterest.hasClass(\\\"selected\\\")) {\\r\\n dashboardInterests[key].State = true;\\r\\n } else {\\r\\n dashboardInterests[key].State = false;\\r\\n }\\r\\n }\\r\\n });\\r\\n });\\r\\n}\\r\\n\\r\\nfunction updatePreferences() {\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n data: JSON.stringify(dashboardInterests),\\r\\n url: apiBaseUrl + \\\"Membership/UpdateMemberInterests\\\",\\r\\n success: function () {\\r\\n location.reload();\\r\\n document.getElementById(\\\"mainContainer\\\").scrollIntoView();\\r\\n },\\r\\n error: function (request) {\\r\\n // error handling\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction toggleSelectInterests() {\\r\\n var interestList = document.getElementById(\\\"dashboardInterests\\\").querySelectorAll(\\\".interest\\\");\\r\\n if (document.getElementById(\\\"interestSwitch\\\").checked) {\\r\\n interestList.forEach(function (element) {\\r\\n element.classList.add(\\\"selected\\\");\\r\\n dashboardUpdateInterests();\\r\\n });\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region DASHBOARD - BILLING HISTORY\\r\\n\\r\\nfunction closeAccordion(accordion) {\\r\\n var selectedAccordion = accordion.parentElement.parentElement;\\r\\n var selectedHead = selectedAccordion.getElementsByClassName(\\\"accordion-head\\\")[0];\\r\\n var selectedAccordionBody = selectedAccordion.getElementsByClassName(\\\"accordion-body\\\")[0];\\r\\n\\r\\n selectedHead.classList.remove(\\\"active\\\");\\r\\n selectedAccordionBody.classList.remove(\\\"opened\\\");\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region REGISTRATION PAGE | Cookie parser for Linked In\\r\\n\\r\\nfunction getCookie(cname) {\\r\\n var name = cname + \\\"=\\\";\\r\\n var decodedCookie = decodeURIComponent(document.cookie);\\r\\n var ca = decodedCookie.split(\\\";\\\");\\r\\n\\r\\n for (var i = 0; i < ca.length; i++) {\\r\\n var c = ca[i];\\r\\n while (c.charAt(0) === \\\" \\\") {\\r\\n c = c.substring(1);\\r\\n }\\r\\n if (c.indexOf(name) === 0) {\\r\\n return c.substring(name.length, c.length);\\r\\n }\\r\\n }\\r\\n return \\\"\\\";\\r\\n}\\r\\n\\r\\n// function setCookie(cname, cvalue) {\\r\\n// \\tdocument.cookie = cname + \\\"=\\\" + cvalue + \\\";\\\";\\r\\n// }\\r\\n\\r\\n// setCookie(\\\"linkedinEmail\\\", \\\"teszt@teszt.com\\\");\\r\\n// setCookie(\\\"linkedinFirstName\\\", \\\"Elek\\\");\\r\\n// setCookie(\\\"linkedinSurename\\\", \\\"Teszt\\\");\\r\\n\\r\\nif (document.getElementById(\\\"registrationPage\\\")) {\\r\\n if (getCookie(\\\"linkedinEmail\\\")) {\\r\\n document.getElementById(\\\"email\\\").value = getCookie(\\\"linkedinEmail\\\");\\r\\n document.getElementById(\\\"confirmedEmail\\\").value = getCookie(\\\"linkedinEmail\\\");\\r\\n }\\r\\n\\r\\n if (getCookie(\\\"linkedinFirstName\\\")) {\\r\\n document.getElementById(\\\"firstName\\\").value = getCookie(\\\"linkedinFirstName\\\");\\r\\n }\\r\\n\\r\\n if (getCookie(\\\"linkedinSurename\\\")) {\\r\\n document.getElementById(\\\"lastName\\\").value = getCookie(\\\"linkedinSurename\\\");\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region HOME PAGE | Carousel video\\r\\n\\r\\n// var players = {};\\r\\n//\\r\\n// function playVideo(element) {\\r\\n// \\tvar slide = element.parentElement.parentElement.parentElement;\\r\\n// \\tslide.classList.add(\\\"hidden\\\");\\r\\n// \\tplayers[slide.getElementsByTagName(\\\"IFRAME\\\")[0].id].play();\\r\\n// \\theroVideoPlay();\\r\\n// }\\r\\n//\\r\\n// function showTitle(id) {\\r\\n// \\tdocument.getElementById(id).parentElement.parentElement.classList.remove(\\\"hidden\\\");\\r\\n// }\\r\\n//\\r\\n// window.addEventListener(\\\"load\\\", function () {\\r\\n// \\tvar slides = document.getElementById(\\\"heroSlides\\\");\\r\\n// \\tvar iframes = slides.getElementsByTagName(\\\"IFRAME\\\");\\r\\n// \\tvar isPlaying = false;\\r\\n// \\tvar intervalID;\\r\\n// \\toverrideAutoplay();\\r\\n//\\r\\n// \\tObject.keys(iframes).forEach(function (key) {\\r\\n// \\t\\tiframes[key].id = key;\\r\\n// \\t\\tplayers[key] = new Vimeo.Player(key);\\r\\n// \\t\\tplayers[key].on(\\\"play\\\", function () {\\r\\n// \\t\\t\\tconsole.log(\\\"playing\\\");\\r\\n// \\t\\t\\t// heroSlides.pause();\\r\\n// \\t\\t\\tclearInterval(intervalID);\\r\\n// \\t\\t\\tisPlaying = true;\\r\\n// \\t\\t});\\r\\n// \\t\\tplayers[key].on(\\\"pause\\\", function () {\\r\\n// \\t\\t\\tif (isPlaying) {\\r\\n// \\t\\t\\t\\t// heroSlides.play();\\r\\n// \\t\\t\\t\\toverrideAutoplay();\\r\\n// \\t\\t\\t\\tshowTitle(key);\\r\\n// \\t\\t\\t\\tisPlaying = false;\\r\\n// \\t\\t\\t}\\r\\n// \\t\\t});\\r\\n// \\t\\theroSlides.events.on(\\\"indexChanged\\\", function () {\\r\\n// \\t\\t\\tplayers[key].unload();\\r\\n// \\t\\t});\\r\\n// \\t});\\r\\n//\\r\\n// \\tfunction overrideAutoplay() {\\r\\n// \\t\\tintervalID = setInterval(function () {\\r\\n// \\t\\t\\theroSlides.goTo(\\\"next\\\");\\r\\n// \\t\\t}, 5000);\\r\\n// \\t}\\r\\n// });\\r\\n\\r\\nif (document.getElementById(\\\"homePage\\\")) {\\r\\n window.addEventListener(\\\"load\\\", function () {\\r\\n var iframe = document.getElementById(\\\"homePageVideo\\\");\\r\\n var player = new Vimeo.Player(iframe);\\r\\n\\r\\n player.on(\\\"play\\\", function () {\\r\\n heroVideoPlay();\\r\\n });\\r\\n });\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region PROFILER | Spider Chart\\r\\n\\r\\nvar labels = [];\\r\\nvar labelsMobile = [];\\r\\n\\r\\nvar chartData1 = [];\\r\\nvar chartData2 = [];\\r\\n\\r\\nfunction fetchProfilerResultList() {\\r\\n return $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n url: apiBaseUrl + \\\"Profiler/GetProfilerResultsList\\\",\\r\\n success: function (response) {\\r\\n // set complete date\\r\\n document.getElementById(\\\"completedDate\\\").innerText = \\\"Last completed on: \\\" + response.CompletedDateText;\\r\\n\\r\\n // clear options\\r\\n document.getElementById(\\\"profilerSelect-1\\\").innerHTML = \\\"\\\";\\r\\n document.getElementById(\\\"profilerSelect-2\\\").innerHTML = \\\"\\\";\\r\\n\\r\\n // add options\\r\\n Object.keys(response.Items).forEach(function (key) {\\r\\n var optionElement = document.createElement(\\\"OPTION\\\");\\r\\n optionElement.value = response.Items[key].Id;\\r\\n if (key === \\\"0\\\") {\\r\\n optionElement.selected = true;\\r\\n }\\r\\n var text = document.createTextNode(response.Items[key].Label);\\r\\n optionElement.appendChild(text);\\r\\n document.getElementById(\\\"profilerSelect-1\\\").appendChild(optionElement);\\r\\n optionElement = document.createElement(\\\"OPTION\\\");\\r\\n optionElement.value = response.Items[key].Id;\\r\\n if (key === \\\"1\\\") {\\r\\n optionElement.selected = true;\\r\\n }\\r\\n text = document.createTextNode(response.Items[key].Label);\\r\\n optionElement.appendChild(text);\\r\\n document.getElementById(\\\"profilerSelect-2\\\").appendChild(optionElement);\\r\\n });\\r\\n\\r\\n // fetch results\\r\\n fetchSelectedResults(document.getElementById(\\\"profilerSelect-1\\\").value, document.getElementById(\\\"profilerSelect-2\\\").value);\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction fetchSelectedResults(option1, option2) {\\r\\n return $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n url: apiBaseUrl + \\\"Profiler/GetResults\\\",\\r\\n data: {\\r\\n resultOne: option1,\\r\\n resultTwo: option2\\r\\n },\\r\\n success: function (response) {\\r\\n // clear arrays\\r\\n labels = [];\\r\\n labelsMobile = [];\\r\\n chartData1 = [];\\r\\n chartData2 = [];\\r\\n\\r\\n // clear accordions\\r\\n $(\\\"#profilerAttributes\\\").empty();\\r\\n\\r\\n response.Result.forEach(function (result) {\\r\\n // fill arrays\\r\\n labels.push(result.QuestionGroupText);\\r\\n labelsMobile.push(result.QuestionGroupText.replace(\\\" \\\", \\\"\\\\n\\\"));\\r\\n chartData1.push(result.ResultOnePoint);\\r\\n chartData2.push(result.ResultTwoPoint);\\r\\n\\r\\n // create accordion\\r\\n $(\\\"#profilerAttributes\\\")\\r\\n .append(\\r\\n \\\"
\\\" +\\r\\n \\\"
\\\" +\\r\\n \\\"

\\\" + result.QuestionGroupText + \\\"

\\\" +\\r\\n \\\"
\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\" \\\\n\\\" +\\r\\n \\\" \\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"

\\\" + result.QuestionGroupDescriptionTitle + \\\"

\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\" \\\" + result.QuestionGroupDescription +\\r\\n \\\" \\\\n\\\" +\\r\\n \\\" \\\" + result.QuestionGroupCTAButtonLabel +\\r\\n \\\" \\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\" + result.QuestionGroupDescription2 + \\\"
\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\"\\r\\n );\\r\\n });\\r\\n\\r\\n // showing elements, listening to accordions\\r\\n document.getElementById(\\\"profilerGraph\\\").style.display = \\\"block\\\";\\r\\n if (myChart) {\\r\\n myChart.destroy();\\r\\n }\\r\\n createChart();\\r\\n listenAccordions();\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction fetchSelectedLiteResults() {\\r\\n return $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n url: apiBaseUrl + \\\"Profiler/GetLiteResults\\\",\\r\\n data: {\\r\\n session: getCookie(\\\"liteSession\\\")\\r\\n },\\r\\n success: function (response) {\\r\\n if (response) {\\r\\n // set last completed\\r\\n document.getElementById(\\\"completedDate\\\").innerText = \\\"Last completed on: \\\" + response.CompletedDateText;\\r\\n\\r\\n // clear arrays\\r\\n labels = [];\\r\\n labelsMobile = [];\\r\\n chartData1 = [];\\r\\n chartData2 = [];\\r\\n\\r\\n // clear accordions\\r\\n $(\\\"#profilerAttributes\\\").empty();\\r\\n\\r\\n response.Result.forEach(function (result) {\\r\\n // fill arrays\\r\\n labels.push(result.QuestionGroupText);\\r\\n labelsMobile.push(result.QuestionGroupText.replace(\\\" \\\", \\\"\\\\n\\\"));\\r\\n chartData1.push(result.ResultPoint);\\r\\n\\r\\n // create accordion\\r\\n $(\\\"#profilerAttributes\\\")\\r\\n .append(\\r\\n \\\"
\\\" +\\r\\n \\\"
\\\" +\\r\\n \\\"

\\\" + result.QuestionGroupText + \\\"

\\\" +\\r\\n \\\"
\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\" \\\\n\\\" +\\r\\n \\\" \\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"

\\\" + result.QuestionGroupDescriptionTitle + \\\"

\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\" \\\" + result.QuestionGroupDescription +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\" + result.QuestionGroupDescription2 + \\\"
\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\\n\\\" +\\r\\n \\\"
\\\"\\r\\n );\\r\\n });\\r\\n\\r\\n // listening to accordions, show graph\\r\\n document.getElementById(\\\"profilerGraph\\\").style.display = \\\"block\\\";\\r\\n if (myChart) {\\r\\n myChart.destroy();\\r\\n }\\r\\n createChart();\\r\\n listenAccordions();\\r\\n }\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"profilerPage\\\")) {\\r\\n document.getElementById(\\\"profilerGraph\\\").style.display = \\\"none\\\";\\r\\n fetchProfilerResultList();\\r\\n\\r\\n var profilerSelect1Value = document.getElementById(\\\"profilerSelect-1\\\").value;\\r\\n var profilerSelect2Value = document.getElementById(\\\"profilerSelect-2\\\").value;\\r\\n\\r\\n document.getElementById(\\\"profilerSelect-1\\\").addEventListener(\\\"change\\\", function () {\\r\\n profilerSelect1Value = document.getElementById(\\\"profilerSelect-1\\\").value;\\r\\n profilerSelect2Value = document.getElementById(\\\"profilerSelect-2\\\").value;\\r\\n fetchSelectedResults(profilerSelect1Value, profilerSelect2Value);\\r\\n });\\r\\n\\r\\n document.getElementById(\\\"profilerSelect-2\\\").addEventListener(\\\"change\\\", function () {\\r\\n profilerSelect1Value = document.getElementById(\\\"profilerSelect-1\\\").value;\\r\\n profilerSelect2Value = document.getElementById(\\\"profilerSelect-2\\\").value;\\r\\n fetchSelectedResults(profilerSelect1Value, profilerSelect2Value);\\r\\n });\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"profilerLitePage\\\")) {\\r\\n document.getElementById(\\\"profilerGraph\\\").style.display = \\\"none\\\";\\r\\n fetchSelectedLiteResults();\\r\\n}\\r\\n\\r\\nvar myChart;\\r\\n\\r\\nfunction createChart() {\\r\\n var ctx = document.getElementById(\\\"spiderGraph\\\");\\r\\n\\r\\n Chart.defaults.global.defaultFontFamily = \\\"'Roboto', sans-serif\\\";\\r\\n\\r\\n var desktopTabletOptions = {\\r\\n type: \\\"radar\\\",\\r\\n data: {\\r\\n labels: labels,\\r\\n datasets: [{\\r\\n data: chartData1,\\r\\n backgroundColor: \\\"rgba(148, 154, 60, 0.4)\\\",\\r\\n borderColor: \\\"rgba(148, 154, 60, 1)\\\",\\r\\n pointRadius: 4,\\r\\n pointBackgroundColor: \\\"rgba(148, 154, 60, 1)\\\",\\r\\n borderWidth: 1\\r\\n }, {\\r\\n data: chartData2,\\r\\n backgroundColor: \\\"rgba(55, 134, 167, 0.25)\\\",\\r\\n borderColor: \\\"rgba(55, 134, 167, 1)\\\",\\r\\n pointRadius: 4,\\r\\n pointBackgroundColor: \\\"rgba(55, 134, 167, 1)\\\",\\r\\n borderWidth: 1\\r\\n }]\\r\\n },\\r\\n options: {\\r\\n responsive: true,\\r\\n maintainAspectRatio: true,\\r\\n responsiveAnimationDuration: 300,\\r\\n aspectRatio: 1.6,\\r\\n legend: {\\r\\n display: false\\r\\n },\\r\\n scale: {\\r\\n ticks: {\\r\\n beginAtZero: true,\\r\\n max: 100,\\r\\n maxTicksLimit: 2,\\r\\n display: false\\r\\n },\\r\\n gridLines: {\\r\\n circular: true,\\r\\n color: \\\"#cccccc\\\",\\r\\n lineWidth: 1\\r\\n },\\r\\n angleLines: {\\r\\n color: \\\"#cccccc\\\",\\r\\n lineWidth: 1\\r\\n },\\r\\n pointLabels: {\\r\\n fontSize: 12,\\r\\n fontColor: \\\"#6b6b69\\\",\\r\\n lineHeight: 1.5\\r\\n }\\r\\n }\\r\\n },\\r\\n plugins: [{\\r\\n beforeInit: function (chart) {\\r\\n chart.data.labels.forEach(function (e, i, a) {\\r\\n if (/\\\\n/.test(e)) {\\r\\n a[i] = e.split(/\\\\n/);\\r\\n }\\r\\n });\\r\\n }\\r\\n }]\\r\\n };\\r\\n var mobileOptions = {\\r\\n type: \\\"radar\\\",\\r\\n data: {\\r\\n labels: labelsMobile,\\r\\n datasets: [{\\r\\n data: chartData1,\\r\\n backgroundColor: \\\"rgba(148, 154, 60, 0.4)\\\",\\r\\n borderColor: \\\"rgba(148, 154, 60, 1)\\\",\\r\\n pointRadius: 4,\\r\\n pointBackgroundColor: \\\"rgba(148, 154, 60, 1)\\\",\\r\\n borderWidth: 1\\r\\n }, {\\r\\n data: chartData2,\\r\\n backgroundColor: \\\"rgba(55, 134, 167, 0.25)\\\",\\r\\n borderColor: \\\"rgba(55, 134, 167, 1)\\\",\\r\\n pointRadius: 4,\\r\\n pointBackgroundColor: \\\"rgba(55, 134, 167, 1)\\\",\\r\\n borderWidth: 1\\r\\n }]\\r\\n },\\r\\n options: {\\r\\n responsive: true,\\r\\n maintainAspectRatio: true,\\r\\n responsiveAnimationDuration: 300,\\r\\n aspectRatio: 1,\\r\\n legend: {\\r\\n display: false\\r\\n },\\r\\n scale: {\\r\\n ticks: {\\r\\n beginAtZero: true,\\r\\n max: 100,\\r\\n maxTicksLimit: 2,\\r\\n display: false\\r\\n },\\r\\n gridLines: {\\r\\n circular: true,\\r\\n color: \\\"#cccccc\\\",\\r\\n lineWidth: 1\\r\\n },\\r\\n angleLines: {\\r\\n color: \\\"#cccccc\\\",\\r\\n lineWidth: 1\\r\\n },\\r\\n pointLabels: {\\r\\n fontSize: 10,\\r\\n fontColor: \\\"#00747a\\\",\\r\\n lineHeight: 1\\r\\n }\\r\\n }\\r\\n },\\r\\n plugins: [{\\r\\n beforeInit: function (chart) {\\r\\n chart.data.labels.forEach(function (e, i, a) {\\r\\n if (/\\\\n/.test(e)) {\\r\\n a[i] = e.split(/\\\\n/);\\r\\n }\\r\\n });\\r\\n }\\r\\n }]\\r\\n };\\r\\n\\r\\n function determineChartStyle() {\\r\\n if (window.outerWidth < tabletBreakpoint + 1) {\\r\\n if (myChart) {\\r\\n myChart.destroy();\\r\\n }\\r\\n myChart = new Chart(ctx, mobileOptions);\\r\\n } else {\\r\\n if (myChart) {\\r\\n myChart.destroy();\\r\\n }\\r\\n myChart = new Chart(ctx, desktopTabletOptions);\\r\\n }\\r\\n }\\r\\n\\r\\n determineChartStyle();\\r\\n\\r\\n window.addEventListener(\\\"resize\\\", function () {\\r\\n determineChartStyle();\\r\\n // location.reload();\\r\\n }, true);\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region PROFILER | Questionnaire\\r\\n\\r\\nvar profilerQuestionnaire = document.getElementById(\\\"profilerQuestionnaire\\\");\\r\\n\\r\\nvar currentQuestion;\\r\\n\\r\\nfunction fetchNextQuestion() {\\r\\n // // set cookie for testing\\r\\n // setCookie(\\\"liteSession\\\", \\\"65eeb539-6007-4a9e-a03b-b568ee740ec3\\\");\\r\\n\\r\\n var route;\\r\\n\\r\\n if (document.getElementById(\\\"profilerPage\\\")) {\\r\\n route = \\\"Profiler/GetNextQuestion\\\";\\r\\n } else {\\r\\n route = \\\"Profiler/GetNextLiteQuestion?session=\\\" + getCookie(\\\"liteSession\\\");\\r\\n }\\r\\n\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n url: apiBaseUrl + route,\\r\\n success: function (response) {\\r\\n currentQuestion = response;\\r\\n document.getElementById(\\\"option1\\\").innerText = response.AnswerOneText;\\r\\n document.getElementById(\\\"option1\\\").value = response.AnswerOneID;\\r\\n document.getElementById(\\\"option2\\\").innerText = response.AnswerTwoText;\\r\\n document.getElementById(\\\"option2\\\").value = response.AnswerTwoID;\\r\\n document.getElementById(\\\"progressText\\\").innerText = response.CurrentQuestionCounter - 1 + \\\" of \\\" + response.SumQuestionCounter + \\\" completed\\\";\\r\\n document.getElementById(\\\"progressBar\\\").setAttribute(\\\"style\\\", \\\"width:\\\" + (response.CurrentQuestionCounter - 1) / response.SumQuestionCounter * 100 + \\\"%\\\");\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"profilerQuestionnaire\\\")) {\\r\\n var option1Button = document.getElementById(\\\"option1\\\");\\r\\n var option2Button = document.getElementById(\\\"option2\\\");\\r\\n\\r\\n option1Button.addEventListener(\\\"click\\\", function () {\\r\\n submitQuestionnaireAnswer(currentQuestion.QuestionID, option1Button.value);\\r\\n });\\r\\n\\r\\n option2Button.addEventListener(\\\"click\\\", function () {\\r\\n submitQuestionnaireAnswer(currentQuestion.QuestionID, option2Button.value);\\r\\n });\\r\\n}\\r\\n\\r\\nfunction submitQuestionnaireAnswer(questionID, answerID) {\\r\\n var data;\\r\\n var route;\\r\\n\\r\\n if (document.getElementById(\\\"profilerPage\\\")) {\\r\\n data = {\\r\\n QuestionID: questionID,\\r\\n AnswerID: answerID\\r\\n };\\r\\n route = \\\"Profiler/SetAnswer\\\";\\r\\n } else {\\r\\n data = {\\r\\n QuestionID: questionID,\\r\\n AnswerID: answerID,\\r\\n SessionID: getCookie(\\\"liteSession\\\")\\r\\n };\\r\\n route = \\\"Profiler/SetLiteAnswer\\\";\\r\\n }\\r\\n\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: data,\\r\\n url: apiBaseUrl + route,\\r\\n success: function (response) {\\r\\n if (currentQuestion.CurrentQuestionCounter === currentQuestion.SumQuestionCounter) {\\r\\n toggleQuestionnaire();\\r\\n if (document.getElementById(\\\"profilerPage\\\")) {\\r\\n fetchProfilerResultList();\\r\\n } else {\\r\\n fetchSelectedLiteResults();\\r\\n }\\r\\n } else {\\r\\n fetchNextQuestion();\\r\\n }\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction toggleQuestionnaire() {\\r\\n if (profilerQuestionnaire.style.display === \\\"block\\\") {\\r\\n profilerQuestionnaire.style.display = \\\"none\\\";\\r\\n } else {\\r\\n profilerQuestionnaire.style.display = \\\"block\\\";\\r\\n fetchNextQuestion();\\r\\n }\\r\\n}\\r\\n\\r\\n// close modal if clicked elsewhere\\r\\nif (profilerQuestionnaire) {\\r\\n window.onclick = function (event) {\\r\\n if (event.target === profilerQuestionnaire) {\\r\\n profilerQuestionnaire.style.display = \\\"none\\\";\\r\\n }\\r\\n };\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region PROFILER | Resources\\r\\n\\r\\ndocument.addEventListener(\\\"DOMContentLoaded\\\", function (e) {\\r\\n if (document.getElementById(\\\"resourceListingPage\\\")) {\\r\\n fetchProfilerResourceTags();\\r\\n\\r\\n var listingFilter = document.getElementById(\\\"listingFilter\\\");\\r\\n\\r\\n listingFilter.addEventListener(\\\"change\\\", function () {\\r\\n searchAjaxCall();\\r\\n });\\r\\n }\\r\\n});\\r\\n\\r\\nfunction getParameterByNameForResources(name, url) {\\r\\n if (!url) url = window.location.href;\\r\\n name = name.replace(/[\\\\[\\\\]]/g, \\\"\\\\\\\\$&\\\");\\r\\n var regex = new RegExp(\\\"[?&]\\\" + name + \\\"(=([^&]*)|&|#|$)\\\");\\r\\n var results = regex.exec(url);\\r\\n if (!results) return null;\\r\\n if (!results[2]) return \\\"\\\";\\r\\n return decodeURIComponent(results[2].replace(/\\\\+/g, \\\" \\\"));\\r\\n}\\r\\n\\r\\nfunction fetchProfilerResourceTags() {\\r\\n var parameterValue = getParameterByNameForResources(\\\"tag\\\");\\r\\n var isParametered = false;\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n dataType: \\\"json\\\",\\r\\n url: apiBaseUrl + \\\"/profiler/GetProfilerResourcesContentTags\\\",\\r\\n success: function (response) {\\r\\n Object.keys(response).forEach(function (key) {\\r\\n // create option\\r\\n var optionElement = document.createElement(\\\"OPTION\\\");\\r\\n optionElement.value = response[key];\\r\\n var text = document.createTextNode(response[key]);\\r\\n optionElement.appendChild(text);\\r\\n\\r\\n // select if provided in\\r\\n if (response[key] === parameterValue) {\\r\\n optionElement.selected = true;\\r\\n isParametered = true;\\r\\n }\\r\\n\\r\\n // append option\\r\\n document.getElementById(\\\"listingFilter\\\").appendChild(optionElement);\\r\\n });\\r\\n if (isParametered) {\\r\\n searchAjaxCall();\\r\\n }\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region HERO CAROUSEL | Resize carousel\\r\\n\\r\\nvar heroImage = document.getElementById(\\\"heroImageNew\\\");\\r\\n\\r\\nif (heroImage) {\\r\\n window.addEventListener(\\\"resize\\\", function () {\\r\\n heroImage.getElementsByClassName(\\\"carousel\\\")[0].style.height = heroImage.getElementsByClassName(\\\"tns-slide-active\\\")[0].scrollHeight + \\\"px\\\";\\r\\n });\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region COURSE CONTENT | Redirect\\r\\n\\r\\nfunction courseRedirect() {\\r\\n // return $.ajax({\\r\\n //\\ttype: \\\"GET\\\",\\r\\n //\\turl: apiBaseUrl + \\\"TFNLaunch/GetTFNLaunchLink\\\",\\r\\n //\\tsuccess: function (response) {\\r\\n //\\t\\tdocument.getElementById(\\\"launchCourse\\\").href = response;\\r\\n //\\t}\\r\\n // });\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"courseContentPage\\\")) {\\r\\n courseRedirect();\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region DISCUSSION BOARD\\r\\n\\r\\nfunction auto_grow(element) {\\r\\n // set auto grow\\r\\n element.style.height = \\\"5px\\\";\\r\\n element.style.height = (element.scrollHeight) + \\\"px\\\";\\r\\n\\r\\n // auto grow replies wrapper\\r\\n if (element.parentElement.classList.contains(\\\"post-reply\\\") || element.parentElement.classList.contains(\\\"send-reply\\\")) {\\r\\n var replies = element.parentElement.parentElement.parentElement;\\r\\n var wrapper = element.parentElement.parentElement;\\r\\n replies.style.height = wrapper.clientHeight + 20 + \\\"px\\\";\\r\\n }\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"discussionBoard\\\")) {\\r\\n var textAreas = document.getElementsByTagName(\\\"textarea\\\");\\r\\n\\r\\n fetchPosts();\\r\\n\\r\\n document.querySelector(\\\"#reportForm\\\").addEventListener(\\\"submit\\\", function (e) {\\r\\n e.preventDefault();\\r\\n\\r\\n var reportTypes = [];\\r\\n document.getElementById(\\\"offTopic\\\").checked ? reportTypes.push(\\\"offTopic\\\") : null;\\r\\n document.getElementById(\\\"inappropriate\\\").checked ? reportTypes.push(\\\"inappropriate\\\") : null;\\r\\n document.getElementById(\\\"discriminating\\\").checked ? reportTypes.push(\\\"discriminating\\\") : null;\\r\\n document.getElementById(\\\"spam\\\").checked ? reportTypes.push(\\\"spam\\\") : null;\\r\\n\\r\\n\\r\\n if (postToReport.postID === \\\"initial\\\") {\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: {\\r\\n \\\"TopicID\\\": parseInt(document.getElementById(\\\"TopicNodeID\\\").value),\\r\\n \\\"ReportType\\\": reportTypes.join(\\\",\\\")\\r\\n },\\r\\n url: apiBaseUrl + \\\"DiscussionBoard/ReportTopic\\\",\\r\\n success: function () {\\r\\n fetchPosts(postToReport.parent);\\r\\n reportForm.style.display = \\\"none\\\";\\r\\n thankYou.style.display = \\\"flex\\\";\\r\\n }\\r\\n });\\r\\n }\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: {\\r\\n \\\"PostID\\\": postToReport.postID,\\r\\n \\\"ReportType\\\": reportTypes.join(\\\",\\\")\\r\\n },\\r\\n url: apiBaseUrl + \\\"DiscussionBoard/ReportPost\\\",\\r\\n success: function () {\\r\\n fetchPosts(postToReport.parent);\\r\\n reportForm.style.display = \\\"none\\\";\\r\\n thankYou.style.display = \\\"flex\\\";\\r\\n }\\r\\n });\\r\\n });\\r\\n}\\r\\n\\r\\nvar isAdminView = false;\\r\\n\\r\\nfunction fetchPosts(relatedPostID) {\\r\\n var listingContainer = document.getElementById(\\\"postsListing\\\");\\r\\n\\r\\n var data = {\\r\\n \\\"TopicNodeID\\\": parseInt(document.getElementById(\\\"TopicNodeID\\\").value),\\r\\n \\\"Page\\\": selectedPage\\r\\n };\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: data,\\r\\n url: apiBaseUrl + \\\"DiscussionBoard/GetPostsByTopic\\\",\\r\\n success: function (response) {\\r\\n if (response) {\\r\\n // empty containers\\r\\n listingContainer.innerHTML = \\\"\\\";\\r\\n document.getElementById(\\\"boardStats\\\").innerHTML = \\\"\\\";\\r\\n $(\\\".pagination > .pages\\\").empty();\\r\\n\\r\\n // create initial post\\r\\n createPost(listingContainer, response.InitialPost, true, response.State === \\\"Closed\\\", response.IsMemberBlocked);\\r\\n\\r\\n // set admin mode\\r\\n isAdminView = response.IsAdminView;\\r\\n\\r\\n if (response.DBPosts) {\\r\\n // create posts\\r\\n response.DBPosts.forEach(function (element) {\\r\\n createPost(listingContainer, element, false, response.State === \\\"Closed\\\", response.IsMemberBlocked);\\r\\n });\\r\\n }\\r\\n\\r\\n // add CTA button label\\r\\n document.getElementById(\\\"subscribeToBoard\\\").getElementsByTagName(\\\"a\\\")[0].innerHTML = response.SubscribeCTALabel;\\r\\n\\r\\n // add stats\\r\\n createTopicStats(response);\\r\\n\\r\\n if (response.Pagination) {\\r\\n // add pagination\\r\\n createPagination(response.Pagination);\\r\\n }\\r\\n\\r\\n // adjust textarea heights\\r\\n for (var i = 0; i < textAreas.length; i++) {\\r\\n textAreas[i].style.height = (textAreas[i].scrollHeight) + \\\"px\\\";\\r\\n }\\r\\n\\r\\n // open accordion if reply\\r\\n if (relatedPostID) {\\r\\n document.querySelectorAll(\\\"[data-post-id=\\\\\\\"\\\" + relatedPostID + \\\"\\\\\\\"]\\\")[0].getElementsByClassName(\\\"reply\\\")[0].click();\\r\\n }\\r\\n\\r\\n textareaArray = [].slice.call(document.getElementsByTagName(\\\"trix-editor\\\"));\\r\\n }\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction sendComment(element, isReply) {\\r\\n var textarea = element.parentElement.getElementsByTagName(\\\"trix-editor\\\")[0];\\r\\n var relatedPost = isReply ? element.parentElement.parentElement.parentElement.parentElement.getAttribute(\\\"data-post-id\\\") : null;\\r\\n if (textarea.value) {\\r\\n var data = {\\r\\n \\\"TopicID\\\": parseInt(document.getElementById(\\\"TopicNodeID\\\").value),\\r\\n \\\"Content\\\": textarea.value,\\r\\n \\\"RelatedPostID\\\": relatedPost\\r\\n };\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: data,\\r\\n url: apiBaseUrl + \\\"DiscussionBoard/CreateNewPost\\\",\\r\\n success: function () {\\r\\n textarea.value = \\\"\\\";\\r\\n // auto_grow(textarea);\\r\\n fetchPosts(relatedPost);\\r\\n }\\r\\n });\\r\\n }\\r\\n}\\r\\n\\r\\nfunction createPost(container, content, isInitial, isClosed, isBlocked) {\\r\\n var post = document.createElement(\\\"div\\\");\\r\\n container.appendChild(post);\\r\\n post.classList.add(\\\"post\\\");\\r\\n\\r\\n if (isClosed) {\\r\\n post.classList.add(\\\"closed\\\");\\r\\n }\\r\\n\\r\\n // add post ID\\r\\n post.setAttribute(\\\"data-post-id\\\", content.PostID ? content.PostID : \\\"initial\\\");\\r\\n\\r\\n if (!content.Replies && !isInitial) {\\r\\n post.classList.add(\\\"post-reply\\\");\\r\\n }\\r\\n\\r\\n createNameAndDate(post, content.ProfilePhotoURL, isInitial ? \\\"\\\" : content.MemberName, new Date(content.Created).toLocaleString());\\r\\n addTextarea(post, content.Content, true, isInitial);\\r\\n addControls(post, content.Replies ? content.Replies.length : 0, content.LikeCount, content.ReportCount, !content.Replies, content.IsMemberLikedIt, content.IsMemberReportedIt, content.IsOwnPost, isInitial, content.IsDeleted, isClosed);\\r\\n if (content.Replies) {\\r\\n addReplies(post, content.Replies, isClosed, isBlocked);\\r\\n }\\r\\n}\\r\\n\\r\\nfunction createTopicStats(data) {\\r\\n var boardStats = document.getElementById(\\\"boardStats\\\");\\r\\n\\r\\n if (data.State === \\\"Closed\\\") {\\r\\n boardStats.classList.add(\\\"closed\\\");\\r\\n document.getElementById(\\\"sendPost\\\").style.display = \\\"none\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"sendPost\\\").style.display = \\\"block\\\";\\r\\n }\\r\\n\\r\\n if (data.IsMemberBlocked) {\\r\\n document.getElementById(\\\"sendPost\\\").style.display = \\\"none\\\";\\r\\n } else {\\r\\n document.getElementById(\\\"sendPost\\\").style.display = \\\"block\\\";\\r\\n }\\r\\n\\r\\n\\r\\n // add status indicator\\r\\n var statusIndicator = document.createElement(\\\"div\\\");\\r\\n statusIndicator.classList.add(\\\"status-indicator\\\");\\r\\n if (data.State === \\\"Closed\\\") {\\r\\n statusIndicator.innerText = \\\"Closed\\\";\\r\\n } else {\\r\\n statusIndicator.innerText = \\\"Open\\\";\\r\\n }\\r\\n boardStats.appendChild(statusIndicator);\\r\\n // date, posts, users, posts\\r\\n var latest = document.createElement(\\\"p\\\");\\r\\n latest.classList.add(\\\"bold\\\");\\r\\n latest.innerHTML = \\\"Latest post: \\\" + new Date(data.LatestPost).toLocaleString() + \\\"\\\";\\r\\n boardStats.appendChild(latest);\\r\\n var posts = document.createElement(\\\"p\\\");\\r\\n posts.innerHTML = \\\"Posts: \\\" + data.TotalPosts + \\\"\\\";\\r\\n boardStats.appendChild(posts);\\r\\n var users = document.createElement(\\\"p\\\");\\r\\n users.innerHTML = \\\"Users: \\\" + data.UsersInTopic + \\\"\\\";\\r\\n boardStats.appendChild(users);\\r\\n var views = document.createElement(\\\"p\\\");\\r\\n views.innerHTML = \\\"Views: \\\" + data.Views + \\\"\\\";\\r\\n boardStats.appendChild(views);\\r\\n}\\r\\n\\r\\nfunction createNameAndDate(postElement, url, name, date) {\\r\\n var item = document.createElement(\\\"div\\\");\\r\\n item.classList.add(\\\"name-and-date\\\");\\r\\n var avatar = document.createElement(\\\"div\\\");\\r\\n avatar.classList.add(\\\"user-avatar\\\");\\r\\n avatar.style.backgroundImage = \\\"url(\\\\'\\\" + url + \\\"\\\\')\\\";\\r\\n item.appendChild(avatar);\\r\\n var p = document.createElement(\\\"p\\\");\\r\\n p.classList.add(\\\"name\\\");\\r\\n p.innerText = name;\\r\\n item.appendChild(p);\\r\\n p = document.createElement(\\\"p\\\");\\r\\n p.classList.add(\\\"date\\\");\\r\\n p.innerText = date;\\r\\n item.appendChild(p);\\r\\n postElement.appendChild(item);\\r\\n}\\r\\n\\r\\nfunction addTextarea(postElement, text, disabled, isInitial) {\\r\\n var trix = document.createElement(\\\"trix-editor\\\");\\r\\n\\r\\n trix.addEventListener(\\\"trix-initialize\\\", function () {\\r\\n trix.editor.insertHTML(text);\\r\\n if (disabled) {\\r\\n trix.classList.add(\\\"disabled\\\");\\r\\n trix.contentEditable = \\\"false\\\";\\r\\n postElement.getElementsByTagName(\\\"trix-toolbar\\\")[0].style.display = \\\"none\\\";\\r\\n }\\r\\n if (isInitial) {\\r\\n trix.classList.add(\\\"initial\\\");\\r\\n }\\r\\n trix.addEventListener(\\\"keyup\\\", function () {\\r\\n auto_grow(this);\\r\\n });\\r\\n trix.style.height = (trix.scrollHeight) + \\\"px\\\";\\r\\n });\\r\\n\\r\\n postElement.appendChild(trix);\\r\\n}\\r\\n\\r\\nfunction addControls(postElement, replyCount, likeCount, reportCount, isReply, isLiked, isReported, isOwnPost, isInitial, isDeleted, isClosed) {\\r\\n var item = document.createElement(\\\"div\\\");\\r\\n item.classList.add(\\\"controls\\\");\\r\\n\\r\\n // reply button\\r\\n if (!isReply) {\\r\\n var reply = document.createElement(\\\"div\\\");\\r\\n reply.classList.add(\\\"reply\\\");\\r\\n reply.addEventListener(\\\"click\\\", function () {\\r\\n toggleReplies(reply);\\r\\n });\\r\\n reply.innerText = replyCount + \\\" Reply\\\";\\r\\n item.appendChild(reply);\\r\\n }\\r\\n\\r\\n if (!isDeleted) {\\r\\n // like button\\r\\n var likeButton = document.createElement(\\\"div\\\");\\r\\n likeButton.classList.add(\\\"like\\\");\\r\\n if (isLiked) {\\r\\n likeButton.classList.add(\\\"active\\\");\\r\\n }\\r\\n likeButton.innerText = likeCount;\\r\\n item.appendChild(likeButton);\\r\\n if (!isClosed) {\\r\\n if (isInitial) {\\r\\n likeButton.addEventListener(\\\"click\\\", function () {\\r\\n toggleLikeTopic(this);\\r\\n });\\r\\n } else {\\r\\n likeButton.addEventListener(\\\"click\\\", function () {\\r\\n toggleLike(this);\\r\\n });\\r\\n }\\r\\n }\\r\\n\\r\\n // update edit\\r\\n if (isOwnPost && !isClosed) {\\r\\n var updateButton = document.createElement(\\\"div\\\");\\r\\n updateButton.classList.add(\\\"update\\\");\\r\\n item.appendChild(updateButton);\\r\\n updateButton.addEventListener(\\\"click\\\", function () {\\r\\n updatePost(this);\\r\\n });\\r\\n var editButton = document.createElement(\\\"div\\\");\\r\\n editButton.classList.add(\\\"edit\\\");\\r\\n item.appendChild(editButton);\\r\\n editButton.addEventListener(\\\"click\\\", function () {\\r\\n editPost(this);\\r\\n });\\r\\n }\\r\\n\\r\\n // delete\\r\\n if ((isOwnPost && !isClosed) || isAdminView) {\\r\\n var deleteButton = document.createElement(\\\"div\\\");\\r\\n deleteButton.classList.add(\\\"delete\\\");\\r\\n item.appendChild(deleteButton);\\r\\n deleteButton.addEventListener(\\\"click\\\", function () {\\r\\n deletePost(this);\\r\\n });\\r\\n }\\r\\n\\r\\n // report button\\r\\n var reportButton = document.createElement(\\\"div\\\");\\r\\n reportButton.classList.add(\\\"report\\\");\\r\\n if (isReported) {\\r\\n reportButton.classList.add(\\\"active\\\");\\r\\n }\\r\\n reportButton.innerText = reportCount;\\r\\n if (!isClosed) {\\r\\n if (isInitial) {\\r\\n reportButton.addEventListener(\\\"click\\\", function () {\\r\\n reportTopic(this);\\r\\n });\\r\\n } else {\\r\\n reportButton.addEventListener(\\\"click\\\", function () {\\r\\n reportPost(this);\\r\\n });\\r\\n }\\r\\n }\\r\\n item.appendChild(reportButton);\\r\\n }\\r\\n\\r\\n postElement.appendChild(item);\\r\\n}\\r\\n\\r\\nfunction addReplies(postElement, postReplies, isClosed, isBlocked) {\\r\\n var replies = document.createElement(\\\"div\\\");\\r\\n replies.classList.add(\\\"replies\\\");\\r\\n var container = document.createElement(\\\"div\\\");\\r\\n container.classList.add(\\\"wrapper\\\");\\r\\n replies.appendChild(container);\\r\\n postElement.appendChild(replies);\\r\\n\\r\\n postReplies.forEach(function (element) {\\r\\n createPost(container, element, false, isClosed);\\r\\n });\\r\\n\\r\\n if (!isClosed && !isBlocked) {\\r\\n container = createPostBox(container);\\r\\n }\\r\\n}\\r\\n\\r\\nfunction createPostBox(postElement) {\\r\\n var item = document.createElement(\\\"div\\\");\\r\\n var innerItem = document.createElement(\\\"div\\\");\\r\\n var trix = document.createElement(\\\"trix-editor\\\");\\r\\n var sendButton = document.createElement(\\\"a\\\");\\r\\n\\r\\n item.appendChild(trix);\\r\\n item.appendChild(innerItem);\\r\\n item.appendChild(sendButton);\\r\\n postElement.appendChild(item);\\r\\n\\r\\n item.classList.add(\\\"send\\\");\\r\\n item.classList.add(\\\"send-reply\\\");\\r\\n innerItem.classList.add(\\\"image\\\");\\r\\n trix.addEventListener(\\\"keyup\\\", function () {\\r\\n auto_grow(this);\\r\\n });\\r\\n trix.style.height = (trix.scrollHeight) + \\\"px\\\";\\r\\n sendButton.classList.add(\\\"button\\\");\\r\\n sendButton.innerText = \\\"Reply\\\";\\r\\n sendButton.addEventListener(\\\"click\\\", function () {\\r\\n sendComment(this, true);\\r\\n });\\r\\n trix.setAttribute(\\\"placeholder\\\", \\\"Write your reply here...\\\");\\r\\n return postElement;\\r\\n}\\r\\n\\r\\nfunction toggleReplies(element) {\\r\\n var replies = element.parentElement.parentElement.getElementsByClassName(\\\"replies\\\")[0];\\r\\n var wrapper = element.parentElement.parentElement.getElementsByClassName(\\\"wrapper\\\")[0];\\r\\n\\r\\n // open or close replies dropdown\\r\\n if (replies.clientHeight) {\\r\\n replies.style.height = 0;\\r\\n replies.classList.remove(\\\"open\\\");\\r\\n element.classList.remove(\\\"open\\\");\\r\\n } else {\\r\\n // add 20 px to adjust client height\\r\\n replies.style.height = wrapper.clientHeight + 20 + \\\"px\\\";\\r\\n replies.classList.add(\\\"open\\\");\\r\\n element.classList.add(\\\"open\\\");\\r\\n }\\r\\n}\\r\\n\\r\\n// create textarea array\\r\\nvar textareaArray = [];\\r\\n// create object for old values for edit cancel\\r\\nvar textareaOldValues = {};\\r\\n\\r\\nfunction editPost(element) {\\r\\n var editButton = element;\\r\\n var deleteButton = element.parentElement.getElementsByClassName(\\\"delete\\\")[0];\\r\\n var updateButton = element.parentElement.getElementsByClassName(\\\"update\\\")[0];\\r\\n var textarea = element.parentElement.parentElement.getElementsByTagName(\\\"trix-editor\\\")[0];\\r\\n\\r\\n\\r\\n if (editButton.classList.contains(\\\"on\\\")) {\\r\\n editButton.classList.remove(\\\"on\\\");\\r\\n\\r\\n // disable trix editor\\r\\n textarea.classList.add(\\\"disabled\\\");\\r\\n textarea.contentEditable = \\\"false\\\";\\r\\n textarea.parentElement.getElementsByTagName(\\\"trix-toolbar\\\")[0].style.display = \\\"none\\\";\\r\\n\\r\\n // restore old values\\r\\n textarea.value = textareaOldValues[textareaArray.indexOf(textarea)].content;\\r\\n textarea.style.height = textareaOldValues[textareaArray.indexOf(textarea)].height;\\r\\n // restore replies wrapper height\\r\\n if (element.parentElement.parentElement.classList.contains(\\\"post-reply\\\")) {\\r\\n var replies = element.parentElement.parentElement.parentElement.parentElement;\\r\\n var wrapper = element.parentElement.parentElement.parentElement;\\r\\n replies.style.height = wrapper.clientHeight + \\\"px\\\";\\r\\n }\\r\\n // show delete button\\r\\n deleteButton.style.display = \\\"block\\\";\\r\\n // hide update button\\r\\n updateButton.style.display = \\\"none\\\";\\r\\n } else {\\r\\n editButton.classList.add(\\\"on\\\");\\r\\n\\r\\n // enable trix editor\\r\\n textarea.classList.remove(\\\"disabled\\\");\\r\\n textarea.contentEditable = \\\"true\\\";\\r\\n textarea.parentElement.getElementsByTagName(\\\"trix-toolbar\\\")[0].style.display = \\\"block\\\";\\r\\n\\r\\n // save current values\\r\\n textareaOldValues[textareaArray.indexOf(textarea)] = {content: textarea.value, height: textarea.style.height};\\r\\n // hide delete button\\r\\n deleteButton.style.display = \\\"none\\\";\\r\\n // show update button\\r\\n updateButton.style.display = \\\"block\\\";\\r\\n }\\r\\n}\\r\\n\\r\\nfunction updatePost(element) {\\r\\n var updateText = element.parentElement.parentElement.getElementsByTagName(\\\"trix-editor\\\")[0].value;\\r\\n var postID = element.parentElement.parentElement.getAttribute(\\\"data-post-id\\\");\\r\\n var relatedPost = element.parentElement.parentElement.classList.contains(\\\"post-reply\\\") ? element.parentElement.parentElement.parentElement.parentElement.parentElement.getAttribute(\\\"data-post-id\\\") : null;\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: {\\r\\n \\\"PostID\\\": postID,\\r\\n \\\"Content\\\": updateText\\r\\n },\\r\\n url: apiBaseUrl + \\\"DiscussionBoard/EditPost\\\",\\r\\n success: function () {\\r\\n fetchPosts(relatedPost);\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nvar reportDialog = document.getElementById(\\\"reportDialog\\\");\\r\\nvar deleteDialog = document.getElementById(\\\"deleteDialog\\\");\\r\\nvar reportForm = document.getElementById(\\\"reportForm\\\");\\r\\nvar thankYou = document.getElementById(\\\"reportThankYou\\\");\\r\\n\\r\\nvar postToReport = {};\\r\\n\\r\\nfunction reportPost(element) {\\r\\n if (element.classList.contains(\\\"active\\\")) {\\r\\n reportDialog.style.display = \\\"block\\\";\\r\\n reportForm.style.display = \\\"none\\\";\\r\\n thankYou.style.display = \\\"flex\\\";\\r\\n } else {\\r\\n reportDialog.style.display = \\\"block\\\";\\r\\n reportForm.style.display = \\\"flex\\\";\\r\\n thankYou.style.display = \\\"none\\\";\\r\\n postToReport = {\\r\\n postID: element.parentElement.parentElement.getAttribute(\\\"data-post-id\\\"),\\r\\n parent: element.parentElement.parentElement.classList.contains(\\\"post-reply\\\") ? element.parentElement.parentElement.parentElement.parentElement.parentElement.getAttribute(\\\"data-post-id\\\") : null\\r\\n };\\r\\n }\\r\\n}\\r\\n\\r\\nfunction closeReportModal() {\\r\\n reportDialog.style.display = \\\"none\\\";\\r\\n document.querySelector(\\\"#reportForm\\\").reset();\\r\\n}\\r\\n\\r\\nvar postToDelete = {};\\r\\n\\r\\nfunction deletePost(element) {\\r\\n postToDelete = {\\r\\n postID: element.parentElement.parentElement.getAttribute(\\\"data-post-id\\\"),\\r\\n parent: element.parentElement.parentElement.classList.contains(\\\"post-reply\\\") ? element.parentElement.parentElement.parentElement.parentElement.parentElement.getAttribute(\\\"data-post-id\\\") : null\\r\\n };\\r\\n deleteDialog.style.display = \\\"block\\\";\\r\\n}\\r\\n\\r\\nfunction confirmDelete() {\\r\\n deleteDialog.style.display = \\\"none\\\";\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: {\\r\\n \\\"PostID\\\": postToDelete.postID,\\r\\n \\\"IsAdminDelete\\\": isAdminView\\r\\n },\\r\\n url: apiBaseUrl + \\\"DiscussionBoard/DeletePost\\\",\\r\\n success: function () {\\r\\n fetchPosts(postToDelete.parent);\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction closeDeleteModal() {\\r\\n deleteDialog.style.display = \\\"none\\\";\\r\\n}\\r\\n\\r\\nfunction toggleLike(element) {\\r\\n var parent = element.parentElement.parentElement.classList.contains(\\\"post-reply\\\") ? element.parentElement.parentElement.parentElement.parentElement.parentElement.getAttribute(\\\"data-post-id\\\") : null;\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: {\\r\\n \\\"PostID\\\": element.parentElement.parentElement.getAttribute(\\\"data-post-id\\\")\\r\\n },\\r\\n url: apiBaseUrl + \\\"DiscussionBoard/LikePost\\\",\\r\\n success: function () {\\r\\n fetchPosts(parent);\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction reportTopic(element) {\\r\\n // console.log(element);\\r\\n}\\r\\n\\r\\nfunction toggleLikeTopic(element) {\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: {\\r\\n \\\"TopicID\\\": parseInt(document.getElementById(\\\"TopicNodeID\\\").value)\\r\\n },\\r\\n url: apiBaseUrl + \\\"DiscussionBoard/LikeTopic\\\",\\r\\n success: function () {\\r\\n fetchPosts();\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction toggleSubscribe() {\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: {\\r\\n \\\"TopicID\\\": parseInt(document.getElementById(\\\"TopicNodeID\\\").value)\\r\\n },\\r\\n url: apiBaseUrl + \\\"DiscussionBoard/TopicSubscription\\\",\\r\\n success: function () {\\r\\n fetchPosts();\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\n// close modal if clicked elsewhere\\r\\nif (reportDialog && deleteDialog) {\\r\\n window.onclick = function (event) {\\r\\n if (event.target === reportDialog || event.target === deleteDialog) {\\r\\n closeReportModal();\\r\\n closeDeleteModal();\\r\\n }\\r\\n };\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region DISCUSSION BOARD LISTING\\r\\n\\r\\n// page load\\r\\nif (document.getElementById(\\\"discussionBoardListing\\\")) {\\r\\n document.getElementById(\\\"listingFilter\\\").onchange = function () {\\r\\n updateSearchResult();\\r\\n };\\r\\n\\r\\n updateSearchResult();\\r\\n}\\r\\n\\r\\nfunction createDiscussionListElement(container, data) {\\r\\n var transformedData = {\\r\\n picture: data.ImageURL,\\r\\n unread: data.UnreadCounter > 0,\\r\\n title: data.Title,\\r\\n description: data.Description,\\r\\n href: data.TopicURL,\\r\\n closed: data.State !== \\\"Open\\\",\\r\\n latest: data.LatestPost,\\r\\n posts: data.TotalPosts,\\r\\n users: data.UsersInTopic,\\r\\n views: data.Views,\\r\\n buttonLabel: data.CTALabel\\r\\n };\\r\\n\\r\\n // create element\\r\\n var element = document.createElement(\\\"a\\\");\\r\\n element.classList.add(\\\"element\\\");\\r\\n element.href = data.TopicURL;\\r\\n // element.setAttribute(\\\"data-topic-id\\\", data.TopicID);\\r\\n\\r\\n // add picture\\r\\n var picture = document.createElement(\\\"div\\\");\\r\\n picture.classList.add(\\\"picture\\\");\\r\\n picture.style.backgroundImage = \\\"url(\\\\'\\\" + transformedData.picture + \\\"\\\\')\\\";\\r\\n element.appendChild(picture);\\r\\n\\r\\n // add content wrapper\\r\\n var content = document.createElement(\\\"div\\\");\\r\\n content.classList.add(\\\"content\\\");\\r\\n element.appendChild(content);\\r\\n\\r\\n // add details\\r\\n var details = document.createElement(\\\"div\\\");\\r\\n details.classList.add(\\\"details\\\");\\r\\n content.appendChild(details);\\r\\n\\r\\n // add title and description and span if unread\\r\\n var title = document.createElement(\\\"h2\\\");\\r\\n if (transformedData.unread) {\\r\\n title.innerHTML = \\\"Unread\\\" + transformedData.title;\\r\\n } else {\\r\\n title.innerText = transformedData.title;\\r\\n }\\r\\n details.appendChild(title);\\r\\n var description = document.createElement(\\\"p\\\");\\r\\n description.innerText = transformedData.description;\\r\\n details.appendChild(description);\\r\\n // var interests = document.createElement(\\\"p\\\");\\r\\n // interests.classList.add(\\\"interests\\\");\\r\\n // interests.innerText = \\\"Interests: \\\" + transformedData.interests.join(\\\", \\\").toUpperCase();\\r\\n // details.appendChild(interests);\\r\\n\\r\\n // add stats\\r\\n var stats = document.createElement(\\\"div\\\");\\r\\n stats.classList.add(\\\"stats\\\");\\r\\n if (transformedData.closed) {\\r\\n stats.classList.add(\\\"closed\\\");\\r\\n }\\r\\n content.appendChild(stats);\\r\\n\\r\\n // add wrapper\\r\\n var section = document.createElement(\\\"section\\\");\\r\\n stats.appendChild(section);\\r\\n\\r\\n // add status indicator\\r\\n var statusIndicator = document.createElement(\\\"div\\\");\\r\\n statusIndicator.classList.add(\\\"status-indicator\\\");\\r\\n if (transformedData.closed) {\\r\\n statusIndicator.innerText = \\\"Closed\\\";\\r\\n } else {\\r\\n statusIndicator.innerText = \\\"Open\\\";\\r\\n }\\r\\n section.appendChild(statusIndicator);\\r\\n // date, posts, users, posts\\r\\n var latest = document.createElement(\\\"p\\\");\\r\\n latest.classList.add(\\\"bold\\\");\\r\\n latest.innerHTML = \\\"Latest post: \\\" + new Date(transformedData.latest).toLocaleDateString() + \\\"\\\";\\r\\n section.appendChild(latest);\\r\\n var posts = document.createElement(\\\"p\\\");\\r\\n posts.innerHTML = \\\"Posts: \\\" + transformedData.posts + \\\"\\\";\\r\\n section.appendChild(posts);\\r\\n var users = document.createElement(\\\"p\\\");\\r\\n users.innerHTML = \\\"Users: \\\" + transformedData.users + \\\"\\\";\\r\\n section.appendChild(users);\\r\\n var views = document.createElement(\\\"p\\\");\\r\\n views.innerHTML = \\\"Views: \\\" + transformedData.views + \\\"\\\";\\r\\n section.appendChild(views);\\r\\n // add button\\r\\n var button = document.createElement(\\\"a\\\");\\r\\n button.classList.add(\\\"button\\\");\\r\\n button.innerText = transformedData.buttonLabel;\\r\\n button.href = transformedData.href;\\r\\n section.appendChild(button);\\r\\n container.appendChild(element);\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region NOTIFICATIONS | Notifications Listing\\r\\n\\r\\nif (document.getElementById(\\\"dashboardNotificationsPage\\\")) {\\r\\n document.getElementById(\\\"notificationFilter\\\").onchange = function () {\\r\\n listNotifications();\\r\\n };\\r\\n\\r\\n listNotifications();\\r\\n}\\r\\n\\r\\nfunction listNotifications() {\\r\\n var showRead = document.getElementById(\\\"notificationFilter\\\").value;\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n dataType: \\\"json\\\",\\r\\n data: {\\r\\n \\\"PageID\\\": selectedPage,\\r\\n \\\"ShowRead\\\": showRead\\r\\n },\\r\\n url: apiBaseUrl + \\\"MemberNotification/MemberNotifications\\\",\\r\\n success: function (response) {\\r\\n $(\\\".pagination > .pages\\\").empty();\\r\\n\\r\\n if (response) {\\r\\n var pagination = {\\r\\n CurrentPage: response.CurrentPage,\\r\\n NumberOfPages: response.TotalPages\\r\\n };\\r\\n createPagination(pagination);\\r\\n\\r\\n $(\\\"#listingContainer\\\").empty();\\r\\n\\r\\n response.Notifications.forEach(function (notification) {\\r\\n var accordion = createNotification(notification);\\r\\n document.getElementById(\\\"listingContainer\\\").appendChild(accordion);\\r\\n });\\r\\n\\r\\n return listenAccordions();\\r\\n }\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nvar monthList = [];\\r\\nmonthList[0] = \\\"Jan\\\";\\r\\nmonthList[1] = \\\"Feb\\\";\\r\\nmonthList[2] = \\\"Mar\\\";\\r\\nmonthList[3] = \\\"Apr\\\";\\r\\nmonthList[4] = \\\"May\\\";\\r\\nmonthList[5] = \\\"Jun\\\";\\r\\nmonthList[6] = \\\"Jul\\\";\\r\\nmonthList[7] = \\\"Aug\\\";\\r\\nmonthList[8] = \\\"Sep\\\";\\r\\nmonthList[9] = \\\"Oct\\\";\\r\\nmonthList[10] = \\\"Nov\\\";\\r\\nmonthList[11] = \\\"Dec\\\";\\r\\n\\r\\nfunction createNotification(notification) {\\r\\n var accordion = document.createElement(\\\"div\\\");\\r\\n accordion.classList.add(\\\"accordion\\\");\\r\\n\\r\\n // accordion head\\r\\n var head = document.createElement(\\\"div\\\");\\r\\n head.classList.add(\\\"accordion-head\\\");\\r\\n accordion.appendChild(head);\\r\\n var wrapper = document.createElement(\\\"div\\\");\\r\\n wrapper.classList.add(\\\"wrapper\\\");\\r\\n head.appendChild(wrapper);\\r\\n var checkbox = document.createElement(\\\"div\\\");\\r\\n checkbox.classList.add(\\\"checkbox\\\");\\r\\n wrapper.appendChild(checkbox);\\r\\n var input = document.createElement(\\\"input\\\");\\r\\n input.type = \\\"checkbox\\\";\\r\\n input.id = notification.MessageReceiptID;\\r\\n checkbox.appendChild(input);\\r\\n var label = document.createElement(\\\"label\\\");\\r\\n label.htmlFor = notification.MessageReceiptID;\\r\\n checkbox.appendChild(label);\\r\\n var title = document.createElement(\\\"p\\\");\\r\\n if (!notification.Read) {\\r\\n title.classList.add(\\\"unread\\\");\\r\\n }\\r\\n title.innerText = notification.Subject;\\r\\n wrapper.appendChild(title);\\r\\n var date = document.createElement(\\\"div\\\");\\r\\n date.classList.add(\\\"date\\\");\\r\\n head.appendChild(date);\\r\\n var month = document.createElement(\\\"p\\\");\\r\\n month.innerText = monthList[new Date(notification.ArrivedDate).getMonth()];\\r\\n date.appendChild(month);\\r\\n var day = document.createElement(\\\"p\\\");\\r\\n date.appendChild(day);\\r\\n var strong = document.createElement(\\\"strong\\\");\\r\\n strong.innerText = new Date(notification.ArrivedDate).getDate();\\r\\n day.appendChild(strong);\\r\\n\\r\\n // accordion head\\r\\n var body = document.createElement(\\\"div\\\");\\r\\n body.classList.add(\\\"accordion-body\\\");\\r\\n accordion.appendChild(body);\\r\\n var close = document.createElement(\\\"div\\\");\\r\\n close.classList.add(\\\"close\\\");\\r\\n close.addEventListener(\\\"click\\\", function () {\\r\\n closeAccordion(this);\\r\\n });\\r\\n body.appendChild(close);\\r\\n var content = document.createElement(\\\"div\\\");\\r\\n content.classList.add(\\\"content\\\");\\r\\n content.innerHTML = notification.Content;\\r\\n body.appendChild(content);\\r\\n\\r\\n return accordion;\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"selectAllNotifications\\\")) {\\r\\n document.getElementById(\\\"selectAllNotifications\\\").addEventListener(\\\"change\\\", function () {\\r\\n if (this.checked) {\\r\\n markAllNotification(true);\\r\\n } else {\\r\\n markAllNotification(false);\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nfunction markAllNotification(boolean) {\\r\\n var listing = document.getElementById(\\\"listingContainer\\\").getElementsByTagName(\\\"input\\\");\\r\\n for (var i = 0; i < listing.length; i++) {\\r\\n listing[i].checked = boolean;\\r\\n }\\r\\n}\\r\\n\\r\\nfunction getMarkedNotifications() {\\r\\n var markedNotifications = [];\\r\\n var listing = document.getElementById(\\\"listingContainer\\\").getElementsByTagName(\\\"input\\\");\\r\\n for (var i = 0; i < listing.length; i++) {\\r\\n if (listing[i].checked) {\\r\\n markedNotifications.push(listing[i].id);\\r\\n }\\r\\n }\\r\\n return markedNotifications;\\r\\n}\\r\\n\\r\\nfunction updateNotifications(action) {\\r\\n var route;\\r\\n\\r\\n if (action === \\\"delete\\\") {\\r\\n route = \\\"MemberNotification/RemoveNotification\\\";\\r\\n } else {\\r\\n route = \\\"MemberNotification/MarkNotificationAsRead\\\";\\r\\n }\\r\\n\\r\\n return $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n data: {\\r\\n \\\"NotificationIDs\\\": getMarkedNotifications()\\r\\n },\\r\\n url: apiBaseUrl + route,\\r\\n success: function () {\\r\\n // no response by server just success code 200\\r\\n listNotifications();\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region SEO scripts\\r\\n\\r\\n// HOME | Video play button\\r\\nfunction heroVideoPlay() {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Video Play\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Home Page Hero Video\\\"\\r\\n });\\r\\n}\\r\\n\\r\\n// HOME | Join Associate\\r\\n$(\\\"#joinBtnAssociate\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Join - Associate\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HOME | Join Founding\\r\\n$(\\\"#joinBtnFounding\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Join - Founding\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HOME | Join Advanced\\r\\n$(\\\"#joinBtnAdvanced\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Join - Advanced\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HOME | Profiler button\\r\\n$(\\\"#profilerBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Home Page Profiler\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HOME | View all FAQs button\\r\\n$(\\\"#faqBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Home Page FAQs\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HOME | View all News button\\r\\n$(\\\"#newsBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Home Page News\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HOME | Shorts - PLAY button\\r\\n$(\\\"#shortsPlayBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Home Page Shorts Play Btn\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HOME | Shorts - All button\\r\\n$(\\\"#shortsAllBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Home Page Shorts\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HOME | Diary - All links in the box\\r\\n$(\\\"#diaryBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Home Page Diary\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HEADER | Register button\\r\\n$(\\\"#headerRegisterBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Register\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// SIDEBAR LOGIN | Register Button\\r\\n$(\\\"#sidebarLoginContentRegisterBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Register\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// SIDEBAR RECOVERY | Register Button\\r\\n$(\\\"#sidebarRecoveryContentRegisterBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Register\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HEADER | Login Button\\r\\n$(\\\"#headerLoginBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Nav - login\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// SIDEBAR | Login Button\\r\\n$(\\\"#sidebarLoginBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Nav - login\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HOME | Join Now\\r\\n$(\\\"#joinNowBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Join now\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HOME | Join Now\\r\\n$(\\\"#joinNowBtn2\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Join now\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// TEASER | Login / Register\\r\\n$(\\\"#teaserLoginRegisterBtn\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", {\\r\\n \\\"hitType\\\": \\\"event\\\",\\r\\n \\\"eventCategory\\\": \\\"Button\\\",\\r\\n \\\"eventAction\\\": \\\"click\\\",\\r\\n \\\"eventLabel\\\": \\\"Register\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// HEADER | Continue with Linkedin\\r\\n$(\\\"#headerLinkedInButton\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", \\\"event\\\", {\\r\\n eventCategory: \\\"Outbound Link\\\",\\r\\n eventAction: \\\"click\\\",\\r\\n eventLabel: document.getElementById(\\\"headerLinkedInButton\\\").href,\\r\\n transport: \\\"beacon\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// SIDEBAR | Continue with Linkedin\\r\\n$(\\\"#sidebarLinkedInButton\\\").on(\\\"click\\\", function () {\\r\\n ga(\\\"send\\\", \\\"event\\\", {\\r\\n eventCategory: \\\"Outbound Link\\\",\\r\\n eventAction: \\\"click\\\",\\r\\n eventLabel: document.getElementById(\\\"sidebarLinkedInButton\\\").href,\\r\\n transport: \\\"beacon\\\"\\r\\n });\\r\\n});\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region Password Show\\r\\n\\r\\nfunction showPWD(element) {\\r\\n var input = element.parentElement.getElementsByTagName(\\\"input\\\")[0];\\r\\n\\r\\n if (input.type === \\\"password\\\") {\\r\\n input.type = \\\"text\\\";\\r\\n element.src = \\\"assets/image/pwd-hide.svg\\\";\\r\\n } else {\\r\\n input.type = \\\"password\\\";\\r\\n element.src = \\\"assets/image/pwd-show.svg\\\";\\r\\n }\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region Record TFN Launch\\r\\n\\r\\nif (document.getElementById(\\\"launchCourse\\\")) {\\r\\n document.getElementById(\\\"launchCourse\\\").addEventListener(\\\"click\\\", function () {\\r\\n $.ajax({\\r\\n type: \\\"POST\\\",\\r\\n data: {},\\r\\n url: apiBaseUrl + \\\"EventRecorder/RecordTFNLaunch\\\",\\r\\n success: function () {\\r\\n },\\r\\n error: function () {\\r\\n }\\r\\n });\\r\\n });\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n// region Launch Course\\r\\n\\r\\nfunction onLaunchCourse(aElement, originalButtonText) {\\r\\n $(aElement).text('Sending...').attr('disabled', true);\\r\\n return $.ajax({\\r\\n type: \\\"GET\\\",\\r\\n url: apiBaseUrl + \\\"LearningCourse/Launch\\\",\\r\\n success: function (response) {\\r\\n location.reload();\\r\\n },\\r\\n error: function (error) {\\r\\n //we swallow the exception here as per Simon's request\\r\\n },\\r\\n complete: function () {\\r\\n $(aElement).text(originalButtonText).attr('disabled', false);\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\n// endregion\\r\\n\\r\\n\\r\\nif (document.getElementById(\\\"WeeklyCheckbox\\\")) {\\r\\n document.getElementById(\\\"WeeklyCheckbox\\\").addEventListener(\\\"change\\\", function () {\\r\\n if (this.checked) {\\r\\n //localStorage.removeItem(\\\"MonthlyCheckbox\\\");\\r\\n // localStorage.setItem('WeeklyCheckbox', \\\"checked\\\");\\r\\n eraseCookie(\\\"MonthlyCheckbox\\\");\\r\\n setCookie('WeeklyCheckbox', \\\"checked\\\",5);\\r\\n }\\r\\n });\\r\\n\\r\\n if(getCookie('WeeklyCheckbox') == \\\"checked\\\")\\r\\n document.getElementById(\\\"WeeklyCheckbox\\\").checked= \\\"checked\\\";\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"MonthlyCheckbox\\\")) {\\r\\n document.getElementById(\\\"MonthlyCheckbox\\\").addEventListener(\\\"change\\\", function () {\\r\\n if (this.checked) {\\r\\n // localStorage.removeItem(\\\"WeeklyCheckbox\\\");\\r\\n // localStorage.setItem('MonthlyCheckbox', \\\"checked\\\");\\r\\n\\r\\n eraseCookie(\\\"WeeklyCheckbox\\\");\\r\\n setCookie('MonthlyCheckbox', \\\"checked\\\",5);\\r\\n }\\r\\n\\r\\n });\\r\\n\\r\\n if(getCookie('MonthlyCheckbox') == \\\"checked\\\")\\r\\n document.getElementById(\\\"MonthlyCheckbox\\\").checked= \\\"checked\\\";\\r\\n}\\r\\n\\r\\nif (document.getElementById(\\\"newsletterCheckbox\\\")) {\\r\\n var hearfromUs = document.getElementById(\\\"hearFromUs\\\");\\r\\n\\r\\n document.getElementById(\\\"newsletterCheckbox\\\").addEventListener(\\\"change\\\", function () {\\r\\n\\r\\n if (hearfromUs.style.display === \\\"none\\\") {\\r\\n hearfromUs.style.display = \\\"flex\\\";\\r\\n setCookie('newsletterCheckbox', \\\"checked\\\",5);\\r\\n } else {\\r\\n hearfromUs.style.display = \\\"none\\\";\\r\\n setCookie('newsletterCheckbox', \\\"checked\\\",5);\\r\\n }\\r\\n\\r\\n });\\r\\n\\r\\n if(getCookie('newsletterCheckbox') == \\\"checked\\\")\\r\\n {\\r\\n document.getElementById(\\\"newsletterCheckbox\\\").checked= \\\"checked\\\";\\r\\n if (hearfromUs.style.display === \\\"none\\\") {\\r\\n hearfromUs.style.display = \\\"flex\\\";\\r\\n } else {\\r\\n hearfromUs.style.display = \\\"none\\\";\\r\\n }\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\nif(document.getElementById(\\\"advancedMemberCheckbox\\\"))\\r\\n{\\r\\n\\r\\n document.getElementById(\\\"advancedMemberCheckbox\\\").addEventListener(\\\"change\\\", function () {\\r\\n if (this.checked) {\\r\\n // localStorage.removeItem(\\\"associateMemberCheckbox\\\");\\r\\n // localStorage.setItem('advancedMemberCheckbox', \\\"checked\\\");\\r\\n\\r\\n eraseCookie(\\\"associateMemberCheckbox\\\");\\r\\n setCookie('advancedMemberCheckbox', \\\"checked\\\",5);\\r\\n }\\r\\n });\\r\\n\\r\\n if(getCookie('advancedMemberCheckbox') == \\\"checked\\\")\\r\\n document.getElementById(\\\"advancedMemberCheckbox\\\").checked= \\\"checked\\\";\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\nif(document.getElementById(\\\"associateMemberCheckbox\\\"))\\r\\n{\\r\\n\\r\\n document.getElementById(\\\"associateMemberCheckbox\\\").addEventListener(\\\"change\\\", function () {\\r\\n if (this.checked) {\\r\\n // localStorage.removeItem(\\\"advancedMemberCheckbox\\\");\\r\\n // localStorage.setItem('associateMemberCheckbox', \\\"checked\\\");\\r\\n eraseCookie(\\\"advancedMemberCheckbox\\\");\\r\\n setCookie('associateMemberCheckbox', \\\"checked\\\",5);\\r\\n }\\r\\n });\\r\\n\\r\\n if(getCookie('associateMemberCheckbox') == \\\"checked\\\")\\r\\n document.getElementById(\\\"associateMemberCheckbox\\\").checked= \\\"checked\\\";\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\nif(document.getElementById(\\\"password\\\") && $(\\\"#password\\\").val())\\r\\n{\\r\\n\\r\\nvar password = $(\\\"#password\\\").val();\\r\\n\\r\\n $(\\\"#passwordLowercaseLetter\\\").prop(\\\"checked\\\", hasLowerCase(password));\\r\\n $(\\\"#passwordUppercaseLetter\\\").prop(\\\"checked\\\", hasUpperCase(password));\\r\\n $(\\\"#passwordNumericCharacter\\\").prop(\\\"checked\\\", hasNumeric(password));\\r\\n $(\\\"#passwordNonAlphabetic\\\").prop(\\\"checked\\\", hasNonAlphanumeric(password));\\r\\n}\\r\\n\\r\\nfunction setCookie(name,value,days) {\\r\\n var expires = \\\"\\\";\\r\\n if (days) {\\r\\n var date = new Date();\\r\\n date.setTime(date.getTime() + (days*24*60*60*1000));\\r\\n expires = \\\"; expires=\\\" + date.toUTCString();\\r\\n }\\r\\n document.cookie = name + \\\"=\\\" + (value || \\\"\\\") + expires + \\\"; path=/\\\";\\r\\n}\\r\\nfunction getCookie(name) {\\r\\n var nameEQ = name + \\\"=\\\";\\r\\n var ca = document.cookie.split(';');\\r\\n for(var i=0;i < ca.length;i++) {\\r\\n var c = ca[i];\\r\\n while (c.charAt(0)==' ') c = c.substring(1,c.length);\\r\\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\\r\\n }\\r\\n return null;\\r\\n}\\r\\nfunction eraseCookie(name) {\\r\\n document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\";","exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar win$1 = window;\nvar raf = win$1.requestAnimationFrame || win$1.webkitRequestAnimationFrame || win$1.mozRequestAnimationFrame || win$1.msRequestAnimationFrame || function (cb) {\n return setTimeout(cb, 16);\n};\n\nvar win = window;\nvar caf = win.cancelAnimationFrame || win.mozCancelAnimationFrame || function (id) {\n clearTimeout(id);\n};\n\nfunction extend() {\n var obj,\n name,\n copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n return target;\n}\n\nfunction checkStorageValue(value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n}\n\nfunction setLocalStorage(storage, key, value, access) {\n if (access) {\n try {\n storage.setItem(key, value);\n } catch (e) {}\n }\n\n return value;\n}\n\nfunction getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n return 'tns' + window.tnsId;\n}\n\nfunction getBody() {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n}\n\nvar docElement = document.documentElement;\n\nfunction setFakeBody(body) {\n var docOverflow = '';\n\n if (body.fake) {\n docOverflow = docElement.style.overflow; //avoid crashing IE8, if background image is used\n\n body.style.background = ''; //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n}\n\nfunction resetFakeBody(body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow; // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n\n docElement.offsetHeight;\n }\n}\n\n// get css-calc \nfunction calc() {\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n result = false;\n body.appendChild(div);\n\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n\n if (div.offsetWidth === 100) {\n result = val.replace(str, '');\n break;\n }\n }\n } catch (e) {}\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n return result;\n}\n\n// get subpixel support value\nfunction percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '
';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n return supported;\n}\n\nfunction mediaquerySupport() {\n if (window.matchMedia || window.msMatchMedia) {\n return true;\n }\n\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n return position === \"absolute\";\n}\n\n// create and append style sheet\nfunction createStyleSheet(media, nonce) {\n // Create the